summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-08-14 22:12:26 -0700
committerMarcel Holtmann <marcel@holtmann.org>2009-08-14 22:12:26 -0700
commit971f424319fad8bb0c9b593235080b0ce6394501 (patch)
treef3e79d58dd836574ddcc04c5b91496c2f520ab59
parenta4c2f9ece63554272d206f197e0ed4712a551a43 (diff)
downloadconnman-971f424319fad8bb0c9b593235080b0ce6394501.tar.gz
connman-971f424319fad8bb0c9b593235080b0ce6394501.tar.bz2
connman-971f424319fad8bb0c9b593235080b0ce6394501.zip
Add initial text for IP handling documentation
-rw-r--r--doc/Makefile.am11
-rw-r--r--doc/ipconfig-api.txt41
2 files changed, 48 insertions, 4 deletions
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.
+
+