Lines Matching refs:spec
60 struct sfc_flow_spec *spec = &flow->spec; in sfc_flow_get_ops_by_spec() local
63 switch (spec->type) { in sfc_flow_get_ops_by_spec()
100 typedef int (sfc_flow_spec_set_vals)(struct sfc_flow_spec *spec,
105 efx_filter_spec_t *spec,
154 const uint8_t *spec; in sfc_flow_parse_init() local
167 if ((item->last != NULL || item->mask != NULL) && item->spec == NULL) { in sfc_flow_parse_init()
191 spec = item->spec; in sfc_flow_parse_init()
194 if (spec == NULL) in sfc_flow_parse_init()
203 memcmp(last, spec, size) != 0) { in sfc_flow_parse_init()
230 *spec_ptr = spec; in sfc_flow_parse_init()
271 const struct rte_flow_item_eth *spec = NULL; in sfc_flow_parse_eth() local
301 (const void **)&spec, in sfc_flow_parse_eth()
310 if (spec == NULL) in sfc_flow_parse_eth()
317 rte_memcpy(loc_mac, spec->dst.addr_bytes, in sfc_flow_parse_eth()
321 if (rte_is_unicast_ether_addr(&spec->dst)) in sfc_flow_parse_eth()
340 rte_memcpy(efx_spec->efs_rem_mac, spec->src.addr_bytes, in sfc_flow_parse_eth()
352 efx_spec->efs_ether_type = rte_bswap16(spec->type); in sfc_flow_parse_eth()
385 const struct rte_flow_item_vlan *spec = NULL; in sfc_flow_parse_vlan() local
393 (const void **)&spec, in sfc_flow_parse_vlan()
410 vid = rte_bswap16(spec->tci & mask->tci); in sfc_flow_parse_vlan()
441 efx_spec->efs_ether_type = rte_bswap16(spec->inner_type); in sfc_flow_parse_vlan()
471 const struct rte_flow_item_ipv4 *spec = NULL; in sfc_flow_parse_ipv4() local
483 (const void **)&spec, in sfc_flow_parse_ipv4()
506 if (spec == NULL) in sfc_flow_parse_ipv4()
515 efx_spec->efs_rem_host.eo_u32[0] = spec->hdr.src_addr; in sfc_flow_parse_ipv4()
522 efx_spec->efs_loc_host.eo_u32[0] = spec->hdr.dst_addr; in sfc_flow_parse_ipv4()
529 efx_spec->efs_ip_proto = spec->hdr.next_proto_id; in sfc_flow_parse_ipv4()
562 const struct rte_flow_item_ipv6 *spec = NULL; in sfc_flow_parse_ipv6() local
580 (const void **)&spec, in sfc_flow_parse_ipv6()
603 if (spec == NULL) in sfc_flow_parse_ipv6()
615 sizeof(spec->hdr.src_addr)); in sfc_flow_parse_ipv6()
616 rte_memcpy(&efx_spec->efs_rem_host, spec->hdr.src_addr, in sfc_flow_parse_ipv6()
628 sizeof(spec->hdr.dst_addr)); in sfc_flow_parse_ipv6()
629 rte_memcpy(&efx_spec->efs_loc_host, spec->hdr.dst_addr, in sfc_flow_parse_ipv6()
638 efx_spec->efs_ip_proto = spec->hdr.proto; in sfc_flow_parse_ipv6()
671 const struct rte_flow_item_tcp *spec = NULL; in sfc_flow_parse_tcp() local
681 (const void **)&spec, in sfc_flow_parse_tcp()
704 if (spec == NULL) in sfc_flow_parse_tcp()
713 efx_spec->efs_rem_port = rte_bswap16(spec->hdr.src_port); in sfc_flow_parse_tcp()
720 efx_spec->efs_loc_port = rte_bswap16(spec->hdr.dst_port); in sfc_flow_parse_tcp()
753 const struct rte_flow_item_udp *spec = NULL; in sfc_flow_parse_udp() local
763 (const void **)&spec, in sfc_flow_parse_udp()
786 if (spec == NULL) in sfc_flow_parse_udp()
795 efx_spec->efs_rem_port = rte_bswap16(spec->hdr.src_port); in sfc_flow_parse_udp()
802 efx_spec->efs_loc_port = rte_bswap16(spec->hdr.dst_port); in sfc_flow_parse_udp()
912 const struct rte_flow_item_vxlan *spec = NULL; in sfc_flow_parse_vxlan() local
919 (const void **)&spec, in sfc_flow_parse_vxlan()
936 if (spec == NULL) in sfc_flow_parse_vxlan()
939 rc = sfc_flow_set_efx_spec_vni_or_vsid(efx_spec, spec->vni, in sfc_flow_parse_vxlan()
965 const struct rte_flow_item_geneve *spec = NULL; in sfc_flow_parse_geneve() local
973 (const void **)&spec, in sfc_flow_parse_geneve()
990 if (spec == NULL) in sfc_flow_parse_geneve()
994 if (spec->protocol != rte_cpu_to_be_16(RTE_ETHER_TYPE_TEB)) { in sfc_flow_parse_geneve()
1008 rc = sfc_flow_set_efx_spec_vni_or_vsid(efx_spec, spec->vni, in sfc_flow_parse_geneve()
1033 const struct rte_flow_item_nvgre *spec = NULL; in sfc_flow_parse_nvgre() local
1040 (const void **)&spec, in sfc_flow_parse_nvgre()
1057 if (spec == NULL) in sfc_flow_parse_nvgre()
1060 rc = sfc_flow_set_efx_spec_vni_or_vsid(efx_spec, spec->tni, in sfc_flow_parse_nvgre()
1148 struct sfc_flow_spec *spec = &flow->spec; in sfc_flow_parse_attr() local
1149 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_parse_attr()
1150 struct sfc_flow_spec_mae *spec_mae = &spec->mae; in sfc_flow_parse_attr()
1184 spec->type = SFC_FLOW_SPEC_FILTER; in sfc_flow_parse_attr()
1201 spec->type = SFC_FLOW_SPEC_MAE; in sfc_flow_parse_attr()
1326 struct sfc_flow_spec *spec = &flow->spec; in sfc_flow_parse_queue() local
1327 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_parse_queue()
1357 struct sfc_flow_spec *spec = &flow->spec; in sfc_flow_parse_rss() local
1358 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_parse_rss()
1450 sfc_flow_spec_flush(struct sfc_adapter *sa, struct sfc_flow_spec *spec, in sfc_flow_spec_flush() argument
1453 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_spec_flush()
1472 sfc_flow_spec_insert(struct sfc_adapter *sa, struct sfc_flow_spec *spec) in sfc_flow_spec_insert() argument
1474 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_spec_insert()
1481 sfc_flow_spec_flush(sa, spec, i); in sfc_flow_spec_insert()
1490 sfc_flow_spec_remove(struct sfc_adapter *sa, struct sfc_flow_spec *spec) in sfc_flow_spec_remove() argument
1492 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_spec_remove()
1494 return sfc_flow_spec_flush(sa, spec, spec_filter->count); in sfc_flow_spec_remove()
1503 struct sfc_flow_spec_filter *spec_filter = &flow->spec.filter; in sfc_flow_filter_insert()
1564 efx_filter_spec_t *spec = &spec_filter->filters[i]; in sfc_flow_filter_insert() local
1566 spec->efs_rss_context = efs_rss_context; in sfc_flow_filter_insert()
1567 spec->efs_flags |= EFX_FILTER_FLAG_RX_RSS; in sfc_flow_filter_insert()
1569 spec->efs_dmaq_id = flow_rss->rxq_hw_index_min; in sfc_flow_filter_insert()
1573 rc = sfc_flow_spec_insert(sa, &flow->spec); in sfc_flow_filter_insert()
1604 sfc_flow_spec_remove(sa, &flow->spec); in sfc_flow_filter_insert()
1620 struct sfc_flow_spec_filter *spec_filter = &flow->spec.filter; in sfc_flow_filter_remove()
1623 rc = sfc_flow_spec_remove(sa, &flow->spec); in sfc_flow_filter_remove()
1633 efx_filter_spec_t *spec = &spec_filter->filters[0]; in sfc_flow_filter_remove() local
1635 rc = efx_rx_scale_context_free(sa->nic, spec->efs_rss_context); in sfc_flow_filter_remove()
1646 struct sfc_flow_spec *spec = &flow->spec; in sfc_flow_parse_mark() local
1647 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_parse_mark()
1666 struct sfc_flow_spec *spec = &flow->spec; in sfc_flow_parse_actions() local
1667 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_parse_actions()
1813 sfc_flow_set_unknown_dst_flags(struct sfc_flow_spec *spec, in sfc_flow_set_unknown_dst_flags() argument
1818 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_set_unknown_dst_flags()
1857 __rte_unused efx_filter_spec_t *spec, in sfc_flow_check_unknown_dst_flags() argument
1888 sfc_flow_set_ethertypes(struct sfc_flow_spec *spec, in sfc_flow_set_ethertypes() argument
1893 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_set_ethertypes()
1934 sfc_flow_set_outer_vid_flag(struct sfc_flow_spec *spec, in sfc_flow_set_outer_vid_flag() argument
1938 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_set_outer_vid_flag()
1973 sfc_flow_set_ifrm_unknown_dst_flags(struct sfc_flow_spec *spec, in sfc_flow_set_ifrm_unknown_dst_flags() argument
1978 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_set_ifrm_unknown_dst_flags()
2018 efx_filter_spec_t *spec, in sfc_flow_check_ifrm_unknown_dst_flags() argument
2022 efx_tunnel_protocol_t encap_type = spec->efs_encap_type; in sfc_flow_check_ifrm_unknown_dst_flags()
2054 __rte_unused efx_filter_spec_t *spec, in sfc_flow_check_outer_vid_flag() argument
2130 sfc_flow_spec_add_match_flag(struct sfc_flow_spec *spec, in sfc_flow_spec_add_match_flag() argument
2138 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_spec_add_match_flag()
2166 rc = copy_flag->set_vals(spec, filters_count_for_one_val, error); in sfc_flow_spec_add_match_flag()
2190 efx_filter_spec_t *spec, in sfc_flow_check_missing_flags() argument
2196 efx_filter_match_flags_t match = spec->efs_match_flags | miss_flags; in sfc_flow_check_missing_flags()
2204 if (check != NULL && (!check(match, spec, filter))) in sfc_flow_check_missing_flags()
2236 struct sfc_flow_spec *spec, in sfc_flow_spec_filters_complete() argument
2239 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_spec_filters_complete()
2275 rc = sfc_flow_spec_add_match_flag(spec, flag, error); in sfc_flow_spec_filters_complete()
2322 struct sfc_flow_spec *spec) in sfc_flow_is_match_flags_exception() argument
2328 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_is_match_flags_exception()
2366 struct sfc_flow_spec *spec = &flow->spec; in sfc_flow_validate_match_flags() local
2367 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_validate_match_flags()
2377 rc = sfc_flow_spec_filters_complete(sa, &flow->spec, error); in sfc_flow_validate_match_flags()
2382 if (sfc_flow_is_match_flags_exception(&sa->filter, &flow->spec)) { in sfc_flow_validate_match_flags()
2400 struct sfc_flow_spec *spec = &flow->spec; in sfc_flow_parse_rte_to_filter() local
2401 struct sfc_flow_spec_filter *spec_filter = &spec->filter; in sfc_flow_parse_rte_to_filter()
2435 struct sfc_flow_spec *spec = &flow->spec; in sfc_flow_parse_rte_to_mae() local
2436 struct sfc_flow_spec_mae *spec_mae = &spec->mae; in sfc_flow_parse_rte_to_mae()