route classifier support for multiple actions
route can now use the action syntax Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com>
This commit is contained in:
parent
08139c2ffb
commit
287bf3a990
13
tc/f_route.c
13
tc/f_route.c
|
|
@ -28,8 +28,8 @@
|
|||
static void explain(void)
|
||||
{
|
||||
fprintf(stderr, "Usage: ... route [ from REALM | fromif TAG ] [ to REALM ]\n");
|
||||
fprintf(stderr, " [ flowid CLASSID ] [ police POLICE_SPEC ]\n");
|
||||
fprintf(stderr, " POLICE_SPEC := ... look at TBF\n");
|
||||
fprintf(stderr, " [ flowid CLASSID ] [ action ACTION_SPEC ]]\n");
|
||||
fprintf(stderr, " ACTION_SPEC := ... look at individual actions\n");
|
||||
fprintf(stderr, " CLASSID := X:Y\n");
|
||||
fprintf(stderr, "\nNOTE: CLASSID is parsed as hexadecimal input.\n");
|
||||
}
|
||||
|
|
@ -105,6 +105,13 @@ static int route_parse_opt(struct filter_util *qu, char *handle, int argc, char
|
|||
return -1;
|
||||
}
|
||||
continue;
|
||||
} else if (matches(*argv, "action") == 0) {
|
||||
NEXT_ARG();
|
||||
if (parse_action(&argc, &argv, TCA_ROUTE4_ACT, n)) {
|
||||
fprintf(stderr, "Illegal \"action\"\n");
|
||||
return -1;
|
||||
}
|
||||
continue;
|
||||
} else if (matches(*argv, "order") == 0) {
|
||||
NEXT_ARG();
|
||||
if (get_u32(&order, *argv, 0)) {
|
||||
|
|
@ -158,6 +165,8 @@ static int route_print_opt(struct filter_util *qu, FILE *f, struct rtattr *opt,
|
|||
fprintf(f, "fromif %s", ll_index_to_name(*(int*)RTA_DATA(tb[TCA_ROUTE4_IIF])));
|
||||
if (tb[TCA_ROUTE4_POLICE])
|
||||
tc_print_police(f, tb[TCA_ROUTE4_POLICE]);
|
||||
if (tb[TCA_ROUTE4_ACT])
|
||||
tc_print_action(f, tb[TCA_ROUTE4_ACT]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue