[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <66118ade17cd9_172b6329459@willemb.c.googlers.com.notmuch>
Date: Sat, 06 Apr 2024 13:48:14 -0400
From: Willem de Bruijn <willemdebruijn.kernel@...il.com>
To: Eric Dumazet <edumazet@...gle.com>,
"David S . Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>
Cc: Willem de Bruijn <willemb@...gle.com>,
netdev@...r.kernel.org,
eric.dumazet@...il.com,
Eric Dumazet <edumazet@...gle.com>
Subject: Re: [PATCH net-next] net: display more skb fields in skb_dump()
Eric Dumazet wrote:
> Print these additional fields in skb_dump()
>
> - mac_len
> - priority
> - mark
> - alloc_cpu
> - vlan_all
> - encapsulation
> - inner_protocol
> - inner_mac_header
> - inner_network_header
> - inner_transport_header
>
> Signed-off-by: Eric Dumazet <edumazet@...gle.com>
Reviewed-by: Willem de Bruijn <willemb@...gle.com>
> ---
> net/core/skbuff.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> index 2a5ce6667bbb9bb70e89d47abda5daca5d16aae2..fa0d1364657e001c6668aafaf2c2a3d434980798 100644
> --- a/net/core/skbuff.c
> +++ b/net/core/skbuff.c
> @@ -1304,13 +1304,16 @@ void skb_dump(const char *level, const struct sk_buff *skb, bool full_pkt)
> has_trans = skb_transport_header_was_set(skb);
>
> printk("%sskb len=%u headroom=%u headlen=%u tailroom=%u\n"
> - "mac=(%d,%d) net=(%d,%d) trans=%d\n"
> + "mac=(%d,%d) mac_len=%u net=(%d,%d) trans=%d\n"
> "shinfo(txflags=%u nr_frags=%u gso(size=%hu type=%u segs=%hu))\n"
> "csum(0x%x ip_summed=%u complete_sw=%u valid=%u level=%u)\n"
If touching this function, also add csum_start and csum_offset?
These are technically already present in csum, as it's a union:
union {
__wsum csum;
struct {
__u16 csum_start;
__u16 csum_offset;
};
};
But it is a bit annoying to have to do the conversion manually.
And this is a regular playground for syzbot.
> - "hash(0x%x sw=%u l4=%u) proto=0x%04x pkttype=%u iif=%d\n",
> + "hash(0x%x sw=%u l4=%u) proto=0x%04x pkttype=%u iif=%d\n"
> + "priority=0x%x mark=0x%x alloc_cpu=%u vlan_all=0x%x\n"
> + "encapsulation=%d inner(proto=0x%04x, mac=%u, net=%u, trans=%u)\n",
> level, skb->len, headroom, skb_headlen(skb), tailroom,
> has_mac ? skb->mac_header : -1,
> has_mac ? skb_mac_header_len(skb) : -1,
> + skb->mac_len,
> skb->network_header,
> has_trans ? skb_network_header_len(skb) : -1,
> has_trans ? skb->transport_header : -1,
> @@ -1319,7 +1322,10 @@ void skb_dump(const char *level, const struct sk_buff *skb, bool full_pkt)
> skb->csum, skb->ip_summed, skb->csum_complete_sw,
> skb->csum_valid, skb->csum_level,
> skb->hash, skb->sw_hash, skb->l4_hash,
> - ntohs(skb->protocol), skb->pkt_type, skb->skb_iif);
> + ntohs(skb->protocol), skb->pkt_type, skb->skb_iif,
> + skb->priority, skb->mark, skb->alloc_cpu, skb->vlan_all,
> + skb->encapsulation, skb->inner_protocol, skb->inner_mac_header,
> + skb->inner_network_header, skb->inner_transport_header);
>
> if (dev)
> printk("%sdev name=%s feat=%pNF\n",
> --
> 2.44.0.478.gd926399ef9-goog
>
Powered by blists - more mailing lists