iproute: support onelink route option and print route flags
function old new delta print_route 1797 1865 +68 do_iproute 2097 2112 +15 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 83/0) Total: 83 bytes Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
628f134fe7
commit
1a1143907c
@ -298,6 +298,19 @@ static int FAST_FUNC print_route(const struct sockaddr_nl *who UNUSED_PARAM,
|
||||
if (tb[RTA_PRIORITY]) {
|
||||
printf(" metric %d ", *(uint32_t*)RTA_DATA(tb[RTA_PRIORITY]));
|
||||
}
|
||||
if (r->rtm_flags & RTNH_F_DEAD) {
|
||||
printf("dead ");
|
||||
}
|
||||
if (r->rtm_flags & RTNH_F_ONLINK) {
|
||||
printf("onlink ");
|
||||
}
|
||||
if (r->rtm_flags & RTNH_F_PERVASIVE) {
|
||||
printf("pervasive ");
|
||||
}
|
||||
if (r->rtm_flags & RTM_F_NOTIFY) {
|
||||
printf("notify ");
|
||||
}
|
||||
|
||||
if (r->rtm_family == AF_INET6) {
|
||||
struct rta_cacheinfo *ci = NULL;
|
||||
if (tb[RTA_CACHEINFO]) {
|
||||
@ -330,7 +343,7 @@ static int iproute_modify(int cmd, unsigned flags, char **argv)
|
||||
{
|
||||
static const char keywords[] ALIGN1 =
|
||||
"src\0""via\0""mtu\0""lock\0""protocol\0"IF_FEATURE_IP_RULE("table\0")
|
||||
"dev\0""oif\0""to\0""metric\0";
|
||||
"dev\0""oif\0""to\0""metric\0""onlink\0";
|
||||
enum {
|
||||
ARG_src,
|
||||
ARG_via,
|
||||
@ -341,6 +354,7 @@ IF_FEATURE_IP_RULE(ARG_table,)
|
||||
ARG_oif,
|
||||
ARG_to,
|
||||
ARG_metric,
|
||||
ARG_onlink,
|
||||
};
|
||||
enum {
|
||||
gw_ok = 1 << 0,
|
||||
@ -431,6 +445,8 @@ IF_FEATURE_IP_RULE(ARG_table,)
|
||||
NEXT_ARG();
|
||||
metric = get_u32(*argv, "metric");
|
||||
addattr32(&req.n, sizeof(req), RTA_PRIORITY, metric);
|
||||
} else if (arg == ARG_onlink) {
|
||||
req.r.rtm_flags |= RTNH_F_ONLINK;
|
||||
} else {
|
||||
int type;
|
||||
inet_prefix dst;
|
||||
|
Loading…
Reference in New Issue
Block a user