# DYNASTI--Dynamic Multiple RPL Instances for Multiple IoT Applications in Smart City
## 3 Related Work  
We describe the main research work addressing the use of multiple RPL instances in this section. Initially, the use of multiple RPL instances enhanced flexibility and heterogeneity for IoT networks through the use of one or more objective functions, so that each instance could use a distinct objective function (routing metric). [PERSON] et al. [23] proposed the first work to address a multiple RPL instances, providing high Packet Delivery Rate (PDR) and low latency. [PERSON] et al. [24] developed a QoS engine considering smart grid requirements and multiple instances, but both aforementioned research work was limited to using only one instance per application. [PERSON] et al. [25] proposed using instances in a two-application environment, using the Hop Count (HC) metric for regular application and the Expected Transmission Count (ETX) metric for critical application in which each metric was associated with an instance. To evaluate the work, the authors analyzed the convergence time for network construction by measuring the time difference between the first DIO message sent by the sensor nodes and the last DIO message associated with the DODAG. Latency and rate of incoming packets were evaluated, but no differentiation in traffic patterns for IoT networks was addressed. [PERSON] et al. [26] proposed a cooperative strategy based on the RPL protocol (called C-RPL), where nodes are defined according to C-RPL instances. The strategy considers the trade-off between the performance and energy consumption associated with each coalition. In their work, a coalition concerns one or more collaborating instances, sharing their nodes dynamically to improve quality of service for multiple applications. In other words, nodes migrate from one instance to another in order to balance the network to achieve better quality of service for applications. Node coalition can support network traffic load balancing and improve network life when some nodes are low in power. However, the same reasoning may not be valid for link quality, which is an aspect to consider in critical applications. Moreover, it is not always possible to minimize interference by switching nodes between instances, as the nodes themselves may be the cause of such network interference or interference may be caused by external sources that cannot be handled or controlled. In addition, the node coalition, when considering interference, can generate instabilities due to the intermittence of this phenomenon. Each application is associated with a single instance in C-RPL, and each instance is associated with a single routing metric to meet application requirements. In addition, C-RPL employs a centralized network approach, where a node has a global network view to initiate the coalition process, but RPL works locally and distributed, where nodes only have information from their adjacent neighbors. Furthermore, the work was evaluated in MATLAB(r) using a slotted listening duty cycling scheme, which is a simple implementation of the physical and Medium Access Control (MAC) layers which affects the network lifetime, delay, and congestion level. The most recent multiple instance proposal for RPL is addressed by [PERSON] et al. [21; 22]. The research work presents a model in which multiple applications coexist on the same infrastructure and uses a multi-purpose metric to differentiate QoS, demonstrating that quality improvement can be achieved by using two applications on a network, through the RPL protocol. The authors proposed a new objective function called Objective Function for Quality of Service (OFQS) that contains the multipurpose routing metric mOFQS, which uses delay, link quality, and battery state of nodes across three levels (full, intermediate, and low). Thus, each instance has a distinct mOFQS metric, prioritizing different requirements according to the variation of the \(alpha\) and \(beta\) parameters, which may vary as follows: \(alpha=1-beta,0<alpha<1\) and \(0<beta<1\).