NMSettingIPConfig: libnm Reference Manual

## NMSettingIPConfig NMSettingIPConfig — Abstract base class for IPv4 and IPv6 addressing, routing, and name service properties |

## Functions

NMIPAddress * | nm_ip_address_new ()
NMIPAddress * | nm_ip_address_new_binary ()
void | nm_ip_address_ref ()
void | nm_ip_address_unref ()
gboolean | nm_ip_address_equal ()
int | nm_ip_address_cmp_full ()
NMIPAddress * | nm_ip_address_dup ()
int | nm_ip_address_get_family ()
const char * | nm_ip_address_get_address ()
void | nm_ip_address_set_address ()
void | nm_ip_address_get_address_binary ()
void | nm_ip_address_set_address_binary ()
guint | nm_ip_address_get_prefix ()
void | nm_ip_address_set_prefix ()
char ** | nm_ip_address_get_attribute_names ()
GVariant * | nm_ip_address_get_attribute ()
void | nm_ip_address_set_attribute ()
NMIPRoute * | nm_ip_route_new ()
NMIPRoute * | nm_ip_route_new_binary ()
void | nm_ip_route_ref ()
void | nm_ip_route_unref ()
gboolean | nm_ip_route_equal ()
gboolean | nm_ip_route_equal_full ()
NMIPRoute * | nm_ip_route_dup ()
int | nm_ip_route_get_family ()
const char * | nm_ip_route_get_dest ()
void | nm_ip_route_set_dest ()
void | nm_ip_route_get_dest_binary ()
void | nm_ip_route_set_dest_binary ()
guint | nm_ip_route_get_prefix ()
void | nm_ip_route_set_prefix ()
const char * | nm_ip_route_get_next_hop ()
void | nm_ip_route_set_next_hop ()
gboolean | nm_ip_route_get_next_hop_binary ()
void | nm_ip_route_set_next_hop_binary ()
gint64 | nm_ip_route_get_metric ()
void | nm_ip_route_set_metric ()
char ** | nm_ip_route_get_attribute_names ()
GVariant * | nm_ip_route_get_attribute ()
void | nm_ip_route_set_attribute ()
const NMVariantAttributeSpec *const * | nm_ip_route_get_variant_attribute_spec ()
gboolean | nm_ip_route_attribute_validate ()
NMIPRoutingRule * | nm_ip_routing_rule_new ()
NMIPRoutingRule * | nm_ip_routing_rule_new_clone ()
NMIPRoutingRule * | nm_ip_routing_rule_ref ()
void | nm_ip_routing_rule_unref ()
gboolean | nm_ip_routing_rule_is_sealed ()
void | nm_ip_routing_rule_seal ()
int | nm_ip_routing_rule_get_addr_family ()
gboolean | nm_ip_routing_rule_get_invert ()
void | nm_ip_routing_rule_set_invert ()
gint64 | nm_ip_routing_rule_get_priority ()
void | nm_ip_routing_rule_set_priority ()
guint8 | nm_ip_routing_rule_get_tos ()
void | nm_ip_routing_rule_set_tos ()
guint8 | nm_ip_routing_rule_get_ipproto ()
void | nm_ip_routing_rule_set_ipproto ()
guint16 | nm_ip_routing_rule_get_source_port_start ()
guint16 | nm_ip_routing_rule_get_source_port_end ()
void | nm_ip_routing_rule_set_source_port ()
guint16 | nm_ip_routing_rule_get_destination_port_start ()
guint16 | nm_ip_routing_rule_get_destination_port_end ()
void | nm_ip_routing_rule_set_destination_port ()
guint32 | nm_ip_routing_rule_get_fwmark ()
guint32 | nm_ip_routing_rule_get_fwmask ()
void | nm_ip_routing_rule_set_fwmark ()
guint8 | nm_ip_routing_rule_get_from_len ()
const char * | nm_ip_routing_rule_get_from ()
void | nm_ip_routing_rule_set_from ()
guint8 | nm_ip_routing_rule_get_to_len ()
const char * | nm_ip_routing_rule_get_to ()
void | nm_ip_routing_rule_set_to ()
const char * | nm_ip_routing_rule_get_iifname ()
void | nm_ip_routing_rule_set_iifname ()
const char * | nm_ip_routing_rule_get_oifname ()
void | nm_ip_routing_rule_set_oifname ()
guint8 | nm_ip_routing_rule_get_action ()
void | nm_ip_routing_rule_set_action ()
guint32 | nm_ip_routing_rule_get_table ()
void | nm_ip_routing_rule_set_table ()
gint32 | nm_ip_routing_rule_get_suppress_prefixlength ()
void | nm_ip_routing_rule_set_suppress_prefixlength ()
gboolean | nm_ip_routing_rule_get_uid_range ()
void | nm_ip_routing_rule_set_uid_range ()
int | nm_ip_routing_rule_cmp ()
gboolean | nm_ip_routing_rule_validate ()
NMIPRoutingRule * | nm_ip_routing_rule_from_string ()
char * | nm_ip_routing_rule_to_string ()
const char * | nm_setting_ip_config_get_method ()
guint | nm_setting_ip_config_get_num_dns ()
const char * | nm_setting_ip_config_get_dns ()
gboolean | nm_setting_ip_config_add_dns ()
void | nm_setting_ip_config_remove_dns ()
gboolean | nm_setting_ip_config_remove_dns_by_value ()
void | nm_setting_ip_config_clear_dns ()
guint | nm_setting_ip_config_get_num_dns_searches ()
const char * | nm_setting_ip_config_get_dns_search ()
gboolean | nm_setting_ip_config_add_dns_search ()
void | nm_setting_ip_config_remove_dns_search ()
gboolean | nm_setting_ip_config_remove_dns_search_by_value ()
void | nm_setting_ip_config_clear_dns_searches ()
guint | nm_setting_ip_config_get_num_dns_options ()
gboolean | nm_setting_ip_config_has_dns_options ()
const char * | nm_setting_ip_config_get_dns_option ()
gboolean | nm_setting_ip_config_add_dns_option ()
void | nm_setting_ip_config_remove_dns_option ()
gboolean | nm_setting_ip_config_remove_dns_option_by_value ()
void | nm_setting_ip_config_clear_dns_options ()
int | nm_setting_ip_config_get_dns_priority ()
guint | nm_setting_ip_config_get_num_addresses ()
NMIPAddress * | nm_setting_ip_config_get_address ()
gboolean | nm_setting_ip_config_add_address ()
void | nm_setting_ip_config_remove_address ()
gboolean | nm_setting_ip_config_remove_address_by_value ()
void | nm_setting_ip_config_clear_addresses ()
const char * | nm_setting_ip_config_get_gateway ()
guint | nm_setting_ip_config_get_num_routes ()
NMIPRoute * | nm_setting_ip_config_get_route ()
gboolean | nm_setting_ip_config_add_route ()
void | nm_setting_ip_config_remove_route ()
gboolean | nm_setting_ip_config_remove_route_by_value ()
void | nm_setting_ip_config_clear_routes ()
gint64 | nm_setting_ip_config_get_route_metric ()
guint32 | nm_setting_ip_config_get_route_table ()
guint | nm_setting_ip_config_get_num_routing_rules ()
NMIPRoutingRule * | nm_setting_ip_config_get_routing_rule ()
void | nm_setting_ip_config_add_routing_rule ()
void | nm_setting_ip_config_remove_routing_rule ()
void | nm_setting_ip_config_clear_routing_rules ()
gboolean | nm_setting_ip_config_get_ignore_auto_routes ()
gboolean | nm_setting_ip_config_get_ignore_auto_dns ()
const char * | nm_setting_ip_config_get_dhcp_hostname ()
gboolean | nm_setting_ip_config_get_dhcp_send_hostname ()
const char * | nm_setting_ip_config_get_dhcp_dscp ()
gboolean | nm_setting_ip_config_get_never_default ()
gboolean | nm_setting_ip_config_get_may_fail ()
int | nm_setting_ip_config_get_dad_timeout ()
int | nm_setting_ip_config_get_dhcp_timeout ()
int | nm_setting_ip_config_get_required_timeout ()
const char * | nm_setting_ip_config_get_dhcp_iaid ()
NMDhcpHostnameFlags | nm_setting_ip_config_get_dhcp_hostname_flags ()
const char *const * | nm_setting_ip_config_get_dhcp_reject_servers ()
void | nm_setting_ip_config_add_dhcp_reject_server ()
void | nm_setting_ip_config_remove_dhcp_reject_server ()
void | nm_setting_ip_config_clear_dhcp_reject_servers ()
NMTernary | nm_setting_ip_config_get_auto_route_ext_gw ()
NMTernary | nm_setting_ip_config_get_replace_local_rule ()
NMTernary | nm_setting_ip_config_get_dhcp_send_release ()

## Types and Values

#define | NM_IP_ADDRESS_ATTRIBUTE_LABEL
enum | NMIPAddressCmpFlags
#define | NM_IP_ROUTE_ATTRIBUTE_ADVMSS
#define | NM_IP_ROUTE_ATTRIBUTE_CWND
#define | NM_IP_ROUTE_ATTRIBUTE_FROM
#define | NM_IP_ROUTE_ATTRIBUTE_INITCWND
#define | NM_IP_ROUTE_ATTRIBUTE_INITRWND
#define | NM_IP_ROUTE_ATTRIBUTE_LOCK_ADVMSS
#define | NM_IP_ROUTE_ATTRIBUTE_LOCK_CWND
#define | NM_IP_ROUTE_ATTRIBUTE_LOCK_INITCWND
#define | NM_IP_ROUTE_ATTRIBUTE_LOCK_INITRWND
#define | NM_IP_ROUTE_ATTRIBUTE_LOCK_MTU
#define | NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW
#define | NM_IP_ROUTE_ATTRIBUTE_MTU
#define | NM_IP_ROUTE_ATTRIBUTE_ONLINK
#define | NM_IP_ROUTE_ATTRIBUTE_QUICKACK
#define | NM_IP_ROUTE_ATTRIBUTE_RTO_MIN
#define | NM_IP_ROUTE_ATTRIBUTE_SCOPE
#define | NM_IP_ROUTE_ATTRIBUTE_SRC
#define | NM_IP_ROUTE_ATTRIBUTE_TABLE
#define | NM_IP_ROUTE_ATTRIBUTE_TOS
#define | NM_IP_ROUTE_ATTRIBUTE_TYPE
#define | NM_IP_ROUTE_ATTRIBUTE_WINDOW
#define | NM_IP_ROUTE_ATTRIBUTE_WEIGHT
enum | NMIPRoutingRuleAsStringFlags
#define | NM_SETTING_IP_CONFIG_DAD_TIMEOUT_MAX
#define | NM_SETTING_IP_CONFIG_METHOD
#define | NM_SETTING_IP_CONFIG_DNS
#define | NM_SETTING_IP_CONFIG_DNS_SEARCH
#define | NM_SETTING_IP_CONFIG_DNS_OPTIONS
#define | NM_SETTING_IP_CONFIG_DNS_PRIORITY
#define | NM_SETTING_IP_CONFIG_ADDRESSES
#define | NM_SETTING_IP_CONFIG_GATEWAY
#define | NM_SETTING_IP_CONFIG_ROUTES
#define | NM_SETTING_IP_CONFIG_ROUTE_METRIC
#define | NM_SETTING_IP_CONFIG_ROUTE_TABLE
#define | NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES
#define | NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS
#define | NM_SETTING_IP_CONFIG_DHCP_HOSTNAME
#define | NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME
#define | NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS
#define | NM_SETTING_IP_CONFIG_DHCP_DSCP
#define | NM_SETTING_IP_CONFIG_NEVER_DEFAULT
#define | NM_SETTING_IP_CONFIG_MAY_FAIL
#define | NM_SETTING_IP_CONFIG_DAD_TIMEOUT
#define | NM_SETTING_IP_CONFIG_DHCP_TIMEOUT
#define | NM_SETTING_IP_CONFIG_REQUIRED_TIMEOUT
#define | NM_SETTING_IP_CONFIG_DHCP_IAID
#define | NM_SETTING_IP_CONFIG_DHCP_REJECT_SERVERS
#define | NM_SETTING_IP_CONFIG_AUTO_ROUTE_EXT_GW
#define | NM_SETTING_IP_CONFIG_REPLACE_LOCAL_RULE
#define | NM_SETTING_IP_CONFIG_DHCP_SEND_RELEASE
#define | NM_SETTING_IP_CONFIG_ROUTING_RULES
#define | NM_SETTING_DNS_OPTION_DEBUG
#define | NM_SETTING_DNS_OPTION_NDOTS
#define | NM_SETTING_DNS_OPTION_TIMEOUT
#define | NM_SETTING_DNS_OPTION_ATTEMPTS
#define | NM_SETTING_DNS_OPTION_ROTATE
#define | NM_SETTING_DNS_OPTION_NO_CHECK_NAMES
#define | NM_SETTING_DNS_OPTION_INET6
#define | NM_SETTING_DNS_OPTION_IP6_BYTESTRING
#define | NM_SETTING_DNS_OPTION_IP6_DOTINT
#define | NM_SETTING_DNS_OPTION_NO_IP6_DOTINT
#define | NM_SETTING_DNS_OPTION_EDNS0
#define | NM_SETTING_DNS_OPTION_SINGLE_REQUEST
#define | NM_SETTING_DNS_OPTION_SINGLE_REQUEST_REOPEN
#define | NM_SETTING_DNS_OPTION_NO_TLD_QUERY
#define | NM_SETTING_DNS_OPTION_USE_VC
#define | NM_SETTING_DNS_OPTION_NO_RELOAD
#define | NM_SETTING_DNS_OPTION_TRUST_AD
#define | NM_SETTING_DNS_OPTION_NO_AAAA
#define | NM_SETTING_DNS_OPTION_INTERNAL_NO_ADD_EDNS0
#define | NM_SETTING_DNS_OPTION_INTERNAL_NO_ADD_TRUST_AD
enum | NMDhcpHostnameFlags

## Object Hierarchy

        GBoxed
        ├── NMIPAddress
        ├── NMIPRoute
        ╰── NMIPRoutingRule
        GFlags
        ├── NMDhcpHostnameFlags
        ├── NMIPAddressCmpFlags
        ╰── NMIPRoutingRuleAsStringFlags

## Includes

    #include <nm-setting-ip-config.h>

## Description

NMSettingIPConfig is the abstract base class of NMSettingIP4Config and NMSettingIP6Config, providing properties related to IP addressing, routing, and Domain Name Service.

## Functions

### nm_ip_address_new ()

    NMIPAddress *
    nm_ip_address_new (int family,
                       const char *addr,
                       guint prefix,
                       GError **error);

Creates a new NMIPAddress object.

#### Parameters

family | the IP address family (`AF_INET` or `AF_INET6`) |
addr | the IP address |
prefix | the address prefix length |
error | location to store error, or `NULL` |

#### Returns

the new NMIPAddress object, or `NULL` on error.

[transfer full]

### nm_ip_address_new_binary ()

    NMIPAddress *
    nm_ip_address_new_binary (int family,
                              gconstpointer addr,
                              guint prefix,
                              GError **error);

Creates a new NMIPAddress object. `addr` must point to a buffer of the correct size for `family` .

#### Parameters

family | the IP address family (`AF_INET` or `AF_INET6`) |
addr | the IP address |
prefix | the address prefix length |
error | location to store error, or `NULL` |

#### Returns

the new NMIPAddress object, or `NULL` on error.

[transfer full]

### nm_ip_address_ref ()

    void
    nm_ip_address_ref (NMIPAddress *address);

Increases the reference count of the object.

#### Parameters

address | the NMIPAddress |

### nm_ip_address_unref ()

    void
    nm_ip_address_unref (NMIPAddress *address);

Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed.

#### Parameters

address | the NMIPAddress |

### nm_ip_address_equal ()

    gboolean
    nm_ip_address_equal (NMIPAddress *address,
                         NMIPAddress *other);

Determines if two NMIPAddress objects contain the same address and prefix (attributes are not compared).

#### Parameters

address | the NMIPAddress |
other | the NMIPAddress to compare `address` to. |

#### Returns

`TRUE` if the objects contain the same values, `FALSE` if they do not.

### nm_ip_address_cmp_full ()

    int
    nm_ip_address_cmp_full (const NMIPAddress *a,
                            const NMIPAddress *b,
                            NMIPAddressCmpFlags cmp_flags);

Note that with `cmp_flags` NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS, there is no total order for comparing GVariant. That means, if the two addresses only differ by their attributes, the sort order is undefined and the return value only indicates equality.

#### Parameters

a | the NMIPAddress |
b | the NMIPAddress to compare `address` to. |
cmp_flags | the NMIPAddressCmpFlags that indicate what to compare. |

#### Returns

0 if the two objects have the same values (according to their flags) or a integer indicating the compare order.

Since: 1.22

### nm_ip_address_dup ()

    NMIPAddress *
    nm_ip_address_dup (NMIPAddress *address);

Creates a copy of `address`

#### Parameters

address | the NMIPAddress |

#### Returns

a copy of `address`

This API was part of public headers before 1.32.0 but was erroneously not exported in the ABI. It is thus only usable since 1.32.0.

[transfer full]

Since: 1.32

### nm_ip_address_get_family ()

    int
    nm_ip_address_get_family (NMIPAddress *address);

Gets the IP address family (eg, AF_INET) property of this address object.

#### Parameters

address | the NMIPAddress |

#### Returns

the IP address family

### nm_ip_address_get_address ()

    const char *
    nm_ip_address_get_address (NMIPAddress *address);

Gets the IP address property of this address object.

#### Parameters

address | the NMIPAddress |

#### Returns

the IP address

### nm_ip_address_set_address ()

    void
    nm_ip_address_set_address (NMIPAddress *address,
                               const char *addr);

Sets the IP address property of this address object.

`addr` must be a valid address of `address` 's family. If you aren't sure you have a valid address, use `nm_utils_ipaddr_valid()` to check it.

#### Parameters

address | the NMIPAddress |
addr | the IP address, as a string |

### nm_ip_address_get_address_binary ()

    void
    nm_ip_address_get_address_binary (NMIPAddress *address,
                                      gpointer addr);

Gets the IP address property of this address object.

`addr` must point to a buffer that is the correct size for `address` 's family.

[skip]

#### Parameters

address | the NMIPAddress |
addr | a buffer in which to store the address in binary format. |

### nm_ip_address_set_address_binary ()

    void
    nm_ip_address_set_address_binary (NMIPAddress *address,
                                      gconstpointer addr);

Sets the IP address property of this address object.

`addr` must point to a buffer that is the correct size for `address` 's family.

[skip]

#### Parameters

address | the NMIPAddress |
addr | the address, in binary format |

### nm_ip_address_get_prefix ()

    guint
    nm_ip_address_get_prefix (NMIPAddress *address);

