[ovs-dev] [PATCH ovs v1] tunnel: Remove the padding from packet when encapsulating.

Tonghao Zhang xiangxia.m.yue at gmail.com
Mon Jun 28 02:07:38 UTC 2021


On Thu, Apr 1, 2021 at 9:34 PM Tonghao Zhang <xiangxia.m.yue at gmail.com> wrote:
>
> On Mon, Dec 14, 2020 at 11:11 AM <xiangxia.m.yue at gmail.com> wrote:
> >
> > From: Tonghao Zhang <xiangxia.m.yue at gmail.com>
> >
> > The root cause is that the old version of openvswitch doesn't
> > remove the padding from packet before L3+ conntrack processing
> > and then packets is dropped in linux kernel stack. The patch [1]
> > fixes the issue. We fix this issue on gateway which running ovs-dpdk
> > as a quick workaround. Padding should be removed because tunnel size
> > + inner size > 64B. More detailes, see [1]
> >
> > [1] - https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/commit/?id=9382fe71c0058465e942a633869629929102843d
> > Signed-off-by: Tonghao Zhang <xiangxia.m.yue at gmail.com>
> ping :)
friendly ping.
> > ---
> >  lib/netdev-native-tnl.c | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c
> > index b89dfdd52..acfbb13c4 100644
> > --- a/lib/netdev-native-tnl.c
> > +++ b/lib/netdev-native-tnl.c
> > @@ -149,11 +149,15 @@ void *
> >  netdev_tnl_push_ip_header(struct dp_packet *packet,
> >                 const void *header, int size, int *ip_tot_size)
> >  {
> > +    int padding = dp_packet_l2_pad_size(packet);
> >      struct eth_header *eth;
> >      struct ip_header *ip;
> >      struct ovs_16aligned_ip6_hdr *ip6;
> >
> >      eth = dp_packet_push_uninit(packet, size);
> > +    if (padding) {
> > +        dp_packet_set_size(packet, dp_packet_size(packet) - padding);
> > +    }
> >      *ip_tot_size = dp_packet_size(packet) - sizeof (struct eth_header);
> >
> >      memcpy(eth, header, size);
> > --
> > 2.14.1
> >
>
>
> --
> Best regards, Tonghao



-- 
Best regards, Tonghao


More information about the dev mailing list