diff --git a/ip/ipaddress.c b/ip/ipaddress.c index 964f14df..9415d768 100644 --- a/ip/ipaddress.c +++ b/ip/ipaddress.c @@ -1011,6 +1011,24 @@ int print_linkinfo(struct nlmsghdr *n, void *arg) ifi->ifi_type, b1, sizeof(b1))); } + if (tb[IFLA_PERM_ADDRESS]) { + unsigned int len = RTA_PAYLOAD(tb[IFLA_PERM_ADDRESS]); + + if (!tb[IFLA_ADDRESS] || + RTA_PAYLOAD(tb[IFLA_ADDRESS]) != len || + memcmp(RTA_DATA(tb[IFLA_PERM_ADDRESS]), + RTA_DATA(tb[IFLA_ADDRESS]), len)) { + print_string(PRINT_FP, NULL, " permaddr ", NULL); + print_color_string(PRINT_ANY, + COLOR_MAC, + "permaddr", + "%s", + ll_addr_n2a(RTA_DATA(tb[IFLA_PERM_ADDRESS]), + RTA_PAYLOAD(tb[IFLA_PERM_ADDRESS]), + ifi->ifi_type, + b1, sizeof(b1))); + } + } } if (tb[IFLA_LINK_NETNSID]) {