Lines Matching refs:gen_spec

2051 			       const struct efx_filter_spec *gen_spec)  in efx_farch_filter_from_gen_spec()  argument
2055 if ((gen_spec->flags & EFX_FILTER_FLAG_RX_RSS) && in efx_farch_filter_from_gen_spec()
2056 gen_spec->rss_context != EFX_FILTER_RSS_CONTEXT_DEFAULT) in efx_farch_filter_from_gen_spec()
2059 spec->priority = gen_spec->priority; in efx_farch_filter_from_gen_spec()
2060 spec->flags = gen_spec->flags; in efx_farch_filter_from_gen_spec()
2061 spec->dmaq_id = gen_spec->dmaq_id; in efx_farch_filter_from_gen_spec()
2063 switch (gen_spec->match_flags) { in efx_farch_filter_from_gen_spec()
2074 EFX_BUG_ON_PARANOID(!(gen_spec->flags & EFX_FILTER_FLAG_RX)); in efx_farch_filter_from_gen_spec()
2076 if (gen_spec->ether_type != htons(ETH_P_IP)) in efx_farch_filter_from_gen_spec()
2078 if (gen_spec->loc_port == 0 || in efx_farch_filter_from_gen_spec()
2079 (is_full && gen_spec->rem_port == 0)) in efx_farch_filter_from_gen_spec()
2081 switch (gen_spec->ip_proto) { in efx_farch_filter_from_gen_spec()
2099 rhost = is_full ? gen_spec->rem_host[0] : 0; in efx_farch_filter_from_gen_spec()
2100 rport = is_full ? gen_spec->rem_port : 0; in efx_farch_filter_from_gen_spec()
2102 host2 = gen_spec->loc_host[0]; in efx_farch_filter_from_gen_spec()
2103 if (!is_full && gen_spec->ip_proto == IPPROTO_UDP) { in efx_farch_filter_from_gen_spec()
2104 port1 = gen_spec->loc_port; in efx_farch_filter_from_gen_spec()
2108 port2 = gen_spec->loc_port; in efx_farch_filter_from_gen_spec()
2123 spec->data[0] = is_full ? ntohs(gen_spec->outer_vid) : 0; in efx_farch_filter_from_gen_spec()
2124 spec->data[1] = (gen_spec->loc_mac[2] << 24 | in efx_farch_filter_from_gen_spec()
2125 gen_spec->loc_mac[3] << 16 | in efx_farch_filter_from_gen_spec()
2126 gen_spec->loc_mac[4] << 8 | in efx_farch_filter_from_gen_spec()
2127 gen_spec->loc_mac[5]); in efx_farch_filter_from_gen_spec()
2128 spec->data[2] = (gen_spec->loc_mac[0] << 8 | in efx_farch_filter_from_gen_spec()
2129 gen_spec->loc_mac[1]); in efx_farch_filter_from_gen_spec()
2133 spec->type = (is_multicast_ether_addr(gen_spec->loc_mac) ? in efx_farch_filter_from_gen_spec()
2147 efx_farch_filter_to_gen_spec(struct efx_filter_spec *gen_spec, in efx_farch_filter_to_gen_spec() argument
2156 memset(gen_spec, 0, sizeof(*gen_spec)); in efx_farch_filter_to_gen_spec()
2158 gen_spec->priority = spec->priority; in efx_farch_filter_to_gen_spec()
2159 gen_spec->flags = spec->flags; in efx_farch_filter_to_gen_spec()
2160 gen_spec->dmaq_id = spec->dmaq_id; in efx_farch_filter_to_gen_spec()
2172 gen_spec->match_flags = in efx_farch_filter_to_gen_spec()
2177 gen_spec->match_flags |= (EFX_FILTER_MATCH_REM_HOST | in efx_farch_filter_to_gen_spec()
2179 gen_spec->ether_type = htons(ETH_P_IP); in efx_farch_filter_to_gen_spec()
2180 gen_spec->ip_proto = in efx_farch_filter_to_gen_spec()
2190 gen_spec->loc_host[0] = host1; in efx_farch_filter_to_gen_spec()
2191 gen_spec->rem_host[0] = host2; in efx_farch_filter_to_gen_spec()
2193 gen_spec->loc_host[0] = host2; in efx_farch_filter_to_gen_spec()
2194 gen_spec->rem_host[0] = host1; in efx_farch_filter_to_gen_spec()
2196 if (!!(gen_spec->flags & EFX_FILTER_FLAG_TX) ^ in efx_farch_filter_to_gen_spec()
2197 (!is_full && gen_spec->ip_proto == IPPROTO_UDP)) { in efx_farch_filter_to_gen_spec()
2198 gen_spec->loc_port = port1; in efx_farch_filter_to_gen_spec()
2199 gen_spec->rem_port = port2; in efx_farch_filter_to_gen_spec()
2201 gen_spec->loc_port = port2; in efx_farch_filter_to_gen_spec()
2202 gen_spec->rem_port = port1; in efx_farch_filter_to_gen_spec()
2212 gen_spec->match_flags = EFX_FILTER_MATCH_LOC_MAC; in efx_farch_filter_to_gen_spec()
2214 gen_spec->match_flags |= EFX_FILTER_MATCH_OUTER_VID; in efx_farch_filter_to_gen_spec()
2215 gen_spec->loc_mac[0] = spec->data[2] >> 8; in efx_farch_filter_to_gen_spec()
2216 gen_spec->loc_mac[1] = spec->data[2]; in efx_farch_filter_to_gen_spec()
2217 gen_spec->loc_mac[2] = spec->data[1] >> 24; in efx_farch_filter_to_gen_spec()
2218 gen_spec->loc_mac[3] = spec->data[1] >> 16; in efx_farch_filter_to_gen_spec()
2219 gen_spec->loc_mac[4] = spec->data[1] >> 8; in efx_farch_filter_to_gen_spec()
2220 gen_spec->loc_mac[5] = spec->data[1]; in efx_farch_filter_to_gen_spec()
2221 gen_spec->outer_vid = htons(spec->data[0]); in efx_farch_filter_to_gen_spec()
2226 gen_spec->match_flags = EFX_FILTER_MATCH_LOC_MAC_IG; in efx_farch_filter_to_gen_spec()
2227 gen_spec->loc_mac[0] = spec->type == EFX_FARCH_FILTER_MC_DEF; in efx_farch_filter_to_gen_spec()
2406 struct efx_filter_spec *gen_spec, in efx_farch_filter_insert() argument
2417 rc = efx_farch_filter_from_gen_spec(&spec, gen_spec); in efx_farch_filter_insert()
2930 struct efx_filter_spec *gen_spec) in efx_farch_filter_rfs_insert() argument
2932 return efx_farch_filter_insert(efx, gen_spec, true); in efx_farch_filter_rfs_insert()