From patchwork Thu Nov 10 05:33:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Weiyuan Li X-Patchwork-Id: 119704 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 5093EA0540; Thu, 10 Nov 2022 06:30:21 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4B83F4014F; Thu, 10 Nov 2022 06:30:21 +0100 (CET) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 68929400EF for ; Thu, 10 Nov 2022 06:30:19 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1668058219; x=1699594219; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=0SwLDMCfpiZQBpxwJnc/47CF+V/YNEcvBnqVCjbulcU=; b=nwjf39NU4x6dNKxYA9vSxVVpNp22WwPTndgaeOfBwmBVhHRcuqhomsIX FmlMXua9IRmG5hg1AxOxLsPS1hm3qkdtbyXOmPh9X98V4PlyfZ5mP6bK6 aaAhn7myiN7F9Q3DChfmDLM8QQ3Ml1InM8zR4E7oXXRz2d/i9mhIXjfb+ DoncF1PrZHDUXixRHTA+5m3NTPJXhs7BdU2C7kRqXys3YhB0j7fnJz3Jg q02mL3r05qJezZx8pFGudKlyCDEpvro+PlICbwv44RuOZJo3pPAlBlWwu AfEwIAqDRzp+LQ20qd9pX/cZeHUreBlpM3DRdoWByQM0VemzGHzQadzaU w==; X-IronPort-AV: E=McAfee;i="6500,9779,10526"; a="373332631" X-IronPort-AV: E=Sophos;i="5.96,152,1665471600"; d="scan'208";a="373332631" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2022 21:29:44 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10526"; a="637037049" X-IronPort-AV: E=Sophos;i="5.96,152,1665471600"; d="scan'208";a="637037049" Received: from unknown (HELO dpdk-VF-dut247..) ([10.239.252.247]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2022 21:29:42 -0800 From: Weiyuan Li To: dts@dpdk.org, lijuan.tu@intel.com Cc: Weiyuan Li Subject: [dts][PATCH V2 8/8] tests/dual_vlan: modify script and test plan to support i40e fimware > 8.3 Date: Thu, 10 Nov 2022 13:33:58 +0800 Message-Id: <20221110053358.437591-8-weiyuanx.li@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221110053358.437591-1-weiyuanx.li@intel.com> References: <20221110053358.437591-1-weiyuanx.li@intel.com> MIME-Version: 1.0 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Modify script and test plan to i40e support fimware > 8.3. When the fimrware > 8.3, if the filter is to take effect need to enable extend. Signed-off-by: Weiyuan Li Tested-by: Song Jiale --- v2: -use the firmware version to judge whether to add command `extend on`. tests/TestSuite_dual_vlan.py | 389 ++++++++++++++++++++++------------- 1 file changed, 246 insertions(+), 143 deletions(-) diff --git a/tests/TestSuite_dual_vlan.py b/tests/TestSuite_dual_vlan.py index 87c5325b..e0cfc4b8 100644 --- a/tests/TestSuite_dual_vlan.py +++ b/tests/TestSuite_dual_vlan.py @@ -14,65 +14,6 @@ import re import time import framework.utils as utils - -txvlan = 3 -outvlan = 1 -invlan = 2 - -allResult = { - "TX+OUTER+INNER": (txvlan, outvlan, invlan), - "TX+INNER": (txvlan, invlan), - "TX+OUTER": (txvlan, outvlan), - "OUTER+INNER": (outvlan, invlan), - "INNER": (invlan,), - "OUTER": (outvlan,), - "NONE": ("No",), -} - -stripCase = 0x1 -filterCase = 0x2 -qinqCase = 0x4 -txCase = 0x8 - -vlanCaseDef = [ - 0, - stripCase, - filterCase, - filterCase | stripCase, - qinqCase, - qinqCase | stripCase, - qinqCase | filterCase, - qinqCase | filterCase | stripCase, - txCase, - txCase | stripCase, - txCase | filterCase, - txCase | filterCase | stripCase, - txCase | qinqCase, - txCase | qinqCase | stripCase, - txCase | qinqCase | filterCase, - txCase | qinqCase | filterCase | stripCase, -] - -vlanCase = [ - "OUTER+INNER", - "INNER", - ("OUTER+INNER", "NONE"), - ("INNER", "NONE"), - "OUTER+INNER", - "OUTER", - ("NONE", "OUTER+INNER"), - ("NONE", "OUTER"), - "TX+OUTER+INNER", - "TX+INNER", - ("TX+OUTER+INNER", "NONE"), - ("TX+INNER", "NONE"), - "TX+OUTER+INNER", - "TX+OUTER", - ("NONE", "TX+OUTER+INNER"), - ("NONE", "TX+OUTER"), -] - - from framework.pmd_output import PmdOutput from framework.test_case import TestCase @@ -104,6 +45,15 @@ class TestDualVlan(TestCase): "Default", "--portmask=%s" % portMask, socket=self.ports_socket ) + # Get the firmware version information + try: + self.fwversion, _, _ = self.pmdout.get_firmware_version( + self.dut_ports[0] + ).split() + except ValueError: + # nic IXGBE, IGC + self.fwversion = self.pmdout.get_firmware_version(self.dut_ports[0]).split() + if self.nic in [ "I40E_10G-SFP_XL710", "I40E_40G-QSFP_A", @@ -120,6 +70,127 @@ class TestDualVlan(TestCase): self.verify("Set mac packet forwarding mode" in out, "set fwd mac error") out = self.dut.send_expect("start", "testpmd> ", 120) + if self.kdriver == "i40e" and self.fwversion >= "8.40": + self.config_i40e_firmware_vlan() + else: + self.config_original() + + def config_original(self): + self.txvlan = 3 + self.outvlan = 1 + self.invlan = 2 + + self.allResult = { + "TX+OUTER+INNER": (self.txvlan, self.outvlan, self.invlan), + "TX+INNER": (self.txvlan, self.invlan), + "TX+OUTER": (self.txvlan, self.outvlan), + "OUTER+INNER": (self.outvlan, self.invlan), + "INNER": (self.invlan,), + "OUTER": (self.outvlan,), + "NONE": ("No",), + } + + self.stripCase = 0x1 + self.filterCase = 0x2 + self.qinqCase = 0x4 + self.txCase = 0x8 + + self.vlanCaseDef = [ + 0, + self.stripCase, + self.filterCase, + self.filterCase | self.stripCase, + self.qinqCase, + self.qinqCase | self.stripCase, + self.qinqCase | self.filterCase, + self.qinqCase | self.filterCase | self.stripCase, + self.txCase, + self.txCase | self.stripCase, + self.txCase | self.filterCase, + self.txCase | self.filterCase | self.stripCase, + self.txCase | self.qinqCase, + self.txCase | self.qinqCase | self.stripCase, + self.txCase | self.qinqCase | self.filterCase, + self.txCase | self.qinqCase | self.filterCase | self.stripCase, + ] + + self.vlanCase = [ + "OUTER+INNER", + "INNER", + ("OUTER+INNER", "NONE"), + ("INNER", "NONE"), + "OUTER+INNER", + "OUTER", + ("NONE", "OUTER+INNER"), + ("NONE", "OUTER"), + "TX+OUTER+INNER", + "TX+INNER", + ("TX+OUTER+INNER", "NONE"), + ("TX+INNER", "NONE"), + "TX+OUTER+INNER", + "TX+OUTER", + ("NONE", "TX+OUTER+INNER"), + ("NONE", "TX+OUTER"), + ] + + def config_i40e_firmware_vlan(self): + self.txvlan = 3 + self.outvlan = 1 + self.invlan = 2 + + self.allResult = { + "TX+OUTER+INNER": (self.txvlan, self.outvlan, self.invlan), + "TX+INNER": (self.txvlan, self.invlan), + "TX+OUTER": (self.txvlan, self.outvlan), + "OUTER+INNER": (self.outvlan, self.invlan), + "INNER": (self.invlan,), + "OUTER": (self.outvlan,), + "NONE": ("No",), + } + + self.stripCase = 0x1 + self.filterCase = 0x2 + self.qinqCase = 0x4 + self.txCase = 0x8 + + self.vlanCaseDef = [ + 0, + self.stripCase, + self.filterCase | self.qinqCase, + self.filterCase | self.qinqCase | self.stripCase, + self.qinqCase, + self.qinqCase | self.stripCase, + self.qinqCase | self.filterCase, + self.qinqCase | self.filterCase | self.stripCase, + self.txCase, + self.txCase | self.stripCase, + self.txCase | self.filterCase | self.qinqCase, + self.txCase | self.filterCase | self.qinqCase | self.stripCase, + self.txCase | self.qinqCase, + self.txCase | self.qinqCase | self.stripCase, + self.txCase | self.qinqCase | self.filterCase, + self.txCase | self.qinqCase | self.filterCase | self.stripCase, + ] + + self.vlanCase = [ + "OUTER+INNER", + "INNER", + ("OUTER+INNER", "NONE"), + ("OUTER", "NONE"), + "OUTER+INNER", + "OUTER", + ("OUTER+INNER", "NONE"), + ("OUTER", "NONE"), + "TX+OUTER+INNER", + "TX+INNER", + ("TX+OUTER+INNER", "NONE"), + ("TX+OUTER", "NONE"), + "TX+OUTER+INNER", + "TX+OUTER", + ("TX+OUTER+INNER", "NONE"), + ("TX+OUTER", "NONE"), + ] + def start_tcpdump(self, rxItf): self.tester.send_expect("rm -rf ./getPackageByTcpdump.cap", "#") @@ -174,14 +245,15 @@ class TestDualVlan(TestCase): # Intel® Ethernet 700 Series NIC vlan filter can't close, if want close need remove rx_vlan if mode == "filter": if modeName[mode] == "off": - self.dut.send_expect( - "rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> " - ) + self.dut.send_expect("vlan set filter off all", "testpmd> ") continue else: - self.dut.send_expect( - "rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> " - ) + self.dut.send_expect("vlan set filter on all", "testpmd> ") + if self.kdriver == "i40e" and self.fwversion >= "8.40": + self.dut.send_expect( + "rx_vlan add %s %s" % (self.outvlan, dutRxPortId), + "testpmd> ", + ) continue if mode == "stripq": @@ -209,14 +281,15 @@ class TestDualVlan(TestCase): # Intel® Ethernet 700 Series NIC vlan filter can't close, if want close need remove rx_vlan if mode == "filter": if modeName[mode] == "off": - self.dut.send_expect( - "rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> " - ) + self.dut.send_expect("vlan set filter off all", "testpmd> ") continue else: - self.dut.send_expect( - "rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> " - ) + self.dut.send_expect("vlan set filter on all", "testpmd> ") + if self.kdriver == "i40e" and self.fwversion >= "8.40": + self.dut.send_expect( + "rx_vlan add %s %s" % (self.outvlan, dutRxPortId), + "testpmd> ", + ) continue if mode == "extend": @@ -235,22 +308,22 @@ class TestDualVlan(TestCase): """ Setup Strip/Filter/Extend/Insert enable/disable for synthetic test. """ - caseDef = vlanCaseDef[caseIndex] + caseDef = self.vlanCaseDef[caseIndex] temp = [] - temp.append("on") if (caseDef & stripCase) != 0 else temp.append("off") - temp.append("on") if (caseDef & filterCase) != 0 else temp.append("off") - temp.append("on") if (caseDef & qinqCase) != 0 else temp.append("off") + temp.append("on") if (caseDef & self.stripCase) != 0 else temp.append("off") + temp.append("on") if (caseDef & self.filterCase) != 0 else temp.append("off") + temp.append("on") if (caseDef & self.qinqCase) != 0 else temp.append("off") if (self.nic in ["cavium_a063", "cavium_a064"]) and temp[2] == "on": ## Skip QinQ for cavium devices as it is not supported. return self.mode_config(strip=temp[0], filter=temp[1], extend=temp[2]) - if (caseDef & txCase) != 0: + if (caseDef & self.txCase) != 0: self.dut.send_expect("stop", "testpmd> ") self.dut.send_expect("port stop all", "testpmd> ") self.dut.send_expect( - "tx_vlan set %s %s" % (dutTxPortId, txvlan), "testpmd> " + "tx_vlan set %s %s" % (dutTxPortId, self.txvlan), "testpmd> " ) self.dut.send_expect("port start all", "testpmd> ") self.dut.send_expect("start", "testpmd> ") @@ -259,27 +332,27 @@ class TestDualVlan(TestCase): temp[0], temp[1], temp[2], - "on" if (caseDef & txCase) != 0 else "off", + "on" if (caseDef & self.txCase) != 0 else "off", ) - if (caseDef & filterCase) != 0: + if (caseDef & self.filterCase) != 0: self.dut.send_expect( - "rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> " + "rx_vlan add %s %s" % (self.outvlan, dutRxPortId), "testpmd> " ) - self.vlan_send_packet(outvlan, invlan) - self.check_result(vlanCase[caseIndex][0], configMode + " result Error") + self.vlan_send_packet(self.outvlan, self.invlan) + self.check_result(self.vlanCase[caseIndex][0], configMode + " result Error") self.dut.send_expect( - "rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> " + "rx_vlan rm %s %s" % (self.outvlan, dutRxPortId), "testpmd> " ) self.dut.send_expect( - "rx_vlan add %s %s" % (invlan, dutRxPortId), "testpmd> " + "rx_vlan add %s %s" % (self.invlan, dutRxPortId), "testpmd> " ) - self.vlan_send_packet(outvlan, invlan) - self.check_result(vlanCase[caseIndex][1], configMode + " result Error") + self.vlan_send_packet(self.outvlan, self.invlan) + self.check_result(self.vlanCase[caseIndex][1], configMode + " result Error") self.dut.send_expect( - "rx_vlan rm %s %s" % (invlan, dutRxPortId), "testpmd> " + "rx_vlan rm %s %s" % (self.invlan, dutRxPortId), "testpmd> " ) - if (caseDef & txCase) != 0: + if (caseDef & self.txCase) != 0: self.dut.send_expect("stop", "testpmd> ") self.dut.send_expect("port stop all", "testpmd> ") self.dut.send_expect("tx_vlan reset %s" % dutTxPortId, "testpmd> ") @@ -288,24 +361,24 @@ class TestDualVlan(TestCase): else: self.dut.send_expect( - "rx_vlan add %s %s" % (invlan, dutRxPortId), "testpmd> " + "rx_vlan add %s %s" % (self.invlan, dutRxPortId), "testpmd> " ) self.dut.send_expect( - "rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> " + "rx_vlan add %s %s" % (self.outvlan, dutRxPortId), "testpmd> " ) - self.vlan_send_packet(outvlan, invlan) - self.check_result(vlanCase[caseIndex], configMode + " result Error") - if (caseDef & txCase) != 0: + self.vlan_send_packet(self.outvlan, self.invlan) + self.check_result(self.vlanCase[caseIndex], configMode + " result Error") + if (caseDef & self.txCase) != 0: self.dut.send_expect("stop", "testpmd> ") self.dut.send_expect("port stop all", "testpmd> ") self.dut.send_expect("tx_vlan reset %s" % dutTxPortId, "testpmd> ") self.dut.send_expect("port start all", "testpmd> ") self.dut.send_expect("start", "testpmd> ") self.dut.send_expect( - "rx_vlan rm %s %s" % (invlan, dutRxPortId), "testpmd> " + "rx_vlan rm %s %s" % (self.invlan, dutRxPortId), "testpmd> " ) self.dut.send_expect( - "rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> " + "rx_vlan rm %s %s" % (self.outvlan, dutRxPortId), "testpmd> " ) def check_result(self, resultKey, errorString): @@ -314,14 +387,15 @@ class TestDualVlan(TestCase): """ print(("vlan flage config:%s" % errorString)) out = self.get_tcpdump_package() - if allResult[resultKey][0] == "No": + if self.allResult[resultKey][0] == "No": self.verify("vlan" not in out, errorString) else: resultList = [] - for i in range(len(allResult[resultKey]) - 1): - resultList.append("vlan %s" % allResult[resultKey][i]) + for i in range(len(self.allResult[resultKey]) - 1): + resultList.append("vlan %s" % self.allResult[resultKey][i]) resultList.append( - "vlan %s" % allResult[resultKey][len(allResult[resultKey]) - 1] + "vlan %s" + % self.allResult[resultKey][len(self.allResult[resultKey]) - 1] ) for line in resultList: self.verify(line in out, "receive packet is wrong:%s" % out) @@ -338,15 +412,22 @@ class TestDualVlan(TestCase): """ self.mode_config(filter="on") self.mode_config(strip="off") - self.mode_config(extend="off") - self.vlan_send_packet(outvlan) + if self.kdriver == "i40e" and self.fwversion >= "8.40": + self.mode_config(extend="on") + self.dut.send_expect( + "rx_vlan rm %s %s" % (self.outvlan, dutRxPortId), "testpmd> " + ) + else: + self.mode_config(extend="off") + + self.vlan_send_packet(self.outvlan) out = self.get_tcpdump_package() print(out) self.verify( - out is not None and "vlan %s" % outvlan not in out, + out is not None and "vlan %s" % self.outvlan not in out, "Vlan filter enable error: " + out, ) - + self.logger.debug(self.nic) if self.nic not in [ "ICE_25G-E810C_SFP", "ICE_100G-E810C_QSFP", @@ -359,18 +440,22 @@ class TestDualVlan(TestCase): "I40E_10G-10G_BASE_T_X722", ]: self.mode_config(filter="off") - self.vlan_send_packet(outvlan) + self.vlan_send_packet(self.outvlan) out = self.get_tcpdump_package() - self.verify("vlan %s" % outvlan in out, "Vlan filter disable error: " + out) + self.verify( + "vlan %s" % self.outvlan in out, "Vlan filter disable error: " + out + ) else: self.dut.send_expect( - "rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> " + "rx_vlan add %s %s" % (self.outvlan, dutRxPortId), "testpmd> " ) - self.vlan_send_packet(outvlan) + self.vlan_send_packet(self.outvlan) out = self.get_tcpdump_package() - self.verify("vlan %s" % outvlan in out, "Vlan filter disable error: " + out) + self.verify( + "vlan %s" % self.outvlan in out, "Vlan filter disable error: " + out + ) self.dut.send_expect( - "rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> " + "rx_vlan rm %s %s" % (self.outvlan, dutRxPortId), "testpmd> " ) def test_vlan_filter_table(self): @@ -380,20 +465,26 @@ class TestDualVlan(TestCase): self.mode_config(filter="on") self.mode_config(strip="off") - self.mode_config(extend="off") - - self.dut.send_expect("rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> ") - self.vlan_send_packet(outvlan) + if self.kdriver == "i40e" and self.fwversion >= "8.40": + self.mode_config(extend="on") + else: + self.mode_config(extend="off") + self.dut.send_expect( + "rx_vlan add %s %s" % (self.outvlan, dutRxPortId), "testpmd> " + ) + self.vlan_send_packet(self.outvlan) out = self.get_tcpdump_package() self.verify( - "vlan %s" % outvlan in out, "vlan filter table enable error: " + out + "vlan %s" % self.outvlan in out, "vlan filter table enable error: " + out ) - self.dut.send_expect("rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> ") - self.vlan_send_packet(outvlan) + self.dut.send_expect( + "rx_vlan rm %s %s" % (self.outvlan, dutRxPortId), "testpmd> " + ) + self.vlan_send_packet(self.outvlan) out = self.get_tcpdump_package() self.verify( - out is not None and "vlan %s" % outvlan not in out, + out is not None and "vlan %s" % self.outvlan not in out, "vlan filter table disable error: " + out, ) @@ -417,16 +508,18 @@ class TestDualVlan(TestCase): "I40E_10G-10G_BASE_T_X722", ]: self.dut.send_expect( - "rx_vlan add %s %s" % (outvlan, dutRxPortId), "testpmd> " + "rx_vlan add %s %s" % (self.outvlan, dutRxPortId), "testpmd> " ) - self.vlan_send_packet(outvlan) + self.vlan_send_packet(self.outvlan) out = self.get_tcpdump_package() - self.verify("vlan %s" % outvlan not in out, "Vlan strip enable error: " + out) + self.verify( + "vlan %s" % self.outvlan not in out, "Vlan strip enable error: " + out + ) self.mode_config(strip="off") - self.vlan_send_packet(outvlan) + self.vlan_send_packet(self.outvlan) out = self.get_tcpdump_package() - self.verify("vlan %s" % outvlan in out, "Vlan strip disable error: " + out) + self.verify("vlan %s" % self.outvlan in out, "Vlan strip disable error: " + out) if self.nic in [ "ICE_25G-E810C_SFP", "ICE_100G-E810C_QSFP", @@ -439,7 +532,7 @@ class TestDualVlan(TestCase): "I40E_10G-10G_BASE_T_X722", ]: self.dut.send_expect( - "rx_vlan rm %s %s" % (outvlan, dutRxPortId), "testpmd> " + "rx_vlan rm %s %s" % (self.outvlan, dutRxPortId), "testpmd> " ) def test_vlan_stripq_config(self): @@ -450,23 +543,25 @@ class TestDualVlan(TestCase): self.mode_config(extend="off") self.mode_config(strip="off") self.mode_config(stripq="off") - self.vlan_send_packet(outvlan) + self.vlan_send_packet(self.outvlan) out = self.get_tcpdump_package() self.verify( - "vlan %s" % outvlan in out, "vlan strip queue disable error : " + out + "vlan %s" % self.outvlan in out, "vlan strip queue disable error : " + out ) # if self.nic in ["I40E_10G-SFP_XL710", "I40E_40G-QSFP_A", "I40E_40G-QSFP_B"]: self.mode_config(strip="on") self.mode_config(stripq="on") - self.vlan_send_packet(outvlan) + self.vlan_send_packet(self.outvlan) out = self.get_tcpdump_package() - self.verify("vlan %s" % outvlan not in out, "vlan strip enable error: " + out) + self.verify( + "vlan %s" % self.outvlan not in out, "vlan strip enable error: " + out + ) self.mode_config(stripq="off") - self.vlan_send_packet(outvlan) + self.vlan_send_packet(self.outvlan) out = self.get_tcpdump_package() self.verify( - "vlan %s" % outvlan in out, "vlan strip queue disable error: " + out + "vlan %s" % self.outvlan in out, "vlan strip queue disable error: " + out ) def test_vlan_insert_config(self): @@ -482,13 +577,15 @@ class TestDualVlan(TestCase): self.dut.send_expect("stop", "testpmd> ") self.dut.send_expect("port stop all", "testpmd> ") - self.dut.send_expect("tx_vlan set %s %s" % (dutTxPortId, txvlan), "testpmd> ") + self.dut.send_expect( + "tx_vlan set %s %s" % (dutTxPortId, self.txvlan), "testpmd> " + ) self.dut.send_expect("port start all", "testpmd> ") self.dut.send_expect("start", "testpmd> ") self.vlan_send_packet() out = self.get_tcpdump_package() - self.verify("vlan %s" % txvlan in out, "vlan insert enable error: " + out) + self.verify("vlan %s" % self.txvlan in out, "vlan insert enable error: " + out) self.dut.send_expect("stop", "testpmd> ") self.dut.send_expect("port stop all", "testpmd> ") @@ -498,7 +595,9 @@ class TestDualVlan(TestCase): self.vlan_send_packet() out = self.get_tcpdump_package() - self.verify("vlan %s" % txvlan not in out, "vlan insert disable error: " + out) + self.verify( + "vlan %s" % self.txvlan not in out, "vlan insert disable error: " + out + ) def test_vlan_tpid_config(self): """ @@ -510,8 +609,6 @@ class TestDualVlan(TestCase): "ICE_25G-E810C_SFP", "ICE_100G-E810C_QSFP", "I40E_40G-QSFP_B", - "I40E_10G-SFP_X722", - "I40E_10G-10G_BASE_T_X722", "IGB_1G-82574L", "I40E_10G-10G_BASE_T_BC", ], @@ -521,21 +618,27 @@ class TestDualVlan(TestCase): self.mode_config(filter="on", strip="on", extend="on") # nic only support inner model, except Intel® Ethernet 700 Series nic self.dut.send_expect("vlan set inner tpid 0x1234 %s" % dutRxPortId, "testpmd> ") - self.vlan_send_packet(outvlan, invlan) + self.vlan_send_packet(self.outvlan, self.invlan) out = self.get_tcpdump_package() self.verify("0x8100" in out, "tpid is error: " + out) - self.verify("vlan %s" % outvlan in out, "vlan tpid disable error: " + out) - self.verify("vlan %s" % invlan in out, "vlan tpid disable error: " + out) + self.verify("vlan %s" % self.outvlan in out, "vlan tpid disable error: " + out) + self.verify("vlan %s" % self.invlan in out, "vlan tpid disable error: " + out) self.dut.send_expect("vlan set inner tpid 0x8100 %s" % dutRxPortId, "testpmd> ") - self.vlan_send_packet(outvlan, invlan) + self.vlan_send_packet(self.outvlan, self.invlan) out = self.get_tcpdump_package() - self.verify("0x8100" in out, "tpid is error: " + out) - self.verify( - out is not None and "vlan" not in out, "vlane tpid enable error: " + out - ) + if self.kdriver == "i40e" and self.fwversion >= "8.40": + self.verify("0x8100" in out, "tpid is error: " + out) + self.verify( + out is not None and f"vlan {self.invlan}" not in out, + "vlane tpid enable error: " + out, + ) + else: + self.verify( + out is not None and "vlan" not in out, "vlane tpid enable error: " + out + ) def test_vlan_synthetic_test(self): """ @@ -544,7 +647,7 @@ class TestDualVlan(TestCase): self.verify( self.nic != "IGB_1G-82574L", "sorry, dual vlan cannot support this self.nic" ) - for i in range(len(vlanCase)): + for i in range(len(self.vlanCase)): self.multimode_test(i) def test_vlan_random_test(self):