## NMConnection

NMConnection — Describes a connection to specific network or provider

## Functions

void | nm_connection_add_setting ()
void | nm_connection_remove_setting ()
NMSetting * | nm_connection_get_setting ()
NMSetting * | nm_connection_get_setting_by_name ()
GVariant * | nm_connection_to_dbus ()
gboolean | nm_connection_replace_settings ()
void | nm_connection_replace_settings_from_connection ()
void | nm_connection_clear_settings ()
gboolean | nm_connection_compare ()
gboolean | nm_connection_diff ()
gboolean | nm_connection_verify ()
gboolean | nm_connection_verify_secrets ()
gboolean | nm_connection_normalize ()
const char * | nm_connection_need_secrets ()
void | nm_connection_clear_secrets ()
void | nm_connection_clear_secrets_with_flags ()
gboolean | nm_connection_update_secrets ()
void | nm_connection_set_path ()
const char * | nm_connection_get_path ()
const char * | nm_connection_get_interface_name ()
gboolean | nm_connection_is_type ()
void | nm_connection_for_each_setting_value ()
NMSetting ** | nm_connection_get_settings ()
void | nm_connection_dump ()
const char * | nm_connection_get_uuid ()
const char * | nm_connection_get_id ()
const char * | nm_connection_get_connection_type ()
gboolean | nm_connection_is_virtual ()
char * | nm_connection_get_virtual_device_description ()
NMSetting8021x * | nm_connection_get_setting_802_1x ()
NMSettingBluetooth * | nm_connection_get_setting_bluetooth ()
NMSettingBond * | nm_connection_get_setting_bond ()
NMSettingTeam * | nm_connection_get_setting_team ()
NMSettingTeamPort * | nm_connection_get_setting_team_port ()
NMSettingBridge * | nm_connection_get_setting_bridge ()
NMSettingBridgePort * | nm_connection_get_setting_bridge_port ()
NMSettingCdma * | nm_connection_get_setting_cdma ()
NMSettingConnection * | nm_connection_get_setting_connection ()
NMSettingDcb * | nm_connection_get_setting_dcb ()
NMSettingDummy * | nm_connection_get_setting_dummy ()
NMSettingGeneric * | nm_connection_get_setting_generic ()
NMSettingGeneve * | nm_connection_get_setting_geneve ()
NMSettingGsm * | nm_connection_get_setting_gsm ()
NMSettingInfiniband * | nm_connection_get_setting_infiniband ()
NMSettingIPTunnel * | nm_connection_get_setting_ip_tunnel ()
NMSettingIPConfig * | nm_connection_get_setting_ip4_config ()
NMSettingIPConfig * | nm_connection_get_setting_ip6_config ()
NMSettingMacsec * | nm_connection_get_setting_macsec ()
NMSettingMacvlan * | nm_connection_get_setting_macvlan ()
NMSettingOlpcMesh * | nm_connection_get_setting_olpc_mesh ()
NMSettingOvsBridge * | nm_connection_get_setting_ovs_bridge ()
NMSettingOvsInterface * | nm_connection_get_setting_ovs_interface ()
NMSettingOvsPatch * | nm_connection_get_setting_ovs_patch ()
NMSettingOvsPort * | nm_connection_get_setting_ovs_port ()
NMSettingPpp * | nm_connection_get_setting_ppp ()
NMSettingPppoe * | nm_connection_get_setting_pppoe ()
NMSettingProxy * | nm_connection_get_setting_proxy ()
NMSettingSerial * | nm_connection_get_setting_serial ()
NMSettingTCConfig * | nm_connection_get_setting_tc_config ()
NMSettingTun * | nm_connection_get_setting_tun ()
NMSettingVpn * | nm_connection_get_setting_vpn ()
NMSettingWimax * | nm_connection_get_setting_wimax ()
NMSettingAdsl * | nm_connection_get_setting_adsl ()
NMSettingWired * | nm_connection_get_setting_wired ()
NMSettingWireless * | nm_connection_get_setting_wireless ()
NMSettingWirelessSecurity * | nm_connection_get_setting_wireless_security ()
NMSettingVlan * | nm_connection_get_setting_vlan ()
NMSettingVxlan * | nm_connection_get_setting_vxlan ()

