## NMSettingIP6Config NMSettingIP6Config |

## Synopsis

    #define             NM_SETTING_IP6_CONFIG_SETTING_NAME
    enum                NMSettingIP6ConfigError;
    #define             NM_TYPE_SETTING_IP6_CONFIG_ERROR
    #define             NM_SETTING_IP6_CONFIG_ERROR
    GQuark              nm_setting_ip6_config_error_quark   (void);
    #define             NM_SETTING_IP6_CONFIG_METHOD
    #define             NM_SETTING_IP6_CONFIG_DNS
    #define             NM_SETTING_IP6_CONFIG_DNS_SEARCH
    #define             NM_SETTING_IP6_CONFIG_ADDRESSES
    #define             NM_SETTING_IP6_CONFIG_ROUTES
    #define             NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES
    #define             NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS
    #define             NM_SETTING_IP6_CONFIG_NEVER_DEFAULT
    #define             NM_SETTING_IP6_CONFIG_MAY_FAIL
    #define             NM_SETTING_IP6_CONFIG_METHOD_IGNORE
    #define             NM_SETTING_IP6_CONFIG_METHOD_AUTO
    #define             NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL
    #define             NM_SETTING_IP6_CONFIG_METHOD_MANUAL
    #define             NM_SETTING_IP6_CONFIG_METHOD_SHARED
    typedef             NMIP6Address;
    NMIP6Address *      nm_ip6_address_new                  (void);
    NMIP6Address *      nm_ip6_address_dup                  (NMIP6Address *source);
    void                nm_ip6_address_ref                  (NMIP6Address *address);
    void                nm_ip6_address_unref                (NMIP6Address *address);
    gboolean            nm_ip6_address_compare              (NMIP6Address *address,
                                                             NMIP6Address *other);
    const struct in6_addr * nm_ip6_address_get_address      (NMIP6Address *address);
    void                nm_ip6_address_set_address          (NMIP6Address *address,
                                                             const struct in6_addr *addr);
    guint32             nm_ip6_address_get_prefix           (NMIP6Address *address);
    void                nm_ip6_address_set_prefix           (NMIP6Address *address,
                                                             guint32 prefix);
    const struct in6_addr * nm_ip6_address_get_gateway      (NMIP6Address *address);
    void                nm_ip6_address_set_gateway          (NMIP6Address *address,
                                                             const struct in6_addr *gw);
    typedef             NMIP6Route;
    NMIP6Route *        nm_ip6_route_new                    (void);
    NMIP6Route *        nm_ip6_route_dup                    (NMIP6Route *route);
    void                nm_ip6_route_ref                    (NMIP6Route *route);
    void                nm_ip6_route_unref                  (NMIP6Route *route);
    gboolean            nm_ip6_route_compare                (NMIP6Route *route,
                                                             NMIP6Route *other);
    const struct in6_addr * nm_ip6_route_get_dest           (NMIP6Route *route);
    void                nm_ip6_route_set_dest               (NMIP6Route *route,
                                                             const struct in6_addr *dest);
    guint32             nm_ip6_route_get_prefix             (NMIP6Route *route);
    void                nm_ip6_route_set_prefix             (NMIP6Route *route,
                                                             guint32 prefix);
    const struct in6_addr * nm_ip6_route_get_next_hop       (NMIP6Route *route);
    void                nm_ip6_route_set_next_hop           (NMIP6Route *route,
                                                             const struct in6_addr *next_hop);
    guint32             nm_ip6_route_get_metric             (NMIP6Route *route);
    void                nm_ip6_route_set_metric             (NMIP6Route *route,
                                                             guint32 metric);
                        NMSettingIP6Config;
                        NMSettingIP6ConfigClass;
    GType               nm_setting_ip6_config_get_type      (void);
    NMSetting *         nm_setting_ip6_config_new           (void);
    const char *        nm_setting_ip6_config_get_method    (NMSettingIP6Config *setting);
    guint32             nm_setting_ip6_config_get_num_dns   (NMSettingIP6Config *setting);
    const struct in6_addr * nm_setting_ip6_config_get_dns   (NMSettingIP6Config *setting,
                                                             guint32 i);
    gboolean            nm_setting_ip6_config_add_dns       (NMSettingIP6Config *setting,
                                                             const struct in6_addr *dns);
    void                nm_setting_ip6_config_remove_dns    (NMSettingIP6Config *setting,
                                                             guint32 i);
    void                nm_setting_ip6_config_clear_dns     (NMSettingIP6Config *setting);
    guint32             nm_setting_ip6_config_get_num_dns_searches
                                                            (NMSettingIP6Config *setting);
    const char *        nm_setting_ip6_config_get_dns_search
                                                            (NMSettingIP6Config *setting,
                                                             guint32 i);
    gboolean            nm_setting_ip6_config_add_dns_search
                                                            (NMSettingIP6Config *setting,
                                                             const char *dns_search);
    void                nm_setting_ip6_config_remove_dns_search
                                                            (NMSettingIP6Config *setting,
                                                             guint32 i);
    void                nm_setting_ip6_config_clear_dns_searches
                                                            (NMSettingIP6Config *setting);
    guint32             nm_setting_ip6_config_get_num_addresses
                                                            (NMSettingIP6Config *setting);
    NMIP6Address *      nm_setting_ip6_config_get_address   (NMSettingIP6Config *setting,
                                                             guint32 i);
    gboolean            nm_setting_ip6_config_add_address   (NMSettingIP6Config *setting,
                                                             NMIP6Address *address);
    void                nm_setting_ip6_config_remove_address
                                                            (NMSettingIP6Config *setting,
                                                             guint32 i);
    void                nm_setting_ip6_config_clear_addresses
                                                            (NMSettingIP6Config *setting);
    guint32             nm_setting_ip6_config_get_num_routes
                                                            (NMSettingIP6Config *setting);
    NMIP6Route *        nm_setting_ip6_config_get_route     (NMSettingIP6Config *setting,
                                                             guint32 i);
    gboolean            nm_setting_ip6_config_add_route     (NMSettingIP6Config *setting,
                                                             NMIP6Route *route);
    void                nm_setting_ip6_config_remove_route  (NMSettingIP6Config *setting,
                                                             guint32 i);
    void                nm_setting_ip6_config_clear_routes  (NMSettingIP6Config *setting);
    gboolean            nm_setting_ip6_config_get_ignore_auto_routes
                                                            (NMSettingIP6Config *setting);
    gboolean            nm_setting_ip6_config_get_ignore_auto_dns
                                                            (NMSettingIP6Config *setting);
    gboolean            nm_setting_ip6_config_get_never_default
                                                            (NMSettingIP6Config *setting);
    gboolean            nm_setting_ip6_config_get_may_fail  (NMSettingIP6Config *setting);

## Object Hierarchy

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

## Properties

      "addresses"                GPtrArray_GValueArray_GArray_guchar_+guint+GArray_guchar___*  : Read / Write
      "dns"                      GPtrArray_GArray_guchar__*  : Read / Write
      "dns-search"               GSList_gchararray_*   : Read / Write
      "ignore-auto-dns"          gboolean              : Read / Write / Construct
      "ignore-auto-routes"       gboolean              : Read / Write / Construct
      "may-fail"                 gboolean              : Read / Write / Construct
      "method"                   gchar*                : Read / Write
      "never-default"            gboolean              : Read / Write / Construct
      "routes"                   GPtrArray_GValueArray_GArray_guchar_+guint+GArray_guchar_+guint__*  : Read / Write

## Description

## Details

### NM_SETTING_IP6_CONFIG_SETTING_NAME

    #define NM_SETTING_IP6_CONFIG_SETTING_NAME "ipv6"

### enum NMSettingIP6ConfigError

    typedef enum
    {
    	NM_SETTING_IP6_CONFIG_ERROR_UNKNOWN = 0,
    	NM_SETTING_IP6_CONFIG_ERROR_INVALID_PROPERTY,
    	NM_SETTING_IP6_CONFIG_ERROR_MISSING_PROPERTY,
    	NM_SETTING_IP6_CONFIG_ERROR_NOT_ALLOWED_FOR_METHOD
    } NMSettingIP6ConfigError;

### NM_TYPE_SETTING_IP6_CONFIG_ERROR

    #define NM_TYPE_SETTING_IP6_CONFIG_ERROR (nm_setting_ip6_config_error_get_type ())

### NM_SETTING_IP6_CONFIG_ERROR

    #define NM_SETTING_IP6_CONFIG_ERROR nm_setting_ip6_config_error_quark ()

### nm_setting_ip6_config_error_quark ()

    GQuark              nm_setting_ip6_config_error_quark   (void);

Returns : |

### NM_SETTING_IP6_CONFIG_METHOD

    #define NM_SETTING_IP6_CONFIG_METHOD             "method"

### NM_SETTING_IP6_CONFIG_DNS

    #define NM_SETTING_IP6_CONFIG_DNS                "dns"

### NM_SETTING_IP6_CONFIG_DNS_SEARCH

    #define NM_SETTING_IP6_CONFIG_DNS_SEARCH         "dns-search"

### NM_SETTING_IP6_CONFIG_ADDRESSES

    #define NM_SETTING_IP6_CONFIG_ADDRESSES          "addresses"

### NM_SETTING_IP6_CONFIG_ROUTES

    #define NM_SETTING_IP6_CONFIG_ROUTES             "routes"

### NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES

    #define NM_SETTING_IP6_CONFIG_IGNORE_AUTO_ROUTES "ignore-auto-routes"

### NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS

    #define NM_SETTING_IP6_CONFIG_IGNORE_AUTO_DNS    "ignore-auto-dns"

### NM_SETTING_IP6_CONFIG_NEVER_DEFAULT

    #define NM_SETTING_IP6_CONFIG_NEVER_DEFAULT      "never-default"

### NM_SETTING_IP6_CONFIG_MAY_FAIL

    #define NM_SETTING_IP6_CONFIG_MAY_FAIL           "may-fail"

### NM_SETTING_IP6_CONFIG_METHOD_IGNORE

    #define NM_SETTING_IP6_CONFIG_METHOD_IGNORE     "ignore"

### NM_SETTING_IP6_CONFIG_METHOD_AUTO

    #define NM_SETTING_IP6_CONFIG_METHOD_AUTO       "auto"

### NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL

    #define NM_SETTING_IP6_CONFIG_METHOD_LINK_LOCAL "link-local"

### NM_SETTING_IP6_CONFIG_METHOD_MANUAL

    #define NM_SETTING_IP6_CONFIG_METHOD_MANUAL     "manual"

### NM_SETTING_IP6_CONFIG_METHOD_SHARED

    #define NM_SETTING_IP6_CONFIG_METHOD_SHARED     "shared"

### NMIP6Address

    typedef struct NMIP6Address NMIP6Address;

### nm_ip6_address_new ()

    NMIP6Address *      nm_ip6_address_new                  (void);

Returns : |

### nm_ip6_address_dup ()

    NMIP6Address *      nm_ip6_address_dup                  (NMIP6Address *source);

`source` : |
Returns : |

### nm_ip6_address_ref ()

    void                nm_ip6_address_ref                  (NMIP6Address *address);

`address` : |

### nm_ip6_address_unref ()

    void                nm_ip6_address_unref                (NMIP6Address *address);

`address` : |

### nm_ip6_address_compare ()

    gboolean            nm_ip6_address_compare              (NMIP6Address *address,
                                                             NMIP6Address *other);

`address` : |
`other` : |
Returns : |

### nm_ip6_address_get_address ()

    const struct in6_addr * nm_ip6_address_get_address      (NMIP6Address *address);

`address` : |
Returns : |

### nm_ip6_address_set_address ()

    void                nm_ip6_address_set_address          (NMIP6Address *address,
                                                             const struct in6_addr *addr);

`address` : |
`addr` : |

### nm_ip6_address_get_prefix ()

    guint32             nm_ip6_address_get_prefix           (NMIP6Address *address);

`address` : |
Returns : |

### nm_ip6_address_set_prefix ()

    void                nm_ip6_address_set_prefix           (NMIP6Address *address,
                                                             guint32 prefix);

