From 49092e22c2893118304bac1b3b706cd88f90590d Mon Sep 17 00:00:00 2001 From: Susant Sahani Date: Sun, 5 Jul 2015 11:24:31 +0530 Subject: networkd: Add support for ipv6 privacy extension This patch add support for ipv6 privacy extensions. The variable /proc/sys/net/ipv6/conf//use_tempaddr can be changed via the boolean IPv6PrivacyExtensions=[yes/no/prefer-temporary] When true enables privacy extensions, but prefer public addresses over temporary addresses. prefer-temporary prefers temporary adresses over public addresses. Defaults to false. [Match] Name=enp0s25 [Network] IPv6PrivacyExtensions=prefer-temporary --- src/network/networkd.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/network/networkd.h') diff --git a/src/network/networkd.h b/src/network/networkd.h index ac6e2c8a8e..0764609daa 100644 --- a/src/network/networkd.h +++ b/src/network/networkd.h @@ -90,6 +90,14 @@ typedef enum DCHPClientIdentifier { _DHCP_CLIENT_ID_INVALID = -1, } DCHPClientIdentifier; +typedef enum IPv6PrivacyExtensions { + IPV6_PRIVACY_EXTENSIONS_DISABLE, + IPV6_PRIVACY_EXTENSIONS_PREFER_PUBLIC, + IPV6_PRIVACY_EXTENSIONS_PREFER_TEMPORARY, + _IPV6_PRIVACY_EXTENSIONS_MAX, + _IPV6_PRIVACY_EXTENSIONS_INVALID = -1, +} IPv6PrivacyExtensions; + struct FdbEntry { Network *network; unsigned section; @@ -145,6 +153,8 @@ struct Network { AddressFamilyBoolean ip_forward; bool ip_masquerade; + IPv6PrivacyExtensions ipv6_privacy_extensions; + struct ether_addr *mac; unsigned mtu; @@ -455,3 +465,10 @@ int config_parse_address_family_boolean_with_kernel(const char *unit, const char const char* link_operstate_to_string(LinkOperationalState s) _const_; LinkOperationalState link_operstate_from_string(const char *s) _pure_; + +/* Ipv6 privacy extensions support */ + +const char* ipv6_privacy_extensions_to_string(IPv6PrivacyExtensions i) _const_; +IPv6PrivacyExtensions ipv6_privacy_extensions_from_string(const char *s) _pure_; + +int config_parse_ipv6_privacy_extensions(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); -- cgit v1.2.3-54-g00ecf