net: vrf: Fix operation not supported when set vrf mac [Linux 5.1]

net: vrf: Fix operation not supported when set vrf mac [Linux 5.1]

This Linux kernel change "net: vrf: Fix operation not supported when set vrf mac" is included in the Linux 5.1 release. This change is authored by Miaohe Lin <linmiaohe [at] huawei.com> on Sat Apr 20 12:09:39 2019 +0800. The commit for this change in Linux stable tree is 6819e3f (patch).

net: vrf: Fix operation not supported when set vrf mac

Vrf device is not able to change mac address now because lack of
ndo_set_mac_address. Complete this in case some apps need to do
this.

Reported-by: Hui Wang <wanghui104@huawei.com>
Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

There are 2 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 drivers/net/vrf.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c
index cd15c32..9ee4d74 100644
--- a/drivers/net/vrf.c
+++ b/drivers/net/vrf.c
@@ -875,6 +875,7 @@ static int vrf_dev_init(struct net_device *dev)
    .ndo_init       = vrf_dev_init,
    .ndo_uninit     = vrf_dev_uninit,
    .ndo_start_xmit     = vrf_xmit,
+   .ndo_set_mac_address    = eth_mac_addr,
    .ndo_get_stats64    = vrf_get_stats64,
    .ndo_add_slave      = vrf_add_slave,
    .ndo_del_slave      = vrf_del_slave,
@@ -1274,6 +1275,7 @@ static void vrf_setup(struct net_device *dev)
    /* default to no qdisc; user can add if desired */
    dev->priv_flags |= IFF_NO_QUEUE;
    dev->priv_flags |= IFF_NO_RX_HANDLER;
+   dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;

    /* VRF devices do not care about MTU, but if the MTU is set
     * too low then the ipv4 and ipv6 protocols are disabled

Leave a Reply

Your email address will not be published. Required fields are marked *