Lines Matching defs:fm

227 	struct flow_match_##_type fm;					\
229 flow_rule_match_##_tcget(rule, &fm); \
230 match->value._field = fm.key->_tcfield; \
231 match->mask._field = fm.mask->_tcfield; \
253 struct flow_match_control fm;
255 flow_rule_match_control(rule, &fm);
256 if (IS_ALL_ONES(fm.mask->addr_type))
257 switch (fm.key->addr_type) {
268 if (fm.mask->flags & FLOW_DIS_IS_FRAGMENT) {
269 match->value.ip_frag = fm.key->flags & FLOW_DIS_IS_FRAGMENT;
272 if (fm.mask->flags & FLOW_DIS_FIRST_FRAG) {
273 match->value.ip_firstfrag = fm.key->flags & FLOW_DIS_FIRST_FRAG;
276 if (fm.mask->flags & ~(FLOW_DIS_IS_FRAGMENT | FLOW_DIS_FIRST_FRAG)) {
278 fm.mask->flags);
323 struct flow_match_vlan fm;
325 flow_rule_match_vlan(rule, &fm);
326 if (fm.mask->vlan_id || fm.mask->vlan_priority || fm.mask->vlan_tpid) {
327 match->value.vlan_proto[0] = fm.key->vlan_tpid;
328 match->mask.vlan_proto[0] = fm.mask->vlan_tpid;
329 match->value.vlan_tci[0] = cpu_to_be16(fm.key->vlan_priority << 13 |
330 fm.key->vlan_id);
331 match->mask.vlan_tci[0] = cpu_to_be16(fm.mask->vlan_priority << 13 |
332 fm.mask->vlan_id);
337 struct flow_match_vlan fm;
339 flow_rule_match_cvlan(rule, &fm);
340 if (fm.mask->vlan_id || fm.mask->vlan_priority || fm.mask->vlan_tpid) {
341 match->value.vlan_proto[1] = fm.key->vlan_tpid;
342 match->mask.vlan_proto[1] = fm.mask->vlan_tpid;
343 match->value.vlan_tci[1] = cpu_to_be16(fm.key->vlan_priority << 13 |
344 fm.key->vlan_id);
345 match->mask.vlan_tci[1] = cpu_to_be16(fm.mask->vlan_priority << 13 |
346 fm.mask->vlan_id);
351 struct flow_match_eth_addrs fm;
353 flow_rule_match_eth_addrs(rule, &fm);
354 ether_addr_copy(match->value.eth_saddr, fm.key->src);
355 ether_addr_copy(match->value.eth_daddr, fm.key->dst);
356 ether_addr_copy(match->mask.eth_saddr, fm.mask->src);
357 ether_addr_copy(match->mask.eth_daddr, fm.mask->dst);
388 struct flow_match_control fm;
390 flow_rule_match_enc_control(rule, &fm);
391 if (fm.mask->flags) {
393 fm.mask->flags);
396 if (!IS_ALL_ONES(fm.mask->addr_type)) {
398 fm.mask->addr_type,
399 fm.key->addr_type);
402 switch (fm.key->addr_type) {
420 fm.key->addr_type);
440 struct flow_match_ct fm;
442 flow_rule_match_ct(rule, &fm);
443 match->value.ct_state_trk = !!(fm.key->ct_state & TCA_FLOWER_KEY_CT_FLAGS_TRACKED);
444 match->mask.ct_state_trk = !!(fm.mask->ct_state & TCA_FLOWER_KEY_CT_FLAGS_TRACKED);
445 match->value.ct_state_est = !!(fm.key->ct_state & TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED);
446 match->mask.ct_state_est = !!(fm.mask->ct_state & TCA_FLOWER_KEY_CT_FLAGS_ESTABLISHED);
447 if (fm.mask->ct_state & ~(TCA_FLOWER_KEY_CT_FLAGS_TRACKED |
451 fm.mask->ct_state);
454 match->value.ct_mark = fm.key->ct_mark;
455 match->mask.ct_mark = fm.mask->ct_mark;
456 match->value.ct_zone = fm.key->ct_zone;
457 match->mask.ct_zone = fm.mask->ct_zone;
459 if (memchr_inv(fm.mask->ct_labels, 0, sizeof(fm.mask->ct_labels))) {