Message ID | 34a9c221a6d644f18c826a1beddba58af6b7a64c.1711361723.git.balazs.scheidler@axoflow.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v3,1/2] net: port TP_STORE_ADDR_PORTS_SKB macro to be tcp/udp independent | expand |
On Mon, 25 Mar 2024 11:29:18 +0100 Balazs Scheidler wrote: > + memset(__entry->saddr, 0, sizeof(struct sockaddr_in6)); > + memset(__entry->daddr, 0, sizeof(struct sockaddr_in6)); Indent with tabs please, checkpatch says: ERROR: code indent should use tabs where possible #59: FILE: include/trace/events/udp.h:38: + memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));$ WARNING: please, no spaces at the start of a line #59: FILE: include/trace/events/udp.h:38: + memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));$ ERROR: code indent should use tabs where possible #60: FILE: include/trace/events/udp.h:39: + memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));$ WARNING: please, no spaces at the start of a line #60: FILE: include/trace/events/udp.h:39: + memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));$
On Tue, Mar 26, 2024 at 10:28 AM Jakub Kicinski <kuba@kernel.org> wrote: > > On Mon, 25 Mar 2024 11:29:18 +0100 Balazs Scheidler wrote: > > + memset(__entry->saddr, 0, sizeof(struct sockaddr_in6)); > > + memset(__entry->daddr, 0, sizeof(struct sockaddr_in6)); > > Indent with tabs please, checkpatch says: > > ERROR: code indent should use tabs where possible > #59: FILE: include/trace/events/udp.h:38: > + memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));$ > > WARNING: please, no spaces at the start of a line > #59: FILE: include/trace/events/udp.h:38: > + memset(__entry->saddr, 0, sizeof(struct sockaddr_in6));$ > > ERROR: code indent should use tabs where possible > #60: FILE: include/trace/events/udp.h:39: > + memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));$ > > WARNING: please, no spaces at the start of a line > #60: FILE: include/trace/events/udp.h:39: > + memset(__entry->daddr, 0, sizeof(struct sockaddr_in6));$ More than this, it would be better to put "From Balazs Scheidler <balazs.scheidler@axoflow.com>" in the first line of each patch to eliminate the mismatched email address warning. Link (Jakub referred to): https://patchwork.kernel.org/project/netdevbpf/patch/34a9c221a6d644f18c826a1beddba58af6b7a64c.1711361723.git.balazs.scheidler@axoflow.com/ Detailed info: https://netdev.bots.linux.dev/static/nipa/837832/13601927/checkpatch/stdout > -- > pw-bot: cr
diff --git a/include/trace/events/udp.h b/include/trace/events/udp.h index 336fe272889f..9c5abe23d0f5 100644 --- a/include/trace/events/udp.h +++ b/include/trace/events/udp.h @@ -7,24 +7,43 @@ #include <linux/udp.h> #include <linux/tracepoint.h> +#include <trace/events/net_probe_common.h> TRACE_EVENT(udp_fail_queue_rcv_skb, - TP_PROTO(int rc, struct sock *sk), + TP_PROTO(int rc, struct sock *sk, struct sk_buff *skb), - TP_ARGS(rc, sk), + TP_ARGS(rc, sk, skb), TP_STRUCT__entry( __field(int, rc) - __field(__u16, lport) + + __field(__u16, sport) + __field(__u16, dport) + __field(__u16, family) + __array(__u8, saddr, sizeof(struct sockaddr_in6)) + __array(__u8, daddr, sizeof(struct sockaddr_in6)) ), TP_fast_assign( + const struct udphdr *uh = (const struct udphdr *)udp_hdr(skb); + __entry->rc = rc; - __entry->lport = inet_sk(sk)->inet_num; + + /* for filtering use */ + __entry->sport = ntohs(uh->source); + __entry->dport = ntohs(uh->dest); + __entry->family = sk->sk_family; + + memset(__entry->saddr, 0, sizeof(struct sockaddr_in6)); + memset(__entry->daddr, 0, sizeof(struct sockaddr_in6)); + + TP_STORE_ADDR_PORTS_SKB(__entry, skb, uh); ), - TP_printk("rc=%d port=%hu", __entry->rc, __entry->lport) + TP_printk("rc=%d family=%s src=%pISpc dest=%pISpc", __entry->rc, + show_family_name(__entry->family), + __entry->saddr, __entry->daddr) ); #endif /* _TRACE_UDP_H */ diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 661d0e0d273f..531882f321f2 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -2049,8 +2049,8 @@ static int __udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb) drop_reason = SKB_DROP_REASON_PROTO_MEM; } UDP_INC_STATS(sock_net(sk), UDP_MIB_INERRORS, is_udplite); + trace_udp_fail_queue_rcv_skb(rc, sk, skb); kfree_skb_reason(skb, drop_reason); - trace_udp_fail_queue_rcv_skb(rc, sk); return -1; } diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 7c1e6469d091..2e4dc5e6137b 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c @@ -34,6 +34,7 @@ #include <linux/slab.h> #include <linux/uaccess.h> #include <linux/indirect_call_wrapper.h> +#include <trace/events/udp.h> #include <net/addrconf.h> #include <net/ndisc.h> @@ -658,8 +659,8 @@ static int __udpv6_queue_rcv_skb(struct sock *sk, struct sk_buff *skb) drop_reason = SKB_DROP_REASON_PROTO_MEM; } UDP6_INC_STATS(sock_net(sk), UDP_MIB_INERRORS, is_udplite); + trace_udp_fail_queue_rcv_skb(rc, sk, skb); kfree_skb_reason(skb, drop_reason); - trace_udp_fail_queue_rcv_skb(rc, sk); return -1; }
The udp_fail_queue_rcv_skb() tracepoint lacks any details on the source and destination IP/port whereas this information can be critical in case of UDP/syslog. Signed-off-by: Balazs Scheidler <balazs.scheidler@axoflow.com> --- include/trace/events/udp.h | 29 ++++++++++++++++++++++++----- net/ipv4/udp.c | 2 +- net/ipv6/udp.c | 3 ++- 3 files changed, 27 insertions(+), 7 deletions(-)