## 3 EMF-Aware Routing Framework for WMNs
### EMF-Aware AODV Protocol
#### 3.3.2 Updating the Cost of a Node in EA-AODV  
Figure 6 shows the message exchange that would be triggered upon a change of a node's cost. We assume that there already existed a route from \(A\) to \(D\), \(B\) and \(C\) being intermediate nodes. At a certain time, \(C\) needs to inform about a modification of the  
Figure 4: Message structure of ROUTE_DISC and DISC_ACK.  
Figure 5: Structure of the REPORT message.  
accumulated exposure, for instance upon crossing a predefined threshold. This would eventually impact the cost stored at the routing tables at the remaining nodes within the route. \(A\) being the source, it has an InUse route to \(D\), while the state of the corresponding entry in both \(B\) and \(C\) is Active.  
First, \(C\) sends a HELLO message with the flag M = 1, informing about a cost change. Upon receiving it, \(B\) and \(D\) check whether they have any route entry with an Active state using \(C\) as the next hop. In this particular example, \(D\) does not have any affected entry, and the message is thus silently discarded. On the other hand, when \(B\) receives the HELLO message, it confirms that it actually has an _Active_ entry with \(C\) as the next hop. First, it updates the cost stored to reach \(D\), increasing or decreasing (as represented by the \(\pm\)symbol) it according to the S flag in the HELLO message. A cost decrease may be due to the adoption of aging functions, which would mitigate the effect of the cost associated to the accumulated exposure. Then, it builds a REPORT message: the field ROUTES_NUM carries the number of the routes that are affected by the received change, followed by the identifiers of all the corresponding destinations (i.e., ROUTE_DST-ID1). In this illustrative example, ROUTES_NUM equals 1, followed by the identifier of the corresponding destination, \(D\). It is worth noting that a cost change in one node may impact several routes, so that it is necessary to notify affected nodes of each one.  
Finally, when \(A\) receives the REPORT message, it parses the ROUTES_NUM field, checking whether it has any entry towards one of the identifiers that are included within it, having \(B\) as the next hop. In Figure 6, there is a match with an entry towards \(D\), and its cost is therefore modified, according to the information carried in the REPORT message. In addition, \(A\) would also forward it, if the entry would be either Active or Active_InUse.  
Another key issue is how the routing protocol calculates the value of the cost of a node (\(\mathsf{X}\)) and notifies its change. This cost is computed as a function that depends on the number of transmitted packets until that moment, and the corresponding transmission power required to send each of them. As mentioned before, different functions could be assumed,  
Figure 6: Sequence diagram of cost change. Dashed lines are used to show lifetimes of the involved nodes, rectangles depict operations performed by the node, and arrows represent messages sending.  
depending on how the exposure is modeled (i.e., effect of antenna pattern). On the other hand, in order to avoid the flooding of the network due to cost change dissemination, cost change notifications are limited by means of thresholds and temporal windows.