On Wed, Mar 28, 2018 at 9:52 AM, Eelco Chaudron <echau...@redhat.com> wrote: > On 03/09/2018 03:59 PM, William Tu wrote: >> >> On Thu, Feb 8, 2018 at 10:42 AM, Eric Garver <e...@erig.me> wrote: >>> >>> On Thu, Feb 08, 2018 at 04:40:38PM +0100, Eelco Chaudron wrote: >>>> >>>> While OVS userspace datapath (OVS-DPDK) supports GREv6, it does not >>>> inter-operate with a native Linux ip6gretap tunnel. This is because >>>> the Linux driver uses IPv6 optional headers for the Tunnel >>>> Encapsulation Limit (RFC 2473, section 6.6). >>> >>> Maybe worth noting that the kernel started adding these headers in >>> 4.12. Specifically, it was introduced by 89a23c8b528b ("ip6_tunnel: Fix >>> missing tunnel encapsulation limit option") >>> >>>> OVS userspace simply does not parse these IPv6 extension headers >>>> inside netdev_tnl_ip_extract_tnl_md(), as such popping the tunnel >>>> leaves extra bytes resulting in a mangled decapsulated frame. >>>> >>>> The change below will parse the IPv6 "next header" chain and return >>>> the offset to the upper layer protocol. >>>> >>>> v1->v2 >>>> - Remove netdev_tnl_ip6_get_upperlayer_offset() and reused existing >>>> parse_ipv6_ext_hdrs() function. >>>> >> I also hit this issue recent. I tested this patch and it works OK. >> However, do you think its simpler if we do below: >> --- a/lib/netdev-native-tnl.c >> +++ b/lib/netdev-native-tnl.c >> @@ -146,8 +146,8 @@ netdev_tnl_ip_extract_tnl_md(struct dp_packet >> *packet, struct flow_tnl *tnl, >> tnl->ip_tos = ntohl(tc_flow) >> 20; >> tnl->ip_ttl = ip6->ip6_hlim; >> >> - *hlen += IPV6_HEADER_LEN; >> + *hlen += packet->l4_ofs - packet->l3_ofs; >> >> Since parse_ipv6_ext_hdrs() already called at packet parsing stage, >> the l4_ofs has the extension header's length. > > Are you sure this path is taken for all packets? Quickly looking at the code > I see this path only with connection tracking actions. Or did I miss > something? > in the miniflow_extract, it calls parse_ipv6_ext_hdrs__(&data, &size, &nw_proto, &nw_frag) so the 'size' is updated with the ipv6 extension length.
William _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev