Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ce046c56 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'ipv6_stable_privacy_address'



Hannes Frederic Sowa says:

====================
ipv6: RFC7217 stable privacy addresses implementation

this is an implementation of basic support for RFC7217 stable privacy
addresses. Please review and consider for net-next.

v2:
* Correct references to RFC 7212 -> RFC 7217 in documentation patch (thanks, Eric!)
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 7f163d07 9f0761c1
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -1220,6 +1220,17 @@ anycast_src_echo_reply - BOOLEAN
	FALSE: disabled
	Default: FALSE

idgen_delay - INTEGER
	Controls the delay in seconds after which time to retry
	privacy stable address generation if a DAD conflict is
	detected.
	Default: 1 (as specified in RFC7217)

idgen_retries - INTEGER
	Controls the number of retries to generate a stable privacy
	address if a DAD conflict is detected.
	Default: 3 (as specified in RFC7217)

mld_qrv - INTEGER
	Controls the MLD query robustness variable (see RFC3810 9.1).
	Default: 2 (as specified by RFC3810 9.1)
@@ -1540,6 +1551,20 @@ use_optimistic - BOOLEAN
		0: disabled (default)
		1: enabled

stable_secret - IPv6 address
	This IPv6 address will be used as a secret to generate IPv6
	addresses for link-local addresses and autoconfigured
	ones. All addresses generated after setting this secret will
	be stable privacy ones by default. This can be changed via the
	addrgenmode ip-link. conf/default/stable_secret is used as the
	secret for the namespace, the interface specific ones can
	overwrite that. Writes to conf/all/stable_secret are refused.

	It is recommended to generate this secret during installation
	of a system and keep it stable after that.

	By default the stable secret is unset.

icmp/*:
ratelimit - INTEGER
	Limit the maximal rates for sending ICMPv6 packets.
+4 −0
Original line number Diff line number Diff line
@@ -53,6 +53,10 @@ struct ipv6_devconf {
	__s32           ndisc_notify;
	__s32		suppress_frag_ndisc;
	__s32		accept_ra_mtu;
	struct ipv6_stable_secret {
		bool initialized;
		struct in6_addr secret;
	} stable_secret;
	void		*sysctl;
};

+2 −2
Original line number Diff line number Diff line
@@ -47,12 +47,12 @@ struct inet6_ifaddr {
	__u32			prefered_lft;
	atomic_t		refcnt;
	spinlock_t		lock;
	spinlock_t		state_lock;

	int			state;

	__u32			flags;
	__u8			dad_probes;
	__u8			stable_privacy_retry;

	__u16			scope;

+2 −0
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@ struct netns_sysctl_ipv6 {
	int icmpv6_time;
	int anycast_src_echo_reply;
	int fwmark_reflect;
	int idgen_retries;
	int idgen_delay;
};

struct netns_ipv6 {
+1 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ enum {
#define IFA_F_MANAGETEMPADDR	0x100
#define IFA_F_NOPREFIXROUTE	0x200
#define IFA_F_MCAUTOJOIN	0x400
#define IFA_F_STABLE_PRIVACY	0x800

struct ifa_cacheinfo {
	__u32	ifa_prefered;
Loading