Add initial text for IP handling documentation
authorMarcel Holtmann <marcel@holtmann.org>
Sat, 15 Aug 2009 05:12:26 +0000 (22:12 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Sat, 15 Aug 2009 05:12:26 +0000 (22:12 -0700)
doc/Makefile.am
doc/ipconfig-api.txt [new file with mode: 0644]

index 0696488..16b0fb1 100644 (file)
@@ -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 (file)
index 0000000..179e86f
--- /dev/null
@@ -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.
+
+