From patchwork Tue Nov 23 12:38:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: hailinx X-Patchwork-Id: 104585 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 D931AA0C4C; Tue, 23 Nov 2021 06:08:19 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C5061410E4; Tue, 23 Nov 2021 06:08:19 +0100 (CET) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id BB5DD4003C for ; Tue, 23 Nov 2021 06:08:17 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10176"; a="221832654" X-IronPort-AV: E=Sophos;i="5.87,256,1631602800"; d="scan'208";a="221832654" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2021 21:08:17 -0800 X-IronPort-AV: E=Sophos;i="5.87,256,1631602800"; d="scan'208";a="456924855" Received: from unknown (HELO localhost.localdomain) ([10.240.183.55]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2021 21:08:15 -0800 From: Hailin Xu To: dts@dpdk.org, qi.fu@intel.com Cc: Hailin Xu Subject: [dts][PATCH v2 1/3] test_plans/cvl_rss_configure: change test plan Date: Tue, 23 Nov 2021 20:38:15 +0800 Message-Id: <20211123123817.9401-2-hailinx.xu@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211123123817.9401-1-hailinx.xu@intel.com> References: <20211123123817.9401-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 1. When all/default RSS types are enabled, ip/tcp/udp/sctp types of packets have hash value, when the input set is changed, the hash value should change. 2. When enable the specified RSS type, packets of matched type have hash, the packet input set of match type change, the hash value should also change, while packets of unmatched type have no hash value. example: enable tcp rss, send ipv4/ipv6 tcp packets, these packets have hash value, when these packets input set change, hash value should also change. when send ip/sctp/udp packets should be no hash value. 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 Tue Nov 23 12:38:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: hailinx X-Patchwork-Id: 104586 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 19170A0C4B; Tue, 23 Nov 2021 06:08:22 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1022C40040; Tue, 23 Nov 2021 06:08:22 +0100 (CET) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id A4CF740040 for ; Tue, 23 Nov 2021 06:08:19 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10176"; a="221832658" X-IronPort-AV: E=Sophos;i="5.87,256,1631602800"; d="scan'208";a="221832658" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2021 21:08:19 -0800 X-IronPort-AV: E=Sophos;i="5.87,256,1631602800"; d="scan'208";a="456924865" Received: from unknown (HELO localhost.localdomain) ([10.240.183.55]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2021 21:08:17 -0800 From: Hailin Xu To: dts@dpdk.org, qi.fu@intel.com Cc: Hailin Xu Subject: [dts][PATCH v2 2/3] tests/cvl_rss_configure: change test cases Date: Tue, 23 Nov 2021 20:38:16 +0800 Message-Id: <20211123123817.9401-3-hailinx.xu@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211123123817.9401-1-hailinx.xu@intel.com> References: <20211123123817.9401-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 1. Change code to support rss common interface and adapt to test plan. 2. Change packet checkpoint from queue to hash value. Signed-off-by: Hailin Xu Tested-by: Xu Hailin Acked-by: Fu, Qi --- 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..c86bb4a0 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=16) 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=16 --txq=16 " + 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() From patchwork Tue Nov 23 12:38:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: hailinx X-Patchwork-Id: 104587 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 4425FA0C4C; Tue, 23 Nov 2021 06:08:23 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3D0AC40E0F; Tue, 23 Nov 2021 06:08:23 +0100 (CET) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id 5802E4003C for ; Tue, 23 Nov 2021 06:08:21 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10176"; a="221832663" X-IronPort-AV: E=Sophos;i="5.87,256,1631602800"; d="scan'208";a="221832663" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2021 21:08:21 -0800 X-IronPort-AV: E=Sophos;i="5.87,256,1631602800"; d="scan'208";a="456924874" Received: from unknown (HELO localhost.localdomain) ([10.240.183.55]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Nov 2021 21:08:19 -0800 From: Hailin Xu To: dts@dpdk.org, qi.fu@intel.com Cc: Hailin Xu Subject: [dts][PATCH v2 3/3] tests/rte_flow_common: change rss common interface Date: Tue, 23 Nov 2021 20:38:17 +0800 Message-Id: <20211123123817.9401-4-hailinx.xu@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20211123123817.9401-1-hailinx.xu@intel.com> References: <20211123123817.9401-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 rss common interface: support hash verify when send multiple packets Signed-off-by: Hailin Xu --- tests/rte_flow_common.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/rte_flow_common.py b/tests/rte_flow_common.py index fb76bf86..969d3222 100644 --- a/tests/rte_flow_common.py +++ b/tests/rte_flow_common.py @@ -804,11 +804,12 @@ class RssProcessing(object): self.logger.error(error_msg) self.error_msgs.append(error_msg) else: - if hashes != self.hash_records[key]: - error_msg = 'hash value {} should be same ' \ - 'with {} {}'.format(hashes, key, self.hash_records[key]) - self.logger.error(error_msg) - self.error_msgs.append(error_msg) + for hash in hashes: + if hash not in self.hash_records[key]: + error_msg = 'hash value {} should be same ' \ + 'with {} {}'.format(hashes, key, self.hash_records[key]) + self.logger.error(error_msg) + self.error_msgs.append(error_msg) if not rss_distribute: error_msg = 'the packet do not distribute by rss' self.logger.error(error_msg)