Gets the IP address prefix (ie "24" or "30" etc) property of this address object.

#### Parameters

address | the NMIPAddress |

#### Returns

the IP address prefix

### nm_ip_address_set_prefix ()

    void
    nm_ip_address_set_prefix (NMIPAddress *address,
                              guint prefix);

Sets the IP address prefix property of this address object.

#### Parameters

address | the NMIPAddress |
prefix | the IP address prefix |

### nm_ip_address_get_attribute_names ()

    char **
    nm_ip_address_get_attribute_names (NMIPAddress *address);

Gets an array of attribute names defined on `address` .

#### Parameters

address | the NMIPAddress |

#### Returns

a `NULL`-terminated array of attribute names,.

[transfer full]

### nm_ip_address_get_attribute ()

    GVariant *
    nm_ip_address_get_attribute (NMIPAddress *address,
                                 const char *name);

Gets the value of the attribute with name `name` on `address`

#### Parameters

address | the NMIPAddress |
name | the name of an address attribute |

#### Returns

the value of the attribute with name `name` on `address` , or `NULL` if `address` has no such attribute.

[transfer none]

### nm_ip_address_set_attribute ()

    void
    nm_ip_address_set_attribute (NMIPAddress *address,
                                 const char *name,
                                 GVariant *value);

Sets or clears the named attribute on `address` to the given value.

#### Parameters

address | the NMIPAddress |
name | the name of an address attribute |
value | the value. | [transfer none][nullable]

### nm_ip_route_new ()

    NMIPRoute *
    nm_ip_route_new (int family,
                     const char *dest,
                     guint prefix,
                     const char *next_hop,
                     gint64 metric,
                     GError **error);

Creates a new NMIPRoute object.

#### Parameters

family | the IP address family (`AF_INET` or `AF_INET6`) |
dest | the IP address of the route's destination |
prefix | the address prefix length |
next_hop | the IP address of the next hop (or `NULL`). | [nullable]
metric | the route metric (or -1 for "default") |
error | location to store error, or `NULL` |

#### Returns

the new NMIPRoute object, or `NULL` on error.

[transfer full]

### nm_ip_route_new_binary ()

    NMIPRoute *
    nm_ip_route_new_binary (int family,
                            gconstpointer dest,
                            guint prefix,
                            gconstpointer next_hop,
                            gint64 metric,
                            GError **error);

Creates a new NMIPRoute object. `dest` and `next_hop` (if non-`NULL`) must point to buffers of the correct size for `family` .

#### Parameters

family | the IP address family (`AF_INET` or `AF_INET6`) |
dest | the IP address of the route's destination |
prefix | the address prefix length |
next_hop | the IP address of the next hop (or `NULL`). | [nullable]
metric | the route metric (or -1 for "default") |
error | location to store error, or `NULL` |

#### Returns

the new NMIPRoute object, or `NULL` on error.

[transfer full]

### nm_ip_route_ref ()

    void
    nm_ip_route_ref (NMIPRoute *route);

Increases the reference count of the object.

#### Parameters

route | the NMIPRoute |

### nm_ip_route_unref ()

    void
    nm_ip_route_unref (NMIPRoute *route);

Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed.

#### Parameters

route | the NMIPRoute |

### nm_ip_route_equal ()

    gboolean
    nm_ip_route_equal (NMIPRoute *route,
                       NMIPRoute *other);

Determines if two NMIPRoute objects contain the same destination, prefix, next hop, and metric. (Attributes are not compared.)

#### Parameters

route | the NMIPRoute |
other | the NMIPRoute to compare `route` to. |

#### Returns

`TRUE` if the objects contain the same values, `FALSE` if they do not.

### nm_ip_route_equal_full ()

    gboolean
    nm_ip_route_equal_full (NMIPRoute *route,
                            NMIPRoute *other,
                            guint cmp_flags);

Determines if two NMIPRoute objects contain the same destination, prefix, next hop, and metric.

#### Parameters

route | the NMIPRoute |
other | the NMIPRoute to compare `route` to. |
cmp_flags | tune how to compare attributes. Currently, only NM_IP_ROUTE_EQUAL_CMP_FLAGS_NONE (0) and NM_IP_ROUTE_EQUAL_CMP_FLAGS_WITH_ATTRS (1) is supported. |

#### Returns

`TRUE` if the objects contain the same values, `FALSE` if they do not.

Since: 1.10

### nm_ip_route_dup ()

    NMIPRoute *
    nm_ip_route_dup (NMIPRoute *route);

Creates a copy of `route`

#### Parameters

route | the NMIPRoute |

#### Returns

a copy of `route`

This API was part of public headers before 1.32.0 but was erroneously not exported in the ABI. It is thus only usable since 1.32.0.

[transfer full]

Since: 1.32

### nm_ip_route_get_family ()

    int
    nm_ip_route_get_family (NMIPRoute *route);

Gets the IP address family (eg, AF_INET) property of this route object.

#### Parameters

route | the NMIPRoute |

#### Returns

the IP address family

### nm_ip_route_get_dest ()

    const char *
    nm_ip_route_get_dest (NMIPRoute *route);

Gets the IP destination address property of this route object.

#### Parameters

route | the NMIPRoute |

#### Returns

the IP address of the route's destination

### nm_ip_route_set_dest ()

    void
    nm_ip_route_set_dest (NMIPRoute *route,
                          const char *dest);

Sets the destination property of this route object.

`dest` must be a valid address of `route` 's family. If you aren't sure you have a valid address, use `nm_inet_is_valid()` to check it.

#### Parameters

route | the NMIPRoute |
dest | the route's destination, as a string |

### nm_ip_route_get_dest_binary ()

    void
    nm_ip_route_get_dest_binary (NMIPRoute *route,
                                 gpointer dest);

Gets the destination property of this route object.

`dest` must point to a buffer that is the correct size for `route` 's family.

[skip]

#### Parameters

route | the NMIPRoute |
dest | a buffer in which to store the destination in binary format. |

### nm_ip_route_set_dest_binary ()

    void
    nm_ip_route_set_dest_binary (NMIPRoute *route,
                                 gconstpointer dest);

Sets the destination property of this route object.

`dest` must point to a buffer that is the correct size for `route` 's family.

[skip]

#### Parameters

route | the NMIPRoute |
dest | the route's destination, in binary format |

### nm_ip_route_get_prefix ()

    guint
    nm_ip_route_get_prefix (NMIPRoute *route);

Gets the IP prefix (ie "24" or "30" etc) of this route.

#### Parameters

route | the NMIPRoute |

#### Returns

the IP prefix

### nm_ip_route_set_prefix ()

    void
    nm_ip_route_set_prefix (NMIPRoute *route,
                            guint prefix);

Sets the prefix property of this route object.

#### Parameters

route | the NMIPRoute |
prefix | the route prefix |

### nm_ip_route_get_next_hop ()

    const char *
    nm_ip_route_get_next_hop (NMIPRoute *route);

Gets the IP address of the next hop of this route; this will be `NULL` if the route has no next hop.

#### Parameters

route | the NMIPRoute |

#### Returns

the IP address of the next hop, or `NULL` if this is a device route.

### nm_ip_route_set_next_hop ()

    void
    nm_ip_route_set_next_hop (NMIPRoute *route,
                              const char *next_hop);

Sets the next-hop property of this route object.

`next_hop` (if non-`NULL`) must be a valid address of `route` 's family. If you aren't sure you have a valid address, use `nm_utils_ipaddr_valid()` to check it.

#### Parameters

route | the NMIPRoute |
next_hop | the route's next hop, as a string. | [nullable]

### nm_ip_route_get_next_hop_binary ()

    gboolean
    nm_ip_route_get_next_hop_binary (NMIPRoute *route,
                                     gpointer next_hop);

Gets the next hop property of this route object.

`next_hop` must point to a buffer that is the correct size for `route` 's family.

[skip]

#### Parameters

route | the NMIPRoute |
next_hop | a buffer in which to store the next hop in binary format. |

#### Returns

`TRUE` if `route` has a next hop, `FALSE` if not (in which case `next_hop` will be zeroed out)

### nm_ip_route_set_next_hop_binary ()

    void
    nm_ip_route_set_next_hop_binary (NMIPRoute *route,
                                     gconstpointer next_hop);

Sets the destination property of this route object.

`next_hop` (if non-`NULL`) must point to a buffer that is the correct size for `route` 's family.

[skip]

#### Parameters

route | the NMIPRoute |
next_hop | the route's next hop, in binary format |

### nm_ip_route_get_metric ()

    gint64
    nm_ip_route_get_metric (NMIPRoute *route);

Gets the route metric property of this route object; lower values indicate "better" or more preferred routes; -1 indicates "default" (meaning NetworkManager will set it appropriately).

#### Parameters

route | the NMIPRoute |

#### Returns

the route metric

### nm_ip_route_set_metric ()

    void
    nm_ip_route_set_metric (NMIPRoute *route,
                            gint64 metric);

Sets the metric property of this route object.

#### Parameters

route | the NMIPRoute |
metric | the route metric (or -1 for "default") |

### nm_ip_route_get_attribute_names ()

    char **
    nm_ip_route_get_attribute_names (NMIPRoute *route);

Gets an array of attribute names defined on `route` .

#### Parameters

route | the NMIPRoute |

#### Returns

a `NULL`-terminated array of attribute names.

[transfer full]

### nm_ip_route_get_attribute ()

    GVariant *
    nm_ip_route_get_attribute (NMIPRoute *route,
                               const char *name);

Gets the value of the attribute with name `name` on `route`

#### Parameters

