From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 75E333B5 for ; Mon, 15 May 2017 05:56:08 +0200 (CEST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 May 2017 20:56:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.38,342,1491289200"; d="scan'208";a="1169206710" Received: from unknown (HELO dpdk-fedora20.icx.intel.com) ([10.240.176.135]) by fmsmga002.fm.intel.com with ESMTP; 14 May 2017 20:56:06 -0700 From: "xu,huilong" To: dts@dpdk.org Cc: "xu,huilong" Date: Mon, 15 May 2017 11:57:27 +0800 Message-Id: <1494820647-48137-3-git-send-email-huilongx.xu@intel.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1494820647-48137-1-git-send-email-huilongx.xu@intel.com> References: <1494820647-48137-1-git-send-email-huilongx.xu@intel.com> Subject: [dts] [PATCH V3 2/2] add link bond slave dynamic config test case 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: , X-List-Received-Date: Mon, 15 May 2017 03:56:09 -0000 update list: 1 add link bond slave dynamic config test case 2 use two port for this suite different V2 patch: update code style and add some comments in test case Signed-off-by: xu,huilong --- tests/TestSuite_pmdrss_hash.py | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/tests/TestSuite_pmdrss_hash.py b/tests/TestSuite_pmdrss_hash.py index 78ae34d..dcff1c0 100644 --- a/tests/TestSuite_pmdrss_hash.py +++ b/tests/TestSuite_pmdrss_hash.py @@ -417,10 +417,11 @@ class TestPmdrssHash(TestCase): """ self.verify(self.nic in ["fortville_eagle", "fortville_spirit", - "fortville_spirit_single", "redrockcanyou", "atwood", "boulderrapid", "fortpark_TLV"], + "fortville_spirit_single", "redrockcanyou", "atwood", + "boulderrapid", "fortpark_TLV","fortville_25g"], "NIC Unsupported: " + str(self.nic)) global reta_num - if self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortpark_TLV"]: + if self.nic in ["fortville_eagle", "fortville_spirit", "fortville_spirit_single", "fortpark_TLV","fortville_25g"]: reta_num = 512 elif self.nic in ["niantic"]: reta_num = 128 @@ -429,7 +430,7 @@ class TestPmdrssHash(TestCase): else: self.verify(False, "NIC Unsupported:%s" % str(self.nic)) ports = self.dut.get_ports(self.nic) - self.verify(len(ports) >= 1, "Not enough ports available") + self.verify(len(ports) >= 2, "Not enough ports available") def set_up(self): """ @@ -651,6 +652,40 @@ class TestPmdrssHash(TestCase): self.dut.send_expect("quit", "# ", 30) + def test_dynamic_rss_bond_config(self): + + # setup testpmd and finish bond config + self.dut.send_expect("./%s/app/testpmd -c f -n 4 -- -i --txqflags=0" % self.target, "testpmd> ", 120) + out = self.dut.send_expect("create bonded device 3 0", "testpmd> ", 30) + bond_device_id = int(re.search("port \d+", out).group().split(" ")[-1].strip()) + + self.dut.send_expect("add bonding slave 0 %d" % bond_device_id, "testpmd>", 30) + self.dut.send_expect("add bonding slave 1 %d" % bond_device_id, "testpmd>", 30) + + # get slave device default rss hash algorithm + out = self.dut.send_expect("get_hash_global_config 0", "testpmd>") + slave0_hash_function = re.search("Hash function is .+", out).group().split(" ")[-1].strip() + out = self.dut.send_expect("get_hash_global_config 1", "testpmd>") + slave1_hash_function = re.search("Hash function is .+", out).group().split(" ")[-1].strip() + self.verify(slave0_hash_function == slave1_hash_function, "default hash function not match") + + new_hash_function = "" + for hash_function in ["toeplitz", "simple_xor"]: + if slave0_hash_function[-3:].lower() != hash_function[-3:]: + new_hash_function = hash_function + # update slave 0 rss hash algorithm and get slave 0 and slave 1 rss new hash algorithm + self.dut.send_expect("set_hash_global_config 0 %s ipv4-other enable" % new_hash_function, "testpmd>") + out = self.dut.send_expect("get_hash_global_config 0", "testpmd>") + slave0_new_hash_function = re.search("Hash function is .+", out).group().split(" ")[-1].strip() + out = self.dut.send_expect("get_hash_global_config 1", "testpmd>") + slave1_new_hash_function = re.search("Hash function is .+", out).group().split(" ")[-1].strip() + + self.verify(slave0_new_hash_function == slave1_new_hash_function, "bond slave auto sync hash function failed") + self.verify(slave0_new_hash_function[-3:].lower() == new_hash_function[-3:], "changed slave hash function failed") + + self.dut.send_expect("remove bonding slave 0 %d" % bond_device_id, "testpmd>", 30) + self.dut.send_expect("remove bonding slave 1 %d" % bond_device_id, "testpmd>", 30) + self.dut.send_expect("quit","# ", 30) def tear_down(self): """ Run after each test case. -- 1.9.3