DPDK usage discussions
 help / color / mirror / Atom feed
From: Tony Hart <tony.hart@domainhart.com>
To: Dariusz Sosnowski <dsosnowski@nvidia.com>
Cc: "users@dpdk.org" <users@dpdk.org>
Subject: Re: RTE_FLOW not matching UDP ports in head fragments?
Date: Wed, 27 Mar 2024 05:45:47 -0400	[thread overview]
Message-ID: <CAC6tBwxrxkRCM10fGoNo81_xM0wYVpQ6wDtCm0MTuGf1R_vxDQ@mail.gmail.com> (raw)
In-Reply-To: <PH0PR12MB88006EA477AA822CD9232B0DA4352@PH0PR12MB8800.namprd12.prod.outlook.com>

Hi Dariusz,
Thanks for looking into this.

On Tue, Mar 26, 2024 at 8:57 AM Dariusz Sosnowski <dsosnowski@nvidia.com> wrote:
>
> Hi Tony,
>
> > -----Original Message-----
> > From: Tony Hart <tony.hart@domainhart.com>
> > Sent: Thursday, March 21, 2024 18:24
> > To: users@dpdk.org
> > Subject: RTE_FLOW not matching UDP ports in head fragments?
> >
> >
> > Using RTE_FLOW (with the asynchronous API) to match UDP packets coming
> > from a particular port and destination address.  This is on a Nvidia/Mellanox
> > CX6.  This works great whilst the packets are not fragmented, however, when
> > the packet is fragmented it does not match.
> > I was expecting that it would still match the head fragment since it still
> > contains the UDP header and hence the port (obviously I'm not expecting it to
> > match the tail fragment).
> >
> > Is this intended behavior (looking at the rte_mbuf_ptype code it suggests that
> > it is)?
> >
> >
> > In the script below I see the count for the first entry in group 3 increment for
> > the non-fragmented case but when the length of the
> > (otherwise) same packet is one byte longer than the MTIU, the counter of the
> > second group 3 entry is incremented instead.
> >
> > Thanks for any insights,
> > Tony
> >
> > FYI this is using the v24.03-rc2 dpdk release.
> >
> > port stop all
> > flow configure 0 queues_number 1 queues_size 64 counters_number 1000
> > port start all
> >
> > # PATTERN TEMPLATES
> > flow pattern_template 0 create pattern_template_id 0 ingress template end
> > flow pattern_template 0 create pattern_template_id 1 ingress template eth /
> > ipv4 dst mask 0xffffffff / udp src mask 0xffff / end
> >
> > # ACTION TEMPLATES
> > flow actions_template 0 create actions_template_id 0 template jump / end
> > mask jump / end flow actions_template 0 create actions_template_id 1
> > template count / drop / end mask count / drop / end
> >
> > # TEMPLATE TABLES
> > flow template_table 0 create table_id 0 group 0 priority 0 ingress
> > rules_number 1 pattern_template 0 actions_template 0 flow template_table 0
> > create table_id 8 group 3 priority 1 ingress rules_number 100
> > pattern_template 1 actions_template 1 flow template_table 0 create table_id
> > 9 group 3 priority 99 ingress rules_number 1 pattern_template 0
> > actions_template 1
> >
> > # GROUP 0
> > flow queue 0 create 0 template_table 0 pattern_template 0 actions_template
> > 0 postpone no pattern end actions jump group 3 / end
> >
> > # GROUP 3:
> > flow queue 0 create 0 template_table 8 pattern_template 0 actions_template
> > 0 postpone no pattern eth / ipv4 dst spec 2.2.3.1 / udp src spec 389 / end
> > actions count / drop / end flow queue 0 create 0 template_table 9
> > pattern_template 0 actions_template 0 postpone no pattern end actions
> > count / drop / end
>
> In this case the first fragment should be matched against the flow rule with ETH / IPV4 / UDP.
> I was able to reproduce the issue internally using the commands you provided.
> We'll investigate it and let you know.
>
> Best regards,
> Dariusz Sosnowski



-- 
tony

      reply	other threads:[~2024-03-27  9:46 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-21 17:23 Tony Hart
2024-03-26 12:57 ` Dariusz Sosnowski
2024-03-27  9:45   ` Tony Hart [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAC6tBwxrxkRCM10fGoNo81_xM0wYVpQ6wDtCm0MTuGf1R_vxDQ@mail.gmail.com \
    --to=tony.hart@domainhart.com \
    --cc=dsosnowski@nvidia.com \
    --cc=users@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).