# A Survey on Congestion Control for RPL-Based Wireless Sensor Networks
## 3 Classification of Schemes for Congestion Control and Load Balancing in RPL
\begin{table}
\begin{tabular}{c c} \hline \hline
**Schemes** & **Congestion Detection Metrics** \\ \hline GTCC [16] & Packet generation rate subtracted by packet service rate \\ QU-RPL [17] & Queue utilization \\ [PERSON] et al. [18] & Queue utilization \\ PC-RPL [19] & Packet losses \\ OHCA [20] & Ratio of packet interarrival time to packet service time \\ CoAR [21] & Queue utilization, ratio of incoming traffic rate to outgoing traffic rate \\ M-RPL [22] & Packet delivery ratio \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Congestion detection metrics. utilization to handle buffer-based congestion. Some opportunistic routing schemes use EDC which is an adaptation of ETX considering the number of duty cycled wakeups [27]. Some schemes use latency or data rates as a potential congestion indicator. It is worth noting that many schemes use link layer or physical layer metrics such as LQI, RSSI, channel capacity, busy channel probability, superframe distance, and residual energy. There are several approaches to combining more than one routing metric in RPL. In [9], [PERSON] et al. categorize OF enhancements based on metric composition into lexical, additive, hybrid, fuzzy-logic based composition, etc. In lexical composition, a preferred parent is selected based on the primary metric and for tie-breaking, other metrics are used. Additive composition adds the weighted metric values to produce a new composite metric to be used for parent selection. Hybrid composition uses both lexical and additive techniques. For the methods of metric composition, we refer the readers to [9]. Approaches requiring exchange of a lot of metric information between nodes should consider a possibility of fragmentation pointed out in [9; 42]. Since the maximum frame size at the 802.15.4 MAC layer is 102 octets, carrying a lot of information in a control message may cause the fragmentation problem, which may be exacerbated in multipath routing. **Adopting cross-layer design approaches. ** Since the definition of cross-layer design is not clear-cut, we adopt the definition and categorization proposed in [43] for our categorization. Cross-layer design is defined as violation of a layered architecture by allowing direct communication between protocols at nonadjacent layers or sharing variables between layers. If we categorize the cross-layer based schemes reviewed in this survey according to the basic ways of violating the layered architecture as presented in [43], most of them can be categorized into the group violating the layered architecture by \"creation of new interfaces\". This category is further divided into three subcategories depending on the direction of information flow along the new interfaces: upward, downward, and back and forth. For instance, since GTCC [16] uses LQI from the physical layer, the direction of information flow is 'upward' (from a lower layer to a higher layer). Table 3 summarizes the cross-layer design proposals reviewed in this survey, indicating the direction of information flow. \begin{table}
\begin{tabular}{c c c c c c c c c c c} \hline \hline  & **HC** & **ETX** & **EDC** & **QU** & \begin{tabular}{c} **Link** \\ **delay** \\ \end{tabular}  & **LQI** & **RSSI** & \ \begin{tabular}{c} **Loss** \\ **Rate** \\ \end{tabular}  & **Traffic** & **RE** & **Additional Metrics** \\ \hline GTCC & [16] & & & & & & & & \(\surd\) & & & \\ QU-RPL & [17] & \(\surd\) & \(\surd\) & & \(\surd\) & & & & & & \\ Ullah et al. & [18] & \(\surd\) & \(\surd\) & \(\surd\) & & & & & \(\surd\) & & \\ PC-RPL & [19] & \(\surd\) & \(\surd\) & & & \(\surd\) & & & & & subtree size \\ CA-OF & [28] & & \(\surd\) & \(\surd\) & & & & & & & \\ OHCA & [20] & & \(\surd\) & \(\surd\) & & & & & & & \\ CoAR & [21] & & \(\surd\) & \(\surd\) & & & & & \(\surd\) &
\begin{tabular}{c} no. of potential children/no. of \\ neighbor nodes \\ busy channel prob., reliability \\ constraint \\ available bandwidth \\ logical link layer channel \\ capacity \\ change of no.