git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
common/mlx5: move to formal ASO action API
[dpdk.git]
/
drivers
/
net
/
iavf
/
iavf_fdir.c
diff --git
a/drivers/net/iavf/iavf_fdir.c
b/drivers/net/iavf/iavf_fdir.c
index
f584e56
..
d683a46
100644
(file)
--- a/
drivers/net/iavf/iavf_fdir.c
+++ b/
drivers/net/iavf/iavf_fdir.c
@@
-256,6
+256,7
@@
iavf_fdir_parse_action_qregion(struct iavf_adapter *ad,
const struct rte_flow_action *act,
struct virtchnl_filter_action *filter_action)
{
const struct rte_flow_action *act,
struct virtchnl_filter_action *filter_action)
{
+ struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(ad);
const struct rte_flow_action_rss *rss = act->conf;
uint32_t i;
const struct rte_flow_action_rss *rss = act->conf;
uint32_t i;
@@
-300,6
+301,13
@@
iavf_fdir_parse_action_qregion(struct iavf_adapter *ad,
return -rte_errno;
}
return -rte_errno;
}
+ if (rss->queue_num > vf->max_rss_qregion) {
+ rte_flow_error_set(error, EINVAL,
+ RTE_FLOW_ERROR_TYPE_ACTION, act,
+ "The region size cannot be large than the supported max RSS queue region");
+ return -rte_errno;
+ }
+
filter_action->act_conf.queue.index = rss->queue[0];
filter_action->act_conf.queue.region = rte_fls_u32(rss->queue_num) - 1;
filter_action->act_conf.queue.index = rss->queue[0];
filter_action->act_conf.queue.region = rte_fls_u32(rss->queue_num) - 1;