## 5 Predefined Path-Based Techniques
### Optimal Dual Paths (ODP)
#### 5.1.2 ODP Operations  
The establishment process for the dual paths consists of three phases. In the first phase, nodes exchange their link information. In the second phase, each terminal node builds its link metric table. In the third phase, each terminal node determines the dual paths with the other terminal nodes based on the link metric table, and then informs the intermediate QuadBoxes in order to complete the establishment of the dual paths:  
1. Exchanging link metrics: In this phase, nodes exchange their link metrics so that each node knows link metrics of the entire network. This is accomplished by broadcasting a link metric (Met) message. However, to reduce the size and total number of exchanged Met messages, the node with the lowest node identifier (ID) broadcasts its link metrics to the other nodes, and the adjacent nodes that connect directly to it and have a higher ID do not broadcast the metrics of the shared links. However, these nodes will broadcast for other links they have.
2. Building link metric table: Based on received Met messages, each terminal node builds a link metric table that contains the metrics of all links of the network. Ideally, all of the terminal nodes will have the same link metric table.
3. Establishing dual paths: Based on the link metric table, each terminal node establishes dual paths with each corresponding terminal node. To do so, the following procedure is performed. * Searching all available paths: The ODP approach searches the link metric table of a terminal node for all the available paths from that node to all the other terminal nodes in the network. The available paths are then added to a list called the available paths list. The paths list also has the metrics for each path. * Sorting the searched paths list: The available paths are sorted in ascending order of the path metrics. The path with the lowest metrics is at the beginning of the list, next are the paths with higher metrics values, and the path with the highest metrics is at the end of the list. * Selecting dual optimal paths: Based on the sorted paths list, the ODP approach determines dual paths for each connection pair of terminal nodes. The paths determination process depends on selecting paths with optimal links metrics that have no common nodes between them, except for the source and the destination nodes. To establish dual paths for a connection pair, the ODP approach first sets the first path in the sorted paths list as the first candidate path. Then, it compares the first candidate path with the other paths listed after it in the sorted paths list. If there is a path that has no common node with the first candidate path, then the optimal dual paths are found. If no available path is found, the algorithm selects and sets the next path of the current first candidate path as the new first candidate path and conducts a comparison. The iteration ends once a path that has no common node with the first candidate path is found.
* Confirming the selection: After selecting the dual paths for each connection pair, the terminal nodes send messages to inform the selected paths. QuadBoxes build their forwarding table based on the messages.  
Figure 14 shows the process of forwarding unicast frames from source node 1 to destination node 10 under the ODP approach. For the connection pair of DANH nodes 1 and 10, the ODP approach has established dual paths, including the first path of DANH 2-DANH 3-DANH 4-QuadBox 2-QuadBox 3-QuadBox 4-QuadBox 13-QuadBox 5-DANH 9, and the second path of QuadBox 1-QuadBox 12-QuadBox 11-QuadBox 14-QuadBox 10-QuadBox 9-QuadBox 8-QuadBox 7-QuadBox 6-DANH 12-DANH 11. Each of these paths transfers only one frame copy from source node 1 to destination node 10, without duplication and flooding, because QuadBox nodes in between these paths forward the frame based on their forwarding table.