Looks good to me. Reviewed-by: Harold Huang <[email protected]>
<[email protected]> 于2022年1月25日周二 13:25写道: > > From: Tonghao Zhang <[email protected]> > > The old version of openvswitch doesn't remove the padding from > packet before L3+ conntrack processing and then packets are 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 <[email protected]> > --- > v2: add OVS_UNLIKELY > v1: this version was submitted a year ago > http://patchwork.ozlabs.org/project/openvswitch/patch/[email protected]/ > --- > 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 b89dfdd52a86..e23d71d4aec1 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 (OVS_UNLIKELY(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.27.0 > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
