ipv6: Pass fib6_result to fib6_table_lookup tracepoint
Change fib6_table_lookup tracepoint to take the fib6_result and use the fib6_info and fib6_nh from it. Signed-off-by: David Ahern <dsahern@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
b7bc4b6a62
commit
8ff2e5b26c
@ -12,10 +12,10 @@
|
|||||||
|
|
||||||
TRACE_EVENT(fib6_table_lookup,
|
TRACE_EVENT(fib6_table_lookup,
|
||||||
|
|
||||||
TP_PROTO(const struct net *net, const struct fib6_info *f6i,
|
TP_PROTO(const struct net *net, const struct fib6_result *res,
|
||||||
struct fib6_table *table, const struct flowi6 *flp),
|
struct fib6_table *table, const struct flowi6 *flp),
|
||||||
|
|
||||||
TP_ARGS(net, f6i, table, flp),
|
TP_ARGS(net, res, table, flp),
|
||||||
|
|
||||||
TP_STRUCT__entry(
|
TP_STRUCT__entry(
|
||||||
__field( u32, tb_id )
|
__field( u32, tb_id )
|
||||||
@ -39,7 +39,7 @@ TRACE_EVENT(fib6_table_lookup,
|
|||||||
struct in6_addr *in6;
|
struct in6_addr *in6;
|
||||||
|
|
||||||
__entry->tb_id = table->tb6_id;
|
__entry->tb_id = table->tb6_id;
|
||||||
__entry->err = ip6_rt_type_to_error(f6i->fib6_type);
|
__entry->err = ip6_rt_type_to_error(res->f6i->fib6_type);
|
||||||
__entry->oif = flp->flowi6_oif;
|
__entry->oif = flp->flowi6_oif;
|
||||||
__entry->iif = flp->flowi6_iif;
|
__entry->iif = flp->flowi6_iif;
|
||||||
__entry->tos = ip6_tclass(flp->flowlabel);
|
__entry->tos = ip6_tclass(flp->flowlabel);
|
||||||
@ -62,20 +62,20 @@ TRACE_EVENT(fib6_table_lookup,
|
|||||||
__entry->dport = 0;
|
__entry->dport = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (f6i->fib6_nh.fib_nh_dev) {
|
if (res->nh && res->nh->fib_nh_dev) {
|
||||||
__assign_str(name, f6i->fib6_nh.fib_nh_dev);
|
__assign_str(name, res->nh->fib_nh_dev);
|
||||||
} else {
|
} else {
|
||||||
__assign_str(name, "-");
|
__assign_str(name, "-");
|
||||||
}
|
}
|
||||||
if (f6i == net->ipv6.fib6_null_entry) {
|
if (res->f6i == net->ipv6.fib6_null_entry) {
|
||||||
struct in6_addr in6_zero = {};
|
struct in6_addr in6_zero = {};
|
||||||
|
|
||||||
in6 = (struct in6_addr *)__entry->gw;
|
in6 = (struct in6_addr *)__entry->gw;
|
||||||
*in6 = in6_zero;
|
*in6 = in6_zero;
|
||||||
|
|
||||||
} else if (f6i) {
|
} else if (res->nh) {
|
||||||
in6 = (struct in6_addr *)__entry->gw;
|
in6 = (struct in6_addr *)__entry->gw;
|
||||||
*in6 = f6i->fib6_nh.fib_nh_gw6;
|
*in6 = res->nh->fib_nh_gw6;
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -1130,7 +1130,7 @@ restart:
|
|||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
trace_fib6_table_lookup(net, res.f6i, table, fl6);
|
trace_fib6_table_lookup(net, &res, table, fl6);
|
||||||
|
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
|
|
||||||
@ -1865,7 +1865,7 @@ redo_rt6_select:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
trace_fib6_table_lookup(net, res.f6i, table, fl6);
|
trace_fib6_table_lookup(net, &res, table, fl6);
|
||||||
|
|
||||||
return res.f6i;
|
return res.f6i;
|
||||||
}
|
}
|
||||||
@ -2538,7 +2538,7 @@ out:
|
|||||||
|
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
|
|
||||||
trace_fib6_table_lookup(net, rt, table, fl6);
|
trace_fib6_table_lookup(net, &res, table, fl6);
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user