summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/dpdk/device/common.c3
-rwxr-xr-xsrc/plugins/dpdk/device/init.c20
2 files changed, 4 insertions, 19 deletions
diff --git a/src/plugins/dpdk/device/common.c b/src/plugins/dpdk/device/common.c
index d488d69e553..e8f33cf22e0 100644
--- a/src/plugins/dpdk/device/common.c
+++ b/src/plugins/dpdk/device/common.c
@@ -41,6 +41,7 @@ dpdk_device_setup (dpdk_device_t * xd)
dpdk_main_t *dm = &dpdk_main;
vnet_main_t *vnm = vnet_get_main ();
vnet_sw_interface_t *sw = vnet_get_sw_interface (vnm, xd->vlib_sw_if_index);
+ vnet_hw_interface_t *hi = vnet_get_hw_interface (vnm, xd->hw_if_index);
int rv;
int j;
@@ -108,6 +109,8 @@ dpdk_device_setup (dpdk_device_t * xd)
if (vec_len (xd->errors))
goto error;
+ rte_eth_dev_set_mtu (xd->device_index, hi->max_packet_bytes);
+
if (xd->flags & DPDK_DEVICE_FLAG_ADMIN_UP)
dpdk_device_start (xd);
diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c
index 60f8ce67583..7a6c5cf8789 100755
--- a/src/plugins/dpdk/device/init.c
+++ b/src/plugins/dpdk/device/init.c
@@ -103,26 +103,8 @@ dpdk_flag_change (vnet_main_t * vnm, vnet_hw_interface_t * hi, u32 flags)
}
else if (ETHERNET_INTERFACE_FLAG_CONFIG_MTU (flags))
{
- int rv;
-
xd->port_conf.rxmode.max_rx_pkt_len = hi->max_packet_bytes;
-
- if (xd->flags & DPDK_DEVICE_FLAG_ADMIN_UP)
- dpdk_device_stop (xd);
-
- rv = rte_eth_dev_configure
- (xd->device_index, xd->rx_q_used, xd->tx_q_used, &xd->port_conf);
-
- if (rv < 0)
- vlib_cli_output (vlib_get_main (),
- "rte_eth_dev_configure[%d]: err %d",
- xd->device_index, rv);
-
- rte_eth_dev_set_mtu (xd->device_index, hi->max_packet_bytes);
-
- if (xd->flags & DPDK_DEVICE_FLAG_ADMIN_UP)
- dpdk_device_start (xd);
-
+ dpdk_device_setup (xd);
}
return old;
}