Interfaces and Buses / Networking / Routing_Table
Code File Location: VisualSim/actor/lib/Routing_Table
This block is used to define the routing table for an entire network or a subnet. The
fileOrURL is the default file name +path and contains the connectivity
information in a file. If a fileOrURL is not defined, then the connectivity information for the Routing Table is defined in a Database with the same name as this Routing Table.
The routing algorithm is set to Dijkstra, by default. The user can define their own algorithm and assign it to either User_Algorithm_1 or User_Algorithm_2. The definitions of these algorithms are located in the VS_AR/User_Library/algorithm directory of the VisualSim install. Examples are provided in this directory.
The format of the Connectivity table in the Database or the file, is shown below:
ID
Source_Node Destination_Node Distance Speed_Mbps
Duplex ;
0 Node_1
Node_2
10.0
100.0 true ;
1 Node_2
Gateway_3
10.0 100.0 true ;
2 Gateway_3
Node_2
10.0
100.0 true ;
3 Node_2
Node_1
10.0
100.0 true ;
Note: There must be Tabs or spaces between each of the columns. The first row must contain the names of the columns. Each row corresponds to one Direct connection. There must be a space before the ;.
Parameter |
Explanation |
Type |
Example |
Routing_Table_Name |
Routing_Table_Name
must be unique to all the other blocks in the model. This is
referenced by the Node blocks. One Routing_Table can be referenced by
multiple Node blocks. If theRouting_File_Name is empty, then
there must be a Database block with the matching Linking_Name that has
the connectivity information |
String |
"LT_1" |
Routing_File_Name | Path
+ File Name to the connectivity table. If this value is not set,
then the Database block will contain the information. | URI format | C:/VisualSim/Routing_Table.txt |
Propagation_Constant_C |
Propagation constant as a multiple of the speed of light. A fiber optic wire would be 1.0 while twisted-pair is 0.8 and a coaxial cable will be 0.5. |
double |
1.0 |
Message_Names |
Array of Task_Message names that invoke a different message size during propagation. "Retry" is a special internal message required if the probability of a retry is greater than 0.0. Currently only Retry message is being used. The user can also use this field for their purpose. |
array |
{"Retry","Request","Acknowledge"} |
Message_Bytes |
Array of bytes that match Message_Names array, see above. These are the message sizes invoked for messages passed through a network and leave existing Task_Size information intact. |
array |
{16,16,16} |
Nodes_in_Model | The
Routing Table can be used to compute the routing paths and used in
other types of models. When this is the case, the model will not
contain any Node blocks. This parameter will be unchecked for
that scenario. | Checkbox or Boolean | true |
Routing_Algorithm |
Routing_Algorithm. This can be set to Dijkstra (shortest path first), which is provided as the default algorithm in the Routing_Table. The user can define their own algorithm and assign it to either User_Algorithm_1 or User_Algorithm_2. The definitions of these algorithms are located in the User_Library/algorithm directory of the VisualSim install. |
pulldown |
"Dijkstra" |
Routing_Algorithm_Cost |
Routing_Algorithm_Cost. This can be Number_of_Hops, Distance, Bandwidth or Link Load.
Number_of_Hops- Selects the path with the least number of Nodes Distance- Calculates the shortest distance between Source and Destination and provides that as the path Bandwidth uses the
bandwidth field to select the path with the maximum available
bandwidth. Used when the links have different bandwidth.
Good example is a wireless channel where has different speeds based on
noise. Link Load- Initially this will default to the Bandwidth. If the Node_Master forces a recompute, this algorithm uses the link statistics to find the lower utilized path. The default is "Number_of_Hops." |
pulldown |
"Number_of_Hops" |
Routing_Latencies |
Routing_Latencies. This can be Length_is_zero, Length_in_feet, Length_in_miles, Length_in_meters or Length_in_kilometers. This is the unit for the 'Distance' in the Connectivity Table. The latency to each packet or data structures or packet is determined using this unit. 'Length_is_zero' does not add any latency to outgoing packets. The default is "Length_is_zero." |
pulldown |
"Length_is_zero" |
Created with the Personal Edition of HelpNDoc: Single source CHM, PDF, DOC and HTML Help creation