7 Nokia Corporation - initial contribution. |
7 Nokia Corporation - initial contribution. |
8 Contributors: |
8 Contributors: |
9 --> |
9 --> |
10 <!DOCTYPE concept |
10 <!DOCTYPE concept |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
12 <concept xml:lang="en" id="GUID-F43A54C0-E82B-5790-8493-1372D214C642"><title>What are Planes</title><shortdesc>This topic describes the concept of a <i>Plane</i> in the Communications Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p>The transmission of data and the management of connections is divided into separate operations. Symbian OS gives the name <i>Plane</i> to these operations. The Communications Framework defines three Planes. Each Plane has a separate role and a separate responsibility. Each Plane matches a Sockets Server API. </p> <p>The Planes are called: the Data Plane, the Control Plane and the Management Plane. </p> <p>Layers span all three Planes. Code in each Plane operates together to deliver the required Communications protocol behaviour. </p> <p>A connection can have a number of subconnections. Subconnections can be called channels. The concepts of connection and subconnection make it useful to divide the Control Plane into two parts. The following diagram shows the concept. The blue arrows indicate dependencies. The vertical dotted lines indicate the division of Planes. </p> <fig id="GUID-258000D9-1BC3-5A61-8235-4183D4A759C5"><title> |
12 <concept id="GUID-F43A54C0-E82B-5790-8493-1372D214C642" xml:lang="en"><title>What |
13 Planes in the Communications Framework |
13 are Planes</title><shortdesc>This topic describes the concept of a <i>Plane</i> in the Communications |
14 </title> <image href="GUID-3D8FE2A7-E544-51B9-9572-492A3B61377C_d0e88010_href.png" placement="inline"/></fig> <p>The following diagram overlays the Planes with an example series of Layers </p> <fig id="GUID-1758E53D-2A62-5C4C-93B9-8FE5DE67BBAA"><title> |
14 Framework. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
15 Planes and Layers in the Communications Framework |
15 <p>The transmission of data and the management of connections is divided into |
16 </title> <image href="GUID-47EF98E9-7833-5E94-ADFF-198401463A8C_d0e88019_href.png" placement="inline"/></fig> <ul><li id="GUID-45F19CFA-9B96-53B3-9B15-428BB3226BAA"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-E8250BBE-8529-5C45-BCA3-92A87C013580">Data Plane</xref> </p> </li> <li id="GUID-461678D6-3198-55CF-B07E-94F5E1086BAC"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5">Control Plane</xref> </p> </li> <li id="GUID-6B98DEAB-F245-5533-A05A-957FADE0C120"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442">Management Plane</xref> </p> </li> </ul> <section id="GUID-E8250BBE-8529-5C45-BCA3-92A87C013580"><title>Data Plane</title> <p>The Data Plane carries data and uses Communications protocols. The Data Plane handles conversations with remote peers.The <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5">Control Plane</xref> and the <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442">Management Plane</xref> exist to serve the Data Plane. </p> <p>The Data Plane exists to minimise interruptions to the flow of data. The Data Plane assigns the response to interruptions to the Control Plane. Interruptions include: the start of a new network connection, the management of a timeout and the management of changes to the status of the network. </p> <p>To make sure that interruptions cannot interfere with the Data Plane, a thread divide exists between the Data Plane and the Control/Management Planes. The thread division allows the Communications Framework to give the Data Plane thread a higher priority than the Control and Management Plane thread. The difference in thread priorities allows the Communications Framework to give the task of data transfer the highest priority. </p> <p>The Communications Framework provides a mechanism to send messages between the threads. The mechanism is called the <xref href="GUID-4CE10DED-31B2-50B5-9D38-85CE86E8A8DE.dita">Message Transport</xref>. The Transport sends and delivers the messages asynchronously. Threads can continue their work until the threads are prepared to process messages. The Transport always makes sure of the delivery of messages. </p> <p>The Data Plane corresponds to the Sockets Server API: <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref>. </p> <p>The following diagram shows the thread divide. </p> <fig id="GUID-A440C4F8-199E-575A-9922-D90059CA69C3"><title> |
16 separate operations. Symbian platform gives the name <i>Plane</i> to |
17 Data Plane in the Communications Framework |
17 these operations. The Communications Framework defines three Planes. Each |
18 </title> <image href="GUID-337FA49D-DE53-5568-9A5C-D6AE3F25E0A6_d0e88086_href.png" placement="inline"/></fig> <p><b>Features </b> </p> <p>The Data Plane: </p> <ul><li id="GUID-70DDF365-81B9-5D30-BEA1-B338074CF097"><p>exchanges data with remote peers and uses data transfer protocols </p> </li> <li id="GUID-E8A426F5-98AD-5BFA-9D8C-820B1656140C"><p>allows any number of conversations at the same time through many protocols </p> </li> <li id="GUID-6748E1E2-5FF3-52BC-9FC7-6759F52B59D2"><p>enables the transfer of data to clients of the protocol stack and from clients of the protocol stack </p> </li> <li id="GUID-1073D70B-80FA-55E7-96E9-C9B51A701BC4"><p>enables the transfer of data to hardware and from hardware </p> </li> </ul> </section> <section id="GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5"><title>Control Plane</title> <p>The Control Plane establishes, maintains and modifies the traffic, or conversations in the Data Plane. Specifically, the Control Pane establishes, controls, re-binds and tears down the Communications protocol stack based on commands from the application and from the Management Plane. </p> <p>The <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-E8250BBE-8529-5C45-BCA3-92A87C013580">Data Plane</xref> sends the status of the link and other control information to the Control Plane. The Control Plane processes the status of the link and other control information, and allows the Data Plane to give the task of data transfer the highest priority. </p> <p>A connection can have a number of subconnections. Subconnections can be called channels. The concepts of connection and subconnection make it useful to divide the Control Plane into two parts. </p> <p>The Data Plane corresponds to the Sockets Server APIs: <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>. </p> <p><b>Features </b> </p> <p>The Control Plane: </p> <ul><li id="GUID-EE232AB1-E916-54AB-B658-19B1A3F62B7C"><p>creates the Data Plane </p> </li> <li id="GUID-F5E545D5-7954-5F20-B8A4-4C9B7F4B06CC"><p>configures the Data Plane modules from information provided by the client application or the Management Plane </p> </li> <li id="GUID-3C4FF301-30D7-5064-BD45-5A05C962E1DE"><p>starts the Data Plane </p> </li> <li id="GUID-BB2A8489-38D7-5D0B-A272-0C04DDE9B2FF"><p>controls and monitors the Data Plane: </p> <ul><li id="GUID-7D7E7B38-34C4-53F6-A545-774DEEE07403"><p>acts on information received from the data protocols </p> </li> <li id="GUID-805AE125-F139-5E65-9912-DCA92926F1EF"><p>notifies the Management Plane or the client application about changes to the state of the Control Plane or the Data Plane. </p> </li> </ul> </li> <li id="GUID-ACDF9227-7286-5092-AF85-503BA30A2B45"><p>stops the Data Plane </p> </li> <li id="GUID-54C50C8C-4CFB-5C02-89CE-754EF2F858E2"><p>destroys the Data Plane </p> </li> <li id="GUID-8FC8ED8A-71DA-546A-8548-D6979B0F8CD7"><p>manages connection session timers </p> </li> <li id="GUID-C316844B-3046-599E-967C-085D79F9DA01"><p>manages connection data channels and their properties </p> </li> <li id="GUID-7CF74684-F4C8-54FC-9BA0-EA68D081E5AF"><p>handles changes to the status of the network and handles error reports </p> </li> </ul> </section> <section id="GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442"><title>Management Plane</title> <p>The Management Plane maintains the configuration of the device, monitors the availability of the network and makes policy decisions for the Communications Framework. The Management Plane is the main location where phone creators can customise the behaviour of the Communications protocol stack. </p> <p>The Management Plane corresponds to the Sockets Server API: <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita"><apiname>RConnectionServ</apiname></xref> </p> <p><b>Features </b> </p> <p>The Management Plane: </p> <ul><li id="GUID-3FB67172-7DC3-5621-AADB-02AE601D4EAF"><p>selects, constructs and manages the Communications protocol stack: </p> <ul><li id="GUID-003EFE03-849E-5168-AAC3-8CFB6E07436C"><p>selects the correct protocol stack for a connection based on client and configuration preferences </p> </li> <li id="GUID-2E1CBE6C-2CCE-51E7-AE9C-F4EFAC0A426B"><p>manages the Control Plane connections based on the policy set either in the configuration or at run-time. </p> </li> </ul> </li> <li id="GUID-DA0FE037-69DB-586D-8809-C4D5A8D22C67"><p>notifies interested clients about the state of the Communications protocol stack, for example, bearer and service availability </p> </li> <li id="GUID-3B36F963-CCF5-5E75-9486-04CBEF27DFC1"><p>provides an entry point for third-party plugins to customise and control the Communications protocol stack </p> </li> <li id="GUID-D7A39FA9-1C88-5E8E-A566-E030971CCF0A"><p>controls the Communications protocol stack. This control is based on policy decisions </p> </li> <li id="GUID-8BBADB62-AB50-5B9D-B0E8-9546488E12DD"><p>communicates with the Control Plane to influence the behaviour of Control or Data flow operations in the Communications protocol stack </p> </li> <li id="GUID-86CAD544-2B60-5713-B8C1-1FB14806FC31"><p>supplies configuration information to the Layer. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita"><linktext>Socket Server</linktext> </link> </related-links></concept> |
18 Plane has a separate role and a separate responsibility. Each Plane matches |
|
19 a Sockets Server API. </p> |
|
20 <p>The Planes are called: the Data Plane, the Control Plane and the Management |
|
21 Plane. </p> |
|
22 <p>Layers span all three Planes. Code in each Plane operates together to deliver |
|
23 the required Communications protocol behaviour. </p> |
|
24 <p>A connection can have a number of subconnections. Subconnections can be |
|
25 called channels. The concepts of connection and subconnection make it useful |
|
26 to divide the Control Plane into two parts. The following diagram shows the |
|
27 concept. The blue arrows indicate dependencies. The vertical dotted lines |
|
28 indicate the division of Planes. </p> |
|
29 <fig id="GUID-258000D9-1BC3-5A61-8235-4183D4A759C5"> |
|
30 <title> Planes in the Communications Framework </title> |
|
31 <image href="GUID-3D8FE2A7-E544-51B9-9572-492A3B61377C_d0e111498_href.png" placement="inline"/> |
|
32 </fig> |
|
33 <p>The following diagram overlays the Planes with an example series of Layers </p> |
|
34 <fig id="GUID-1758E53D-2A62-5C4C-93B9-8FE5DE67BBAA"> |
|
35 <title> Planes and Layers in the Communications Framework |
|
36 </title> |
|
37 <image href="GUID-47EF98E9-7833-5E94-ADFF-198401463A8C_d0e111509_href.png" placement="inline"/> |
|
38 </fig> |
|
39 <ul> |
|
40 <li id="GUID-45F19CFA-9B96-53B3-9B15-428BB3226BAA"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-E8250BBE-8529-5C45-BCA3-92A87C013580">Data Plane</xref> </p> </li> |
|
41 <li id="GUID-461678D6-3198-55CF-B07E-94F5E1086BAC"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5">Control Plane</xref> </p> </li> |
|
42 <li id="GUID-6B98DEAB-F245-5533-A05A-957FADE0C120"><p> <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442">Management Plane</xref> </p> </li> |
|
43 </ul> |
|
44 <section id="GUID-E8250BBE-8529-5C45-BCA3-92A87C013580"><title>Data Plane</title> <p>The |
|
45 Data Plane carries data and uses Communications protocols. The Data Plane |
|
46 handles conversations with remote peers.The <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5">Control |
|
47 Plane</xref> and the <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442">Management |
|
48 Plane</xref> exist to serve the Data Plane. </p> <p>The Data Plane exists |
|
49 to minimise interruptions to the flow of data. The Data Plane assigns the |
|
50 response to interruptions to the Control Plane. Interruptions include: the |
|
51 start of a new network connection, the management of a timeout and the management |
|
52 of changes to the status of the network. </p> <p>To make sure that interruptions |
|
53 cannot interfere with the Data Plane, a thread divide exists between the Data |
|
54 Plane and the Control/Management Planes. The thread division allows the Communications |
|
55 Framework to give the Data Plane thread a higher priority than the Control |
|
56 and Management Plane thread. The difference in thread priorities allows the |
|
57 Communications Framework to give the task of data transfer the highest priority. </p> <p>The |
|
58 Communications Framework provides a mechanism to send messages between the |
|
59 threads. The mechanism is called the <xref href="GUID-4CE10DED-31B2-50B5-9D38-85CE86E8A8DE.dita">Message |
|
60 Transport</xref>. The Transport sends and delivers the messages asynchronously. |
|
61 Threads can continue their work until the threads are prepared to process |
|
62 messages. The Transport always makes sure of the delivery of messages. </p> <p>The |
|
63 Data Plane corresponds to the Sockets Server API: <xref href="GUID-D4F08503-F1EF-3531-9C3C-4AF24A6255F0.dita"><apiname>RSocket</apiname></xref>. </p> <p>The |
|
64 following diagram shows the thread divide. </p> <fig id="GUID-A440C4F8-199E-575A-9922-D90059CA69C3"> |
|
65 <title> Data Plane in the Communications Framework </title> |
|
66 <image href="GUID-337FA49D-DE53-5568-9A5C-D6AE3F25E0A6_d0e111579_href.png" placement="inline"/> |
|
67 </fig> <p><b>Features </b> </p> <p>The Data Plane: </p> <ul> |
|
68 <li id="GUID-70DDF365-81B9-5D30-BEA1-B338074CF097"><p>exchanges data with |
|
69 remote peers and uses data transfer protocols </p> </li> |
|
70 <li id="GUID-E8A426F5-98AD-5BFA-9D8C-820B1656140C"><p>allows any number of |
|
71 conversations at the same time through many protocols </p> </li> |
|
72 <li id="GUID-6748E1E2-5FF3-52BC-9FC7-6759F52B59D2"><p>enables the transfer |
|
73 of data to clients of the protocol stack and from clients of the protocol |
|
74 stack </p> </li> |
|
75 <li id="GUID-1073D70B-80FA-55E7-96E9-C9B51A701BC4"><p>enables the transfer |
|
76 of data to hardware and from hardware </p> </li> |
|
77 </ul> </section> |
|
78 <section id="GUID-CFFC0BC1-FD9D-5F82-8906-2F9E8FCD21F5"><title>Control Plane</title> <p>The |
|
79 Control Plane establishes, maintains and modifies the traffic, or conversations |
|
80 in the Data Plane. Specifically, the Control Pane establishes, controls, re-binds |
|
81 and tears down the Communications protocol stack based on commands from the |
|
82 application and from the Management Plane. </p> <p>The <xref href="GUID-F43A54C0-E82B-5790-8493-1372D214C642.dita#GUID-F43A54C0-E82B-5790-8493-1372D214C642/GUID-E8250BBE-8529-5C45-BCA3-92A87C013580">Data Plane</xref> sends the status of the link and other control information |
|
83 to the Control Plane. The Control Plane processes the status of the link and |
|
84 other control information, and allows the Data Plane to give the task of data |
|
85 transfer the highest priority. </p> <p>A connection can have a number of subconnections. |
|
86 Subconnections can be called channels. The concepts of connection and subconnection |
|
87 make it useful to divide the Control Plane into two parts. </p> <p>The Data |
|
88 Plane corresponds to the Sockets Server APIs: <xref href="GUID-BED8A733-2ED7-31AD-A911-C1F4707C67FD.dita"><apiname>RConnection</apiname></xref> and <xref href="GUID-0AFDA357-EE44-3788-9CAB-162B874134BF.dita"><apiname>RSubConnection</apiname></xref>. </p> <p><b>Features </b> </p> <p>The Control Plane: </p> <ul> |
|
89 <li id="GUID-EE232AB1-E916-54AB-B658-19B1A3F62B7C"><p>creates the Data Plane </p> </li> |
|
90 <li id="GUID-F5E545D5-7954-5F20-B8A4-4C9B7F4B06CC"><p>configures the Data |
|
91 Plane modules from information provided by the client application or the Management |
|
92 Plane </p> </li> |
|
93 <li id="GUID-3C4FF301-30D7-5064-BD45-5A05C962E1DE"><p>starts the Data Plane </p> </li> |
|
94 <li id="GUID-BB2A8489-38D7-5D0B-A272-0C04DDE9B2FF"><p>controls and monitors |
|
95 the Data Plane: </p> <ul> |
|
96 <li id="GUID-7D7E7B38-34C4-53F6-A545-774DEEE07403"><p>acts on information |
|
97 received from the data protocols </p> </li> |
|
98 <li id="GUID-805AE125-F139-5E65-9912-DCA92926F1EF"><p>notifies the Management |
|
99 Plane or the client application about changes to the state of the Control |
|
100 Plane or the Data Plane. </p> </li> |
|
101 </ul> </li> |
|
102 <li id="GUID-ACDF9227-7286-5092-AF85-503BA30A2B45"><p>stops the Data Plane </p> </li> |
|
103 <li id="GUID-54C50C8C-4CFB-5C02-89CE-754EF2F858E2"><p>destroys the Data Plane </p> </li> |
|
104 <li id="GUID-8FC8ED8A-71DA-546A-8548-D6979B0F8CD7"><p>manages connection session |
|
105 timers </p> </li> |
|
106 <li id="GUID-C316844B-3046-599E-967C-085D79F9DA01"><p>manages connection data |
|
107 channels and their properties </p> </li> |
|
108 <li id="GUID-7CF74684-F4C8-54FC-9BA0-EA68D081E5AF"><p>handles changes to the |
|
109 status of the network and handles error reports </p> </li> |
|
110 </ul> </section> |
|
111 <section id="GUID-2372FF88-FA59-5CDF-9362-1A54F43D8442"><title>Management |
|
112 Plane</title> <p>The Management Plane maintains the configuration of the device, |
|
113 monitors the availability of the network and makes policy decisions for the |
|
114 Communications Framework. The Management Plane is the main location where |
|
115 phone creators can customise the behaviour of the Communications protocol |
|
116 stack. </p> <p>The Management Plane corresponds to the Sockets Server API: <xref href="GUID-55FE59B7-4FA9-3B1A-BD4C-9B7611FE75C2.dita"><apiname>RConnectionServ</apiname></xref> </p> <p><b>Features </b> </p> <p>The Management Plane: </p> <ul> |
|
117 <li id="GUID-3FB67172-7DC3-5621-AADB-02AE601D4EAF"><p>selects, constructs |
|
118 and manages the Communications protocol stack: </p> <ul> |
|
119 <li id="GUID-003EFE03-849E-5168-AAC3-8CFB6E07436C"><p>selects the correct |
|
120 protocol stack for a connection based on client and configuration preferences </p> </li> |
|
121 <li id="GUID-2E1CBE6C-2CCE-51E7-AE9C-F4EFAC0A426B"><p>manages the Control |
|
122 Plane connections based on the policy set either in the configuration or at |
|
123 run-time. </p> </li> |
|
124 </ul> </li> |
|
125 <li id="GUID-DA0FE037-69DB-586D-8809-C4D5A8D22C67"><p>notifies interested |
|
126 clients about the state of the Communications protocol stack, for example, |
|
127 bearer and service availability </p> </li> |
|
128 <li id="GUID-3B36F963-CCF5-5E75-9486-04CBEF27DFC1"><p>provides an entry point |
|
129 for third-party plugins to customise and control the Communications protocol |
|
130 stack </p> </li> |
|
131 <li id="GUID-D7A39FA9-1C88-5E8E-A566-E030971CCF0A"><p>controls the Communications |
|
132 protocol stack. This control is based on policy decisions </p> </li> |
|
133 <li id="GUID-8BBADB62-AB50-5B9D-B0E8-9546488E12DD"><p>communicates with the |
|
134 Control Plane to influence the behaviour of Control or Data flow operations |
|
135 in the Communications protocol stack </p> </li> |
|
136 <li id="GUID-86CAD544-2B60-5713-B8C1-1FB14806FC31"><p>supplies configuration |
|
137 information to the Layer. </p> </li> |
|
138 </ul> </section> |
|
139 </conbody><related-links> |
|
140 <link href="GUID-61E0CD76-A2E3-5066-84A8-146EECA8ADCD.dita"><linktext>Socket Server</linktext> |
|
141 </link> |
|
142 </related-links></concept> |