mirror of
https://git.proxmox.com/git/mirror_iproute2
synced 2025-08-14 15:10:16 +00:00
tc: use action_a2n() everywhere
Signed-off-by: Phil Sutter <phil@nwl.cc>
This commit is contained in:
parent
53aadc5286
commit
69f5aff63c
22
tc/m_bpf.c
22
tc/m_bpf.c
@ -104,26 +104,8 @@ opt_bpf:
|
||||
NEXT_ARG_FWD();
|
||||
}
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "reclassify") == 0) {
|
||||
parm.action = TC_ACT_RECLASSIFY;
|
||||
NEXT_ARG_FWD();
|
||||
} else if (matches(*argv, "pipe") == 0) {
|
||||
parm.action = TC_ACT_PIPE;
|
||||
NEXT_ARG_FWD();
|
||||
} else if (matches(*argv, "drop") == 0 ||
|
||||
matches(*argv, "shot") == 0) {
|
||||
parm.action = TC_ACT_SHOT;
|
||||
NEXT_ARG_FWD();
|
||||
} else if (matches(*argv, "continue") == 0) {
|
||||
parm.action = TC_ACT_UNSPEC;
|
||||
NEXT_ARG_FWD();
|
||||
} else if (matches(*argv, "pass") == 0 ||
|
||||
matches(*argv, "ok") == 0) {
|
||||
parm.action = TC_ACT_OK;
|
||||
NEXT_ARG_FWD();
|
||||
}
|
||||
}
|
||||
if (argc && !action_a2n(*argv, &parm.action, false))
|
||||
NEXT_ARG_FWD();
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "index") == 0) {
|
||||
|
@ -81,31 +81,8 @@ parse_connmark(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
|
||||
}
|
||||
|
||||
sel.action = TC_ACT_PIPE;
|
||||
if (argc) {
|
||||
if (matches(*argv, "reclassify") == 0) {
|
||||
sel.action = TC_ACT_RECLASSIFY;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "pipe") == 0) {
|
||||
sel.action = TC_ACT_PIPE;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "drop") == 0 ||
|
||||
matches(*argv, "shot") == 0) {
|
||||
sel.action = TC_ACT_SHOT;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "continue") == 0) {
|
||||
sel.action = TC_ACT_UNSPEC;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "pass") == 0 ||
|
||||
matches(*argv, "ok") == 0) {
|
||||
sel.action = TC_ACT_OK;
|
||||
argc--;
|
||||
argv++;
|
||||
}
|
||||
}
|
||||
if (argc && !action_a2n(*argv, &sel.action, false))
|
||||
NEXT_ARG_FWD();
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "index") == 0) {
|
||||
|
27
tc/m_csum.c
27
tc/m_csum.c
@ -120,31 +120,8 @@ parse_csum(struct action_util *a, int *argc_p,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "reclassify") == 0) {
|
||||
sel.action = TC_ACT_RECLASSIFY;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "pipe") == 0) {
|
||||
sel.action = TC_ACT_PIPE;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "drop") == 0 ||
|
||||
matches(*argv, "shot") == 0) {
|
||||
sel.action = TC_ACT_SHOT;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "continue") == 0) {
|
||||
sel.action = TC_ACT_UNSPEC;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "pass") == 0 ||
|
||||
matches(*argv, "ok") == 0) {
|
||||
sel.action = TC_ACT_OK;
|
||||
argc--;
|
||||
argv++;
|
||||
}
|
||||
}
|
||||
if (argc && !action_a2n(*argv, &sel.action, false))
|
||||
NEXT_ARG_FWD();
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "index") == 0) {
|
||||
|
17
tc/m_gact.c
17
tc/m_gact.c
@ -71,22 +71,13 @@ usage(void)
|
||||
static int
|
||||
get_act(char ***argv_p)
|
||||
{
|
||||
char **argv = *argv_p;
|
||||
int n;
|
||||
|
||||
if (matches(*argv, "reclassify") == 0) {
|
||||
return TC_ACT_RECLASSIFY;
|
||||
} else if (matches(*argv, "drop") == 0 || matches(*argv, "shot") == 0) {
|
||||
return TC_ACT_SHOT;
|
||||
} else if (matches(*argv, "continue") == 0) {
|
||||
return TC_ACT_UNSPEC;
|
||||
} else if (matches(*argv, "pipe") == 0) {
|
||||
return TC_ACT_PIPE;
|
||||
} else if (matches(*argv, "pass") == 0 || matches(*argv, "ok") == 0) {
|
||||
return TC_ACT_OK;
|
||||
} else {
|
||||
fprintf(stderr, "bad action type %s\n", *argv);
|
||||
if (!action_a2n(**argv_p, &n, false)) {
|
||||
fprintf(stderr, "bad action type %s\n", **argv_p);
|
||||
return -10;
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
static int
|
||||
|
27
tc/m_ife.c
27
tc/m_ife.c
@ -146,31 +146,8 @@ static int parse_ife(struct action_util *a, int *argc_p, char ***argv_p,
|
||||
argv++;
|
||||
}
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "reclassify") == 0) {
|
||||
p.action = TC_ACT_RECLASSIFY;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "pipe") == 0) {
|
||||
p.action = TC_ACT_PIPE;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "drop") == 0 ||
|
||||
matches(*argv, "shot") == 0) {
|
||||
p.action = TC_ACT_SHOT;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "continue") == 0) {
|
||||
p.action = TC_ACT_UNSPEC;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "pass") == 0 ||
|
||||
matches(*argv, "ok") == 0) {
|
||||
p.action = TC_ACT_OK;
|
||||
argc--;
|
||||
argv++;
|
||||
}
|
||||
}
|
||||
if (argc && !action_a2n(*argv, &p.action, false))
|
||||
NEXT_ARG_FWD();
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "index") == 0) {
|
||||
|
@ -154,28 +154,9 @@ parse_egress(struct action_util *a, int *argc_p, char ***argv_p,
|
||||
}
|
||||
|
||||
|
||||
if (argc && p.eaction == TCA_EGRESS_MIRROR) {
|
||||
|
||||
if (matches(*argv, "reclassify") == 0) {
|
||||
p.action = TC_POLICE_RECLASSIFY;
|
||||
NEXT_ARG();
|
||||
} else if (matches(*argv, "pipe") == 0) {
|
||||
p.action = TC_POLICE_PIPE;
|
||||
NEXT_ARG();
|
||||
} else if (matches(*argv, "drop") == 0 ||
|
||||
matches(*argv, "shot") == 0) {
|
||||
p.action = TC_POLICE_SHOT;
|
||||
NEXT_ARG();
|
||||
} else if (matches(*argv, "continue") == 0) {
|
||||
p.action = TC_POLICE_UNSPEC;
|
||||
NEXT_ARG();
|
||||
} else if (matches(*argv, "pass") == 0 ||
|
||||
matches(*argv, "ok") == 0) {
|
||||
p.action = TC_POLICE_OK;
|
||||
NEXT_ARG();
|
||||
}
|
||||
|
||||
}
|
||||
if (argc && p.eaction == TCA_EGRESS_MIRROR
|
||||
&& !action_a2n(*argv, &p.action, false))
|
||||
NEXT_ARG();
|
||||
|
||||
if (argc) {
|
||||
if (iok && matches(*argv, "index") == 0) {
|
||||
|
27
tc/m_nat.c
27
tc/m_nat.c
@ -115,31 +115,8 @@ parse_nat(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, struct
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "reclassify") == 0) {
|
||||
sel.action = TC_ACT_RECLASSIFY;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "pipe") == 0) {
|
||||
sel.action = TC_ACT_PIPE;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "drop") == 0 ||
|
||||
matches(*argv, "shot") == 0) {
|
||||
sel.action = TC_ACT_SHOT;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "continue") == 0) {
|
||||
sel.action = TC_ACT_UNSPEC;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "pass") == 0 ||
|
||||
matches(*argv, "ok") == 0) {
|
||||
sel.action = TC_ACT_OK;
|
||||
argc--;
|
||||
argv++;
|
||||
}
|
||||
}
|
||||
if (argc && !action_a2n(*argv, &sel.action, false))
|
||||
NEXT_ARG_FWD();
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "index") == 0) {
|
||||
|
22
tc/m_pedit.c
22
tc/m_pedit.c
@ -481,26 +481,8 @@ int parse_pedit(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "reclassify") == 0) {
|
||||
sel.sel.action = TC_ACT_RECLASSIFY;
|
||||
NEXT_ARG();
|
||||
} else if (matches(*argv, "pipe") == 0) {
|
||||
sel.sel.action = TC_ACT_PIPE;
|
||||
NEXT_ARG();
|
||||
} else if (matches(*argv, "drop") == 0 ||
|
||||
matches(*argv, "shot") == 0) {
|
||||
sel.sel.action = TC_ACT_SHOT;
|
||||
NEXT_ARG();
|
||||
} else if (matches(*argv, "continue") == 0) {
|
||||
sel.sel.action = TC_ACT_UNSPEC;
|
||||
NEXT_ARG();
|
||||
} else if (matches(*argv, "pass") == 0 ||
|
||||
matches(*argv, "ok") == 0) {
|
||||
sel.sel.action = TC_ACT_OK;
|
||||
NEXT_ARG();
|
||||
}
|
||||
}
|
||||
if (argc && !action_a2n(*argv, &sel.sel.action, false))
|
||||
NEXT_ARG();
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "index") == 0) {
|
||||
|
@ -71,34 +71,6 @@ static const char *police_action_n2a(int action, char *buf, int len)
|
||||
}
|
||||
}
|
||||
|
||||
static int police_action_a2n(const char *arg, int *result)
|
||||
{
|
||||
int res;
|
||||
|
||||
if (matches(arg, "continue") == 0)
|
||||
res = -1;
|
||||
else if (matches(arg, "drop") == 0)
|
||||
res = TC_POLICE_SHOT;
|
||||
else if (matches(arg, "shot") == 0)
|
||||
res = TC_POLICE_SHOT;
|
||||
else if (matches(arg, "pass") == 0)
|
||||
res = TC_POLICE_OK;
|
||||
else if (strcmp(arg, "ok") == 0)
|
||||
res = TC_POLICE_OK;
|
||||
else if (matches(arg, "reclassify") == 0)
|
||||
res = TC_POLICE_RECLASSIFY;
|
||||
else if (matches(arg, "pipe") == 0)
|
||||
res = TC_POLICE_PIPE;
|
||||
else {
|
||||
char dummy;
|
||||
|
||||
if (sscanf(arg, "%d%c", &res, &dummy) != 1)
|
||||
return -1;
|
||||
}
|
||||
*result = res;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int get_police_result(int *action, int *result, char *arg)
|
||||
{
|
||||
char *p = strchr(arg, '/');
|
||||
@ -106,7 +78,7 @@ static int get_police_result(int *action, int *result, char *arg)
|
||||
if (p)
|
||||
*p = 0;
|
||||
|
||||
if (police_action_a2n(arg, action)) {
|
||||
if (action_a2n(arg, action, true)) {
|
||||
if (p)
|
||||
*p = '/';
|
||||
return -1;
|
||||
@ -114,7 +86,7 @@ static int get_police_result(int *action, int *result, char *arg)
|
||||
|
||||
if (p) {
|
||||
*p = '/';
|
||||
if (police_action_a2n(p+1, result))
|
||||
if (action_a2n(p+1, result, true))
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
|
@ -120,31 +120,8 @@ parse_simple(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
|
||||
}
|
||||
}
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "reclassify") == 0) {
|
||||
sel.action = TC_ACT_RECLASSIFY;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "pipe") == 0) {
|
||||
sel.action = TC_ACT_PIPE;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "drop") == 0 ||
|
||||
matches(*argv, "shot") == 0) {
|
||||
sel.action = TC_ACT_SHOT;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "continue") == 0) {
|
||||
sel.action = TC_ACT_UNSPEC;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "pass") == 0 ||
|
||||
matches(*argv, "ok") == 0) {
|
||||
sel.action = TC_ACT_OK;
|
||||
argc--;
|
||||
argv++;
|
||||
}
|
||||
}
|
||||
if (argc && !action_a2n(*argv, &sel.action, false))
|
||||
NEXT_ARG_FWD();
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "index") == 0) {
|
||||
|
@ -100,26 +100,8 @@ parse_skbedit(struct action_util *a, int *argc_p, char ***argv_p, int tca_id,
|
||||
}
|
||||
|
||||
sel.action = TC_ACT_PIPE;
|
||||
if (argc) {
|
||||
if (matches(*argv, "reclassify") == 0) {
|
||||
sel.action = TC_ACT_RECLASSIFY;
|
||||
NEXT_ARG();
|
||||
} else if (matches(*argv, "pipe") == 0) {
|
||||
sel.action = TC_ACT_PIPE;
|
||||
NEXT_ARG();
|
||||
} else if (matches(*argv, "drop") == 0 ||
|
||||
matches(*argv, "shot") == 0) {
|
||||
sel.action = TC_ACT_SHOT;
|
||||
NEXT_ARG();
|
||||
} else if (matches(*argv, "continue") == 0) {
|
||||
sel.action = TC_ACT_UNSPEC;
|
||||
NEXT_ARG();
|
||||
} else if (matches(*argv, "pass") == 0 ||
|
||||
matches(*argv, "ok") == 0) {
|
||||
sel.action = TC_ACT_OK;
|
||||
NEXT_ARG();
|
||||
}
|
||||
}
|
||||
if (argc && !action_a2n(*argv, &sel.action, false))
|
||||
NEXT_ARG();
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "index") == 0) {
|
||||
|
27
tc/m_vlan.c
27
tc/m_vlan.c
@ -101,31 +101,8 @@ static int parse_vlan(struct action_util *a, int *argc_p, char ***argv_p,
|
||||
}
|
||||
|
||||
parm.action = TC_ACT_PIPE;
|
||||
if (argc) {
|
||||
if (matches(*argv, "reclassify") == 0) {
|
||||
parm.action = TC_ACT_RECLASSIFY;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "pipe") == 0) {
|
||||
parm.action = TC_ACT_PIPE;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "drop") == 0 ||
|
||||
matches(*argv, "shot") == 0) {
|
||||
parm.action = TC_ACT_SHOT;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "continue") == 0) {
|
||||
parm.action = TC_ACT_UNSPEC;
|
||||
argc--;
|
||||
argv++;
|
||||
} else if (matches(*argv, "pass") == 0 ||
|
||||
matches(*argv, "ok") == 0) {
|
||||
parm.action = TC_ACT_OK;
|
||||
argc--;
|
||||
argv++;
|
||||
}
|
||||
}
|
||||
if (argc && !action_a2n(*argv, &parm.action, false))
|
||||
NEXT_ARG_FWD();
|
||||
|
||||
if (argc) {
|
||||
if (matches(*argv, "index") == 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user