On Tue, Sep 18, 2018 at 08:29:12PM +0530, Vishal Deep Ajmera wrote: > Currently OVS supports all ARP protocol fields as OXM match fields > to implement the relevant ARP procedures for IPv4. This includes support > for matching copying and setting ARP fields. In IPv6 ARP has been > replaced by ICMPv6 neighbor discovery (ND) procedures, neighbor > advertisement and neighbor solicitation. > > The support for ICMPv6 fields in OVS is not complete for the use cases > equivalent to ARP in IPv4. OVS lacks support for matching, copying and > setting the “ND option type” and “ND reserved” fields. Without these user > cannot implement all ICMPv6 ND procedures for IPv6 support. > > This commit adds additional OXM fields to OVS for ICMPv6 “ND option type“ > and ICMPv6 “ND reserved” using the OXM extension mechanism. > > This allows support for parsing these fields from an ICMPv6 packet header > and extending the OpenFlow protocol with specifications for these new OXM > fields for matching, copying and setting. > > Signed-off-by: Ashvin Lakshmikantha <ashvin.lakshmikan...@ericsson.com> > Signed-off-by: Vishal Deep Ajmera <vishal.deep.ajm...@ericsson.com> > Co-authored-by: Vishal Deep Ajmera <vishal.deep.ajm...@ericsson.com>
Thanks for working on making OVS better support IPv6. The following change stood out to me. It appears to break ABI compatibility in the kernel datapath. Is there some reason it's OK? I especially don't understand why it adds a nested inner struct. > --- a/datapath/linux/compat/include/linux/openvswitch.h > +++ b/datapath/linux/compat/include/linux/openvswitch.h > @@ -484,9 +484,13 @@ struct ovs_key_arp { > }; > > struct ovs_key_nd { > - __be32 nd_target[4]; > - __u8 nd_sll[ETH_ALEN]; > - __u8 nd_tll[ETH_ALEN]; > + __be32 nd_reserved; > + __be32 nd_target[4]; > + __u8 nd_options_type; > + struct { > + __u8 nd_sll[ETH_ALEN]; > + __u8 nd_tll[ETH_ALEN]; > + }; > }; I have not otherwise reviewed this patch. Thanks, Ben. _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev