test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts] [PATCH V3 0/4] enable esp flow
@ 2021-09-27 16:22 Zhimin Huang
  2021-09-27 16:22 ` [dts] [PATCH V3 1/4] test_plans/cvl_fdir_test_plan:add esp flow test plan Zhimin Huang
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Zhimin Huang @ 2021-09-27 16:22 UTC (permalink / raw)
  To: dts; +Cc: Zhimin Huang

according to 21.08 new feature,enable esp flow to support match outer ip header.
take esp and outer ip src/dst input set,add new case in pf and vf fdir.

v3:
- fix testplan malformed table.

Zhimin Huang (4):
  test_plans/cvl_fdir_test_plan:add esp flow test plan
  test_plans/iavf_fdir_test_plan:add esp flow test plan
  tests/cvl_fdir:add esp flow test case
  tests/iavf_fdir:add esp flow test case

 test_plans/cvl_fdir_test_plan.rst  | 457 +++++++++++++++++++++++++++++
 test_plans/iavf_fdir_test_plan.rst | 253 +++++++++++++---
 tests/TestSuite_cvl_fdir.py        | 336 +++++++++++++++++++++
 tests/TestSuite_iavf_fdir.py       | 162 +++++++---
 4 files changed, 1138 insertions(+), 70 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [dts] [PATCH V3 1/4] test_plans/cvl_fdir_test_plan:add esp flow test plan
  2021-09-27 16:22 [dts] [PATCH V3 0/4] enable esp flow Zhimin Huang
@ 2021-09-27 16:22 ` Zhimin Huang
  2021-09-27 16:22 ` [dts] [PATCH V3 2/4] test_plans/iavf_fdir_test_plan:add " Zhimin Huang
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Zhimin Huang @ 2021-09-27 16:22 UTC (permalink / raw)
  To: dts; +Cc: Zhimin Huang

add 21.08 new feature testplan,this feature support esp flow to match outer ip header.
take ip src/dst and spi for inputset,add 4 new cases in cvl_fdir test plan.

Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
---
 test_plans/cvl_fdir_test_plan.rst | 457 ++++++++++++++++++++++++++++++
 1 file changed, 457 insertions(+)

diff --git a/test_plans/cvl_fdir_test_plan.rst b/test_plans/cvl_fdir_test_plan.rst
index 9f4cae4a..2ee2154c 100644
--- a/test_plans/cvl_fdir_test_plan.rst
+++ b/test_plans/cvl_fdir_test_plan.rst
@@ -87,6 +87,14 @@ Pattern and input set
     +------------------------------+----------------------------+-------------------------------------------------------------------------------+
     | 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]                                                   |
+    +------------------------------+----------------------------+-------------------------------------------------------------------------------+
 
 .. note::
 
@@ -518,6 +526,55 @@ Send packets
 
     sendp([Ether(dst="00:11:22:33:44:55",type=0x88f7)/"\\x00\\x02"], iface="enp134s0f1")
 
+* MAC_IPV4_ESP
+
+   matched packets::
+
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.21",proto=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+
+   mismatched packets::
+
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.22",dst="192.168.0.21",proto=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.11",proto=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.21",proto=50)/ESP(spi=17)/Raw('x'*480),iface="enp134s0f1")
+
+* MAC_IPV6_ESP
+
+   matched packets::
+
+    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::2",nh=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+
+   mismatched packets::
+
+    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::8",dst="2001::2",nh=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::9",nh=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::2",nh=50)/ESP(spi=17)/Raw('x'*480),iface="enp134s0f1")
+
+* MAC_IPV4_NAT-T-ESP
+
+   matched packets::
+
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+
+   mismatched packets::
+
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.22",dst="192.168.0.21")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.11")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(dport=4500)/ESP(spi=77)/Raw('x'*480),iface="enp134s0f1")
+
+
+* MAC_IPV6_NAT-T-ESP
+
+   matched packets::
+
+    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::2")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+
+   mismatched packets::
+
+    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::8",dst="2001::2")/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::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")
+
 Test case: flow validation
 ==========================
 
@@ -2924,6 +2981,406 @@ Subcase 7: unsupported Ethertype
 
    the number "2" stands for switch rule, fdir doesn't support IPV4/IPV6 ethertype.
 
+Test case: MAC_IPV4_ESP pattern
+==================================
+
+Subcase 1: MAC_IPV4_ESP queue index
+--------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions queue index 13 / mark id 7 / end
+
+2. send matched packets, check the packets are distributed to queue 13 with FDIR matched ID.
+   send mismatched packets, check the packets are not distributed to queue 13 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 packets are not distributed to queue 13 without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 2: MAC_IPV4_ESP rss queues
+-------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end
+
+2. send matched packets, check the packets are distributed to queue 1 or 2 or 3 or 4 with FDIR matched ID.
+   send mismatched packets, check the packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 3: MAC_IPV4_ESP passthru
+-----------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions passthru / mark id 1 / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 4: MAC_IPV4_ESP drop
+-------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions drop / end
+
+2. send matched packets, check the packets are dropped
+   send mismatched packets, check the packets are not dropped.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are not dropped.
+   check there is no rule listed.
+
+Subcase 5: MAC_IPV4_ESP mark+rss
+-----------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions mark id 2 / rss / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 6: MAC_IPV4_ESP mark
+-------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions mark id 15 / end
+
+2. send matched packets, check the packets are received with FDIR matched ID.
+   send mismatched packets, check the packets are received without FDIR matched ID.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are received without FDIR matched ID.
+   check there is no rule listed.
+
+Test case: MAC_IPV6_ESP pattern
+==================================
+
+Subcase 1: MAC_IPV6_ESP queue index
+--------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions queue index 13 / mark id 7 / end
+
+2. send matched packets, check the packets are distributed to queue 13 with FDIR matched ID.
+   send mismatched packets, check the packets are not distributed to queue 13 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 packets are not distributed to queue 13 without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 2: MAC_IPV6_ESP rss queues
+-------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end
+
+2. send matched packets, check the packets are distributed to queue 1 or 2 or 3 or 4 with FDIR matched ID.
+   send mismatched packets, check the packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 3: MAC_IPV6_ESP passthru
+-----------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions passthru / mark id 1 / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID=0x0.
+   check there is no rule listed.
+
+Subcase 4: MAC_IPV6_ESP drop
+-------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions drop / end
+
+2. send matched packets, check the packets are dropped
+   send mismatched packets, check the packets are not dropped.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are not dropped.
+   check there is no rule listed.
+
+Subcase 5: MAC_IPV6_ESP mark+rss
+-----------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions mark id 2 / rss / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 6: MAC_IPV6_ESP mark
+-------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions mark id 15 / end
+
+2. send matched packets, check the packets are received with FDIR matched ID.
+   send mismatched packets, check the packets are received without FDIR matched ID.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are received without FDIR matched ID.
+   check there is no rule listed.
+
+Test case: MAC_IPV4_NAT-T-ESP pattern
+========================================
+
+Subcase 1: MAC_IPV4_NAT-T-ESP queue index
+--------------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions queue index 13 / mark id 7 / end
+
+2. send matched packets, check the packets are distributed to queue 13 with FDIR matched ID.
+   send mismatched packets, check the packets are not distributed to queue 13 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 packets are not distributed to queue 13 without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 2: MAC_IPV4_NAT-T-ESP rss queues
+-------------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end
+
+2. send matched packets, check the packets are distributed to queue 1 or 2 or 3 or 4 with FDIR matched ID.
+   send mismatched packets, check the packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 3: MAC_IPV4_NAT-T-ESP passthru
+-----------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions passthru / mark id 1 / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 4: MAC_IPV4_NAT-T-ESP drop
+-------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions drop / end
+
+2. send matched packets, check the packets are dropped
+   send mismatched packets, check the packets are not dropped.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are not dropped.
+   check there is no rule listed.
+
+Subcase 5: MAC_IPV4_NAT-T-ESP mark+rss
+-----------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions mark id 2 / rss / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 6: MAC_IPV4_NAT-T-ESP mark
+-------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions mark id 15 / end
+
+2. send matched packets, check the packets are received with FDIR matched ID.
+   send mismatched packets, check the packets are received without FDIR matched ID.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are received without FDIR matched ID.
+   check there is no rule listed.
+
+Test case: MAC_IPV6_NAT-T-ESP pattern
+========================================
+
+Subcase 1: MAC_IPV6_NAT-T-ESP queue index
+--------------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions queue index 13 / mark id 7 / end
+
+2. send matched packets, check the packets are distributed to queue 13 with FDIR matched ID.
+   send mismatched packets, check the packets are not distributed to queue 13 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 packets are not distributed to queue 13 without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 2: MAC_IPV6_NAT-T-ESP rss queues
+-------------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end
+
+2. send matched packets, check the packets are distributed to queue 1 or 2 or 3 or 4 with FDIR matched ID.
+   send mismatched packets, check the packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 3: MAC_IPV6_NAT-T-ESP passthru
+-----------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions passthru / mark id 1 / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 4: MAC_IPV6_NAT-T-ESP drop
+-------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions drop / end
+
+2. send matched packets, check the packets are dropped
+   send mismatched packets, check the packets are not dropped.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are not dropped.
+   check there is no rule listed.
+
+Subcase 5: MAC_IPV6_NAT-T-ESP mark+rss
+-----------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions mark id 2 / rss / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 6: MAC_IPV6_NAT-T-ESP mark
+-------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions mark id 15 / end
+
+2. send matched packets, check the packets are received with FDIR matched ID.
+   send mismatched packets, check the packets are received without FDIR matched ID.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are received without FDIR matched ID.
+   check there is no rule listed.
+
 Test case: negative cases
 =========================
 Note: the error message may be changed.
-- 
2.17.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [dts] [PATCH V3 2/4] test_plans/iavf_fdir_test_plan:add esp flow test plan
  2021-09-27 16:22 [dts] [PATCH V3 0/4] enable esp flow Zhimin Huang
  2021-09-27 16:22 ` [dts] [PATCH V3 1/4] test_plans/cvl_fdir_test_plan:add esp flow test plan Zhimin Huang