`address` : |
`prefix` : |

### nm_ip6_address_get_gateway ()

    const struct in6_addr * nm_ip6_address_get_gateway      (NMIP6Address *address);

`address` : |
Returns : |

### nm_ip6_address_set_gateway ()

    void                nm_ip6_address_set_gateway          (NMIP6Address *address,
                                                             const struct in6_addr *gw);

`address` : |
`gw` : |

### NMIP6Route

    typedef struct NMIP6Route NMIP6Route;

### nm_ip6_route_new ()

    NMIP6Route *        nm_ip6_route_new                    (void);

Returns : |

### nm_ip6_route_dup ()

    NMIP6Route *        nm_ip6_route_dup                    (NMIP6Route *route);

`route` : |
Returns : |

### nm_ip6_route_ref ()

    void                nm_ip6_route_ref                    (NMIP6Route *route);

`route` : |

### nm_ip6_route_unref ()

    void                nm_ip6_route_unref                  (NMIP6Route *route);

`route` : |

### nm_ip6_route_compare ()

    gboolean            nm_ip6_route_compare                (NMIP6Route *route,
                                                             NMIP6Route *other);

`route` : |
`other` : |
Returns : |

### nm_ip6_route_get_dest ()

    const struct in6_addr * nm_ip6_route_get_dest           (NMIP6Route *route);

`route` : |
Returns : |

### nm_ip6_route_set_dest ()

    void                nm_ip6_route_set_dest               (NMIP6Route *route,
                                                             const struct in6_addr *dest);

`route` : |
`dest` : |

### nm_ip6_route_get_prefix ()

    guint32             nm_ip6_route_get_prefix             (NMIP6Route *route);

`route` : |
Returns : |

### nm_ip6_route_set_prefix ()

    void                nm_ip6_route_set_prefix             (NMIP6Route *route,
                                                             guint32 prefix);

`route` : |
`prefix` : |

### nm_ip6_route_get_next_hop ()

    const struct in6_addr * nm_ip6_route_get_next_hop       (NMIP6Route *route);

`route` : |
Returns : |

### nm_ip6_route_set_next_hop ()

    void                nm_ip6_route_set_next_hop           (NMIP6Route *route,
                                                             const struct in6_addr *next_hop);

`route` : |
`next_hop` : |

### nm_ip6_route_get_metric ()

    guint32             nm_ip6_route_get_metric             (NMIP6Route *route);

`route` : |
Returns : |

### nm_ip6_route_set_metric ()

    void                nm_ip6_route_set_metric             (NMIP6Route *route,
                                                             guint32 metric);

`route` : |
`metric` : |

### NMSettingIP6Config

    typedef struct _NMSettingIP6Config NMSettingIP6Config;

### NMSettingIP6ConfigClass

    typedef struct {
    	NMSettingClass parent;

    	/* Padding for future expansion */
    	void (*_reserved1) (void);
    	void (*_reserved2) (void);
    	void (*_reserved3) (void);
    	void (*_reserved4) (void);
    } NMSettingIP6ConfigClass;

### nm_setting_ip6_config_get_type ()

    GType               nm_setting_ip6_config_get_type      (void);

Returns : |

### nm_setting_ip6_config_new ()

    NMSetting *         nm_setting_ip6_config_new           (void);

Returns : |

### nm_setting_ip6_config_get_method ()

    const char *        nm_setting_ip6_config_get_method    (NMSettingIP6Config *setting);

`setting` : |
Returns : |

### nm_setting_ip6_config_get_num_dns ()

    guint32             nm_setting_ip6_config_get_num_dns   (NMSettingIP6Config *setting);

`setting` : |
Returns : |

### nm_setting_ip6_config_get_dns ()

    const struct in6_addr * nm_setting_ip6_config_get_dns   (NMSettingIP6Config *setting,
                                                             guint32 i);

`setting` : |
`i` : |
Returns : |

### nm_setting_ip6_config_add_dns ()

    gboolean            nm_setting_ip6_config_add_dns       (NMSettingIP6Config *setting,
                                                             const struct in6_addr *dns);

