## NMDevice NMDevice |

## Functions

const char * | nm_device_get_iface ()
const char * | nm_device_get_ip_iface ()
NMDeviceType | nm_device_get_device_type ()
const char * | nm_device_get_udi ()
const char * | nm_device_get_path ()
const char * | nm_device_get_driver ()
const char * | nm_device_get_driver_version ()
const char * | nm_device_get_firmware_version ()
const char * | nm_device_get_type_description ()
const char * | nm_device_get_hw_address ()
NMDeviceCapabilities | nm_device_get_capabilities ()
gboolean | nm_device_get_managed ()
void | nm_device_set_managed ()
gboolean | nm_device_get_autoconnect ()
void | nm_device_set_autoconnect ()
gboolean | nm_device_get_firmware_missing ()
gboolean | nm_device_get_nm_plugin_missing ()
NMIPConfig * | nm_device_get_ip4_config ()
NMDhcpConfig * | nm_device_get_dhcp4_config ()
NMIPConfig * | nm_device_get_ip6_config ()
NMDhcpConfig * | nm_device_get_dhcp6_config ()
NMConnectivityState | nm_device_get_connectivity ()
NMDeviceState | nm_device_get_state ()
NMDeviceStateReason | nm_device_get_state_reason ()
NMActiveConnection * | nm_device_get_active_connection ()
const GPtrArray * | nm_device_get_available_connections ()
const char * | nm_device_get_physical_port_id ()
guint32 | nm_device_get_mtu ()
gboolean | nm_device_is_real ()
gboolean | nm_device_is_software ()
const char * | nm_device_get_product ()
const char * | nm_device_get_vendor ()
const char * | nm_device_get_description ()
NMMetered | nm_device_get_metered ()
GPtrArray * | nm_device_get_lldp_neighbors ()
NMDeviceInterfaceFlags | nm_device_get_interface_flags ()
char ** | nm_device_disambiguate_names ()
gboolean | nm_device_reapply ()
void | nm_device_reapply_async ()
gboolean | nm_device_reapply_finish ()
NMConnection * | nm_device_get_applied_connection ()
void | nm_device_get_applied_connection_async ()
NMConnection * | nm_device_get_applied_connection_finish ()
gboolean | nm_device_disconnect ()
void | nm_device_disconnect_async ()
gboolean | nm_device_disconnect_finish ()
gboolean | nm_device_delete ()
void | nm_device_delete_async ()
gboolean | nm_device_delete_finish ()
GPtrArray * | nm_device_filter_connections ()
gboolean | nm_device_connection_valid ()
gboolean | nm_device_connection_compatible ()
GType | nm_device_get_setting_type ()
void | nm_lldp_neighbor_ref ()
void | nm_lldp_neighbor_unref ()
char ** | nm_lldp_neighbor_get_attr_names ()
GVariant * | nm_lldp_neighbor_get_attr_value ()
NMLldpNeighbor * | nm_lldp_neighbor_new ()
gboolean | nm_lldp_neighbor_get_attr_string_value ()
gboolean | nm_lldp_neighbor_get_attr_uint_value ()
const GVariantType * | nm_lldp_neighbor_get_attr_type ()

## Types and Values

#define | NM_DEVICE_DEVICE_TYPE
#define | NM_DEVICE_UDI
#define | NM_DEVICE_PATH
#define | NM_DEVICE_INTERFACE
#define | NM_DEVICE_IP_INTERFACE
#define | NM_DEVICE_DRIVER
#define | NM_DEVICE_DRIVER_VERSION
#define | NM_DEVICE_FIRMWARE_VERSION
#define | NM_DEVICE_CAPABILITIES
#define | NM_DEVICE_REAL
#define | NM_DEVICE_MANAGED
#define | NM_DEVICE_AUTOCONNECT
#define | NM_DEVICE_FIRMWARE_MISSING
#define | NM_DEVICE_NM_PLUGIN_MISSING
#define | NM_DEVICE_IP4_CONFIG
#define | NM_DEVICE_DHCP4_CONFIG
#define | NM_DEVICE_IP6_CONFIG
#define | NM_DEVICE_DHCP6_CONFIG
#define | NM_DEVICE_STATE
#define | NM_DEVICE_STATE_REASON
#define | NM_DEVICE_ACTIVE_CONNECTION
#define | NM_DEVICE_AVAILABLE_CONNECTIONS
#define | NM_DEVICE_VENDOR
#define | NM_DEVICE_PRODUCT
#define | NM_DEVICE_PHYSICAL_PORT_ID
#define | NM_DEVICE_MTU
#define | NM_DEVICE_METERED
#define | NM_DEVICE_LLDP_NEIGHBORS
#define | NM_DEVICE_IP4_CONNECTIVITY
#define | NM_DEVICE_IP6_CONNECTIVITY
#define | NM_DEVICE_INTERFACE_FLAGS
#define | NM_DEVICE_HW_ADDRESS
| NMLldpNeighbor

## Object Hierarchy

        GBoxed
        ╰── NMLldpNeighbor

## Description

## Functions

### nm_device_get_iface ()

    const char *
    nm_device_get_iface (NMDevice *device);

Gets the interface name of the NMDevice.

#### Parameters

device | a NMDevice |

#### Returns

the interface of the device. This is the internal string used by the device, and must not be modified.

### nm_device_get_ip_iface ()

    const char *
    nm_device_get_ip_iface (NMDevice *device);

Gets the IP interface name of the NMDevice over which IP traffic flows when the device is in the ACTIVATED state.

#### Parameters

device | a NMDevice |

#### Returns

the IP traffic interface of the device. This is the internal string used by the device, and must not be modified.

### nm_device_get_device_type ()

    NMDeviceType
    nm_device_get_device_type (NMDevice *device);

Returns the numeric type of the NMDevice, ie Ethernet, Wi-Fi, etc.

#### Parameters

device | a NMDevice |

#### Returns

the device type

### nm_device_get_udi ()

    const char *
    nm_device_get_udi (NMDevice *device);

Gets the Unique Device Identifier of the NMDevice.

#### Parameters

device | a NMDevice |

#### Returns

the Unique Device Identifier of the device. This identifier may be used to gather more information about the device from various operating system services like udev or sysfs.

### nm_device_get_path ()

    const char *
    nm_device_get_path (NMDevice *device);

Gets the path of the NMDevice as exposed by the udev property ID_PATH.

#### Parameters

device | a NMDevice |

#### Returns

the path of the device.

The string is backslash escaped (C escaping) for invalid characters. The escaping can be reverted with `g_strcompress()`, however the result may not be valid UTF-8.

Since: 1.26

### nm_device_get_driver ()

    const char *
    nm_device_get_driver (NMDevice *device);

Gets the driver of the NMDevice.

#### Parameters

device | a NMDevice |

#### Returns

the driver of the device. This is the internal string used by the device, and must not be modified.

### nm_device_get_driver_version ()

    const char *
    nm_device_get_driver_version (NMDevice *device);

Gets the driver version of the NMDevice.

#### Parameters

device | a NMDevice |

#### Returns

the version of the device driver. This is the internal string used by the device, and must not be modified.

### nm_device_get_firmware_version ()

    const char *
    nm_device_get_firmware_version (NMDevice *device);

Gets the firmware version of the NMDevice.

#### Parameters

device | a NMDevice |

#### Returns

the firmware version of the device. This is the internal string used by the device, and must not be modified.

### nm_device_get_type_description ()

    const char *
    nm_device_get_type_description (NMDevice *device);

Gets a (non-localized) description of the type of device that `device` is.

#### Parameters

device | a NMDevice |

#### Returns

the type description of the device. This is the internal string used by the device, and must not be modified.

### nm_device_get_hw_address ()

    const char *
    nm_device_get_hw_address (NMDevice *device);

Gets the current a hardware address (MAC) for the `device` .

#### Parameters

device | a NMDevice |

#### Returns

the current MAC of the device, or `NULL`. This is the internal string used by the device, and must not be modified.

### nm_device_get_capabilities ()

    NMDeviceCapabilities
    nm_device_get_capabilities (NMDevice *device);

Gets the device' capabilities.

#### Parameters

device | a NMDevice |

#### Returns

the capabilities

### nm_device_get_managed ()

    gboolean
    nm_device_get_managed (NMDevice *device);

Whether the NMDevice is managed by NetworkManager.

#### Parameters

device | a NMDevice |

#### Returns

`TRUE` if the device is managed by NetworkManager

### nm_device_set_managed ()

    void
    nm_device_set_managed (NMDevice *device,
                           gboolean managed);

`nm_device_set_managed` has been deprecated since version 1.22 and should not be used in newly-written code.

Use the async command `nm_client_dbus_set_property()` on `nm_object_get_path()`, interface `NM_DBUS_INTERFACE_DEVICE` to set the "Managed" property to a "(b)" boolean value. This function is deprecated because it calls a synchronous D-Bus method and modifies the content of the NMClient cache client side. Also, it does not emit a property changed signal.

Enables or disables management of NMDevice by NetworkManager.

#### Parameters

device | a NMDevice |
managed | `TRUE` to make the device managed by NetworkManager. |

Since: 1.2

### nm_device_get_autoconnect ()

    gboolean
    nm_device_get_autoconnect (NMDevice *device);

Whether the NMDevice can be autoconnected.

#### Parameters

device | a NMDevice |

#### Returns

`TRUE` if the device is allowed to be autoconnected

### nm_device_set_autoconnect ()

    void
    nm_device_set_autoconnect (NMDevice *device,
                               gboolean autoconnect);

`nm_device_set_autoconnect` has been deprecated since version 1.22 and should not be used in newly-written code.

Use the async command `nm_client_dbus_set_property()` on `nm_object_get_path()`, `NM_DBUS_INTERFACE_DEVICE` to set "Autoconnect" property to a "(b)" value. This function is deprecated because it calls a synchronous D-Bus method and modifies the content of the NMClient cache client side.

Enables or disables automatic activation of the NMDevice.

#### Parameters

device | a NMDevice |
autoconnect | `TRUE` to enable autoconnecting |

### nm_device_get_firmware_missing ()

    gboolean
    nm_device_get_firmware_missing (NMDevice *device);

Indicates that firmware required for the device's operation is likely to be missing.

#### Parameters

device | a NMDevice |

#### Returns

`TRUE` if firmware required for the device's operation is likely to be missing.

### nm_device_get_nm_plugin_missing ()

    gboolean
    nm_device_get_nm_plugin_missing (NMDevice *device);

Indicates that the NetworkManager plugin for the device is not installed.

#### Parameters

device | a NMDevice |

#### Returns

`TRUE` if the device plugin not installed.

Since: 1.2

### nm_device_get_ip4_config ()

    NMIPConfig *
    nm_device_get_ip4_config (NMDevice *device);

Gets the current IPv4 NMIPConfig associated with the NMDevice.

You can alternatively use `nm_active_connection_get_ip4_config()`, which also works with VPN connections.

#### Parameters

device | a NMDevice |

#### Returns

the IPv4 NMIPConfig, or `NULL` if the device is not activated.

[transfer none]

### nm_device_get_dhcp4_config ()

    NMDhcpConfig *
    nm_device_get_dhcp4_config (NMDevice *device);

Gets the current IPv4 NMDhcpConfig associated with the NMDevice.

You can alternatively use `nm_active_connection_get_dhcp4_config()`, which also works with VPN connections.

#### Parameters

device | a NMDevice |

#### Returns

the IPv4 NMDhcpConfig, or `NULL` if the device is not activated or not using DHCP.

[transfer none]

### nm_device_get_ip6_config ()

    NMIPConfig *
    nm_device_get_ip6_config (NMDevice *device);

Gets the current IPv6 NMIPConfig associated with the NMDevice.

You can alternatively use `nm_active_connection_get_ip6_config()`, which also works with VPN connections.

#### Parameters

device | a NMDevice |

#### Returns

the IPv6 NMIPConfig or `NULL` if the device is not activated.

[transfer none]

### nm_device_get_dhcp6_config ()

    NMDhcpConfig *
    nm_device_get_dhcp6_config (NMDevice *device);

Gets the current IPv6 NMDhcpConfig associated with the NMDevice.

You can alternatively use `nm_active_connection_get_dhcp6_config()`, which also works with VPN connections.

#### Parameters

device | a NMDevice |

#### Returns

the IPv6 NMDhcpConfig, or `NULL` if the device is not activated or not using DHCPv6.

[transfer none]

### nm_device_get_connectivity ()

    NMConnectivityState
    nm_device_get_connectivity (NMDevice *device,
                                int addr_family);

The connectivity state of the device for given address family. Supported address families are `AF_INET` for IPv4, `AF_INET6` for IPv6 or `AF_UNSPEC` for any.

#### Parameters

device | a NMDevice |
addr_family | network address family |

#### Returns

the current connectivity state

Since: 1.16

### nm_device_get_state ()

    NMDeviceState
    nm_device_get_state (NMDevice *device);

Gets the current NMDevice state.

#### Parameters

device | a NMDevice |

#### Returns

the current device state

### nm_device_get_state_reason ()

    NMDeviceStateReason
    nm_device_get_state_reason (NMDevice *device);

Gets the reason for entering the current NMDevice state.

#### Parameters

device | a NMDevice |

#### Returns

the reason for entering the current device state

### nm_device_get_active_connection ()

    NMActiveConnection *
    nm_device_get_active_connection (NMDevice *device);

Gets the NMActiveConnection object which owns this device during activation.

#### Parameters

device | a NMDevice |

#### Returns

the NMActiveConnection or `NULL` if the device is not part of an active connection.

[transfer none]

### nm_device_get_available_connections ()

    const GPtrArray *
    nm_device_get_available_connections (NMDevice *device);

Gets the NMRemoteConnections currently known to the daemon that could be activated on `device` .

#### Parameters

device | a NMDevice |

#### Returns

the GPtrArray containing NMRemoteConnections. This is the internal copy used by the connection, and must not be modified.

[element-type NMRemoteConnection]

### nm_device_get_physical_port_id ()

    const char *
    nm_device_get_physical_port_id (NMDevice *device);

Gets the physical port ID of the NMDevice. If non-`NULL`, this is an opaque string that can be used to recognize when seemingly-unrelated NMDevices are actually just different virtual ports on a single physical port. (Eg, NPAR / SR-IOV.)

#### Parameters

device | a NMDevice |

#### Returns

the physical port ID of the device, or `NULL` if the port ID is unknown. This is the internal string used by the device and must not be modified.

### nm_device_get_mtu ()

    guint32
    nm_device_get_mtu (NMDevice *device);

Gets the MTU of the NMDevice.

#### Parameters

device | a NMDevice |

#### Returns

the MTU of the device in bytes.

### nm_device_is_real ()

    gboolean
    nm_device_is_real (NMDevice *device);

#### Parameters

device | a NMDevice |

#### Returns

`TRUE` if the device exists, or `FALSE` if it is a placeholder device that could be automatically created by NetworkManager if one of its “available-connections” was activated.

Since: 1.2

### nm_device_is_software ()

    gboolean
    nm_device_is_software (NMDevice *device);

Whether the device is a software device.

#### Parameters

device | a NMDevice |

#### Returns

`TRUE` if `device` is a software device, `FALSE` if it is a hardware device.

### nm_device_get_product ()

    const char *
    nm_device_get_product (NMDevice *device);

Gets the product string of the NMDevice.

#### Parameters

device | a NMDevice |

#### Returns

the product name of the device. This is the internal string used by the device, and must not be modified.

The string is backslash escaped (C escaping) for invalid characters. The escaping can be reverted with `g_strcompress()`, however the result may not be valid UTF-8.

### nm_device_get_vendor ()

    const char *
    nm_device_get_vendor (NMDevice *device);

Gets the vendor string of the NMDevice.

#### Parameters

device | a NMDevice |

#### Returns

the vendor name of the device. This is the internal string used by the device, and must not be modified.

The string is backslash escaped (C escaping) for invalid characters. The escaping can be reverted with `g_strcompress()`, however the result may not be valid UTF-8.

### nm_device_get_description ()

    const char *
    nm_device_get_description (NMDevice *device);

Gets a description of `device` , based on its vendor and product names.

#### Parameters

device | an NMDevice |

#### Returns

a description of `device` . If either the vendor or the product name is unknown, this returns the interface name.

### nm_device_get_metered ()

    NMMetered
    nm_device_get_metered (NMDevice *device);

Gets the metered setting of a NMDevice.

#### Parameters

device | a NMDevice |

#### Returns

the metered setting.

Since: 1.2

### nm_device_get_lldp_neighbors ()

    GPtrArray *
    nm_device_get_lldp_neighbors (NMDevice *device);

Gets the list of neighbors discovered through LLDP.

#### Parameters

device | a NMDevice |

#### Returns

the GPtrArray containing NMLldpNeighbors. This is the internal copy used by the device and must not be modified. The library never modifies the returned array and thus it is safe for callers to reference and keep using it.

[element-type NMLldpNeighbor][transfer none]

Since: 1.2

### nm_device_get_interface_flags ()

    NMDeviceInterfaceFlags
    nm_device_get_interface_flags (NMDevice *device);

Gets the interface flags of the device.

#### Parameters

device | a NMDevice |

#### Returns

the flags

Since: 1.22

### nm_device_disambiguate_names ()

    char **
    nm_device_disambiguate_names (NMDevice **devices,
                                  int num_devices);

Generates a list of short-ish unique presentation names for the devices in `devices` .

#### Parameters

devices | an array of NMDevice. | [array length=num_devices]
num_devices | length of `devices` |

#### Returns

the device names.

[transfer full][array zero-terminated=1]

### nm_device_reapply ()

    gboolean
    nm_device_reapply (NMDevice *device,
                       NMConnection *connection,
                       guint64 version_id,
                       guint32 flags,
                       GCancellable *cancellable,
                       GError **error);

`nm_device_reapply` has been deprecated since version 1.22 and should not be used in newly-written code.

Use `nm_device_reapply_async()` or GDBusConnection.

Attempts to update device with changes to the currently active connection made since it was last applied.

#### Parameters

device | a NMDevice |
connection | the NMConnection to replace the applied settings with or `NULL` to reuse existing. | [allow-none]
version_id | zero or the expected version id of the applied connection. If specified and the version id mismatches, the call fails without modification. This allows to catch concurrent accesses. |
flags | always set this to zero |
cancellable | a GCancellable, or `NULL` |
error | location for a GError, or `NULL` |

#### Returns

`TRUE` on success, `FALSE` on error, in which case `error` will be set.

Since: 1.2

### nm_device_reapply_async ()

    void
    nm_device_reapply_async (NMDevice *device,
                             NMConnection *connection,
                             guint64 version_id,
                             guint32 flags,
                             GCancellable *cancellable,
                             GAsyncReadyCallback callback,
                             gpointer user_data);

Asynchronously begins an attempt to update device with changes to the currently active connection made since it was last applied.

#### Parameters

