## 3 Design and Implementation Results
### Data Plane  
The data plane is designed and implemented based on Intel DPDK [18] to improve message processing performance. The data plane uses zero-copy and PMD concepts provided by DPDK. Zero-copy reduces the operational overhead generated by multiple copies of incoming messages, and the PMD allows the data plane to access the incoming messages directly by bypassing the complex and time-consuming kernel network stack and interrupts. The distinctive feature of the dual plane architecture compared to the previous single plane architecture is that the former processes signaling and user-data messages separately and simultaneously in the different planes, whereas the latter handles both kinds of messages in one plane sequentially. In the dual plane architecture, if an incoming message is an AE-related or Forwarding-related signaling message (i.e., exception from the data plane perspective), the data plane does not continue processing it, but throws it to the control plane instead, and processes the next incoming message immediately. This enables the data plane to be dedicated to message forwarding, and as a result, achieves high performance in message forwarding. In the data plane, an incoming message goes through four phases: receiving, processing, exception handling, and forwarding. During the receiving phase, the Network Manager periodically monitors its RX ring buffer, which contains packet descriptors (pointers) about incoming messages. If the buffer contains a newly added packet descriptor, then the Network Manager acquires the message using the pointer in the packet descriptor and passes it to the Message Manager. In the processing phase, the Message Manager analyzes the message type and the event type of the received message. It processes only the PHD's measurements included in a PRST message with the MDC_NOTO_SCAN_REPORT event type, and throws the remaining messages to the control plane. In this paper, pulse rates and SpO2 from the pulse oximeters, medication status from the medication dispensers, and distance, activity time, intensity and steps from the activity monitors are the user-data messages that are to be processed in the data plane. It also verifies that the incoming message is from the associated AE by referring to the AE Table in the Shared Memory. If it is not, it considers the message as coming from a disassociated PHD, and discards the message. In addition, the Message Manager converts the received ISO/IEEE 11073 message [10] to the oneM2M protocol message [5] before forwarding it as presented in our previous research [3,4]. If the incoming message is determined by the Message Manager to be a signaling message, it enters the exception handling phase. In this phase, a signaling message is queued in an RX FIFO queue for the KNI (Kernel NIC Interface) [33] thread and is sent to the kernel network stack. The details of the KNI procedure are explained in Section 3.4. During the forwarding phase, the data plane refers to three tables: Interface, ARP and Routing Table. The Resource Manager looks up the Routing Table using the predefined server IP address as a key and acquires the next hop's IP address and an output interface index as the results. Next, it refers to an interface entry in the Interface Table using the output interface index, and then extracts an IP address and MAC address, which are used as a source MAC address and a source IP address in the Ethernet and IP header, respectively. After that, it looks up the ARP Table using the server IP address to determine a destination MAC address. Finally, the Message Manager rebuilds the Ethernet and IP header of the forwarding message based on the lookup results and forwards it to the IN-CSE through the DPDK PMD. A Longest prefix match lookup, a direct lookup and a hash lookup are used for searching the Routing, Interface and ARP tables, respectively.