mf_get_mask(mf, &match->wc, mask);
}
-/* Assigns a random value for field 'mf' to 'value'. */
-void
-mf_random_value(const struct mf_field *mf, union mf_value *value)
-{
- random_bytes(value, mf->n_bytes);
-
- switch (mf->id) {
- case MFF_TUN_ID:
- case MFF_TUN_SRC:
- case MFF_TUN_DST:
- case MFF_TUN_TOS:
- case MFF_TUN_TTL:
- case MFF_TUN_FLAGS:
- case MFF_METADATA:
- case MFF_IN_PORT:
- case MFF_PKT_MARK:
- case MFF_SKB_PRIORITY:
- CASE_MFF_REGS:
- case MFF_ETH_SRC:
- case MFF_ETH_DST:
- case MFF_ETH_TYPE:
- case MFF_VLAN_TCI:
- case MFF_IPV4_SRC:
- case MFF_IPV4_DST:
- case MFF_IPV6_SRC:
- case MFF_IPV6_DST:
- case MFF_IP_PROTO:
- case MFF_IP_TTL:
- case MFF_ARP_SPA:
- case MFF_ARP_TPA:
- case MFF_ARP_SHA:
- case MFF_ARP_THA:
- case MFF_TCP_SRC:
- case MFF_TCP_DST:
- case MFF_UDP_SRC:
- case MFF_UDP_DST:
- case MFF_SCTP_SRC:
- case MFF_SCTP_DST:
- case MFF_ICMPV4_TYPE:
- case MFF_ICMPV4_CODE:
- case MFF_ICMPV6_TYPE:
- case MFF_ICMPV6_CODE:
- case MFF_ND_TARGET:
- case MFF_ND_SLL:
- case MFF_ND_TLL:
- break;
-
- case MFF_TCP_FLAGS:
- value->be16 &= htons(0x0fff);
- break;
-
- case MFF_IN_PORT_OXM:
- value->be32 = ofputil_port_to_ofp11(u16_to_ofp(ntohs(value->be16)));
- break;
-
- case MFF_IPV6_LABEL:
- value->be32 &= htonl(IPV6_LABEL_MASK);
- break;
-
- case MFF_IP_DSCP:
- value->u8 &= IP_DSCP_MASK;
- break;
-
- case MFF_IP_DSCP_SHIFTED:
- value->u8 &= IP_DSCP_MASK >> 2;
- break;
-
- case MFF_IP_ECN:
- value->u8 &= IP_ECN_MASK;
- break;
-
- case MFF_IP_FRAG:
- value->u8 &= FLOW_NW_FRAG_MASK;
- break;
-
- case MFF_ARP_OP:
- value->be16 &= htons(0xff);
- break;
-
- case MFF_DL_VLAN:
- value->be16 &= htons(VLAN_VID_MASK);
- break;
- case MFF_VLAN_VID:
- value->be16 &= htons(VLAN_VID_MASK | VLAN_CFI);
- break;
-
- case MFF_DL_VLAN_PCP:
- case MFF_VLAN_PCP:
- value->u8 &= 0x07;
- break;
-
- case MFF_MPLS_LABEL:
- value->be32 &= htonl(MPLS_LABEL_MASK >> MPLS_LABEL_SHIFT);
- break;
-
- case MFF_MPLS_TC:
- value->u8 &= MPLS_TC_MASK >> MPLS_TC_SHIFT;
- break;
-
- case MFF_MPLS_BOS:
- value->u8 &= MPLS_BOS_MASK >> MPLS_BOS_SHIFT;
- break;
-
- case MFF_N_IDS:
- default:
- NOT_REACHED();
- }
-}
-
static char *
mf_from_integer_string(const struct mf_field *mf, const char *s,
uint8_t *valuep, uint8_t *maskp)