From: Guillaume Nault <gnault@redhat.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: netdev@vger.kernel.org
Subject: [PATCH iproute2] utils: bump max args number to 256 for batch files
Date: Tue, 1 Jun 2021 19:09:31 +0200 [thread overview]
Message-ID: <4a0fcf72130d3ef5c4ca91b518f66ac6449cf57f.1622565590.git.gnault@redhat.com> (raw)
Large tc filters can have many arguments. For example the following
filter matches the first 7 MPLS LSEs, pops all of them, then updates
the Ethernet header and redirects the resulting packet to eth1.
filter add dev eth0 ingress handle 44 priority 100 \
protocol mpls_uc flower mpls \
lse depth 1 label 1040076 tc 4 bos 0 ttl 175 \
lse depth 2 label 89648 tc 2 bos 0 ttl 9 \
lse depth 3 label 63417 tc 5 bos 0 ttl 185 \
lse depth 4 label 593135 tc 5 bos 0 ttl 67 \
lse depth 5 label 857021 tc 0 bos 0 ttl 181 \
lse depth 6 label 239239 tc 1 bos 0 ttl 254 \
lse depth 7 label 30 tc 7 bos 1 ttl 237 \
action mpls pop protocol mpls_uc pipe \
action mpls pop protocol mpls_uc pipe \
action mpls pop protocol mpls_uc pipe \
action mpls pop protocol mpls_uc pipe \
action mpls pop protocol mpls_uc pipe \
action mpls pop protocol mpls_uc pipe \
action mpls pop protocol ipv6 pipe \
action vlan pop_eth pipe \
action vlan push_eth \
dst_mac 00:00:5e:00:53:7e \
src_mac 00:00:5e:00:53:03 pipe \
action mirred egress redirect dev eth1
This filter has 149 arguments, so it can't be used with tc -batch
which is limited to a 100.
Let's bump the limit to the next power of 2. That should leave a lot of
room for big batch commands.
Signed-off-by: Guillaume Nault <gnault@redhat.com>
---
Note: I have no production use case for MPLS stacks with 7 LSEs at the
moment, but 7 is the maximum depth the flow dissector can handle,
and having the possibility to express such rules with tc -batch
would help testing the kernel API (writing scripts that generate
filters, without worrying about the 100 parameters limit).
lib/utils.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/utils.c b/lib/utils.c
index 93ae0c55..d5496e45 100644
--- a/lib/utils.c
+++ b/lib/utils.c
@@ -1714,10 +1714,10 @@ int do_batch(const char *name, bool force,
cmdlineno = 0;
while (getcmdline(&line, &len, stdin) != -1) {
- char *largv[100];
+ char *largv[256];
int largc;
- largc = makeargs(line, largv, 100);
+ largc = makeargs(line, largv, 256);
if (!largc)
continue; /* blank line */
--
2.21.3
next reply other threads:[~2021-06-01 17:09 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-01 17:09 Guillaume Nault [this message]
2021-06-09 23:59 ` [PATCH iproute2] utils: bump max args number to 256 for batch files Stephen Hemminger
2021-06-10 7:58 ` Guillaume Nault
2021-06-10 23:17 ` Stephen Hemminger
2021-06-11 9:51 ` Guillaume Nault
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=4a0fcf72130d3ef5c4ca91b518f66ac6449cf57f.1622565590.git.gnault@redhat.com \
--to=gnault@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=stephen@networkplumber.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).