rtnetlink: provide permanent hardware address in RTM_NEWLINK
authorMichal Kubecek <mkubecek@suse.cz>
Wed, 11 Dec 2019 09:58:14 +0000 (10:58 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 13 Dec 2019 01:07:05 +0000 (17:07 -0800)
commitf74877a5457d34d604dba6dbbb13c4c05bac8b93
treeef5cb41d438251c77045d52c24731f5a0c0ce0f9
parent545a6822993f1228552097aa21a6dd9f90514e68
rtnetlink: provide permanent hardware address in RTM_NEWLINK

Permanent hardware address of a network device was traditionally provided
via ethtool ioctl interface but as Jiri Pirko pointed out in a review of
ethtool netlink interface, rtnetlink is much more suitable for it so let's
add it to the RTM_NEWLINK message.

Add IFLA_PERM_ADDRESS attribute to RTM_NEWLINK messages unless the
permanent address is all zeros (i.e. device driver did not fill it). As
permanent address is not modifiable, reject userspace requests containing
IFLA_PERM_ADDRESS attribute.

Note: we already provide permanent hardware address for bond slaves;
unfortunately we cannot drop that attribute for backward compatibility
reasons.

v5 -> v6: only add the attribute if permanent address is not zero

Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/if_link.h
net/core/rtnetlink.c