## Types and Values

#define | NM_CONNECTION_SECRETS_UPDATED
#define | NM_CONNECTION_SECRETS_CLEARED
#define | NM_CONNECTION_CHANGED
#define | NM_CONNECTION_NORMALIZE_PARAM_IP4_CONFIG_METHOD
#define | NM_CONNECTION_NORMALIZE_PARAM_IP6_CONFIG_METHOD
| NMConnectionInterface
#define | NM_VARIANT_TYPE_SETTING
enum | NMConnectionSerializationFlags

## Object Hierarchy

        GFlags
        ╰── NMConnectionSerializationFlags

## Description

An NMConnection describes all the settings and configuration values that are necessary to configure network devices for operation on a specific network. Connections are the fundamental operating object for NetworkManager; no device is connected without a NMConnection, or disconnected without having been connected with a NMConnection.

Each NMConnection contains a list of NMSetting objects usually referenced by name (using `nm_connection_get_setting_by_name()`) or by type (with `nm_connection_get_setting()`). The settings describe the actual parameters with which the network devices are configured, including device-specific parameters (MTU, SSID, APN, channel, rate, etc) and IP-level parameters (addresses, routes, addressing methods, etc).

## Functions

### nm_connection_add_setting ()

    void
    nm_connection_add_setting (NMConnection *connection,
                               NMSetting *setting);

Adds a NMSetting to the connection, replacing any previous NMSetting of the same name which has previously been added to the NMConnection. The connection takes ownership of the NMSetting object and does not increase the setting object's reference count.

#### Parameters

connection | a NMConnection |
setting | the NMSetting to add to the connection object. | [transfer full]

### nm_connection_remove_setting ()

    void
    nm_connection_remove_setting (NMConnection *connection,
                                  GType setting_type);

Removes the NMSetting with the given GType from the NMConnection. This operation dereferences the NMSetting object.

#### Parameters

connection | a NMConnection |
setting_type | the GType of the setting object to remove |

### nm_connection_get_setting ()

    NMSetting *
    nm_connection_get_setting (NMConnection *connection,
                               GType setting_type);

Gets the NMSetting with the given GType, if one has been previously added to the NMConnection.

#### Parameters

connection | a NMConnection |
setting_type | the GType of the setting object to return |

#### Returns

the NMSetting, or `NULL` if no setting of that type was previously added to the NMConnection.

[transfer none]

### nm_connection_get_setting_by_name ()

    NMSetting *
    nm_connection_get_setting_by_name (NMConnection *connection,
                                       const char *name);

Gets the NMSetting with the given name, if one has been previously added the NMConnection.

#### Parameters

connection | a NMConnection |
name | a setting name |

#### Returns

the NMSetting, or `NULL` if no setting with that name was previously added to the NMConnection.

[transfer none]

### nm_connection_to_dbus ()

    GVariant *
    nm_connection_to_dbus (NMConnection *connection,
                           NMConnectionSerializationFlags flags);

Converts the NMConnection into a GVariant of type `NM_VARIANT_TYPE_CONNECTION` describing the connection, suitable for marshalling over D-Bus or otherwise serializing.

#### Parameters

connection | the NMConnection |
flags | serialization flags, e.g. `NM_CONNECTION_SERIALIZE_ALL` |

#### Returns

a new floating GVariant describing the connection, its settings, and each setting's properties.

[transfer none]

### nm_connection_replace_settings ()

    gboolean
    nm_connection_replace_settings (NMConnection *connection,
                                    GVariant *new_settings,
                                    GError **error);

Replaces `connection` 's settings with `new_settings` (which must be syntactically valid, and describe a known type of connection, but does not need to result in a connection that passes `nm_connection_verify()`).

#### Parameters

connection | a NMConnection |
new_settings | a GVariant of type `NM_VARIANT_TYPE_CONNECTION`, with the new settings |
error | location to store error, or `NULL` |

#### Returns

`TRUE` if connection was updated, `FALSE` if `new_settings` could not be deserialized (in which case `connection` will be unchanged).

### nm_connection_replace_settings_from_connection ()

    void
    nm_connection_replace_settings_from_connection
                                   (NMConnection *connection,
                                    NMConnection *new_connection);

Deep-copies the settings of `new_connection` and replaces the settings of `connection` with the copied settings.

#### Parameters

connection | a NMConnection |
new_connection | a NMConnection to replace the settings of `connection` with |

### nm_connection_clear_settings ()

    void
    nm_connection_clear_settings (NMConnection *connection);

Deletes all of `connection` 's settings.

#### Parameters

connection | a NMConnection |

### nm_connection_compare ()

    gboolean
    nm_connection_compare (NMConnection *a,
                           NMConnection *b,
                           NMSettingCompareFlags flags);

Compares two NMConnection objects for similarity, with comparison behavior modified by a set of flags. See `nm_setting_compare()` for a description of each flag's behavior.

#### Parameters

a | a NMConnection |
b | a second NMConnection to compare with the first |
flags | compare flags, e.g. `NM_SETTING_COMPARE_FLAG_EXACT` |

#### Returns

`TRUE` if the comparison succeeds, `FALSE` if it does not

### nm_connection_diff ()

    gboolean
    nm_connection_diff (NMConnection *a,
                        NMConnection *b,
                        NMSettingCompareFlags flags,
                        GHashTable **out_settings);

Compares two NMConnection objects for similarity, with comparison behavior modified by a set of flags. See `nm_setting_compare()` for a description of each flag's behavior. If the connections differ, settings and keys within each setting that differ are added to the returned `out_settings` hash table. No values are returned, only key names.

#### Parameters

a | a NMConnection |
b | a second NMConnection to compare with the first |
flags | compare flags, e.g. `NM_SETTING_COMPARE_FLAG_EXACT` |
out_settings | if the connections differ, on return a hash table mapping setting names to second-level GHashTable (utf8 to guint32), which contains the key names that differ mapped to one or more of `NMSettingDiffResult` as a bitfield. | [out][element-type utf8 GLib.HashTable(utf8,uint32)][optional][nullable]

#### Returns

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

### nm_connection_verify ()

    gboolean
    nm_connection_verify (NMConnection *connection,
                          GError **error);

Validates the connection and all its settings. Each setting's properties have allowed values, and some values are dependent on other values. For example, if a Wi-Fi connection is security enabled, the NMSettingWireless setting object's 'security' property must contain the setting name of the NMSettingWirelessSecurity object, which must also be present in the connection for the connection to be valid. As another example, the NMSettingWired object's 'mac-address' property must be a validly formatted MAC address. The returned GError contains information about which setting and which property failed validation, and how it failed validation.

#### Parameters

connection | the NMConnection to verify |
error | location to store error, or `NULL` |

#### Returns

`TRUE` if the connection is valid, `FALSE` if it is not

### nm_connection_verify_secrets ()

    gboolean
    nm_connection_verify_secrets (NMConnection *connection,
                                  GError **error);

Verifies the secrets in the connection.

#### Parameters

connection | the NMConnection to verify in |
error | location to store error, or `NULL` |

#### Returns

`TRUE` if the secrets are valid, `FALSE` if they are not

Since: 1.2

### nm_connection_normalize ()

    gboolean
    nm_connection_normalize (NMConnection *connection,
                             GHashTable *parameters,
                             gboolean *modified,
                             GError **error);

Does some basic normalization and fixup of well known inconsistencies and deprecated fields. If the connection was modified in any way, the output parameter `modified` is set `TRUE`.

Finally the connection will be verified and `TRUE` returns if the connection is valid. As this function only performs some specific normalization steps it cannot repair all connections. If the connection has errors that cannot be normalized, the connection will not be modified.

#### Parameters

connection | the NMConnection to normalize |
parameters | a GHashTable with normalization parameters to allow customization of the normalization by providing specific arguments. Unknown arguments will be ignored and the default will be used. The keys must be strings compared with `g_str_equal()` function. The values are opaque and depend on the parameter name. | [nullable][element-type utf8 gpointer]
modified | outputs whether any settings were modified. | [out][optional]
error | location to store error, or `NULL`. Contains the reason, why the connection is invalid, if the function returns an error. |

#### Returns

`TRUE` if the connection is valid, `FALSE` if it is not

### nm_connection_need_secrets ()

    const char *
    nm_connection_need_secrets (NMConnection *connection,
                                GPtrArray **hints);

Returns the name of the first setting object in the connection which would need secrets to make a successful connection. The returned hints are only intended as a guide to what secrets may be required, because in some circumstances, there is no way to conclusively determine exactly which secrets are needed.

#### Parameters

connection | the NMConnection |
hints | the address of a pointer to a GPtrArray, initialized to `NULL`, which on return points to an allocated GPtrArray containing the property names of secrets of the NMSetting which may be required; the caller owns the array and must free the array itself with `g_ptr_array_free()`, but not free its elements. | [out][element-type utf8][nullable][transfer container]

#### Returns

the setting name of the NMSetting object which has invalid or missing secrets.

[nullable]

### nm_connection_clear_secrets ()

    void
    nm_connection_clear_secrets (NMConnection *connection);

Clears and frees any secrets that may be stored in the connection, to avoid keeping secret data in memory when not needed.

#### Parameters

connection | the NMConnection |

### nm_connection_clear_secrets_with_flags ()

    void
    nm_connection_clear_secrets_with_flags
                                   (NMConnection *connection,
                                    NMSettingClearSecretsWithFlagsFn func,
                                    gpointer user_data);

Clears and frees secrets determined by `func` .

#### Parameters

connection | the NMConnection |
func | function to be called to determine whether a specific secret should be cleared or not. If `NULL`, all secrets are cleared. | [scope call][nullable]
user_data | caller-supplied data passed to `func` |

### nm_connection_update_secrets ()

    gboolean
    nm_connection_update_secrets (NMConnection *connection,
                                  const char *setting_name,
                                  GVariant *secrets,
                                  GError **error);

Update the specified setting's secrets, given a dictionary of secrets intended for that setting (deserialized from D-Bus for example). Will also extract the given setting's secrets hash if given a connection dictionary. If `setting_name` is `NULL`, expects a fully serialized NMConnection as returned by `nm_connection_to_dbus()` and will update all secrets from all settings contained in `secrets` .

#### Parameters

connection | the NMConnection |
setting_name | the setting object name to which the secrets apply |
secrets | a GVariant of secrets, of type `NM_VARIANT_TYPE_CONNECTION` or `NM_VARIANT_TYPE_SETTING` |
error | location to store error, or `NULL` |

#### Returns

