Lines Matching refs:match

30 		struct flow_match_vlan match;
32 flow_rule_match_vlan(rule, &match);
36 match.key->vlan_priority) |
38 match.key->vlan_id);
42 match.mask->vlan_priority) |
44 match.mask->vlan_id);
85 NL_SET_ERR_MSG_MOD(extack, "unsupported offload: invalid ingress interface for match offload");
100 struct flow_match_eth_addrs match;
104 flow_rule_match_eth_addrs(rule, &match);
107 tmp = match.key->dst[i] & match.mask->dst[i];
109 msk->mac_dst[i] |= match.mask->dst[i];
111 tmp = match.key->src[i] & match.mask->src[i];
113 msk->mac_src[i] |= match.mask->src[i];
125 struct flow_match_mpls match;
128 flow_rule_match_mpls(rule, &match);
131 if (match.mask->used_lses != 1) {
133 "unsupported offload: invalid LSE depth for MPLS match offload");
138 match.key->ls[0].mpls_label) |
140 match.key->ls[0].mpls_tc) |
142 match.key->ls[0].mpls_bos) |
146 match.mask->ls[0].mpls_label) |
148 match.mask->ls[0].mpls_tc) |
150 match.mask->ls[0].mpls_bos) |
160 struct flow_match_basic match;
162 flow_rule_match_basic(rule, &match);
163 if (match.key->n_proto == cpu_to_be16(ETH_P_MPLS_UC) ||
164 match.key->n_proto == cpu_to_be16(ETH_P_MPLS_MC)) {
193 struct flow_match_ports match;
196 flow_rule_match_ports(rule, &match);
198 tmp = match.key->src & match.mask->src;
200 msk->port_src |= match.mask->src;
202 tmp = match.key->dst & match.mask->dst;
204 msk->port_dst |= match.mask->dst;
213 struct flow_match_basic match;
215 flow_rule_match_basic(rule, &match);
216 ext->proto |= match.key->ip_proto & match.mask->ip_proto;
217 msk->proto |= match.mask->ip_proto;
221 struct flow_match_ip match;
224 flow_rule_match_ip(rule, &match);
226 tmp = match.key->tos & match.mask->tos;
228 msk->tos |= match.mask->tos;
230 tmp = match.key->ttl & match.mask->ttl;
232 msk->ttl |= match.mask->ttl;
237 struct flow_match_tcp match;
239 flow_rule_match_tcp(rule, &match);
240 tcp_flags = be16_to_cpu(match.key->flags);
241 tcp_flags_mask = be16_to_cpu(match.mask->flags);
270 struct flow_match_control match;
272 flow_rule_match_control(rule, &match);
273 if (match.key->flags & FLOW_DIS_IS_FRAGMENT)
275 if (match.mask->flags & FLOW_DIS_IS_FRAGMENT)
277 if (match.key->flags & FLOW_DIS_FIRST_FRAG)
279 if (match.mask->flags & FLOW_DIS_FIRST_FRAG)
285 nfp_flower_fill_vlan(struct flow_match_vlan *match,
289 struct flow_dissector_key_vlan *mask = match->mask;
290 struct flow_dissector_key_vlan *key = match->key;
322 struct flow_match_vlan match;
325 flow_rule_match_vlan(rule, &match);
326 nfp_flower_fill_vlan(&match, ext, msk, true);
329 flow_rule_match_cvlan(rule, &match);
330 nfp_flower_fill_vlan(&match, ext, msk, false);
339 struct flow_match_ipv4_addrs match;
342 flow_rule_match_ipv4_addrs(rule, &match);
344 tmp = match.key->src & match.mask->src;
346 msk->ipv4_src |= match.mask->src;
348 tmp = match.key->dst & match.mask->dst;
350 msk->ipv4_dst |= match.mask->dst;
361 struct flow_match_ipv6_addrs match;
365 flow_rule_match_ipv6_addrs(rule, &match);
367 tmp = match.key->src.s6_addr[i] &
368 match.mask->src.s6_addr[i];
371 msk->ipv6_src.s6_addr[i] |= match.mask->src.s6_addr[i];
373 tmp = match.key->dst.s6_addr[i] &
374 match.mask->dst.s6_addr[i];
377 msk->ipv6_dst.s6_addr[i] |= match.mask->dst.s6_addr[i];
387 struct flow_match_enc_opts match;
391 flow_rule_match_enc_opts(rule, &match);
393 for (i = 0; i < match.mask->len; i++) {
394 ext[i] |= match.key->data[i] & match.mask->data[i];
395 msk[i] |= match.mask->data[i];
406 struct flow_match_ipv4_addrs match;
408 flow_rule_match_enc_ipv4_addrs(rule, &match);
409 ext->src |= match.key->src & match.mask->src;
410 ext->dst |= match.key->dst & match.mask->dst;
411 msk->src |= match.mask->src;
412 msk->dst |= match.mask->dst;
422 struct flow_match_ipv6_addrs match;
425 flow_rule_match_enc_ipv6_addrs(rule, &match);
427 ext->src.s6_addr[i] |= match.key->src.s6_addr[i] &
428 match.mask->src.s6_addr[i];
429 ext->dst.s6_addr[i] |= match.key->dst.s6_addr[i] &
430 match.mask->dst.s6_addr[i];
431 msk->src.s6_addr[i] |= match.mask->src.s6_addr[i];
432 msk->dst.s6_addr[i] |= match.mask->dst.s6_addr[i];
443 struct flow_match_ip match;
445 flow_rule_match_enc_ip(rule, &match);
446 ext->tos |= match.key->tos & match.mask->tos;
447 ext->ttl |= match.key->ttl & match.mask->ttl;
448 msk->tos |= match.mask->tos;
449 msk->ttl |= match.mask->ttl;
458 struct flow_match_enc_keyid match;
461 flow_rule_match_enc_keyid(rule, &match);
462 vni = be32_to_cpu((match.key->keyid & match.mask->keyid)) <<
465 vni = be32_to_cpu(match.mask->keyid) << NFP_FL_TUN_VNI_OFFSET;
475 struct flow_match_enc_keyid match;
477 flow_rule_match_enc_keyid(rule, &match);
478 *key |= match.key->keyid & match.mask->keyid;
479 *key_msk |= match.mask->keyid;
664 * This must be present and be an exact match.
700 * This must be present and be an exact match.