## 3 Design and Implementation Results  
### System Overview  
To overcome the problems of the single plane architecture mentioned in Section 2.1, we propose an approach of separating out the control part from the CSE, which is called a dual plane architecture. Figure 2 depicts the architecture of the CSE under the dual plane architecture. The CSE is comprised of a data plane, a control plane, and shared memory. The data plane is designed to be devoted to user-data message processing, and the control plane is in charge of processing complex and time-intensive signaling messages. The shared memory acts as a mediator between the two planes.  
The data plane includes the following components:  
* Network Manager receives and sends messages to/from AEs and IN-CSE. It also passes signaling messages to the control plane.
* Message Manager performs the same role as in the previously proposed system: message analysis and protocol conversion. In this paper, it has the additional role of distinguishing between a user-data message and a signaling message. If an incoming message is a user-data message, it processes the message and then forwards the message to the IN-CSE; if not, it throws the message to the control plane and processes next incoming message immediately.  
Figure 2: CSE architecture for dual plane IoT system.  
* Resource Manager manages resource trees in which the information and measurements of every AE the IoT system manages is stored. It also refers to the forwarding-related information such as the Interface Table, ARP Table and Routing Table to forward a user-data message to the IN-CSE or AEs. The control plane consists of the following components:
* Session Manager processes AE-related signaling messages and updates the AE session information and configurations which are supposed to be stored as an entry of the AE Table in the Shared Memory.
* Sync Manager monitors forwarding-related information which is represented as the forwarding-related signaling message and maintained by the Linux Kernel. When a change in forwarding-related information is detected, the Sync Manager updates the change in the Shared Memory.
* Routing software, which runs on the Linux OS, analyzes routing messages received from the neighbor routers, and updates the kernel's routing table. The updated routing table is synchronized with the Shared Memory by the Sync Manager. The Shared Memory contains the following tables:
* AE Table contains session information such as AE device ID, IP address, and session status, and device configurations such as types of transmitting measurements.
* Interface Table includes the information of network interfaces such as IP address, MAC address, interface status, and so on.
* ARP Table is a mapping table between the next hop's IP address and MAC address.
* Routing Table contains the next hop's IP address and output interface index for message forwarding.  
We divided incoming messages into two categories: user-data messages and signaling messages. The signaling messages were further divided into two types: AE-related and Forwarding-related signaling messages, as listed in Table 2.  
\begin{table}
\begin{tabular}{c c c c c} \hline \hline