From: "Li, Tao" <tao.li06@sap.com>
To: "users@dpdk.org" <users@dpdk.org>
Subject: [net/mlx5] Failed to install async pattern template matching both src and dst IPv6 addresses (DPDK 24.11.2)
Date: Tue, 6 May 2025 07:05:13 +0000 [thread overview]
Message-ID: <DB8PR02MB5801B4C13EC62279D0044E2780892@DB8PR02MB5801.eurprd02.prod.outlook.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 2546 bytes --]
Hi All,
I am experimenting async template APIs to install flow rules to perform matching on IPv6 packets containing TCP payload, using DPDK 24.11.2. However, I found that creating a pattern template that tries to match both the source and destination IPv6 addresses results in an error. In the experiment, the following testpmd commands were used.
<Install async rules>
port stop 2
port stop 1
port stop 0
flow configure 2 queues_number 1 queues_size 10 counters_number 0 aging_counters_number 0 meters_number 0 flags 0
flow configure 0 queues_number 1 queues_size 10 counters_number 0 aging_counters_number 0 meters_number 0 flags 0
flow configure 1 queues_number 1 queues_size 10 counters_number 0 aging_counters_number 0 meters_number 0 flags 0
port start all
# command leading to the error, only matching src or dst address works
flow pattern_template 0 create transfer relaxed no pattern_template_id 10 template represented_port ethdev_port_id is 1 / eth type is 0x86dd / ipv6 dst is ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff src is ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff proto is 0x0006 / tcp src is 0xffff / end
flow actions_template 0 create transfer actions_template_id 10 template represented_port / end mask represented_port / end
flow template_table 0 create group 0 priority 0 transfer wire_orig table_id 5 rules_number 8 pattern_template 10 actions_template 10
flow queue 0 create 0 template_table 5 pattern_template 0 actions_template 0 postpone no pattern represented_port ethdev_port_id is 0 / eth type is 0x86dd / ipv6 dst is 2001:0db8:beef:0001::1src is fdbe:ef00:dead:beef::2 proto is 0x0006 / tcp src is 0x07d2 / end actions represented_port ethdev_port_id 2 / end
flow push 0 queue 0
</Install async rules>
The error emitted from the driver is:
<emitted error>
mlx5_net: [mlx5dr_matcher_create]: Failed to initialise matcher: 7
Pattern template #10 destroyed
port_flow_complain(): Caught PMD error type 1 (cause unspecified): failed to validate pattern template: Argument list too long
</emitted error>
One possible mitigation trick is to use two connected groups of flow rules to match the IPv6 source and destination addresses separately, which of course makes the template and flow rule creation more complicated. Thus, I would like to ask: is it the intended behavior, that matching of source and destination IPv6 addresses at a single pattern template is NOT supported, as observed in the above experiment?
Many thanks in advance.
Best regards,
Tao
[-- Attachment #2: Type: text/html, Size: 8254 bytes --]
reply other threads:[~2025-05-06 7:05 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=DB8PR02MB5801B4C13EC62279D0044E2780892@DB8PR02MB5801.eurprd02.prod.outlook.com \
--to=tao.li06@sap.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).