- /* ## -------- ## */
- /* ## metadata ## */
- /* ## -------- ## */
-
- {
- MFF_TUN_ID, "tun_id", "tunnel_id",
- MF_FIELD_SIZES(be64),
- MFM_FULLY,
- MFS_HEXADECIMAL,
- MFP_NONE,
- true,
- NXM_NX_TUN_ID, "NXM_NX_TUN_ID",
- OXM_OF_TUNNEL_ID, "OXM_OF_TUNNEL_ID",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- FLOW_U32OFS(tunnel.tun_id),
- }, {
- MFF_TUN_SRC, "tun_src", NULL,
- MF_FIELD_SIZES(be32),
- MFM_FULLY,
- MFS_IPV4,
- MFP_NONE,
- true,
- NXM_NX_TUN_IPV4_SRC, "NXM_NX_TUN_IPV4_SRC",
- NXM_NX_TUN_IPV4_SRC, "NXM_NX_TUN_IPV4_SRC",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- FLOW_U32OFS(tunnel.ip_src),
- }, {
- MFF_TUN_DST, "tun_dst", NULL,
- MF_FIELD_SIZES(be32),
- MFM_FULLY,
- MFS_IPV4,
- MFP_NONE,
- true,
- NXM_NX_TUN_IPV4_DST, "NXM_NX_TUN_IPV4_DST",
- NXM_NX_TUN_IPV4_DST, "NXM_NX_TUN_IPV4_DST",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- FLOW_U32OFS(tunnel.ip_dst),
- }, {
- MFF_TUN_FLAGS, "tun_flags", NULL,
- MF_FIELD_SIZES(be16),
- MFM_NONE,
- MFS_TNL_FLAGS,
- MFP_NONE,
- false,
- 0, NULL,
- 0, NULL,
- OFPUTIL_P_NONE,
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_TUN_TTL, "tun_ttl", NULL,
- MF_FIELD_SIZES(u8),
- MFM_NONE,
- MFS_DECIMAL,
- MFP_NONE,
- false,
- 0, NULL,
- 0, NULL,
- OFPUTIL_P_NONE,
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_TUN_TOS, "tun_tos", NULL,
- MF_FIELD_SIZES(u8),
- MFM_NONE,
- MFS_DECIMAL,
- MFP_NONE,
- false,
- 0, NULL,
- 0, NULL,
- OFPUTIL_P_NONE,
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_METADATA, "metadata", NULL,
- MF_FIELD_SIZES(be64),
- MFM_FULLY,
- MFS_HEXADECIMAL,
- MFP_NONE,
- true,
- OXM_OF_METADATA, "OXM_OF_METADATA",
- OXM_OF_METADATA, "OXM_OF_METADATA",
- OFPUTIL_P_NXM_OF11_UP,
- OFPUTIL_P_NXM_OF11_UP,
- -1,
- }, {
- MFF_IN_PORT, "in_port", NULL,
- MF_FIELD_SIZES(be16),
- MFM_NONE,
- MFS_OFP_PORT,
- MFP_NONE,
- true,
- NXM_OF_IN_PORT, "NXM_OF_IN_PORT",
- NXM_OF_IN_PORT, "NXM_OF_IN_PORT",
- OFPUTIL_P_ANY, /* OF11+ via mapping to 32 bits. */
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_IN_PORT_OXM, "in_port_oxm", NULL,
- MF_FIELD_SIZES(be32),
- MFM_NONE,
- MFS_OFP_PORT_OXM,
- MFP_NONE,
- true,
- OXM_OF_IN_PORT, "OXM_OF_IN_PORT",
- OXM_OF_IN_PORT, "OXM_OF_IN_PORT",
- OFPUTIL_P_OF11_UP,
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_SKB_PRIORITY, "skb_priority", NULL,
- MF_FIELD_SIZES(be32),
- MFM_NONE,
- MFS_HEXADECIMAL,
- MFP_NONE,
- false,
- 0, NULL,
- 0, NULL,
- OFPUTIL_P_NONE,
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_PKT_MARK, "pkt_mark", NULL,
- MF_FIELD_SIZES(be32),
- MFM_FULLY,
- MFS_HEXADECIMAL,
- MFP_NONE,
- true,
- NXM_NX_PKT_MARK, "NXM_NX_PKT_MARK",
- NXM_NX_PKT_MARK, "NXM_NX_PKT_MARK",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- },
-
-#define REGISTER(IDX) \
- { \
- MFF_REG##IDX, "reg" #IDX, NULL, \
- MF_FIELD_SIZES(be32), \
- MFM_FULLY, \
- MFS_HEXADECIMAL, \
- MFP_NONE, \
- true, \
- NXM_NX_REG(IDX), "NXM_NX_REG" #IDX, \
- NXM_NX_REG(IDX), "NXM_NX_REG" #IDX, \
- OFPUTIL_P_NXM_OXM_ANY, \
- OFPUTIL_P_NXM_OXM_ANY, \
- -1, \
- }
-#if FLOW_N_REGS > 0
- REGISTER(0),
-#endif
-#if FLOW_N_REGS > 1
- REGISTER(1),
-#endif
-#if FLOW_N_REGS > 2
- REGISTER(2),
-#endif
-#if FLOW_N_REGS > 3
- REGISTER(3),
-#endif
-#if FLOW_N_REGS > 4
- REGISTER(4),
-#endif
-#if FLOW_N_REGS > 5
- REGISTER(5),
-#endif
-#if FLOW_N_REGS > 6
- REGISTER(6),
-#endif
-#if FLOW_N_REGS > 7
- REGISTER(7),
-#endif
-#if FLOW_N_REGS > 8
-#error
-#endif
-
- /* ## -- ## */
- /* ## L2 ## */
- /* ## -- ## */
-
- {
- MFF_ETH_SRC, "eth_src", "dl_src",
- MF_FIELD_SIZES(mac),
- MFM_FULLY,
- MFS_ETHERNET,
- MFP_NONE,
- true,
- NXM_OF_ETH_SRC, "NXM_OF_ETH_SRC",
- OXM_OF_ETH_SRC, "OXM_OF_ETH_SRC",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NXM_OF11_UP, /* Bitwise masking only with NXM and OF11+! */
- -1,
- }, {
- MFF_ETH_DST, "eth_dst", "dl_dst",
- MF_FIELD_SIZES(mac),
- MFM_FULLY,
- MFS_ETHERNET,
- MFP_NONE,
- true,
- NXM_OF_ETH_DST, "NXM_OF_ETH_DST",
- OXM_OF_ETH_DST, "OXM_OF_ETH_DST",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NXM_OF11_UP, /* Bitwise masking only with NXM and OF11+! */
- -1,
- }, {
- MFF_ETH_TYPE, "eth_type", "dl_type",
- MF_FIELD_SIZES(be16),
- MFM_NONE,
- MFS_HEXADECIMAL,
- MFP_NONE,
- false,
- NXM_OF_ETH_TYPE, "NXM_OF_ETH_TYPE",
- OXM_OF_ETH_TYPE, "OXM_OF_ETH_TYPE",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NONE,
- -1,
- },
-
- {
- MFF_VLAN_TCI, "vlan_tci", NULL,
- MF_FIELD_SIZES(be16),
- MFM_FULLY,
- MFS_HEXADECIMAL,
- MFP_NONE,
- true,
- NXM_OF_VLAN_TCI, "NXM_OF_VLAN_TCI",
- NXM_OF_VLAN_TCI, "NXM_OF_VLAN_TCI",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- }, {
- MFF_DL_VLAN, "dl_vlan", NULL,
- sizeof(ovs_be16), 12,
- MFM_NONE,
- MFS_DECIMAL,
- MFP_NONE,
- true,
- 0, NULL,
- 0, NULL,
- OFPUTIL_P_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- }, {
- MFF_VLAN_VID, "vlan_vid", NULL,
- sizeof(ovs_be16), 12,
- MFM_FULLY,
- MFS_DECIMAL,
- MFP_NONE,
- true,
- OXM_OF_VLAN_VID, "OXM_OF_VLAN_VID",
- OXM_OF_VLAN_VID, "OXM_OF_VLAN_VID",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- }, {
- MFF_DL_VLAN_PCP, "dl_vlan_pcp", NULL,
- 1, 3,
- MFM_NONE,
- MFS_DECIMAL,
- MFP_NONE,
- true,
- 0, NULL,
- 0, NULL,
- OFPUTIL_P_ANY, /* Will be mapped to NXM and OXM. */
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_VLAN_PCP, "vlan_pcp", NULL,
- 1, 3,
- MFM_NONE,
- MFS_DECIMAL,
- MFP_VLAN_VID,
- true,
- OXM_OF_VLAN_PCP, "OXM_OF_VLAN_PCP",
- OXM_OF_VLAN_PCP, "OXM_OF_VLAN_PCP",
- OFPUTIL_P_ANY, /* Will be mapped to OF10 and NXM. */
- OFPUTIL_P_NONE,
- -1,
- },
-
- /* ## ---- ## */
- /* ## L2.5 ## */
- /* ## ---- ## */
- {
- MFF_MPLS_LABEL, "mpls_label", NULL,
- 4, 20,
- MFM_NONE,
- MFS_DECIMAL,
- MFP_MPLS,
- true,
- OXM_OF_MPLS_LABEL, "OXM_OF_MPLS_LABEL",
- OXM_OF_MPLS_LABEL, "OXM_OF_MPLS_LABEL",
- OFPUTIL_P_NXM_OF11_UP,
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_MPLS_TC, "mpls_tc", NULL,
- 1, 3,
- MFM_NONE,
- MFS_DECIMAL,
- MFP_MPLS,
- true,
- OXM_OF_MPLS_TC, "OXM_OF_MPLS_TC",
- OXM_OF_MPLS_TC, "OXM_OF_MPLS_TC",
- OFPUTIL_P_NXM_OF11_UP,
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_MPLS_BOS, "mpls_bos", NULL,
- 1, 1,
- MFM_NONE,
- MFS_DECIMAL,
- MFP_MPLS,
- false,
- OXM_OF_MPLS_BOS, "OXM_OF_MPLS_BOS",
- OXM_OF_MPLS_BOS, "OXM_OF_MPLS_BOS",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NONE,
- -1,
- },
-
- /* ## -- ## */
- /* ## L3 ## */
- /* ## -- ## */
-
- {
- MFF_IPV4_SRC, "ip_src", "nw_src",
- MF_FIELD_SIZES(be32),
- MFM_FULLY,
- MFS_IPV4,
- MFP_IPV4,
- true,
- NXM_OF_IP_SRC, "NXM_OF_IP_SRC",
- OXM_OF_IPV4_SRC, "OXM_OF_IPV4_SRC",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NXM_OF11_UP,
- FLOW_U32OFS(nw_src),
- }, {
- MFF_IPV4_DST, "ip_dst", "nw_dst",
- MF_FIELD_SIZES(be32),
- MFM_FULLY,
- MFS_IPV4,
- MFP_IPV4,
- true,
- NXM_OF_IP_DST, "NXM_OF_IP_DST",
- OXM_OF_IPV4_DST, "OXM_OF_IPV4_DST",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NXM_OF11_UP,
- FLOW_U32OFS(nw_dst),
- },
-
- {
- MFF_IPV6_SRC, "ipv6_src", NULL,
- MF_FIELD_SIZES(ipv6),
- MFM_FULLY,
- MFS_IPV6,
- MFP_IPV6,
- true,
- NXM_NX_IPV6_SRC, "NXM_NX_IPV6_SRC",
- OXM_OF_IPV6_SRC, "OXM_OF_IPV6_SRC",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- FLOW_U32OFS(ipv6_src),
- }, {
- MFF_IPV6_DST, "ipv6_dst", NULL,
- MF_FIELD_SIZES(ipv6),
- MFM_FULLY,
- MFS_IPV6,
- MFP_IPV6,
- true,
- NXM_NX_IPV6_DST, "NXM_NX_IPV6_DST",
- OXM_OF_IPV6_DST, "OXM_OF_IPV6_DST",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- FLOW_U32OFS(ipv6_dst),
- },
- {
- MFF_IPV6_LABEL, "ipv6_label", NULL,
- 4, 20,
- MFM_FULLY,
- MFS_HEXADECIMAL,
- MFP_IPV6,
- false,
- NXM_NX_IPV6_LABEL, "NXM_NX_IPV6_LABEL",
- OXM_OF_IPV6_FLABEL, "OXM_OF_IPV6_FLABEL",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- },
-
- {
- MFF_IP_PROTO, "nw_proto", "ip_proto",
- MF_FIELD_SIZES(u8),
- MFM_NONE,
- MFS_DECIMAL,
- MFP_IP_ANY,
- false,
- NXM_OF_IP_PROTO, "NXM_OF_IP_PROTO",
- OXM_OF_IP_PROTO, "OXM_OF_IP_PROTO",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_IP_DSCP, "nw_tos", NULL,
- MF_FIELD_SIZES(u8),
- MFM_NONE,
- MFS_DECIMAL,
- MFP_IP_ANY,
- true,
- NXM_OF_IP_TOS, "NXM_OF_IP_TOS",
- NXM_OF_IP_TOS, "NXM_OF_IP_TOS",
- OFPUTIL_P_ANY, /* Will be shifted for OXM. */
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_IP_DSCP_SHIFTED, "ip_dscp", NULL,
- 1, 6,
- MFM_NONE,
- MFS_DECIMAL,
- MFP_IP_ANY,
- true,
- OXM_OF_IP_DSCP, "OXM_OF_IP_DSCP",
- OXM_OF_IP_DSCP, "OXM_OF_IP_DSCP",
- OFPUTIL_P_ANY, /* Will be shifted for non-OXM. */
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_IP_ECN, "nw_ecn", "ip_ecn",
- 1, 2,
- MFM_NONE,
- MFS_DECIMAL,
- MFP_IP_ANY,
- true,
- NXM_NX_IP_ECN, "NXM_NX_IP_ECN",
- OXM_OF_IP_ECN, "OXM_OF_IP_ECN",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_IP_TTL, "nw_ttl", NULL,
- MF_FIELD_SIZES(u8),
- MFM_NONE,
- MFS_DECIMAL,
- MFP_IP_ANY,
- true,
- NXM_NX_IP_TTL, "NXM_NX_IP_TTL",
- NXM_NX_IP_TTL, "NXM_NX_IP_TTL",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_IP_FRAG, "ip_frag", NULL,
- 1, 2,
- MFM_FULLY,
- MFS_FRAG,
- MFP_IP_ANY,
- false,
- NXM_NX_IP_FRAG, "NXM_NX_IP_FRAG",
- NXM_NX_IP_FRAG, "NXM_NX_IP_FRAG",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- },
-
- {
- MFF_ARP_OP, "arp_op", NULL,
- MF_FIELD_SIZES(be16),
- MFM_NONE,
- MFS_DECIMAL,
- MFP_ARP,
- true,
- NXM_OF_ARP_OP, "NXM_OF_ARP_OP",
- OXM_OF_ARP_OP, "OXM_OF_ARP_OP",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_ARP_SPA, "arp_spa", NULL,
- MF_FIELD_SIZES(be32),
- MFM_FULLY,
- MFS_IPV4,
- MFP_ARP,
- true,
- NXM_OF_ARP_SPA, "NXM_OF_ARP_SPA",
- OXM_OF_ARP_SPA, "OXM_OF_ARP_SPA",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NXM_OF11_UP,
- -1,
- }, {
- MFF_ARP_TPA, "arp_tpa", NULL,
- MF_FIELD_SIZES(be32),
- MFM_FULLY,
- MFS_IPV4,
- MFP_ARP,
- true,
- NXM_OF_ARP_TPA, "NXM_OF_ARP_TPA",
- OXM_OF_ARP_TPA, "OXM_OF_ARP_TPA",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NXM_OF11_UP,
- -1,
- }, {
- MFF_ARP_SHA, "arp_sha", NULL,
- MF_FIELD_SIZES(mac),
- MFM_FULLY,
- MFS_ETHERNET,
- MFP_ARP,
- true,
- NXM_NX_ARP_SHA, "NXM_NX_ARP_SHA",
- OXM_OF_ARP_SHA, "OXM_OF_ARP_SHA",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- }, {
- MFF_ARP_THA, "arp_tha", NULL,
- MF_FIELD_SIZES(mac),
- MFM_FULLY,
- MFS_ETHERNET,
- MFP_ARP,
- true,
- NXM_NX_ARP_THA, "NXM_NX_ARP_THA",
- OXM_OF_ARP_THA, "OXM_OF_ARP_THA",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- },
-
- /* ## -- ## */
- /* ## L4 ## */
- /* ## -- ## */
-
- {
- MFF_TCP_SRC, "tcp_src", "tp_src",
- MF_FIELD_SIZES(be16),
- MFM_FULLY,
- MFS_DECIMAL,
- MFP_TCP,
- true,
- NXM_OF_TCP_SRC, "NXM_OF_TCP_SRC",
- OXM_OF_TCP_SRC, "OXM_OF_TCP_SRC",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- }, {
- MFF_TCP_DST, "tcp_dst", "tp_dst",
- MF_FIELD_SIZES(be16),
- MFM_FULLY,
- MFS_DECIMAL,
- MFP_TCP,
- true,
- NXM_OF_TCP_DST, "NXM_OF_TCP_DST",
- OXM_OF_TCP_DST, "OXM_OF_TCP_DST",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- }, {
- MFF_TCP_FLAGS, "tcp_flags", NULL,
- 2, 12,
- MFM_FULLY,
- MFS_TCP_FLAGS,
- MFP_TCP,
- false,
- NXM_NX_TCP_FLAGS, "NXM_NX_TCP_FLAGS",
- NXM_NX_TCP_FLAGS, "NXM_NX_TCP_FLAGS",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- },
-
- {
- MFF_UDP_SRC, "udp_src", NULL,
- MF_FIELD_SIZES(be16),
- MFM_FULLY,
- MFS_DECIMAL,
- MFP_UDP,
- true,
- NXM_OF_UDP_SRC, "NXM_OF_UDP_SRC",
- OXM_OF_UDP_SRC, "OXM_OF_UDP_SRC",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- }, {
- MFF_UDP_DST, "udp_dst", NULL,
- MF_FIELD_SIZES(be16),
- MFM_FULLY,
- MFS_DECIMAL,
- MFP_UDP,
- true,
- NXM_OF_UDP_DST, "NXM_OF_UDP_DST",
- OXM_OF_UDP_DST, "OXM_OF_UDP_DST",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- },
-
- {
- MFF_SCTP_SRC, "sctp_src", NULL,
- MF_FIELD_SIZES(be16),
- MFM_FULLY,
- MFS_DECIMAL,
- MFP_SCTP,
- true,
- OXM_OF_SCTP_SRC, "OXM_OF_SCTP_SRC",
- OXM_OF_SCTP_SRC, "OXM_OF_SCTP_SRC",
- OFPUTIL_P_NXM_OF11_UP,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- }, {
- MFF_SCTP_DST, "sctp_dst", NULL,
- MF_FIELD_SIZES(be16),
- MFM_FULLY,
- MFS_DECIMAL,
- MFP_SCTP,
- true,
- OXM_OF_SCTP_DST, "OXM_OF_SCTP_DST",
- OXM_OF_SCTP_DST, "OXM_OF_SCTP_DST",
- OFPUTIL_P_NXM_OF11_UP,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- },
-
- {
- MFF_ICMPV4_TYPE, "icmp_type", NULL,
- MF_FIELD_SIZES(u8),
- MFM_NONE,
- MFS_DECIMAL,
- MFP_ICMPV4,
- false,
- NXM_OF_ICMP_TYPE, "NXM_OF_ICMP_TYPE",
- OXM_OF_ICMPV4_TYPE, "OXM_OF_ICMPV4_TYPE",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_ICMPV4_CODE, "icmp_code", NULL,
- MF_FIELD_SIZES(u8),
- MFM_NONE,
- MFS_DECIMAL,
- MFP_ICMPV4,
- false,
- NXM_OF_ICMP_CODE, "NXM_OF_ICMP_CODE",
- OXM_OF_ICMPV4_CODE, "OXM_OF_ICMPV4_CODE",
- OFPUTIL_P_ANY,
- OFPUTIL_P_NONE,
- -1,
- },
-
- {
- MFF_ICMPV6_TYPE, "icmpv6_type", NULL,
- MF_FIELD_SIZES(u8),
- MFM_NONE,
- MFS_DECIMAL,
- MFP_ICMPV6,
- false,
- NXM_NX_ICMPV6_TYPE, "NXM_NX_ICMPV6_TYPE",
- OXM_OF_ICMPV6_TYPE, "OXM_OF_ICMPV6_TYPE",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NONE,
- -1,
- }, {
- MFF_ICMPV6_CODE, "icmpv6_code", NULL,
- MF_FIELD_SIZES(u8),
- MFM_NONE,
- MFS_DECIMAL,
- MFP_ICMPV6,
- false,
- NXM_NX_ICMPV6_CODE, "NXM_NX_ICMPV6_CODE",
- OXM_OF_ICMPV6_CODE, "OXM_OF_ICMPV6_CODE",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NONE,
- -1,
- },
-
- /* ## ---- ## */
- /* ## L"5" ## */
- /* ## ---- ## */
-
- {
- MFF_ND_TARGET, "nd_target", NULL,
- MF_FIELD_SIZES(ipv6),
- MFM_FULLY,
- MFS_IPV6,
- MFP_ND,
- false,
- NXM_NX_ND_TARGET, "NXM_NX_ND_TARGET",
- OXM_OF_IPV6_ND_TARGET, "OXM_OF_IPV6_ND_TARGET",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- }, {
- MFF_ND_SLL, "nd_sll", NULL,
- MF_FIELD_SIZES(mac),
- MFM_FULLY,
- MFS_ETHERNET,
- MFP_ND_SOLICIT,
- false,
- NXM_NX_ND_SLL, "NXM_NX_ND_SLL",
- OXM_OF_IPV6_ND_SLL, "OXM_OF_IPV6_ND_SLL",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- }, {
- MFF_ND_TLL, "nd_tll", NULL,
- MF_FIELD_SIZES(mac),
- MFM_FULLY,
- MFS_ETHERNET,
- MFP_ND_ADVERT,
- false,
- NXM_NX_ND_TLL, "NXM_NX_ND_TLL",
- OXM_OF_IPV6_ND_TLL, "OXM_OF_IPV6_ND_TLL",
- OFPUTIL_P_NXM_OXM_ANY,
- OFPUTIL_P_NXM_OXM_ANY,
- -1,
- }
-};
-
-/* Maps an NXM or OXM header value to an mf_field. */
-struct nxm_field {
- struct hmap_node hmap_node; /* In 'all_fields' hmap. */
- uint32_t header; /* NXM or OXM header value. */
- const struct mf_field *mf;