net/enic: generate VXLAN src port if it is zero in template
[dpdk.git] / drivers / net / bonding / rte_eth_bond_pmd.c
index 1e38cbf..4ffd2ca 100644 (file)
@@ -21,8 +21,8 @@
 #include <rte_string_fns.h>
 
 #include "rte_eth_bond.h"
-#include "rte_eth_bond_private.h"
-#include "rte_eth_bond_8023ad_private.h"
+#include "eth_bond_private.h"
+#include "eth_bond_8023ad_private.h"
 
 #define REORDER_PERIOD_MS 10
 #define DEFAULT_POLLING_INTERVAL_10_MS (10)
@@ -489,9 +489,9 @@ update_client_stats(uint32_t addr, uint16_t port, uint32_t *TXorRXindicator)
 #endif
 
 static void
-mode6_debug(const char __attribute__((unused)) *info,
+mode6_debug(const char __rte_unused *info,
        struct rte_ether_hdr *eth_h, uint16_t port,
-       uint32_t __attribute__((unused)) *burstnumber)
+       uint32_t __rte_unused *burstnumber)
 {
        struct rte_ipv4_hdr *ipv4_h;
 #ifdef RTE_LIBRTE_BOND_DEBUG_ALB
@@ -1502,6 +1502,7 @@ int
 mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
 {
        struct bond_dev_private *internals = bonded_eth_dev->data->dev_private;
+       bool set;
        int i;
 
        /* Update slave devices MAC addresses */
@@ -1529,15 +1530,16 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
        case BONDING_MODE_TLB:
        case BONDING_MODE_ALB:
        default:
+               set = true;
                for (i = 0; i < internals->slave_count; i++) {
                        if (internals->slaves[i].port_id ==
                                        internals->current_primary_port) {
                                if (rte_eth_dev_default_mac_addr_set(
-                                               internals->primary_port,
+                                               internals->current_primary_port,
                                                bonded_eth_dev->data->mac_addrs)) {
                                        RTE_BOND_LOG(ERR, "Failed to update port Id %d MAC address",
                                                        internals->current_primary_port);
-                                       return -1;
+                                       set = false;
                                }
                        } else {
                                if (rte_eth_dev_default_mac_addr_set(
@@ -1545,10 +1547,11 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
                                                &internals->slaves[i].persisted_mac_addr)) {
                                        RTE_BOND_LOG(ERR, "Failed to update port Id %d MAC address",
                                                        internals->slaves[i].port_id);
-                                       return -1;
                                }
                        }
                }
+               if (!set)
+                       return -1;
        }
 
        return 0;
@@ -1876,7 +1879,7 @@ slave_remove(struct bond_dev_private *internals,
        internals->slave_count--;
 
        /* force reconfiguration of slave interfaces */
-       _rte_eth_dev_reset(slave_eth_dev);
+       rte_eth_dev_internal_reset(slave_eth_dev);
 }
 
 static void
@@ -2762,7 +2765,7 @@ bond_ethdev_delayed_lsc_propagation(void *arg)
        if (arg == NULL)
                return;
 
-       _rte_eth_dev_callback_process((struct rte_eth_dev *)arg,
+       rte_eth_dev_callback_process((struct rte_eth_dev *)arg,
                        RTE_ETH_EVENT_INTR_LSC, NULL);
 }
 
@@ -2873,6 +2876,7 @@ bond_ethdev_lsc_event_callback(uint16_t port_id, enum rte_eth_event_type type,
                                                internals->active_slaves[0]);
                        else
                                internals->current_primary_port = internals->primary_port;
+                       mac_address_slaves_update(bonded_eth_dev);
                }
        }
 
@@ -2896,7 +2900,7 @@ link_update:
                                                bond_ethdev_delayed_lsc_propagation,
                                                (void *)bonded_eth_dev);
                        else
-                               _rte_eth_dev_callback_process(bonded_eth_dev,
+                               rte_eth_dev_callback_process(bonded_eth_dev,
                                                RTE_ETH_EVENT_INTR_LSC,
                                                NULL);
 
@@ -2906,7 +2910,7 @@ link_update:
                                                bond_ethdev_delayed_lsc_propagation,
                                                (void *)bonded_eth_dev);
                        else
-                               _rte_eth_dev_callback_process(bonded_eth_dev,
+                               rte_eth_dev_callback_process(bonded_eth_dev,
                                                RTE_ETH_EVENT_INTR_LSC,
                                                NULL);
                }
@@ -2931,7 +2935,8 @@ bond_ethdev_rss_reta_update(struct rte_eth_dev *dev,
                return -EINVAL;
 
         /* Copy RETA table */
-       reta_count = reta_size / RTE_RETA_GROUP_SIZE;
+       reta_count = (reta_size + RTE_RETA_GROUP_SIZE - 1) /
+                       RTE_RETA_GROUP_SIZE;
 
        for (i = 0; i < reta_count; i++) {
                internals->reta_conf[i].mask = reta_conf[i].mask;
@@ -3750,11 +3755,4 @@ RTE_PMD_REGISTER_PARAM_STRING(net_bonding,
        "up_delay=<int> "
        "down_delay=<int>");
 
-int bond_logtype;
-
-RTE_INIT(bond_init_log)
-{
-       bond_logtype = rte_log_register("pmd.net.bond");
-       if (bond_logtype >= 0)
-               rte_log_set_level(bond_logtype, RTE_LOG_NOTICE);
-}
+RTE_LOG_REGISTER(bond_logtype, pmd.net.bond, NOTICE);