aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Kubecek <mkubecek@suse.cz>2019-12-15 22:06:10 +0100
committerDavid Ahern <dsahern@gmail.com>2019-12-17 16:28:02 +0000
commit2b8e6995fe36b5863c394ddf6444eb4163c8c83c (patch)
treebcc0bc1ebb6e53ea31a65efec2cfffb4f3cd150b
parent974f889c2d0f72adfbe3428afd58884e376d3750 (diff)
downloadiproute2-2b8e6995fe36b5863c394ddf6444eb4163c8c83c.tar.gz
ip link: show permanent hardware address
Display permanent hardware address of an interface in output of "ip link show" and "ip addr show". To reduce noise, permanent address is only shown if it is different from current one. Signed-off-by: Michal Kubecek <mkubecek@suse.cz> Signed-off-by: David Ahern <dsahern@gmail.com>
-rw-r--r--ip/ipaddress.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index 964f14df9..9415d7682 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]) {