Sailfish OS
  • Info
  • User Experience
  • Cases
  • Community
  • Developers
  • Contact
  • Get Sailfish OS
Select Page
  • Info
  • User Experience
  • Cases
  • Community
  • Developers
  • Contact
  • Get Sailfish OS

API Documentation

Documentation for developing SailfishOS applications
  • API Documentation
  • Libsailfishapp
  • Sailfish Silica
    • Documentation
    • Icon Reference
  • Sailfish Components
    • Sailfish Accounts
    • Sailfish Bluetooth
    • Sailfish Contacts
    • Sailfish Crypto
    • Sailfish Gallery
    • Sailfish Media
    • Sailfish Pickers
    • Sailfish Secrets
    • Sailfish Share
    • Sailfish Telephony
    • Sailfish Webview
    • Amber Web Authorization
    • Amber MPRIS
  • Nemo QML Plugins
    • Configuration
    • Contacts
    • D-Bus
    • Keepalive
    • Notifications
    • Thumbnailer
  • Sailfish Middleware
    • MDM Framework
    • MDM Policy Framework
    • User Manager Daemon
  • API Documentation
  • Libsailfishapp
  • Sailfish Silica
    • Documentation
    • Icon Reference
  • Sailfish Components
    • Sailfish Accounts
    • Sailfish Bluetooth
    • Sailfish Contacts
    • Sailfish Crypto
    • Sailfish Gallery
    • Sailfish Media
    • Sailfish Pickers
    • Sailfish Secrets
    • Sailfish Share
    • Sailfish Telephony
    • Sailfish Webview
    • Amber Web Authorization
    • Amber MPRIS
  • Nemo QML Plugins
    • Configuration
    • Contacts
    • D-Bus
    • Keepalive
    • Notifications
    • Thumbnailer
  • Sailfish Middleware
    • MDM Framework
    • MDM Policy Framework
    • User Manager Daemon
IP configuration handling
*************************


IP basics
=========

The core IP handling is designed around network interfaces or more precisely
what the Linux kernel handles as struct net_device. Via RTNL every interface
is tracked and an IP device created for it.

	+--------+           +---- eth0 -----+
	|        |           |               |
	|  RTNL  +-----+---->|   IP device   |
	|        |     |     |               |
	+--------+     |     +---------------+
                       |
                       |     +---- wlan0 ----+
	               |     |               |
	               +---->|   IP device   |
	                     |               |
	                     +---------------+

The IP device tracks link configuration, IP address setting and routing
information for that interface. Every IP device also contains a configuration
element. That element contains an operation table for callbacks based on
different events.

	struct connman_ipconfig_ops {
		void (*up)         (struct connman_ipconfig *);
		void (*down)       (struct connman_ipconfig *);
		void (*lower_up)   (struct connman_ipconfig *);
		void (*lower_down) (struct connman_ipconfig *);
		void (*ip_bound)   (struct connman_ipconfig *);
		void (*ip_release) (struct connman_ipconfig *);
	};

All configuration objects created directly by RTNL are tightly bound to the
IP device. They will trigger DHCP or other configuration helpers.



  • Legal
  • Contact Us
  • Jolla Mobile Ltd © 2025

  • Facebook
  • Twitter
  • Mastodon
  • YouTube
  • LinkedIn