Thread (71 messages) 71 messages, 6 authors, 2021-10-21

Re: [dpdk-dev] [PATCH v2 2/3] app/testpmd: support PPPoL2TPv2oUDP RSS Hash

From: Wang, Jie1X <hidden>
Date: 2021-10-13 09:54:18

-----Original Message-----
From: Ori Kam <redacted>
Sent: Wednesday, October 13, 2021 5:15 PM
To: Wang, Jie1X <redacted>; dev@dpdk.org
Cc: Yigit, Ferruh <redacted>; NBU-Contact-Thomas Monjalon
[off-list ref]; andrew.rybchenko@oktetlabs.ru; Li, Xiaoyun
[off-list ref]; Yang, SteveX [off-list ref]; Wu, Jingjing
[off-list ref]; Xing, Beilei [off-list ref]; Wu, Wenjun1
[off-list ref]
Subject: RE: [dpdk-dev] [PATCH v2 2/3] app/testpmd: support PPPoL2TPv2oUDP
RSS Hash

Hi Wang,
quoted
-----Original Message-----
From: Wang, Jie1X <redacted>
Sent: Wednesday, October 13, 2021 11:16 AM

Subject: RE: [dpdk-dev] [PATCH v2 2/3] app/testpmd: support
PPPoL2TPv2oUDP RSS Hash


quoted
-----Original Message-----
From: Ori Kam <redacted>
Sent: Tuesday, October 12, 2021 11:32 PM
To: Wang, Jie1X <redacted>; dev@dpdk.org
Cc: Yigit, Ferruh <redacted>; NBU-Contact-Thomas
Monjalon [off-list ref]; andrew.rybchenko@oktetlabs.ru; Li,
Xiaoyun [off-list ref]; Yang, SteveX
[off-list ref]; Wu, Jingjing [off-list ref]; Xing,
Beilei [off-list ref]; Wu, Wenjun1 [off-list ref]
Subject: RE: [dpdk-dev] [PATCH v2 2/3] app/testpmd: support
PPPoL2TPv2oUDP RSS Hash

Hi Jie,
quoted
-----Original Message-----
From: dev <redacted> On Behalf Of Jie Wang
Sent: Tuesday, October 12, 2021 1:25 PM
Subject: [dpdk-dev] [PATCH v2 2/3] app/testpmd: support
PPPoL2TPv2oUDP RSS Hash

Add support for test-pmd to parse protocol pattern L2TPv2 and PPP.

Signed-off-by: Wenjun Wu <redacted>
Signed-off-by: Jie Wang <redacted>
---
 app/test-pmd/cmdline_flow.c | 34
++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
diff --git a/app/test-pmd/cmdline_flow.c
b/app/test-pmd/cmdline_flow.c index
bb22294dd3..3c9bcabd97 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -299,6 +299,8 @@ enum index {
 	ITEM_GENEVE_OPT_TYPE,
 	ITEM_GENEVE_OPT_LENGTH,
 	ITEM_GENEVE_OPT_DATA,
+	ITEM_PPP,
+	ITEM_L2TPV2,
 	ITEM_INTEGRITY,
 	ITEM_INTEGRITY_LEVEL,
 	ITEM_INTEGRITY_VALUE,
@@ -997,6 +999,8 @@ static const enum index next_item[] = {
 	ITEM_AH,
 	ITEM_PFCP,
 	ITEM_ECPRI,
+	ITEM_PPP,
+	ITEM_L2TPV2,
Why in the middle?
Ok, I will update it.
quoted
quoted
 	ITEM_GENEVE_OPT,
 	ITEM_INTEGRITY,
 	ITEM_CONNTRACK,
@@ -1368,6 +1372,16 @@ static const enum index item_integrity_lv[] = {
 	ZERO,
 };

+static const enum index item_ppp[] = {
+	ITEM_NEXT,
+	ZERO,
+};
+
+static const enum index item_l2tpv2[] = {
+	ITEM_NEXT,
+	ZERO,
+};
+
 static const enum index next_action[] = {
 	ACTION_END,
 	ACTION_VOID,
@@ -3579,6 +3593,20 @@ static const struct token token_list[] = {
 				(sizeof(struct rte_flow_item_geneve_opt),
 				ITEM_GENEVE_OPT_DATA_SIZE)),
 	},
+	[ITEM_PPP] = {
+		.name = "ppp",
+		.help = "match ppp header",
+		.priv = PRIV_ITEM(PPP, sizeof(struct rte_flow_item_ppp)),
+		.next = NEXT(item_ppp),
+		.call = parse_vc,
+	},
+	[ITEM_L2TPV2] = {
+		.name = "l2tpv2",
+		.help = "match l2tpv2 header",
+		.priv = PRIV_ITEM(L2TPV2, sizeof(struct rte_flow_item_l2tpv2)),
+		.next = NEXT(item_l2tpv2),
+		.call = parse_vc,
+	},
 	[ITEM_INTEGRITY] = {
 		.name = "integrity",
 		.help = "match packet integrity", @@ -8343,6 +8371,12 @@
flow_item_default_mask(const struct
rte_flow_item *item)
quoted
 	case RTE_FLOW_ITEM_TYPE_PFCP:
 		mask = &rte_flow_item_pfcp_mask;
 		break;
+	case RTE_FLOW_ITEM_TYPE_L2TPV2:
+		mask = &rte_flow_item_l2tpv2_mask;
+		break;
+	case RTE_FLOW_ITEM_TYPE_PPP:
+		mask = &rte_flow_item_ppp_mask;
+		break;
 	default:
 		break;
 	}
--
2.25.1
Maybe I'm missing something but I don't see that you added the
ability to match on any of the header fields value.
You also didn't update the code of encap (from my understanding this
is a tunnel
header)

Best,
Ori
Hi Ori,

This feature is only support for iavf enable PPPoL2TPv2oUDP rss. So it
doesn't need to add the ability to match on any of the header fields value and
the code of encap.
quoted
I'm not sure if it is necessary to add these.
You added a lot of fields in the rte_flow and you don't give any way to test them.
also Iike I said in previous patch what is the relation between matching items to
RSS?
You didn't add it to the RSS possible support.

Best,
Ori
The feature apply a RSS rule on L2TP data packet (include PPP over L2TP) with inner IP / port as input set.
It doesn't need match any L2TP field.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help