Files
kernel_arpi/include/uapi/linux
Hannes Frederic Sowa 622c81d57b ipv6: generation of stable privacy addresses for link-local and autoconf
This patch implements the stable privacy address generation for
link-local and autoconf addresses as specified in RFC7217.

  RID = F(Prefix, Net_Iface, Network_ID, DAD_Counter, secret_key)

is the RID (random identifier). As the hash function F we chose one
round of sha1. Prefix will be either the link-local prefix or the
router advertised one. As Net_Iface we use the MAC address of the
device. DAD_Counter and secret_key are implemented as specified.

We don't use Network_ID, as it couples the code too closely to other
subsystems. It is specified as optional in the RFC.

As Net_Iface we only use the MAC address: we simply have no stable
identifier in the kernel we could possibly use: because this code might
run very early, we cannot depend on names, as they might be changed by
user space early on during the boot process.

A new address generation mode is introduced,
IN6_ADDR_GEN_MODE_STABLE_PRIVACY. With iproute2 one can switch back to
none or eui64 address configuration mode although the stable_secret is
already set.

We refuse writes to ipv6/conf/all/stable_secret but only allow
ipv6/conf/default/stable_secret and the interface specific file to be
written to. The default stable_secret is used as the parameter for the
namespace, the interface specific can overwrite the secret, e.g. when
switching a network configuration from one system to another while
inheriting the secret.

Cc: Erik Kline <ek@google.com>
Cc: Fernando Gont <fgont@si6networks.com>
Cc: Lorenzo Colitti <lorenzo@google.com>
Cc: YOSHIFUJI Hideaki/吉藤英明 <hideaki.yoshifuji@miraclelinux.com>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-03-23 22:12:08 -04:00
..
2014-10-20 10:30:15 +08:00
2014-09-23 23:15:46 -07:00
2015-02-02 18:09:42 +01:00
2014-10-14 13:08:29 +11:00
2014-07-01 10:48:05 -06:00
2015-03-06 21:50:02 -05:00
2014-11-19 14:48:02 -06:00
2014-12-08 12:55:57 +08:00
2014-08-08 15:57:31 -07:00
2014-12-16 11:19:42 -05:00
2014-12-22 16:12:36 -05:00
2015-01-05 22:44:46 -05:00
2015-02-09 16:59:03 +09:00
2014-12-02 13:52:53 -07:00
2015-02-17 14:34:51 -08:00
2014-08-08 15:57:31 -07:00
2015-01-20 13:51:06 +01:00
2014-12-13 12:42:52 -08:00
2015-02-02 18:46:51 -08:00
2015-01-21 19:21:30 +01:00
2015-02-07 18:43:16 +08:00
2014-12-10 17:41:10 -08:00
2014-12-09 14:10:41 +08:00
2015-03-05 22:08:42 -05:00
2015-02-10 12:38:14 -07:00
2014-12-09 12:05:24 +02:00