Propagate DIO messages from a node.
[P,D,R,DAG,DIO] = NL_R_RPLDIO(G,I,P,D,R,DAG,DIO)
Graph.
Node index.
Predecessor vector.
Distance vector.
Rank vector.
DAG vector.
DIO vector.
NL_R_RPLDIO propagates DIO messages in all neighbors of the node I of the graph G. IPv6 Low power Wireless Personal Area Networks (6loWPANs) are offering a huge potential for future monitoring architectures based on constrained embedded systems such as sensors. The ROLL working group proposed the Routing Protocol for Low power and Lossy Networks RPL for these kind of networks with specific features. RPL is an IPv6 distance-vector routing protocol that builds a Directed Acyclic Graph (DAG) from a defined root node named the Low power and lossy network Border Router (LBR). LBR, often called the sink, is generally located at the network border where it is connected to the Internet. It is the source of the DAG tree built by RPL. The combination of the sink and all remaining network nodes forms a DODAG. The sink first starts to multicast DODAG Information Object (DIO) messages on the network topology. DIO messages carries information that permits to any node receiving it to discover a RPL instance, learn its configuration parameters, select a DODAG parent set and maintain the DODAG. When a node receives a new DIO version, it performs its rank and propagates its own DIO messages. In fact the Rank of a node is a scalar representation of the location of that node within a DODAG Version. It is used to avoid and detect loops. The rank increases with the hop distance towards the sink. Thus a node presenting a smaller rank can be seen as a potential parent inside the DODAG. The optimal routes are calculated according to defined constraints and metrics. In order to refresh and update the DODAG, the sink periodically sends new DIO messages. As a consequence, if a new node joins the network, or gets disconnected from its parent (predecessor), it can wait the next DIO message from few minutes to hour. It can also request the sending of DIO message according to a DODAG Information Solicitation (DIS) message. DIO messages are emitted in respect with the Trickle algorithm that defines a sequence number related to the information freshness. Trickle also updates the inter-delay between successive DIO messages. DAG provides information about how nodes join the DAG. DIO gives the order of nodes that generated DIO messages. R provides the rank of each node in respect with each predecessor stored in its routing table (N).
n=80;//network size l=1000;//network squared area side d=150;//Locality radius [g]=NL_T_LocalityConnex(n,l,d);//topology generation ETX=5; [v] = NL_F_RandVector0nminus1(length(g.head),ETX);//update of weigth v=v+1; g.edge_weight=g.edge_length; g.edge_length=v; xc=l/2;//area center yc=l/2; [s]=NL_G_NodeClose2XY(g,xc,yc)//root node c=5;//5 possible routes DIO=[] [DAG,pred,dist,ra]=NL_R_RPLInitialization(g,s,c)//initialization [pred,dist,ra,DAG,DIO]=NL_R_RPLDIO(g,s,pred,dist,ra,DAG,[])//application of NL_R_RPL_DIO | ![]() | ![]() |