From patchwork Fri Nov 19 09:10:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: hailinx X-Patchwork-Id: 104522 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 94AF1A0C4B; Fri, 19 Nov 2021 02:40:24 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 89A3C40395; Fri, 19 Nov 2021 02:40:24 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 052A240140 for ; Fri, 19 Nov 2021 02:40:22 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10172"; a="234282507" X-IronPort-AV: E=Sophos;i="5.87,246,1631602800"; d="scan'208";a="234282507" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Nov 2021 17:40:19 -0800 X-IronPort-AV: E=Sophos;i="5.87,246,1631602800"; d="scan'208";a="495656623" Received: from unknown (HELO localhost.localdomain) ([10.240.183.55]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Nov 2021 17:40:16 -0800 From: Hailin Xu To: dts@dpdk.org Cc: qi.fu@intel.com, Hailin Xu Subject: [dts][PATCH 1/2] test_plans/cvl_rss_configure: modify test plan Date: Fri, 19 Nov 2021 17:10:22 +0800 Message-Id: <20211119091023.1716-2-hailinx.xu@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211119091023.1716-1-hailinx.xu@intel.com> References: <20211119091023.1716-1-hailinx.xu@intel.com> 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 change test plan: config rss type and checkporint. Signed-off-by: Hailin Xu --- test_plans/cvl_rss_configure_test_plan.rst | 276 ++++++--------------- 1 file changed, 69 insertions(+), 207 deletions(-) diff --git a/test_plans/cvl_rss_configure_test_plan.rst b/test_plans/cvl_rss_configure_test_plan.rst index eaf15bd0..57c66ba8 100644 --- a/test_plans/cvl_rss_configure_test_plan.rst +++ b/test_plans/cvl_rss_configure_test_plan.rst @@ -420,27 +420,7 @@ Test Case: test_RSS_configure_to_udp testpmd> port config all rss udp testpmd> start -3. check ipv4 packets: - send a basic packet, record the hash value:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/("X"*40)], iface="enp27s0f2") - - send packets with changed input set, check the received packets have different hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/("X"*40)], iface="enp27s0f2") - -4. check ipv6 packets: - send a basic packet, record the hash value:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/("X"*40)], iface="enp27s0f2") - - send packets with changed input set, check the received packets have different hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/("X"*40)], iface="enp27s0f2") - -5. check ipv4-udp packets: +3. check ipv4-udp packets: send a basic packet, record the hash value:: sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") @@ -452,7 +432,7 @@ Test Case: test_RSS_configure_to_udp sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/UDP(sport=1024,dport=1027)/("X"*40)], iface="enp27s0f2") sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/UDP(sport=1026,dport=1025)/("X"*40)], iface="enp27s0f2") -6. check ipv6-udp packets: +4. check ipv6-udp packets: send a basic packet, record the hash value:: sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") @@ -464,66 +444,36 @@ Test Case: test_RSS_configure_to_udp sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/UDP(sport=1024,dport=1027)/("X"*40)], iface="enp27s0f2") sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/UDP(sport=1026,dport=1025)/("X"*40)], iface="enp27s0f2") -7. check ipv4-tcp packets: - send a basic packet, record the hash value:: +5. check ipv4 packets: + send a basic packet, verify no hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/("X"*40)], iface="enp27s0f2") - send packets with changed input set, check the received packets have different hash value with the basic packet:: +6. check ipv6 packets: + send a basic packet, verify no hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/("X"*40)], iface="enp27s0f2") - send a packet with same input set and changed other parameters. - check the received packet have same hash value with the basic packet:: +7. check ipv4-tcp packets: + send a basic packet, verify no hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/TCP(sport=1026,dport=1027)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") 8. check ipv6-tcp packets: - send a basic packet, record the hash value:: + send a basic packet, verify no hash value:: sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - send packets with changed input set, check the received packets have different hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - - send a packet with same input set and changed other parameters. - check the received packet have same hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/TCP(sport=1026,dport=1027)/("X"*40)], iface="enp27s0f2") - 9. check ipv4-sctp packets: - send a basic packet, record the hash value:: + send a basic packet, verify no hash value:: sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - send packets with changed input set, check the received packets have different hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - - send a packet with same input set and changed other parameters. - check the received packet have same hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/SCTP(sport=1026,dport=1027)/("X"*40)], iface="enp27s0f2") - 10. check ipv6-sctp packets: - send a basic packet, record the hash value:: + send a basic packet, verify no hash value:: sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - send packets with changed input set, check the received packets have different hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - - send a packet with same input set and changed other parameters. - check the received packet have same hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/SCTP(sport=1026,dport=1027)/("X"*40)], iface="enp27s0f2") - Test Case: test_RSS_configure_to_tcp ==================================== @@ -538,57 +488,7 @@ Test Case: test_RSS_configure_to_tcp testpmd> port config all rss tcp testpmd> start -3. check ipv4 packets: - send a basic packet, record the hash value:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/("X"*40)], iface="enp27s0f2") - - send packets with changed input set, check the received packets have different hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/("X"*40)], iface="enp27s0f2") - -4. check ipv6 packets: - send a basic packet, record the hash value:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/("X"*40)], iface="enp27s0f2") - - send packets with changed input set, check the received packets have different hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/("X"*40)], iface="enp27s0f2") - -5. check ipv4-udp packets: - send a basic packet, record the hash value:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - - send packets with changed input set, check the received packets have different hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - - send a packet with same input set and changed other parameters. - check the received packet have same hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/UDP(sport=1026,dport=1027)/("X"*40)], iface="enp27s0f2") - -6. check ipv6-udp packets: - send a basic packet, record the hash value:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - - send packets with changed input set, check the received packets have different hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - - send a packet with same input set and changed other parameters. - check the received packet have same hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/UDP(sport=1026,dport=1027)/("X"*40)], iface="enp27s0f2") - -7. check ipv4-tcp packets: +3. check ipv4-tcp packets: send a basic packet, record the hash value:: sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") @@ -600,7 +500,7 @@ Test Case: test_RSS_configure_to_tcp sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/TCP(sport=1026,dport=1025)/("X"*40)], iface="enp27s0f2") sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/TCP(sport=1024,dport=1027)/("X"*40)], iface="enp27s0f2") -8. check ipv6-tcp packets: +4. check ipv6-tcp packets: send a basic packet, record the hash value:: sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") @@ -612,35 +512,35 @@ Test Case: test_RSS_configure_to_tcp sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/TCP(sport=1026,dport=1025)/("X"*40)], iface="enp27s0f2") sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/TCP(sport=1024,dport=1027)/("X"*40)], iface="enp27s0f2") -9. check ipv4-sctp packets: - send a basic packet, record the hash value:: +5. check ipv4 packets: + send a basic packet, verify no hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/("X"*40)], iface="enp27s0f2") - send packets with changed input set, check the received packets have different hash value with the basic packet:: +6. check ipv6 packets: + send a basic packet, verify no hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/("X"*40)], iface="enp27s0f2") - send a packet with same input set and changed other parameters. - check the received packet have same hash value with the basic packet:: +7. check ipv4-udp packets: + send a basic packet, verify no hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/SCTP(sport=1026,dport=1027)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") -10. check ipv6-sctp packets: - send a basic packet, record the hash value:: +8. check ipv6-udp packets: + send a basic packet, verify no hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - send packets with changed input set, check the received packets have different hash value with the basic packet:: +9. check ipv4-sctp packets: + send a basic packet, verify no hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - send a packet with same input set and changed other parameters. - check the received packet have same hash value with the basic packet:: +10. check ipv6-sctp packets: + send a basic packet, verify no hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/SCTP(sport=1026,dport=1027)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") Test Case: test_RSS_configure_to_sctp ===================================== @@ -656,105 +556,59 @@ Test Case: test_RSS_configure_to_sctp testpmd> port config all rss sctp testpmd> start -3. check ipv4 packets: - send a basic packet, record the hash value:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/("X"*40)], iface="enp27s0f2") - - send packets with changed input set, check the received packets have different hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/("X"*40)], iface="enp27s0f2") - -4. check ipv6 packets: +3. check ipv4-sctp packets: send a basic packet, record the hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") send packets with changed input set, check the received packets have different hash value with the basic packet:: - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/SCTP(sport=1024,dport=1026)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/SCTP(sport=1026,dport=1025)/("X"*40)], iface="enp27s0f2") -5. check ipv4-udp packets: - send a basic packet, record the hash value:: +4. check ipv6-sctp packets: + send a basic packet, record the hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") send packets with changed input set, check the received packets have different hash value with the basic packet:: - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - - send a packet with same input set and changed other parameters. - check the received packet have same hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/UDP(sport=1026,dport=1027)/("X"*40)], iface="enp27s0f2") - -6. check ipv6-udp packets: - send a basic packet, record the hash value:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1026)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/SCTP(sport=1026,dport=1025)/("X"*40)], iface="enp27s0f2") - send packets with changed input set, check the received packets have different hash value with the basic packet:: +5. check ipv4 packets: + send a basic packet, verify no hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/("X"*40)], iface="enp27s0f2") - send a packet with same input set and changed other parameters. - check the received packet have same hash value with the basic packet:: +6. check ipv6 packets: + send a basic packet, verify no hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/UDP(sport=1026,dport=1027)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/("X"*40)], iface="enp27s0f2") 7. check ipv4-tcp packets: - send a basic packet, record the hash value:: + send a basic packet, verify no hash value:: sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - send packets with changed input set, check the received packets have different hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - - send a packet with same input set and changed other parameters. - check the received packet have same hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/TCP(sport=1026,dport=1027)/("X"*40)], iface="enp27s0f2") - 8. check ipv6-tcp packets: - send a basic packet, record the hash value:: + send a basic packet, verify no hash value:: sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - send packets with changed input set, check the received packets have different hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/TCP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - - send a packet with same input set and changed other parameters. - check the received packet have same hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/TCP(sport=1026,dport=1027)/("X"*40)], iface="enp27s0f2") - -9. check ipv4-sctp packets: - send a basic packet, record the hash value:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - - send packets with changed input set, check the received packets have different hash value with the basic packet:: - - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - -10. check ipv6-sctp packets: - send a basic packet, record the hash value:: +9. check ipv4-udp packets: + send a basic packet, verify no hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - send packets with changed input set, check the received packets have different hash value with the basic packet:: +10. check ipv6-udp packets: + send a basic packet, verify no hash value:: - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") - sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/UDP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") Test Case: test_RSS_configure_to_all ==================================== @@ -847,6 +701,8 @@ Test Case: test_RSS_configure_to_all sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/SCTP(sport=1024,dport=1026)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/SCTP(sport=1026,dport=1025)/("X"*40)], iface="enp27s0f2") 10. check ipv6-sctp packets: send a basic packet, record the hash value:: @@ -857,6 +713,8 @@ Test Case: test_RSS_configure_to_all sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1026)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/SCTP(sport=1026,dport=1025)/("X"*40)], iface="enp27s0f2") Test Case: test_RSS_configure_to_default ======================================== @@ -949,6 +807,8 @@ Test Case: test_RSS_configure_to_default sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.4",dst="192.168.0.3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.5")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/SCTP(sport=1024,dport=1026)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2",dst="192.168.0.3")/SCTP(sport=1026,dport=1025)/("X"*40)], iface="enp27s0f2") 10. check ipv6-sctp packets: send a basic packet, record the hash value:: @@ -959,3 +819,5 @@ Test Case: test_RSS_configure_to_default sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::4",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::5")/SCTP(sport=1024,dport=1025)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/SCTP(sport=1024,dport=1026)/("X"*40)], iface="enp27s0f2") + sendp([Ether(dst="00:00:00:00:01:00")/IPv6(src="3ffe:2501:200:3::2",dst="3ffe:2501:200:3::3")/SCTP(sport=1026,dport=1025)/("X"*40)], iface="enp27s0f2") From patchwork Fri Nov 19 09:10:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: hailinx X-Patchwork-Id: 104523 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 C9D06A0C47; Fri, 19 Nov 2021 02:40:25 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BE8E940143; Fri, 19 Nov 2021 02:40:25 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 642F640395 for ; Fri, 19 Nov 2021 02:40:23 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10172"; a="234282514" X-IronPort-AV: E=Sophos;i="5.87,246,1631602800"; d="scan'208";a="234282514" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Nov 2021 17:40:21 -0800 X-IronPort-AV: E=Sophos;i="5.87,246,1631602800"; d="scan'208";a="495656638" Received: from unknown (HELO localhost.localdomain) ([10.240.183.55]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Nov 2021 17:40:19 -0800 From: Hailin Xu To: dts@dpdk.org Cc: qi.fu@intel.com, Hailin Xu Subject: [dts][PATCH 2/2] tests/cvl_rss_configure: modify the code Date: Fri, 19 Nov 2021 17:10:23 +0800 Message-Id: <20211119091023.1716-3-hailinx.xu@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211119091023.1716-1-hailinx.xu@intel.com> References: <20211119091023.1716-1-hailinx.xu@intel.com> 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 the code support common interface and change checkporint to hash. Signed-off-by: Hailin Xu Tested-by: Xu Hailin --- tests/TestSuite_cvl_rss_configure.py | 436 +++++++++++++-------------- 1 file changed, 210 insertions(+), 226 deletions(-) diff --git a/tests/TestSuite_cvl_rss_configure.py b/tests/TestSuite_cvl_rss_configure.py index 1c4ffbfc..8db64bce 100644 --- a/tests/TestSuite_cvl_rss_configure.py +++ b/tests/TestSuite_cvl_rss_configure.py @@ -29,166 +29,192 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import json -import os -import re import time -from collections import OrderedDict - -from scapy.contrib.gtp import * - -import framework.packet as packet -import tests.rte_flow_common as rfc -from framework.packet import IncreaseIP, IncreaseIPv6 -from framework.pmd_output import PmdOutput from framework.test_case import TestCase -from framework.utils import BLUE, RED - -out = os.popen("pip list|grep scapy ") -version_result =out.read() -p=re.compile('scapy\s+2\.3\.\d+') -m=p.search(version_result) - -tv_mac_ip_ipv4 = { - "name":"tv_mac_ip_ipv4", - "scapy_str":['Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.%d", dst="192.168.0.%d")/("X"*480)' %(i, i+10) for i in range(0,100)], - "check_func_param": {"expect_port":0} -} - -tv_mac_ip_ipv6 = { - "name":"tv_mac_ip_ipv6", - "scapy_str": ['Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::%d", dst="2001::%d")/("X"*480)' %(i, i+10) for i in range(0,100)], - "check_func_param": {"expect_port":0} -} - -tv_mac_ipv4_udp_l3_random = { - "name":"tv_mac_ipv4_udp_l3_random", - "scapy_str":['Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.%d", dst="192.168.0.%d")/UDP()/("X"*480)' %(i,i+10) for i in range(0,100)], - "check_func_param": {"expect_port":0} -} - -tv_mac_ipv4_udp_l4_random = { - "name":"tv_mac_ipv4_udp_l4_random", - "scapy_str":['Ether(dst="00:00:00:00:01:00")/IP()/UDP(sport=%d, dport=%d)/("X"*480)' %(i+50,i+55) for i in range(0,100)], - "check_func_param": {"expect_port":0} -} - -tv_mac_ipv6_udp_l3_random = { - "name":"tv_mac_ipv6_udp_l3_random", - "scapy_str":['Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::%d", dst="2001::%d")/UDP()/("X"*480)' %(i,i+10) for i in range(0,100)], - "check_func_param": {"expect_port":0} -} - -tv_mac_ipv6_udp_l4_random = { - "name":"tv_mac_ipv6_udp_l4_random", - "scapy_str":['Ether(dst="00:00:00:00:01:00")/IPv6()/UDP(sport=%d, dport=%d)/("X"*480)' %(i+50,i+55) for i in range(0,100)], - "check_func_param": {"expect_port":0} -} - -tv_mac_ipv4_tcp_l3_random = { - "name":"tv_mac_ipv4_tcp_l3_random", - "scapy_str":['Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.%d", dst="192.168.0.%d")/TCP()/("X"*480)' %(i,i+10) for i in range(0,100)], - "check_func_param": {"expect_port":0} -} - -tv_mac_ipv4_tcp_l4_random = { - "name":"tv_mac_ipv4_tcp_l4_random", - "scapy_str":['Ether(dst="00:00:00:00:01:00")/IP()/TCP(sport=%d, dport=%d)/("X"*480)' %(i+50,i+55) for i in range(0,100)], - "check_func_param": {"expect_port":0} -} - -tv_mac_ipv6_tcp_l3_random = { - "name":"tv_mac_ipv6_tcp_l3_random", - "scapy_str":['Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::%d", dst="2001::%d")/TCP()/("X"*480)' %(i,i+10) for i in range(0,100)], - "check_func_param": {"expect_port":0} +from framework.pmd_output import PmdOutput +from framework import packet +from .rte_flow_common import RssProcessing + +mac_ipv4_basic_pkt = 'Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2", dst="192.168.0.3")/("X"*480)' +mac_ipv6_basic_pkt = 'Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::2", dst="2001::3")/("X"*480)' +mac_ipv4_tcp_basic_pkt = 'Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=1026, dport=1027)/("X"*480)' +mac_ipv6_tcp_basic_pkt = 'Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::2", dst="2001::3")/TCP(sport=1026, dport=1027)/("X"*480)' +mac_ipv4_udp_basic_pkt = 'Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=1026, dport=1027)/("X"*480)' +mac_ipv6_udp_basic_pkt = 'Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::2", dst="2001::3")/UDP(sport=1026, dport=1027)/("X"*480)' +mac_ipv4_sctp_basic_pkt = 'Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2", dst="192.168.0.3")/SCTP(sport=1026, dport=1027)/("X"*480)' +mac_ipv6_sctp_basic_pkt = 'Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::2", dst="2001::3")/TCP(sport=1026, dport=1027)/("X"*480)' + +mac_ipv4_changed_pkt = ['Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2", dst="192.168.0.5")/("X"*480)', + 'Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.5", dst="192.168.0.3")/("X"*480)'] + +mac_ipv6_changed_pkt = ['Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::2", dst="2001::5")/("X"*480)', + 'Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::5", dst="2001::3")/("X"*480)'] + +mac_ipv4_tcp_changed_l3_pkt = ['Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2", dst="192.168.0.5")/TCP(sport=1026, dport=1027)/("X"*480)', + 'Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.5", dst="192.168.0.3")/TCP(sport=1026, dport=1027)/("X"*480)'] + +mac_ipv4_tcp_changed_l4_pkt = ['Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=1025, dport=1027)/("X"*480)', + 'Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.2", dst="192.168.0.3")/TCP(sport=1026, dport=1025)/("X"*480)'] + +mac_ipv6_tcp_changed_l3_pkt = ['Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::2", dst="2001::5")/TCP(sport=1026, dport=1027)/("X"*480)', + 'Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::5", dst="2001::3")/TCP(sport=1026, dport=1027)/("X"*480)'] + +mac_ipv6_tcp_changed_l4_pkt = ['Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::2", dst="2001::3")/TCP(sport=1025, dport=1027)/("X"*480)', + 'Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::2", dst="2001::3")/TCP(sport=1026, dport=1025)/("X"*480)'] + +mac_ipv4_udp_changed_l3_pkt = [sv.replace("/TCP", "/UDP") for sv in mac_ipv4_tcp_changed_l3_pkt] +mac_ipv4_udp_changed_l4_pkt = [sv.replace("/TCP", "/UDP") for sv in mac_ipv4_tcp_changed_l4_pkt] + +mac_ipv6_udp_changed_l3_pkt = [sv.replace("/TCP", "/UDP") for sv in mac_ipv6_tcp_changed_l3_pkt] +mac_ipv6_udp_changed_l4_pkt = [sv.replace("/TCP", "/UDP") for sv in mac_ipv6_tcp_changed_l4_pkt] + +mac_ipv4_sctp_changed_l3_pkt = [sv.replace("/TCP", "/SCTP") for sv in mac_ipv4_tcp_changed_l3_pkt] +mac_ipv4_sctp_changed_l4_pkt = [sv.replace("/TCP", "/SCTP") for sv in mac_ipv4_tcp_changed_l4_pkt] + +mac_ipv6_sctp_changed_l3_pkt = [sv.replace("/TCP", "/SCTP") for sv in mac_ipv6_tcp_changed_l3_pkt] +mac_ipv6_sctp_changed_l4_pkt = [sv.replace("/TCP", "/SCTP") for sv in mac_ipv6_tcp_changed_l4_pkt] + +command_line_option_rss_ip = { + 'sub_casename': 'command_line_option_rss_ip', + 'port_id': 0, + 'test': [ + {'send_packet': mac_ipv4_basic_pkt, + 'action': {'save_hash': 'ip-ipv4'}}, + {'send_packet': mac_ipv4_changed_pkt, + 'action': {'check_hash_different': 'ip-ipv4'}}, + {'send_packet': mac_ipv6_basic_pkt, + 'action': {'save_hash': 'ip-ipv6'}}, + {'send_packet': mac_ipv6_changed_pkt, + 'action': {'check_hash_different': 'ip-ipv4'}}, + # ipv4/ipv6 tcp + {'send_packet': mac_ipv4_tcp_basic_pkt, + 'action': {'save_hash': 'ipv4-tcp'}}, + {'send_packet': mac_ipv4_tcp_changed_l3_pkt, + 'action': {'check_hash_different': 'ipv4-tcp'}}, + {'send_packet': mac_ipv4_tcp_changed_l4_pkt, + 'action': {'check_hash_same': 'ipv4-tcp'}}, + {'send_packet': mac_ipv6_tcp_basic_pkt, + 'action': {'save_hash': 'ipv6-tcp'}}, + {'send_packet': mac_ipv6_tcp_changed_l3_pkt, + 'action': {'check_hash_different': 'ipv6-tcp'}}, + {'send_packet': mac_ipv6_tcp_changed_l4_pkt, + 'action': {'check_hash_same': 'ipv6-tcp'}}, + # ipv4/ipv6 udp + {'send_packet': mac_ipv4_udp_basic_pkt, + 'action': {'save_hash': 'ipv4-udp'}}, + {'send_packet': mac_ipv4_udp_changed_l3_pkt, + 'action': {'check_hash_different': 'ipv4-udp'}}, + {'send_packet': mac_ipv4_udp_changed_l4_pkt, + 'action': {'check_hash_same': 'ipv4-udp'}}, + {'send_packet': mac_ipv6_udp_basic_pkt, + 'action': {'save_hash': 'ipv6-udp'}}, + {'send_packet': mac_ipv6_udp_changed_l3_pkt, + 'action': {'check_hash_different': 'ipv6-udp'}}, + {'send_packet': mac_ipv6_udp_changed_l4_pkt, + 'action': {'check_hash_same': 'ipv6-udp'}}, + # ipv4/ipv6 sctp + {'send_packet': mac_ipv4_sctp_basic_pkt, + 'action': {'save_hash': 'ipv4-sctp'}}, + {'send_packet': mac_ipv4_sctp_changed_l3_pkt, + 'action': {'check_hash_different': 'ipv4-sctp'}}, + {'send_packet': mac_ipv4_sctp_changed_l4_pkt, + 'action': {'check_hash_same': 'ipv4-sctp'}}, + {'send_packet': mac_ipv6_sctp_basic_pkt, + 'action': {'save_hash': 'ipv6-sctp'}}, + {'send_packet': mac_ipv6_sctp_changed_l3_pkt, + 'action': {'check_hash_different': 'ipv6-sctp'}}, + {'send_packet': mac_ipv6_sctp_changed_l4_pkt, + 'action': {'check_hash_same': 'ipv6-sctp'}} + ] } -tv_mac_ipv6_tcp_l4_random = { - "name":"tv_mac_ipv6_tcp_l4_random", - "scapy_str":['Ether(dst="00:00:00:00:01:00")/IPv6()/TCP(sport=%d, dport=%d)/("X"*480)' %(i+50,i+55) for i in range(0,100)], - "check_func_param": {"expect_port":0} +command_line_option_rss_udp = { + 'sub_casename': 'command_line_option_rss_udp', + 'port_id': 0, + 'test': [ + # ipv4/ipv6 udp + {'send_packet': mac_ipv4_udp_basic_pkt, + 'action': {'save_hash': 'ipv4-udp'}}, + {'send_packet': mac_ipv4_udp_changed_l3_pkt, + 'action': {'check_hash_different': 'ipv4-udp'}}, + {'send_packet': mac_ipv4_udp_changed_l4_pkt, + 'action': {'check_hash_different': 'ipv4-udp'}}, + {'send_packet': mac_ipv6_udp_basic_pkt, + 'action': {'save_hash': 'ipv6-udp'}}, + {'send_packet': mac_ipv6_udp_changed_l3_pkt, + 'action': {'check_hash_different': 'ipv6-udp'}}, + {'send_packet': mac_ipv6_udp_changed_l4_pkt, + 'action': {'check_hash_different': 'ipv6-udp'}}, + # ipv4/ipv6 tcp/sctp + {'send_packet': mac_ipv4_basic_pkt, + 'action': {'check_no_hash': 'ip-ipv4'}}, + {'send_packet': mac_ipv6_basic_pkt, + 'action': {'check_no_hash': 'ip-ipv6'}}, + {'send_packet': mac_ipv4_tcp_basic_pkt, + 'action': {'check_no_hash': 'ipv4-tcp'}}, + {'send_packet': mac_ipv6_tcp_basic_pkt, + 'action': {'check_no_hash': 'ipv6-tcp'}}, + {'send_packet': mac_ipv4_sctp_basic_pkt, + 'action': {'check_no_hash': 'ipv4-sctp'}}, + {'send_packet': mac_ipv6_sctp_basic_pkt, + 'action': {'check_no_hash': 'ipv6-sctp'}}, + ] } -tv_mac_ipv4_sctp = { - "name":"tv_mac_ipv4_sctp", - "scapy_str":['Ether(dst="00:00:00:00:01:00")/IP(src="192.168.0.%d", dst="192.168.0.%d")/SCTP()/("X"*480)' %(i,i+10) for i in range(0,100)], - "check_func_param": {"expect_port":0} +command_line_option_disable_rss = { + 'sub_casename': 'command_line_option_disable', + 'port_id': 0, + 'test': [ + # all + {'send_packet': mac_ipv4_basic_pkt, + 'action': {'check_no_hash': 'ip-ipv4'}}, + {'send_packet': mac_ipv4_basic_pkt, + 'action': {'check_no_hash': 'ip-ipv6'}}, + {'send_packet': mac_ipv4_tcp_basic_pkt, + 'action': {'check_no_hash': 'ipv4-tcp'}}, + {'send_packet': mac_ipv6_tcp_basic_pkt, + 'action': {'check_no_hash': 'ipv6-tcp'}}, + {'send_packet': mac_ipv4_udp_basic_pkt, + 'action': {'check_no_hash': 'ipv4-udp'}}, + {'send_packet': mac_ipv6_udp_basic_pkt, + 'action': {'check_no_hash': 'ipv6-udp'}}, + {'send_packet': mac_ipv4_sctp_basic_pkt, + 'action': {'check_no_hash': 'ipv4-sctp'}}, + {'send_packet': mac_ipv6_sctp_basic_pkt, + 'action': {'check_no_hash': 'ipv6-sctp'}}, + ] } -tv_mac_ipv6_sctp = { - "name":"tv_mac_ipv6_sctp", - "scapy_str":['Ether(dst="00:00:00:00:01:00")/IPv6(src="2001::%d", dst="2001::%d")/SCTP()/("X"*480)' %(i,i+10) for i in range(0,100)], - "check_func_param": {"expect_port":0} +rss_configure_to_ip = { + 'sub_casename': 'rss_configure_to_ip', + 'port_id': 0, + 'test': command_line_option_rss_ip['test'] } -tvs_mac_rss_ip = [ - tv_mac_ip_ipv4, - tv_mac_ip_ipv6 - ] - -tvs_mac_rss_l3 = [ - tv_mac_ip_ipv4, - tv_mac_ip_ipv6, - tv_mac_ipv4_udp_l3_random, - tv_mac_ipv6_udp_l3_random, - tv_mac_ipv4_tcp_l3_random, - tv_mac_ipv6_tcp_l3_random, - tv_mac_ipv4_sctp, - tv_mac_ipv6_sctp - ] - -tvs_mac_rss_l4 = [ - tv_mac_ipv4_udp_l4_random, - tv_mac_ipv6_udp_l4_random, - tv_mac_ipv4_tcp_l4_random, - tv_mac_ipv6_tcp_l4_random - ] - -tvs_mac_rss_udp = [ - tv_mac_ipv4_udp_l3_random, - tv_mac_ipv4_udp_l4_random, - tv_mac_ipv6_udp_l3_random, - tv_mac_ipv6_udp_l4_random - ] - -tvs_mac_rss_udp_l4 = [ - tv_mac_ipv4_udp_l4_random, - tv_mac_ipv6_udp_l4_random - ] - -tvs_mac_rss_tcp = [ - tv_mac_ipv4_tcp_l3_random, - tv_mac_ipv4_tcp_l4_random, - tv_mac_ipv6_tcp_l3_random, - tv_mac_ipv6_tcp_l4_random - ] +rss_configure_to_udp = eval(str(command_line_option_rss_udp) + .replace("command_line_option_rss_udp", "rss_configure_to_udp")) -tvs_mac_rss_tcp_l4 = [ - tv_mac_ipv4_tcp_l4_random, - tv_mac_ipv6_tcp_l4_random - ] +rss_configure_to_tcp = eval(str(rss_configure_to_udp).replace("to_udp", "to_tcp") + .replace("/UDP", "/UDP1") + .replace("-udp", "-udp1") + .replace("/TCP", "/UDP") + .replace("-tcp", "-udp") + .replace("/UDP1", "/TCP") + .replace("-udp1", "-tcp")) -tvs_mac_rss_sctp = [ - tv_mac_ipv4_sctp, - tv_mac_ipv6_sctp - ] +rss_configure_to_sctp = eval(str(rss_configure_to_udp).replace("to_udp", "to_sctp") + .replace("/UDP", "/UDP1") + .replace("-udp", "-udp1") + .replace("/SCTP", "/UDP") + .replace("-sctp", "-udp") + .replace("/UDP1", "/SCTP") + .replace("-udp1", "-sctp")) -tvs_mac_rss_all = [ - tv_mac_ip_ipv4, - tv_mac_ip_ipv6, - tv_mac_ipv4_udp_l3_random, - tv_mac_ipv4_udp_l4_random, - tv_mac_ipv6_udp_l3_random, - tv_mac_ipv6_udp_l4_random, - tv_mac_ipv4_tcp_l3_random, - tv_mac_ipv4_tcp_l4_random, - tv_mac_ipv6_tcp_l3_random, - tv_mac_ipv6_tcp_l4_random, - tv_mac_ipv4_sctp, - tv_mac_ipv6_sctp - ] +rss_configure_to_all = eval(str(command_line_option_rss_ip).replace("to_udp", "to_all") + .replace("check_hash_same", "check_hash_different")) -test_results = OrderedDict() +rss_configure_to_default = eval(str(command_line_option_rss_ip).replace("to_udp", "to_all") + .replace("check_hash_same", "check_hash_different")) class RSSConfigureTest(TestCase): @@ -209,108 +235,66 @@ class RSSConfigureTest(TestCase): self.pf_mac = self.dut.get_mac_address(0) self.pf_pci = self.dut.ports_info[self.dut_ports[0]]['pci'] self.verify(self.nic in ["columbiaville_25g","columbiaville_100g"], "%s nic not support ethertype filter" % self.nic) + self.rsspro = RssProcessing(self, self.pmdout, [self.__tx_iface], rxq=10) def set_up(self): """ Run before each test case. """ - self.dut.kill_all() - - def tear_down(self): - """ - Run after each test case. - """ - self.dut.kill_all() - - def tear_down_all(self): - """ - Run after each test suite. - """ - self.dut.kill_all() + pass - def create_testpmd_command(self, line_option): - """ - Create testpmd command for non-pipeline mode - """ - #Prepare testpmd EAL and parameters - all_eal_param = self.dut.create_eal_parameters(ports=[self.pf_pci]) - print(all_eal_param) #print eal parameters - command = self.dut.apps_name['test-pmd'] + all_eal_param + " -- -i --rxq=10 --txq=10" + line_option - return command - - def _rss_validate_pattern(self, test_vectors, command, rss_type, is_rss): - - global test_results - out = self.dut.send_expect(command, "testpmd> ", 120) - self.logger.debug(out) #print the log - self.dut.send_expect("set fwd rxonly", "testpmd> ", 15) - self.dut.send_expect("set verbose 1", "testpmd> ", 15) + def launch_testpmd(self, line_option="", rss_type=""): + self.pmdout.start_testpmd(ports=[self.pf_pci], param="--rxq=10 --txq=10 " + line_option) + self.pmdout.execute_cmd("set fwd rxonly") + self.pmdout.execute_cmd("set verbose 1") if rss_type != "": - self.dut.send_expect("port config all rss %s" % rss_type, "testpmd> ", 15) - - test_results.clear() - self.count = 1 - self.mac_count=100 - for tv in test_vectors: - self.dut.send_expect("start", "testpmd> ", 15) - time.sleep(2) - tv["check_func_param"]["expect_port"] = self.dut_ports[0] - print("expect_port is", self.dut_ports[0]) - - #send a packet - pkt = packet.Packet() - pkt.update_pkt(tv["scapy_str"]) - pkt.send_pkt(self.tester, tx_port=self.__tx_iface, count=self.count) - - out = self.dut.send_expect("stop", "testpmd> ",60) - print(out) - check_result = [] - check_result = rfc.check_packets_of_each_queue(out) - self.verify(check_result[0] == is_rss, check_result[1]) - - self.dut.send_expect("quit", "#") + self.pmdout.execute_cmd("port config all rss %s" % rss_type) + self.pmdout.execute_cmd("start") def test_command_line_option_rss_ip(self): - command = self.create_testpmd_command(line_option = " --rss-ip") - self._rss_validate_pattern(tvs_mac_rss_l3, command, rss_type = "", is_rss = True) - self._rss_validate_pattern(tvs_mac_rss_l4, command, rss_type = "", is_rss = False) + self.launch_testpmd(line_option="--rss-ip") + self.rsspro.handle_rss_distribute_cases(command_line_option_rss_ip) def test_command_line_option_rss_udp(self): - command = self.create_testpmd_command(line_option = " --rss-udp") - self._rss_validate_pattern(tvs_mac_rss_udp, command, rss_type = "", is_rss = True) - self._rss_validate_pattern(tvs_mac_rss_ip, command, rss_type = "", is_rss = False) - self._rss_validate_pattern(tvs_mac_rss_tcp, command, rss_type = "", is_rss = False) - self._rss_validate_pattern(tvs_mac_rss_sctp, command, rss_type = "", is_rss = False) + self.launch_testpmd(line_option="--rss-udp") + self.rsspro.handle_rss_distribute_cases(command_line_option_rss_udp) def test_command_line_option_rss_disable(self): - command = self.create_testpmd_command(line_option = " --disable-rss") - self._rss_validate_pattern(tvs_mac_rss_all, command, rss_type = "", is_rss = False) + self.launch_testpmd(line_option="--disable-rss") + self.rsspro.handle_rss_distribute_cases(command_line_option_disable_rss) def test_rss_configure_to_ip(self): - command = self.create_testpmd_command(line_option = "") - self._rss_validate_pattern(tvs_mac_rss_l3, command, rss_type = "", is_rss = True) - self._rss_validate_pattern(tvs_mac_rss_l4, command, rss_type = "", is_rss = False) + self.launch_testpmd(rss_type="ip") + self.rsspro.handle_rss_distribute_cases(rss_configure_to_ip) def test_rss_configure_to_udp(self): - command = self.create_testpmd_command(line_option = "") - self._rss_validate_pattern(tvs_mac_rss_udp, command, rss_type = "udp", is_rss = True) - self._rss_validate_pattern(tvs_mac_rss_tcp_l4, command, rss_type = "udp", is_rss = False) + self.launch_testpmd(rss_type="udp") + self.rsspro.handle_rss_distribute_cases(rss_configure_to_udp) def test_rss_configure_to_tcp(self): - command = self.create_testpmd_command(line_option = "") - self._rss_validate_pattern(tvs_mac_rss_tcp, command, rss_type = "tcp", is_rss = True) - self._rss_validate_pattern(tvs_mac_rss_udp_l4, command, rss_type = "tcp", is_rss = False) + self.launch_testpmd(rss_type="tcp") + self.rsspro.handle_rss_distribute_cases(rss_configure_to_tcp) def test_rss_configure_to_sctp(self): - command = self.create_testpmd_command(line_option = "") - self._rss_validate_pattern(tvs_mac_rss_sctp, command, rss_type = "sctp", is_rss = True) - self._rss_validate_pattern(tvs_mac_rss_udp_l4, command, rss_type = "sctp", is_rss = False) - self._rss_validate_pattern(tvs_mac_rss_tcp_l4, command, rss_type = "sctp", is_rss = False) + self.launch_testpmd(rss_type="sctp") + self.rsspro.handle_rss_distribute_cases(rss_configure_to_sctp) def test_rss_configure_to_all(self): - command = self.create_testpmd_command(line_option = "") - self._rss_validate_pattern(tvs_mac_rss_all, command, rss_type = "all", is_rss = True) + self.launch_testpmd(rss_type="all") + self.rsspro.handle_rss_distribute_cases(rss_configure_to_all) def test_rss_configure_to_default(self): - command = self.create_testpmd_command(line_option = "") - self._rss_validate_pattern(tvs_mac_rss_all, command, rss_type = "default", is_rss = True) + self.launch_testpmd(rss_type="default") + self.rsspro.handle_rss_distribute_cases(rss_configure_to_default) + + def tear_down(self): + """ + Run after each test case. + """ + self.pmdout.execute_cmd("quit", "# ") + + def tear_down_all(self): + """ + Run after each test suite. + """ + self.dut.kill_all()