[dpdk-dev] [RFC v2 1/1] app/testpmd: distinguish ICMP identifier fields in packet
Li Zhang
lizh at nvidia.com
Wed Sep 23 04:39:04 CEST 2020
Yes, There is PMD code change to support it.
https://patchwork.dpdk.org/patch/78488/
-----Original Message-----
From: dev <dev-bounces at dpdk.org> On Behalf Of Ferruh Yigit
Sent: Tuesday, September 22, 2020 11:38 PM
To: Li Zhang <lizh at nvidia.com>; Dekel Peled <dekelp at nvidia.com>; Ori Kam <orika at nvidia.com>; Slava Ovsiienko <viacheslavo at nvidia.com>; Matan Azrad <matan at nvidia.com>
Cc: dev at dpdk.org; NBU-Contact-Thomas Monjalon <thomas at monjalon.net>; Raslan Darawsheh <rasland at nvidia.com>
Subject: Re: [dpdk-dev] [RFC v2 1/1] app/testpmd: distinguish ICMP identifier fields in packet
External email: Use caution opening links or attachments
On 9/9/2020 4:34 AM, Li Zhang wrote:
> From: lizh <lizh at nvidia.com>
>
> Ability to distinguish ICMP identifier fields in packets.
> Dstinguish ICMP sequence number field too.
> Already supports ICMP code and type fields in current version.
> Existing fields in ICMP header contain the required information.
> ICMP header already is supported and no code change in RTE FLOW.
> Extend testpmd CLI to include the fields of ident and sequence number.
> One example:
> flow create 0 ingress pattern eth / ipv4 /
> icmp code is 1 ident is 5 seq is 6 /
> end actions count / queue index 0 / end The ICMP packet with code 1,
> identifier 5 and sequence number 6 will be matched.
> It will implement action counter and forward to queue 0.
>
Overall looks good. @Ori, any objection?
@Li, is there any PMD implementation planned to use these icmp fields?
> Signed-off-by: Li Zhang <lizh at nvidia.com>
> ---
> app/test-pmd/cmdline_flow.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
> index 6263d307ed..6e04d538ea 100644
> --- a/app/test-pmd/cmdline_flow.c
> +++ b/app/test-pmd/cmdline_flow.c
> @@ -143,6 +143,8 @@ enum index {
> ITEM_ICMP,
> ITEM_ICMP_TYPE,
> ITEM_ICMP_CODE,
> + ITEM_ICMP_IDENT,
> + ITEM_ICMP_SEQ,
> ITEM_UDP,
> ITEM_UDP_SRC,
> ITEM_UDP_DST,
> @@ -893,6 +895,8 @@ static const enum index item_ipv6[] = {
> static const enum index item_icmp[] = {
> ITEM_ICMP_TYPE,
> ITEM_ICMP_CODE,
> + ITEM_ICMP_IDENT,
> + ITEM_ICMP_SEQ,
> ITEM_NEXT,
> ZERO,
> };
> @@ -2193,6 +2197,20 @@ static const struct token token_list[] = {
> .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp,
> hdr.icmp_code)),
> },
> + [ITEM_ICMP_IDENT] = {
> + .name = "ident",
> + .help = "ICMP packet identifier",
> + .next = NEXT(item_icmp, NEXT_ENTRY(UNSIGNED), item_param),
> + .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp,
> + hdr.icmp_ident)),
> + },
> + [ITEM_ICMP_SEQ] = {
> + .name = "seq",
> + .help = "ICMP packet sequence number",
> + .next = NEXT(item_icmp, NEXT_ENTRY(UNSIGNED), item_param),
> + .args = ARGS(ARGS_ENTRY_HTON(struct rte_flow_item_icmp,
> + hdr.icmp_seq_nb)),
> + },
> [ITEM_UDP] = {
> .name = "udp",
> .help = "match UDP header",
>
More information about the dev
mailing list