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/Makefile.am | 11 +++++++---- doc/ipconfig-api.txt | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 doc/ipconfig-api.txt (limited to 'doc') diff --git a/doc/Makefile.am b/doc/Makefile.am index 0696488e..16b0fb17 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -37,7 +37,10 @@ else EXTRA_DIST = $(DOC_MAIN_SGML_FILE) connman-introduction.xml endif -EXTRA_DIST += overview-api.txt behavior-api.txt plugin-api.txt \ - manager-api.txt profile-api.txt service-api.txt \ - device-lowlevel-api.txt network-lowlevel-api.txt \ - connection-lowlevel-api.txt agent-api.txt +EXTRA_DIST += overview-api.txt behavior-api.txt \ + ipconfig-api.txt plugin-api.txt \ + manager-api.txt agent-api.txt \ + profile-api.txt service-api.txt \ + device-lowlevel-api.txt \ + network-lowlevel-api.txt \ + connection-lowlevel-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