[dpdk-dev] [PATCH v2 2/3] app/testpmd: support PPPoL2TPv2oUDP RSS Hash
Ori Kam
orika at nvidia.com
Tue Oct 12 17:31:53 CEST 2021
Hi Jie,
> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> 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 <wenjun1.wu at intel.com>
> Signed-off-by: Jie Wang <jie1x.wang at intel.com>
> ---
> 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?
> 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)
> 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
More information about the dev
mailing list