diff options
author | Seonah Moon <seonah1.moon@samsung.com> | 2018-01-08 13:42:54 +0900 |
---|---|---|
committer | Seonah Moon <seonah1.moon@samsung.com> | 2018-01-08 13:43:31 +0900 |
commit | 9362752a471a5c892d679548fbf2828d5fc5684b (patch) | |
tree | 83c7d29a28556906938f5c2198d81e2d35f86f92 /doc/session-overview.txt | |
parent | 22633ced6225d294ce8483efbf2b39ea0c0c1b65 (diff) | |
download | connman-9362752a471a5c892d679548fbf2828d5fc5684b.tar.gz connman-9362752a471a5c892d679548fbf2828d5fc5684b.tar.bz2 connman-9362752a471a5c892d679548fbf2828d5fc5684b.zip |
Imported Upstream version 1.35upstream/1.35
Change-Id: I174854914d9fd06a813270b57d1f7bc2bac63c6a
Signed-off-by: Seonah Moon <seonah1.moon@samsung.com>
Diffstat (limited to 'doc/session-overview.txt')
-rw-r--r-- | doc/session-overview.txt | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/doc/session-overview.txt b/doc/session-overview.txt index 23931678..976c3518 100644 --- a/doc/session-overview.txt +++ b/doc/session-overview.txt @@ -92,3 +92,34 @@ The default session configuration does not enable the per application routing. Sessions are still useful in this setup, because the notification of sessions is still available, e.g. the online/offline notification. + + +Multiple per-session routing tables +=================================== + +Sessions can be used in an environment with multiple network interfaces, +where an application needs to direct outside traffic through a selected +interface(s). ConnMan can maintain multiple sessions in a connected +stated, and the application can dynamically, on a per-socket basis, +select which session is used to route traffic. + +Example use cases are: +- monitoring liveness of multiple connected interfaces, by sending + end-to-end heartbeat traffic on all of them in parallel. +- prioritising traffic - e.g. sensitive data can be transferred over a slow, + but secure connection, while big, public downloads use a second session + +By default, ConnMan maintains only one online service. So it is impossible +to send external traffic (routed through a gateway) on multiple interfaces. +In order to enable this functionality, an application needs to issue the +following API calls: +- create multiple sessions, one for each interface to be used +- set each session's AllowedInterface config field to the required interface + name (eth0, eth1, wlan0, ppp0, etc.) +- set each session's SourceIPRule config field to true +- connect each session (or the service it is using) + +That will instruct ConnMan to create multiple routing tables, with default +routes in them. After that, the application can issue a bind() call on each +socket, using required interface's source IP address. The bind() call must +be made before a connect() call on a socket. |