`setting` : |
`dns` : |
Returns : |

### nm_setting_ip6_config_remove_dns ()

    void                nm_setting_ip6_config_remove_dns    (NMSettingIP6Config *setting,
                                                             guint32 i);

`setting` : |
`i` : |

### nm_setting_ip6_config_clear_dns ()

    void                nm_setting_ip6_config_clear_dns     (NMSettingIP6Config *setting);

`setting` : |

### nm_setting_ip6_config_get_num_dns_searches ()

    guint32             nm_setting_ip6_config_get_num_dns_searches
                                                            (NMSettingIP6Config *setting);

`setting` : |
Returns : |

### nm_setting_ip6_config_get_dns_search ()

    const char *        nm_setting_ip6_config_get_dns_search
                                                            (NMSettingIP6Config *setting,
                                                             guint32 i);

`setting` : |
`i` : |
Returns : |

### nm_setting_ip6_config_add_dns_search ()

    gboolean            nm_setting_ip6_config_add_dns_search
                                                            (NMSettingIP6Config *setting,
                                                             const char *dns_search);

`setting` : |
`dns_search` : |
Returns : |

### nm_setting_ip6_config_remove_dns_search ()

    void                nm_setting_ip6_config_remove_dns_search
                                                            (NMSettingIP6Config *setting,
                                                             guint32 i);

`setting` : |
`i` : |

### nm_setting_ip6_config_clear_dns_searches ()

    void                nm_setting_ip6_config_clear_dns_searches
                                                            (NMSettingIP6Config *setting);

`setting` : |

### nm_setting_ip6_config_get_num_addresses ()

    guint32             nm_setting_ip6_config_get_num_addresses
                                                            (NMSettingIP6Config *setting);

`setting` : |
Returns : |

### nm_setting_ip6_config_get_address ()

    NMIP6Address *      nm_setting_ip6_config_get_address   (NMSettingIP6Config *setting,
                                                             guint32 i);

`setting` : |
`i` : |
Returns : |

### nm_setting_ip6_config_add_address ()

    gboolean            nm_setting_ip6_config_add_address   (NMSettingIP6Config *setting,
                                                             NMIP6Address *address);

`setting` : |
`address` : |
Returns : |

### nm_setting_ip6_config_remove_address ()

    void                nm_setting_ip6_config_remove_address
                                                            (NMSettingIP6Config *setting,
                                                             guint32 i);

`setting` : |
`i` : |

### nm_setting_ip6_config_clear_addresses ()

    void                nm_setting_ip6_config_clear_addresses
                                                            (NMSettingIP6Config *setting);

`setting` : |

### nm_setting_ip6_config_get_num_routes ()

    guint32             nm_setting_ip6_config_get_num_routes
                                                            (NMSettingIP6Config *setting);

`setting` : |
Returns : |

### nm_setting_ip6_config_get_route ()

    NMIP6Route *        nm_setting_ip6_config_get_route     (NMSettingIP6Config *setting,
                                                             guint32 i);

`setting` : |
`i` : |
Returns : |

### nm_setting_ip6_config_add_route ()

    gboolean            nm_setting_ip6_config_add_route     (NMSettingIP6Config *setting,
                                                             NMIP6Route *route);

`setting` : |
`route` : |
Returns : |

### nm_setting_ip6_config_remove_route ()

    void                nm_setting_ip6_config_remove_route  (NMSettingIP6Config *setting,
                                                             guint32 i);

`setting` : |
`i` : |

### nm_setting_ip6_config_clear_routes ()

    void                nm_setting_ip6_config_clear_routes  (NMSettingIP6Config *setting);

`setting` : |

### nm_setting_ip6_config_get_ignore_auto_routes ()

    gboolean            nm_setting_ip6_config_get_ignore_auto_routes
                                                            (NMSettingIP6Config *setting);

`setting` : |
Returns : |

### nm_setting_ip6_config_get_ignore_auto_dns ()

    gboolean            nm_setting_ip6_config_get_ignore_auto_dns
                                                            (NMSettingIP6Config *setting);

