Modified-MCRP
3.2 Enhanced MCRP (EMCRP)
In the pervious section, we show how MCRP works to avoid two adjacent switching nodes. Unfortunately, besides discarding infeasible channels, they also discard some feasible channels without the deafness problem. For example, in Fig-ure 3.8, although the dotted traffic flow from A to E can assign channel 3 without two adjacent nodes, there are more than 2 fields in the channel table with the value
grater than or equal to 1. Therefore, MCRP can’t find it and cause no feasible channels on the path. Finally, the path will be seen as an infeasible routing path.
If there are already many flows in the network, it is hard to find a feasible path for new traffic demands. It is not a good idea to discard any feasible channels.
Besides, it is possible to discard routing paths with lower traffic load. Therefore, we design a method to find all feasible channels as follows.
Figure 3.8: MCRP discards the feasible channel 3
3.2.1 Node Classification
First, because MCRP can only assign two channels on switching nodes, it also discards some feasible channels which cause switching nodes with more than 2 channels. For finding these feasible channels, we can set the upper bound of the
number of channels which can be assigned on switching nodes. If the number of channels on a switching node is lower than the upper bound, we can still assign more channels on it. Therefore, we classify switching nodes again into two parts as follows.
1. Switching node (A): A node has multiple traffic flows on different channels through it, and the number of channels is below the upper bound which means it can still assign a new channel.
2. Switching node (B): A node has multiple traffic flows on different channels through it, and the number of channels is equal to the upper bound which means it can’t assign a new channel any more.
3.2.2 Route Discovery
Second, as MCRP, we also add channel table and flow table in RREQ. The flow table is the same as MCRP, but the channel table is the totally different meaning.
The channel table contains a field for each channel as shown in Figure 3.4, but the value of each field is 0 or 1. 0 means the channel is infeasible to assign; 1 means the channel is feasible to use.
Third, excepting channel table and flow table, we add the sender informa-tion which contains sender’s assigned channels and state informainforma-tion as shown in Figure 3.9.
The sender doesn’t mean the source node of the routing path. When a node broadcasts or rebroadcasts the RREQ, it is the sender of RREQ message. The
ch1
Sender channel information
S1 S2 S3 S4
Sender state information
S5 ch2 ... chk
Figure 3.9: Sender’s channel and state information
sender channel information records channels it has assigned. All fields in sender channel information are boolean. 1 means sender has assigned the channel, and 0 means sender has not assigned it. The sender state information records which state it is. S1 refers to free node, S2 refers to locked node, S3 refers to hard-locked node, S4 refers to switching (A) node, and S5 refers to switching (B) node. All fields in sender state information are also Boolean. 1 means sender is on this state, and 0 means not.
Forth, after receiving RREQ, nodes can update the channel table, the flow table and the sender information in RREQ. The way to update the flow table is the same as MCRP, but the way to update channel table is different from MCRP as follows. S is the sender of RREQ, R is the receiver of RREQ and C presents the channel table in RREQ. Source node needs to generate the channel table in RREQ, and intermediate nodes also have to update the channel table, according to Figure 3.10.
The main idea to update the channel table is to set all channels can be as-signed first, and then delete infeasible channels node by node. Infeasible channels are channels which will cause two adjacent switching nodes. After a node receives
RREQ, because we add the sender information in RREQ, it will have two adja-cent nodes information (sender and itself) to avoid two adjaadja-cent switching nodes causing infeasible channels. Finally, destination node can choose the lowest load channel from those feasible channels by using the same way as shown in MCRP.
For example, we use our extended method on the same traffic flow in Figure 3.8. And we can find a feasible channel as shown in Figure 3.11
According to Figure 3.10, node A is a free node, and it is also a source node.
Therefore, it sets up the channel table to be (1,1,1). After B receives RREQ, it knows sender A is free, and receiver B is a locked node , then updates the channel table to be (1,1,1). After C receives RREQ, it knows sender B is a locked node on channel 1, and receiver C is a locked node on channel 3, then updates the channel table to be (1,0,1). After D receives RREQ, it knows sender C is a locked node on channel 3, and receiver D is a locked node on channel 2, then updates the channel table to be (0,0,1). After E receives RREQ, it knows sender D is a locked node on channel 2, and receiver E is a free node, then updates the channel table to be (0,0,1). Because the field of channel 3 in the channel table is one, node E can assign channel 3 on the routing path without the deafness problem as shown in Figure 3.12.