## 3 EMF-Aware Routing Framework for WMNs
### EMF-Aware AODV Protocol
#### 3.3.1 Signaling in EA-AODV  
Regarding the signaling that the protocol uses, all messages carry the protocol version and message type fields. The former is included for future protocol modifications, and the latter allows distinguishing between the following messages:  
* HELL0: this message is periodically broadcasted with a twofold purpose. First, it allows neighbor discovery. Furthermore, we also use it to notify about a change in the node's cost, due to an accumulated exposure modification. Figure 3 depicts the fields of this message. As can be seen, it includes two flags to indicate the role of the message: M determines whether the packet is used for neighbor discovery purposes (M = 0) or for notifying a change in the corresponding cost (M = 1). In the latter case, the S flag indicates the sign of such modification (0 or 1 for positive or negative change, respectively). Finally, the COST field carries the corresponding value;
* ROUTE_DISC: a broadcast message initiated by a source to find the route to a particular destination. Each node receiving this packet forwards it, until the packet reaches its destination. It carries the route accumulated costs, so as to populate it during the route discovery process. Each node increments the cost, proportionally to the transmission power that would have been required by the previous node to reach it. The fields of this type of message can be observed in Figure 4;
* DISC_ACK: this message follows a ROUTE_DISC, and it is sent by the destination as a unicast transmission towards the corresponding source. Its format corresponds to the one presented for the ROUTE_DISC message, the only difference being in the corresponding TYPE field. Since the nodes follow the same procedure as the one depicted for the management of the ROUTE_DISC message, the protocol is able to handle asymmetric links, in which the power required to send a packet depends on the particular direction. The fields of this type of message can be observed in Figure 4;REPORT: used to disseminate a cost change, either an increase or a decrease of the accumulated exposure. Although the accumulated exposure does not physically decrease, the protocol considers this option to include aging functions. For instance, if a node is not used for a while, the cost related to the accumulated exposure can be reduced to foster the use of such a node. It thus follows a HELLO with M = 1, and it is propagated to ensure that all affected nodes receive the information. Figure 5 illustrates the format of this message.  
One of the main novel aspects of the proposed protocol is that it is able to dynamically manage the dynamic route costs, caused by the evolution of the accumulated exposure, as was previously done for the algorithmic analysis in Section 3.2. In what follows, we thoroughly depict how the actual calculation is carried out. First, the evolution of the cost with respect to the accumulated exposure does not follow any particular pattern, thus resulting in an asynchronous behavior. Furthermore, each node locally stores a routing table whose entries are identified by the _destination/next-hop_ pair obtained during the route establishment procedure. Each route entry is linked to a timer that is re-started every time the entry is used. This way unused entries are removed, and the size of the table is kept small. We have extended the legacy AODV route table format, adding an additional field to represent the route state, which uses the following values:  
* InUse: the route is being used to send locally generated data. This means that the node is the actual source of such an entry;
* Active: the route is being used to forward data. This is used when the node acts as a forwarding entity;
* Active_InUse: this state applies when the two previous conditions apply;
* Valid: the entry is not currently being used, but it has not yet expired.