From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 00BD1A0613 for ; Thu, 29 Aug 2019 07:31:22 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AD5C41C43B; Thu, 29 Aug 2019 07:31:22 +0200 (CEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 995F11C126 for ; Thu, 29 Aug 2019 07:31:20 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Aug 2019 22:31:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,442,1559545200"; d="scan'208";a="188440876" Received: from unknown (HELO dpdktestzhiwei.sh.intel.com) ([10.67.119.33]) by FMSMGA003.fm.intel.com with ESMTP; 28 Aug 2019 22:31:18 -0700 From: "zhiwei.he" To: dts@dpdk.org Cc: "zhiwei.he" Date: Thu, 29 Aug 2019 13:31:31 +0800 Message-Id: <1567056691-37038-1-git-send-email-zhiwei.he@intel.com> X-Mailer: git-send-email 1.8.3.1 Signed-off-by: zhiwei.he Subject: [dts] [PATCH V3] tests/TestSuite_nvgre:Change to no vec modele to cover IPV4detectandoffloadcase X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 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 Sender: "dts" From: "zhiwei.he" diff --git a/tests/TestSuite_nvgre.py b/tests/TestSuite_nvgre.py index b0500cc..41fad85 100644 --- a/tests/TestSuite_nvgre.py +++ b/tests/TestSuite_nvgre.py @@ -93,8 +93,8 @@ class NvgreTestConfig(object): self.outer_ip_dst = '192.168.1.2' self.outer_ip_invalid = 0 - self.outer_ip6_src = 'N/A' - self.outer_ip6_dst = 'N/A' + self.outer_ip6_src = 'FE80:0:0:0:0:0:0:0' + self.outer_ip6_dst = 'FE80:0:0:0:0:0:0:1' self.outer_ip6_invalid = 0 """ gre info @@ -150,8 +150,8 @@ class NvgreTestConfig(object): self.inner_ip_dst = '192.168.2.2' self.inner_ip_invalid = 0 - self.inner_ip6_src = 'N/A' - self.inner_ip6_dst = 'N/A' + self.inner_ip6_src = 'FE80:0:0:0:0:0:0:0' + self.inner_ip6_dst = 'FE80:0:0:0:0:0:0:1' self.inner_ip6_invalid = 0 self.inner_l4_type = 'UDP' @@ -361,10 +361,12 @@ class TestNvgre(TestCase): nvgre Prerequisites """ # this feature only enable in FVL now - if self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "fortpark_TLV", "cavium_a063", "cavium_a064", "carlsville"]: + if self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortville_25g", "fortpark_TLV", "cavium_a063", "cavium_a064"]: self.compile_switch = 'CONFIG_RTE_LIBRTE_I40E_INC_VECTOR' elif self.nic in ["sageville", "sagepond"]: self.compile_switch = 'CONFIG_RTE_IXGBE_INC_VECTOR' + elif self.nic in ["columbiaville_25g","columbiaville_100g"]: + print "CVL support default none VECTOR" else: self.verify(False, "%s not support NVGRE case" % self.nic) # Based on h/w type, choose how many ports to use @@ -616,19 +618,73 @@ class TestNvgre(TestCase): # verify saved pcap checksum same to expected checksum for key in chksums_default: self.verify(chksums[key] == chksums_default[key], "%s not matched to %s" % (key, chksums_default[key])) - + def test_nvgre_ipv6(self): + """ + verify nvgre packet with ipv6 + """ + # check no nvgre packet + self.nvgre_detect(outer_l3_type = "IPv6", outer_ip_proto=0xFF) + # check nvgre + IPv6 inner packet + self.nvgre_detect(outer_l3_type = "IPv6", inner_l3_type="IPv6", inner_l4_type='None') + # check nvgre + TCP inner packet + self.nvgre_detect(outer_l3_type = "IPv6", inner_l3_type="IPv6", inner_l4_type='TCP') + # check nvgre + SCTP inner packet + self.nvgre_detect(outer_l3_type = "IPv6", inner_l3_type="IPv6", inner_l4_type='SCTP') + # check nvgre + UDP inner packet + self.nvgre_detect(outer_l3_type = "IPv6", inner_l3_type="IPv6", inner_l4_type='UDP') + # check nvgre + vlan outer packet + self.nvgre_detect(outer_l3_type = "IPv6", inner_l3_type="IPv6", outer_vlan=1) + # check vlan nvgre + vlan inner and outer packet + self.nvgre_detect(outer_l3_type = "IPv6", inner_l3_type="IPv6", outer_vlan=1, inner_vlan=1) + + def test_nvgre_ipv6_checksum_offload(self): + # check nvgre packet + inner IPv6 + inner L4 invalid + self.nvgre_checksum(inner_l3_type = "IPv6", inner_l4_invalid=1) + # check nvgre packet + outer IPv6 + inner L4 invalid + self.nvgre_checksum(outer_l3_type = "IPv6", inner_l4_invalid=1) + # check nvgre packet + inner + outer ipv6 + inner L4 invalid + self.nvgre_checksum(outer_l3_type = "IPv6", inner_l3_type= "IPv6", inner_l4_invalid=1) + # check nvgre packet + inner IPv6 + tcp checksum invalid + self.nvgre_checksum(inner_l3_type = "IPv6", inner_l4_invalid=1, inner_l4_type='TCP') + #check nvgre packet + inner IPv6 + sctp checksum invalid + self.nvgre_checksum(inner_l3_type = "IPv6", inner_l4_invalid=1, inner_l4_type='SCTP') + #check nvgre packet + inner IPv6 + UDP checksum invalid + self.nvgre_checksum(inner_l3_type = "IPv6", inner_l4_invalid=1, inner_l4_type='UDP') + # check nvgre packet + outer IPv6 + inner tcp checksum invalid + self.nvgre_checksum(outer_l3_type = "IPv6", inner_l4_invalid=1, inner_l4_type='TCP') + #check nvgre packet + outer IPv6 + inner sctp checksum invalid + self.nvgre_checksum(outer_l3_type = "IPv6", inner_l4_invalid=1, inner_l4_type='SCTP') + #check nvgre packet + outer IPv6 + inner UDP checksum invalid + self.nvgre_checksum(outer_l3_type = "IPv6", inner_l4_invalid=1, inner_l4_type='UDP') + # check vlan nvgre packet + inner vlan + inner udp checksum invalid + self.nvgre_checksum(inner_l3_type="IPv6", inner_vlan=1, inner_l4_invalid=1, inner_l4_type='UDP') + # check vlan nvgre packet + outer vlan + inner udp checksum invalid + self.nvgre_checksum(outer_l3_type="IPv6", outer_vlan=1, inner_l4_invalid=1, inner_l4_type='UDP') + # check vlan nvgre packet + outer vlan + inner tcp checksum invalid + self.nvgre_checksum(outer_l3_type="IPv6", outer_vlan=1, inner_l4_invalid=1, inner_l4_type='TCP') + # check vlan nvgre packet + inner vlan + inner tcp checksum invalid + self.nvgre_checksum(inner_l3_type="IPv6", inner_vlan=1, inner_l4_invalid=1, inner_l4_type='TCP') + # check vlan nvgre packet + inner vlan + inner sctp checksum invalid + self.nvgre_checksum(inner_l3_type="IPv6", inner_vlan=1, inner_l4_invalid=1, inner_l4_type='SCTP') + # check vlan nvgre packet + outer vlan + inner sctp checksum invalid + self.nvgre_checksum(outer_l3_type="IPv6", outer_vlan=1, inner_l4_invalid=1, inner_l4_type='SCTP') + def test_nvgre_ipv4(self): """ verify nvgre packet with ipv4 """ # packet type detect must used without VECTOR pmd - out = self.dut.send_expect("cat config/common_base", "]# ", 10) - src_vec_model = re.findall("%s=." % self.compile_switch, out)[0][-1] - if src_vec_model == 'y': - self.dut.send_expect("sed -i -e 's/%s=.*$/" % self.compile_switch + if self.nic in ["columbiaville_25g","columbiaville_100g"]: + print "CVL support default none VECTOR" + src_vec_model = 'n' + else: + out = self.dut.send_expect("cat config/common_base", "]# ", 10) + src_vec_model = re.findall("%s=." % self.compile_switch, out)[0][-1] + if src_vec_model == 'y': + self.dut.send_expect("sed -i -e 's/%s=.*$/" % self.compile_switch + "%s=n/' config/common_base" % self.compile_switch, "# ", 30) - self.dut.skip_setup = False - self.dut.build_install_dpdk(self.target) + self.dut.skip_setup = False + self.dut.build_install_dpdk(self.target) # check no nvgre packet self.nvgre_detect(outer_ip_proto=0xFF) @@ -642,13 +698,17 @@ class TestNvgre(TestCase): self.nvgre_detect(outer_vlan=1) # check vlan nvgre + vlan inner packet self.nvgre_detect(outer_vlan=1, inner_vlan=1) - out = self.dut.send_expect("cat config/common_base", "]# ", 10) - dst_vec_model = re.findall("%s=." % self.compile_switch, out)[0][-1] - if src_vec_model != dst_vec_model: - self.dut.send_expect("sed -i -e 's/%s=.*$/" % self.compile_switch + if self.nic in ["columbiaville_25g","columbiaville_100g"]: + print "CVL support default none VECTOR" + src_vec_model = 'n' + else: + out = self.dut.send_expect("cat config/common_base", "]# ", 10) + dst_vec_model = re.findall("%s=." % self.compile_switch, out)[0][-1] + if src_vec_model != dst_vec_model: + self.dut.send_expect("sed -i -e 's/%s=.*$/" % self.compile_switch + "%s=%s/' config/common_base" % (self.compile_switch, src_vec_model), "# ", 30) - self.dut.skip_setup = False - self.dut.build_install_dpdk(self.target) + self.dut.skip_setup = False + self.dut.build_install_dpdk(self.target) def test_tunnel_filter(self): # verify tunnel filter feature -- 1.8.3.1