# 3D Void Handling Geographic P2P-RPL for Indoor Multi-Hop IR-UWB Networks
## 2 Related Works
### Greedy Forwarding and Void Handling Point-to-Point RPL in 3D Indoor Environments
Shortened listen-only periods also provide a far better chance for randomly scheduled transmission times to be different, leading to collision avoidance effects. ```
// \(s\) = source node, \(d\) = destination node, \(c\) = current node. // \(I\) = current trickle interval, \(I_{min}\) = minimum trickle interval. // \(t\) = current time, \(t_{tx}\) = scheduled P2P-DIO transmission time. // \(k\) = redundancy constant, \(c_{tr}\) = redundancy message counter. // \(D(s,d)\) = set of nodes that joined the temporary GVA-P2P-RPL DODAG for discovering route from \(s\) to \(d\). // Algorithm starts when a node joins \(D(s,d)\) upon receiving a P2P-DIO message destined to itself. begin \(I=I_{min}\) \(k=1\) while\(c\in D(s,d)\) and \(c\
eq d\)do  newInterval: \(t=0\) \(c_{tr}=0\) ifreceived unicast packetthen if sending unicast packetthen \(t_{tx}=Random(I/8,I)\) elseif sending broadcast packetthen \(t_{tx}=Random(I/4,I)\) elseifreceived broadcast packetthen if sending unicast packetthen \(t_{tx}=Random(I/4,I)\) elseif sending broadcast packetthen \(t_{tx}=Random(I/2,I)\) while\(t\
eq t_{tx}\)do ifreceived consistent messagethen \(c_{tr}=c_{tr}+1\) elseifreceived inconsistent messagethen \(I=I_{min}\) go to newInterval. end if if\(c_{tr}<k\) or \(I=I_{min}\)then  Transmit P2P-DIO message. end if while\(t\
eq I\)do ifreceived inconsistent messagethen \(I=I_{min}\) go to newInterval. end if if\(I\
eq I_{max}\)then \(I=2I\)  end if  end if  end if  end for
```  
**Algorithm 2**Adaptive trickle timer in 3D GVA-P2P-RPL. Figure 8: Standard trickle timer in 3D GVA-P2P-RPL. Figure 6: Example of P2P route discovery case for explanation of adaptive trickle timer operation. (**a**) The network node deployment and node connectivity. Nodes \(s\) and \(d\) are the source and destination, respectively. The solid arrows in (**b**) construct the route first discovered by both P2P-RPL and GVA-P2P-RPL. Figure 7: Standard trickle timer in 3D P2P-RPL. To demonstrate how ATT works when four nodes within transmission range of each other compete for P2P-DIO transmission, another example P2P route discovery case of Figure 10 is shown. Nodes \(n_{5}\), \(n_{6}\), \(n_{7}\) and \(n_{8}\) join P2P-RPL DODAG at similar times as depicted in the timings of Figure 11. \(n_{5}\) and \(n_{6}\) receive the broadcast P2P-DIO message from \(n_{4}\). Each of \(n_{7}\) and \(n_{8}\) receives a unicast P2P-DIO message from \(n_{2}\) and \(n_{3}\), respectively. \(n_{5}\) and \(n_{7}\) have no neighbor closer to \(d\), and therefore schedule a broadcast P2P-DIO message. \(n_{6}\) and \(n_{8}\) have a neighbor closer to \(d\) and therefore schedule a unicast P2P-DIO message to \(n_{9}\) and \(n_{10}\), each, respectively. In such a case, ATT gives the highest transmission priority to \(n_{8}\) by shortening the listen-only period of \(n_{8}\) the most. \(n_{6}\) and \(n_{7}\) are given the next highest transmission priority, and their listen-only periods are shortened according to priority values. For \(n_{5}\), its listen-only period is unchanged, granting the lowest transmission priority. As a result, ATT propagates P2P-DIO messages faster through node \(n_{8}\) and reaches the destination \(d\) earlier than when the standard trickle algorithm is used, while the discovered route \(s\)-\(n_{3}\)-\(n_{8}\)-\(n_{10}\)-\(d\) still achieves the shortest hop count. Figure 10: Example of P2P route discovery case for explanation of adaptive listen-only periods operation in adaptive trickle timer. (**a**) The network node deployment and node connectivity. Nodes \(s\) and \(d\) are the source and destination, respectively. Nodes \(s\), \(n_{4}\), \(n_{5}\) and \(n_{7}\) are void nodes. (**b**) P2P-DIO messages are greedily forwarded through the solid arrows and flooded through the dashed arrows. Figure 4:0 Adaptive trickle timer in 3D GVA-P2P-RPL.