Patchwork tun: allow setting ethernet addresss while running

login
register
mail settings
Submitter stephen hemminger
Date Dec. 11, 2012, 1:16 a.m.
Message ID <1355188560-8388-1-git-send-email-shemminger@vyatta.com>
Download mbox | patch
Permalink /patch/205112/
State Accepted
Delegated to: David Miller
Headers show

Comments

stephen hemminger - Dec. 11, 2012, 1:16 a.m.
This is a pure software device, and ok with live address change.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
---
 drivers/net/tun.c |    1 +
 1 file changed, 1 insertion(+)
David Miller - Dec. 11, 2012, 5:50 p.m.
From: Stephen Hemminger <shemminger@vyatta.com>
Date: Mon, 10 Dec 2012 17:16:00 -0800

> This is a pure software device, and ok with live address change.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jan Engelhardt - Dec. 12, 2012, 3:27 a.m.
On Tuesday 2012-12-11 02:16, Stephen Hemminger wrote:

>This is a pure software device, and ok with live address change.
>--- a/drivers/net/tun.c
>+++ b/drivers/net/tun.c
>@@ -849,6 +849,7 @@ static void tun_net_init(struct net_device *dev)
> 		/* Ethernet TAP Device */
> 		ether_setup(dev);
> 		dev->priv_flags &= ~IFF_TX_SKB_SHARING;
>+		dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
> 
> 		eth_hw_addr_random(dev);

Would this possibly apply to L2TP devices as well?
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
stephen hemminger - Dec. 12, 2012, 4:38 p.m.
On Wed, 12 Dec 2012 04:27:54 +0100 (CET)
Jan Engelhardt <jengelh@inai.de> wrote:

> On Tuesday 2012-12-11 02:16, Stephen Hemminger wrote:
> 
> >This is a pure software device, and ok with live address change.
> >--- a/drivers/net/tun.c
> >+++ b/drivers/net/tun.c
> >@@ -849,6 +849,7 @@ static void tun_net_init(struct net_device *dev)
> > 		/* Ethernet TAP Device */
> > 		ether_setup(dev);
> > 		dev->priv_flags &= ~IFF_TX_SKB_SHARING;
> >+		dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
> > 
> > 		eth_hw_addr_random(dev);
> 
> Would this possibly apply to L2TP devices as well?

L2TP does not allow changing mac address at all right now.
Only drivers that use eth_mac_addr, can take advantage of the flag.


Looking around here are the other places that could use it.
 vxlan, xen-netfront?, gre, gre6, virtio_net?, hyperv?

Also the following look buggy.
  c2 allows changing mac address but never tells hardware?
  isdn/hysdn_net.c allows setting mac address but then resets it
      card value in net_open
  xpnet allows setting address but it looks like it fixed by hardware
  ipddp allows ethernet address but protocol is not ethernet


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 14a0454..2ac2164 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -849,6 +849,7 @@  static void tun_net_init(struct net_device *dev)
 		/* Ethernet TAP Device */
 		ether_setup(dev);
 		dev->priv_flags &= ~IFF_TX_SKB_SHARING;
+		dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
 
 		eth_hw_addr_random(dev);