Lines Matching refs:match

446 	struct flow_match_vlan match;  in otx2_tc_process_vlan()  local
450 flow_rule_match_cvlan(rule, &match); in otx2_tc_process_vlan()
452 flow_rule_match_vlan(rule, &match); in otx2_tc_process_vlan()
454 if (!eth_type_vlan(match.key->vlan_tpid)) { in otx2_tc_process_vlan()
456 ntohs(match.key->vlan_tpid)); in otx2_tc_process_vlan()
460 if (!match.mask->vlan_id) { in otx2_tc_process_vlan()
468 ntohs(match.key->vlan_tpid), match.key->vlan_id); in otx2_tc_process_vlan()
474 if (match.mask->vlan_id || in otx2_tc_process_vlan()
475 match.mask->vlan_dei || in otx2_tc_process_vlan()
476 match.mask->vlan_priority) { in otx2_tc_process_vlan()
477 vlan_tci = match.key->vlan_id | in otx2_tc_process_vlan()
478 match.key->vlan_dei << 12 | in otx2_tc_process_vlan()
479 match.key->vlan_priority << 13; in otx2_tc_process_vlan()
481 vlan_tci_mask = match.mask->vlan_id | in otx2_tc_process_vlan()
482 match.mask->vlan_dei << 12 | in otx2_tc_process_vlan()
483 match.mask->vlan_priority << 13; in otx2_tc_process_vlan()
510 dissector = rule->match.dissector; in otx2_tc_prepare_flow()
529 struct flow_match_basic match; in otx2_tc_prepare_flow() local
531 flow_rule_match_basic(rule, &match); in otx2_tc_prepare_flow()
534 flow_spec->etype = match.key->n_proto; in otx2_tc_prepare_flow()
535 flow_mask->etype = match.mask->n_proto; in otx2_tc_prepare_flow()
538 if (match.mask->ip_proto && in otx2_tc_prepare_flow()
539 (match.key->ip_proto != IPPROTO_TCP && in otx2_tc_prepare_flow()
540 match.key->ip_proto != IPPROTO_UDP && in otx2_tc_prepare_flow()
541 match.key->ip_proto != IPPROTO_SCTP && in otx2_tc_prepare_flow()
542 match.key->ip_proto != IPPROTO_ICMP && in otx2_tc_prepare_flow()
543 match.key->ip_proto != IPPROTO_ESP && in otx2_tc_prepare_flow()
544 match.key->ip_proto != IPPROTO_AH && in otx2_tc_prepare_flow()
545 match.key->ip_proto != IPPROTO_ICMPV6)) { in otx2_tc_prepare_flow()
548 match.key->ip_proto); in otx2_tc_prepare_flow()
551 if (match.mask->ip_proto) in otx2_tc_prepare_flow()
552 ip_proto = match.key->ip_proto; in otx2_tc_prepare_flow()
571 struct flow_match_control match; in otx2_tc_prepare_flow() local
573 flow_rule_match_control(rule, &match); in otx2_tc_prepare_flow()
574 if (match.mask->flags & FLOW_DIS_FIRST_FRAG) { in otx2_tc_prepare_flow()
579 if (match.mask->flags & FLOW_DIS_IS_FRAGMENT) { in otx2_tc_prepare_flow()
596 struct flow_match_eth_addrs match; in otx2_tc_prepare_flow() local
598 flow_rule_match_eth_addrs(rule, &match); in otx2_tc_prepare_flow()
599 if (!is_zero_ether_addr(match.mask->src)) { in otx2_tc_prepare_flow()
604 if (!is_zero_ether_addr(match.mask->dst)) { in otx2_tc_prepare_flow()
605 ether_addr_copy(flow_spec->dmac, (u8 *)&match.key->dst); in otx2_tc_prepare_flow()
607 (u8 *)&match.mask->dst); in otx2_tc_prepare_flow()
613 struct flow_match_ipsec match; in otx2_tc_prepare_flow() local
615 flow_rule_match_ipsec(rule, &match); in otx2_tc_prepare_flow()
616 if (!match.mask->spi) { in otx2_tc_prepare_flow()
627 flow_spec->spi = match.key->spi; in otx2_tc_prepare_flow()
628 flow_mask->spi = match.mask->spi; in otx2_tc_prepare_flow()
633 struct flow_match_ip match; in otx2_tc_prepare_flow() local
635 flow_rule_match_ip(rule, &match); in otx2_tc_prepare_flow()
637 match.mask->tos) { in otx2_tc_prepare_flow()
641 if (match.mask->ttl) { in otx2_tc_prepare_flow()
645 flow_spec->tos = match.key->tos; in otx2_tc_prepare_flow()
646 flow_mask->tos = match.mask->tos; in otx2_tc_prepare_flow()
667 struct flow_match_ipv4_addrs match; in otx2_tc_prepare_flow() local
669 flow_rule_match_ipv4_addrs(rule, &match); in otx2_tc_prepare_flow()
671 flow_spec->ip4dst = match.key->dst; in otx2_tc_prepare_flow()
672 flow_mask->ip4dst = match.mask->dst; in otx2_tc_prepare_flow()
675 flow_spec->ip4src = match.key->src; in otx2_tc_prepare_flow()
676 flow_mask->ip4src = match.mask->src; in otx2_tc_prepare_flow()
679 struct flow_match_ipv6_addrs match; in otx2_tc_prepare_flow() local
681 flow_rule_match_ipv6_addrs(rule, &match); in otx2_tc_prepare_flow()
683 if (ipv6_addr_loopback(&match.key->dst) || in otx2_tc_prepare_flow()
684 ipv6_addr_loopback(&match.key->src)) { in otx2_tc_prepare_flow()
690 if (!ipv6_addr_any(&match.mask->dst)) { in otx2_tc_prepare_flow()
692 (struct in6_addr *)&match.key->dst, in otx2_tc_prepare_flow()
695 (struct in6_addr *)&match.mask->dst, in otx2_tc_prepare_flow()
700 if (!ipv6_addr_any(&match.mask->src)) { in otx2_tc_prepare_flow()
702 (struct in6_addr *)&match.key->src, in otx2_tc_prepare_flow()
705 (struct in6_addr *)&match.mask->src, in otx2_tc_prepare_flow()
712 struct flow_match_ports match; in otx2_tc_prepare_flow() local
714 flow_rule_match_ports(rule, &match); in otx2_tc_prepare_flow()
716 flow_spec->dport = match.key->dst; in otx2_tc_prepare_flow()
717 flow_mask->dport = match.mask->dst; in otx2_tc_prepare_flow()
728 flow_spec->sport = match.key->src; in otx2_tc_prepare_flow()
729 flow_mask->sport = match.mask->src; in otx2_tc_prepare_flow()