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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CACGkMEskxO4JKXZZiDSi6GgrTg1bRSteaYAAJe1wJ6=Lp5byeQ@mail.gmail.com>
Date: Wed, 24 Sep 2025 09:11:53 +0800
From: Jason Wang <jasowang@...hat.com>
To: Kommula Shiva Shankar <kshankar@...vell.com>
Cc: netdev@...r.kernel.org, mst@...hat.com, pabeni@...hat.com, 
	xuanzhuo@...ux.alibaba.com, virtualization@...ts.linux.dev, parav@...dia.com, 
	jerinj@...vell.com, ndabilpuram@...vell.com, sburla@...vell.com, 
	schalla@...vell.com
Subject: Re: [PATCH v1 net-next 1/3] net: implement virtio helper to handle
 outer nw offset

On Wed, Sep 24, 2025 at 8:51 AM Jason Wang <jasowang@...hat.com> wrote:
>
> On Wed, Sep 24, 2025 at 4:23 AM Kommula Shiva Shankar
> <kshankar@...vell.com> wrote:
> >
> > virtio specification introduced support for outer network
> > header offset broadcast.
> >
> > This patch implements the needed defines and virtio header
> > parsing capabilities.
> >
> > Signed-off-by: Kommula Shiva Shankar <kshankar@...vell.com>
> > ---
> >  include/linux/virtio_net.h      | 40 +++++++++++++++++++++++++++++++++
> >  include/uapi/linux/virtio_net.h |  8 +++++++
> >  2 files changed, 48 insertions(+)
> >
> > diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h
> > index 20e0584db1dd..e6153e9106d3 100644
> > --- a/include/linux/virtio_net.h
> > +++ b/include/linux/virtio_net.h
> > @@ -374,6 +374,46 @@ static inline int virtio_net_handle_csum_offload(struct sk_buff *skb,
> >         return 0;
> >  }
> >
> > +static inline int
> > +virtio_net_out_net_header_to_skb(struct sk_buff *skb,
> > +                                struct virtio_net_hdr_v1_hash_tunnel_out_net_hdr *vhdr,
> > +                                bool out_net_hdr_negotiated,
> > +                                bool little_endian)
> > +{
> > +       unsigned int out_net_hdr_off;
> > +
> > +       if (!out_net_hdr_negotiated)
> > +               return 0;
> > +
> > +       if (vhdr->outer_nh_offset) {
> > +               out_net_hdr_off = __virtio16_to_cpu(little_endian, vhdr->outer_nh_offset);
> > +               skb_set_network_header(skb, out_net_hdr_off);
> > +       }
> > +
> > +       return 0;
> > +}
> > +
> > +static inline int
> > +virtio_net_out_net_header_from_skb(const struct sk_buff *skb,
> > +                                  struct virtio_net_hdr_v1_hash_tunnel_out_net_hdr *vhdr,
> > +                                  bool out_net_hdr_negotiated,
> > +                                  bool little_endian)
> > +{
> > +       unsigned int out_net_hdr_off;
> > +
> > +       if (!out_net_hdr_negotiated) {
> > +               vhdr->outer_nh_offset = 0;
> > +               return 0;
> > +       }
> > +
> > +       out_net_hdr_off = skb_network_offset(skb);
> > +       if (out_net_hdr_off && skb->protocol == htons(ETH_P_IP))
> > +               vhdr->outer_nh_offset = __cpu_to_virtio16(little_endian,
> > +                                                         out_net_hdr_off);
>
> I'd expect this to work for IPV6 as well.

Or why it only works for IP/IPV6.

>
> Thanks

Thanks


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