unsigned int ifindex = rta_getattr_u32(tb[NDA_IFINDEX]);
if (ifindex) {
- char ifname[IF_NAMESIZE];
+ if (!tb[NDA_LINK_NETNSID]) {
+ const char *ifname = ll_index_to_name(ifindex);
- if (!tb[NDA_LINK_NETNSID] &&
- if_indextoname(ifindex, ifname)) {
if (jw_global)
jsonw_string_field(jw_global, "viaIf",
ifname);
[BR_STATE_BLOCKING] = "blocking",
};
-extern char *if_indextoname(unsigned int __ifindex, char *__ifname);
-
static void print_link_flags(FILE *fp, unsigned int flags)
{
fprintf(fp, "<");
int len = n->nlmsg_len;
struct ifinfomsg *ifi = NLMSG_DATA(n);
struct rtattr *tb[IFLA_MAX+1];
- char b1[IFNAMSIZ];
len -= NLMSG_LENGTH(sizeof(*ifi));
if (len < 0) {
print_operstate(fp, rta_getattr_u8(tb[IFLA_OPERSTATE]));
if (tb[IFLA_LINK]) {
- SPRINT_BUF(b1);
int iflink = rta_getattr_u32(tb[IFLA_LINK]);
- if (iflink == 0)
- fprintf(fp, "@NONE: ");
- else
- fprintf(fp, "@%s: ",
- if_indextoname(iflink, b1));
+ fprintf(fp, "@%s: ",
+ iflink ? ll_index_to_name(iflink) : "NONE");
} else
fprintf(fp, ": ");
if (tb[IFLA_MTU])
fprintf(fp, "mtu %u ", rta_getattr_u32(tb[IFLA_MTU]));
- if (tb[IFLA_MASTER])
- fprintf(fp, "master %s ",
- if_indextoname(rta_getattr_u32(tb[IFLA_MASTER]), b1));
+ if (tb[IFLA_MASTER]) {
+ int master = rta_getattr_u32(tb[IFLA_MASTER]);
+
+ fprintf(fp, "master %s ", ll_index_to_name(master));
+ }
if (tb[IFLA_PROTINFO]) {
if (tb[IFLA_PROTINFO]->rta_type & NLA_F_NESTED) {
static void bond_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
{
- unsigned int ifindex;
-
if (!tb)
return;
print_string(PRINT_ANY, "mode", "mode %s ", mode);
}
- if (tb[IFLA_BOND_ACTIVE_SLAVE] &&
- (ifindex = rta_getattr_u32(tb[IFLA_BOND_ACTIVE_SLAVE]))) {
- char buf[IFNAMSIZ];
- const char *n = if_indextoname(ifindex, buf);
+ if (tb[IFLA_BOND_ACTIVE_SLAVE]) {
+ unsigned int ifindex =
+ rta_getattr_u32(tb[IFLA_BOND_ACTIVE_SLAVE]);
- if (n)
+ if (ifindex) {
print_string(PRINT_ANY,
"active_slave",
"active_slave %s ",
- n);
- else
- print_uint(PRINT_ANY,
- "active_slave_index",
- "active_slave %u ",
- ifindex);
+ ll_index_to_name(ifindex));
+ }
}
if (tb[IFLA_BOND_MIIMON])
arp_all_targets);
}
- if (tb[IFLA_BOND_PRIMARY] &&
- (ifindex = rta_getattr_u32(tb[IFLA_BOND_PRIMARY]))) {
- char buf[IFNAMSIZ];
- const char *n = if_indextoname(ifindex, buf);
+ if (tb[IFLA_BOND_PRIMARY]) {
+ unsigned int ifindex = rta_getattr_u32(tb[IFLA_BOND_PRIMARY]);
- if (n)
- print_string(PRINT_ANY, "primary", "primary %s ", n);
- else
- print_uint(PRINT_ANY,
- "primary_index",
- "primary %u ",
- ifindex);
+ if (ifindex) {
+ print_string(PRINT_ANY,
+ "primary",
+ "primary %s ",
+ ll_index_to_name(ifindex));
+ }
}
if (tb[IFLA_BOND_PRIMARY_RESELECT]) {
static void vxlan_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
{
__u32 vni;
- unsigned int link;
__u8 tos;
__u32 maxaddr;
- char s2[64];
if (!tb)
return;
&addr));
}
- if (tb[IFLA_VXLAN_LINK] &&
- (link = rta_getattr_u32(tb[IFLA_VXLAN_LINK]))) {
- const char *n = if_indextoname(link, s2);
+ if (tb[IFLA_VXLAN_LINK]) {
+ unsigned int link = rta_getattr_u32(tb[IFLA_VXLAN_LINK]);
- if (n)
- print_string(PRINT_ANY, "link", "dev %s ", n);
- else
- print_uint(PRINT_ANY, "link_index", "dev %u ", link);
+ if (link) {
+ print_string(PRINT_ANY, "link", "dev %s ",
+ ll_index_to_name(link));
+ }
}
if (tb[IFLA_VXLAN_PORT_RANGE]) {
static void print_encap_seg6local(FILE *fp, struct rtattr *encap)
{
struct rtattr *tb[SEG6_LOCAL_MAX + 1];
- char ifbuf[IFNAMSIZ];
int action;
parse_rtattr_nested(tb, SEG6_LOCAL_MAX, encap);
if (tb[SEG6_LOCAL_IIF]) {
int iif = rta_getattr_u32(tb[SEG6_LOCAL_IIF]);
- fprintf(fp, "iif %s ",
- if_indextoname(iif, ifbuf) ?: "<unknown>");
+ fprintf(fp, "iif %s ", ll_index_to_name(iif));
}
if (tb[SEG6_LOCAL_OIF]) {
int oif = rta_getattr_u32(tb[SEG6_LOCAL_OIF]);
- fprintf(fp, "oif %s ",
- if_indextoname(oif, ifbuf) ?: "<unknown>");
+ fprintf(fp, "oif %s ", ll_index_to_name(oif));
}
}
print_string(PRINT_ANY, "local", "local %s ", local);
- if (tb[IFLA_GRE_LINK] && rta_getattr_u32(tb[IFLA_GRE_LINK])) {
+ if (tb[IFLA_GRE_LINK]) {
unsigned int link = rta_getattr_u32(tb[IFLA_GRE_LINK]);
- const char *n = if_indextoname(link, s2);
- if (n)
- print_string(PRINT_ANY, "link", "dev %s ", n);
- else
- print_uint(PRINT_ANY, "link_index", "dev %u ", link);
+ if (link) {
+ print_string(PRINT_ANY, "link", "dev %s ",
+ ll_index_to_name(link));
+ }
}
if (tb[IFLA_GRE_TTL]) {
print_string(PRINT_ANY, "local", "local %s ", local);
- if (tb[IFLA_GRE_LINK] && rta_getattr_u32(tb[IFLA_GRE_LINK])) {
+ if (tb[IFLA_GRE_LINK]) {
unsigned int link = rta_getattr_u32(tb[IFLA_GRE_LINK]);
- const char *n = if_indextoname(link, s2);
- if (n)
- print_string(PRINT_ANY, "link", "dev %s ", n);
- else
- print_uint(PRINT_ANY, "link_index", "dev %u ", link);
+ if (link) {
+ print_string(PRINT_ANY, "link", "dev %s ",
+ ll_index_to_name(link));
+ }
}
if (tb[IFLA_GRE_TTL]) {
rt_addr_n2a_rta(AF_INET6, tb[IFLA_IPTUN_LOCAL]));
}
- if (tb[IFLA_IPTUN_LINK] && rta_getattr_u32(tb[IFLA_IPTUN_LINK])) {
+ if (tb[IFLA_IPTUN_LINK]) {
unsigned int link = rta_getattr_u32(tb[IFLA_IPTUN_LINK]);
- const char *n = if_indextoname(link, s2);
- if (n)
- print_string(PRINT_ANY, "link", "dev %s ", n);
- else
- print_uint(PRINT_ANY, "link_index", "dev %u ", link);
+ if (link) {
+ print_string(PRINT_ANY, "link", "dev %s ",
+ ll_index_to_name(link));
+ }
}
if (tb[IFLA_IPTUN_TTL]) {
print_string(PRINT_ANY, "local", "local %s ", local);
- if (tb[IFLA_IPTUN_LINK] && rta_getattr_u32(tb[IFLA_IPTUN_LINK])) {
+ if (tb[IFLA_IPTUN_LINK]) {
unsigned int link = rta_getattr_u32(tb[IFLA_IPTUN_LINK]);
- const char *n = if_indextoname(link, s2);
- if (n)
- print_string(PRINT_ANY, "link", "dev %s ", n);
- else
- print_int(PRINT_ANY, "link_index", "dev %u ", link);
+ if (link) {
+ print_string(PRINT_ANY, "link", "dev %s ",
+ ll_index_to_name(link));
+ }
}
if (tb[IFLA_IPTUN_TTL]) {
const char *local = "any";
const char *remote = "any";
__u32 key;
- unsigned int link;
char s2[IFNAMSIZ];
if (!tb)
print_string(PRINT_ANY, "local", "local %s ", local);
- if (tb[IFLA_VTI_LINK] &&
- (link = rta_getattr_u32(tb[IFLA_VTI_LINK]))) {
- const char *n = if_indextoname(link, s2);
+ if (tb[IFLA_VTI_LINK]) {
+ unsigned int link = rta_getattr_u32(tb[IFLA_VTI_LINK]);
- if (n)
- print_string(PRINT_ANY, "link", "dev %s ", n);
- else
- print_uint(PRINT_ANY, "link_index", "dev %u ", link);
+ if (link) {
+ print_string(PRINT_ANY, "link", "dev %s ",
+ ll_index_to_name(link));
+ }
}
if (tb[IFLA_VTI_IKEY] &&
const char *remote = "any";
struct in6_addr saddr;
struct in6_addr daddr;
- unsigned int link;
char s2[64];
if (!tb)
print_string(PRINT_ANY, "local", "local %s ", local);
- if (tb[IFLA_VTI_LINK] && (link = rta_getattr_u32(tb[IFLA_VTI_LINK]))) {
- const char *n = if_indextoname(link, s2);
+ if (tb[IFLA_VTI_LINK]) {
+ unsigned int link = rta_getattr_u32(tb[IFLA_VTI_LINK]);
- if (n)
- print_string(PRINT_ANY, "link", "dev %s ", n);
- else
- print_uint(PRINT_ANY, "link_index", "dev %u ", link);
+ if (link) {
+ print_string(PRINT_ANY, "link", "dev %s ",
+ ll_index_to_name(link));
+ }
}
if (tb[IFLA_VTI_IKEY]) {