DPDK19.05 rte_flow 的 rss 支持情况:
结论
实验和查看源码得出:
driver | supports | supports |
---|---|---|
igb | rss | ntuple + queue |
ixgbe | rss | ntuple + queue |
i40e | rss, eth + rss, vlan + rss | ntuple + queue |
证据
igb, ixgbe 都没有看到 ntuple 和 rss 组合使用:
static int
igb_parse_rss_filter(struct rte_eth_dev *dev,
const struct rte_flow_attr *attr,
const struct rte_flow_action actions[],
struct igb_rte_flow_rss_conf *rss_conf,
struct rte_flow_error *error)
static int
ixgbe_parse_rss_filter(struct rte_eth_dev *dev,
const struct rte_flow_attr *attr,
const struct rte_flow_action actions[],
struct ixgbe_rte_flow_rss_conf *rss_conf,
struct rte_flow_error *error)
i40e 只支持 eth+rss, vlan+rss 的使用:
/**
- This function is used to do configuration i40e existing RSS with rte_flow.
- It also enable queue region configuration using flow API for i40e.
- pattern can be used indicate what parameters will be include in flow,
- like user_priority or flowtype for queue region or HASH function for RSS.
- Action is used to transmit parameter like queue index and HASH
- function for RSS, or flowtype for queue region configuration.
- For example:
- pattern:
- Case 1: only ETH, indicate flowtype for queue region will be parsed.
- Case 2: only VLAN, indicate user_priority for queue region will be parsed.
- Case 3: none, indicate RSS related will be parsed in action.
- Any pattern other the ETH or VLAN will be treated as invalid except END.
- So, pattern choice is depened on the purpose of configuration of
- that flow.
- action:
- action RSS will be uaed to transmit valid parameter with
-
struct rte_flow_action_rss for all the 3 case.
*/
static int
i40e_parse_rss_filter(struct rte_eth_dev *dev,
const struct rte_flow_attr *attr,
const struct rte_flow_item pattern[],
const struct rte_flow_action actions[],
union i40e_filter_t *filter,
struct rte_flow_error *error)
版权声明:本文为yk_wing4原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。