]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
tc: pedit: parse_cmd: add flags argument
authorAsbjørn Sloth Tønnesen <asbjorn@asbjorn.st>
Fri, 18 Jun 2021 16:06:34 +0000 (16:06 +0000)
committerDavid Ahern <dsahern@kernel.org>
Sat, 26 Jun 2021 04:44:35 +0000 (04:44 +0000)
This patch just prepares the flags argument, so it's
available to the next patch.

Signed-off-by: Asbjørn Sloth Tønnesen <asbjorn@asbjorn.st>
Signed-off-by: David Ahern <dsahern@kernel.org>
tc/m_pedit.c
tc/m_pedit.h
tc/p_eth.c
tc/p_ip.c
tc/p_ip6.c
tc/p_tcp.c
tc/p_udp.c

index 74c91e8d2da9b4673adc6a22fd8f6a432a3fca24..b745c3793245bb098dff5a1c11c545b3b04622be 100644 (file)
@@ -330,7 +330,7 @@ static int parse_val(int *argc_p, char ***argv_p, __u32 *val, int type)
 }
 
 int parse_cmd(int *argc_p, char ***argv_p, __u32 len, int type, __u32 retain,
-             struct m_pedit_sel *sel, struct m_pedit_key *tkey)
+             struct m_pedit_sel *sel, struct m_pedit_key *tkey, int flags)
 {
        __u32 mask[4] = { 0 };
        __u32 val[4] = { 0 };
@@ -502,7 +502,7 @@ done:
                NEXT_ARG();
        }
 
-       res = parse_cmd(&argc, &argv, len, TU32, retain, sel, tkey);
+       res = parse_cmd(&argc, &argv, len, TU32, retain, sel, tkey, 0);
 
        *argc_p = argc;
        *argv_p = argv;
index 5d3628a70b99fafaf24c8eab7c2658f2a93bf0e3..7398f66d7a2295f64ce8f9933886d54916b07b0e 100644 (file)
@@ -73,5 +73,5 @@ struct m_pedit_util {
 
 int parse_cmd(int *argc_p, char ***argv_p, __u32 len, int type,
              __u32 retain,
-             struct m_pedit_sel *sel, struct m_pedit_key *tkey);
+             struct m_pedit_sel *sel, struct m_pedit_key *tkey, int flags);
 #endif
index 674f9c11202aa1c9224066626db4f6efa74c0dee..7b6b61f809d33faf49e0c27365e7525f0f9bccf9 100644 (file)
@@ -41,21 +41,21 @@ parse_eth(int *argc_p, char ***argv_p,
        if (strcmp(*argv, "type") == 0) {
                NEXT_ARG();
                tkey->off = 12;
-               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey);
+               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey, 0);
                goto done;
        }
 
        if (strcmp(*argv, "dst") == 0) {
                NEXT_ARG();
                tkey->off = 0;
-               res = parse_cmd(&argc, &argv, 6, TMAC, RU32, sel, tkey);
+               res = parse_cmd(&argc, &argv, 6, TMAC, RU32, sel, tkey, 0);
                goto done;
        }
 
        if (strcmp(*argv, "src") == 0) {
                NEXT_ARG();
                tkey->off = 6;
-               res = parse_cmd(&argc, &argv, 6, TMAC, RU32, sel, tkey);
+               res = parse_cmd(&argc, &argv, 6, TMAC, RU32, sel, tkey, 0);
                goto done;
        }
 
index c385ac6dbcaa312a7fd477820a1411825e60a5ac..2d1643d0be3f092b42305278fa4f619125e4f6a2 100644 (file)
--- a/tc/p_ip.c
+++ b/tc/p_ip.c
@@ -40,13 +40,13 @@ parse_ip(int *argc_p, char ***argv_p,
        if (strcmp(*argv, "src") == 0) {
                NEXT_ARG();
                tkey->off = 12;
-               res = parse_cmd(&argc, &argv, 4, TIPV4, RU32, sel, tkey);
+               res = parse_cmd(&argc, &argv, 4, TIPV4, RU32, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "dst") == 0) {
                NEXT_ARG();
                tkey->off = 16;
-               res = parse_cmd(&argc, &argv, 4, TIPV4, RU32, sel, tkey);
+               res = parse_cmd(&argc, &argv, 4, TIPV4, RU32, sel, tkey, 0);
                goto done;
        }
        /* jamal - look at these and make them either old or new
@@ -56,64 +56,64 @@ parse_ip(int *argc_p, char ***argv_p,
        if (strcmp(*argv, "tos") == 0 || matches(*argv, "dsfield") == 0) {
                NEXT_ARG();
                tkey->off = 1;
-               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "ihl") == 0) {
                NEXT_ARG();
                tkey->off = 0;
-               res = parse_cmd(&argc, &argv, 1, TU32, 0x0f, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, 0x0f, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "ttl") == 0) {
                NEXT_ARG();
                tkey->off = 8;
-               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "protocol") == 0) {
                NEXT_ARG();
                tkey->off = 9;
-               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey, 0);
                goto done;
        }
        /* jamal - fix this */
        if (matches(*argv, "precedence") == 0) {
                NEXT_ARG();
                tkey->off = 1;
-               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey, 0);
                goto done;
        }
        /* jamal - validate this at some point */
        if (strcmp(*argv, "nofrag") == 0) {
                NEXT_ARG();
                tkey->off = 6;
-               res = parse_cmd(&argc, &argv, 1, TU32, 0x3F, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, 0x3F, sel, tkey, 0);
                goto done;
        }
        /* jamal - validate this at some point */
        if (strcmp(*argv, "firstfrag") == 0) {
                NEXT_ARG();
                tkey->off = 6;
-               res = parse_cmd(&argc, &argv, 1, TU32, 0x1F, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, 0x1F, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "ce") == 0) {
                NEXT_ARG();
                tkey->off = 6;
-               res = parse_cmd(&argc, &argv, 1, TU32, 0x80, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, 0x80, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "df") == 0) {
                NEXT_ARG();
                tkey->off = 6;
-               res = parse_cmd(&argc, &argv, 1, TU32, 0x40, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, 0x40, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "mf") == 0) {
                NEXT_ARG();
                tkey->off = 6;
-               res = parse_cmd(&argc, &argv, 1, TU32, 0x20, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, 0x20, sel, tkey, 0);
                goto done;
        }
 
