SW_FLOW_KEY_PUT
SW_FLOW_KEY_PUT(match, eth.vlan.tpid, tpid, is_mask);
SW_FLOW_KEY_PUT(match, eth.vlan.tci, tci, is_mask);
SW_FLOW_KEY_PUT(match, eth.cvlan.tpid, tpid, is_mask);
SW_FLOW_KEY_PUT(match, eth.cvlan.tci, tci, is_mask);
SW_FLOW_KEY_PUT(match, eth.type, eth_type, is_mask);
SW_FLOW_KEY_PUT(match, ovs_flow_hash, hash_val, is_mask);
SW_FLOW_KEY_PUT(match, recirc_id, recirc_id, is_mask);
SW_FLOW_KEY_PUT(match, phy.priority,
SW_FLOW_KEY_PUT(match, phy.in_port, in_port, is_mask);
SW_FLOW_KEY_PUT(match, phy.in_port, DP_MAX_PORTS, is_mask);
SW_FLOW_KEY_PUT(match, phy.skb_mark, mark, is_mask);
SW_FLOW_KEY_PUT(match, ct_state, ct_state, is_mask);
SW_FLOW_KEY_PUT(match, ct_zone, ct_zone, is_mask);
SW_FLOW_KEY_PUT(match, ct.mark, mark, is_mask);
SW_FLOW_KEY_PUT(match, ipv4.ct_orig.src, ct->ipv4_src, is_mask);
SW_FLOW_KEY_PUT(match, ipv4.ct_orig.dst, ct->ipv4_dst, is_mask);
SW_FLOW_KEY_PUT(match, ct.orig_tp.src, ct->src_port, is_mask);
SW_FLOW_KEY_PUT(match, ct.orig_tp.dst, ct->dst_port, is_mask);
SW_FLOW_KEY_PUT(match, ct_orig_proto, ct->ipv4_proto, is_mask);
SW_FLOW_KEY_PUT(match, ct.orig_tp.src, ct->src_port, is_mask);
SW_FLOW_KEY_PUT(match, ct.orig_tp.dst, ct->dst_port, is_mask);
SW_FLOW_KEY_PUT(match, ct_orig_proto, ct->ipv6_proto, is_mask);
SW_FLOW_KEY_PUT(match, mac_proto, is_mask ? 0xff : mac_proto, is_mask);
SW_FLOW_KEY_PUT(match, nsh.base.flags,
SW_FLOW_KEY_PUT(match, nsh.base.ttl,
SW_FLOW_KEY_PUT(match, nsh.base.mdtype,
SW_FLOW_KEY_PUT(match, nsh.base.np,
SW_FLOW_KEY_PUT(match, nsh.base.path_hdr,
SW_FLOW_KEY_PUT(match, nsh.context[i],
SW_FLOW_KEY_PUT(match, eth.type, htons(ETH_P_802_2), is_mask);
SW_FLOW_KEY_PUT(match, ip.proto,
SW_FLOW_KEY_PUT(match, ip.tos,
SW_FLOW_KEY_PUT(match, ip.ttl,
SW_FLOW_KEY_PUT(match, ip.frag,
SW_FLOW_KEY_PUT(match, ipv4.addr.src,
SW_FLOW_KEY_PUT(match, ipv4.addr.dst,
SW_FLOW_KEY_PUT(match, ipv6.label,
SW_FLOW_KEY_PUT(match, ip.proto,
SW_FLOW_KEY_PUT(match, ip.tos,
SW_FLOW_KEY_PUT(match, ip.ttl,
SW_FLOW_KEY_PUT(match, ip.frag,
SW_FLOW_KEY_PUT(match, ipv6.exthdrs,
SW_FLOW_KEY_PUT(match, ipv4.addr.src,
SW_FLOW_KEY_PUT(match, ipv4.addr.dst,
SW_FLOW_KEY_PUT(match, ip.proto,
SW_FLOW_KEY_PUT(match, mpls.lse[i],
SW_FLOW_KEY_PUT(match, mpls.num_labels_mask,
SW_FLOW_KEY_PUT(match, tp.src, tcp_key->tcp_src, is_mask);
SW_FLOW_KEY_PUT(match, tp.dst, tcp_key->tcp_dst, is_mask);
SW_FLOW_KEY_PUT(match, tp.flags,
SW_FLOW_KEY_PUT(match, tp.src, udp_key->udp_src, is_mask);
SW_FLOW_KEY_PUT(match, tp.dst, udp_key->udp_dst, is_mask);
SW_FLOW_KEY_PUT(match, tp.src, sctp_key->sctp_src, is_mask);
SW_FLOW_KEY_PUT(match, tp.dst, sctp_key->sctp_dst, is_mask);
SW_FLOW_KEY_PUT(match, tp.src,
SW_FLOW_KEY_PUT(match, tp.dst,
SW_FLOW_KEY_PUT(match, tp.src,
SW_FLOW_KEY_PUT(match, tp.dst,
SW_FLOW_KEY_PUT(match, eth.vlan.tci, htons(0xffff), true);
SW_FLOW_KEY_PUT(match, eth.cvlan.tci, htons(0xffff), true);
SW_FLOW_KEY_PUT(match, tun_opts_len, nla_len(a),
SW_FLOW_KEY_PUT(match, tun_opts_len, 0xff, true);
SW_FLOW_KEY_PUT(match, tun_opts_len, sizeof(opts), false);
SW_FLOW_KEY_PUT(match, tun_opts_len, 0xff, true);
SW_FLOW_KEY_PUT(match, tun_opts_len,
SW_FLOW_KEY_PUT(match, tun_opts_len, 0xff, true);
SW_FLOW_KEY_PUT(match, tun_key.tun_id,
SW_FLOW_KEY_PUT(match, tun_key.u.ipv4.src,
SW_FLOW_KEY_PUT(match, tun_key.u.ipv4.dst,
SW_FLOW_KEY_PUT(match, tun_key.u.ipv6.src,
SW_FLOW_KEY_PUT(match, tun_key.u.ipv6.dst,
SW_FLOW_KEY_PUT(match, tun_key.tos,
SW_FLOW_KEY_PUT(match, tun_key.ttl,
SW_FLOW_KEY_PUT(match, tun_key.tp_src,
SW_FLOW_KEY_PUT(match, tun_key.tp_dst,
SW_FLOW_KEY_PUT(match, tun_proto, ipv6 ? AF_INET6 : AF_INET,