From 907252079a0cf56b61754a59739e3a5703b28524 Mon Sep 17 00:00:00 2001 From: Ophir Munk Date: Thu, 10 May 2018 14:38:10 +0000 Subject: [PATCH] net/failsafe: add an RSS hash update callback Add an RSS hash update callback to eth_dev_ops. Signed-off-by: Ophir Munk Acked-by: Gaetan Rivet --- drivers/net/failsafe/failsafe_ops.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c index 089f114cff..d04277b9b0 100644 --- a/drivers/net/failsafe/failsafe_ops.c +++ b/drivers/net/failsafe/failsafe_ops.c @@ -13,6 +13,7 @@ #include #include #include +#include #include "failsafe_private.h" @@ -946,6 +947,31 @@ fs_mac_addr_set(struct rte_eth_dev *dev, struct ether_addr *mac_addr) return 0; } +static int +fs_rss_hash_update(struct rte_eth_dev *dev, + struct rte_eth_rss_conf *rss_conf) +{ + struct sub_device *sdev; + uint8_t i; + int ret; + + fs_lock(dev, 0); + FOREACH_SUBDEV_STATE(sdev, i, dev, DEV_ACTIVE) { + ret = rte_eth_dev_rss_hash_update(PORT_ID(sdev), rss_conf); + ret = fs_err(sdev, ret); + if (ret) { + ERROR("Operation rte_eth_dev_rss_hash_update" + " failed for sub_device %d with error %d", + i, ret); + fs_unlock(dev, 0); + return ret; + } + } + fs_unlock(dev, 0); + + return 0; +} + static int fs_filter_ctrl(struct rte_eth_dev *dev, enum rte_filter_type type, @@ -1005,5 +1031,6 @@ const struct eth_dev_ops failsafe_ops = { .mac_addr_remove = fs_mac_addr_remove, .mac_addr_add = fs_mac_addr_add, .mac_addr_set = fs_mac_addr_set, + .rss_hash_update = fs_rss_hash_update, .filter_ctrl = fs_filter_ctrl, }; -- 2.20.1