diff options
Diffstat (limited to 'src/vnet/devices/dpdk/init.c')
-rwxr-xr-x | src/vnet/devices/dpdk/init.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/vnet/devices/dpdk/init.c b/src/vnet/devices/dpdk/init.c index 4c040d20af7..3fa656ea13f 100755 --- a/src/vnet/devices/dpdk/init.c +++ b/src/vnet/devices/dpdk/init.c @@ -125,6 +125,10 @@ dpdk_port_setup (dpdk_main_t * dm, dpdk_device_t * xd) { int rv; rv = rte_eth_dev_start (xd->device_index); + if (!rv && xd->default_mac_address) + rv = rte_eth_dev_default_mac_addr_set (xd->device_index, + (struct ether_addr *) + xd->default_mac_address); if (rv < 0) clib_warning ("rte_eth_dev_start %d returned %d", xd->device_index, rv); @@ -199,6 +203,10 @@ dpdk_flag_change (vnet_main_t * vnm, vnet_hw_interface_t * hi, u32 flags) if (xd->flags & DPDK_DEVICE_FLAG_ADMIN_UP) { int rv = rte_eth_dev_start (xd->device_index); + if (!rv && xd->default_mac_address) + rv = rte_eth_dev_default_mac_addr_set (xd->device_index, + (struct ether_addr *) + xd->default_mac_address); if (rv < 0) clib_warning ("rte_eth_dev_start %d returned %d", xd->device_index, rv); |