From patchwork Thu Sep 22 05:28:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: hailinx X-Patchwork-Id: 116617 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 1F46AA0540; Thu, 22 Sep 2022 07:30:41 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1B92740691; Thu, 22 Sep 2022 07:30:41 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 4779E40156 for ; Thu, 22 Sep 2022 07:30:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1663824639; x=1695360639; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=puODQMT0zk+02Qbw0EIHtQ/Jj2eXsZCwzoQ7+Py8dZI=; b=SGIj1cICUfWlRjAbPBN6uADYX9vAqxjZHSY1uM920Gh2xMNqibdI8TqA vPPdu3rITn9wjI+imJT0BwzxNbFh7Zfcw6dHXHOBWpyRbU4kpIgLFXFNi 0BVEYQs1JgUfRrZ+uBzFg843qVg+sotiTi2wm+wrDN1ag92Oo7N3mpBNV nwvs6Oc8J19xpbLsVwdQ142qPPCe2Po4LaDcHNadQIC3Z3gzA9foZlDnR GfENsalVRjRB9g4CycHYeL5AtTRKVEYWTv5UREQ+2rN+UaxK/sKJbQLV7 lVu593wBHA7KFwv5bNEUCXc4qOePirO+JOft8pKhpYAw4dvTwqYKhWbE7 A==; X-IronPort-AV: E=McAfee;i="6500,9779,10477"; a="326520217" X-IronPort-AV: E=Sophos;i="5.93,335,1654585200"; d="scan'208";a="326520217" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Sep 2022 22:30:24 -0700 X-IronPort-AV: E=Sophos;i="5.93,335,1654585200"; d="scan'208";a="682068794" Received: from unknown (HELO localhost.localdomain) ([10.239.252.63]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Sep 2022 22:30:22 -0700 From: hailinx xu To: dts@dpdk.org, qi.fu@intel.com Cc: hailinx xu Subject: [dts][PATCH v3 1/2] test_plans: support ipv6 next proto id Date: Thu, 22 Sep 2022 13:28:38 +0800 Message-Id: <20220922052839.23851-2-hailinx.xu@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220922052839.23851-1-hailinx.xu@intel.com> References: <20220922052839.23851-1-hailinx.xu@intel.com> MIME-Version: 1.0 X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org add new test cases for ice support ipv6 next protocol id Signed-off-by: hailinx xu Acked-by: Lijuan Tu --- test_plans/ice_fdir_test_plan.rst | 418 ++++++++++++++++++++++++++---- 1 file changed, 365 insertions(+), 53 deletions(-) diff --git a/test_plans/ice_fdir_test_plan.rst b/test_plans/ice_fdir_test_plan.rst index 1bb11ae1..a3cc1d46 100644 --- a/test_plans/ice_fdir_test_plan.rst +++ b/test_plans/ice_fdir_test_plan.rst @@ -9,63 +9,72 @@ Enable fdir filter for IPv4/IPv6 + TCP/UDP/SCTP (OS default package) Enable fdir filter for UDP tunnel: Vxlan / NVGRE (OS default package) Enable fdir filter for GTP (comm #1 package) Enable fdir filter for L2 Ethertype (comm #1 package) +Enable fdir filter for IPv6 Next Protocol ID(comm #1 package) Pattern and input set --------------------- - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | Packet Type | Pattern | Input Set | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | IPv4/IPv6 + TCP/UDP/SCTP | MAC_IPV4_PAY | [Dest MAC],[Source IP], [Dest IP], [IP protocol], [TTL], [DSCP] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_UDP | [Dest MAC],[Source IP], [Dest IP], [TTL], [DSCP], [Source Port], [Dest Port] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_TCP | [Dest MAC],[Source IP], [Dest IP], [TTL], [DSCP], [Source Port], [Dest Port] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_SCTP | [Dest MAC],[Source IP], [Dest IP], [TTL], [DSCP], [Source Port], [Dest Port] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV6_PAY | [Dest MAC],[Source IP], [Dest IP], [IP protocol], [TTL], [TC] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV6_UDP | [Dest MAC],[Source IP], [Dest IP], [TTL], [TC], [Source Port], [Dest Port] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV6_TCP | [Dest MAC],[Source IP], [Dest IP], [TTL], [TC], [Source Port], [Dest Port] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV6_SCTP | [Dest MAC],[Source IP], [Dest IP], [TTL], [TC], [Source Port], [Dest Port] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | UDP tunnel: VXLAN inner only | MAC_IPV4_TUN_IPV4_PAY | [Inner Source IP], [Inner Dest IP] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_TUN_IPV4_UDP | [Inner Source IP], [Inner Dest IP], [Inner Source Port], [Inner Dest Port] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_TUN_IPV4_TCP | [Inner Source IP], [Inner Dest IP], [Inner Source Port], [Inner Dest Port] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_TUN_IPV4_SCTP | [Inner Source IP], [Inner Dest IP], [Inner Source Port], [Inner Dest Port] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_TUN_MAC_IPV4_PAY | [Inner Source IP], [Inner Dest IP] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_TUN_MAC_IPV4_UDP | [Inner Source IP], [Inner Dest IP], [Inner Source Port], [Inner Dest Port] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_TUN_MAC_IPV4_TCP | [Inner Source IP], [Inner Dest IP], [Inner Source Port], [Inner Dest Port] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_TUN_MAC_IPV4_SCTP | [Inner Source IP], [Inner Dest IP], [Inner Source Port], [Inner Dest Port] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | IPv4/IPv6 + GTP-U | MAC_IPV4_GTPU | [Source IP], [Dest IP], [TEID] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_GTPU_EH | [Source IP], [Dest IP], [TEID], [QFI] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV6_GTPU | [Source IPV6], [Dest IPV6], [TEID] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV6_GTPU_EH | [Source IPV6], [Dest IPV6], [TEID], [QFI] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | L2 Ethertype | L2 Ethertype | [Ethertype] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | ESP | MAC_IPV4_ESP | [Source IP] [Dest IP] [SPI] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV6_ESP | [Source IP] [Dest IP] [SPI] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV4_NAT-T-ESP | [Source IP] [Dest IP] [SPI] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ - | | MAC_IPV6_NAT-T-ESP | [Source IP] [Dest IP] [SPI] | - +------------------------------+----------------------------+-------------------------------------------------------------------------------+ + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | Packet Type | Pattern | Input Set | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | IPv4/IPv6 + TCP/UDP/SCTP | MAC_IPV4_PAY | [Dest MAC],[Source IP], [Dest IP], [IP protocol], [TTL], [DSCP] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV4_UDP | [Dest MAC],[Source IP], [Dest IP], [TTL], [DSCP], [Source Port], [Dest Port] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV4_TCP | [Dest MAC],[Source IP], [Dest IP], [TTL], [DSCP], [Source Port], [Dest Port] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV4_SCTP | [Dest MAC],[Source IP], [Dest IP], [TTL], [DSCP], [Source Port], [Dest Port] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV6_PAY | [Dest MAC],[Source IP], [Dest IP], [IP protocol], [TTL], [TC] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV6_UDP | [Dest MAC],[Source IP], [Dest IP], [TTL], [TC], [Source Port], [Dest Port] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV6_TCP | [Dest MAC],[Source IP], [Dest IP], [TTL], [TC], [Source Port], [Dest Port] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV6_SCTP | [Dest MAC],[Source IP], [Dest IP], [TTL], [TC], [Source Port], [Dest Port] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | UDP tunnel: VXLAN inner only | MAC_IPV4_TUN_IPV4_PAY | [Inner Source IP], [Inner Dest IP] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV4_TUN_IPV4_UDP | [Inner Source IP], [Inner Dest IP], [Inner Source Port], [Inner Dest Port] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV4_TUN_IPV4_TCP | [Inner Source IP], [Inner Dest IP], [Inner Source Port], [Inner Dest Port] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV4_TUN_IPV4_SCTP | [Inner Source IP], [Inner Dest IP], [Inner Source Port], [Inner Dest Port] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV4_TUN_MAC_IPV4_PAY | [Inner Source IP], [Inner Dest IP] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV4_TUN_MAC_IPV4_UDP | [Inner Source IP], [Inner Dest IP], [Inner Source Port], [Inner Dest Port] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV4_TUN_MAC_IPV4_TCP | [Inner Source IP], [Inner Dest IP], [Inner Source Port], [Inner Dest Port] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV4_TUN_MAC_IPV4_SCTP | [Inner Source IP], [Inner Dest IP], [Inner Source Port], [Inner Dest Port] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | IPv4/IPv6 + GTP-U | MAC_IPV4_GTPU | [Source IP], [Dest IP], [TEID] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV4_GTPU_EH | [Source IP], [Dest IP], [TEID], [QFI] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV6_GTPU | [Source IPV6], [Dest IPV6], [TEID] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV6_GTPU_EH | [Source IPV6], [Dest IPV6], [TEID], [QFI] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | L2 Ethertype | L2 Ethertype | [Ethertype] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | ESP | MAC_IPV4_ESP | [Source IP] [Dest IP] [SPI] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV6_ESP | [Source IP] [Dest IP] [SPI] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV4_NAT-T-ESP | [Source IP] [Dest IP] [SPI] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | MAC_IPV6_NAT-T-ESP | [Source IP] [Dest IP] [SPI] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | IPv6 Next Protocol + TCP/UDP/SCTP| IPV6_NEXT_PROTO | [IPv6ExtHdrtype] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | IPV6_NEXT_PROTO_TCP | [IPv6ExtHdrtype] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | IPV6_NEXT_PROTO_UDP | [IPv6ExtHdrtype] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ + | | IPV6_NEXT_PROTO_SCTP | [IPv6ExtHdrtype] | + +----------------------------------+----------------------------+-------------------------------------------------------------------------------+ .. note:: @@ -173,6 +182,10 @@ Default parameters [Ethertype]: 0x8863 0x8864 0x0806 0x8100 0x88f7 + IPv6 ExtHdrtype:: + + [IPv6ExtHdrtype]: IPv6ExtHdrDestOpt IPv6ExtHdrRouting IPv6ExtHdrHopByHop IPv6ExtHdrSegmentRouting + Send packets ------------ @@ -542,6 +555,86 @@ Send packets sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::9")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1") sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::2")/UDP(dport=4500)/ESP(spi=77)/Raw('x'*480),iface="enp134s0f1") +* IPV6_NEXT_PROTO + + matched packets:: + + sendp([Ether(dst='00:11:22:33:44:55')/IPv6(nh=123)/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrDestOpt(nh=123)/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrRouting(nh=123)/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrHopByHop(nh=123)/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrSegmentRouting(nh=123)/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrDestOpt()/IPv6ExtHdrDestOpt(nh=123)/Raw('x'*40)],iface="ens192f0") + + mismatched packets:: + + sendp([Ether(dst='00:11:22:33:44:55')/IPv6(nh=111)/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/UDP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/TCP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/SCTP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrFragment(nh=123)/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrRouting()/IPv6ExtHdrRouting(nh=111)/Raw('x'*40)],iface="ens192f0") + +* IPV6_NEXT_PROTO_UDP + + matched packets:: + + sendp([Ether(dst='00:11:22:33:44:55')/IPv6(nh=17)/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/TCP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrDestOpt(nh=17)/UDP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrRouting(nh=17)/UDP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrHopByHop(nh=17)/UDP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrSegmentRouting(nh=17)/UDP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrDestOpt()/IPv6ExtHdrDestOpt(nh=17)/UDP()/Raw('x'*40)],iface="ens192f0") + + mismatched packets:: + + sendp([Ether(dst='00:11:22:33:44:55')/IPv6(nh=6)/UDP/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/TCP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/SCTP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrFragment(nh=17)/UDP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrRouting()/IPv6ExtHdrRouting(nh=111)/UDP()/Raw('x'*40)],iface="ens192f0") + +* IPV6_NEXT_PROTO_TCP + + matched packets:: + + sendp([Ether(dst='00:11:22:33:44:55')/IPv6(nh=6)/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/TCP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrDestOpt(nh=6)/TCP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrRouting(nh=6)/TCP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrHopByHop(nh=6)/TCP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrSegmentRouting(nh=6)/TCP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrDestOpt()/IPv6ExtHdrDestOpt(nh=6)/TCP()/Raw('x'*40)],iface="ens192f0") + + mismatched packets:: + + sendp([Ether(dst='00:11:22:33:44:55')/IPv6(nh=17)/TCP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/UDP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/SCTP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrFragment(nh=6)/TCP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrRouting()/IPv6ExtHdrRouting(nh=111)/TCP()/Raw('x'*40)],iface="ens192f0") + +* IPV6_NEXT_PROTO_SCTP + + matched packets:: + + sendp([Ether(dst='00:11:22:33:44:55')/IPv6(nh=132)/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/SCTP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrDestOpt(nh=132)/SCTP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrRouting(nh=132)/SCTP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrHopByHop(nh=132)/SCTP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrSegmentRouting(nh=132)/SCTP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrDestOpt(nh=123)/IPv6ExtHdrDestOpt(nh=132)/SCTP()/Raw('x'*40)],iface="ens192f0") + + mismatched packets:: + + sendp([Ether(dst='00:11:22:33:44:55')/IPv6(nh=123)/SCTP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/TCP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/UDP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrFragment(nh=132)/SCTP()/Raw('x'*40)],iface="ens192f0") + sendp([Ether(dst='00:11:22:33:44:55')/IPv6()/IPv6ExtHdrRouting()/IPv6ExtHdrRouting(nh=111)/SCTP()/Raw('x'*40)],iface="ens192f0") + Test case: flow validation ========================== @@ -4203,3 +4296,222 @@ So there can be created 14848 fdir rules on 1 PF port. there is no rule listed. 6. verify matched packets for rule 0 and rule 15359 received without FDIR matched ID. + + +Test_Case: IPV6_NEXT_PROTO pattern +================================== + +Subcase 1: IPV6_NEXT_PROTO queue index +-------------------------------------- + +1. create filter rules:: + + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 123 / end actions queue index 1 / mark / end + +2. send matched packets, check the packets is distributed to queue 1 with FDIR matched ID=0x0. + send unmatched packets, check the packets are distributed by RSS without FDIR matched ID. + +3. verify rules can be listed and destroyed:: + + testpmd> flow list 0 + + check the rule listed. + destroy the rule:: + + testpmd> flow destroy 0 rule 0 + +4. verify matched packet is distributed by RSS without FDIR matched ID. + check there is no rule listed. + +Subcase 2: IPV6_NEXT_PROTO rss queues +------------------------------------- + +1. create filter rules:: + + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 123 / end actions rss queues 1 2 end / mark id 1 / end + +2. send matched packets, check the packets is distributed to queue 56-63 with FDIR matched ID=0x0. + send unmatched packets, check the packets are distributed by RSS without FDIR matched ID. + +3. repeat step 3 of subcase 1. + +4. verify matched packet is distributed by RSS without FDIR matched ID. + check there is no rule listed. + +Subcase 3: IPV6_NEXT_PROTO passthru +----------------------------------- + +1. create filter rules:: + + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 123 / end actions passthru / mark / end + +2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0. + send unmatched packets, check the packets are distributed by RSS without FDIR matched ID. + +3. repeat step 3 of subcase 1. + +4. verify matched packets are destributed by RSS without FDIR matched ID . + check there is no rule listed. + +Subcase 4: IPV6_NEXT_PROTO drop +------------------------------- + +1. create filter rules:: + + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 123 / end actions drop / end + +2. send matched packets, check the packets are dropped. + send unmatched packets, check the packets are not dropped. + +3. repeat step 3 of subcase 1. + +4. verify matched packet is dropped. + check there is no rule listed. + +Subcase 5: IPV6_NEXT_PROTO mark+rss +----------------------------------- +Note: This combined action is mark with RSS which is without queues specified. + +1. create filter rules:: + + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 123 / end actions mark / rss / end + +2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0 + send unmatched packets, check the packets are distributed by RSS without FDIR matched ID. + +3. repeat step 3 of subcase 1. + +4. verify matched packets are distributed by RSS without FDIR matched ID. + check there is no rule listed. + +Subcase 6: IPV6_NEXT_PROTO mark +------------------------------- + +1. create filter rules:: + + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 123 / end actions mark / end + +2. repeat the steps of passthru in subcase 3, + get the same result. + + +Test_Case: IPV6_NEXT_PROTO_UDP pattern +====================================== + +1. create filter rules:: + + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 17 / udp / end actions queue index 3 / mark / end + +2. send matched packets, check the packets is distributed to queue 1 with FDIR matched ID=0x0. + send unmatched packets, check the packets are distributed by RSS without FDIR matched ID. + +3. verify rules can be listed and destroyed:: + + testpmd> flow list 0 + + check the rule listed. + destroy the rule:: + + testpmd> flow destroy 0 rule 0 + +4. verify matched packet is distributed by RSS without FDIR matched ID. + check there is no rule listed. + +Subcase 2: IPV6_NEXT_PROTO_UDP rss queues +----------------------------------------- + +1. create filter rules:: + + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 17 / udp / end actions rss queues 5 6 end / mark id 1 / end + +2. send matched packets, check the packets is distributed to queue 56-63 with FDIR matched ID=0x0. + send unmatched packets, check the packets are distributed by RSS without FDIR matched ID. + +3. repeat step 3 of subcase 1. + +4. verify matched packet is distributed by RSS without FDIR matched ID. + check there is no rule listed. + +Subcase 3: IPV6_NEXT_PROTO_UDP passthru +--------------------------------------- + +1. create filter rules:: + + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 17 / udp / end actions passthru / mark / end + +2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0. + send unmatched packets, check the packets are distributed by RSS without FDIR matched ID. + +3. repeat step 3 of subcase 1. + +4. verify matched packets are destributed by RSS without FDIR matched ID . + check there is no rule listed. + +Subcase 4: IPV6_NEXT_PROTO_UDP drop +----------------------------------- + +1. create filter rules:: + + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 17 / udp / end actions drop / end + +2. send matched packets, check the packets are dropped. + send unmatched packets, check the packets are not dropped. + +3. repeat step 3 of subcase 1. + +4. verify matched packet is dropped. + check there is no rule listed. + +Subcase 5: IPV6_NEXT_PROTO_UDP mark+rss +--------------------------------------- +Note: This combined action is mark with RSS which is without queues specified. + +1. create filter rules:: + + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 17 / udp / end actions mark / rss / end + +2. send matched packets, check the packets are distributed by RSS with FDIR matched ID=0x0 + send unmatched packets, check the packets are distributed by RSS without FDIR matched ID. + +3. repeat step 3 of subcase 1. + +4. verify matched packets are distributed by RSS without FDIR matched ID. + check there is no rule listed. + +Subcase 6: IPV6_NEXT_PROTO_UDP mark +----------------------------------- + +1. create filter rules:: + + flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 17 / udp / end actions mark / end + +2. repeat the steps of passthru in subcase 3, + get the same result. + + +Test_Case: IPV6_NEXT_PROTO_TCP pattern +====================================== + +1. replace "udp" with "tcp", replace "proto is 17" with "proto is 6" in all the subcases of IPV6_NEXT_PROTO_UDP pattern. +2. Then repeat all the steps in all the subcases of IPV6_NEXT_PROTO_UDP pattern. +3. get the same result. + + +Test_Case: IPV6_NEXT_PROTO_SCTP pattern +======================================= + +1. replace "udp" with "sctp", replace "proto is 17" with "proto is 132" in all the subcases of IPV6_NEXT_PROTO_UDP pattern. +2. Then repeat all the steps in all the subcases of IPV6_NEXT_PROTO_UDP pattern. +3. get the same result. + +exclusive test cases +==================== + +support priority:: + + rule1: flow create 0 priority 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 123 / end actions queue index 1 / mark / end + +same proto value can't be created twice:: + + rule1: flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 123 / end actions queue index 1 / mark / end + rule2: flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv6 proto is 123 / end actions rss queues 2 3 end / mark / end