{
switch (mf->id) {
case MFF_TUN_ID:
- return !wc->masks.tun_id;
+ return !wc->masks.tunnel.tun_id;
case MFF_METADATA:
return !wc->masks.metadata;
case MFF_IN_PORT:
{
switch (mf->id) {
case MFF_TUN_ID:
- mask->be64 = wc->masks.tun_id;
+ mask->be64 = wc->masks.tunnel.tun_id;
break;
case MFF_METADATA:
mask->be64 = wc->masks.metadata;
return true;
case MFP_ARP:
- return flow->dl_type == htons(ETH_TYPE_ARP);
+ return (flow->dl_type == htons(ETH_TYPE_ARP) ||
+ flow->dl_type == htons(ETH_TYPE_RARP));
case MFP_IPV4:
return flow->dl_type == htons(ETH_TYPE_IP);
case MFP_IPV6:
{
switch (mf->id) {
case MFF_TUN_ID:
- value->be64 = flow->tun_id;
+ value->be64 = flow->tunnel.tun_id;
break;
case MFF_METADATA:
value->be64 = flow->metadata;
{
switch (mf->id) {
case MFF_TUN_ID:
- flow->tun_id = value->be64;
+ flow->tunnel.tun_id = value->be64;
break;
case MFF_METADATA:
flow->metadata = value->be64;
uint16_t port;
assert(mf->n_bytes == sizeof(ovs_be16));
- port = ofputil_port_from_string(s);
- if (port) {
+ if (ofputil_port_from_string(s, &port)) {
*valuep = htons(port);
*maskp = htons(UINT16_MAX);
return NULL;