X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Fethdev%2Frte_ethdev.c;h=8520aec5619e14fe98192a8a53fcda8cd9da33e3;hb=93e1ea6dfa99dea359b8d66123576a395c2c0acd;hp=29a3d804666e3feabf1f39f17d2046587b1b027a;hpb=bfd0b54dc84f06183c8a13f75539f0f1dacb3c3e;p=dpdk.git diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index 29a3d80466..8520aec561 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -3867,6 +3867,7 @@ rte_eth_dev_rss_reta_update(uint16_t port_id, struct rte_eth_rss_reta_entry64 *reta_conf, uint16_t reta_size) { + enum rte_eth_rx_mq_mode mq_mode; struct rte_eth_dev *dev; int ret; @@ -3898,6 +3899,12 @@ rte_eth_dev_rss_reta_update(uint16_t port_id, if (ret < 0) return ret; + mq_mode = dev->data->dev_conf.rxmode.mq_mode; + if (!(mq_mode & RTE_ETH_MQ_RX_RSS_FLAG)) { + RTE_ETHDEV_LOG(ERR, "Multi-queue RSS mode isn't enabled.\n"); + return -ENOTSUP; + } + RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->reta_update, -ENOTSUP); return eth_err(port_id, (*dev->dev_ops->reta_update)(dev, reta_conf, reta_size)); @@ -3937,6 +3944,7 @@ rte_eth_dev_rss_hash_update(uint16_t port_id, { struct rte_eth_dev *dev; struct rte_eth_dev_info dev_info = { .flow_type_rss_offloads = 0, }; + enum rte_eth_rx_mq_mode mq_mode; int ret; RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV); @@ -3962,6 +3970,13 @@ rte_eth_dev_rss_hash_update(uint16_t port_id, dev_info.flow_type_rss_offloads); return -EINVAL; } + + mq_mode = dev->data->dev_conf.rxmode.mq_mode; + if (!(mq_mode & RTE_ETH_MQ_RX_RSS_FLAG)) { + RTE_ETHDEV_LOG(ERR, "Multi-queue RSS mode isn't enabled.\n"); + return -ENOTSUP; + } + RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->rss_hash_update, -ENOTSUP); return eth_err(port_id, (*dev->dev_ops->rss_hash_update)(dev, rss_conf));