route | the NMIPRoute |
name | the name of an route attribute |

#### Returns

the value of the attribute with name `name` on `route` , or `NULL` if `route` has no such attribute.

[transfer none]

### nm_ip_route_set_attribute ()

    void
    nm_ip_route_set_attribute (NMIPRoute *route,
                               const char *name,
                               GVariant *value);

Sets the named attribute on `route` to the given value.

#### Parameters

route | the NMIPRoute |
name | the name of a route attribute |
value | the value. | [transfer none][nullable]

### nm_ip_route_get_variant_attribute_spec ()

    const NMVariantAttributeSpec *const *
    nm_ip_route_get_variant_attribute_spec
                                   (void);

#### Returns

the specifiers for route attributes

Since: 1.8

### nm_ip_route_attribute_validate ()

    gboolean
    nm_ip_route_attribute_validate (const char *name,
                                    GVariant *value,
                                    int family,
                                    gboolean *known,
                                    GError **error);

Validates a route attribute, i.e. checks that the attribute is a known one and the value is of the correct type and well-formed.

#### Parameters

name | the attribute name |
value | the attribute value |
family | IP address family of the route |
known | on return, whether the attribute name is a known one. | [out]
error | return location for a GError, or `NULL` |

#### Returns

`TRUE` if the attribute is valid, `FALSE` otherwise

Since: 1.8

### nm_ip_routing_rule_new ()

    NMIPRoutingRule *
    nm_ip_routing_rule_new (int addr_family);

#### Parameters

addr_family | the address family of the routing rule. Must be either `AF_INET` (2) or `AF_INET6` (10). |

#### Returns

a newly created rule instance with the provided address family. The instance is unsealed.

[transfer full]

Since: 1.18

### nm_ip_routing_rule_new_clone ()

    NMIPRoutingRule *
    nm_ip_routing_rule_new_clone (const NMIPRoutingRule *rule);

Since 1.42, ref-counting of NMIPRoutingRule is thread-safe.

#### Parameters

rule | the NMIPRoutingRule to clone. |

#### Returns

a newly created rule instance with the same settings as `rule` . Note that the instance will always be unsealed.

[transfer full]

Since: 1.18

### nm_ip_routing_rule_ref ()

    NMIPRoutingRule *
    nm_ip_routing_rule_ref (NMIPRoutingRule *self);

Increases the reference count of the instance.

#### Parameters

self | the NMIPRoutingRule instance. | [nullable]

#### Returns

the `self` argument with incremented reference count.

Since 1.42, ref-counting of NMIPRoutingRule is thread-safe.

[transfer full]

Since: 1.18

### nm_ip_routing_rule_unref ()

    void
    nm_ip_routing_rule_unref (NMIPRoutingRule *self);

Decreases the reference count of the instance and destroys the instance if the reference count reaches zero.

Since 1.42, ref-counting of NMIPRoutingRule is thread-safe.

#### Parameters

self | the NMIPRoutingRule instance. | [nullable]

Since: 1.18