`TRUE` if the secrets were successfully updated, `FALSE` if the update failed (tried to update secrets for a setting that doesn't exist, etc)

### nm_connection_set_path ()

    void
    nm_connection_set_path (NMConnection *connection,
                            const char *path);

Sets the D-Bus path of the connection. This property is not serialized, and is only for the reference of the caller. Sets the “path” property.

#### Parameters

connection | the NMConnection |
path | the D-Bus path of the connection as given by the settings service which provides the connection |

### nm_connection_get_path ()

    const char *
    nm_connection_get_path (NMConnection *connection);

Returns the connection's D-Bus path.

#### Parameters

connection | the NMConnection |

#### Returns

the D-Bus path of the connection, previously set by a call to `nm_connection_set_path()`.

### nm_connection_get_interface_name ()

    const char *
    nm_connection_get_interface_name (NMConnection *connection);

Returns the interface name as stored in NMSettingConnection:interface_name. If the connection contains no NMSettingConnection, it will return `NULL`.

For hardware devices and software devices created outside of NetworkManager, this name is used to match the device. for software devices created by NetworkManager, this is the name of the created interface.

#### Parameters

connection | The NMConnection |

#### Returns

Name of the kernel interface or `NULL`

### nm_connection_is_type ()

    gboolean
    nm_connection_is_type (NMConnection *connection,
                           const char *type);

A convenience function to check if the given `connection` is a particular type (ie wired, Wi-Fi, ppp, etc). Checks the “type” property of the connection and matches that against `type` .

#### Parameters

connection | the NMConnection |
type | a setting name to check the connection's type against (like `NM_SETTING_WIRELESS_SETTING_NAME` or `NM_SETTING_WIRED_SETTING_NAME`) |

#### Returns

`TRUE` if the connection is of the given `type` , `FALSE` if not

### nm_connection_for_each_setting_value ()

    void
    nm_connection_for_each_setting_value (NMConnection *connection,
                                          NMSettingValueIterFn func,
                                          gpointer user_data);

Iterates over the properties of each NMSetting object in the NMConnection, calling the supplied user function for each property.

#### Parameters

connection | the NMConnection |
func | user-supplied function called for each setting's property. | [scope call]
user_data | user data passed to `func` at each invocation |

### nm_connection_get_settings ()

    NMSetting **
    nm_connection_get_settings (NMConnection *connection,
                                guint *out_length);

Retrieves the settings in `connection` .

The returned array is `NULL`-terminated.

#### Parameters

connection | the NMConnection instance |
out_length | the length of the returned array. | [out][optional]

#### Returns

a `NULL`-terminated array containing every setting of `connection` . If the connection has no settings, `NULL` is returned.

[array length=out_length][transfer container][nullable]

Since: 1.10

### nm_connection_dump ()

    void
    nm_connection_dump (NMConnection *connection);

Print the connection (including secrets!) to stdout. For debugging purposes ONLY, should NOT be used for serialization of the setting, or machine-parsed in any way. The output format is not guaranteed to be stable and may change at any time.

#### Parameters

connection | the NMConnection |

### nm_connection_get_uuid ()

    const char *
    nm_connection_get_uuid (NMConnection *connection);

A shortcut to return the UUID from the connection's NMSettingConnection.

#### Parameters

connection | the NMConnection |

#### Returns

the UUID from the connection's 'connection' setting

### nm_connection_get_id ()

    const char *
    nm_connection_get_id (NMConnection *connection);

A shortcut to return the ID from the connection's NMSettingConnection.

#### Parameters

connection | the NMConnection |

#### Returns

the ID from the connection's 'connection' setting

### nm_connection_get_connection_type ()

    const char *
    nm_connection_get_connection_type (NMConnection *connection);

A shortcut to return the type from the connection's NMSettingConnection.

#### Parameters

connection | the NMConnection |

#### Returns

the type from the connection's 'connection' setting

### nm_connection_is_virtual ()

    gboolean
    nm_connection_is_virtual (NMConnection *connection);

Checks if `connection` refers to a virtual device (and thus can potentially be activated even if the device it refers to doesn't exist).

#### Parameters

connection | an NMConnection |

#### Returns

whether `connection` refers to a virtual device

### nm_connection_get_virtual_device_description ()

    char *
    nm_connection_get_virtual_device_description
                                   (NMConnection *connection);

Returns the name that `nm_device_disambiguate_names()` would return for the virtual device that would be created for `connection` . Eg, "VLAN (eth1.1)".

#### Parameters

connection | an NMConnection for a virtual device type |

#### Returns

the name of `connection` 's device, or `NULL` if `connection` is not a virtual connection type.

[transfer full]

### nm_connection_get_setting_802_1x ()

    NMSetting8021x *
    nm_connection_get_setting_802_1x (NMConnection *connection);

A shortcut to return any NMSetting8021x the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSetting8021x if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_bluetooth ()

    NMSettingBluetooth *
    nm_connection_get_setting_bluetooth (NMConnection *connection);

A shortcut to return any NMSettingBluetooth the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingBluetooth if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_bond ()

    NMSettingBond *
    nm_connection_get_setting_bond (NMConnection *connection);

A shortcut to return any NMSettingBond the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingBond if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_team ()

    NMSettingTeam *
    nm_connection_get_setting_team (NMConnection *connection);

A shortcut to return any NMSettingTeam the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingTeam if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_team_port ()

    NMSettingTeamPort *
    nm_connection_get_setting_team_port (NMConnection *connection);

A shortcut to return any NMSettingTeamPort the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingTeamPort if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_bridge ()

    NMSettingBridge *
    nm_connection_get_setting_bridge (NMConnection *connection);

A shortcut to return any NMSettingBridge the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingBridge if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_bridge_port ()

    NMSettingBridgePort *
    nm_connection_get_setting_bridge_port (NMConnection *connection);

A shortcut to return any NMSettingBridgePort the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingBridgePort if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_cdma ()

    NMSettingCdma *
    nm_connection_get_setting_cdma (NMConnection *connection);

A shortcut to return any NMSettingCdma the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingCdma if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_connection ()

    NMSettingConnection *
    nm_connection_get_setting_connection (NMConnection *connection);

A shortcut to return any NMSettingConnection the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingConnection if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_dcb ()

    NMSettingDcb *
    nm_connection_get_setting_dcb (NMConnection *connection);

A shortcut to return any NMSettingDcb the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingDcb if the connection contains one, otherwise NULL.

[transfer none]

### nm_connection_get_setting_dummy ()

    NMSettingDummy *
    nm_connection_get_setting_dummy (NMConnection *connection);

A shortcut to return any NMSettingDummy the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingDummy if the connection contains one, otherwise `NULL`.

[transfer none]

Since: 1.8

### nm_connection_get_setting_generic ()

    NMSettingGeneric *
    nm_connection_get_setting_generic (NMConnection *connection);

A shortcut to return any NMSettingGeneric the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingGeneric if the connection contains one, otherwise NULL.

[transfer none]

### nm_connection_get_setting_geneve ()

    NMSettingGeneve *
    nm_connection_get_setting_geneve (NMConnection *connection);

A shortcut to return any NMSettingGeneve the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingGeneve if the connection contains one, otherwise NULL.

[transfer none]

Since: 1.58, 1.56.1

### nm_connection_get_setting_gsm ()

    NMSettingGsm *
    nm_connection_get_setting_gsm (NMConnection *connection);

A shortcut to return any NMSettingGsm the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingGsm if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_infiniband ()

    NMSettingInfiniband *
    nm_connection_get_setting_infiniband (NMConnection *connection);

A shortcut to return any NMSettingInfiniband the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingInfiniband if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_ip_tunnel ()

    NMSettingIPTunnel *
    nm_connection_get_setting_ip_tunnel (NMConnection *connection);

A shortcut to return any NMSettingIPTunnel the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingIPTunnel if the connection contains one, otherwise `NULL`.

[transfer none]

Since: 1.2

### nm_connection_get_setting_ip4_config ()

    NMSettingIPConfig *
    nm_connection_get_setting_ip4_config (NMConnection *connection);

A shortcut to return any NMSettingIP4Config the connection might contain.

Note that it returns the value as type NMSettingIPConfig, since the vast majority of IPv4-setting-related methods are on that type, not NMSettingIP4Config.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingIP4Config if the connection contains one, otherwise `NULL`.

[type NMSettingIP4Config][transfer none]

### nm_connection_get_setting_ip6_config ()

    NMSettingIPConfig *
    nm_connection_get_setting_ip6_config (NMConnection *connection);

A shortcut to return any NMSettingIP6Config the connection might contain.

Note that it returns the value as type NMSettingIPConfig, since the vast majority of IPv6-setting-related methods are on that type, not NMSettingIP6Config.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingIP6Config if the connection contains one, otherwise `NULL`.

[type NMSettingIP6Config][transfer none]

### nm_connection_get_setting_macsec ()

    NMSettingMacsec *
    nm_connection_get_setting_macsec (NMConnection *connection);

A shortcut to return any NMSettingMacsec the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingMacsec if the connection contains one, otherwise `NULL`.

[transfer none]

Since: 1.6

### nm_connection_get_setting_macvlan ()

    NMSettingMacvlan *
    nm_connection_get_setting_macvlan (NMConnection *connection);

A shortcut to return any NMSettingMacvlan the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingMacvlan if the connection contains one, otherwise `NULL`.

[transfer none]

Since: 1.2

### nm_connection_get_setting_olpc_mesh ()

    NMSettingOlpcMesh *
    nm_connection_get_setting_olpc_mesh (NMConnection *connection);

A shortcut to return any NMSettingOlpcMesh the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingOlpcMesh if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_ovs_bridge ()

    NMSettingOvsBridge *
    nm_connection_get_setting_ovs_bridge (NMConnection *connection);

A shortcut to return any NMSettingOvsBridge the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingOvsBridge if the connection contains one, otherwise `NULL`.

[transfer none]

Since: 1.14

### nm_connection_get_setting_ovs_interface ()

    NMSettingOvsInterface *
    nm_connection_get_setting_ovs_interface
                                   (NMConnection *connection);

A shortcut to return any NMSettingOvsInterface the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingOvsInterface if the connection contains one, otherwise `NULL`.

[transfer none]

Since: 1.14

### nm_connection_get_setting_ovs_patch ()

    NMSettingOvsPatch *
    nm_connection_get_setting_ovs_patch (NMConnection *connection);

A shortcut to return any NMSettingOvsPatch the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingOvsPatch if the connection contains one, otherwise `NULL`.

[transfer none]

Since: 1.14

### nm_connection_get_setting_ovs_port ()

    NMSettingOvsPort *
    nm_connection_get_setting_ovs_port (NMConnection *connection);

A shortcut to return any NMSettingOvsPort the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingOvsPort if the connection contains one, otherwise `NULL`.

[transfer none]

Since: 1.14

### nm_connection_get_setting_ppp ()

    NMSettingPpp *
    nm_connection_get_setting_ppp (NMConnection *connection);

A shortcut to return any NMSettingPpp the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingPpp if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_pppoe ()

    NMSettingPppoe *
    nm_connection_get_setting_pppoe (NMConnection *connection);

A shortcut to return any NMSettingPppoe the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingPppoe if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_proxy ()

    NMSettingProxy *
    nm_connection_get_setting_proxy (NMConnection *connection);

A shortcut to return any NMSettingProxy the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingProxy if the connection contains one, otherwise `NULL`.

[transfer none]

Since: 1.6

### nm_connection_get_setting_serial ()

    NMSettingSerial *
    nm_connection_get_setting_serial (NMConnection *connection);

A shortcut to return any NMSettingSerial the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingSerial if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_tc_config ()

    NMSettingTCConfig *
    nm_connection_get_setting_tc_config (NMConnection *connection);

A shortcut to return any NMSettingTCConfig the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingTCConfig if the connection contains one, otherwise `NULL`.

[transfer none]

Since: 1.12

### nm_connection_get_setting_tun ()

    NMSettingTun *
    nm_connection_get_setting_tun (NMConnection *connection);

A shortcut to return any NMSettingTun the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingTun if the connection contains one, otherwise `NULL`.

[transfer none]

Since: 1.14

### nm_connection_get_setting_vpn ()

    NMSettingVpn *
    nm_connection_get_setting_vpn (NMConnection *connection);

A shortcut to return any NMSettingVpn the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingVpn if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_wimax ()

    NMSettingWimax *
    nm_connection_get_setting_wimax (NMConnection *connection);

A shortcut to return any NMSettingWimax the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingWimax if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_adsl ()

    NMSettingAdsl *
    nm_connection_get_setting_adsl (NMConnection *connection);

A shortcut to return any NMSettingAdsl the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingAdsl if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_wired ()

    NMSettingWired *
    nm_connection_get_setting_wired (NMConnection *connection);

A shortcut to return any NMSettingWired the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingWired if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_wireless ()

    NMSettingWireless *
    nm_connection_get_setting_wireless (NMConnection *connection);

A shortcut to return any NMSettingWireless the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingWireless if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_wireless_security ()

    NMSettingWirelessSecurity *
    nm_connection_get_setting_wireless_security
                                   (NMConnection *connection);

A shortcut to return any NMSettingWirelessSecurity the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingWirelessSecurity if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_vlan ()

    NMSettingVlan *
    nm_connection_get_setting_vlan (NMConnection *connection);

A shortcut to return any NMSettingVlan the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingVlan if the connection contains one, otherwise `NULL`.

[transfer none]

### nm_connection_get_setting_vxlan ()

    NMSettingVxlan *
    nm_connection_get_setting_vxlan (NMConnection *connection);

A shortcut to return any NMSettingVxlan the connection might contain.

#### Parameters

connection | the NMConnection |

#### Returns

an NMSettingVxlan if the connection contains one, otherwise `NULL`.

[transfer none]

Since: 1.2

## Types and Values

### NM_CONNECTION_SECRETS_UPDATED

    #define NM_CONNECTION_SECRETS_UPDATED "secrets-updated"

### NM_CONNECTION_SECRETS_CLEARED

    #define NM_CONNECTION_SECRETS_CLEARED "secrets-cleared"

### NM_CONNECTION_CHANGED

    #define NM_CONNECTION_CHANGED         "changed"

### NM_CONNECTION_NORMALIZE_PARAM_IP4_CONFIG_METHOD

    #define NM_CONNECTION_NORMALIZE_PARAM_IP4_CONFIG_METHOD "ip4-config-method"

### NM_CONNECTION_NORMALIZE_PARAM_IP6_CONFIG_METHOD

    #define NM_CONNECTION_NORMALIZE_PARAM_IP6_CONFIG_METHOD "ip6-config-method"

### NMConnectionInterface

    typedef struct {
        GTypeInterface parent;

        /* Signals */
        void (*secrets_updated)(NMConnection *connection, const char *setting);
        void (*secrets_cleared)(NMConnection *connection);
        void (*changed)(NMConnection *connection);
    } NMConnectionInterface;

#### Members

GTypeInterface `parent`; | the parent interface struct |
`secrets_updated` () | emitted when the connection's secrets are updated |
`secrets_cleared` () | emitted when the connection's secrets are cleared |
`changed` () | emitted when any change to the connection's settings occurs |

### NM_VARIANT_TYPE_SETTING

    #define NM_VARIANT_TYPE_SETTING G_VARIANT_TYPE_VARDICT

GVariantType for a dictionary mapping from property names to values. This is an alias for `G_VARIANT_TYPE_VARDICT`, and is the type of each element of an `NM_VARIANT_TYPE_CONNECTION` dictionary.

### enum NMConnectionSerializationFlags

These flags determine which properties are serialized when calling `nm_connection_to_dbus()`.

#### Members

NM_CONNECTION_SERIALIZE_ALL | serialize all properties (including secrets) |
NM_CONNECTION_SERIALIZE_WITH_NON_SECRET | serialize properties that are not secrets. Since 1.32. |
NM_CONNECTION_SERIALIZE_NO_SECRETS | this is a deprecated alias for `NM_CONNECTION_SERIALIZE_WITH_NON_SECRET` . |
NM_CONNECTION_SERIALIZE_WITH_SECRETS | serialize all secrets. This flag is ignored if any of `NM_CONNECTION_SERIALIZE_WITH_SECRETS_AGENT_OWNED` , `NM_CONNECTION_SERIALIZE_WITH_SECRETS_SYSTEM_OWNED` or `NM_CONNECTION_SERIALIZE_WITH_SECRETS_NOT_SAVED` is set. Since 1.32. |
NM_CONNECTION_SERIALIZE_ONLY_SECRETS | a deprecated alias for `NM_CONNECTION_SERIALIZE_WITH_SECRETS` . |
NM_CONNECTION_SERIALIZE_WITH_SECRETS_AGENT_OWNED | serialize agent-owned secrets. Since: 1.20. |
NM_CONNECTION_SERIALIZE_WITH_SECRETS_SYSTEM_OWNED | serialize system-owned secrets. Since: 1.32. |
NM_CONNECTION_SERIALIZE_WITH_SECRETS_NOT_SAVED | serialize secrets that are marked as never saved. Since: 1.32. |