Imported Upstream version 1.38
[platform/upstream/connman.git] / doc / session-api.txt
index df1b4f2..8bfcf6b 100644 (file)
@@ -84,7 +84,7 @@ Methods               void Destroy()
                        to be sent. Some changes might cause the session to
                        be moved to offline state.
 
-Settings       boolean State [readonly]
+Settings       string State [readonly]
 
                        This indicates if the connection is disconnected,
                        connected or online. It is updated according to the
@@ -140,49 +140,79 @@ Settings  boolean State [readonly]
                        The services are sorted in the order of the bearer
                        entries in this list.
 
-                       Also "*" matches any bearer. This is usefull to prefer
-                       certain bearers such as Wifi with a fallback to any
+                       Also "*" matches any bearer. This is useful to prefer
+                       certain bearers such as 'wifi' with a fallback to any
                        other available bearer.
 
-               boolean AvoidHandover [readwrite]
+                       Invalid bearer names will be ignored and removed
+                       from the list. And empty AllowedBearers will
+                       not match to any bearer, therefore the session
+                       will never go online.
 
-                       By default this setting is false. It can be used
-                       to indicate that a handover is currently not a good
-                       idea. However no connection is guaranteed. So a
-                       handover can happen anyway. This is just an indication
-                       that the application would like to avoid it right now.
-
-                       It is a bad idea to always enable this settings and
-                       actually it will be reset after a while to avoid
-                       congestion.
-
-                       Main use case it is for application that are currently
-                       doing a specific tasks that it prefers to finish
-                       before allowing handovers again. An example would
-                       be synchronization.
-
-                       Never the less application needs to be aware that
-                       handovers can happen at any time even if this is
-                       set to true.
+                       When a session is created and the provided settings
+                       dictionary does not contain AllowedBearers, a default
+                       session with "*" will be created.
 
                string ConnectionType [readwrite]
 
                        This is used to indicate which connection is requested
                        from the session. The state of the session will be
-                       updated accordingly. Values can be nothing, 'local' or
-                       'internet'.
+                       updated accordingly. Values can be 'local',
+                       'internet' or 'any'.
+
                        'local' means the session requests to be connected,
                        but does not require specifically to be online.
                        Therefore State property will be set to 'connected' if
                        underlying service gets ready and/or online.
+
                        'online' means the session requests to be connected,
                        and online. State property will never get 'connected'
                        but instead will switch to 'online' if underlying
                        service gets online.
-                       No value means the session requests any kind of
-                       connection and the state will be updated on all steps,
-                       'connected' and 'online'. This is the default value.
+
+                       'any' means either 'local' or 'internet'.
+
+                       Invalid values will be ignored and removed. An
+                       empty ConnectionType is an invalid configuration.
+
+                       When a session is created and the provided settings
+                       dictionary does not contain ConnectionType, a default
+                       session with 'any' will be created.
 
                        (This setting will be removed when the unique process
-                       identifaction problem is solved.)
+                       identification problem is solved.)
+
+               string AllowedInterface [readwrite] [experimental]
+
+                       This field is used to bind a session to a specific
+                       network interface. If this field is empty, the first
+                       interface from a list of available ones will be used.
+                       Also "*" string matches any interface.
+
+                       Only one interface may be specified.
+
+                       If a specified network interface is not available
+                       (e.g. because AllowedBearers filters it out), the
+                       session will not go online.
+
+               boolean SourceIPRule [readwrite] [experimental]
+
+                       If set to true the session will create source IP
+                       address rule in the firewall, which redirects traffic
+                       to that session's routing table.
+
+                       Each session maintains a dedicated routing table, with
+                       a default route. When the source IP rule is enabled,
+                       an application can select which session/interface to
+                       send traffic on, using bind-before-connect mechanism.
+
+               string ContextIdentifier [readwrite] [experimental]
 
+                       The application can provide an identifier for a
+                       session. If an application runs several session
+                       at the same time, the additional information
+                       can be used by ConnMan to assign different
+                       bearers according the identifier. For example
+                       a web browser creates per tab a session. For
+                       each session a different should bearer be
+                       assigned.