* [PATCH net-next 0/3] net: Update fib_table_lookup tracepoints
@ 2018-05-21 21:24 dsahern
2018-05-21 21:24 ` [PATCH net-next 1/3] net/ipv4: Udate fib_table_lookup tracepoint dsahern
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: dsahern @ 2018-05-21 21:24 UTC (permalink / raw)
To: netdev; +Cc: David Ahern
From: David Ahern <dsahern@gmail.com>
Update the FIB lookup tracepoints to include ip proto and port fields
from the flow struct. In the process make the IPv4 tracepoint inline
with IPv6 which is much easier to use and follow the lookup and result.
Remove the tracepoint in fib_validate_source which does not provide
value above the fib_table_lookup which immediately follows it.
David Ahern (3):
net/ipv4: Udate fib_table_lookup tracepoint
net/ipv6: Udate fib6_table_lookup tracepoint
net/ipv4: Remove tracepoint in fib_validate_source
include/net/ip6_fib.h | 2 +
include/trace/events/fib.h | 107 ++++++++++++++++++--------------------------
include/trace/events/fib6.h | 29 +++++++++---
net/ipv4/fib_frontend.c | 2 -
net/ipv4/fib_trie.c | 14 +++---
net/ipv6/route.c | 2 +-
6 files changed, 77 insertions(+), 79 deletions(-)
--
2.11.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH net-next 1/3] net/ipv4: Udate fib_table_lookup tracepoint
2018-05-21 21:24 [PATCH net-next 0/3] net: Update fib_table_lookup tracepoints dsahern
@ 2018-05-21 21:24 ` dsahern
2018-05-21 21:24 ` [PATCH net-next 2/3] net/ipv6: Udate fib6_table_lookup tracepoint dsahern
2018-05-21 21:24 ` [PATCH net-next 3/3] net/ipv4: Remove tracepoint in fib_validate_source dsahern
2 siblings, 0 replies; 7+ messages in thread
From: dsahern @ 2018-05-21 21:24 UTC (permalink / raw)
To: netdev; +Cc: David Ahern
From: David Ahern <dsahern@gmail.com>
Commit 4a2d73a4fb36 ("ipv4: fib_rules: support match on sport, dport
and ip proto") added support for protocol and ports to FIB rules.
Update the FIB lookup tracepoint to dump the parameters.
In addition, make the IPv4 tracepoint similar to the IPv6 one where
the lookup parameters and result are dumped in 1 event. It is much
easier to use and understand the outcome of the lookup.
Signed-off-by: David Ahern <dsahern@gmail.com>
---
include/trace/events/fib.h | 72 +++++++++++++++++++++++++++-------------------
net/ipv4/fib_trie.c | 14 +++++----
2 files changed, 52 insertions(+), 34 deletions(-)
diff --git a/include/trace/events/fib.h b/include/trace/events/fib.h
index 81b7e985bb45..f5a1d4c518d8 100644
--- a/include/trace/events/fib.h
+++ b/include/trace/events/fib.h
@@ -12,12 +12,14 @@
TRACE_EVENT(fib_table_lookup,
- TP_PROTO(u32 tb_id, const struct flowi4 *flp),
+ TP_PROTO(u32 tb_id, const struct flowi4 *flp,
+ const struct fib_nh *nh, int err),
- TP_ARGS(tb_id, flp),
+ TP_ARGS(tb_id, flp, nh, err),
TP_STRUCT__entry(
__field( u32, tb_id )
+ __field( int, err )
__field( int, oif )
__field( int, iif )
__field( __u8, tos )
@@ -25,12 +27,19 @@ TRACE_EVENT(fib_table_lookup,
__field( __u8, flags )
__array( __u8, src, 4 )
__array( __u8, dst, 4 )
+ __array( __u8, gw, 4 )
+ __array( __u8, saddr, 4 )
+ __field( u16, sport )
+ __field( u16, dport )
+ __field( u8, proto )
+ __dynamic_array(char, name, IFNAMSIZ )
),
TP_fast_assign(
__be32 *p32;
__entry->tb_id = tb_id;
+ __entry->err = err;
__entry->oif = flp->flowi4_oif;
__entry->iif = flp->flowi4_iif;
__entry->tos = flp->flowi4_tos;
@@ -42,36 +51,41 @@ TRACE_EVENT(fib_table_lookup,
p32 = (__be32 *) __entry->dst;
*p32 = flp->daddr;
- ),
-
- TP_printk("table %u oif %d iif %d src %pI4 dst %pI4 tos %d scope %d flags %x",
- __entry->tb_id, __entry->oif, __entry->iif,
- __entry->src, __entry->dst, __entry->tos, __entry->scope,
- __entry->flags)
-);
-
-TRACE_EVENT(fib_table_lookup_nh,
-
- TP_PROTO(const struct fib_nh *nh),
-
- TP_ARGS(nh),
-
- TP_STRUCT__entry(
- __string( name, nh->nh_dev->name)
- __field( int, oif )
- __array( __u8, src, 4 )
- ),
-
- TP_fast_assign(
- __be32 *p32 = (__be32 *) __entry->src;
- __assign_str(name, nh->nh_dev ? nh->nh_dev->name : "not set");
- __entry->oif = nh->nh_oif;
- *p32 = nh->nh_saddr;
+ __entry->proto = flp->flowi4_proto;
+ if (__entry->proto == IPPROTO_TCP ||
+ __entry->proto == IPPROTO_UDP) {
+ __entry->sport = ntohs(flp->fl4_sport);
+ __entry->dport = ntohs(flp->fl4_dport);
+ } else {
+ __entry->sport = 0;
+ __entry->dport = 0;
+ }
+
+ if (nh) {
+ p32 = (__be32 *) __entry->saddr;
+ *p32 = nh->nh_saddr;
+
+ p32 = (__be32 *) __entry->gw;
+ *p32 = nh->nh_gw;
+
+ __assign_str(name, nh->nh_dev ? nh->nh_dev->name : "-");
+ } else {
+ p32 = (__be32 *) __entry->saddr;
+ *p32 = 0;
+
+ p32 = (__be32 *) __entry->gw;
+ *p32 = 0;
+
+ __assign_str(name, "-");
+ }
),
- TP_printk("nexthop dev %s oif %d src %pI4",
- __get_str(name), __entry->oif, __entry->src)
+ TP_printk("table %u oif %d iif %d proto %u %pI4/%u -> %pI4/%u tos %d scope %d flags %x ==> dev %s gw %pI4 src %pI4 err %d",
+ __entry->tb_id, __entry->oif, __entry->iif, __entry->proto,
+ __entry->src, __entry->sport, __entry->dst, __entry->dport,
+ __entry->tos, __entry->scope, __entry->flags,
+ __get_str(name), __entry->gw, __entry->saddr, __entry->err)
);
TRACE_EVENT(fib_validate_source,
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
index 3dcffd3ce98c..65c340f230ae 100644
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
@@ -1326,14 +1326,14 @@ int fib_table_lookup(struct fib_table *tb, const struct flowi4 *flp,
unsigned long index;
t_key cindex;
- trace_fib_table_lookup(tb->tb_id, flp);
-
pn = t->kv;
cindex = 0;
n = get_child_rcu(pn, cindex);
- if (!n)
+ if (!n) {
+ trace_fib_table_lookup(tb->tb_id, flp, NULL, -EAGAIN);
return -EAGAIN;
+ }
#ifdef CONFIG_IP_FIB_TRIE_STATS
this_cpu_inc(stats->gets);
@@ -1416,8 +1416,11 @@ int fib_table_lookup(struct fib_table *tb, const struct flowi4 *flp,
* nothing for us to do as we do not have any
* further nodes to parse.
*/
- if (IS_TRIE(pn))
+ if (IS_TRIE(pn)) {
+ trace_fib_table_lookup(tb->tb_id, flp,
+ NULL, -EAGAIN);
return -EAGAIN;
+ }
#ifdef CONFIG_IP_FIB_TRIE_STATS
this_cpu_inc(stats->backtrack);
#endif
@@ -1459,6 +1462,7 @@ int fib_table_lookup(struct fib_table *tb, const struct flowi4 *flp,
#ifdef CONFIG_IP_FIB_TRIE_STATS
this_cpu_inc(stats->semantic_match_passed);
#endif
+ trace_fib_table_lookup(tb->tb_id, flp, NULL, err);
return err;
}
if (fi->fib_flags & RTNH_F_DEAD)
@@ -1494,7 +1498,7 @@ int fib_table_lookup(struct fib_table *tb, const struct flowi4 *flp,
#ifdef CONFIG_IP_FIB_TRIE_STATS
this_cpu_inc(stats->semantic_match_passed);
#endif
- trace_fib_table_lookup_nh(nh);
+ trace_fib_table_lookup(tb->tb_id, flp, nh, err);
return err;
}
--
2.11.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH net-next 2/3] net/ipv6: Udate fib6_table_lookup tracepoint
2018-05-21 21:24 [PATCH net-next 0/3] net: Update fib_table_lookup tracepoints dsahern
2018-05-21 21:24 ` [PATCH net-next 1/3] net/ipv4: Udate fib_table_lookup tracepoint dsahern
@ 2018-05-21 21:24 ` dsahern
2018-05-23 6:46 ` kbuild test robot
2018-05-23 17:09 ` David Miller
2018-05-21 21:24 ` [PATCH net-next 3/3] net/ipv4: Remove tracepoint in fib_validate_source dsahern
2 siblings, 2 replies; 7+ messages in thread
From: dsahern @ 2018-05-21 21:24 UTC (permalink / raw)
To: netdev; +Cc: David Ahern
From: David Ahern <dsahern@gmail.com>
Commit bb0ad1987e96 ("ipv6: fib6_rules: support for match on sport, dport
and ip proto") added support for protocol and ports to FIB rules.
Update the FIB lookup tracepoint to dump the parameters.
Signed-off-by: David Ahern <dsahern@gmail.com>
---
include/net/ip6_fib.h | 2 ++
include/trace/events/fib6.h | 29 ++++++++++++++++++++++-------
net/ipv6/route.c | 2 +-
3 files changed, 25 insertions(+), 8 deletions(-)
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h
index cc70f6da8462..63fd9888f006 100644
--- a/include/net/ip6_fib.h
+++ b/include/net/ip6_fib.h
@@ -286,6 +286,8 @@ static inline void fib6_info_release(struct fib6_info *f6i)
fib6_info_destroy(f6i);
}
+int ip6_rt_type_to_error(u8 fib6_type);
+
enum fib6_walk_state {
#ifdef CONFIG_IPV6_SUBTREES
FWS_S,
diff --git a/include/trace/events/fib6.h b/include/trace/events/fib6.h
index 1b8d951e3c12..b088b54d699c 100644
--- a/include/trace/events/fib6.h
+++ b/include/trace/events/fib6.h
@@ -19,7 +19,7 @@ TRACE_EVENT(fib6_table_lookup,
TP_STRUCT__entry(
__field( u32, tb_id )
-
+ __field( int, err )
__field( int, oif )
__field( int, iif )
__field( __u8, tos )
@@ -27,7 +27,10 @@ TRACE_EVENT(fib6_table_lookup,
__field( __u8, flags )
__array( __u8, src, 16 )
__array( __u8, dst, 16 )
-
+ __field( u16, sport )
+ __field( u16, dport )
+ __field( u8, proto )
+ __field( u8, rt_type )
__dynamic_array( char, name, IFNAMSIZ )
__array( __u8, gw, 16 )
),
@@ -36,6 +39,7 @@ TRACE_EVENT(fib6_table_lookup,
struct in6_addr *in6;
__entry->tb_id = table->tb6_id;
+ __entry->err = ip6_rt_type_to_error(f6i->fib6_type);
__entry->oif = flp->flowi6_oif;
__entry->iif = flp->flowi6_iif;
__entry->tos = ip6_tclass(flp->flowlabel);
@@ -48,10 +52,20 @@ TRACE_EVENT(fib6_table_lookup,
in6 = (struct in6_addr *)__entry->dst;
*in6 = flp->daddr;
+ __entry->proto = flp->flowi6_proto;
+ if (__entry->proto == IPPROTO_TCP ||
+ __entry->proto == IPPROTO_UDP) {
+ __entry->sport = ntohs(flp->fl6_sport);
+ __entry->dport = ntohs(flp->fl6_dport);
+ } else {
+ __entry->sport = 0;
+ __entry->dport = 0;
+ }
+
if (f6i->fib6_nh.nh_dev) {
__assign_str(name, f6i->fib6_nh.nh_dev);
} else {
- __assign_str(name, "");
+ __assign_str(name, "-");
}
if (f6i == net->ipv6.fib6_null_entry) {
struct in6_addr in6_zero = {};
@@ -65,10 +79,11 @@ TRACE_EVENT(fib6_table_lookup,
}
),
- TP_printk("table %3u oif %d iif %d src %pI6c dst %pI6c tos %d scope %d flags %x ==> dev %s gw %pI6c",
- __entry->tb_id, __entry->oif, __entry->iif,
- __entry->src, __entry->dst, __entry->tos, __entry->scope,
- __entry->flags, __get_str(name), __entry->gw)
+ TP_printk("table %3u oif %d iif %d proto %u %pI6c/%u -> %pI6c/%u tos %d scope %d flags %x ==> dev %s gw %pI6c err %d",
+ __entry->tb_id, __entry->oif, __entry->iif, __entry->proto,
+ __entry->src, __entry->sport, __entry->dst, __entry->dport,
+ __entry->tos, __entry->scope, __entry->flags,
+ __get_str(name), __entry->gw, __entry->err)
);
#endif /* _TRACE_FIB6_H */
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index cc24ed3bc334..ae27e57c5997 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -897,7 +897,7 @@ static const int fib6_prop[RTN_MAX + 1] = {
[RTN_XRESOLVE] = -EINVAL,
};
-static int ip6_rt_type_to_error(u8 fib6_type)
+int ip6_rt_type_to_error(u8 fib6_type)
{
return fib6_prop[fib6_type];
}
--
2.11.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH net-next 3/3] net/ipv4: Remove tracepoint in fib_validate_source
2018-05-21 21:24 [PATCH net-next 0/3] net: Update fib_table_lookup tracepoints dsahern
2018-05-21 21:24 ` [PATCH net-next 1/3] net/ipv4: Udate fib_table_lookup tracepoint dsahern
2018-05-21 21:24 ` [PATCH net-next 2/3] net/ipv6: Udate fib6_table_lookup tracepoint dsahern
@ 2018-05-21 21:24 ` dsahern
2 siblings, 0 replies; 7+ messages in thread
From: dsahern @ 2018-05-21 21:24 UTC (permalink / raw)
To: netdev; +Cc: David Ahern
From: David Ahern <dsahern@gmail.com>
Tracepoint does not add value and the call to fib_lookup follows
it which shows the same information and the fib lookup result.
Signed-off-by: David Ahern <dsahern@gmail.com>
---
include/trace/events/fib.h | 35 -----------------------------------
net/ipv4/fib_frontend.c | 2 --
2 files changed, 37 deletions(-)
diff --git a/include/trace/events/fib.h b/include/trace/events/fib.h
index f5a1d4c518d8..9763cddd0594 100644
--- a/include/trace/events/fib.h
+++ b/include/trace/events/fib.h
@@ -87,41 +87,6 @@ TRACE_EVENT(fib_table_lookup,
__entry->tos, __entry->scope, __entry->flags,
__get_str(name), __entry->gw, __entry->saddr, __entry->err)
);
-
-TRACE_EVENT(fib_validate_source,
-
- TP_PROTO(const struct net_device *dev, const struct flowi4 *flp),
-
- TP_ARGS(dev, flp),
-
- TP_STRUCT__entry(
- __string( name, dev->name )
- __field( int, oif )
- __field( int, iif )
- __field( __u8, tos )
- __array( __u8, src, 4 )
- __array( __u8, dst, 4 )
- ),
-
- TP_fast_assign(
- __be32 *p32;
-
- __assign_str(name, dev ? dev->name : "not set");
- __entry->oif = flp->flowi4_oif;
- __entry->iif = flp->flowi4_iif;
- __entry->tos = flp->flowi4_tos;
-
- p32 = (__be32 *) __entry->src;
- *p32 = flp->saddr;
-
- p32 = (__be32 *) __entry->dst;
- *p32 = flp->daddr;
- ),
-
- TP_printk("dev %s oif %d iif %d tos %d src %pI4 dst %pI4",
- __get_str(name), __entry->oif, __entry->iif, __entry->tos,
- __entry->src, __entry->dst)
-);
#endif /* _TRACE_FIB_H */
/* This part must be outside protection */
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
index 4d622112bf95..58696b829065 100644
--- a/net/ipv4/fib_frontend.c
+++ b/net/ipv4/fib_frontend.c
@@ -354,8 +354,6 @@ static int __fib_validate_source(struct sk_buff *skb, __be32 src, __be32 dst,
fl4.fl4_dport = 0;
}
- trace_fib_validate_source(dev, &fl4);
-
if (fib_lookup(net, &fl4, &res, 0))
goto last_resort;
if (res.type != RTN_UNICAST &&
--
2.11.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH net-next 2/3] net/ipv6: Udate fib6_table_lookup tracepoint
2018-05-21 21:24 ` [PATCH net-next 2/3] net/ipv6: Udate fib6_table_lookup tracepoint dsahern
@ 2018-05-23 6:46 ` kbuild test robot
2018-05-23 17:09 ` David Miller
1 sibling, 0 replies; 7+ messages in thread
From: kbuild test robot @ 2018-05-23 6:46 UTC (permalink / raw)
To: dsahern; +Cc: kbuild-all, netdev, David Ahern
[-- Attachment #1: Type: text/plain, Size: 6415 bytes --]
Hi David,
I love your patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/dsahern-kernel-org/net-ipv4-Udate-fib_table_lookup-tracepoint/20180523-083238
config: x86_64-randconfig-s4-05231222 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All errors (new ones prefixed by >>):
net/core/net-traces.o: In function `perf_trace_fib6_table_lookup':
>> include/trace/events/fib6.h:13: undefined reference to `ip6_rt_type_to_error'
net/core/net-traces.o: In function `trace_event_raw_event_fib6_table_lookup':
>> include/trace/events/fib6.h:13: undefined reference to `ip6_rt_type_to_error'
vim +13 include/trace/events/fib6.h
b811580d David Ahern 2015-11-19 12
b811580d David Ahern 2015-11-19 @13 TRACE_EVENT(fib6_table_lookup,
b811580d David Ahern 2015-11-19 14
d4bea421 David Ahern 2018-05-09 15 TP_PROTO(const struct net *net, const struct fib6_info *f6i,
b65f164d Paolo Abeni 2017-10-19 16 struct fib6_table *table, const struct flowi6 *flp),
b811580d David Ahern 2015-11-19 17
d4bea421 David Ahern 2018-05-09 18 TP_ARGS(net, f6i, table, flp),
b811580d David Ahern 2015-11-19 19
b811580d David Ahern 2015-11-19 20 TP_STRUCT__entry(
b811580d David Ahern 2015-11-19 21 __field( u32, tb_id )
6d233bf4 David Ahern 2018-05-21 22 __field( int, err )
b811580d David Ahern 2015-11-19 23 __field( int, oif )
b811580d David Ahern 2015-11-19 24 __field( int, iif )
b811580d David Ahern 2015-11-19 25 __field( __u8, tos )
b811580d David Ahern 2015-11-19 26 __field( __u8, scope )
b811580d David Ahern 2015-11-19 27 __field( __u8, flags )
b811580d David Ahern 2015-11-19 28 __array( __u8, src, 16 )
b811580d David Ahern 2015-11-19 29 __array( __u8, dst, 16 )
6d233bf4 David Ahern 2018-05-21 30 __field( u16, sport )
6d233bf4 David Ahern 2018-05-21 31 __field( u16, dport )
6d233bf4 David Ahern 2018-05-21 32 __field( u8, proto )
6d233bf4 David Ahern 2018-05-21 33 __field( u8, rt_type )
b811580d David Ahern 2015-11-19 34 __dynamic_array( char, name, IFNAMSIZ )
b811580d David Ahern 2015-11-19 35 __array( __u8, gw, 16 )
b811580d David Ahern 2015-11-19 36 ),
b811580d David Ahern 2015-11-19 37
b811580d David Ahern 2015-11-19 38 TP_fast_assign(
b811580d David Ahern 2015-11-19 39 struct in6_addr *in6;
b811580d David Ahern 2015-11-19 40
b65f164d Paolo Abeni 2017-10-19 41 __entry->tb_id = table->tb6_id;
6d233bf4 David Ahern 2018-05-21 42 __entry->err = ip6_rt_type_to_error(f6i->fib6_type);
b811580d David Ahern 2015-11-19 43 __entry->oif = flp->flowi6_oif;
b811580d David Ahern 2015-11-19 44 __entry->iif = flp->flowi6_iif;
69716a2b Daniel Borkmann 2016-03-18 45 __entry->tos = ip6_tclass(flp->flowlabel);
b811580d David Ahern 2015-11-19 46 __entry->scope = flp->flowi6_scope;
b811580d David Ahern 2015-11-19 47 __entry->flags = flp->flowi6_flags;
b811580d David Ahern 2015-11-19 48
b811580d David Ahern 2015-11-19 49 in6 = (struct in6_addr *)__entry->src;
b811580d David Ahern 2015-11-19 50 *in6 = flp->saddr;
b811580d David Ahern 2015-11-19 51
b811580d David Ahern 2015-11-19 52 in6 = (struct in6_addr *)__entry->dst;
b811580d David Ahern 2015-11-19 53 *in6 = flp->daddr;
b811580d David Ahern 2015-11-19 54
6d233bf4 David Ahern 2018-05-21 55 __entry->proto = flp->flowi6_proto;
6d233bf4 David Ahern 2018-05-21 56 if (__entry->proto == IPPROTO_TCP ||
6d233bf4 David Ahern 2018-05-21 57 __entry->proto == IPPROTO_UDP) {
6d233bf4 David Ahern 2018-05-21 58 __entry->sport = ntohs(flp->fl6_sport);
6d233bf4 David Ahern 2018-05-21 59 __entry->dport = ntohs(flp->fl6_dport);
6d233bf4 David Ahern 2018-05-21 60 } else {
6d233bf4 David Ahern 2018-05-21 61 __entry->sport = 0;
6d233bf4 David Ahern 2018-05-21 62 __entry->dport = 0;
6d233bf4 David Ahern 2018-05-21 63 }
6d233bf4 David Ahern 2018-05-21 64
d4bea421 David Ahern 2018-05-09 65 if (f6i->fib6_nh.nh_dev) {
d4bea421 David Ahern 2018-05-09 66 __assign_str(name, f6i->fib6_nh.nh_dev);
b811580d David Ahern 2015-11-19 67 } else {
6d233bf4 David Ahern 2018-05-21 68 __assign_str(name, "-");
b811580d David Ahern 2015-11-19 69 }
d4bea421 David Ahern 2018-05-09 70 if (f6i == net->ipv6.fib6_null_entry) {
b811580d David Ahern 2015-11-19 71 struct in6_addr in6_zero = {};
b811580d David Ahern 2015-11-19 72
b811580d David Ahern 2015-11-19 73 in6 = (struct in6_addr *)__entry->gw;
b811580d David Ahern 2015-11-19 74 *in6 = in6_zero;
b811580d David Ahern 2015-11-19 75
d4bea421 David Ahern 2018-05-09 76 } else if (f6i) {
b811580d David Ahern 2015-11-19 77 in6 = (struct in6_addr *)__entry->gw;
d4bea421 David Ahern 2018-05-09 78 *in6 = f6i->fib6_nh.nh_gw;
b811580d David Ahern 2015-11-19 79 }
b811580d David Ahern 2015-11-19 80 ),
b811580d David Ahern 2015-11-19 81
6d233bf4 David Ahern 2018-05-21 82 TP_printk("table %3u oif %d iif %d proto %u %pI6c/%u -> %pI6c/%u tos %d scope %d flags %x ==> dev %s gw %pI6c err %d",
6d233bf4 David Ahern 2018-05-21 83 __entry->tb_id, __entry->oif, __entry->iif, __entry->proto,
6d233bf4 David Ahern 2018-05-21 84 __entry->src, __entry->sport, __entry->dst, __entry->dport,
6d233bf4 David Ahern 2018-05-21 85 __entry->tos, __entry->scope, __entry->flags,
6d233bf4 David Ahern 2018-05-21 86 __get_str(name), __entry->gw, __entry->err)
b811580d David Ahern 2015-11-19 87 );
b811580d David Ahern 2015-11-19 88
:::::: The code at line 13 was first introduced by commit
:::::: b811580d91e9c0945b0a923dcec3e10cce04ac30 net: IPv6 fib lookup tracepoint
:::::: TO: David Ahern <dsa@cumulusnetworks.com>
:::::: CC: David S. Miller <davem@davemloft.net>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 30959 bytes --]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH net-next 2/3] net/ipv6: Udate fib6_table_lookup tracepoint
2018-05-21 21:24 ` [PATCH net-next 2/3] net/ipv6: Udate fib6_table_lookup tracepoint dsahern
2018-05-23 6:46 ` kbuild test robot
@ 2018-05-23 17:09 ` David Miller
2018-05-23 17:13 ` David Ahern
1 sibling, 1 reply; 7+ messages in thread
From: David Miller @ 2018-05-23 17:09 UTC (permalink / raw)
To: dsahern; +Cc: netdev, dsahern
From: dsahern@kernel.org
Date: Mon, 21 May 2018 14:24:42 -0700
> + __entry->err = ip6_rt_type_to_error(f6i->fib6_type);
As the kbuild bot discovered, this doesn't work when IPV6=m.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH net-next 2/3] net/ipv6: Udate fib6_table_lookup tracepoint
2018-05-23 17:09 ` David Miller
@ 2018-05-23 17:13 ` David Ahern
0 siblings, 0 replies; 7+ messages in thread
From: David Ahern @ 2018-05-23 17:13 UTC (permalink / raw)
To: David Miller, dsahern; +Cc: netdev
On 5/23/18 11:09 AM, David Miller wrote:
> From: dsahern@kernel.org
> Date: Mon, 21 May 2018 14:24:42 -0700
>
>> + __entry->err = ip6_rt_type_to_error(f6i->fib6_type);
>
> As the kbuild bot discovered, this doesn't work when IPV6=m.
>
yep. I'll take a look later today. Thinking about moving the tracepoint
create from net/core/net-traces.c to net/ipv6/route.c.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-05-23 17:13 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-21 21:24 [PATCH net-next 0/3] net: Update fib_table_lookup tracepoints dsahern
2018-05-21 21:24 ` [PATCH net-next 1/3] net/ipv4: Udate fib_table_lookup tracepoint dsahern
2018-05-21 21:24 ` [PATCH net-next 2/3] net/ipv6: Udate fib6_table_lookup tracepoint dsahern
2018-05-23 6:46 ` kbuild test robot
2018-05-23 17:09 ` David Miller
2018-05-23 17:13 ` David Ahern
2018-05-21 21:24 ` [PATCH net-next 3/3] net/ipv4: Remove tracepoint in fib_validate_source dsahern
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).