On Thu, 31 May 2018 16:28:48 +0200 Nicolas Dichtel <nicolas.dich...@6wind.com> wrote:
> Parse and display those attributes. > Example: > ip l a type dummy > ip netns add foo > ip monitor link& > ip l s dummy1 netns foo > Deleted 6: dummy1: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group > default > link/ether 66:af:3a:3f:a0:89 brd ff:ff:ff:ff:ff:ff new-nsid 0 new-ifindex > 6 > > Signed-off-by: Nicolas Dichtel <nicolas.dich...@6wind.com> > --- > ip/ipaddress.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/ip/ipaddress.c b/ip/ipaddress.c > index 00da14c6f97c..c7c7e7df4e81 100644 > --- a/ip/ipaddress.c > +++ b/ip/ipaddress.c > @@ -964,6 +964,17 @@ int print_linkinfo(const struct sockaddr_nl *who, > } > } > > + if (tb[IFLA_NEW_NETNSID]) { > + int id = rta_getattr_u32(tb[IFLA_NEW_NETNSID]); > + > + print_int(PRINT_FP, NULL, " new-nsid %d", id); > + } > + if (tb[IFLA_NEW_IFINDEX]) { > + int id = rta_getattr_u32(tb[IFLA_NEW_IFINDEX]); > + > + print_int(PRINT_FP, NULL, " new-ifindex %d", id); > + } > + > if (tb[IFLA_PROTO_DOWN]) { > if (rta_getattr_u8(tb[IFLA_PROTO_DOWN])) > print_bool(PRINT_ANY, This makes sense. All of linkinfo that is present should be displayed. Both netns and ifindex are really unsigned values. Use __u32 and print_uint. Also why not convert numeric values to names?