Extract promiscuous and all multicast configuration restore to separate functions. This change will allow easier integration of disabling these procedures for supporting PMDs in follow up commits.
Signed-off-by: Dariusz Sosnowski <dsosnow...@nvidia.com> --- lib/ethdev/rte_ethdev.c | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index f1c658f49e..362a1883f0 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -1648,14 +1648,10 @@ eth_dev_mac_restore(struct rte_eth_dev *dev, } static int -eth_dev_config_restore(struct rte_eth_dev *dev, - struct rte_eth_dev_info *dev_info, uint16_t port_id) +eth_dev_promiscuous_restore(struct rte_eth_dev *dev, uint16_t port_id) { int ret; - if (!(*dev_info->dev_flags & RTE_ETH_DEV_NOLIVE_MAC_ADDR)) - eth_dev_mac_restore(dev, dev_info); - /* replay promiscuous configuration */ /* * use callbacks directly since we don't need port_id check and @@ -1683,6 +1679,14 @@ eth_dev_config_restore(struct rte_eth_dev *dev, } } + return 0; +} + +static int +eth_dev_allmulticast_restore(struct rte_eth_dev *dev, uint16_t port_id) +{ + int ret; + /* replay all multicast configuration */ /* * use callbacks directly since we don't need port_id check and @@ -1713,6 +1717,26 @@ eth_dev_config_restore(struct rte_eth_dev *dev, return 0; } +static int +eth_dev_config_restore(struct rte_eth_dev *dev, + struct rte_eth_dev_info *dev_info, uint16_t port_id) +{ + int ret; + + if (!(*dev_info->dev_flags & RTE_ETH_DEV_NOLIVE_MAC_ADDR)) + eth_dev_mac_restore(dev, dev_info); + + ret = eth_dev_promiscuous_restore(dev, port_id); + if (ret != 0) + return ret; + + ret = eth_dev_allmulticast_restore(dev, port_id); + if (ret != 0) + return ret; + + return 0; +} + int rte_eth_dev_start(uint16_t port_id) { -- 2.39.5