### nm_ip_routing_rule_is_sealed ()

    gboolean
    nm_ip_routing_rule_is_sealed (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

whether `self` is sealed. Once sealed, an instance cannot be modified nor unsealed.

Since: 1.18

### nm_ip_routing_rule_seal ()

    void
    nm_ip_routing_rule_seal (NMIPRoutingRule *self);

Seals the routing rule. Afterwards, the instance can no longer be modified, and it is a bug to call any of the accessors that would modify the rule. If `self` was already sealed, this has no effect.

#### Parameters

self | the NMIPRoutingRule instance |

Since: 1.18

### nm_ip_routing_rule_get_addr_family ()

    int
    nm_ip_routing_rule_get_addr_family (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the address family of the rule. Either `AF_INET` or `AF_INET6`.

Since: 1.18

### nm_ip_routing_rule_get_invert ()

    gboolean
    nm_ip_routing_rule_get_invert (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the "invert" setting of the rule.

Since: 1.18

### nm_ip_routing_rule_set_invert ()

    void
    nm_ip_routing_rule_set_invert (NMIPRoutingRule *self,
                                   gboolean invert);

#### Parameters

self | the NMIPRoutingRule instance |
invert | the new value to set |

Since: 1.18

### nm_ip_routing_rule_get_priority ()

    gint64
    nm_ip_routing_rule_get_priority (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the priority. A valid priority is in the range from 0 to `G_MAXUINT32`. If unset, -1 is returned.

Since: 1.18

### nm_ip_routing_rule_set_priority ()

    void
    nm_ip_routing_rule_set_priority (NMIPRoutingRule *self,
                                     gint64 priority);

A valid priority ranges from 0 to `G_MAXUINT32`. "-1" is also allowed to reset the priority. It is a bug calling this function with any other value.

#### Parameters

self | the NMIPRoutingRule instance |
priority | the priority to set |

Since: 1.18

### nm_ip_routing_rule_get_tos ()

    guint8
    nm_ip_routing_rule_get_tos (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the tos of the rule.

Since: 1.18

### nm_ip_routing_rule_set_tos ()

    void
    nm_ip_routing_rule_set_tos (NMIPRoutingRule *self,
                                guint8 tos);

#### Parameters

self | the NMIPRoutingRule instance |
tos | the tos to set |

Since: 1.18

### nm_ip_routing_rule_get_ipproto ()

    guint8
    nm_ip_routing_rule_get_ipproto (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the ipproto of the rule.

Since: 1.18

### nm_ip_routing_rule_set_ipproto ()

    void
    nm_ip_routing_rule_set_ipproto (NMIPRoutingRule *self,
                                    guint8 ipproto);

#### Parameters

self | the NMIPRoutingRule instance |
ipproto | the ipproto to set |

Since: 1.18

### nm_ip_routing_rule_get_source_port_start ()

    guint16
    nm_ip_routing_rule_get_source_port_start
                                   (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the source port start setting.

Since: 1.18

### nm_ip_routing_rule_get_source_port_end ()

    guint16
    nm_ip_routing_rule_get_source_port_end
                                   (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the source port end setting.

Since: 1.18

### nm_ip_routing_rule_set_source_port ()

    void
    nm_ip_routing_rule_set_source_port (NMIPRoutingRule *self,
                                        guint16 start,
                                        guint16 end);

#### Parameters

self | the NMIPRoutingRule instance |
start | the start port to set. |
end | the end port to set. |

Since: 1.18

### nm_ip_routing_rule_get_destination_port_start ()

    guint16
    nm_ip_routing_rule_get_destination_port_start
                                   (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the destination port start setting.

Since: 1.18

### nm_ip_routing_rule_get_destination_port_end ()

    guint16
    nm_ip_routing_rule_get_destination_port_end
                                   (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the destination port end setting.

Since: 1.18

### nm_ip_routing_rule_set_destination_port ()

    void
    nm_ip_routing_rule_set_destination_port
                                   (NMIPRoutingRule *self,
                                    guint16 start,
                                    guint16 end);

#### Parameters

self | the NMIPRoutingRule instance |
start | the start port to set. |
end | the end port to set. |

Since: 1.18

### nm_ip_routing_rule_get_fwmark ()

    guint32
    nm_ip_routing_rule_get_fwmark (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the fwmark setting.

Since: 1.18

### nm_ip_routing_rule_get_fwmask ()

    guint32
    nm_ip_routing_rule_get_fwmask (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the fwmask setting.

Since: 1.18

### nm_ip_routing_rule_set_fwmark ()

    void
    nm_ip_routing_rule_set_fwmark (NMIPRoutingRule *self,
                                   guint32 fwmark,
                                   guint32 fwmask);

#### Parameters

self | the NMIPRoutingRule instance |
fwmark | the fwmark |
fwmask | the fwmask |

Since: 1.18

### nm_ip_routing_rule_get_from_len ()

    guint8
    nm_ip_routing_rule_get_from_len (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the set prefix length for the from/src parameter.

Since: 1.18

### nm_ip_routing_rule_get_from ()

    const char *
    nm_ip_routing_rule_get_from (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the set from/src parameter or `NULL`, if no value is set.

[transfer none]

Since: 1.18

### nm_ip_routing_rule_set_from ()

    void
    nm_ip_routing_rule_set_from (NMIPRoutingRule *self,
                                 const char *from,
                                 guint8 len);

Setting invalid values is accepted, but will later fail during `nm_ip_routing_rule_validate()`.

#### Parameters

self | the NMIPRoutingRule instance |
from | the from/src address to set. The address family must match. | [nullable]
len | the corresponding prefix length of the address. |

Since: 1.18

### nm_ip_routing_rule_get_to_len ()

    guint8
    nm_ip_routing_rule_get_to_len (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the set prefix length for the to/dst parameter.

Since: 1.18

### nm_ip_routing_rule_get_to ()

    const char *
    nm_ip_routing_rule_get_to (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the set to/dst parameter or `NULL`, if no value is set.

[transfer none]

Since: 1.18

### nm_ip_routing_rule_set_to ()

    void
    nm_ip_routing_rule_set_to (NMIPRoutingRule *self,
                               const char *to,
                               guint8 len);

Setting invalid values is accepted, but will later fail during `nm_ip_routing_rule_validate()`.

#### Parameters

self | the NMIPRoutingRule instance |
to | the to/dst address to set. The address family must match. | [nullable]
len | the corresponding prefix length of the address. If `to` is `NULL`, this valid is ignored. |

Since: 1.18

### nm_ip_routing_rule_get_iifname ()

    const char *
    nm_ip_routing_rule_get_iifname (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance. |

#### Returns

the set iifname or `NULL` if unset.

[transfer none]

Since: 1.18

### nm_ip_routing_rule_set_iifname ()

    void
    nm_ip_routing_rule_set_iifname (NMIPRoutingRule *self,
                                    const char *iifname);

The name supports C backslash escaping for non-UTF-8 characters. Note that `nm_ip_routing_rule_from_string()` too uses backslash escaping when tokenizing the words by whitespace. So, in string representation you'd get double backslashes.

#### Parameters

self | the NMIPRoutingRule instance. |
iifname | the iifname to set or `NULL` to unset. | [nullable]

Since: 1.18

### nm_ip_routing_rule_get_oifname ()

    const char *
    nm_ip_routing_rule_get_oifname (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance. |

#### Returns

the set oifname or `NULL` if unset.

[transfer none]

Since: 1.18

### nm_ip_routing_rule_set_oifname ()

    void
    nm_ip_routing_rule_set_oifname (NMIPRoutingRule *self,
                                    const char *oifname);

The name supports C backslash escaping for non-UTF-8 characters. Note that `nm_ip_routing_rule_from_string()` too uses backslash escaping when tokenizing the words by whitespace. So, in string representation you'd get double backslashes.

#### Parameters

self | the NMIPRoutingRule instance. |
oifname | the oifname to set or `NULL` to unset. | [nullable]

Since: 1.18

### nm_ip_routing_rule_get_action ()

    guint8
    nm_ip_routing_rule_get_action (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the set action.

Since: 1.18

### nm_ip_routing_rule_set_action ()

    void
    nm_ip_routing_rule_set_action (NMIPRoutingRule *self,
                                   guint8 action);

Note that currently only certain actions are allowed. `nm_ip_routing_rule_validate()` will reject unsupported actions as invalid.

#### Parameters

self | the NMIPRoutingRule instance |
action | the action to set |

Since: 1.18

### nm_ip_routing_rule_get_table ()

    guint32
    nm_ip_routing_rule_get_table (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the set table.

Since: 1.18

### nm_ip_routing_rule_set_table ()

    void
    nm_ip_routing_rule_set_table (NMIPRoutingRule *self,
                                  guint32 table);

#### Parameters

self | the NMIPRoutingRule instance |
table | the table to set |

Since: 1.18

### nm_ip_routing_rule_get_suppress_prefixlength ()

    gint32
    nm_ip_routing_rule_get_suppress_prefixlength
                                   (const NMIPRoutingRule *self);

#### Parameters

self | the NMIPRoutingRule instance |

#### Returns

the suppress_prefixlength of the rule. -1 means that the value is unset.

Since: 1.20

### nm_ip_routing_rule_set_suppress_prefixlength ()

    void
    nm_ip_routing_rule_set_suppress_prefixlength
                                   (NMIPRoutingRule *self,
                                    gint32 suppress_prefixlength);

#### Parameters

self | the NMIPRoutingRule instance |
suppress_prefixlength | the suppress_prefixlength to set. The value -1 means unset. |

Since: 1.20

### nm_ip_routing_rule_get_uid_range ()

    gboolean
    nm_ip_routing_rule_get_uid_range (const NMIPRoutingRule *self,
                                      guint32 *out_range_start,
                                      guint32 *out_range_end);

#### Parameters

self | the NMIPRoutingRule instance |
out_range_start | returns the start of the range or 0 if the range is not set. | [out][optional]
out_range_end | returns the end of the range or 0 if the range is not set. | [out][optional]

#### Returns

`TRUE` if a uid range is set.

This API was wrongly introduced in the header files for 1.32, but the symbols were not exported. The API only works since 1.34 and newer.

Since: 1.34

### nm_ip_routing_rule_set_uid_range ()

    void
    nm_ip_routing_rule_set_uid_range (NMIPRoutingRule *self,
                                      guint32 uid_range_start,
                                      guint32 uid_range_end);

For a valid range, start must be less or equal to end. If set to an invalid range, the range gets unset.

This API was wrongly introduced in the header files for 1.32, but the symbols were not exported. The API only works since 1.34 and newer.

#### Parameters

self | the NMIPRoutingRule instance |
uid_range_start | the uid_range start to set. |
uid_range_end | the uid_range start to set. |

Since: 1.34

### nm_ip_routing_rule_cmp ()

    int
    nm_ip_routing_rule_cmp (const NMIPRoutingRule *rule,
                            const NMIPRoutingRule *other);

#### Parameters

rule | the NMIPRoutingRule instance to compare. | [nullable]
other | the other NMIPRoutingRule instance to compare. | [nullable]

#### Returns

zero, a positive, or a negative integer to indicate equality or how the arguments compare.

Since: 1.18

### nm_ip_routing_rule_validate ()

    gboolean
    nm_ip_routing_rule_validate (const NMIPRoutingRule *self,
                                 GError **error);

#### Parameters

self | the NMIPRoutingRule instance to validate |
error | the error result if validation fails. |

#### Returns

`TRUE` if the rule validates.

Since: 1.18

### nm_ip_routing_rule_from_string ()

    NMIPRoutingRule *
    nm_ip_routing_rule_from_string (const char *str,
                                    NMIPRoutingRuleAsStringFlags to_string_flags,
                                    GHashTable *extra_args,
                                    GError **error);

#### Parameters

str | the string representation to convert to an NMIPRoutingRule |
to_string_flags | NMIPRoutingRuleAsStringFlags for controlling the string conversion. |
extra_args | extra arguments for controlling the string conversion. Currently, not extra arguments are supported. | [nullable]
error | the error reason. |

#### Returns

the new NMIPRoutingRule or `NULL` on error.

[transfer full]

Since: 1.18

### nm_ip_routing_rule_to_string ()

    char *
    nm_ip_routing_rule_to_string (const NMIPRoutingRule *self,
                                  NMIPRoutingRuleAsStringFlags to_string_flags,
                                  GHashTable *extra_args,
                                  GError **error);

#### Parameters

self | the NMIPRoutingRule instance to convert to string. |
to_string_flags | NMIPRoutingRuleAsStringFlags for controlling the string conversion. |
extra_args | extra arguments for controlling the string conversion. Currently, not extra arguments are supported. | [nullable]
error | the error reason. |

#### Returns

the string representation or `NULL` on error.

[transfer full]

Since: 1.18

### nm_setting_ip_config_get_method ()

    const char *
    nm_setting_ip_config_get_method (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the “method” property of the setting; see NMSettingIP4Config and NMSettingIP6Config for details of the methods available with each type.

### nm_setting_ip_config_get_num_dns ()

    guint
    nm_setting_ip_config_get_num_dns (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the number of configured DNS servers

### nm_setting_ip_config_get_dns ()

    const char *
    nm_setting_ip_config_get_dns (NMSettingIPConfig *setting,
                                  int idx);

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the DNS server to return |

#### Returns

the IP address of the DNS server at index `idx`

### nm_setting_ip_config_add_dns ()

    gboolean
    nm_setting_ip_config_add_dns (NMSettingIPConfig *setting,
                                  const char *dns);

Adds a new DNS server to the setting.

#### Parameters

setting | the NMSettingIPConfig |
dns | the IP address of the DNS server to add |

#### Returns

`TRUE` if the DNS server was added; `FALSE` if the server was already known

Before 1.42, setting `dns` to an invalid string was treated as user-error. Now, also invalid DNS values can be set, but will be rejected later during `nm_connection_verify()`.

### nm_setting_ip_config_remove_dns ()

    void
    nm_setting_ip_config_remove_dns (NMSettingIPConfig *setting,
                                     int idx);

Removes the DNS server at index `idx` .

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the DNS server to remove |

### nm_setting_ip_config_remove_dns_by_value ()

    gboolean
    nm_setting_ip_config_remove_dns_by_value
                                   (NMSettingIPConfig *setting,
                                    const char *dns);

Removes the DNS server `dns` .

#### Parameters

setting | the NMSettingIPConfig |
dns | the DNS server to remove |

#### Returns

`TRUE` if the DNS server was found and removed; `FALSE` if it was not.

Before 1.42, setting `dns` to an invalid string was treated as user-error.

### nm_setting_ip_config_clear_dns ()

    void
    nm_setting_ip_config_clear_dns (NMSettingIPConfig *setting);

Removes all configured DNS servers.

#### Parameters

setting | the NMSettingIPConfig |

### nm_setting_ip_config_get_num_dns_searches ()

    guint
    nm_setting_ip_config_get_num_dns_searches
                                   (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the number of configured DNS search domains

### nm_setting_ip_config_get_dns_search ()

    const char *
    nm_setting_ip_config_get_dns_search (NMSettingIPConfig *setting,
                                         int idx);

Since 1.46, access at index "len" is allowed and returns NULL.

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the DNS search domain to return |

#### Returns

the DNS search domain at index `idx`

### nm_setting_ip_config_add_dns_search ()

    gboolean
    nm_setting_ip_config_add_dns_search (NMSettingIPConfig *setting,
                                         const char *dns_search);

Adds a new DNS search domain to the setting.

#### Parameters

setting | the NMSettingIPConfig |
dns_search | the search domain to add |

#### Returns

`TRUE` if the DNS search domain was added; `FALSE` if the search domain was already known

### nm_setting_ip_config_remove_dns_search ()

    void
    nm_setting_ip_config_remove_dns_search
                                   (NMSettingIPConfig *setting,
                                    int idx);

Removes the DNS search domain at index `idx` .

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the DNS search domain |

### nm_setting_ip_config_remove_dns_search_by_value ()

    gboolean
    nm_setting_ip_config_remove_dns_search_by_value
                                   (NMSettingIPConfig *setting,
                                    const char *dns_search);

Removes the DNS search domain `dns_search` .

#### Parameters

setting | the NMSettingIPConfig |
dns_search | the search domain to remove |

#### Returns

`TRUE` if the DNS search domain was found and removed; `FALSE` if it was not.

### nm_setting_ip_config_clear_dns_searches ()

    void
    nm_setting_ip_config_clear_dns_searches
                                   (NMSettingIPConfig *setting);

Removes all configured DNS search domains.

#### Parameters

setting | the NMSettingIPConfig |

### nm_setting_ip_config_get_num_dns_options ()

    guint
    nm_setting_ip_config_get_num_dns_options
                                   (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the number of configured DNS options

Since: 1.2

### nm_setting_ip_config_has_dns_options ()

    gboolean
    nm_setting_ip_config_has_dns_options (NMSettingIPConfig *setting);

NMSettingIPConfig can have a list of dns-options. If the list is empty, there are two similar (but differentiated) states. Either the options are explicitly set to have no values, or the options are left undefined. The latter means to use a default configuration, while the former explicitly means "no-options".

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

whether DNS options are initialized or left unset (the default).

Since: 1.2

### nm_setting_ip_config_get_dns_option ()

    const char *
    nm_setting_ip_config_get_dns_option (NMSettingIPConfig *setting,
                                         guint idx);

Since 1.46, access at index "len" is allowed and returns NULL.

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the DNS option |

#### Returns

the DNS option at index `idx`

Since: 1.2

### nm_setting_ip_config_add_dns_option ()

    gboolean
    nm_setting_ip_config_add_dns_option (NMSettingIPConfig *setting,
                                         const char *dns_option);

Adds a new DNS option to the setting.

#### Parameters

setting | the NMSettingIPConfig |
dns_option | the DNS option to add |

#### Returns

`TRUE` if the DNS option was added; `FALSE` otherwise

Since: 1.2

### nm_setting_ip_config_remove_dns_option ()

    void
    nm_setting_ip_config_remove_dns_option
                                   (NMSettingIPConfig *setting,
                                    int idx);

Removes the DNS option at index `idx` .

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the DNS option |

Since: 1.2

### nm_setting_ip_config_remove_dns_option_by_value ()

    gboolean
    nm_setting_ip_config_remove_dns_option_by_value
                                   (NMSettingIPConfig *setting,
                                    const char *dns_option);

Removes the DNS option `dns_option` .

#### Parameters

setting | the NMSettingIPConfig |
dns_option | the DNS option to remove |

#### Returns

`TRUE` if the DNS option was found and removed; `FALSE` if it was not.

Since: 1.2

### nm_setting_ip_config_clear_dns_options ()

    void
    nm_setting_ip_config_clear_dns_options
                                   (NMSettingIPConfig *setting,
                                    gboolean is_set);

Removes all configured DNS options.

#### Parameters

setting | the NMSettingIPConfig |
is_set | the dns-options can be either empty or unset (default). Specify how to clear the options. |

Since: 1.2

### nm_setting_ip_config_get_dns_priority ()

    int
    nm_setting_ip_config_get_dns_priority (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the priority of DNS servers

Since: 1.4

### nm_setting_ip_config_get_num_addresses ()

    guint
    nm_setting_ip_config_get_num_addresses
                                   (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the number of configured addresses

### nm_setting_ip_config_get_address ()

    NMIPAddress *
    nm_setting_ip_config_get_address (NMSettingIPConfig *setting,
                                      int idx);

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the address to return |

#### Returns

the address at index `idx` .

[transfer none]

### nm_setting_ip_config_add_address ()

    gboolean
    nm_setting_ip_config_add_address (NMSettingIPConfig *setting,
                                      NMIPAddress *address);

Adds a new IP address and associated information to the setting. The given address is duplicated internally and is not changed by this function.

#### Parameters

setting | the NMSettingIPConfig |
address | the new address to add |

#### Returns

`TRUE` if the address was added; `FALSE` if the address was already known.

### nm_setting_ip_config_remove_address ()

    void
    nm_setting_ip_config_remove_address (NMSettingIPConfig *setting,
                                         int idx);

Removes the address at index `idx` .

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the address to remove |

### nm_setting_ip_config_remove_address_by_value ()

    gboolean
    nm_setting_ip_config_remove_address_by_value
                                   (NMSettingIPConfig *setting,
                                    NMIPAddress *address);

Removes the address `address` .

#### Parameters

setting | the NMSettingIPConfig |
address | the IP address to remove |

#### Returns

`TRUE` if the address was found and removed; `FALSE` if it was not.

### nm_setting_ip_config_clear_addresses ()

    void
    nm_setting_ip_config_clear_addresses (NMSettingIPConfig *setting);

Removes all configured addresses.

#### Parameters

setting | the NMSettingIPConfig |

### nm_setting_ip_config_get_gateway ()

    const char *
    nm_setting_ip_config_get_gateway (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the IP address of the gateway associated with this configuration, or `NULL`.

### nm_setting_ip_config_get_num_routes ()

    guint
    nm_setting_ip_config_get_num_routes (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the number of configured routes

### nm_setting_ip_config_get_route ()

    NMIPRoute *
    nm_setting_ip_config_get_route (NMSettingIPConfig *setting,
                                    int idx);

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the route to return |

#### Returns

the route at index `idx` .

[transfer none]

### nm_setting_ip_config_add_route ()

    gboolean
    nm_setting_ip_config_add_route (NMSettingIPConfig *setting,
                                    NMIPRoute *route);

Appends a new route and associated information to the setting. The given route is duplicated internally and is not changed by this function. If an identical route (considering attributes as well) already exists, the route is not added and the function returns `FALSE`.

Note that before 1.10, this function would not consider route attributes and not add a route that has an existing route with same dest/prefix,next_hop,metric parameters.

#### Parameters

setting | the NMSettingIPConfig |
route | the route to add |

#### Returns

`TRUE` if the route was added; `FALSE` if the route was already known.

### nm_setting_ip_config_remove_route ()

    void
    nm_setting_ip_config_remove_route (NMSettingIPConfig *setting,
                                       int idx);

Removes the route at index `idx` .

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the route |

### nm_setting_ip_config_remove_route_by_value ()

    gboolean
    nm_setting_ip_config_remove_route_by_value
                                   (NMSettingIPConfig *setting,
                                    NMIPRoute *route);

Removes the first matching route that matches `route` . Note that before 1.10, this function would only compare dest/prefix,next_hop,metric and ignore route attributes. Now, `route` must match exactly.

#### Parameters

setting | the NMSettingIPConfig |
route | the route to remove |

#### Returns

`TRUE` if the route was found and removed; `FALSE` if it was not.

### nm_setting_ip_config_clear_routes ()

    void
    nm_setting_ip_config_clear_routes (NMSettingIPConfig *setting);

Removes all configured routes.

#### Parameters

setting | the NMSettingIPConfig |

### nm_setting_ip_config_get_route_metric ()

    gint64
    nm_setting_ip_config_get_route_metric (NMSettingIPConfig *setting);

Returns the value contained in the “route-metric” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the route metric that is used for routes that don't explicitly specify a metric. See “route-metric” for more details.

### nm_setting_ip_config_get_route_table ()

    guint32
    nm_setting_ip_config_get_route_table (NMSettingIPConfig *setting);

Returns the value contained in the “route-table” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the configured route-table.

Since: 1.10

### nm_setting_ip_config_get_num_routing_rules ()

    guint
    nm_setting_ip_config_get_num_routing_rules
                                   (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the number of configured routing rules

Since: 1.18

### nm_setting_ip_config_get_routing_rule ()

    NMIPRoutingRule *
    nm_setting_ip_config_get_routing_rule (NMSettingIPConfig *setting,
                                           guint idx);

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the routing_rule to return |

#### Returns

the routing rule at index `idx` .

[transfer none]

Since: 1.18

### nm_setting_ip_config_add_routing_rule ()

    void
    nm_setting_ip_config_add_routing_rule (NMSettingIPConfig *setting,
                                           NMIPRoutingRule *routing_rule);

Appends a new routing-rule and associated information to the setting. The given routing rules gets sealed and the reference count is incremented. The function does not check whether an identical rule already exists and always appends the rule to the end of the list.

#### Parameters

setting | the NMSettingIPConfig |
routing_rule | the NMIPRoutingRule to add. The address family of the added rule must be compatible with the setting. |

Since: 1.18

### nm_setting_ip_config_remove_routing_rule ()

    void
    nm_setting_ip_config_remove_routing_rule
                                   (NMSettingIPConfig *setting,
                                    guint idx);

Removes the routing_rule at index `idx` .

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the routing_rule |

Since: 1.18

### nm_setting_ip_config_clear_routing_rules ()

    void
    nm_setting_ip_config_clear_routing_rules
                                   (NMSettingIPConfig *setting);

Removes all configured routing rules.

#### Parameters

setting | the NMSettingIPConfig |

Since: 1.18

### nm_setting_ip_config_get_ignore_auto_routes ()

    gboolean
    nm_setting_ip_config_get_ignore_auto_routes
                                   (NMSettingIPConfig *setting);

Returns the value contained in the “ignore-auto-routes” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

`TRUE` if automatically configured (ie via DHCP) routes should be ignored.

### nm_setting_ip_config_get_ignore_auto_dns ()

    gboolean
    nm_setting_ip_config_get_ignore_auto_dns
                                   (NMSettingIPConfig *setting);

Returns the value contained in the “ignore-auto-dns” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

`TRUE` if automatically configured (ie via DHCP) DNS information should be ignored.

### nm_setting_ip_config_get_dhcp_hostname ()

    const char *
    nm_setting_ip_config_get_dhcp_hostname
                                   (NMSettingIPConfig *setting);

Returns the value contained in the “dhcp-hostname” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the configured hostname to send to the DHCP server

### nm_setting_ip_config_get_dhcp_send_hostname ()

    gboolean
    nm_setting_ip_config_get_dhcp_send_hostname
                                   (NMSettingIPConfig *setting);

Returns the value contained in the “dhcp-send-hostname” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

`TRUE` if NetworkManager should send the machine hostname to the DHCP server when requesting addresses to allow the server to automatically update DNS information for this machine.

### nm_setting_ip_config_get_dhcp_dscp ()

    const char *
    nm_setting_ip_config_get_dhcp_dscp (NMSettingIPConfig *setting);

Returns the value contained in the “dhcp-dscp” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the value for the DSCP field for DHCP

Since: 1.46

### nm_setting_ip_config_get_never_default ()

    gboolean
    nm_setting_ip_config_get_never_default
                                   (NMSettingIPConfig *setting);

Returns the value contained in the “never-default” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

`TRUE` if this connection should never be the default connection

### nm_setting_ip_config_get_may_fail ()

    gboolean
    nm_setting_ip_config_get_may_fail (NMSettingIPConfig *setting);

Returns the value contained in the “may-fail” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

`TRUE` if this connection doesn't require this type of IP addressing to complete for the connection to succeed.

### nm_setting_ip_config_get_dad_timeout ()

    int
    nm_setting_ip_config_get_dad_timeout (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the “dad-timeout” property.

Since: 1.2

### nm_setting_ip_config_get_dhcp_timeout ()

    int
    nm_setting_ip_config_get_dhcp_timeout (NMSettingIPConfig *setting);

Returns the value contained in the “dhcp-timeout” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the configured DHCP timeout in seconds. 0 = default for the particular kind of device.

Since: 1.2

### nm_setting_ip_config_get_required_timeout ()

    int
    nm_setting_ip_config_get_required_timeout
                                   (NMSettingIPConfig *setting);

Returns the value contained in the “required-timeout” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the required timeout for the address family

Since: 1.34

### nm_setting_ip_config_get_dhcp_iaid ()

    const char *
    nm_setting_ip_config_get_dhcp_iaid (NMSettingIPConfig *setting);

Returns the value contained in the “dhcp-iaid” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the configured DHCP IAID (Identity Association Identifier)

Since: 1.42

### nm_setting_ip_config_get_dhcp_hostname_flags ()

    NMDhcpHostnameFlags
    nm_setting_ip_config_get_dhcp_hostname_flags
                                   (NMSettingIPConfig *setting);

Returns the value contained in the “dhcp-hostname-flags” property.

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

flags for the DHCP hostname and FQDN

Since: 1.22

### nm_setting_ip_config_get_dhcp_reject_servers ()

    const char *const *
    nm_setting_ip_config_get_dhcp_reject_servers
                                   (NMSettingIPConfig *setting,
                                    guint *out_len);

#### Parameters

setting | the NMSettingIPConfig |
out_len | the number of returned elements. | [out][optional]

#### Returns

A `NULL` terminated array of DHCP reject servers. Even if no reject servers are configured, this always returns a non `NULL` value.

[array length=out_len zero-terminated=1][transfer none]

Since: 1.28

### nm_setting_ip_config_add_dhcp_reject_server ()

    void
    nm_setting_ip_config_add_dhcp_reject_server
                                   (NMSettingIPConfig *setting,
                                    const char *server);

Adds a new DHCP reject server to the setting.

#### Parameters

setting | the NMSettingIPConfig |
server | the DHCP reject server to add |

Since: 1.28

### nm_setting_ip_config_remove_dhcp_reject_server ()

    void
    nm_setting_ip_config_remove_dhcp_reject_server
                                   (NMSettingIPConfig *setting,
                                    guint idx);

Removes the DHCP reject server at index `idx` .

#### Parameters

setting | the NMSettingIPConfig |
idx | index number of the DHCP reject server |

Since: 1.28

### nm_setting_ip_config_clear_dhcp_reject_servers ()

    void
    nm_setting_ip_config_clear_dhcp_reject_servers
                                   (NMSettingIPConfig *setting);

Removes all configured DHCP reject servers.

#### Parameters

setting | the NMSettingIPConfig |

Since: 1.28

### nm_setting_ip_config_get_auto_route_ext_gw ()

    NMTernary
    nm_setting_ip_config_get_auto_route_ext_gw
                                   (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the “auto-route-ext-gw” property of the setting

Since: 1.42

### nm_setting_ip_config_get_replace_local_rule ()

    NMTernary
    nm_setting_ip_config_get_replace_local_rule
                                   (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the “replace-local-rule” property of the setting

Since: 1.44

### nm_setting_ip_config_get_dhcp_send_release ()

    NMTernary
    nm_setting_ip_config_get_dhcp_send_release
                                   (NMSettingIPConfig *setting);

#### Parameters

setting | the NMSettingIPConfig |

#### Returns

the “dhcp-send-release” property of the setting

Since: 1.48

## Types and Values

### NM_IP_ADDRESS_ATTRIBUTE_LABEL

    #define NM_IP_ADDRESS_ATTRIBUTE_LABEL "label"

### enum NMIPAddressCmpFlags

Compare flags for `nm_ip_address_cmp_full()`.

#### Members

NM_IP_ADDRESS_CMP_FLAGS_NONE | no flags. |
NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS | when comparing two addresses, also consider their attributes. Warning: note that attributes are GVariants and they don't have a total order. In other words, if the address differs only by their attributes, the returned compare order is not total. In that case, the return value merely indicates equality (zero) or inequality. |

Since: 1.22

### NM_IP_ROUTE_ATTRIBUTE_ADVMSS

    #define NM_IP_ROUTE_ATTRIBUTE_ADVMSS        "advmss"

### NM_IP_ROUTE_ATTRIBUTE_CWND

    #define NM_IP_ROUTE_ATTRIBUTE_CWND          "cwnd"

### NM_IP_ROUTE_ATTRIBUTE_FROM

    #define NM_IP_ROUTE_ATTRIBUTE_FROM          "from"

### NM_IP_ROUTE_ATTRIBUTE_INITCWND

    #define NM_IP_ROUTE_ATTRIBUTE_INITCWND      "initcwnd"

### NM_IP_ROUTE_ATTRIBUTE_INITRWND

    #define NM_IP_ROUTE_ATTRIBUTE_INITRWND      "initrwnd"

### NM_IP_ROUTE_ATTRIBUTE_LOCK_ADVMSS

    #define NM_IP_ROUTE_ATTRIBUTE_LOCK_ADVMSS   "lock-advmss"

### NM_IP_ROUTE_ATTRIBUTE_LOCK_CWND

    #define NM_IP_ROUTE_ATTRIBUTE_LOCK_CWND     "lock-cwnd"

### NM_IP_ROUTE_ATTRIBUTE_LOCK_INITCWND

    #define NM_IP_ROUTE_ATTRIBUTE_LOCK_INITCWND "lock-initcwnd"

### NM_IP_ROUTE_ATTRIBUTE_LOCK_INITRWND

    #define NM_IP_ROUTE_ATTRIBUTE_LOCK_INITRWND "lock-initrwnd"

### NM_IP_ROUTE_ATTRIBUTE_LOCK_MTU

    #define NM_IP_ROUTE_ATTRIBUTE_LOCK_MTU      "lock-mtu"

### NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW

    #define NM_IP_ROUTE_ATTRIBUTE_LOCK_WINDOW   "lock-window"

### NM_IP_ROUTE_ATTRIBUTE_MTU

    #define NM_IP_ROUTE_ATTRIBUTE_MTU           "mtu"

### NM_IP_ROUTE_ATTRIBUTE_ONLINK

    #define NM_IP_ROUTE_ATTRIBUTE_ONLINK        "onlink"

### NM_IP_ROUTE_ATTRIBUTE_QUICKACK

    #define NM_IP_ROUTE_ATTRIBUTE_QUICKACK      "quickack"

### NM_IP_ROUTE_ATTRIBUTE_RTO_MIN

    #define NM_IP_ROUTE_ATTRIBUTE_RTO_MIN       "rto_min"

### NM_IP_ROUTE_ATTRIBUTE_SCOPE

    #define NM_IP_ROUTE_ATTRIBUTE_SCOPE         "scope"

### NM_IP_ROUTE_ATTRIBUTE_SRC

    #define NM_IP_ROUTE_ATTRIBUTE_SRC           "src"

### NM_IP_ROUTE_ATTRIBUTE_TABLE

    #define NM_IP_ROUTE_ATTRIBUTE_TABLE         "table"

### NM_IP_ROUTE_ATTRIBUTE_TOS

    #define NM_IP_ROUTE_ATTRIBUTE_TOS           "tos"

### NM_IP_ROUTE_ATTRIBUTE_TYPE

    #define NM_IP_ROUTE_ATTRIBUTE_TYPE          "type"

### NM_IP_ROUTE_ATTRIBUTE_WINDOW

    #define NM_IP_ROUTE_ATTRIBUTE_WINDOW        "window"

### NM_IP_ROUTE_ATTRIBUTE_WEIGHT

    #define NM_IP_ROUTE_ATTRIBUTE_WEIGHT        "weight"

### enum NMIPRoutingRuleAsStringFlags

#### Members

NM_IP_ROUTING_RULE_AS_STRING_FLAGS_NONE | no flags selected. |
NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET | whether to allow parsing IPv4 addresses. |
NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET6 | whether to allow parsing IPv6 addresses. If both `NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET` and `NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET6` are unset, it's the same as setting them both. |
NM_IP_ROUTING_RULE_AS_STRING_FLAGS_VALIDATE | if set, ensure that the rule verfies or fail. |

Since: 1.18

### NM_SETTING_IP_CONFIG_DAD_TIMEOUT_MAX

    #define NM_SETTING_IP_CONFIG_DAD_TIMEOUT_MAX 30000

### NM_SETTING_IP_CONFIG_METHOD

    #define NM_SETTING_IP_CONFIG_METHOD              "method"

### NM_SETTING_IP_CONFIG_DNS

    #define NM_SETTING_IP_CONFIG_DNS                 "dns"

### NM_SETTING_IP_CONFIG_DNS_SEARCH

    #define NM_SETTING_IP_CONFIG_DNS_SEARCH          "dns-search"

### NM_SETTING_IP_CONFIG_DNS_OPTIONS

    #define NM_SETTING_IP_CONFIG_DNS_OPTIONS         "dns-options"

### NM_SETTING_IP_CONFIG_DNS_PRIORITY

    #define NM_SETTING_IP_CONFIG_DNS_PRIORITY        "dns-priority"

### NM_SETTING_IP_CONFIG_ADDRESSES

    #define NM_SETTING_IP_CONFIG_ADDRESSES           "addresses"

### NM_SETTING_IP_CONFIG_GATEWAY

    #define NM_SETTING_IP_CONFIG_GATEWAY             "gateway"

### NM_SETTING_IP_CONFIG_ROUTES

    #define NM_SETTING_IP_CONFIG_ROUTES              "routes"

### NM_SETTING_IP_CONFIG_ROUTE_METRIC

    #define NM_SETTING_IP_CONFIG_ROUTE_METRIC        "route-metric"

### NM_SETTING_IP_CONFIG_ROUTE_TABLE

    #define NM_SETTING_IP_CONFIG_ROUTE_TABLE         "route-table"

### NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES

    #define NM_SETTING_IP_CONFIG_IGNORE_AUTO_ROUTES  "ignore-auto-routes"

### NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS

    #define NM_SETTING_IP_CONFIG_IGNORE_AUTO_DNS     "ignore-auto-dns"

### NM_SETTING_IP_CONFIG_DHCP_HOSTNAME

    #define NM_SETTING_IP_CONFIG_DHCP_HOSTNAME       "dhcp-hostname"

### NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME

    #define NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME  "dhcp-send-hostname"

### NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS

    #define NM_SETTING_IP_CONFIG_DHCP_HOSTNAME_FLAGS "dhcp-hostname-flags"

### NM_SETTING_IP_CONFIG_DHCP_DSCP

    #define NM_SETTING_IP_CONFIG_DHCP_DSCP           "dhcp-dscp"

### NM_SETTING_IP_CONFIG_NEVER_DEFAULT

    #define NM_SETTING_IP_CONFIG_NEVER_DEFAULT       "never-default"

### NM_SETTING_IP_CONFIG_MAY_FAIL

    #define NM_SETTING_IP_CONFIG_MAY_FAIL            "may-fail"

### NM_SETTING_IP_CONFIG_DAD_TIMEOUT

    #define NM_SETTING_IP_CONFIG_DAD_TIMEOUT         "dad-timeout"

### NM_SETTING_IP_CONFIG_DHCP_TIMEOUT

    #define NM_SETTING_IP_CONFIG_DHCP_TIMEOUT        "dhcp-timeout"

### NM_SETTING_IP_CONFIG_REQUIRED_TIMEOUT

    #define NM_SETTING_IP_CONFIG_REQUIRED_TIMEOUT    "required-timeout"

### NM_SETTING_IP_CONFIG_DHCP_IAID

    #define NM_SETTING_IP_CONFIG_DHCP_IAID           "dhcp-iaid"

### NM_SETTING_IP_CONFIG_DHCP_REJECT_SERVERS

    #define NM_SETTING_IP_CONFIG_DHCP_REJECT_SERVERS "dhcp-reject-servers"

### NM_SETTING_IP_CONFIG_AUTO_ROUTE_EXT_GW

    #define NM_SETTING_IP_CONFIG_AUTO_ROUTE_EXT_GW   "auto-route-ext-gw"

### NM_SETTING_IP_CONFIG_REPLACE_LOCAL_RULE

    #define NM_SETTING_IP_CONFIG_REPLACE_LOCAL_RULE  "replace-local-rule"

### NM_SETTING_IP_CONFIG_DHCP_SEND_RELEASE

    #define NM_SETTING_IP_CONFIG_DHCP_SEND_RELEASE   "dhcp-send-release"

### NM_SETTING_IP_CONFIG_ROUTING_RULES

    #define NM_SETTING_IP_CONFIG_ROUTING_RULES "routing-rules"

### NM_SETTING_DNS_OPTION_DEBUG

    #define NM_SETTING_DNS_OPTION_DEBUG                 "debug"

### NM_SETTING_DNS_OPTION_NDOTS

    #define NM_SETTING_DNS_OPTION_NDOTS                 "ndots"

### NM_SETTING_DNS_OPTION_TIMEOUT

    #define NM_SETTING_DNS_OPTION_TIMEOUT               "timeout"

### NM_SETTING_DNS_OPTION_ATTEMPTS

    #define NM_SETTING_DNS_OPTION_ATTEMPTS              "attempts"

### NM_SETTING_DNS_OPTION_ROTATE

    #define NM_SETTING_DNS_OPTION_ROTATE                "rotate"

### NM_SETTING_DNS_OPTION_NO_CHECK_NAMES

    #define NM_SETTING_DNS_OPTION_NO_CHECK_NAMES        "no-check-names"

### NM_SETTING_DNS_OPTION_INET6

    #define NM_SETTING_DNS_OPTION_INET6                 "inet6"

### NM_SETTING_DNS_OPTION_IP6_BYTESTRING

    #define NM_SETTING_DNS_OPTION_IP6_BYTESTRING        "ip6-bytestring"

### NM_SETTING_DNS_OPTION_IP6_DOTINT

    #define NM_SETTING_DNS_OPTION_IP6_DOTINT            "ip6-dotint"

### NM_SETTING_DNS_OPTION_NO_IP6_DOTINT

    #define NM_SETTING_DNS_OPTION_NO_IP6_DOTINT         "no-ip6-dotint"

### NM_SETTING_DNS_OPTION_EDNS0

    #define NM_SETTING_DNS_OPTION_EDNS0                 "edns0"

### NM_SETTING_DNS_OPTION_SINGLE_REQUEST

    #define NM_SETTING_DNS_OPTION_SINGLE_REQUEST        "single-request"

### NM_SETTING_DNS_OPTION_SINGLE_REQUEST_REOPEN

    #define NM_SETTING_DNS_OPTION_SINGLE_REQUEST_REOPEN "single-request-reopen"

### NM_SETTING_DNS_OPTION_NO_TLD_QUERY

    #define NM_SETTING_DNS_OPTION_NO_TLD_QUERY          "no-tld-query"

### NM_SETTING_DNS_OPTION_USE_VC

    #define NM_SETTING_DNS_OPTION_USE_VC                "use-vc"

### NM_SETTING_DNS_OPTION_NO_RELOAD

    #define NM_SETTING_DNS_OPTION_NO_RELOAD             "no-reload"

### NM_SETTING_DNS_OPTION_TRUST_AD

    #define NM_SETTING_DNS_OPTION_TRUST_AD              "trust-ad"

### NM_SETTING_DNS_OPTION_NO_AAAA

    #define NM_SETTING_DNS_OPTION_NO_AAAA               "no-aaaa"

### NM_SETTING_DNS_OPTION_INTERNAL_NO_ADD_EDNS0

    #define NM_SETTING_DNS_OPTION_INTERNAL_NO_ADD_EDNS0    "_no-add-edns0"

### NM_SETTING_DNS_OPTION_INTERNAL_NO_ADD_TRUST_AD

    #define NM_SETTING_DNS_OPTION_INTERNAL_NO_ADD_TRUST_AD "_no-add-trust-ad"

### enum NMDhcpHostnameFlags

NMDhcpHostnameFlags describe flags related to the DHCP hostname and FQDN.

#### Members

NM_DHCP_HOSTNAME_FLAG_NONE | no flag set. The default value from Networkmanager global configuration is used. If such value is unset or still zero, the DHCP request will use standard FQDN flags, i.e. `NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE` and `NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED` for IPv4 and `NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE` for IPv6. |
NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE | whether the server should do the A RR (FQDN-to-address) DNS updates. |
NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED | if set, the FQDN is encoded using canonical wire format. Otherwise it uses the deprecated ASCII encoding. This flag is allowed only for DHCPv4. |
NM_DHCP_HOSTNAME_FLAG_FQDN_NO_UPDATE | when not set, request the server to perform updates (the PTR RR and possibly the A RR based on the `NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE` flag). If this is set, the `NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE` flag should be cleared. |
NM_DHCP_HOSTNAME_FLAG_FQDN_CLEAR_FLAGS | when set, no FQDN flags are sent in the DHCP FQDN option. When cleared and all other FQDN flags are zero, standard FQDN flags are sent. This flag is incompatible with any other FQDN flag. |

Since: 1.22

## See Also

NMSettingIP4Config, NMSettingIP6Config