selecting the XF. If the intermediate node X decided to become an XF, it generates a
XF_JOIN message carrying the list of group members served by this node. During the
XF_JOIN journey to the source, a Time To Live (TTL) field will be incremented when
passing through the intermediate node. At the end TTL will carry the number of nodes
between this XF node and the source. The source waits for a period of time before sending an
acknowledgment for this XF_JOIN message. This delay period is to give time for any more
XF_JOIN to arrive. If only one XF_JOIN is received by the source, it updates its eXplicit
Forwarding Table (XFT) by inserting this node address and the corresponding list of nodes
served by this XF node. This XF node should send periodical XF_JOIN message to the
source making sure the stored information in the XFT table are up-to-date.
When the source node receives more than one XF_JOIN message, the TTL value will help
the source to determine which XF is more suitable. If two XF_JOIN messages came from the
same next hop then the source will select the XF with the larger TTL. In case the TTL values
are equal, the source randomly selects one of these XFs to be an XF. Finally, the source will
have the XFs and a list of destinations associated to each in its XFT table.
3.3.2.3 Node Mobility Management
Node mobility is an important feature in MANETs. Any proposed protocol for MANETs
should be able to handle the node movement. In E2M, if the source comes to his knowledge
that one of the XFs moved (e.g. route error packet generated by AODV) the source extracts
the list of members served by this XF and insert these members in the Xcast extended header.
In case a non-XF group member moves the periodic MEMBER_JOIN message will stop
arriving to the corresponding XF, by that the designated XF will send an XF_JOIN with the
difference in his state.
3.3.2.4 Data Structure
Data structures in E2M are implemented in XFs and in source node. For each session, the
following tables are maintained by the source:-
48