nicira-ext: Support matching IPv6 Neighbor Discovery messages.
[sliver-openvswitch.git] / datapath / flow.h
index b9af272..21df5fb 100644 (file)
@@ -31,8 +31,17 @@ struct sw_flow_actions {
 
 struct sw_flow_key {
        __be64  tun_id;     /* Encapsulating tunnel ID. */
-       __be32  nw_src;     /* IP source address. */
-       __be32  nw_dst;     /* IP destination address. */
+       union {
+               struct {
+                       __be32  ipv4_src;        /* IPv4 source address. */
+                       __be32  ipv4_dst;        /* IPv4 destination address. */
+               };
+               struct {
+                       __be32  ipv6_src[4]; /* IPv6 source address. */
+                       __be32  ipv6_dst[4]; /* IPv6 source address. */
+               };
+       };
+       __be32  nd_target[4]; /* IPv6 ND target address. */
        u16     in_port;    /* Input switch port. */
        __be16  dl_tci;     /* 0 if no VLAN, VLAN_TAG_PRESENT set otherwise. */
        __be16  dl_type;    /* Ethernet frame type. */
@@ -42,8 +51,8 @@ struct sw_flow_key {
        u8      dl_dst[ETH_ALEN]; /* Ethernet destination address. */
        u8      nw_proto;   /* IP protocol or lower 8 bits of ARP opcode. */
        u8      nw_tos;     /* IP ToS (DSCP field, 6 bits). */
-       u8      arp_sha[ETH_ALEN]; /* ARP source hardware address. */
-       u8      arp_tha[ETH_ALEN]; /* ARP target hardware address. */
+       u8      arp_sha[ETH_ALEN]; /* ARP/ND source hardware address. */
+       u8      arp_tha[ETH_ALEN]; /* ARP/ND target hardware address. */
 };
 
 struct sw_flow {