diff options
author | Daniel Wagner <daniel.wagner@bmw-carit.de> | 2011-04-12 08:53:35 +0200 |
---|---|---|
committer | Daniel Wagner <daniel.wagner@bmw-carit.de> | 2011-04-12 15:27:43 +0200 |
commit | a756ff4868ec93deb70f638a3a1ae3533c046628 (patch) | |
tree | d7bc3e66fe86047394176b828af1adb4f489c902 /doc | |
parent | b2e8ddc37278588c7364770a6e98cda76cc9b540 (diff) | |
download | connman-a756ff4868ec93deb70f638a3a1ae3533c046628.tar.gz connman-a756ff4868ec93deb70f638a3a1ae3533c046628.tar.bz2 connman-a756ff4868ec93deb70f638a3a1ae3533c046628.zip |
session: Add session overview documentation
Diffstat (limited to 'doc')
-rw-r--r-- | doc/session-overview.txt | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/doc/session-overview.txt b/doc/session-overview.txt new file mode 100644 index 00000000..f07eca2b --- /dev/null +++ b/doc/session-overview.txt @@ -0,0 +1,71 @@ +Session API +*********** + + +Connection management algorithm basics +====================================== + +When a session is created, a sorted list of services is added to the +session. The services are filtered and stable sorted according +following rules: + + - AllowedBearers (filter and sort) + - RoamingPolicy (filter and sort) + +A stable sorting algorithms maintains the relative order. + +If a service is removed or added all sessions are updated according +the above rules. + +There are three triggers which lead to evaluate the connect +algorithm: + + - Session.Connect() + - PeriodicConnect + - Offline + +Connect algorithm: + + Session.Connect() Offline + PeriodicConnect | + | Yes +------+-------+ No + +------+StayConnected?+------ Do nothing + | +--------------+ + | + | + +------+-------+ + +-----+EmergencyCall?+-----+ + Yes| +--------------+ |No + | | + Connect to +--------------+ + first available +---+AvoidHandover?+---+ + Service | +--------------+ | + Yes| |No + +----------------+ | + +---+In service_list +---+ | + Yes| |and online? | |No | + | +----------------+ | | + | | | + Take that one Take first in + the service list + +There are two triggers which lead to evaluate the disconnect +algorithm + + - Session.Disconnect() + - IdleTimeout + +Disconnect algorithm: + + Session.Disconnect() + IdleTimeout + | + | + | ++-----------------+ Yes +|service not used +-------------+ +|by other session?| | ++------.----------+ | + |No | + | | + Service.Disconnect() Do nothing |