lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