• Nicolas Dichtel's avatar
    ip6_tunnel: ensure to always have a link local address · e837735e
    Nicolas Dichtel authored
    When an Xin6 tunnel is set up, we check other netdevices to inherit the link-
    local address. If none is available, the interface will not have any link-local
    address. RFC4862 expects that each interface has a link local address.
    
    Now than this kind of tunnels supports x-netns, it's easy to fall in this case
    (by creating the tunnel in a netns where ethernet interfaces stand and then
    moving it to a other netns where no ethernet interface is available).
    
    RFC4291, Appendix A suggests two methods: the first is the one currently
    implemented, the second is to generate a unique identifier, so that we can
    always generate the link-local address. Let's use eth_random_addr() to generate
    this interface indentifier.
    
    I remove completly the previous method, hence for the whole life of the
    interface, the link-local address remains the same (previously, it depends on
    which ethernet interfaces were up when the tunnel interface was set up).
    Signed-off-by: default avatarNicolas Dichtel <nicolas.dichtel@6wind.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e837735e
ip6_tunnel.c 43.9 KB