NMSettingIP4Config: libnm Reference Manual

## NMSettingIP4Config NMSettingIP4Config — Describes IPv4 addressing, routing, and name service properties |

## Functions

NMSetting * | nm_setting_ip4_config_new ()
const char * | nm_setting_ip4_config_get_dhcp_client_id ()
const char * | nm_setting_ip4_config_get_dhcp_fqdn ()
const char * | nm_setting_ip4_config_get_dhcp_vendor_class_identifier ()
NMSettingIP4LinkLocal | nm_setting_ip4_config_get_link_local ()
NMSettingIP4DhcpIpv6OnlyPreferred | nm_setting_ip4_config_get_dhcp_ipv6_only_preferred ()
NMSettingIp4ConfigClat | nm_setting_ip4_config_get_clat ()

## Types and Values

#define | NM_SETTING_IP4_CONFIG_SETTING_NAME
#define | NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID
#define | NM_SETTING_IP4_CONFIG_DHCP_FQDN
#define | NM_SETTING_IP4_CONFIG_DHCP_VENDOR_CLASS_IDENTIFIER
#define | NM_SETTING_IP4_CONFIG_DHCP_IPV6_ONLY_PREFERRED
#define | NM_SETTING_IP4_CONFIG_LINK_LOCAL
#define | NM_SETTING_IP4_CONFIG_CLAT
#define | NM_SETTING_IP4_CONFIG_METHOD_AUTO
#define | NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL
#define | NM_SETTING_IP4_CONFIG_METHOD_MANUAL
#define | NM_SETTING_IP4_CONFIG_METHOD_SHARED
#define | NM_SETTING_IP4_CONFIG_METHOD_DISABLED
enum | NMSettingIP4LinkLocal
enum | NMSettingIP4DhcpIpv6OnlyPreferred
enum | NMSettingIp4ConfigClat

## Object Hierarchy

        GEnum
        ├── NMSettingIP4DhcpIpv6OnlyPreferred
        ├── NMSettingIP4LinkLocal
        ╰── NMSettingIp4ConfigClat

## Description

The NMSettingIP4Config object is a NMSetting subclass that describes properties related to IPv4 addressing, routing, and Domain Name Service.

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

NetworkManager supports 5 values for the “method” property for IPv4. If "auto" is specified then the appropriate automatic method (DHCP, PPP, etc) is used for the interface and most other properties can be left unset. If "link-local" is specified, then a link-local address in the 169.254/16 range 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 "shared" is specified (indicating that this connection will provide network access to other computers) then the interface is assigned an address in the 10.42.x.1/24 range and a DHCP and forwarding DNS server are started, and the interface is NAT-ed to the current default network connection. "disabled" means IPv4 will not be used on this connection.

## Functions

### nm_setting_ip4_config_new ()

    NMSetting *
    nm_setting_ip4_config_new (void);

Creates a new NMSettingIP4Config object with default values.

#### Returns

the new empty NMSettingIP4Config object.

[transfer full]

### nm_setting_ip4_config_get_dhcp_client_id ()

    const char *
    nm_setting_ip4_config_get_dhcp_client_id
                                   (NMSettingIP4Config *setting);

Returns the value contained in the “dhcp-client-id” property.

#### Parameters

setting | the NMSettingIP4Config |

#### Returns

the configured Client ID to send to the DHCP server when requesting addresses via DHCP.

### nm_setting_ip4_config_get_dhcp_fqdn ()

    const char *
    nm_setting_ip4_config_get_dhcp_fqdn (NMSettingIP4Config *setting);

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

#### Parameters

setting | the NMSettingIP4Config |

#### Returns

the configured FQDN to send to the DHCP server

Since: 1.2

### nm_setting_ip4_config_get_dhcp_vendor_class_identifier ()

    const char *
    nm_setting_ip4_config_get_dhcp_vendor_class_identifier
                                   (NMSettingIP4Config *setting);

Returns the value contained in the “dhcp_vendor_class_identifier” property.

#### Parameters

setting | the NMSettingIP4Config |

#### Returns

the vendor class identifier option to send to the DHCP server

Since: 1.28

### nm_setting_ip4_config_get_link_local ()

    NMSettingIP4LinkLocal
    nm_setting_ip4_config_get_link_local (NMSettingIP4Config *setting);

Returns the value contained in the “link_local” property.

#### Parameters

setting | the NMSettingIP4Config |

#### Returns

the link-local configuration

Since: 1.42

### nm_setting_ip4_config_get_dhcp_ipv6_only_preferred ()

    NMSettingIP4DhcpIpv6OnlyPreferred
    nm_setting_ip4_config_get_dhcp_ipv6_only_preferred
                                   (NMSettingIP4Config *setting);

Returns the value in the “dhcp-ipv6-only-preferred” property.

#### Parameters

setting | the NMSettingIP4Config |

#### Returns

the DHCP IPv6-only preferred property value

Since: 1.52

### nm_setting_ip4_config_get_clat ()

    NMSettingIp4ConfigClat
    nm_setting_ip4_config_get_clat (NMSettingIP4Config *setting);

Returns the value in the “clat” property.

#### Parameters

setting | the NMSettingIP4Config |

#### Returns

the CLAT property value

Since: 1.58

## Types and Values

### NM_SETTING_IP4_CONFIG_SETTING_NAME

    #define NM_SETTING_IP4_CONFIG_SETTING_NAME "ipv4"

### NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID

    #define NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID               "dhcp-client-id"

### NM_SETTING_IP4_CONFIG_DHCP_FQDN

    #define NM_SETTING_IP4_CONFIG_DHCP_FQDN                    "dhcp-fqdn"

### NM_SETTING_IP4_CONFIG_DHCP_VENDOR_CLASS_IDENTIFIER

    #define NM_SETTING_IP4_CONFIG_DHCP_VENDOR_CLASS_IDENTIFIER "dhcp-vendor-class-identifier"

### NM_SETTING_IP4_CONFIG_DHCP_IPV6_ONLY_PREFERRED

    #define NM_SETTING_IP4_CONFIG_DHCP_IPV6_ONLY_PREFERRED     "dhcp-ipv6-only-preferred"

### NM_SETTING_IP4_CONFIG_LINK_LOCAL

    #define NM_SETTING_IP4_CONFIG_LINK_LOCAL                   "link-local"

### NM_SETTING_IP4_CONFIG_CLAT

    #define NM_SETTING_IP4_CONFIG_CLAT                         "clat"

### NM_SETTING_IP4_CONFIG_METHOD_AUTO

    #define NM_SETTING_IP4_CONFIG_METHOD_AUTO "auto"

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

### NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL

    #define NM_SETTING_IP4_CONFIG_METHOD_LINK_LOCAL "link-local"

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

### NM_SETTING_IP4_CONFIG_METHOD_MANUAL

    #define NM_SETTING_IP4_CONFIG_METHOD_MANUAL "manual"

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

### NM_SETTING_IP4_CONFIG_METHOD_SHARED

    #define NM_SETTING_IP4_CONFIG_METHOD_SHARED "shared"

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

### NM_SETTING_IP4_CONFIG_METHOD_DISABLED

    #define NM_SETTING_IP4_CONFIG_METHOD_DISABLED "disabled"

This connection does not use or require IPv4 address and it should be disabled.

### enum NMSettingIP4LinkLocal

NMSettingIP4LinkLocal values indicate whether IPv4 link-local address protocol should be enabled.

#### Members

NM_SETTING_IP4_LL_DEFAULT | Allow fallback to a globally configured default. If unspecified, fallback to "auto". Note that if "ipv4.method" is "disabled", this always implies link-local addresses disabled too. |
NM_SETTING_IP4_LL_AUTO | Special value which enables LL if "ipv4.method" is set to "link-local". |
NM_SETTING_IP4_LL_DISABLED | Disable IPv4 link-local protocol. |
NM_SETTING_IP4_LL_ENABLED | Enable the IPv4 link-local protocol regardless what other protocols such as DHCP or manually assigned IP addresses might be active. |
NM_SETTING_IP4_LL_FALLBACK | Since 1.52. This sets an IPv4 link-local address if no other IPv4 address is set, dynamically removing/re-adding it depending on DHCP leases. |

Since: 1.40

### enum NMSettingIP4DhcpIpv6OnlyPreferred

NMSettingIP4DhcpIpv6OnlyPreferred values specify if the "IPv6-Only Preferred" option (RFC 8925) for DHCPv4 is enabled.

#### Members

NM_SETTING_IP4_DHCP_IPV6_ONLY_PREFERRED_DEFAULT | use the global default value |
NM_SETTING_IP4_DHCP_IPV6_ONLY_PREFERRED_NO | the option is disabled |
NM_SETTING_IP4_DHCP_IPV6_ONLY_PREFERRED_YES | the option is enabled |
NM_SETTING_IP4_DHCP_IPV6_ONLY_PREFERRED_AUTO | the option is enabled when the IPv6 method is "auto" and CLAT is enabled. Since: 1.58 |

Since: 1.52

### enum NMSettingIp4ConfigClat

NMSettingIP4ConfigClat values specify if CLAT (Customer-side translator) is enabled or not. CLAT is used to implement the client part of 464XLAT (RFC 6877), an architecture that provides IPv4 connectivity to hosts on IPv6-only networks.

#### Members

NM_SETTING_IP4_CONFIG_CLAT_DEFAULT | use the global default value |
NM_SETTING_IP4_CONFIG_CLAT_NO | disable CLAT |
NM_SETTING_IP4_CONFIG_CLAT_AUTO | enable CLAT only when the IPv4 method is 'auto' and the device doesn't have a native IPv4 gateway. |
NM_SETTING_IP4_CONFIG_CLAT_FORCE | enable CLAT even with IPv4 methods other than 'auto' and even if the device has a native IPv4 gateway. |

Since: 1.58