# Toward a Detailed Evaluation of Wireless Industrial Data Distribution Approaches +
## 4 Simulation Model
### Route Computation  
Since in our simulations nodes never crash and the topology does not change, routes in the networks may be computed offline and then uploaded in the models in order to speed up simulation execution. We consider full-duplex links. As the routing algorithm, we used [PERSON]'s algorithm [33]. With methods C1, C2 and D1, we compute the shortest-path tree rooted in the CNC and connecting all nodes. The computed tree is used to obtain the needed routes in the various methods (see Figure 2).  
In RPL non-storing (C1), the routing tables of all nodes but the CNC contain just the address of the parent node in [PERSON]'s tree, while the CNC has routes to every other node and uses them to perform source routing.  
In WirelessHART (C2), the CNC node holds the unique data cache. All nodes know only the upstream route in the [PERSON]'s tree to reach the CNC, to which both data and requests are addressed. By contrast, the CNC knows the routes to every other node, used to forward perlies.  
For RPL in storing mode (D1), the path between any two nodes \(s\) and \(d\) follows the branches of [PERSON]'s tree from \(s\) up to the LCA of both \(s\) and \(d\) and then downward along the appropriate branch toward \(d\). Hence, every node has in its routing table the routes to both its parent and all its descendants. The determination of the LCA is performed at run time by nodes: producers are preliminarily fed offline with the list of their consumers (bottom right part of the flowchart). Whenever a data item is generated, its producer \(s\) indicates in the message the list of consumers it is addressed to and forwards it upstream. Each upstream node checks whether it has one (or more) of the listed consumers among its own descendants; if this is the case, the node is the LCA for \(s\), and consumer \(d\) and takes charge of message forwarding downstream toward \(d\). It removes \(d\) from the message header: if the list becomes empty, then the message is discarded; otherwise, a copy of it is forwarded upstream. If a traversed node is itself a targeted consumer, it passes the message to its Application layer and removes its own ID from the list of destinations. If all consumers are in \(s^{\prime}\) subtree, then \(s\) performs downward forwarding. Finally, in proxy source routing  
Figure 1: Square grid topology scheme.  
(D2), the proxy selection algorithm is preliminarily run. Afterward, [PERSON]'s algorithm is used to compute the best route from every node to its own proxy. In all cases, the routing tables are filled as a preliminary operation when the simulation starts.  
In order to conceptualize the adopted methodology, Figure 2 depicts the steps followed to implement the four analyzed methods and in particular the preliminary computation of the network settings. The top part of the figure concerns the routes computation depending on the considered method; Section 4.1 discusses in detail the adopted policies. The mechanism used in C2 to decide WirelessHART channel scheduling is discussed in Section 4.2. The bottom part of the flowchart supplies further details about settings for specific node categories.  
The flowchart must be taken as reference in the following subsections.  
Figure 2: Flowchart representing the adopted methodology.