Lines Matching refs:ib_spec

2682 			   const union ib_flow_spec *ib_spec,  in parse_flow_attr()  argument
2702 if (ib_spec->type & IB_FLOW_SPEC_INNER) { in parse_flow_attr()
2718 switch (ib_spec->type & ~IB_FLOW_SPEC_INNER) { in parse_flow_attr()
2720 if (FIELDS_NOT_SUPPORTED(ib_spec->eth.mask, LAST_ETH_FIELD)) in parse_flow_attr()
2725 ib_spec->eth.mask.dst_mac); in parse_flow_attr()
2728 ib_spec->eth.val.dst_mac); in parse_flow_attr()
2732 ib_spec->eth.mask.src_mac); in parse_flow_attr()
2735 ib_spec->eth.val.src_mac); in parse_flow_attr()
2737 if (ib_spec->eth.mask.vlan_tag) { in parse_flow_attr()
2744 first_vid, ntohs(ib_spec->eth.mask.vlan_tag)); in parse_flow_attr()
2746 first_vid, ntohs(ib_spec->eth.val.vlan_tag)); in parse_flow_attr()
2750 ntohs(ib_spec->eth.mask.vlan_tag) >> 12); in parse_flow_attr()
2753 ntohs(ib_spec->eth.val.vlan_tag) >> 12); in parse_flow_attr()
2757 ntohs(ib_spec->eth.mask.vlan_tag) >> 13); in parse_flow_attr()
2760 ntohs(ib_spec->eth.val.vlan_tag) >> 13); in parse_flow_attr()
2763 ethertype, ntohs(ib_spec->eth.mask.ether_type)); in parse_flow_attr()
2765 ethertype, ntohs(ib_spec->eth.val.ether_type)); in parse_flow_attr()
2768 if (FIELDS_NOT_SUPPORTED(ib_spec->ipv4.mask, LAST_IPV4_FIELD)) in parse_flow_attr()
2785 &ib_spec->ipv4.mask.src_ip, in parse_flow_attr()
2786 sizeof(ib_spec->ipv4.mask.src_ip)); in parse_flow_attr()
2789 &ib_spec->ipv4.val.src_ip, in parse_flow_attr()
2790 sizeof(ib_spec->ipv4.val.src_ip)); in parse_flow_attr()
2793 &ib_spec->ipv4.mask.dst_ip, in parse_flow_attr()
2794 sizeof(ib_spec->ipv4.mask.dst_ip)); in parse_flow_attr()
2797 &ib_spec->ipv4.val.dst_ip, in parse_flow_attr()
2798 sizeof(ib_spec->ipv4.val.dst_ip)); in parse_flow_attr()
2801 ib_spec->ipv4.mask.tos, ib_spec->ipv4.val.tos); in parse_flow_attr()
2804 ib_spec->ipv4.mask.proto, in parse_flow_attr()
2805 ib_spec->ipv4.val.proto)) in parse_flow_attr()
2809 if (FIELDS_NOT_SUPPORTED(ib_spec->ipv6.mask, LAST_IPV6_FIELD)) in parse_flow_attr()
2826 &ib_spec->ipv6.mask.src_ip, in parse_flow_attr()
2827 sizeof(ib_spec->ipv6.mask.src_ip)); in parse_flow_attr()
2830 &ib_spec->ipv6.val.src_ip, in parse_flow_attr()
2831 sizeof(ib_spec->ipv6.val.src_ip)); in parse_flow_attr()
2834 &ib_spec->ipv6.mask.dst_ip, in parse_flow_attr()
2835 sizeof(ib_spec->ipv6.mask.dst_ip)); in parse_flow_attr()
2838 &ib_spec->ipv6.val.dst_ip, in parse_flow_attr()
2839 sizeof(ib_spec->ipv6.val.dst_ip)); in parse_flow_attr()
2842 ib_spec->ipv6.mask.traffic_class, in parse_flow_attr()
2843 ib_spec->ipv6.val.traffic_class); in parse_flow_attr()
2846 ib_spec->ipv6.mask.next_hdr, in parse_flow_attr()
2847 ib_spec->ipv6.val.next_hdr)) in parse_flow_attr()
2851 ntohl(ib_spec->ipv6.mask.flow_label), in parse_flow_attr()
2852 ntohl(ib_spec->ipv6.val.flow_label), in parse_flow_attr()
2853 ib_spec->type & IB_FLOW_SPEC_INNER); in parse_flow_attr()
2856 if (ib_spec->esp.mask.seq) in parse_flow_attr()
2860 ntohl(ib_spec->esp.mask.spi)); in parse_flow_attr()
2862 ntohl(ib_spec->esp.val.spi)); in parse_flow_attr()
2865 if (FIELDS_NOT_SUPPORTED(ib_spec->tcp_udp.mask, in parse_flow_attr()
2873 ntohs(ib_spec->tcp_udp.mask.src_port)); in parse_flow_attr()
2875 ntohs(ib_spec->tcp_udp.val.src_port)); in parse_flow_attr()
2878 ntohs(ib_spec->tcp_udp.mask.dst_port)); in parse_flow_attr()
2880 ntohs(ib_spec->tcp_udp.val.dst_port)); in parse_flow_attr()
2883 if (FIELDS_NOT_SUPPORTED(ib_spec->tcp_udp.mask, in parse_flow_attr()
2891 ntohs(ib_spec->tcp_udp.mask.src_port)); in parse_flow_attr()
2893 ntohs(ib_spec->tcp_udp.val.src_port)); in parse_flow_attr()
2896 ntohs(ib_spec->tcp_udp.mask.dst_port)); in parse_flow_attr()
2898 ntohs(ib_spec->tcp_udp.val.dst_port)); in parse_flow_attr()
2901 if (ib_spec->gre.mask.c_ks_res0_ver) in parse_flow_attr()
2913 ntohs(ib_spec->gre.mask.protocol)); in parse_flow_attr()
2915 ntohs(ib_spec->gre.val.protocol)); in parse_flow_attr()
2919 &ib_spec->gre.mask.key, in parse_flow_attr()
2920 sizeof(ib_spec->gre.mask.key)); in parse_flow_attr()
2923 &ib_spec->gre.val.key, in parse_flow_attr()
2924 sizeof(ib_spec->gre.val.key)); in parse_flow_attr()
2931 &ib_spec->mpls.mask.tag)) in parse_flow_attr()
2936 &ib_spec->mpls.val.tag, in parse_flow_attr()
2937 sizeof(ib_spec->mpls.val.tag)); in parse_flow_attr()
2940 &ib_spec->mpls.mask.tag, in parse_flow_attr()
2941 sizeof(ib_spec->mpls.mask.tag)); in parse_flow_attr()
2946 &ib_spec->mpls.mask.tag)) in parse_flow_attr()
2951 &ib_spec->mpls.val.tag, in parse_flow_attr()
2952 sizeof(ib_spec->mpls.val.tag)); in parse_flow_attr()
2955 &ib_spec->mpls.mask.tag, in parse_flow_attr()
2956 sizeof(ib_spec->mpls.mask.tag)); in parse_flow_attr()
2959 if (ib_spec->type & IB_FLOW_SPEC_INNER) { in parse_flow_attr()
2962 &ib_spec->mpls.mask.tag)) in parse_flow_attr()
2967 &ib_spec->mpls.val.tag, in parse_flow_attr()
2968 sizeof(ib_spec->mpls.val.tag)); in parse_flow_attr()
2971 &ib_spec->mpls.mask.tag, in parse_flow_attr()
2972 sizeof(ib_spec->mpls.mask.tag)); in parse_flow_attr()
2976 &ib_spec->mpls.mask.tag)) in parse_flow_attr()
2981 &ib_spec->mpls.val.tag, in parse_flow_attr()
2982 sizeof(ib_spec->mpls.val.tag)); in parse_flow_attr()
2985 &ib_spec->mpls.mask.tag, in parse_flow_attr()
2986 sizeof(ib_spec->mpls.mask.tag)); in parse_flow_attr()
2991 if (FIELDS_NOT_SUPPORTED(ib_spec->tunnel.mask, in parse_flow_attr()
2996 ntohl(ib_spec->tunnel.mask.tunnel_id)); in parse_flow_attr()
2998 ntohl(ib_spec->tunnel.val.tunnel_id)); in parse_flow_attr()
3001 if (FIELDS_NOT_SUPPORTED(ib_spec->flow_tag, in parse_flow_attr()
3004 if (ib_spec->flow_tag.tag_id >= BIT(24)) in parse_flow_attr()
3007 flow_context->flow_tag = ib_spec->flow_tag.tag_id; in parse_flow_attr()
3011 if (FIELDS_NOT_SUPPORTED(ib_spec->drop, in parse_flow_attr()
3017 ret = parse_flow_flow_action(to_mflow_act(ib_spec->action.act), in parse_flow_attr()
3023 if (FIELDS_NOT_SUPPORTED(ib_spec->flow_count, in parse_flow_attr()
3031 action->counters = ib_spec->flow_count.counters; in parse_flow_attr()
3120 union ib_flow_spec *ib_spec = (union ib_flow_spec *)(flow_attr + 1); in is_valid_ethertype() local
3137 if ((ib_spec->type == (IB_FLOW_SPEC_ETH | inner_bit)) && in is_valid_ethertype()
3138 ib_spec->eth.mask.ether_type) { in is_valid_ethertype()
3139 mask_valid = (ib_spec->eth.mask.ether_type == in is_valid_ethertype()
3142 eth_type = ntohs(ib_spec->eth.val.ether_type); in is_valid_ethertype()
3143 } else if ((ib_spec->type == (IB_FLOW_SPEC_IPV4 | inner_bit)) || in is_valid_ethertype()
3144 (ib_spec->type == (IB_FLOW_SPEC_IPV6 | inner_bit))) { in is_valid_ethertype()
3145 ip_spec_type = ib_spec->type; in is_valid_ethertype()
3147 ib_spec = (void *)ib_spec + ib_spec->size; in is_valid_ethertype()