diff options
author | Vratko Polak <vrpolak@cisco.com> | 2024-05-30 10:51:57 +0200 |
---|---|---|
committer | Vratko Polak <vrpolak@cisco.com> | 2024-05-30 12:55:37 +0000 |
commit | 6ed8c39ecfacd595c2d848d719608138353899bd (patch) | |
tree | 56276a351d2468406bc0d0e574617f9adb708128 | |
parent | 8f804a1b0c66f5ac017d566ef24b2b687c602d8c (diff) |
feat(hoststack): Enable L4 checksum RX offload
Change-Id: I169b06433ae962811aafa91ce90fe169b0bc4c71
Signed-off-by: Vratko Polak <vrpolak@cisco.com>
(cherry picked from commit 5cd3594cc9b411479796d53d86214323e4c00714)
19 files changed, 29 insertions, 2 deletions
diff --git a/resources/libraries/python/ContainerUtils.py b/resources/libraries/python/ContainerUtils.py index fc32248f6b..c0a282f775 100644 --- a/resources/libraries/python/ContainerUtils.py +++ b/resources/libraries/python/ContainerUtils.py @@ -763,6 +763,7 @@ class ContainerEngine: vpp_config = self.create_base_vpp_startup_config(cpuset_cpus) vpp_config.add_dpdk_dev(*devices) vpp_config.add_dpdk_log_level(u"debug") + vpp_config.add_dpdk_enable_tcp_udp_checksum() vpp_config.add_dpdk_no_tx_checksum_offload() vpp_config.add_dpdk_dev_default_rxq(rxq) vpp_config.add_plugin(u"enable", u"dpdk_plugin.so") diff --git a/resources/libraries/python/KubernetesUtils.py b/resources/libraries/python/KubernetesUtils.py index 9ded0e8b9e..6da5ba017d 100644 --- a/resources/libraries/python/KubernetesUtils.py +++ b/resources/libraries/python/KubernetesUtils.py @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Cisco and/or its affiliates. +# Copyright (c) 2024 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -492,6 +492,7 @@ class KubernetesUtils: vpp_config.add_ip6_hash_buckets(u"2000000") if not kwargs[u"jumbo"]: vpp_config.add_dpdk_no_multi_seg() + vpp_config.add_dpdk_enable_tcp_udp_checksum() vpp_config.add_dpdk_no_tx_checksum_offload() vpp_config.add_dpdk_dev_default_rxq(kwargs[u"rxq_count_int"]) vpp_config.add_dpdk_dev(kwargs[u"if1"], kwargs[u"if2"]) diff --git a/resources/libraries/python/QemuUtils.py b/resources/libraries/python/QemuUtils.py index 2df89ee87c..c9bbed4e81 100644 --- a/resources/libraries/python/QemuUtils.py +++ b/resources/libraries/python/QemuUtils.py @@ -1,4 +1,4 @@ -# Copyright (c) 2022-2023 Cisco and/or its affiliates. +# Copyright (c) 2024 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -344,6 +344,7 @@ class QemuUtils: vpp_config.add_dpdk_log_level(u"debug") if not kwargs[u"jumbo_frames"]: vpp_config.add_dpdk_no_multi_seg() + vpp_config.add_dpdk_no_enable_tcp_udp_checksum() vpp_config.add_dpdk_no_tx_checksum_offload() if "ipsec" in self._opt.get(u'vnf'): vpp_config.add_plugin(u"enable", u"crypto_native_plugin.so") diff --git a/resources/libraries/python/VppConfigGenerator.py b/resources/libraries/python/VppConfigGenerator.py index 73eff44066..fb3df2fc16 100644 --- a/resources/libraries/python/VppConfigGenerator.py +++ b/resources/libraries/python/VppConfigGenerator.py @@ -551,6 +551,11 @@ class VppConfigGenerator: path = ["dpdk", "no-multi-seg"] self.add_config_item(self._nodeconfig, "", path) + def add_dpdk_enable_tcp_udp_checksum(self): + """Add DPDK enable-tcp-udp-checksum configuration.""" + path = ["dpdk", "enable-tcp-udp-checksum"] + self.add_config_item(self._nodeconfig, "", path) + def add_dpdk_no_tx_checksum_offload(self): """Add DPDK no-tx-checksum-offload configuration.""" path = ["dpdk", "no-tx-checksum-offload"] diff --git a/resources/libraries/robot/shared/interfaces.robot b/resources/libraries/robot/shared/interfaces.robot index 091a09eeaf..b4d6959d01 100644 --- a/resources/libraries/robot/shared/interfaces.robot +++ b/resources/libraries/robot/shared/interfaces.robot @@ -16,6 +16,7 @@ | Library | resources.libraries.python.VhostUser *** Variables *** +| ${dpdk_enable_tcp_udp_checksum}= | ${False} | ${dpdk_no_tx_checksum_offload}= | ${True} *** Keywords *** @@ -136,6 +137,8 @@ | | | Unbind PCI Devices From Other Driver | ${nodes['${dut}']} | vfio-pci | | | | ... | @{${dut}_pf_pci} | | | Run keyword | ${dut}.Add DPDK Dev | @{${dut}_pf_pci} +| | | Run Keyword If | ${dpdk_enable_tcp_udp_checksum} +| | | ... | ${dut}.Add DPDK Enable TCP UDP Checksum | | | Run Keyword If | ${dpdk_no_tx_checksum_offload} | | | ... | ${dut}.Add DPDK No Tx Checksum Offload | | | Run Keyword | ${dut}.Add DPDK Log Level | debug @@ -201,6 +204,8 @@ | | Run Keyword If | ${index} >= 0 | Return From Keyword | | FOR | ${dut} | IN | @{duts} | | | Run keyword | ${dut}.Add DPDK Dev | @{${dut}_pf_pci} +| | | Run Keyword If | ${dpdk_enable_tcp_udp_checksum} +| | | ... | ${dut}.Add DPDK Enable TCP UDP Checksum | | | Run Keyword If | ${dpdk_no_tx_checksum_offload} | | | ... | ${dut}.Add DPDK No Tx Checksum Offload | | | Run Keyword | ${dut}.Add DPDK Log Level | debug diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot index 2f8232e4c2..654562f38d 100644 --- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot +++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-ldpreload-iperf3-bps.robot @@ -50,6 +50,7 @@ | ${nic_vfs}= | 0 | ${smt_used}= | ${False} | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} | ${frame_size}= | ${1518} | ${crypto_type}= | ${None} diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot index 39dd77f684..c7ed27e2d1 100644 --- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot +++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpbase-nsim-ldpreload-iperf3-bps.robot @@ -50,6 +50,7 @@ | ${nic_vfs}= | 0 | ${smt_used}= | ${False} | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} | ${frame_size}= | ${1518} | ${crypto_type}= | ${None} diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot index 17ac73b8e0..20a4049c50 100644 --- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot +++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-ldpreload-iperf3-bps.robot @@ -49,6 +49,7 @@ | ${nic_pfs}= | 2 | ${nic_vfs}= | 0 | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} | ${frame_size}= | ${1518} | ${crypto_type}= | ${None} diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot index 30ac61def0..5c13ca0e9b 100644 --- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot +++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4tcpscale1cl10s-nsim-ldpreload-iperf3-bps.robot @@ -49,6 +49,7 @@ | ${nic_pfs}= | 2 | ${nic_vfs}= | 0 | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} | ${frame_size}= | ${1518} | ${crypto_type}= | ${None} diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot index 491e20b170..87f3c09896 100644 --- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot +++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpbase-ldpreload-iperf3-bps.robot @@ -50,6 +50,7 @@ | ${nic_vfs}= | 0 | ${smt_used}= | ${False} | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} | ${frame_size}= | ${1518} | ${crypto_type}= | ${None} diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot index 5f2eafb2f5..911af4c170 100644 --- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot +++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicbase-vppecho-bps.robot @@ -49,6 +49,7 @@ | ${nic_vfs}= | 0 | ${smt_used}= | ${False} | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} | ${frame_size}= | ${1518} | ${crypto_type}= | ${None} diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot index 5806905b4f..e068186700 100644 --- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot +++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl10s-vppecho-bps.robot @@ -49,6 +49,7 @@ | ${nic_pfs}= | 2 | ${nic_vfs}= | 0 | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} | ${frame_size}= | ${1518} | ${crypto_type}= | ${None} diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot index a31273681e..1203173398 100644 --- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot +++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale10cl1s-vppecho-bps.robot @@ -49,6 +49,7 @@ | ${nic_pfs}= | 2 | ${nic_vfs}= | 0 | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} | ${frame_size}= | ${1518} | ${crypto_type}= | ${None} diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot index 59951aa5db..6c28e2f3e7 100644 --- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot +++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpquicscale1cl10s-vppecho-bps.robot @@ -49,6 +49,7 @@ | ${nic_pfs}= | 2 | ${nic_vfs}= | 0 | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} | ${frame_size}= | ${1518} | ${crypto_type}= | ${None} diff --git a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot index 0368f9d15b..c942f2bea6 100644 --- a/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot +++ b/tests/vpp/perf/hoststack/10ge2p1x710-eth-ip4udpscale1cl10s-ldpreload-iperf3-bps.robot @@ -49,6 +49,7 @@ | ${nic_pfs}= | 2 | ${nic_vfs}= | 0 | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} | ${frame_size}= | ${1518} | ${crypto_type}= | ${None} diff --git a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps.robot index cd6cb673c5..667b83382f 100644 --- a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps.robot +++ b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-cps.robot @@ -51,6 +51,7 @@ | ${nic_pfs}= | 2 | ${nic_vfs}= | 0 | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} #| ${page_size}= | 1G | ${ciphers}= | 0 diff --git a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps.robot index e1680b4779..3cf4cf378c 100644 --- a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps.robot +++ b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-dma-ldpreload-nginx-1_21_5-rps.robot @@ -51,6 +51,7 @@ | ${nic_pfs}= | 2 | ${nic_vfs}= | 0 | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} #| ${page_size}= | 1G | ${ciphers}= | 0 diff --git a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps.robot index 7f1e4ba189..75c9a4f003 100644 --- a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps.robot +++ b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-cps.robot @@ -49,6 +49,7 @@ | ${nic_pfs}= | 2 | ${nic_vfs}= | 0 | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} | ${ciphers}= | 0 | ${rps_cps}= | cps diff --git a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps.robot b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps.robot index 0db8a72a16..9020c6cd6f 100644 --- a/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps.robot +++ b/tests/vpp/perf/hoststack/2n1l-10ge2p1x710-eth-ip4tcphttp-ldpreload-nginx-1_21_5-rps.robot @@ -49,6 +49,7 @@ | ${nic_pfs}= | 2 | ${nic_vfs}= | 0 | ${overhead}= | ${0} +| ${dpdk_enable_tcp_udp_checksum}= | ${True} | ${dpdk_no_tx_checksum_offload}= | ${False} | ${ciphers}= | 0 | ${rps_cps}= | rps |