uint64_t new_value)
{
switch (dst->index) {
+ case NFI_NXM_OF_ETH_DST:
+ eth_addr_from_uint64(new_value, flow->dl_dst);
+ break;
+
+ case NFI_NXM_OF_ETH_SRC:
+ eth_addr_from_uint64(new_value, flow->dl_src);
+ break;
+
case NFI_NXM_OF_VLAN_TCI:
flow->vlan_tci = htons(new_value);
break;
#error
#endif
- case NFI_NXM_OF_IN_PORT:
- case NFI_NXM_OF_ETH_DST:
- case NFI_NXM_OF_ETH_SRC:
- case NFI_NXM_OF_ETH_TYPE:
case NFI_NXM_OF_IP_TOS:
- case NFI_NXM_OF_IP_PROTO:
- case NFI_NXM_OF_ARP_OP:
+ flow->nw_tos = new_value & IP_DSCP_MASK;
+ break;
+
case NFI_NXM_OF_IP_SRC:
- case NFI_NXM_OF_ARP_SPA:
+ flow->nw_src = htonl(new_value);
+ break;
+
case NFI_NXM_OF_IP_DST:
- case NFI_NXM_OF_ARP_TPA:
+ flow->nw_dst = htonl(new_value);
+ break;
+
case NFI_NXM_OF_TCP_SRC:
case NFI_NXM_OF_UDP_SRC:
+ flow->tp_src = htons(new_value);
+ break;
+
case NFI_NXM_OF_TCP_DST:
case NFI_NXM_OF_UDP_DST:
+ flow->tp_dst = htons(new_value);
+ break;
+
+ case NFI_NXM_OF_IN_PORT:
+ case NFI_NXM_OF_ETH_TYPE:
+ case NFI_NXM_OF_IP_PROTO:
+ case NFI_NXM_OF_ARP_OP:
+ case NFI_NXM_OF_ARP_SPA:
+ case NFI_NXM_OF_ARP_TPA:
case NFI_NXM_OF_ICMP_TYPE:
case NFI_NXM_OF_ICMP_CODE:
case NFI_NXM_NX_TUN_ID_W:
/* ------------ ------------ ----------- ------------- --- */
DEFINE_FIELD_M(NX_TUN_ID, 0, NXM_DL_NONE, 0, true)
DEFINE_FIELD (OF_IN_PORT, FWW_IN_PORT, NXM_DL_NONE, 0, false)
-DEFINE_FIELD_M(OF_ETH_DST, 0, NXM_DL_NONE, 0, false)
-DEFINE_FIELD (OF_ETH_SRC, FWW_DL_SRC, NXM_DL_NONE, 0, false)
+DEFINE_FIELD_M(OF_ETH_DST, 0, NXM_DL_NONE, 0, true)
+DEFINE_FIELD (OF_ETH_SRC, FWW_DL_SRC, NXM_DL_NONE, 0, true)
DEFINE_FIELD (OF_ETH_TYPE, FWW_DL_TYPE, NXM_DL_NONE, 0, false)
DEFINE_FIELD_M(OF_VLAN_TCI, 0, NXM_DL_NONE, 0, true)
-DEFINE_FIELD (OF_IP_TOS, FWW_NW_TOS, NXM_DL_IP_ANY, 0, false)
+DEFINE_FIELD (OF_IP_TOS, FWW_NW_TOS, NXM_DL_IP_ANY, 0, true)
DEFINE_FIELD (OF_IP_PROTO, FWW_NW_PROTO, NXM_DL_IP_ANY, 0, false)
-DEFINE_FIELD_M(OF_IP_SRC, 0, NXM_DL_IP, 0, false)
-DEFINE_FIELD_M(OF_IP_DST, 0, NXM_DL_IP, 0, false)
-DEFINE_FIELD (OF_TCP_SRC, FWW_TP_SRC, NXM_DL_IP_ANY, IPPROTO_TCP, false)
-DEFINE_FIELD (OF_TCP_DST, FWW_TP_DST, NXM_DL_IP_ANY, IPPROTO_TCP, false)
-DEFINE_FIELD (OF_UDP_SRC, FWW_TP_SRC, NXM_DL_IP_ANY, IPPROTO_UDP, false)
-DEFINE_FIELD (OF_UDP_DST, FWW_TP_DST, NXM_DL_IP_ANY, IPPROTO_UDP, false)
+DEFINE_FIELD_M(OF_IP_SRC, 0, NXM_DL_IP, 0, true)
+DEFINE_FIELD_M(OF_IP_DST, 0, NXM_DL_IP, 0, true)
+DEFINE_FIELD (OF_TCP_SRC, FWW_TP_SRC, NXM_DL_IP_ANY, IPPROTO_TCP, true)
+DEFINE_FIELD (OF_TCP_DST, FWW_TP_DST, NXM_DL_IP_ANY, IPPROTO_TCP, true)
+DEFINE_FIELD (OF_UDP_SRC, FWW_TP_SRC, NXM_DL_IP_ANY, IPPROTO_UDP, true)
+DEFINE_FIELD (OF_UDP_DST, FWW_TP_DST, NXM_DL_IP_ANY, IPPROTO_UDP, true)
DEFINE_FIELD (OF_ICMP_TYPE, FWW_TP_SRC, NXM_DL_IP, IPPROTO_ICMP, false)
DEFINE_FIELD (OF_ICMP_CODE, FWW_TP_DST, NXM_DL_IP, IPPROTO_ICMP, false)
DEFINE_FIELD (OF_ARP_OP, FWW_NW_PROTO, NXM_DL_ARP, 0, false)