## NMSettingIP6Config NMSettingIP6Config — Describes IPv6 addressing, routing, and name service properties |

## Synopsis

    #define             NM_SETTING_IP6_CONFIG_SETTING_NAME
    #define             NM_SETTING_IP6_CONFIG_IP6_PRIVACY
    #define             NM_SETTING_IP6_CONFIG_METHOD_IGNORE
    #define             NM_SETTING_IP6_CONFIG_METHOD_AUTO
    #define             NM_SETTING_IP6_CONFIG_METHOD_DHCP
    #define             NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL
    #define             NM_SETTING_IP6_CONFIG_METHOD_MANUAL
    #define             NM_SETTING_IP6_CONFIG_METHOD_SHARED
    enum                NMSettingIP6ConfigPrivacy;
    struct              NMSettingIP6Config;
                        NMSettingIP6ConfigClass;
    NMSetting *         nm_setting_ip6_config_new           (void);
    NMSettingIP6ConfigPrivacy nm_setting_ip6_config_get_ip6_privacy
                                                            (NMSettingIP6Config *setting);

## Object Hierarchy

      GEnum
       +----NMSettingIP6ConfigPrivacy

      GObject
       +----NMSetting
             +----NMSettingIPConfig
                   +----NMSettingIP6Config

## Properties

      "ip6-privacy"              NMSettingIP6ConfigPrivacy  : Read / Write / Construct

## Description

The NMSettingIP6Config object is a NMSetting subclass that describes properties related to IPv6 addressing, routing, and Domain Name Service

NMSettingIP6Config has few properties or methods of its own; it inherits almost everything from NMSettingIPConfig.

NetworkManager supports 6 values for the "method" property for IPv6. If "auto" is specified then the appropriate automatic method (PPP, router advertisement, etc) is used for the device and most other properties can be left unset. To force the use of DHCP only, specify "dhcp"; this method is only valid for Ethernet- based hardware. If "link-local" is specified, then an IPv6 link-local address will be assigned to the interface. If "manual" is specified, static IP addressing is used and at least one IP address must be given in the "addresses" property. If "ignore" is specified, IPv6 configuration is not done. Note: the "shared" method is not yet supported.

## Details

### NM_SETTING_IP6_CONFIG_SETTING_NAME

    #define NM_SETTING_IP6_CONFIG_SETTING_NAME "ipv6"

### NM_SETTING_IP6_CONFIG_IP6_PRIVACY

    #define NM_SETTING_IP6_CONFIG_IP6_PRIVACY "ip6-privacy"

### NM_SETTING_IP6_CONFIG_METHOD_IGNORE

    #define NM_SETTING_IP6_CONFIG_METHOD_IGNORE     "ignore"

IPv6 is not required or is handled by some other mechanism, and NetworkManager should not configure IPv6 for this connection.

### NM_SETTING_IP6_CONFIG_METHOD_AUTO

    #define NM_SETTING_IP6_CONFIG_METHOD_AUTO       "auto"

IPv6 configuration should be automatically determined via a method appropriate for the hardware interface, ie router advertisements, DHCP, or PPP or some other device-specific manner.

### NM_SETTING_IP6_CONFIG_METHOD_DHCP

    #define NM_SETTING_IP6_CONFIG_METHOD_DHCP       "dhcp"

IPv6 configuration should be automatically determined via DHCPv6 only and router advertisements should be ignored.

### NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL

    #define NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL "link-local"

IPv6 configuration should be automatically configured for link-local-only operation.

### NM_SETTING_IP6_CONFIG_METHOD_MANUAL

    #define NM_SETTING_IP6_CONFIG_METHOD_MANUAL     "manual"

All necessary IPv6 configuration (addresses, prefix, DNS, etc) is specified in the setting's properties.

### NM_SETTING_IP6_CONFIG_METHOD_SHARED

    #define NM_SETTING_IP6_CONFIG_METHOD_SHARED     "shared"

This connection specifies configuration that allows other computers to connect through it to the default network (usually the Internet). The connection's interface will be assigned a private address, and router advertisements, a caching DNS server, and Network Address Translation (NAT) functionality will be started on this connection's interface to allow other devices to connect through that interface to the default network. (not yet supported for IPv6)

### enum NMSettingIP6ConfigPrivacy

    typedef enum {
    	NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN = -1,
    	NM_SETTING_IP6_CONFIG_PRIVACY_DISABLED = 0,
    	NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_PUBLIC_ADDR = 1,
    	NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_TEMP_ADDR = 2
    } NMSettingIP6ConfigPrivacy;

NMSettingIP6ConfigPrivacy values indicate if and how IPv6 Privacy Extensions are used (RFC4941).

`NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN` | unknown or no value specified
`NM_SETTING_IP6_CONFIG_PRIVACY_DISABLED` | IPv6 Privacy Extensions are disabled
`NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_PUBLIC_ADDR` | IPv6 Privacy Extensions are enabled, but public addresses are preferred over temporary addresses
`NM_SETTING_IP6_CONFIG_PRIVACY_PREFER_TEMP_ADDR` | IPv6 Privacy Extensions are enabled and temporary addresses are preferred over public addresses

### struct NMSettingIP6Config

    struct NMSettingIP6Config;

### NMSettingIP6ConfigClass

    typedef struct {
    	NMSettingIPConfigClass parent;
    } NMSettingIP6ConfigClass;

### nm_setting_ip6_config_new ()

    NMSetting *         nm_setting_ip6_config_new           (void);

Creates a new NMSettingIP6Config object with default values.

Returns : | the new empty NMSettingIP6Config object. [transfer full]

### nm_setting_ip6_config_get_ip6_privacy ()

    NMSettingIP6ConfigPrivacy nm_setting_ip6_config_get_ip6_privacy
                                                            (NMSettingIP6Config *setting);

Returns the value contained in the "ip6-privacy" property.

`setting` : | the NMSettingIP6Config
Returns : | IPv6 Privacy Extensions configuration value (NMSettingIP6ConfigPrivacy).

## Property Details

### The `"ip6-privacy"` property

      "ip6-privacy"              NMSettingIP6ConfigPrivacy  : Read / Write / Construct

Configure IPv6 Privacy Extensions for SLAAC, described in RFC4941. If enabled, it makes the kernel generate a temporary IPv6 address in addition to the public one generated from MAC address via modified EUI-64. This enhances privacy, but could cause problems in some applications, on the other hand. The permitted values are: 0: disabled, 1: enabled (prefer public address), 2: enabled (prefer temporary addresses).

Default value: NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN