From 971f424319fad8bb0c9b593235080b0ce6394501 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Fri, 14 Aug 2009 22:12:26 -0700 Subject: Add initial text for IP handling documentation --- doc/ipconfig-api.txt | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 doc/ipconfig-api.txt (limited to 'doc/ipconfig-api.txt') diff --git a/doc/ipconfig-api.txt b/doc/ipconfig-api.txt new file mode 100644 index 00000000..179e86fc --- /dev/null +++ b/doc/ipconfig-api.txt @@ -0,0 +1,41 @@ +IP configuration handling +************************* + + +IP basics +========= + +The core IP handling is designed around network interfaces or more precise +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. + + -- cgit v1.2.3