From: Jamal Hadi Salim Date: Mon, 6 Oct 2014 11:30:17 +0000 (-0400) Subject: route classifier support for multiple actions X-Git-Tag: v3.17.0~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=287bf3a9900d17e5c3297814d6a9e196fd0a752f;p=thirdparty%2Fiproute2.git route classifier support for multiple actions route can now use the action syntax Signed-off-by: Jamal Hadi Salim --- diff --git a/tc/f_route.c b/tc/f_route.c index 649e0ec29..23c4ecc7b 100644 --- a/tc/f_route.c +++ b/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; }