Step 1. |
if Y is not listed in NH then exits this procedure |
else Construct a list path_temp = path∣() |
// ∣-mean that current node is attached/concatenated with path |
Step 2. |
(i) Construct two temporary table |
SS_temp [n, s] & RS_temp [n, s] then |
Copy SS [n, s] in to SS_temp [n, s] |
Copy RS [n, s] in to RS_temp [n, s] |
(ii) Let path = () |
for |
for every time slot t in the list |
SS_temp [] = 1 |
RS_temp [] = 1 |
for every time slot t in the list |
SS_temp [] = 1 |
RS_temp [] = 1 |
(iii) for every time slot t in the list |
SS_temp [] = 1 |
RS_temp [] = 1 |
Step 3. |
if NH_temp = empty |
for each 1-hop neighbour Z of Y do |
L = slot_selection(Y, Z, b, SS_temp, RS_temp) |
if L empty |
NH_temp = NH_temp∣() |
else if NH_temp ≠ empty then |
broadcast RREQ (S, D, id, b, Y, path_temp, NH_temp) |
Subroutine: slot_selection(Y, Z, b, SS_temp, RS_temp) |
for each slot i, where following condition will be checked |
Con 1: (SS_temp [Y, i] = 0) & ( [Y, i] = 0) & (SS_temp [] = 0) & [Z, i] = 0) |
Con 2: for all ( [Y, W] = 1) then RS_temp [W, i] = 0 |
Con 3: for all ( [Z,W] = 1) then SS_temp [W, i] = 0 |