@ 2021-09-27 16:22 ` Zhimin Huang
  2021-09-27 16:22 ` [dts] [PATCH V3 3/4] tests/cvl_fdir:add esp flow test case Zhimin Huang
  2021-09-27 16:22 ` [dts] [PATCH V3 4/4] tests/iavf_fdir:add " Zhimin Huang
  3 siblings, 0 replies; 6+ messages in thread
From: Zhimin Huang @ 2021-09-27 16:22 UTC (permalink / raw)
  To: dts; +Cc: Zhimin Huang

add 21.08 new feature testplan,this feature support esp flow to match outer ip header.
take ip src/dst and spi for inputset,add 4 new cases in iavf_fdir test plan.

Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
---
 test_plans/iavf_fdir_test_plan.rst | 253 +++++++++++++++++++++++++----
 1 file changed, 217 insertions(+), 36 deletions(-)

diff --git a/test_plans/iavf_fdir_test_plan.rst b/test_plans/iavf_fdir_test_plan.rst
index 91dbf57f..62d0ad12 100644
--- a/test_plans/iavf_fdir_test_plan.rst
+++ b/test_plans/iavf_fdir_test_plan.rst
@@ -80,9 +80,9 @@ Pattern and input set
     +------------------------------+------------------------------+-------------------------------------------------------------------+
     |                              |MAC_IPV6_L2TPv3               | [Session ID]                                                      |
     +------------------------------+------------------------------+-------------------------------------------------------------------+
-    | ESP                          |MAC_IPV4_ESP                  | [SPI]                                                             |
+    | ESP                          |MAC_IPV4_ESP                  | [Source IP], [Dest IP], [SPI]                                     |
     +------------------------------+------------------------------+-------------------------------------------------------------------+
-    |                              |MAC_IPV6_ESP                  | [SPI]                                                             |
+    |                              |MAC_IPV6_ESP                  | [Source IP], [Dest IP], [SPI]                                     |
     +------------------------------+------------------------------+-------------------------------------------------------------------+
     |                              |MAC_IPV4_AH                   | [SPI]                                                             |
     +------------------------------+------------------------------+-------------------------------------------------------------------+
@@ -599,23 +599,25 @@ Send packets
 
    matched packets::
 
-    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.3",proto=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
-    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.1.3",proto=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
-   
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.21",proto=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+
    mismatched packets::
     
-    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.3",proto=50)/ESP(spi=17)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.22",dst="192.168.0.21",proto=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.11",proto=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.21",proto=50)/ESP(spi=17)/Raw('x'*480),iface="enp134s0f1")
 
 * MAC_IPV6_ESP
 
    matched packets::
 
-    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888",nh=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
-    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="1111:2222:3333:4444:5555:6666:7777:9999",nh=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
-   
+    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::2",nh=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+
    mismatched packets::
     
-    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888",nh=50)/ESP(spi=17)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::8",dst="2001::2",nh=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::9",nh=50)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::1",dst="2001::2",nh=50)/ESP(spi=17)/Raw('x'*480),iface="enp134s0f1")
 
 * MAC_IPV4_AH
 
@@ -643,25 +645,25 @@ Send packets
 
    matched packets::
 
-    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20")/UDP(dport=4500)/ESP(spi=2)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
    
    mismatched packets::
     
-    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.10.20")/UDP(dport=4500)/ESP(spi=2)/Raw('x'*480),iface="enp134s0f1")
-    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20")/UDP(dport=4500)/ESP(spi=12)/Raw('x'*480),iface="enp134s0f1")
-    sendp(Ether(dst='00:11:22:33:44:55')/IP(dst="192.168.0.20")/UDP(dport=4500)/ESP(spi=2)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.22",dst="192.168.0.21")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.11")/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(dport=4500)/ESP(spi=17)/Raw('x'*480),iface="enp134s0f1")
 
 * MAC_IPV6_NAT-T-ESP
 
    matched packets::
 
-    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888")/UDP(dport=4500)/ESP(spi=2)/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=7)/Raw('x'*480),iface="enp134s0f1")
    
    mismatched packets::
     
-    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888")/UDP(dport=4500)/ESP(spi=12)/Raw('x'*480),iface="enp134s0f1")
-    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:9999")/UDP(dport=4500)/ESP(spi=2)/Raw('x'*480),iface="enp134s0f1")
-    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888")/UDP(dport=4500)/ESP(spi=2)/Raw('x'*480),iface="enp134s0f1")
+    sendp(Ether(dst='00:11:22:33:44:55')/IPv6(src="2001::8",dst="2001::2")/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::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=17)/Raw('x'*480),iface="enp134s0f1")
 
 * MAC_IPV4_GTPU_IPV4
 
@@ -3610,7 +3612,7 @@ Subcase 1: MAC_IPV4_ESP queue index
 
 1. create filter rules::
 
-    flow create 0 ingress pattern eth / ipv4 / esp spi is 7 / end actions queue index 13 / mark id 7 / end
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions queue index 13 / mark id 7 / end
 
 2. send matched packets, check the packets are distributed to queue 13 with FDIR matched ID.
    send mismatched packets, check the packets are not distributed to queue 13 without FDIR matched ID.
@@ -3632,7 +3634,7 @@ Subcase 2: MAC_IPV4_ESP rss queues
 
 1. create filter rules::
 
-    flow create 0 ingress pattern eth / ipv4 / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end
 
 2. send matched packets, check the packets are distributed to queue 1 or 2 or 3 or 4 with FDIR matched ID.
    send mismatched packets, check the packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
@@ -3642,12 +3644,57 @@ Subcase 2: MAC_IPV4_ESP rss queues
 4. verify matched packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
    check there is no rule listed.
 
-Subcase 3: MAC_IPV4_ESP mark
+Subcase 3: MAC_IPV4_ESP passthru
+-----------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions passthru / mark id 1 / end
+
+2. send matched packets, check the packets are distributed by RSS without FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 4: MAC_IPV4_ESP drop
+-------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions drop / end
+
+2. send matched packets, check the packets are dropped
+   send mismatched packets, check the packets are not dropped.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are not dropped.
+   check there is no rule listed.
+
+Subcase 5: MAC_IPV4_ESP mark+rss
+-----------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions mark id 2 / rss / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 6: MAC_IPV4_ESP mark
 ----------------------------
 
 1. create filter rules::
 
-    flow create 0 ingress pattern eth / ipv4 / esp spi is 7 / end actions mark id 15 / end
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions mark id 15 / end
 
 2. send matched packets, check the packets are received with FDIR matched ID.
    send mismatched packets, check the packets are received without FDIR matched ID.
@@ -3657,7 +3704,6 @@ Subcase 3: MAC_IPV4_ESP mark
 4. verify matched packets are received without FDIR matched ID.
    check there is no rule listed.
 
-
 Test case: MAC_IPV6_ESP pattern
 ===============================
 
@@ -3666,7 +3712,7 @@ Subcase 1: MAC_IPV6_ESP queue index
 
 1. create filter rules::
 
-    flow create 0 ingress pattern eth / ipv6 / esp spi is 7 / end actions queue index 13 / mark id 7 / end
+    flow create 0 ingress pattern eth / ipv6 dst is 2001::1 dst is 2001::2 / esp spi is 7 / end actions queue index 13 / mark id 7 / end
 
 2. send matched packets, check the packets are distributed to queue 13 with FDIR matched ID.
    send mismatched packets, check the packets are not distributed to queue 13 without FDIR matched ID.
@@ -3688,7 +3734,7 @@ Subcase 2: MAC_IPV6_ESP rss queues
 
 1. create filter rules::
 
-    flow create 0 ingress pattern eth / ipv6 / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end
+    flow create 0 ingress pattern eth / ipv6 dst is 2001::1 dst is 2001::2 / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end
 
 2. send matched packets, check the packets are distributed to queue 1 or 2 or 3 or 4 with FDIR matched ID.
    send mismatched packets, check the packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
@@ -3698,12 +3744,57 @@ Subcase 2: MAC_IPV6_ESP rss queues
 4. verify matched packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
    check there is no rule listed.
 
-Subcase 3: MAC_IPV6_ESP mark
+Subcase 3: MAC_IPV6_ESP passthru
+-----------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 dst is 2001::1 dst is 2001::2 / esp spi is 7 / end actions passthru / mark id 1 / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 4: MAC_IPV6_ESP drop
+-------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 dst is 2001::1 dst is 2001::2 / esp spi is 7 / end actions drop / end
+
+2. send matched packets, check the packets are dropped
+   send mismatched packets, check the packets are not dropped.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are not dropped.
+   check there is no rule listed.
+
+Subcase 5: MAC_IPV6_ESP mark+rss
+-----------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 dst is 2001::1 dst is 2001::2 / esp spi is 7 / end actions mark id 2 / rss / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 6: MAC_IPV6_ESP mark
 ----------------------------
 
 1. create filter rules::
 
-    flow create 0 ingress pattern eth / ipv6 / esp spi is 7 / end actions mark id 15 / end
+    flow create 0 ingress pattern eth / ipv6 dst is 2001::1 dst is 2001::2 / esp spi is 7 / end actions mark id 15 / end
 
 2. send matched packets, check the packets are received with FDIR matched ID.
    send mismatched packets, check the packets are received without FDIR matched ID.
@@ -3834,7 +3925,7 @@ Subcase 1: MAC_IPV4_NAT-T-ESP queue index
 
 1. create filter rules::
 
-    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / esp spi is 2 / end actions queue index 13 / mark id 7 / end
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions queue index 13 / mark id 7 / end
 
 2. send matched packets, check the packets are distributed to queue 13 with FDIR matched ID.
    send mismatched packets, check the packets are not distributed to queue 13 without FDIR matched ID.
@@ -3856,7 +3947,7 @@ Subcase 2: MAC_IPV4_NAT-T-ESP rss queues
 
 1. create filter rules::
 
-    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / esp spi is 2 / end actions rss queues 1 2 3 4 end / mark id 6 / end
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end
 
 2. send matched packets, check the packets are distributed to queue 1 or 2 or 3 or 4 with FDIR matched ID.
    send mismatched packets, check the packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
@@ -3866,12 +3957,57 @@ Subcase 2: MAC_IPV4_NAT-T-ESP rss queues
 4. verify matched packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
    check there is no rule listed.
 
-Subcase 3: MAC_IPV4_NAT-T-ESP mark
-----------------------------------
+Subcase 3: MAC_IPV4_NAT-T-ESP passthru
+-----------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions passthru / mark id 1 / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 4: MAC_IPV4_NAT-T-ESP drop
+-------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions drop / end
+
+2. send matched packets, check the packets are dropped
+   send mismatched packets, check the packets are not dropped.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are not dropped.
+   check there is no rule listed.
+
+Subcase 5: MAC_IPV4_NAT-T-ESP mark+rss
+-----------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions mark id 2 / rss / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 6: MAC_IPV4_NAT-T-ESP mark
+-----------------------------------
 
 1. create filter rules::
 
-    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / esp spi is 2 / end actions mark id 15 / end
+    flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions mark id 15 / end
 
 2. send matched packets, check the packets are received with FDIR matched ID.
    send mismatched packets, check the packets are received without FDIR matched ID.
@@ -3890,7 +4026,7 @@ Subcase 1: MAC_IPV6_NAT-T-ESP queue index
 
 1. create filter rules::
 
-    flow create 0 ingress pattern eth / ipv6 src is 192.168.0.20 / udp / esp spi is 2 / end actions queue index 13 / mark id 7 / end
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions queue index 13 / mark id 7 / end
 
 2. send matched packets, check the packets are distributed to queue 13 with FDIR matched ID.
    send mismatched packets, check the packets are not distributed to queue 13 without FDIR matched ID.
@@ -3912,7 +4048,7 @@ Subcase 2: MAC_IPV6_NAT-T-ESP rss queues
 
 1. create filter rules::
 
-    flow create 0 ingress pattern eth / ipv6 src is 192.168.0.20 / udp / esp spi is 2 / end actions rss queues 1 2 3 4 end / mark id 6 / end
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end
 
 2. send matched packets, check the packets are distributed to queue 1 or 2 or 3 or 4 with FDIR matched ID.
    send mismatched packets, check the packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
@@ -3922,12 +4058,57 @@ Subcase 2: MAC_IPV6_NAT-T-ESP rss queues
 4. verify matched packets are not distributed to queue 1 or 2 or 3 or 4 without FDIR matched ID.
    check there is no rule listed.
 
-Subcase 3: MAC_IPV6_NAT-T-ESP mark
+Subcase 3: MAC_IPV6_NAT-T-ESP passthru
+-----------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions passthru / mark id 1 / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 4: MAC_IPV6_NAT-T-ESP drop
+-------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions drop / end
+
+2. send matched packets, check the packets are dropped
+   send mismatched packets, check the packets are not dropped.
+
+3. repeat step 3 of subcase 1.
+
+4. verify matched packets are not dropped.
+   check there is no rule listed.
+
+Subcase 5: MAC_IPV6_NAT-T-ESP mark+rss
+-----------------------------------------
+
+1. create filter rules::
+
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions mark id 2 / rss / end
+
+2. send matched packets, check the packets are distributed by RSS with FDIR matched ID.
+   send mismatched 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 to the same queue without FDIR matched ID.
+   check there is no rule listed.
+
+Subcase 6: MAC_IPV6_NAT-T-ESP mark
 ----------------------------------
 
 1. create filter rules::
 
-    flow create 0 ingress pattern eth / ipv6 src is 192.168.0.20 / udp / esp spi is 2 / end actions mark id 15 / end
+    flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions mark id 15 / end
 
 2. send matched packets, check the packets are received with FDIR matched ID.
    send mismatched packets, check the packets are received without FDIR matched ID.
-- 
2.17.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [dts] [PATCH V3 3/4] tests/cvl_fdir:add esp flow test case
  2021-09-27 16:22 [dts] [PATCH V3 0/4] enable esp flow Zhimin Huang
  2021-09-27 16:22 ` [dts] [PATCH V3 1/4] test_plans/cvl_fdir_test_plan:add esp flow test plan Zhimin Huang
  2021-09-27 16:22 ` [dts] [PATCH V3 2/4] test_plans/iavf_fdir_test_plan:add " Zhimin Huang
@ 2021-09-27 16:22 ` Zhimin Huang
  2021-09-27 16:22 ` [dts] [PATCH V3 4/4] tests/iavf_fdir:add " Zhimin Huang
  3 siblings, 0 replies; 6+ messages in thread
From: Zhimin Huang @ 2021-09-27 16:22 UTC (permalink / raw)
  To: dts; +Cc: Zhimin Huang

add 21.08 new feature testcase,this feature support esp flow to match outer ip header.
take ip src/dst and spi for inputset,add 4 new cases in cvl_fdir test suite.

Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
---
 tests/TestSuite_cvl_fdir.py | 336 ++++++++++++++++++++++++++++++++++++
 1 file changed, 336 insertions(+)

diff --git a/tests/TestSuite_cvl_fdir.py b/tests/TestSuite_cvl_fdir.py
index 0c3a1917..9cf3c352 100644
--- a/tests/TestSuite_cvl_fdir.py
+++ b/tests/TestSuite_cvl_fdir.py
@@ -334,6 +334,50 @@ L2_Ethertype = [
     'Ether(dst="00:11:22:33:44:55",type=0x88f7)/"\\x00\\x02"',
     'Ether(dst="00:11:22:33:44:55",type=0x8847)']
 
+MAC_IPV4_ESP = {
+    "matched": [
+        "Ether(dst='00:11:22:33:44:55')/IP(src='192.168.0.20',dst='192.168.0.21',proto=50)/ESP(spi=7)/Raw('x'*480)",
+    ],
+    "unmatched": [
+        "Ether(dst='00:11:22:33:44:55')/IP(src='192.168.0.22',dst='192.168.0.21',proto=50)/ESP(spi=7)/Raw('x'*480)",
+        "Ether(dst='00:11:22:33:44:55')/IP(src='192.168.0.20',dst='192.168.0.11',proto=50)/ESP(spi=7)/Raw('x'*480)",
+        "Ether(dst='00:11:22:33:44:55')/IP(src='192.168.0.20',dst='192.168.0.21',proto=50)/ESP(spi=17)/Raw('x'*480)",
+    ]
+}
+
+MAC_IPV6_ESP = {
+    "matched": [
+        "Ether(dst='00:11:22:33:44:55')/IPv6(src='2001::1',dst='2001::2',nh=50)/ESP(spi=7)/Raw('x'*480)",
+    ],
+    "unmatched": [
+        "Ether(dst='00:11:22:33:44:55')/IPv6(src='1111:2222:3333:4444:5555:6666:7777:8888',dst='2001::2',nh=50)/ESP(spi=7)/Raw('x'*480)",
+        "Ether(dst='00:11:22:33:44:55')/IPv6(src='2001::1',dst='1111:2222:3333:4444:5555:6666:7777:9999',nh=50)/ESP(spi=7)/Raw('x'*480)",
+        "Ether(dst='00:11:22:33:44:55')/IPv6(src='2001::1',dst='2001::2',nh=50)/ESP(spi=17)/Raw('x'*480)",
+    ]
+}
+
+MAC_IPV4_NAT_T_ESP = {
+    "matched": [
+        "Ether(dst='00:11:22:33:44:55')/IP(src='192.168.0.20',dst='192.168.0.21')/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480)",
+    ],
+    "unmatched": [
+        "Ether(dst='00:11:22:33:44:55')/IP(src='192.168.0.22',dst='192.168.0.21')/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480)",
+        "Ether(dst='00:11:22:33:44:55')/IP(src='192.168.0.20',dst='192.168.0.11')/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480)",
+        "Ether(dst='00:11:22:33:44:55')/IP(src='192.168.0.20',dst='192.168.0.21')/UDP(dport=4500)/ESP(spi=77)/Raw('x'*480)",
+    ]
+}
+
+MAC_IPV6_NAT_T_ESP = {
+    "matched": [
+        "Ether(dst='00:11:22:33:44:55')/IPv6(src='2001::1',dst='2001::2')/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480)",
+    ],
+    "unmatched": [
+        "Ether(dst='00:11:22:33:44:55')/IPv6(src='2001::8',dst='2001::2')/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480)",
+        "Ether(dst='00:11:22:33:44:55')/IPv6(src='2001::1',dst='2001::9')/UDP(dport=4500)/ESP(spi=7)/Raw('x'*480)",
+        "Ether(dst='00:11:22:33:44:55')/IPv6(src='2001::1',dst='2001::2')/UDP(dport=4500)/ESP(spi=77)/Raw('x'*480)",
+    ]
+}
+
 tv_mac_ipv4_pay_queue_index = {
     "name": "test_mac_ipv4_pay_queue_index",
     "rule": "flow create 0 ingress pattern eth dst is 00:11:22:33:44:55 / ipv4 src is 192.168.0.20 dst is 192.168.0.21 proto is 255 ttl is 2 tos is 4 / end actions queue index 1 / end",
@@ -2148,6 +2192,282 @@ vectors_l2_ethertype = [tv_l2_ethertype_queue_index,
                         tv_l2_ethertype_mark_rss,
                         tv_l2_ethertype_mark]
 
+tv_mac_ipv4_esp_queue_index = {
+    "name": "tv_mac_ipv4_esp_queue_index",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions queue index 13 / mark id 7 / end",
+    "scapy_str": {"match": MAC_IPV4_ESP['matched'],
+                  "unmatched": MAC_IPV4_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 7, "queue": 13}
+}
+
+tv_mac_ipv4_esp_queue_group = {
+    "name": "tv_mac_ipv4_esp_queue_group",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end",
+    "scapy_str": {"match": MAC_IPV4_ESP['matched'],
+                  "unmatched": MAC_IPV4_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 6, "queue": [1, 2, 3, 4]}
+}
+
+tv_mac_ipv4_esp_passthru = {
+    "name": "tv_mac_ipv4_esp_passthru",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions passthru / mark id 1 / end",
+    "scapy_str": {"match": MAC_IPV4_ESP['matched'],
+                  "unmatched": MAC_IPV4_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "rss": True, "mark_id": 1}
+}
+
+tv_mac_ipv4_esp_drop = {
+    "name": "tv_mac_ipv4_esp_drop",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions drop / end",
+    "scapy_str": {"match": MAC_IPV4_ESP['matched'],
+                  "unmatched": MAC_IPV4_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "drop": 1}
+}
+
+tv_mac_ipv4_esp_mark_rss = {
+    "name": "tv_mac_ipv4_esp_mark_rss",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions mark id 2 / rss / end",
+    "scapy_str": {"match": MAC_IPV4_ESP['matched'],
+                  "unmatched": MAC_IPV4_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 2, "rss": True}
+}
+
+tv_mac_ipv4_esp_mark = {
+    "name": "tv_mac_ipv4_esp_mark",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions mark id 15 / end",
+    "scapy_str": {"match": MAC_IPV4_ESP['matched'],
+                  "unmatched": MAC_IPV4_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 15}
+}
+
+vectors_mac_ipv4_esp = [
+    tv_mac_ipv4_esp_queue_index,
+    tv_mac_ipv4_esp_queue_group,
+    tv_mac_ipv4_esp_passthru,
+    tv_mac_ipv4_esp_drop,
+    tv_mac_ipv4_esp_mark_rss,
+    tv_mac_ipv4_esp_mark,
+]
+
+tv_mac_ipv6_esp_queue_index = {
+    "name": "tv_mac_ipv6_esp_queue_index",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions queue index 13 / mark id 7 / end",
+    "scapy_str": {"match": MAC_IPV6_ESP['matched'],
+                  "unmatched": MAC_IPV6_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 7, "queue": 13}
+}
+
+tv_mac_ipv6_esp_queue_group = {
+    "name": "tv_mac_ipv6_esp_queue_group",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end",
+    "scapy_str": {"match": MAC_IPV6_ESP['matched'],
+                  "unmatched": MAC_IPV6_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 6, "queue": [1, 2, 3, 4]}
+}
+
+tv_mac_ipv6_esp_passthru = {
+    "name": "tv_mac_ipv6_esp_passthru",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions passthru / mark id 1 / end",
+    "scapy_str": {"match": MAC_IPV6_ESP['matched'],
+                  "unmatched": MAC_IPV6_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "rss": True, "mark_id": 1}
+}
+
+tv_mac_ipv6_esp_drop = {
+    "name": "tv_mac_ipv6_esp_drop",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions drop / end",
+    "scapy_str": {"match": MAC_IPV6_ESP['matched'],
+                  "unmatched": MAC_IPV6_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "drop": 1}
+}
+
+tv_mac_ipv6_esp_mark_rss = {
+    "name": "tv_mac_ipv6_esp_mark_rss",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions mark / rss / end",
+    "scapy_str": {"match": MAC_IPV6_ESP['matched'],
+                  "unmatched": MAC_IPV6_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 0, "rss": True}
+}
+
+tv_mac_ipv6_esp_mark = {
+    "name": "tv_mac_ipv6_esp_mark",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions mark id 15 / end",
+    "scapy_str": {"match": MAC_IPV6_ESP['matched'],
+                  "unmatched": MAC_IPV6_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 15}
+}
+
+vectors_mac_ipv6_esp = [
+    tv_mac_ipv6_esp_queue_index,
+    tv_mac_ipv6_esp_queue_group,
+    tv_mac_ipv6_esp_passthru,
+    tv_mac_ipv6_esp_drop,
+    tv_mac_ipv6_esp_mark_rss,
+    tv_mac_ipv6_esp_mark,
+]
+
+tv_mac_ipv4_nat_t_esp_queue_index = {
+    "name": "tv_mac_ipv4_nat_t_esp_queue_index",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions queue index 13 / mark id 7 / end",
+    "scapy_str": {"match": MAC_IPV4_NAT_T_ESP['matched'],
+                  "unmatched": MAC_IPV4_NAT_T_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 7, "queue": 13}
+}
+
+tv_mac_ipv4_nat_t_esp_queue_group = {
+    "name": "tv_mac_ipv4_nat_t_esp_queue_group",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end",
+    "scapy_str": {"match": MAC_IPV4_NAT_T_ESP['matched'],
+                  "unmatched": MAC_IPV4_NAT_T_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 6, "queue": [1, 2, 3, 4]}
+}
+
+tv_mac_ipv4_nat_t_esp_passthru = {
+    "name": "tv_mac_ipv4_nat_t_esp_passthru",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions passthru / mark id 1 / end",
+    "scapy_str": {"match": MAC_IPV4_NAT_T_ESP['matched'],
+                  "unmatched": MAC_IPV4_NAT_T_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "rss": True, "mark_id": 1}
+}
+
+tv_mac_ipv4_nat_t_esp_drop = {
+    "name": "tv_mac_ipv4_nat_t_esp_drop",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions drop / end",
+    "scapy_str": {"match": MAC_IPV4_NAT_T_ESP['matched'],
+                  "unmatched": MAC_IPV4_NAT_T_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "drop": 1}
+}
+
+tv_mac_ipv4_nat_t_esp_mark_rss = {
+    "name": "tv_mac_ipv4_nat_t_esp_mark_rss",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions mark id 2 / rss / end",
+    "scapy_str": {"match": MAC_IPV4_NAT_T_ESP['matched'],
+                  "unmatched": MAC_IPV4_NAT_T_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 2, "rss": True}
+}
+
+tv_mac_ipv4_nat_t_esp_mark = {
+    "name": "tv_mac_ipv4_nat_t_esp_mark",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions mark id 15 / end",
+    "scapy_str": {"match": MAC_IPV4_NAT_T_ESP['matched'],
+                  "unmatched": MAC_IPV4_NAT_T_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 15}
+}
+
+vectors_mac_ipv4_nat_t_esp = [
+    tv_mac_ipv4_nat_t_esp_queue_index,
+    tv_mac_ipv4_nat_t_esp_queue_group,
+    tv_mac_ipv4_nat_t_esp_passthru,
+    tv_mac_ipv4_nat_t_esp_drop,
+    tv_mac_ipv4_nat_t_esp_mark_rss,
+    tv_mac_ipv4_nat_t_esp_mark,
+]
+
+tv_mac_ipv6_nat_t_esp_queue_index = {
+    "name": "tv_mac_ipv6_nat_t_esp_queue_index",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions queue index 13 / mark id 7 / end",
+    "scapy_str": {"match": MAC_IPV6_NAT_T_ESP['matched'],
+                  "unmatched": MAC_IPV6_NAT_T_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 7, "queue": 13}
+}
+
+tv_mac_ipv6_nat_t_esp_queue_group = {
+    "name": "tv_mac_ipv6_nat_t_esp_queue_group",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end",
+    "scapy_str": {"match": MAC_IPV6_NAT_T_ESP['matched'],
+                  "unmatched": MAC_IPV6_NAT_T_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 6, "queue": [1, 2, 3, 4]}
+}
+
+tv_mac_ipv6_nat_t_esp_passthru = {
+    "name": "tv_mac_ipv6_nat_t_esp_passthru",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions passthru / mark id 1 / end",
+    "scapy_str": {"match": MAC_IPV6_NAT_T_ESP['matched'],
+                  "unmatched": MAC_IPV6_NAT_T_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "rss": True, "mark_id": 1}
+}
+
+tv_mac_ipv6_nat_t_esp_drop = {
+    "name": "tv_mac_ipv6_nat_t_esp_drop",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions drop / end",
+    "scapy_str": {"match": MAC_IPV6_NAT_T_ESP['matched'],
+                  "unmatched": MAC_IPV6_NAT_T_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "drop": 1}
+}
+
+tv_mac_ipv6_nat_t_esp_mark_rss = {
+    "name": "tv_mac_ipv6_nat_t_esp_mark_rss",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions mark id 2 / rss / end",
+    "scapy_str": {"match": MAC_IPV6_NAT_T_ESP['matched'],
+                  "unmatched": MAC_IPV6_NAT_T_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 2, "rss": True}
+}
+
+tv_mac_ipv6_nat_t_esp_mark = {
+    "name": "tv_mac_ipv6_nat_t_esp_mark",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions mark id 15 / end",
+    "scapy_str": {"match": MAC_IPV6_NAT_T_ESP['matched'],
+                  "unmatched": MAC_IPV6_NAT_T_ESP['unmatched'],
+                  },
+    "check_func": rfc.check_mark,
+    "check_param": {"port_id": 0, "mark_id": 15}
+}
+
+vectors_mac_ipv6_nat_t_esp = [
+    tv_mac_ipv6_nat_t_esp_queue_index,
+    tv_mac_ipv6_nat_t_esp_queue_group,
+    tv_mac_ipv6_nat_t_esp_passthru,
+    tv_mac_ipv6_nat_t_esp_drop,
+    tv_mac_ipv6_nat_t_esp_mark_rss,
+    tv_mac_ipv6_nat_t_esp_mark,
+]
+
 class TestCVLFdir(TestCase):
 
     def query_count(self, hits_set, hits, port_id=0, rule_id=0):
@@ -3183,6 +3503,22 @@ class TestCVLFdir(TestCase):
     def test_l2_ethertype(self):
         self._multirules_process(vectors_l2_ethertype)
 
+    @skip_unsupported_pkg('os default')
+    def test_mac_ipv4_esp(self):
+        self._rte_flow_validate(vectors_mac_ipv4_esp)
+
+    @skip_unsupported_pkg('os default')
+    def test_mac_ipv6_esp(self):
+        self._rte_flow_validate(vectors_mac_ipv6_esp)
+
+    @skip_unsupported_pkg('os default')
+    def test_mac_ipv4_nat_t_esp(self):
+        self._rte_flow_validate(vectors_mac_ipv4_nat_t_esp)
+
+    @skip_unsupported_pkg('os default')
+    def test_mac_ipv6_nat_t_esp(self):
+        self._rte_flow_validate(vectors_mac_ipv6_nat_t_esp)
+
     def test_unsupported_ethertype(self):
         rule = ['flow create 0 ingress pattern eth type is 0x0800 / end actions queue index 1 / end',
                 'flow create 0 ingress pattern eth type is 0x86dd / end actions queue index 1 / end']
-- 
2.17.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [dts] [PATCH V3 4/4] tests/iavf_fdir:add esp flow test case
  2021-09-27 16:22 [dts] [PATCH V3 0/4] enable esp flow Zhimin Huang
                   ` (2 preceding siblings ...)
  2021-09-27 16:22 ` [dts] [PATCH V3 3/4] tests/cvl_fdir:add esp flow test case Zhimin Huang
@ 2021-09-27 16:22 ` Zhimin Huang
  2021-09-28  1:06   ` Tu, Lijuan
  3 siblings, 1 reply; 6+ messages in thread
From: Zhimin Huang @ 2021-09-27 16:22 UTC (permalink / raw)
  To: dts; +Cc: Zhimin Huang

add 21.08 new feature testcase,this feature support esp flow to match outer ip header.
take ip src/dst and spi for inputset,add 4 new cases in iavf_fdir test suite.

Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>
---
 tests/TestSuite_iavf_fdir.py | 162 +++++++++++++++++++++++++++--------
 1 file changed, 128 insertions(+), 34 deletions(-)

diff --git a/tests/TestSuite_iavf_fdir.py b/tests/TestSuite_iavf_fdir.py
index aecb39ca..7f8dace3 100755
--- a/tests/TestSuite_iavf_fdir.py
+++ b/tests/TestSuite_iavf_fdir.py
@@ -274,18 +274,22 @@ MAC_IPV6_L2TPv3 = {
 
 MAC_IPV4_ESP = {
     "match": [
-        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.3",proto=50)/ESP(spi=7)/Raw("x"*480)',
-        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.1.3",proto=50)/ESP(spi=7)/Raw("x"*480)'],
+        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21",proto=50)/ESP(spi=7)/Raw("x"*480)'],
     "mismatch": [
-        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.3",proto=50)/ESP(spi=17)/Raw("x"*480)']
+        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.22",dst="192.168.0.21",proto=50)/ESP(spi=7)/Raw("x"*480)',
+        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.11",proto=50)/ESP(spi=7)/Raw("x"*480)',
+        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21",proto=50)/ESP(spi=17)/Raw("x"*480)'
+    ]
 }
 
 MAC_IPV6_ESP = {
     "match": [
-        'Ether(dst="00:11:22:33:44:55")/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888",nh=50)/ESP(spi=7)/Raw("x"*480)',
-        'Ether(dst="00:11:22:33:44:55")/IPv6(src="1111:2222:3333:4444:5555:6666:7777:9999",nh=50)/ESP(spi=7)/Raw("x"*480)'],
+        'Ether(dst="00:11:22:33:44:55")/IPv6(src="2001::1",dst="2001::2",nh=50)/ESP(spi=7)/Raw("x"*480)'],
     "mismatch": [
-        'Ether(dst="00:11:22:33:44:55")/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888",nh=50)/ESP(spi=17)/Raw("x"*480)']
+        'Ether(dst="00:11:22:33:44:55")/IPv6(src="2001::8",dst="2001::2",nh=50)/ESP(spi=7)/Raw("x"*480)',
+        'Ether(dst="00:11:22:33:44:55")/IPv6(src="2001::1",dst="2001::9",nh=50)/ESP(spi=7)/Raw("x"*480)',
+        'Ether(dst="00:11:22:33:44:55")/IPv6(src="2001::1",dst="2001::2",nh=50)/ESP(spi=17)/Raw("x"*480)'
+    ]
 }
 
 MAC_IPV4_AH = {
@@ -306,20 +310,20 @@ MAC_IPV6_AH = {
 
 MAC_IPV4_NAT_T_ESP = {
     "match": [
-        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20")/UDP(dport=4500)/ESP(spi=2)/Raw("x"*480)'],
+        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(dport=4500)/ESP(spi=7)/Raw("x"*480)'],
     "mismatch": [
-        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.10.20")/UDP(dport=4500)/ESP(spi=2)/Raw("x"*480)',
-        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20")/UDP(dport=4500)/ESP(spi=12)/Raw("x"*480)',
-        'Ether(dst="00:11:22:33:44:55")/IP(dst="192.168.0.20")/UDP(dport=4500)/ESP(spi=2)/Raw("x"*480)']
+        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.22",dst="192.168.0.21")/UDP(dport=4500)/ESP(spi=7)/Raw("x"*480)',
+        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.11")/UDP(dport=4500)/ESP(spi=7)/Raw("x"*480)',
+        'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.20",dst="192.168.0.21")/UDP(dport=4500)/ESP(spi=17)/Raw("x"*480)']
 }
 
 MAC_IPV6_NAT_T_ESP = {
     "match": [
-        'Ether(dst="00:11:22:33:44:55")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888")/UDP(dport=4500)/ESP(spi=2)/Raw("x"*480)'],
+        'Ether(dst="00:11:22:33:44:55")/IPv6(src="2001::1",dst="2001::2")/UDP(dport=4500)/ESP(spi=7)/Raw("x"*480)'],
     "mismatch": [
-        'Ether(dst="00:11:22:33:44:55")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:8888")/UDP(dport=4500)/ESP(spi=12)/Raw("x"*480)',
-        'Ether(dst="00:11:22:33:44:55")/IPv6(dst="1111:2222:3333:4444:5555:6666:7777:9999")/UDP(dport=4500)/ESP(spi=2)/Raw("x"*480)',
-        'Ether(dst="00:11:22:33:44:55")/IPv6(src="1111:2222:3333:4444:5555:6666:7777:8888")/UDP(dport=4500)/ESP(spi=2)/Raw("x"*480)']
+        'Ether(dst="00:11:22:33:44:55")/IPv6(src="2001::8",dst="2001::2")/UDP(dport=4500)/ESP(spi=7)/Raw("x"*480)',
+        'Ether(dst="00:11:22:33:44:55")/IPv6(src="2001::1",dst="2001::9")/UDP(dport=4500)/ESP(spi=7)/Raw("x"*480)',
+        'Ether(dst="00:11:22:33:44:55")/IPv6(src="2001::1",dst="2001::2")/UDP(dport=4500)/ESP(spi=17)/Raw("x"*480)']
 }
 
 L2_Ethertype = [
@@ -2126,44 +2130,86 @@ tv_mac_ipv6_l2tpv3_mark = {
 
 tv_mac_ipv4_esp_queue_index = {
     "name": "test_mac_ipv4_esp_queue_index",
-    "rule": "flow create 0 ingress pattern eth / ipv4 / esp spi is 7 / end actions queue index 13 / mark id 7 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions queue index 13 / mark id 7 / end",
     "scapy_str": MAC_IPV4_ESP,
     "check_param": {"port_id": 0, "queue": 13, "mark_id": 7}
 }
 
 tv_mac_ipv4_esp_queue_group = {
     "name": "test_mac_ipv4_esp_queue_group",
-    "rule": "flow create 0 ingress pattern eth / ipv4 / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end",
     "scapy_str": MAC_IPV4_ESP,
     "check_param": {"port_id": 0, "queue": [1, 2, 3, 4], "mark_id": 6}
 }
 
+tv_mac_ipv4_esp_passthru = {
+    "name": "test_mac_ipv4_esp_passthru",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions passthru / mark id 1 / end",
+    "scapy_str": MAC_IPV4_ESP,
+    "check_param": {"port_id": 0, "passthru": 1, "mark_id": 1}
+}
+
+tv_mac_ipv4_esp_drop = {
+    "name": "test_mac_ipv4_esp_drop",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions drop / end",
+    "scapy_str": MAC_IPV4_ESP,
+    "check_param": {"port_id": 0, "drop": 1}
+}
+
+tv_mac_ipv4_esp_mark_rss = {
+    "name": "test_mac_ipv4_esp_mark_rss",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions mark id 2 / rss / end",
+    "scapy_str": MAC_IPV4_ESP,
+    "check_param": {"port_id": 0, "passthru": 1, "mark_id": 2}
+}
+
 tv_mac_ipv4_esp_mark = {
     "name": "test_mac_ipv4_esp_mark",
-    "rule": "flow create 0 ingress pattern eth / ipv4 / esp spi is 7 / end actions mark id 15 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / esp spi is 7 / end actions mark id 15 / end",
     "scapy_str": MAC_IPV4_ESP,
-    "check_param": {"port_id": 0, "passthru": 1, "mark_id": 15}
+    "check_param": {"port_id": 0, "mark_id": 15}
 }
 
 tv_mac_ipv6_esp_queue_index = {
     "name": "test_mac_ipv6_esp_queue_index",
-    "rule": "flow create 0 ingress pattern eth / ipv6 / esp spi is 7 / end actions queue index 13 / mark id 7 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions queue index 13 / mark id 7 / end",
     "scapy_str": MAC_IPV6_ESP,
     "check_param": {"port_id": 0, "queue": 13, "mark_id": 7}
 }
 
 tv_mac_ipv6_esp_queue_group = {
     "name": "test_mac_ipv6_esp_queue_group",
-    "rule": "flow create 0 ingress pattern eth / ipv6 / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end",
     "scapy_str": MAC_IPV6_ESP,
     "check_param": {"port_id": 0, "queue": [1, 2, 3, 4], "mark_id": 6}
 }
 
+tv_mac_ipv6_esp_passthru = {
+    "name": "test_mac_ipv6_esp_passthru",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions passthru / mark id 1 / end",
+    "scapy_str": MAC_IPV6_ESP,
+    "check_param": {"port_id": 0, "passthru": 1, "mark_id": 1}
+}
+
+tv_mac_ipv6_esp_drop = {
+    "name": "test_mac_ipv6_esp_drop",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions drop / end",
+    "scapy_str": MAC_IPV6_ESP,
+    "check_param": {"port_id": 0, "drop": 1}
+}
+
+tv_mac_ipv6_esp_mark_rss = {
+    "name": "test_mac_ipv6_esp_mark_rss",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions mark id 2 / rss / end",
+    "scapy_str": MAC_IPV6_ESP,
+    "check_param": {"port_id": 0, "passthru": 1, "mark_id": 2}
+}
+
 tv_mac_ipv6_esp_mark = {
     "name": "test_mac_ipv6_esp_mark",
-    "rule": "flow create 0 ingress pattern eth / ipv6 / esp spi is 7 / end actions mark id 15 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / esp spi is 7 / end actions mark id 15 / end",
     "scapy_str": MAC_IPV6_ESP,
-    "check_param": {"port_id": 0, "passthru": 1, "mark_id": 15}
+    "check_param": {"port_id": 0, "mark_id": 15}
 }
 
 tv_mac_ipv4_ah_queue_index = {
@@ -2210,44 +2256,86 @@ tv_mac_ipv6_ah_mark = {
 
 tv_mac_ipv4_nat_t_esp_queue_index = {
     "name": "test_mac_ipv4_nat_t_esp_queue_index",
-    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / esp spi is 2 / end actions queue index 13 / mark id 7 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions queue index 13 / mark id 7 / end",
     "scapy_str": MAC_IPV4_NAT_T_ESP,
     "check_param": {"port_id": 0, "queue": 13, "mark_id": 7}
 }
 
 tv_mac_ipv4_nat_t_esp_queue_group = {
     "name": "test_mac_ipv4_nat_t_esp_queue_group",
-    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / esp spi is 2 / end actions rss queues 1 2 3 4 end / mark id 6 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end",
     "scapy_str": MAC_IPV4_NAT_T_ESP,
     "check_param": {"port_id": 0, "queue": [1, 2, 3, 4], "mark_id": 6}
 }
 
+tv_mac_ipv4_nat_t_esp_passthru = {
+    "name": "test_mac_ipv4_nat_t_esp_passthru",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions passthru / mark id 1 / end",
+    "scapy_str": MAC_IPV4_NAT_T_ESP,
+    "check_param": {"port_id": 0, "passthru": 1, "mark_id": 1}
+}
+
+tv_mac_ipv4_nat_t_esp_drop = {
+    "name": "test_mac_ipv4_nat_t_esp_drop",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions drop / end",
+    "scapy_str": MAC_IPV4_NAT_T_ESP,
+    "check_param": {"port_id": 0, "drop": 1}
+}
+
+tv_mac_ipv4_nat_t_esp_mark_rss = {
+    "name": "test_mac_ipv4_nat_t_esp_mark_rss",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions mark id 2 / rss / end",
+    "scapy_str": MAC_IPV4_NAT_T_ESP,
+    "check_param": {"port_id": 0, "passthru": 1, "mark_id": 2}
+}
+
 tv_mac_ipv4_nat_t_esp_mark = {
     "name": "test_mac_ipv4_nat_t_esp_mark",
-    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 / udp / esp spi is 2 / end actions mark id 15 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv4 src is 192.168.0.20 dst is 192.168.0.21 / udp / esp spi is 7 / end actions mark id 15 / end",
     "scapy_str": MAC_IPV4_NAT_T_ESP,
-    "check_param": {"port_id": 0, "passthru": 1, "mark_id": 15}
+    "check_param": {"port_id": 0, "mark_id": 15}
 }
 
 tv_mac_ipv6_nat_t_esp_queue_index = {
     "name": "test_mac_ipv6_nat_t_esp_queue_index",
-    "rule": "flow create 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 2 / end actions queue index 13 / mark id 7 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions queue index 13 / mark id 7 / end",
     "scapy_str": MAC_IPV6_NAT_T_ESP,
     "check_param": {"port_id": 0, "queue": 13, "mark_id": 7}
 }
 
 tv_mac_ipv6_nat_t_esp_queue_group = {
     "name": "test_mac_ipv6_nat_t_esp_queue_group",
-    "rule": "flow create 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 2 / end actions rss queues 1 2 3 4 end / mark id 6 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions rss queues 1 2 3 4 end / mark id 6 / end",
     "scapy_str": MAC_IPV6_NAT_T_ESP,
     "check_param": {"port_id": 0, "queue": [1, 2, 3, 4], "mark_id": 6}
 }
 
+tv_mac_ipv6_nat_t_esp_passthru = {
+    "name": "test_mac_ipv6_nat_t_esp_passthru",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions passthru / mark id 1 / end",
+    "scapy_str": MAC_IPV6_NAT_T_ESP,
+    "check_param": {"port_id": 0, "passthru": 1, "mark_id": 1}
+}
+
+tv_mac_ipv6_nat_t_esp_drop = {
+    "name": "test_mac_ipv6_nat_t_esp_drop",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions drop / end",
+    "scapy_str": MAC_IPV6_NAT_T_ESP,
+    "check_param": {"port_id": 0, "drop": 1}
+}
+
+tv_mac_ipv6_nat_t_esp_mark_rss = {
+    "name": "test_mac_ipv6_nat_t_esp_mark_rss",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions mark id 2 / rss / end",
+    "scapy_str": MAC_IPV6_NAT_T_ESP,
+    "check_param": {"port_id": 0, "passthru": 1, "mark_id": 2}
+}
+
 tv_mac_ipv6_nat_t_esp_mark = {
     "name": "test_mac_ipv6_nat_t_esp_mark",
-    "rule": "flow create 0 ingress pattern eth / ipv6 dst is 1111:2222:3333:4444:5555:6666:7777:8888 / udp / esp spi is 2 / end actions mark id 15 / end",
+    "rule": "flow create 0 ingress pattern eth / ipv6 src is 2001::1 dst is 2001::2 / udp / esp spi is 7 / end actions mark id 15 / end",
     "scapy_str": MAC_IPV6_NAT_T_ESP,
-    "check_param": {"port_id": 0, "passthru": 1, "mark_id": 15}
+    "check_param": {"port_id": 0, "mark_id": 15}
 }
 
 # mac_ipv4_tcp_without_input_set
@@ -6902,17 +6990,23 @@ vectors_ipv4_l2tpv3 = [tv_mac_ipv4_l2tpv3_queue_index, tv_mac_ipv4_l2tpv3_queue_
 
 vectors_ipv6_l2tpv3 = [tv_mac_ipv6_l2tpv3_queue_index, tv_mac_ipv6_l2tpv3_queue_group, tv_mac_ipv6_l2tpv3_mark]
 
-vectors_ipv4_esp = [tv_mac_ipv4_esp_queue_index, tv_mac_ipv4_esp_queue_group, tv_mac_ipv4_esp_mark]
+vectors_ipv4_esp = [tv_mac_ipv4_esp_queue_index, tv_mac_ipv4_esp_queue_group, tv_mac_ipv4_esp_mark,
+                    tv_mac_ipv4_esp_drop, tv_mac_ipv4_esp_mark_rss, tv_mac_ipv4_esp_passthru]
 
-vectors_ipv6_esp = [tv_mac_ipv6_esp_queue_index, tv_mac_ipv6_esp_queue_group, tv_mac_ipv6_esp_mark]
+vectors_ipv6_esp = [tv_mac_ipv6_esp_queue_index, tv_mac_ipv6_esp_queue_group, tv_mac_ipv6_esp_mark,
+                    tv_mac_ipv6_esp_drop, tv_mac_ipv6_esp_mark_rss, tv_mac_ipv6_esp_passthru]
 
 vectors_ipv4_ah = [tv_mac_ipv4_ah_queue_index, tv_mac_ipv4_ah_queue_group, tv_mac_ipv4_ah_mark]
 
 vectors_ipv6_ah = [tv_mac_ipv6_ah_queue_index, tv_mac_ipv6_ah_queue_group, tv_mac_ipv6_ah_mark]
 
-vectors_ipv4_nat_t_esp = [tv_mac_ipv4_nat_t_esp_queue_index, tv_mac_ipv4_nat_t_esp_queue_group, tv_mac_ipv4_nat_t_esp_mark]
+vectors_ipv4_nat_t_esp = [tv_mac_ipv4_nat_t_esp_queue_index, tv_mac_ipv4_nat_t_esp_queue_group,
+                          tv_mac_ipv4_nat_t_esp_mark, tv_mac_ipv4_nat_t_esp_drop, tv_mac_ipv4_nat_t_esp_mark_rss,
+                          tv_mac_ipv4_nat_t_esp_passthru]
 
-vectors_ipv6_nat_t_esp = [tv_mac_ipv6_nat_t_esp_queue_index, tv_mac_ipv6_nat_t_esp_queue_group, tv_mac_ipv6_nat_t_esp_mark]
+vectors_ipv6_nat_t_esp = [tv_mac_ipv6_nat_t_esp_queue_index, tv_mac_ipv6_nat_t_esp_queue_group,
+                          tv_mac_ipv6_nat_t_esp_mark, tv_mac_ipv6_nat_t_esp_drop, tv_mac_ipv6_nat_t_esp_mark_rss,
+                          tv_mac_ipv6_nat_t_esp_passthru]
 
 vectors_ipv4_tcp_without_input_set = [tv_mac_ipv4_tcp_without_input_set_queue_index, tv_mac_ipv4_tcp_without_input_set_queue_group,
                                       tv_mac_ipv4_tcp_without_input_set_mark_rss, tv_mac_ipv4_tcp_without_input_set_passthru,
-- 
2.17.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dts] [PATCH V3 4/4] tests/iavf_fdir:add esp flow test case
  2021-09-27 16:22 ` [dts] [PATCH V3 4/4] tests/iavf_fdir:add " Zhimin Huang
