Lines Matching refs:key

123 			     sizeof((match)->key->field), is_mask);	    \
125 (match)->mask->key.field = value; \
127 (match)->key->field = value; \
134 memcpy((u8 *)&(match)->mask->key + offset, value_p, \
137 memcpy((u8 *)(match)->key + offset, value_p, len); \
147 sizeof((match)->key->field), is_mask); \
149 memset((u8 *)&(match)->mask->key.field, value, \
150 sizeof((match)->mask->key.field)); \
152 memset((u8 *)&(match)->key->field, value, \
153 sizeof((match)->key->field)); \
159 bitmap_copy(is_mask ? (match)->mask->key.field : (match)->key->field, \
192 if (match->key->eth.type == htons(ETH_P_ARP) in match_validate()
193 || match->key->eth.type == htons(ETH_P_RARP)) { in match_validate()
195 if (match->mask && (match->mask->key.eth.type == htons(0xffff))) in match_validate()
199 if (eth_p_mpls(match->key->eth.type)) { in match_validate()
201 if (match->mask && (match->mask->key.eth.type == htons(0xffff))) in match_validate()
205 if (match->key->eth.type == htons(ETH_P_IP)) { in match_validate()
207 if (match->mask && match->mask->key.eth.type == htons(0xffff)) { in match_validate()
212 if (match->key->ip.frag != OVS_FRAG_TYPE_LATER) { in match_validate()
213 if (match->key->ip.proto == IPPROTO_UDP) { in match_validate()
215 if (match->mask && (match->mask->key.ip.proto == 0xff)) in match_validate()
219 if (match->key->ip.proto == IPPROTO_SCTP) { in match_validate()
221 if (match->mask && (match->mask->key.ip.proto == 0xff)) in match_validate()
225 if (match->key->ip.proto == IPPROTO_TCP) { in match_validate()
228 if (match->mask && (match->mask->key.ip.proto == 0xff)) { in match_validate()
234 if (match->key->ip.proto == IPPROTO_ICMP) { in match_validate()
236 if (match->mask && (match->mask->key.ip.proto == 0xff)) in match_validate()
242 if (match->key->eth.type == htons(ETH_P_IPV6)) { in match_validate()
244 if (match->mask && match->mask->key.eth.type == htons(0xffff)) { in match_validate()
249 if (match->key->ip.frag != OVS_FRAG_TYPE_LATER) { in match_validate()
250 if (match->key->ip.proto == IPPROTO_UDP) { in match_validate()
252 if (match->mask && (match->mask->key.ip.proto == 0xff)) in match_validate()
256 if (match->key->ip.proto == IPPROTO_SCTP) { in match_validate()
258 if (match->mask && (match->mask->key.ip.proto == 0xff)) in match_validate()
262 if (match->key->ip.proto == IPPROTO_TCP) { in match_validate()
265 if (match->mask && (match->mask->key.ip.proto == 0xff)) { in match_validate()
271 if (match->key->ip.proto == IPPROTO_ICMPV6) { in match_validate()
273 if (match->mask && (match->mask->key.ip.proto == 0xff)) in match_validate()
276 if (match->key->tp.src == in match_validate()
278 match->key->tp.src == htons(NDISC_NEIGHBOUR_ADVERTISEMENT)) { in match_validate()
286 if (match->mask && (match->mask->key.tp.src == htons(0xff))) in match_validate()
293 if (match->key->eth.type == htons(ETH_P_NSH)) { in match_validate()
296 match->mask->key.eth.type == htons(0xffff)) { in match_validate()
548 if (nla_len(a) > sizeof(match->key->tun_opts)) { in genev_tun_opt_from_nlattr()
550 nla_len(a), sizeof(match->key->tun_opts)); in genev_tun_opt_from_nlattr()
578 if (match->key->tun_opts_len != nla_len(a)) { in genev_tun_opt_from_nlattr()
580 match->key->tun_opts_len, nla_len(a)); in genev_tun_opt_from_nlattr()
602 BUILD_BUG_ON(sizeof(opts) > sizeof(match->key->tun_opts)); in vxlan_tun_opt_from_nlattr()
656 sizeof(match->key->tun_opts)); in erspan_tun_opt_from_nlattr()
658 if (nla_len(a) > sizeof(match->key->tun_opts)) { in erspan_tun_opt_from_nlattr()
660 nla_len(a), sizeof(match->key->tun_opts)); in erspan_tun_opt_from_nlattr()
837 if (match->key->tun_key.u.ipv4.src || in ip_tun_from_nlattr()
838 match->key->tun_key.u.ipv4.dst || in ip_tun_from_nlattr()
839 match->key->tun_key.tp_src || in ip_tun_from_nlattr()
840 match->key->tun_key.tp_dst || in ip_tun_from_nlattr()
841 match->key->tun_key.ttl || in ip_tun_from_nlattr()
842 match->key->tun_key.tos || in ip_tun_from_nlattr()
847 } else if (!match->key->tun_key.u.ipv4.dst) { in ip_tun_from_nlattr()
852 if (ipv6 && ipv6_addr_any(&match->key->tun_key.u.ipv6.dst)) { in ip_tun_from_nlattr()
982 return __ip_tun_to_nlattr(skb, &tun_info->key, in ovs_nla_put_tunnel_info()
1055 bool encap_valid = !!(match->key->eth.vlan.tci & in validate_vlan_mask_from_nlattrs()
1057 bool i_encap_valid = !!(match->key->eth.cvlan.tci & in validate_vlan_mask_from_nlattrs()
1138 encap_valid = !!(match->key->eth.vlan.tci & htons(VLAN_CFI_MASK)); in parse_vlan_from_nlattrs()
1280 sizeof(match->key->ipv6.ct_orig.src), in metadata_from_nlattrs()
1283 sizeof(match->key->ipv6.ct_orig.dst), in metadata_from_nlattrs()
1559 } else if (!match->key->eth.type) { in ovs_key_from_nlattrs()
1616 sizeof(match->key->ipv6.addr.src), in ovs_key_from_nlattrs()
1620 sizeof(match->key->ipv6.addr.dst), in ovs_key_from_nlattrs()
1755 sizeof(match->key->ipv6.nd.target), in ovs_key_from_nlattrs()
1858 if (match->key->tun_proto) in ovs_nla_get_match()
1922 const struct sw_flow_key *key, bool log) in ovs_nla_get_identifier() argument
1933 memcpy(new_key, key, sizeof(*key)); in ovs_nla_get_identifier()
1966 u64 attrs, struct sw_flow_key *key, bool log) in ovs_nla_get_flow_metadata() argument
1971 match.key = key; in ovs_nla_get_flow_metadata()
1973 key->ct_state = 0; in ovs_nla_get_flow_metadata()
1974 key->ct_zone = 0; in ovs_nla_get_flow_metadata()
1975 key->ct_orig_proto = 0; in ovs_nla_get_flow_metadata()
1976 memset(&key->ct, 0, sizeof(key->ct)); in ovs_nla_get_flow_metadata()
1977 memset(&key->ipv4.ct_orig, 0, sizeof(key->ipv4.ct_orig)); in ovs_nla_get_flow_metadata()
1978 memset(&key->ipv6.ct_orig, 0, sizeof(key->ipv6.ct_orig)); in ovs_nla_get_flow_metadata()
1980 key->phy.in_port = DP_MAX_PORTS; in ovs_nla_get_flow_metadata()
2309 return ovs_nla_put_key(&flow->key, &flow->key, in ovs_nla_put_masked_key()
2316 return ovs_nla_put_key(&flow->key, &flow->mask->key, in ovs_nla_put_mask()
2546 const struct sw_flow_key *key,
2553 const struct sw_flow_key *key, in validate_and_copy_sample() argument
2607 err = __ovs_nla_copy_actions(net, actions, key, sfa, in validate_and_copy_sample()
2621 const struct sw_flow_key *key, in validate_and_copy_dec_ttl() argument
2667 err = __ovs_nla_copy_actions(net, actions, key, sfa, eth_type, in validate_and_copy_dec_ttl()
2680 const struct sw_flow_key *key, in validate_and_copy_clone() argument
2703 err = __ovs_nla_copy_actions(net, attr, key, sfa, in validate_and_copy_clone()
2715 struct sw_flow_key *key, in ovs_match_init() argument
2720 match->key = key; in ovs_match_init()
2724 memset(key, 0, sizeof(*key)); in ovs_match_init()
2727 memset(&mask->key, 0, sizeof(mask->key)); in ovs_match_init()
2732 static int validate_geneve_opts(struct sw_flow_key *key) in validate_geneve_opts() argument
2735 int opts_len = key->tun_opts_len; in validate_geneve_opts()
2738 option = (struct geneve_opt *)TUN_METADATA_OPTS(key, key->tun_opts_len); in validate_geneve_opts()
2756 __set_bit(IP_TUNNEL_CRIT_OPT_BIT, key->tun_key.tun_flags); in validate_geneve_opts()
2766 struct sw_flow_key key; in validate_and_copy_set_tun() local
2773 ovs_match_init(&match, &key, true, NULL); in validate_and_copy_set_tun()
2778 if (key.tun_opts_len) { in validate_and_copy_set_tun()
2781 err = validate_geneve_opts(&key); in validate_and_copy_set_tun()
2800 tun_dst = metadata_dst_alloc(key.tun_opts_len, METADATA_IP_TUNNEL, in validate_and_copy_set_tun()
2824 if (key.tun_proto == AF_INET6) in validate_and_copy_set_tun()
2826 else if (key.tun_proto == AF_INET && key.tun_key.u.ipv4.dst == 0) in validate_and_copy_set_tun()
2828 tun_info->key = key.tun_key; in validate_and_copy_set_tun()
2835 TUN_METADATA_OPTS(&key, key.tun_opts_len), in validate_and_copy_set_tun()
2836 key.tun_opts_len, dst_opt_type); in validate_and_copy_set_tun()
2846 struct sw_flow_key key; in validate_nsh() local
2849 ovs_match_init(&match, &key, true, NULL); in validate_nsh()
3073 const struct sw_flow_key *key, in validate_and_copy_check_pkt_len() argument
3124 err = __ovs_nla_copy_actions(net, acts_if_lesser_eq, key, sfa, in validate_and_copy_check_pkt_len()
3138 err = __ovs_nla_copy_actions(net, acts_if_greater, key, sfa, in validate_and_copy_check_pkt_len()
3187 const struct sw_flow_key *key, in __ovs_nla_copy_actions() argument
3193 u8 mac_proto = ovs_key_mac_proto(key); in __ovs_nla_copy_actions()
3377 err = validate_set(a, key, sfa, in __ovs_nla_copy_actions()
3385 err = validate_set(a, key, sfa, in __ovs_nla_copy_actions()
3395 err = validate_and_copy_sample(net, a, key, sfa, in __ovs_nla_copy_actions()
3406 err = ovs_ct_copy_action(net, a, key, sfa, log); in __ovs_nla_copy_actions()
3449 inner_proto = tun_p_to_eth_p(key->nsh.base.np); in __ovs_nla_copy_actions()
3452 if (key->nsh.base.np == TUN_P_ETHERNET) in __ovs_nla_copy_actions()
3466 err = validate_and_copy_clone(net, a, key, sfa, in __ovs_nla_copy_actions()
3479 err = validate_and_copy_check_pkt_len(net, a, key, sfa, in __ovs_nla_copy_actions()
3492 err = validate_and_copy_dec_ttl(net, a, key, sfa, in __ovs_nla_copy_actions()
3531 const struct sw_flow_key *key, in ovs_nla_copy_actions() argument
3541 if (eth_p_mpls(key->eth.type)) in ovs_nla_copy_actions()
3542 mpls_label_count = hweight_long(key->mpls.num_labels_mask); in ovs_nla_copy_actions()
3545 err = __ovs_nla_copy_actions(net, attr, key, sfa, key->eth.type, in ovs_nla_copy_actions()
3546 key->eth.vlan.tci, mpls_label_count, log, in ovs_nla_copy_actions()
3744 err = ip_tun_to_nlattr(skb, &tun_info->key, in set_action_to_attr()