diff options
author | Susant Sahani <susant@redhat.com> | 2015-07-05 11:24:31 +0530 |
---|---|---|
committer | Susant Sahani <susant@redhat.com> | 2015-07-05 11:24:31 +0530 |
commit | 49092e22c2893118304bac1b3b706cd88f90590d (patch) | |
tree | c623efdb72fa1bcd1867a24ecf39a02a255bda70 /src/network/networkd.h | |
parent | 138879ccad87148cc5d805471183789a6ad688c6 (diff) |
networkd: Add support for ipv6 privacy extension
This patch add support for ipv6 privacy extensions.
The variable /proc/sys/net/ipv6/conf/<if>/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
Diffstat (limited to 'src/network/networkd.h')
-rw-r--r-- | src/network/networkd.h | 17 |
1 files changed, 17 insertions, 0 deletions
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); |