Algorithm 5. Power Adjustment for FCH (PA-FCH) | |
Run at a MCH node (e.g., u) Input: Nmax Output: NULL |
|
1. | Initialize N as zero |
2. | Send a PAREQ packet at its maximum transmission power to the FCH (e.g., w) |
3. | Set the timer tσ as σ |
4. | while the timer tσ does not expire do |
5. | if receive the PAREP packet from the FCH (e.g., w) then return |
6. | end while |
7. | if N < Nmax then {N++; go to step 2} else return end if |
Run at a SCH node (e.g., v) Input: Nmax Output: NULL |
|
8. | if hear the PAREQ packet from the MCH (e.g., u) then |
9. | Initialize N as zero |
10. | Send a PAREQ packet at its maximum transmission power to the FCH (e.g., w) |
11. | Set the timer tρ as ρ |
12. | while the timer tρ does not expire do |
13. | if receive the PAREP packet from the FCH (e.g., w) then return |
14. | end while |
15. | if N < Nmax then {N++; go to step 10} else return end if |
16. | else |
17. | Go to step 8 |
18. | end if |
Run at a FCH node (e.g., w) Input: the hello messages of all neighbors and the very small real number ε Output: the adjusted transmission power from FCH to MCH/SCH |
|
19. | if receive the PAREQ packet from the MCH (e.g., u) then |
20. | Adjust the transmission power ptw,u according to the Formula (11) and initialize FLAG as true |
21. | Set the timer tψ as ψ |
22. | while the timer tψ does not expire do |
23. | if receive the PAREQ packet from the SCH (e.g., v) then |
24. | Adjust the transmission power ptw,v according to the Formula (11) |
25. | if ptw,u > ptw,v then |
26. | Broadcast a PAREP packet at ptw,u and set FLAG as false |
27. | else |
28. | Broadcast a PAREP packet at ptw,v and set FLAG as false |
29. | end if |
30. | end if |
31. | end while |
32. | if (FLAG == true) then Broadcast a PAREP packet at ptw,u |
33. | end if |
34. | if receive the repeated PAREQ packet from the MCH (e.g., u) or the SCH (e.g., v) then |
35. | if (FLAG == true) then {ptw,u = ptw,u + ε; Broadcast a PAREP packet at ptw,u} |
36. | else if ptw,u > ptw,v then {ptw,u = ptw,u + ε; Broadcast a PAREP packet at ptw,u} |
37. | else {ptw,v = ptw,v + ε; Broadcast a PAREP packet at ptw,v} end if |
38. | end if |
39. | end if |