| From foo@baz Wed Dec 30 19:52:45 PST 2015 |
| From: Hannes Frederic Sowa <hannes@stressinduktion.org> |
| Date: Tue, 15 Dec 2015 22:59:12 +0100 |
| Subject: ipv6: automatically enable stable privacy mode if stable_secret set |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Hannes Frederic Sowa <hannes@stressinduktion.org> |
| |
| [ Upstream commit 9b29c6962b70f232cde4076b1020191e1be0889d ] |
| |
| Bjørn reported that while we switch all interfaces to privacy stable mode |
| when setting the secret, we don't set this mode for new interfaces. This |
| does not make sense, so change this behaviour. |
| |
| Fixes: 622c81d57b392cc ("ipv6: generation of stable privacy addresses for link-local and autoconf") |
| Reported-by: Bjørn Mork <bjorn@mork.no> |
| Cc: Bjørn Mork <bjorn@mork.no> |
| Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| net/ipv6/addrconf.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| --- a/net/ipv6/addrconf.c |
| +++ b/net/ipv6/addrconf.c |
| @@ -343,6 +343,12 @@ static struct inet6_dev *ipv6_add_dev(st |
| setup_timer(&ndev->rs_timer, addrconf_rs_timer, |
| (unsigned long)ndev); |
| memcpy(&ndev->cnf, dev_net(dev)->ipv6.devconf_dflt, sizeof(ndev->cnf)); |
| + |
| + if (ndev->cnf.stable_secret.initialized) |
| + ndev->addr_gen_mode = IN6_ADDR_GEN_MODE_STABLE_PRIVACY; |
| + else |
| + ndev->addr_gen_mode = IN6_ADDR_GEN_MODE_EUI64; |
| + |
| ndev->cnf.mtu6 = dev->mtu; |
| ndev->cnf.sysctl = NULL; |
| ndev->nd_parms = neigh_parms_alloc(dev, &nd_tbl); |