@ 2021-09-28  1:06   ` Tu, Lijuan
  0 siblings, 0 replies; 6+ messages in thread
From: Tu, Lijuan @ 2021-09-28  1:06 UTC (permalink / raw)
  To: Huang, ZhiminX, dts; +Cc: Huang, ZhiminX

> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of Zhimin Huang
> Sent: 2021年9月28日 0:22
> To: dts@dpdk.org
> Cc: Huang, ZhiminX <zhiminx.huang@intel.com>
> Subject: [dts] [PATCH V3 4/4] tests/iavf_fdir:add esp flow test case
> 
> add 21.08 new feature testcase,this feature support esp flow to match outer ip
> header.
> take ip src/dst and spi for inputset,add 4 new cases in iavf_fdir test suite.
> 
> Signed-off-by: Zhimin Huang <zhiminx.huang@intel.com>

Applied, thnaks

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-09-28  1:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-27 16:22 [dts] [PATCH V3 0/4] enable esp flow Zhimin Huang
2021-09-27 16:22 ` [dts] [PATCH V3 1/4] test_plans/cvl_fdir_test_plan:add esp flow test plan Zhimin Huang
2021-09-27 16:22 ` [dts] [PATCH V3 2/4] test_plans/iavf_fdir_test_plan:add " Zhimin Huang
2021-09-27 16:22 ` [dts] [PATCH V3 3/4] tests/cvl_fdir:add esp flow test case Zhimin Huang
2021-09-27 16:22 ` [dts] [PATCH V3 4/4] tests/iavf_fdir:add " Zhimin Huang
2021-09-28  1:06   ` Tu, Lijuan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).