@@ -119,6 +119,77 @@ config NET_IPV6_RA_RDNSS
119119 Support Router Advertisement Recursive DNS Server option.
120120 See RFC 6106 for details. The value depends on your network needs.
121121
122+ config NET_IPV6_PE_ENABLE
123+ bool "Enable privacy extension (RFC 4941) support"
124+ select MBEDTLS
125+ help
126+ This enables IPv6 privacy extension (RFC 4941) support.
127+ The interface identifier is randomized and SLAAC addresses
128+ generated from it will expire. This requires that applications are
129+ prepared to use new IPv6 addresses when old ones will expire.
130+ Note that you should make sure that the value of config option
131+ CONFIG_NET_IF_UNICAST_IPV6_ADDR_COUNT should be large enough so that
132+ two PE generated IPv6 addresses can be added to the network interface
133+ at the same time.
134+
135+ if NET_IPV6_PE_ENABLE
136+
137+ config NET_IPV6_PE_FILTER_PREFIX_COUNT
138+ int "Size of the IPv6 prefix filter list"
139+ default 0
140+ help
141+ Size of the white/black filter list of IPv6 prefixes. User can
142+ set filters at runtime and it is possible to enable or disable
143+ privacy extension support according to this filter list.
144+ By default no filters are enabled.
145+
146+ config NET_IPV6_PE_PREFER_PUBLIC_ADDRESSES
147+ bool "Prefer public preferred address over temporary one"
148+ help
149+ Prefer public addresses over temporary addresses.
150+
151+ config NET_IPV6_PE_TEMP_VALID_LIFETIME
152+ int "Max lifetime for temporary address (in minutes)"
153+ default 10080
154+ help
155+ No temporary address should ever remain valid for longer than this
156+ value. The value is in minutes. Default value is 1 week (7*24*60).
157+
158+ config NET_IPV6_PE_TEMP_PREFERRED_LIFETIME
159+ int "Max preferred lifetime for temporary address (in minutes)"
160+ default 1440
161+ help
162+ No temporary address should ever remain preferred for longer than this
163+ value. The value is in minutes. Default value is 1 day (24*60).
164+
165+ config NET_IPV6_PE_REGEN_ADVANCE
166+ int "Regenerate advance time units"
167+ default 5
168+ help
169+ A temporary address is created only if the calculated Preferred
170+ Lifetime is greater than REGEN_ADVANCE time units.
171+ The value is in seconds.
172+
173+ config NET_IPV6_PE_MAX_DESYNC_FACTOR
174+ int "Max desync factor (in minutes)"
175+ default 10
176+ help
177+ This is the upper bound on DESYNC_FACTOR. The value is in minutes.
178+ The value DESYNC_FACTOR is a random value (different for each client)
179+ that ensures that clients don't synchronize with each other and
180+ generate new addresses at exactly the same time.
181+
182+ config NET_IPV6_PE_TEMP_IDGEN_RETRIES
183+ int "Max amount of failed DAD attempts"
184+ default 3
185+ help
186+ The node MUST perform duplicate address detection (DAD) on the
187+ generated temporary address. If after TEMP_IDGEN_RETRIES consecutive
188+ attempts no non-unique address was generated then there will be no
189+ attempt to generate temporary addresses for that interface.
190+
191+ endif
192+
122193config NET_6LO
123194 bool "Enable 6lowpan IPv6 Compression library"
124195 default y if NET_L2_IEEE802154
0 commit comments