ICE_FLOW_SEG_HDR_PPPOE | ICE_FLOW_SEG_HDR_IPV4 |
ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_TCP,
ETH_RSS_ETH | ETH_RSS_PPPOE | ETH_RSS_NONFRAG_IPV4_TCP};
-struct rss_type_match_hdr hint_eth_pppoes_ipv4_sctp = {
- ICE_FLOW_SEG_HDR_PPPOE | ICE_FLOW_SEG_HDR_IPV4 |
- ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_SCTP,
- ETH_RSS_ETH | ETH_RSS_PPPOE | ETH_RSS_NONFRAG_IPV4_SCTP};
struct rss_type_match_hdr hint_eth_ipv4_esp = {
ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER |
ICE_FLOW_SEG_HDR_ESP,
ICE_FLOW_SEG_HDR_PPPOE | ICE_FLOW_SEG_HDR_IPV6 |
ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_TCP,
ETH_RSS_ETH | ETH_RSS_PPPOE | ETH_RSS_NONFRAG_IPV6_TCP};
-struct rss_type_match_hdr hint_eth_pppoes_ipv6_sctp = {
- ICE_FLOW_SEG_HDR_PPPOE | ICE_FLOW_SEG_HDR_IPV6 |
- ICE_FLOW_SEG_HDR_IPV_OTHER | ICE_FLOW_SEG_HDR_SCTP,
- ETH_RSS_ETH | ETH_RSS_PPPOE | ETH_RSS_NONFRAG_IPV6_SCTP};
struct rss_type_match_hdr hint_eth_pppoes = {
ICE_FLOW_SEG_HDR_PPPOE,
ETH_RSS_ETH | ETH_RSS_PPPOE};
&hint_eth_pppoes_ipv4_udp},
{pattern_eth_pppoes_ipv4_tcp, ICE_INSET_NONE,
&hint_eth_pppoes_ipv4_tcp},
- {pattern_eth_pppoes_ipv4_sctp, ICE_INSET_NONE,
- &hint_eth_pppoes_ipv4_sctp},
{pattern_eth_ipv4_esp, ICE_INSET_NONE,
&hint_eth_ipv4_esp},
{pattern_eth_ipv4_udp_esp, ICE_INSET_NONE,
&hint_eth_pppoes_ipv6_udp},
{pattern_eth_pppoes_ipv6_tcp, ICE_INSET_NONE,
&hint_eth_pppoes_ipv6_tcp},
- {pattern_eth_pppoes_ipv6_sctp, ICE_INSET_NONE,
- &hint_eth_pppoes_ipv6_sctp},
{pattern_eth_pppoes, ICE_INSET_NONE,
&hint_eth_pppoes},
};
enum rte_flow_action_type action_type;
const struct rte_flow_action_rss *rss;
const struct rte_flow_action *action;
+ bool hash_map_found = false;
uint64_t rss_attr_src_dst;
uint64_t rss_attr_l3_pre;
uint64_t rss_attr_symm;
if (rss_type == ht_map->hash_type) {
hash_meta->hash_flds =
ht_map->hash_flds;
+ hash_map_found = true;
break;
}
}
+ if (pattern_match_item->pattern_list !=
+ pattern_empty && !hash_map_found) {
+ return rte_flow_error_set(error, ENOTSUP,
+ RTE_FLOW_ERROR_TYPE_ACTION, action,
+ "Not supported flow");
+ }
+
/* update hash field for nat-t esp. */
if (rss_type == ETH_RSS_ESP &&
(m->eth_rss_hint & ETH_RSS_NONFRAG_IPV4_UDP ||