`setting` : |
Returns : |

### nm_setting_ip6_config_get_never_default ()

    gboolean            nm_setting_ip6_config_get_never_default
                                                            (NMSettingIP6Config *setting);

`setting` : |
Returns : |

### nm_setting_ip6_config_get_may_fail ()

    gboolean            nm_setting_ip6_config_get_may_fail  (NMSettingIP6Config *setting);

`setting` : |
Returns : |

## Property Details

### The `"addresses"` property

      "addresses"                GPtrArray_GValueArray_GArray_guchar_+guint+GArray_guchar___*  : Read / Write

Array of IPv6 address structures. Each IPv6 address structure is composed of 3 members, the first being a byte array containing the IPv6 address (network byte order), the second a 32-bit integer containing the IPv6 address prefix, and the third a byte array containing the IPv6 address (network byte order) of the gateway associated with this address, if any. If no gateway is given, the third element should be given as all zeros. For the 'auto' method, given IP addresses are appended to those returned by automatic configuration. Addresses cannot be used with the 'shared' or 'link-local' methods as the interface is automatically assigned an address with these methods.

### The `"dns"` property

      "dns"                      GPtrArray_GArray_guchar__*  : Read / Write

Array of DNS servers, where each member of the array is a byte array containing the IPv6 address of the DNS server (in network byte order). For the 'auto' method, these DNS servers are appended to those (if any) returned by automatic configuration. DNS servers cannot be used with the 'shared' or 'link-local' methods as there is no usptream network. In all other methods, these DNS servers are used as the only DNS servers for this connection.

### The `"dns-search"` property

      "dns-search"               GSList_gchararray_*   : Read / Write

List of DNS search domains. For the 'auto' method, these search domains are appended to those returned by automatic configuration. Search domains cannot be used with the 'shared' or 'link-local' methods as there is no upstream network. In all other methods, these search domains are used as the only search domains for this connection.

### The `"ignore-auto-dns"` property

      "ignore-auto-dns"          gboolean              : Read / Write / Construct

When the method is set to 'auto' and this property is set to TRUE, automatically configured nameservers and search domains are ignored and only nameservers and search domains specified in "dns" and "dns-search", if any, are used.

Default value: FALSE

### The `"ignore-auto-routes"` property

      "ignore-auto-routes"       gboolean              : Read / Write / Construct

When the method is set to 'auto' and this property is set to TRUE, automatically configured routes are ignored and only routes specified in "routes", if any, are used.

Default value: FALSE

### The `"may-fail"` property

      "may-fail"                 gboolean              : Read / Write / Construct

If TRUE, allow overall network configuration to proceed even if IPv6 configuration times out. Note that at least one IP configuration must succeed or overall network configuration will still fail. For example, in IPv4-only networks, setting this property to TRUE allows the overall network configuration to succeed if IPv6 configuration fails but IPv4 configuration completes successfully.

Default value: FALSE

### The `"method"` property

      "method"                   gchar*                : Read / Write

IPv6 configuration method. If 'auto' is specified then the appropriate automatic method (DHCP, PPP, router advertisement, etc) is used for the interface and most other properties can be left unset. 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 'ignored' is specified, IPv6 configuration is not done. This property must be set. NOTE: the 'shared' method are not yet supported.

Default value: NULL

### The `"never-default"` property

      "never-default"            gboolean              : Read / Write / Construct

If TRUE, this connection will never be the default IPv6 connection, meaning it will never be assigned the default IPv6 route by NetworkManager.

Default value: FALSE

### The `"routes"` property

      "routes"                   GPtrArray_GValueArray_GArray_guchar_+guint+GArray_guchar_+guint__*  : Read / Write

Array of IPv6 route structures. Each IPv6 route structure is composed of 4 members; the first being the destination IPv6 network or address (network byte order) as a byte array, the second the destination network or address IPv6 prefix, the third being the next-hop IPv6 address (network byte order) if any, and the fourth being the route metric. For the 'auto' method, given IP routes are appended to those returned by automatic configuration. Routes cannot be used with the 'shared' or 'link-local' methods because there is no upstream network.