In routing layer, the forward process is divided into two
phases: path building phase and forward phase. In path
building phase, each node count expected transmit times (ETX)
to other nodes and flood the ETX value in the network. Then
each node has a global topology of in none-directional map
with ETX value as weight. Based on this global topology, the
source node named S can compute a shortest path such as S-
>A->B->E->D. Then each forward node named X is extended
to a forward set called CFS-X with several nodes. A node is
added to the CFS-X set if it satisfies two conditions
simultaneously: 1) it is closer to the destination than node X; 2)
distance between it and any node of CFS-X set is smaller than
a threshold. Each node of CFS-X is signed a priority according
to distance to the destination. And a forward timer is created by
the priority value. In the forward phase, node S broadcast a
coded packet recording CFS-A, if a node receives the
broadcasted packet and it belongs to CFS-A set it will start the
forward timer. If it receives the same packet again it will cancel
the timer else send the packet when the time expires.