Bring NetworkManager support

to your applications

1 NetworkManager

● Widely used by many distributions

● Support for many network types

● Command line, TUI and GUI tools

● Excellent GNOME and KDE integration

● VPN Plugins

● A developer-friendly D-Bus API

2 NetworkManager NetworkManager DBus API org.freedesktop.NetworkManager /org/freedesktop/NetworkManager - org.freedesktop.NetworkManager /org/freedesktop/NetworkManager/ActiveConnection - org.freedesktop.NetworkManager.Connection.Active /org/freedesktop/NetworkManager/AccessPoint - org.freedesktop.NetworkManager.AccessPoint /org/freedesktop/NetworkManager/Devices - org.freedesktop.NetworkManager.Device - org.freedesktop.NetworkManager.Device.Type - org.freedesktop.NetworkManager.Device.Statistics /org/freedesktop/NetworkManager/Settings - org.freedesktop.NetworkManager.Settings

3 NetworkManager DBus API NetworkManagerQt

● A developer-friendly library providing access to NM over DBus

● API closely follows NM DBus API

● Part of KDE Frameworks

● Support for NetworkManager 0.9.10+

● Used by Plasma Networkmanagement applet

4 NetworkManagerQt NetworkManager::[Manager]

● Not an actual class, but a namespace with static methods

● Provides access to network status: • Connectivity (none, portal, limited, full) • State (connecting, connected, disconnected ...) • Wifi/Wimax/Wwan enabled/disabled • Primary connection (type)

• Lists all devices and active connections

• Allows to activate and deactivate connections

5 NetworkManager::[Manager] 6 NetworkManager::[Manager] 7 NetworkManager::[Manager] NetworkManager::[Settings]

● Like Manager, again static methods under namespace

• Lists all configured connections

• Allows to create and remove connections

8 NetworkManager::[Setting] 9 NetworkManager::[Setting] NetworkManager::ConnectionSettings

● Represents basic connection setting

● Collects other setting types used for a specific connection type

● e.g. wireless connection: ● Connection setting ● IPv4 setting ● IPv6 setting ● Wireless setting ● Wireless security setting

10 NetworkManager::ConnectionSettings 11 NetworkManager::ConnectionSettings NetworkManager::Device[Type]

● Common device interface

● Each device has specific interface with specific properties

12 NetworkManager::Device 13 NetworkManager::Device Other stuf

● Wireless network

● Utils

● Secret agent

14 Other stuf Secret Agent

15 Secret Agent Questions?

16 Questions? Thank you

17 Thank you