device | a NMDevice |
connection | the NMConnection to replace the applied settings with or `NULL` to reuse existing. | [allow-none]
version_id | zero or the expected version id of the applied connection. If specified and the version id mismatches, the call fails without modification. This allows to catch concurrent accesses. |
flags | always set this to zero |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the reapply operation completes |
user_data | caller-specific data passed to `callback` |

Since: 1.2

### nm_device_reapply_finish ()

    gboolean
    nm_device_reapply_finish (NMDevice *device,
                              GAsyncResult *result,
                              GError **error);

Gets the result of a call to `nm_device_reapply_async()`.

#### Parameters

device | a NMDevice |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

`TRUE` on success, `FALSE` on error, in which case `error` will be set.

Since: 1.2

### nm_device_get_applied_connection ()

    NMConnection *
    nm_device_get_applied_connection (NMDevice *device,
                                      guint32 flags,
                                      guint64 *version_id,
                                      GCancellable *cancellable,
                                      GError **error);

`nm_device_get_applied_connection` has been deprecated since version 1.22 and should not be used in newly-written code.

Use `nm_device_get_applied_connection_async()` or GDBusConnection.

Fetch the currently applied connection on the device.

#### Parameters

device | a NMDevice |
flags | the flags argument. Currently, this value must always be zero. |
version_id | returns the current version id of the applied connection. | [out][allow-none]
cancellable | a GCancellable, or `NULL` |
error | location for a GError, or `NULL` |

#### Returns

a `NMConnection` with the currently applied settings or `NULL` on error.

The connection is as received from D-Bus and might not validate according to `nm_connection_verify()`.

[transfer full]

Since: 1.2

### nm_device_get_applied_connection_async ()

    void
    nm_device_get_applied_connection_async
                                   (NMDevice *device,
                                    guint32 flags,
                                    GCancellable *cancellable,
                                    GAsyncReadyCallback callback,
                                    gpointer user_data);

Asynchronously begins and gets the currently applied connection.

#### Parameters

device | a NMDevice |
flags | the flags argument. Currently, this value must always be zero. |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the reapply operation completes |
user_data | caller-specific data passed to `callback` |

Since: 1.2

### nm_device_get_applied_connection_finish ()

    NMConnection *
    nm_device_get_applied_connection_finish
                                   (NMDevice *device,
                                    GAsyncResult *result,
                                    guint64 *version_id,
                                    GError **error);

Gets the result of a call to `nm_device_get_applied_connection_async()`.

#### Parameters

device | a NMDevice |
result | the result passed to the GAsyncReadyCallback |
version_id | the current version id of the applied connection. | [out][allow-none]
error | location for a GError, or `NULL` |

#### Returns

a currently applied `NMConnection` or `NULL` in case of error.

The connection is as received from D-Bus and might not validate according to `nm_connection_verify()`.

[transfer full]

Since: 1.2

### nm_device_disconnect ()

    gboolean
    nm_device_disconnect (NMDevice *device,
                          GCancellable *cancellable,
                          GError **error);

`nm_device_disconnect` has been deprecated since version 1.22 and should not be used in newly-written code.

Use `nm_device_disconnect_async()` or GDBusConnection.

Disconnects the device if currently connected, and prevents the device from automatically connecting to networks until the next manual network connection request.

#### Parameters

device | a NMDevice |
cancellable | a GCancellable, or `NULL` |
error | location for a GError, or `NULL` |

#### Returns

`TRUE` on success, `FALSE` on error, in which case `error` will be set.

### nm_device_disconnect_async ()

    void
    nm_device_disconnect_async (NMDevice *device,
                                GCancellable *cancellable,
                                GAsyncReadyCallback callback,
                                gpointer user_data);

Asynchronously begins disconnecting the device if currently connected, and prevents the device from automatically connecting to networks until the next manual network connection request.

#### Parameters

device | a NMDevice |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when the disconnect operation completes |
user_data | caller-specific data passed to `callback` |

### nm_device_disconnect_finish ()

    gboolean
    nm_device_disconnect_finish (NMDevice *device,
                                 GAsyncResult *result,
                                 GError **error);

Gets the result of a call to `nm_device_disconnect_async()`.

#### Parameters

device | a NMDevice |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

`TRUE` on success, `FALSE` on error, in which case `error` will be set.

### nm_device_delete ()

    gboolean
    nm_device_delete (NMDevice *device,
                      GCancellable *cancellable,
                      GError **error);

`nm_device_delete` has been deprecated since version 1.22 and should not be used in newly-written code.

Use `nm_device_delete_async()` or GDBusConnection.

Deletes the software device. Hardware devices can't be deleted.

#### Parameters

device | a NMDevice |
cancellable | a GCancellable, or `NULL` |
error | location for a GError, or `NULL` |

#### Returns

`TRUE` on success, `FALSE` on error, in which case `error` will be set.

### nm_device_delete_async ()

    void
    nm_device_delete_async (NMDevice *device,
                            GCancellable *cancellable,
                            GAsyncReadyCallback callback,
                            gpointer user_data);

Asynchronously begins deleting the software device. Hardware devices can't be deleted.

#### Parameters

device | a NMDevice |
cancellable | a GCancellable, or `NULL` |
callback | callback to be called when delete operation completes |
user_data | caller-specific data passed to `callback` |

### nm_device_delete_finish ()

    gboolean
    nm_device_delete_finish (NMDevice *device,
                             GAsyncResult *result,
                             GError **error);

Gets the result of a call to `nm_device_delete_async()`.

#### Parameters

device | a NMDevice |
result | the result passed to the GAsyncReadyCallback |
error | location for a GError, or `NULL` |

#### Returns

`TRUE` on success, `FALSE` on error, in which case `error` will be set.

### nm_device_filter_connections ()

    GPtrArray *
    nm_device_filter_connections (NMDevice *device,
                                  const GPtrArray *connections);

Filters a given array of connections for a given NMDevice object and returns connections which may be activated with the device. For example if `device` is a Wi-Fi device that supports only WEP encryption, the returned array will contain any Wi-Fi connections in `connections` that allow connection to unencrypted or WEP-enabled SSIDs. The returned array will not contain Ethernet, Bluetooth, Wi-Fi WPA connections, or any other connection that is incompatible with the device. To get the full list of connections see `nm_client_get_connections()`.

#### Parameters

device | an NMDevice to filter connections for |
connections | an array of NMConnections to filter. | [element-type NMConnection]

#### Returns

an array of NMConnections that could be activated with the given `device` . The array should be freed with `g_ptr_array_unref()` when it is no longer required.

WARNING: the transfer annotation for this function may not work correctly with bindings. See https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/305. You can filter the list yourself with `nm_device_connection_valid()`.

[transfer full][element-type NMConnection]

### nm_device_connection_valid ()

    gboolean
    nm_device_connection_valid (NMDevice *device,
                                NMConnection *connection);

Validates a given connection for a given NMDevice object and returns whether the connection may be activated with the device. For example if `device` is a Wi-Fi device that supports only WEP encryption, the connection will only be valid if it is a Wi-Fi connection which describes a WEP or open network, and will not be valid if it describes a WPA network, or if it is an Ethernet, Bluetooth, WWAN, etc connection that is incompatible with the device.

#### Parameters

device | an NMDevice to validate `connection` against |
connection | an NMConnection to validate against `device` |

#### Returns

`TRUE` if the connection may be activated with this device, `FALSE` if is incompatible with the device's capabilities and characteristics.

### nm_device_connection_compatible ()

    gboolean
    nm_device_connection_compatible (NMDevice *device,
                                     NMConnection *connection,
                                     GError **error);

Validates a given connection for a given NMDevice object and returns whether the connection may be activated with the device. For example if `device` is a Wi-Fi device that supports only WEP encryption, the connection will only be valid if it is a Wi-Fi connection which describes a WEP or open network, and will not be valid if it describes a WPA network, or if it is an Ethernet, Bluetooth, WWAN, etc connection that is incompatible with the device.

This function does the same as `nm_device_connection_valid()`, i.e. checking compatibility of the given device and connection. But, in addition, it sets GError when FALSE is returned.

#### Parameters

device | an NMDevice to validate `connection` against |
connection | an NMConnection to validate against `device` |
error | return location for a GError, or `NULL` |

#### Returns

`TRUE` if the connection may be activated with this device, `FALSE` if is incompatible with the device's capabilities and characteristics.

### nm_device_get_setting_type ()

    GType
    nm_device_get_setting_type (NMDevice *device);

Gets the (primary) NMSetting subtype associated with connections that can be used on `device` .

#### Parameters

device | an NMDevice |

#### Returns

`device` 's associated NMSetting type

### nm_lldp_neighbor_ref ()

    void
    nm_lldp_neighbor_ref (NMLldpNeighbor *neighbor);

Increases the reference count of the object.

Since 1.32, ref-counting of NMLldpNeighbor is thread-safe.

#### Parameters

neighbor | the NMLldpNeighbor |

Since: 1.2

### nm_lldp_neighbor_unref ()

    void
    nm_lldp_neighbor_unref (NMLldpNeighbor *neighbor);

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

Since 1.32, ref-counting of NMLldpNeighbor is thread-safe.

#### Parameters

neighbor | the NMLldpNeighbor |

Since: 1.2

### nm_lldp_neighbor_get_attr_names ()

    char **
    nm_lldp_neighbor_get_attr_names (NMLldpNeighbor *neighbor);

Gets an array of attribute names available for `neighbor` .

#### Parameters

neighbor | the NMLldpNeighbor |

#### Returns

a `NULL`-terminated array of attribute names.

[transfer full]

Since: 1.2

### nm_lldp_neighbor_get_attr_value ()

    GVariant *
    nm_lldp_neighbor_get_attr_value (NMLldpNeighbor *neighbor,
                                     const char *name);

Gets the value (as a GVariant) of attribute with name `name` on `neighbor`

#### Parameters

neighbor | the NMLldpNeighbor |
name | the attribute name |

#### Returns

the value or `NULL` if the attribute with `name` was not found.

[transfer none]

Since: 1.18

### nm_lldp_neighbor_new ()

    NMLldpNeighbor *
    nm_lldp_neighbor_new (void);

Creates a new NMLldpNeighbor object.

Note that NMLldpNeighbor has no public API for mutating an instance. Also, libnm will not internally mutate a once exposed object. They are guaranteed to be immutable. Since 1.32, ref-counting is thread-safe.

This function is not useful, as there is no public API to actually modify the (empty) instance.

#### Returns

the new NMLldpNeighbor object.

[transfer full]

Since: 1.2

### nm_lldp_neighbor_get_attr_string_value ()

    gboolean
    nm_lldp_neighbor_get_attr_string_value
                                   (NMLldpNeighbor *neighbor,
                                    const char *name,
                                    const char **out_value);

Gets the string value of attribute with name `name` on `neighbor`

#### Parameters

neighbor | the NMLldpNeighbor |
name | the attribute name |
out_value | on return, the attribute value. | [out][allow-none][transfer none]

#### Returns

`TRUE` if a string attribute with name `name` was found, `FALSE` otherwise

Since: 1.2

### nm_lldp_neighbor_get_attr_uint_value ()

    gboolean
    nm_lldp_neighbor_get_attr_uint_value (NMLldpNeighbor *neighbor,
                                          const char *name,
                                          guint *out_value);

Gets the uint32 value of attribute with name `name` on `neighbor`

#### Parameters

neighbor | the NMLldpNeighbor |
name | the attribute name |
out_value | on return, the attribute value. | [out][allow-none]

#### Returns

`TRUE` if a uint32 attribute with name `name` was found, `FALSE` otherwise

Since: 1.2

### nm_lldp_neighbor_get_attr_type ()

    const GVariantType *
    nm_lldp_neighbor_get_attr_type (NMLldpNeighbor *neighbor,
                                    const char *name);

Get the type of an attribute.

#### Parameters

neighbor | the NMLldpNeighbor |
name | the attribute name |

#### Returns

the GVariantType of the attribute with name `name`

Since: 1.2

## Types and Values

### NM_DEVICE_DEVICE_TYPE

    #define NM_DEVICE_DEVICE_TYPE      "device-type"

### NM_DEVICE_UDI

    #define NM_DEVICE_UDI              "udi"

### NM_DEVICE_PATH

    #define NM_DEVICE_PATH             "path"

### NM_DEVICE_INTERFACE

    #define NM_DEVICE_INTERFACE        "interface"

### NM_DEVICE_IP_INTERFACE

    #define NM_DEVICE_IP_INTERFACE     "ip-interface"

### NM_DEVICE_DRIVER

    #define NM_DEVICE_DRIVER           "driver"

### NM_DEVICE_DRIVER_VERSION

    #define NM_DEVICE_DRIVER_VERSION   "driver-version"

### NM_DEVICE_FIRMWARE_VERSION

    #define NM_DEVICE_FIRMWARE_VERSION "firmware-version"

### NM_DEVICE_CAPABILITIES

    #define NM_DEVICE_CAPABILITIES     "capabilities"

### NM_DEVICE_REAL

    #define NM_DEVICE_REAL             "real"

### NM_DEVICE_MANAGED

    #define NM_DEVICE_MANAGED          "managed"

### NM_DEVICE_AUTOCONNECT

    #define NM_DEVICE_AUTOCONNECT "autoconnect"

`NM_DEVICE_AUTOCONNECT` is deprecated and should not be used in newly-written code.

### NM_DEVICE_FIRMWARE_MISSING

    #define NM_DEVICE_FIRMWARE_MISSING      "firmware-missing"

### NM_DEVICE_NM_PLUGIN_MISSING

    #define NM_DEVICE_NM_PLUGIN_MISSING     "nm-plugin-missing"

### NM_DEVICE_IP4_CONFIG

    #define NM_DEVICE_IP4_CONFIG            "ip4-config"

### NM_DEVICE_DHCP4_CONFIG

    #define NM_DEVICE_DHCP4_CONFIG          "dhcp4-config"

### NM_DEVICE_IP6_CONFIG

    #define NM_DEVICE_IP6_CONFIG            "ip6-config"

### NM_DEVICE_DHCP6_CONFIG

    #define NM_DEVICE_DHCP6_CONFIG          "dhcp6-config"

### NM_DEVICE_STATE

    #define NM_DEVICE_STATE                 "state"

### NM_DEVICE_STATE_REASON

    #define NM_DEVICE_STATE_REASON          "state-reason"

### NM_DEVICE_ACTIVE_CONNECTION

    #define NM_DEVICE_ACTIVE_CONNECTION     "active-connection"

### NM_DEVICE_AVAILABLE_CONNECTIONS

    #define NM_DEVICE_AVAILABLE_CONNECTIONS "available-connections"

### NM_DEVICE_VENDOR

    #define NM_DEVICE_VENDOR                "vendor"

### NM_DEVICE_PRODUCT

    #define NM_DEVICE_PRODUCT               "product"

### NM_DEVICE_PHYSICAL_PORT_ID

    #define NM_DEVICE_PHYSICAL_PORT_ID      "physical-port-id"

### NM_DEVICE_MTU

    #define NM_DEVICE_MTU                   "mtu"

### NM_DEVICE_METERED

    #define NM_DEVICE_METERED               "metered"

### NM_DEVICE_LLDP_NEIGHBORS

    #define NM_DEVICE_LLDP_NEIGHBORS        "lldp-neighbors"

### NM_DEVICE_IP4_CONNECTIVITY

    #define NM_DEVICE_IP4_CONNECTIVITY      "ip4-connectivity"

### NM_DEVICE_IP6_CONNECTIVITY

    #define NM_DEVICE_IP6_CONNECTIVITY      "ip6-connectivity"

### NM_DEVICE_INTERFACE_FLAGS

    #define NM_DEVICE_INTERFACE_FLAGS       "interface-flags"

### NM_DEVICE_HW_ADDRESS

    #define NM_DEVICE_HW_ADDRESS            "hw-address"

### NMLldpNeighbor

    typedef struct _NMLldpNeighbor NMLldpNeighbor;

Supported attributes are:

- NM_LLDP_ATTR_CHASSIS_ID_TYPE (type: 'u')

- NM_LLDP_ATTR_CHASSIS_ID (type: 's')

- NM_LLDP_ATTR_DESTINATION (type: 's')

- NM_LLDP_ATTR_IEEE_802_1_PPVID (type: 'u'). This attribute only reports the first PPVID and therefore it is deprecated in favor of NM_LLDP_ATTR_IEEE_802_1_PPVIDS which reports all the PPVID.

- NM_LLDP_ATTR_IEEE_802_1_PPVID_FLAGS (type: 'u'). This attribute only reports the first PPVID and therefore it is deprecated in favor of NM_LLDP_ATTR_IEEE_802_1_PPVIDS which reports all the PPVID.

- NM_LLDP_ATTR_IEEE_802_1_PPVIDS (type: 'aa{sv}')

  An array of dictionaries where each element has keys:

  - flags (type: 'u')

  - ppvid (type: 'u')

- NM_LLDP_ATTR_IEEE_802_1_PVID (type: 'u')

- NM_LLDP_ATTR_IEEE_802_1_VID (type: 'u'). This attribute only reports the first VLAN and therefore it is deprecated in favor of NM_LLDP_ATTR_IEEE_802_1_VLANS which reports all the VLANs.

- NM_LLDP_ATTR_IEEE_802_1_VLAN_NAME (type: 's'). This attribute only reports the first VLAN and therefore it is deprecated in favor of NM_LLDP_ATTR_IEEE_802_1_VLANS which reports all the VLANs.

- NM_LLDP_ATTR_IEEE_802_1_VLANS (type: 'aa{sv}')

  An array of dictionaries where each element has keys:

  - name (type: 's')

  - vid (type: 'u')

- NM_LLDP_ATTR_IEEE_802_3_MAC_PHY_CONF (type: 'a{sv}')

  Dictionary where each element has keys:

  - autoneg (type: 'u')

  - operational-mau-type (type: 'u')

  - pmd-autoneg-cap (type: 'u')

- NM_LLDP_ATTR_IEEE_802_3_MAX_FRAME_SIZE (type: 'u')

- NM_LLDP_ATTR_IEEE_802_3_POWER_VIA_MDI (type: 'a{sv}')

  Dictionary where each element has keys:

  - mdi-power-support (type: 'u')

  - power-class (type: 'u')

  - pse-power-pair (type: 'u')

- NM_LLDP_ATTR_MANAGEMENT_ADDRESSES (type: 'aa{sv}')

  An array of dictionaries where each element has keys:

  - address (type: 'ay')

  - address-subtype (type: 'u')

  - interface-number (type: 'u')

  - interface-number-subtype (type: 'u')

  - object-id (type: 'ay')

- NM_LLDP_ATTR_PORT_DESCRIPTION (type: 's')

- NM_LLDP_ATTR_PORT_ID_TYPE (type: 'u')

- NM_LLDP_ATTR_PORT_ID (type: 's')

- NM_LLDP_ATTR_RAW (type: 'ay')

- NM_LLDP_ATTR_SYSTEM_CAPABILITIES (type: 'u')

- NM_LLDP_ATTR_SYSTEM_DESCRIPTION (type: 's')

- NM_LLDP_ATTR_SYSTEM_NAME (type: 's')