From: Zhiyong Yang Date: Thu, 24 May 2018 09:24:29 +0000 (-0400) Subject: dpdk: enable RX for no-multi-seg X-Git-Tag: v18.07-rc1~283 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F10%2F12710%2F6;p=vpp.git dpdk: enable RX for no-multi-seg The option no-multi-seg doesn't take effect for RX since MTU which is too large is passed to DPDK lib, Which causes PMDs are running XXX_scattered_rx function. The patch fixes the issue. Change-Id: I91a6fb23fd118e872c8a52a6c35c36a86cb2c02b Signed-off-by: Zhiyong Yang --- diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c index 23d4d46f24e..1f17c61ccaf 100755 --- a/src/plugins/dpdk/device/init.c +++ b/src/plugins/dpdk/device/init.c @@ -37,6 +37,8 @@ #include +#define ETHER_MAX_LEN 1518 /**< Maximum frame len, including CRC. */ + dpdk_main_t dpdk_main; dpdk_config_main_t dpdk_config_main; @@ -693,6 +695,9 @@ dpdk_lib_init (dpdk_main_t * dm) else clib_warning ("hi NULL"); + if (dm->conf->no_multi_seg) + mtu = mtu > ETHER_MAX_LEN ? ETHER_MAX_LEN : mtu; + rte_eth_dev_set_mtu (xd->device_index, mtu); }