Lines Matching refs:match
577 struct flow_match_vlan match;
581 flow_rule_match_cvlan(rule, &match);
583 flow_rule_match_vlan(rule, &match);
585 if (!eth_type_vlan(match.key->vlan_tpid)) {
587 ntohs(match.key->vlan_tpid));
591 if (!match.mask->vlan_id) {
599 ntohs(match.key->vlan_tpid), match.key->vlan_id);
605 if (match.mask->vlan_id ||
606 match.mask->vlan_dei ||
607 match.mask->vlan_priority) {
608 vlan_tci = match.key->vlan_id |
609 match.key->vlan_dei << 12 |
610 match.key->vlan_priority << 13;
612 vlan_tci_mask = match.mask->vlan_id |
613 match.mask->vlan_dei << 12 |
614 match.mask->vlan_priority << 13;
641 dissector = rule->match.dissector;
663 struct flow_match_basic match;
665 flow_rule_match_basic(rule, &match);
668 flow_spec->etype = match.key->n_proto;
669 flow_mask->etype = match.mask->n_proto;
672 if (match.mask->ip_proto &&
673 (match.key->ip_proto != IPPROTO_TCP &&
674 match.key->ip_proto != IPPROTO_UDP &&
675 match.key->ip_proto != IPPROTO_SCTP &&
676 match.key->ip_proto != IPPROTO_ICMP &&
677 match.key->ip_proto != IPPROTO_ESP &&
678 match.key->ip_proto != IPPROTO_AH &&
679 match.key->ip_proto != IPPROTO_ICMPV6)) {
682 match.key->ip_proto);
685 if (match.mask->ip_proto)
686 ip_proto = match.key->ip_proto;
705 struct flow_match_control match;
708 flow_rule_match_control(rule, &match);
710 if (match.mask->flags & FLOW_DIS_IS_FRAGMENT) {
711 val = match.key->flags & FLOW_DIS_IS_FRAGMENT;
728 match.mask->flags, extack))
733 struct flow_match_eth_addrs match;
735 flow_rule_match_eth_addrs(rule, &match);
736 if (!is_zero_ether_addr(match.mask->src)) {
737 NL_SET_ERR_MSG_MOD(extack, "src mac match not supported");
741 if (!is_zero_ether_addr(match.mask->dst)) {
742 ether_addr_copy(flow_spec->dmac, (u8 *)&match.key->dst);
744 (u8 *)&match.mask->dst);
750 struct flow_match_ipsec match;
752 flow_rule_match_ipsec(rule, &match);
753 if (!match.mask->spi) {
764 flow_spec->spi = match.key->spi;
765 flow_mask->spi = match.mask->spi;
770 struct flow_match_ip match;
772 flow_rule_match_ip(rule, &match);
774 match.mask->tos) {
778 if (match.mask->ttl) {
782 flow_spec->tos = match.key->tos;
783 flow_mask->tos = match.mask->tos;
804 struct flow_match_ipv4_addrs match;
806 flow_rule_match_ipv4_addrs(rule, &match);
808 flow_spec->ip4dst = match.key->dst;
809 flow_mask->ip4dst = match.mask->dst;
812 flow_spec->ip4src = match.key->src;
813 flow_mask->ip4src = match.mask->src;
816 struct flow_match_ipv6_addrs match;
818 flow_rule_match_ipv6_addrs(rule, &match);
820 if (ipv6_addr_loopback(&match.key->dst) ||
821 ipv6_addr_loopback(&match.key->src)) {
827 if (!ipv6_addr_any(&match.mask->dst)) {
829 (struct in6_addr *)&match.key->dst,
832 (struct in6_addr *)&match.mask->dst,
837 if (!ipv6_addr_any(&match.mask->src)) {
839 (struct in6_addr *)&match.key->src,
842 (struct in6_addr *)&match.mask->src,
849 struct flow_match_ports match;
851 flow_rule_match_ports(rule, &match);
853 flow_spec->dport = match.key->dst;
854 flow_mask->dport = match.mask->dst;
865 flow_spec->sport = match.key->src;
866 flow_mask->sport = match.mask->src;
879 struct flow_match_tcp match;
881 flow_rule_match_tcp(rule, &match);
883 flow_spec->tcp_flags = match.key->flags;
884 flow_mask->tcp_flags = match.mask->flags;
889 struct flow_match_mpls match;
892 flow_rule_match_mpls(rule, &match);
894 if (match.mask->used_lses & OTX2_UNSUPP_LSE_DEPTH) {
896 "unsupported LSE depth for MPLS match offload");
900 for_each_set_bit(bit, (unsigned long *)&match.mask->used_lses,
903 if (*((u32 *)&match.mask->ls[bit]) &
915 match.key->ls[bit].mpls_label) |
917 match.key->ls[bit].mpls_tc) |
919 match.key->ls[bit].mpls_bos);
923 match.mask->ls[bit].mpls_label) |
925 match.mask->ls[bit].mpls_tc) |
927 match.mask->ls[bit].mpls_bos);
930 if (match.mask->ls[bit].mpls_ttl) {
935 match.key->ls[bit].mpls_ttl);
938 match.mask->ls[bit].mpls_ttl);
944 struct flow_match_icmp match;
946 flow_rule_match_icmp(rule, &match);
948 flow_spec->icmp_type = match.key->type;
949 flow_mask->icmp_type = match.mask->type;
952 flow_spec->icmp_code = match.key->code;
953 flow_mask->icmp_code = match.mask->code;