On 5/29/15, 5:37 PM, "Liang-Min Larry Wang" <liang-min.wang at intel.com> wrote: >add a new api: rte_eth_dev_default_mac_addr_set to >support changing default mac address of a NIC > >Signed-off-by: Liang-Min Larry Wang <liang-min.wang at intel.com> >--- > lib/librte_ether/rte_ethdev.c | 18 ++++++++++++++++++ > lib/librte_ether/rte_ethdev.h | 14 ++++++++++++++ > lib/librte_ether/rte_ether_version.map | 1 + > 3 files changed, 33 insertions(+) > >diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c >index 024fe8b..85ce72e 100644 >--- a/lib/librte_ether/rte_ethdev.c >+++ b/lib/librte_ether/rte_ethdev.c >@@ -2752,6 +2752,24 @@ rte_eth_dev_mac_addr_remove(uint8_t port_id, >struct ether_addr *addr) > } > > int >+rte_eth_dev_default_mac_addr_set(uint8_t port_id, struct ether_addr >*addr) >+{ >+ struct rte_eth_dev *dev; >+ >+ if (!rte_eth_dev_is_valid_port(port_id)) { >+ PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id); >+ return -ENODEV; >+ } >+ >+ dev = &rte_eth_devices[port_id]; >+ FUNC_PTR_OR_ERR_RET(*dev->dev_ops->mac_addr_set, -ENOTSUP); >+ >+ (*dev->dev_ops->mac_addr_set)(dev, addr); >+ >+ return 0; >+} >+ >+int > rte_eth_dev_set_vf_rxmode(uint8_t port_id, uint16_t vf, > uint16_t rx_mode, uint8_t on) > { >diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h >index 16dbe00..5f07e0d 100644 >--- a/lib/librte_ether/rte_ethdev.h >+++ b/lib/librte_ether/rte_ethdev.h >@@ -2982,6 +2982,20 @@ int rte_eth_dev_mac_addr_add(uint8_t port, struct >ether_addr *mac_addr, > int rte_eth_dev_mac_addr_remove(uint8_t port, struct ether_addr >*mac_addr); > > /** >+ * Set the default MAC address. >+ * >+ * @param port >+ * The port identifier of the Ethernet device. >+ * @param mac_addr >+ * New default MAC address. >+ * @return >+ * - (0) if successful, or *mac_addr* didn't exist. >+ * - (-ENOTSUP) if hardware doesn't support. >+ * - (-ENODEV) if *port* invalid. >+ */ >+int rte_eth_dev_default_mac_addr_set(uint8_t port, struct ether_addr >*mac_addr); >+ >+/** > * Update Redirection Table(RETA) of Receive Side Scaling of Ethernet >device. > * > * @param port >diff --git a/lib/librte_ether/rte_ether_version.map >b/lib/librte_ether/rte_ether_version.map >index a2d25a6..2dbbaa7 100644 >--- a/lib/librte_ether/rte_ether_version.map >+++ b/lib/librte_ether/rte_ether_version.map >@@ -102,6 +102,7 @@ DPDK_2.0 { > rte_eth_tx_queue_setup; > rte_eth_xstats_get; > rte_eth_xstats_reset; >+ rte_eth_dev_default_mac_addr_set; > > local: *; > }; >-- >2.1.4
Acked-by: Andrew Harvey (agh) <agh at cisco.com>