[V1] tests/TestSuite_mtu_update.py: modify dts to adapt ixgbe

Message ID 20210208101532.8424-1-yanx.xia@intel.com (mailing list archive)
State Superseded
Headers
Series [V1] tests/TestSuite_mtu_update.py: modify dts to adapt ixgbe |

Commit Message

Yan Xia Feb. 8, 2021, 10:15 a.m. UTC
  modify jumbo frames and add command to adapt ixgbe

Signed-off-by: Xia Yan <yanx.xia@intel.com>
---
 tests/TestSuite_mtu_update.py | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)
  

Comments

Zhao, HaiyangX Feb. 9, 2021, 6:35 a.m. UTC | #1
Acked-by: Haiyang Zhao <haiyangx.zhao@intel.com>

Best Regards,
Zhao Haiyang

> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of Xia Yan
> Sent: Monday, February 8, 2021 18:16
> To: dts@dpdk.org
> Cc: Xia, YanX <yanx.xia@intel.com>
> Subject: [dts] [PATCH V1] tests/TestSuite_mtu_update.py: modify dts to
> adapt ixgbe
  
Tu, Lijuan Feb. 19, 2021, 8:20 a.m. UTC | #2
> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of Xia Yan
> Sent: 2021年2月8日 18:16
> To: dts@dpdk.org
> Cc: Xia, YanX <yanx.xia@intel.com>
> Subject: [dts] [PATCH V1] tests/TestSuite_mtu_update.py: modify dts to adapt
> ixgbe
> 
> modify jumbo frames and add command to adapt ixgbe
> 
> Signed-off-by: Xia Yan <yanx.xia@intel.com>
> ---
>  tests/TestSuite_mtu_update.py | 14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
> 
> diff --git a/tests/TestSuite_mtu_update.py b/tests/TestSuite_mtu_update.py
> index 239272f2..5282754e 100644
> --- a/tests/TestSuite_mtu_update.py
> +++ b/tests/TestSuite_mtu_update.py
> @@ -108,8 +108,12 @@ class TestMtuUpdate(TestCase):
>          # The packet total size include ethernet header, ip header, and payload.
>          # ethernet header length is 18 bytes, ip standard header length is 20 bytes.
>          # pktlen = pktsize - ETHER_HEADER_LEN
> -        max_pktlen = pktsize + ETHER_HEADER_LEN + VLAN * 2
> -        padding = max_pktlen - IP_HEADER_LEN - ETHER_HEADER_LEN
> +        if self.kdriver == "ixgbe":
> +            max_pktlen = pktsize + ETHER_HEADER_LEN + VLAN
> +            padding = max_pktlen - IP_HEADER_LEN - ETHER_HEADER_LEN-VLAN
> +        else:
> +            max_pktlen = pktsize + ETHER_HEADER_LEN + VLAN * 2
> +            padding = max_pktlen - IP_HEADER_LEN - ETHER_HEADER_LEN
>          out = self.send_scapy_packet(port_id,
>                                       f'Ether(dst=dutmac,
> src="52:00:00:00:00:00")/IP()/Raw(load="\x50"*{padding})')
>          return out
> @@ -226,18 +230,18 @@ class TestMtuUpdate(TestCase):
>          # Mellanox will need extra options to start testpmd
>              self.pmdout.start_testpmd("Default", "--max-pkt-len=9500 --tx-
> offloads=0x8000 --enable-scatter -a")
>          else:
> -            self.pmdout.start_testpmd("Default")
> +            self.pmdout.start_testpmd("Default",
> + "--tx-offload=0x00008000")

Why enable DEV_TX_OFFLOAD_MULTI_SEGS ?

> 
>          self.exec("port stop all")
>          self.exec(f"port config mtu 0 {packet_size:d}")
>          self.exec(f"port config mtu 1 {packet_size:d}")
>          self.verify(int(self.pmdout.get_detail_from_port_info("MTU: ", "\d+", 0))
> == packet_size, "MTU did not update")
>          self.verify(int(self.pmdout.get_detail_from_port_info("MTU: ", "\d+", 1))
> == packet_size, "MTU did not update")
> -
> +        self.exec("port config 1 tx_offload multi_segs on")
>          self.exec("port start all")
>          self.exec("set fwd mac")
>          self.exec("start")
> -
> +        time.sleep(5)
>          self.send_packet_of_size_to_tx_port(packet_size - 1, received=True)
>          self.send_packet_of_size_to_tx_port(packet_size, received=True)
>          self.send_packet_of_size_to_tx_port(packet_size + 1, received=False)
> --
> 2.17.1
  

Patch

diff --git a/tests/TestSuite_mtu_update.py b/tests/TestSuite_mtu_update.py
index 239272f2..5282754e 100644
--- a/tests/TestSuite_mtu_update.py
+++ b/tests/TestSuite_mtu_update.py
@@ -108,8 +108,12 @@  class TestMtuUpdate(TestCase):
         # The packet total size include ethernet header, ip header, and payload.
         # ethernet header length is 18 bytes, ip standard header length is 20 bytes.
         # pktlen = pktsize - ETHER_HEADER_LEN
-        max_pktlen = pktsize + ETHER_HEADER_LEN + VLAN * 2
-        padding = max_pktlen - IP_HEADER_LEN - ETHER_HEADER_LEN
+        if self.kdriver == "ixgbe":
+            max_pktlen = pktsize + ETHER_HEADER_LEN + VLAN
+            padding = max_pktlen - IP_HEADER_LEN - ETHER_HEADER_LEN-VLAN
+        else:
+            max_pktlen = pktsize + ETHER_HEADER_LEN + VLAN * 2
+            padding = max_pktlen - IP_HEADER_LEN - ETHER_HEADER_LEN
         out = self.send_scapy_packet(port_id,
                                      f'Ether(dst=dutmac, src="52:00:00:00:00:00")/IP()/Raw(load="\x50"*{padding})')
         return out
@@ -226,18 +230,18 @@  class TestMtuUpdate(TestCase):
         # Mellanox will need extra options to start testpmd
             self.pmdout.start_testpmd("Default", "--max-pkt-len=9500 --tx-offloads=0x8000 --enable-scatter -a")
         else:
-            self.pmdout.start_testpmd("Default")
+            self.pmdout.start_testpmd("Default", "--tx-offload=0x00008000")
         
         self.exec("port stop all")
         self.exec(f"port config mtu 0 {packet_size:d}")
         self.exec(f"port config mtu 1 {packet_size:d}")
         self.verify(int(self.pmdout.get_detail_from_port_info("MTU: ", "\d+", 0)) == packet_size, "MTU did not update")
         self.verify(int(self.pmdout.get_detail_from_port_info("MTU: ", "\d+", 1)) == packet_size, "MTU did not update")
-
+        self.exec("port config 1 tx_offload multi_segs on")
         self.exec("port start all")
         self.exec("set fwd mac")
         self.exec("start")
-
+        time.sleep(5)
         self.send_packet_of_size_to_tx_port(packet_size - 1, received=True)
         self.send_packet_of_size_to_tx_port(packet_size, received=True)
         self.send_packet_of_size_to_tx_port(packet_size + 1, received=False)