@@ -126,25 +126,25 @@ parse_ip(int *argc_p, char ***argv_p,
        if (strcmp(*argv, "dport") == 0) {
                NEXT_ARG();
                tkey->off = 22;
-               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey);
+               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "sport") == 0) {
                NEXT_ARG();
                tkey->off = 20;
-               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey);
+               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "icmp_type") == 0) {
                NEXT_ARG();
                tkey->off = 20;
-               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "icmp_code") == 0) {
                NEXT_ARG();
                tkey->off = 20;
-               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey, 0);
                goto done;
        }
        return -1;
index 83a6ae8183a7fe5594a3490289a5f755dba71425..f9d5d3b02b54d90ce838067e1f7833f3bb534b0b 100644 (file)
@@ -41,43 +41,43 @@ parse_ip6(int *argc_p, char ***argv_p,
        if (strcmp(*argv, "src") == 0) {
                NEXT_ARG();
                tkey->off = 8;
-               res = parse_cmd(&argc, &argv, 16, TIPV6, RU32, sel, tkey);
+               res = parse_cmd(&argc, &argv, 16, TIPV6, RU32, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "dst") == 0) {
                NEXT_ARG();
                tkey->off = 24;
-               res = parse_cmd(&argc, &argv, 16, TIPV6, RU32, sel, tkey);
+               res = parse_cmd(&argc, &argv, 16, TIPV6, RU32, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "flow_lbl") == 0) {
                NEXT_ARG();
                tkey->off = 0;
-               res = parse_cmd(&argc, &argv, 4, TU32, 0x0007ffff, sel, tkey);
+               res = parse_cmd(&argc, &argv, 4, TU32, 0x0007ffff, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "payload_len") == 0) {
                NEXT_ARG();
                tkey->off = 4;
-               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey);
+               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "nexthdr") == 0) {
                NEXT_ARG();
                tkey->off = 6;
-               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "hoplimit") == 0) {
                NEXT_ARG();
                tkey->off = 7;
-               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey, 0);
                goto done;
        }
        if (strcmp(*argv, "traffic_class") == 0) {
                NEXT_ARG();
                tkey->off = 1;
-               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey, 0);
 
                /* Shift the field by 4 bits on success. */
                if (!res) {
index d2dbfd719526609915805524835e9d82e0a63d1a..ec7b08a28c075a41515bbe20e69a83f979fea22b 100644 (file)
@@ -41,21 +41,21 @@ parse_tcp(int *argc_p, char ***argv_p,
        if (strcmp(*argv, "sport") == 0) {
                NEXT_ARG();
                tkey->off = 0;
-               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey);
+               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey, 0);
                goto done;
        }
 
        if (strcmp(*argv, "dport") == 0) {
                NEXT_ARG();
                tkey->off = 2;
-               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey);
+               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey, 0);
                goto done;
        }
 
        if (strcmp(*argv, "flags") == 0) {
                NEXT_ARG();
                tkey->off = 13;
-               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey);
+               res = parse_cmd(&argc, &argv, 1, TU32, RU8, sel, tkey, 0);
                goto done;
        }
 
index bab456de9831f3ee93ecd98ba8150e67406b05ce..742955e6d225ebabe316678d5a5167975354cf19 100644 (file)
@@ -41,14 +41,14 @@ parse_udp(int *argc_p, char ***argv_p,
        if (strcmp(*argv, "sport") == 0) {
                NEXT_ARG();
                tkey->off = 0;
-               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey);
+               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey, 0);
                goto done;
        }
 
        if (strcmp(*argv, "dport") == 0) {
                NEXT_ARG();
                tkey->off = 2;
-               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey);
+               res = parse_cmd(&argc, &argv, 2, TU32, RU16, sel, tkey, 0);
                goto done;
        }