diff options
author | Steven Luong <sluong@cisco.com> | 2020-02-12 18:45:09 -0800 |
---|---|---|
committer | Andrew Yourtchenko <ayourtch@gmail.com> | 2020-02-29 16:42:14 +0000 |
commit | 03bcbd3621867dac4c5dcb32b59f70424a7bc4d9 (patch) | |
tree | c4c121bdb53973078d46ec3c6d5a17562d967db5 /src/plugins | |
parent | c7a00641f8004d87d38a1092ab16da8f49bd6cf2 (diff) |
dpdk: TSO does not work for Cisco VIC
While TSO is supported for Intel NIC, Cisco VIC does not work.
The problem is due to txmode offloads is not properly set for
the Cisco VIC when enable-tcp-udp-checksum is configured.
Type: fix
Ticket: VPP-1838
Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I72c41db9b327ed8d08ef70d74e8cc6206d4a102f
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/dpdk/device/init.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c index b5f0ec7e563..056544646ed 100644 --- a/src/plugins/dpdk/device/init.c +++ b/src/plugins/dpdk/device/init.c @@ -199,6 +199,15 @@ check_l3cache () return 0; } +static void +dpdk_enable_l4_csum_offload (dpdk_device_t * xd) +{ + xd->port_conf.txmode.offloads |= DEV_TX_OFFLOAD_TCP_CKSUM; + xd->port_conf.txmode.offloads |= DEV_TX_OFFLOAD_UDP_CKSUM; + xd->flags |= DPDK_DEVICE_FLAG_TX_OFFLOAD | + DPDK_DEVICE_FLAG_INTEL_PHDR_CKSUM; +} + static clib_error_t * dpdk_lib_init (dpdk_main_t * dm) { @@ -496,6 +505,8 @@ dpdk_lib_init (dpdk_main_t * dm) /* Cisco VIC */ case VNET_DPDK_PMD_ENIC: xd->port_type = port_type_from_link_speed (l.link_speed); + if (dm->conf->enable_tcp_udp_checksum) + dpdk_enable_l4_csum_offload (xd); break; /* Intel Red Rock Canyon */ |