NODE

Parent Previous Next

Interfaces and Buses / Networking / NODE

Block Name: NODE

Code File Location: VisualSim/Actor/lib/NODE

Block Overview

Description

NODE Flow

Supported NODE Topologies


NODE Layers


Node Flow

Flow


   [1] The 'Routing_Table' Block provides information for the network, including "Routing_Algorithm", "Routing_Algorithm_Cost", and "Routing_Latencies".  The connectivity information can be in a Database block with the linking name matching the Routing_Table name or in a file selected in the Routing_File_Name setting.  There can be more than one Routing_Table/Database pair in a network model. 

     [2] The Node block uses a Connectionless Routing and the data structures are passed from Node block to Node block without connections or physical wires.

     [3] Routing Table Format:  

The Routing Table Database block must have the Linking_Name match the Routing_Table_Name parameter of this block.  The format of the Database entries, 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 ;.

    All input and output links to a NODE are described separately.  This allows the user to allocate different bandwidths in each direction and to allow users to disable a single link in a single direction.  The Add and remove of link is accomplished by the NODE_Master block.  Please refer to NODE_Master block documentation for further details.

Statistics

 Users can obtain statistics for each NODE block from the NODE_Master block or through the use of a RegEx function.  The statistics output
   looks like:

   {"Source", "Destination", "Mbps", "Min_Utilization", "Mean_Utilization", "StDev_Utilization", "Max_Utilization"}

,  {"Node_1", "Node_2", "0.0", "0.0", "0.0", "0.0", "0.0"}

, {"Node_1", "Node_3", "156309.67", "0.00137", "0.00156", "1.612977E-4", "0.00319000032"}

The generated statistics are for each link and contain the Mbps and, min, mean, stdev and max of the link utilization.  The RegEx function allows one to collect all of the statistics for the entire routing table domain, using the following expression, assuming the Routing_Table name is "RT":


     getBlockStatus("RT", "stats", -1)    // Generates the statistics and resets the statistics for all  links in Routing Table- "RT"


    getBlockStatus("RT", "stats", 0)    // Generates statistics for all  links in Routing Table- "RT"

    getBlockStatus("RT", "stats", 1)    // Returns connectivity table for routing table domain

    getRoutingTableHop("RT","Node_1","Node_2")    // Returns the next node hop, if there is no hop, then return "none"

 

RT represents the name of the Routing Table associated with this NODE block.

Fields

There are two types of fields- one are the user input and the others are used internally.  The data structure used must contain these fields or a error will be generated.  The user fields are:

Task_Source: Message Source Node.  This is not modified by this block.

Task_Hop: Next Node in the data transfer.  The user will set it to the current node.  This block will modify the Task_Hop field based on the content of the Routing Table.  This field is modified.

Task_Destination: Final Destination Node Name.  This block uses this field to determine what the next Hop is.  This field is not updated.

Task_Size: Size in Bytes of the data, excluding Header and Trailers.  The Node block uses this field to compute the link transfer delay time. This field is not modified.

Task_ID: First Layer_Protocol block encountered will generated a sequence number.  This is a single sequence is for all Layers in all the Nodes.  When a new packets arrives a Layer for the first time, the sequence number is incremented.  For the Task_ID to be updated, the entering Task_ID=-1. This is field is not used in the Node block.  This field is not modified.

Network_Message: Currently used only for identifying Retry_, Multicast and Drop_Packet.  The Node uses this field for Retry and Drop_Packet.  If the field starts with Retry, the Node will not send this packet to the layers above.  The Node will send this packet to the next Node in the flow.  If this is the original Source Node, it will send it to the upper Layer.  If the Task_Hop cannot be found to the Task_Destination, then it sets the Network_Message to "Drop_Packet" and returns it back to the Task_Source.  If the Task_Source is the current Node, it drops the packet.  This field is modified by this block.

The Internal Fields are as follows:

Task_Retry: Number of retries for this packet.  When this number exceeds the threshold, the packet is dropped by updating Network_Message="Drop_Packet", and then returned to the top Layer_Protocol of the Source_Node.  This block ignores this fields.  This field is not modified.

Task_Time: The Node computes the latency for the Packet to transfer across the network and palces the value in this field.  This is also used to calculate utilization in the Node blocks.  This field is modified.

Task_Trace: This is a array of Node names that this packet has encountered.  The Node block appends it's name to this field.  This field is modified.

Task_Overhead: This block will maintain the amount of overhead bytes accumulated.  Subtracting this from Task_Size will give the original data size.   This is not used by this block.  This field is not modified.

Demonstrations

Network_Basic Demo Model.  This shows a basic connectionless network, the Routing Table reference and the path definition in the Database block.  

Retry Network Demo Model.  This shows a Connected Network with the layers of the OSI stack referenced.

Gateway_Connected Demo Model.  This shows the use of the Node as a Gateway.

Multi_Network_w_Intermediate_Gateway Demo Model.  This model has a intermediate of Gateway nodes.

Gateway_w_Diff_Return_Model Demo Model.  In this model, the forward and return directions use a different Gateway Node. 

Two_Networks_w_Gateways Demo Model.  This shows two Gateways between two networks.

Mulitcast Demo model showing the use of the Multicast function along with the Node block.

Parameters

Parameter

Explanation

Type

Example

Node_Name

Name of this node.  All  nodes should have unique names to prevent routing conflicts.  The Gateway node must always start with "Gateway".


String

"Node_1"

Routing_Table_Name

Name of Routing Table

 

String

"RT"

Gateway_Node

If checked, this node is designated as a gateway node to another subnet, or to a gateway subnet.

Boolean

Default, unchecked

Ports

Port

Explanation

Type

node_input

This is the input connection from the traffic generator or the input from the Layer above. This will be connected to a Traffic block or to the Layer_Protocol block.

General

node_output

This port is used to send the data to the upper layers.   If there are Layer_Protocol blocks, then this port can be connected directly to the "ds_up_input" port.

General


Created with the Personal Edition of HelpNDoc: Full-featured EPub generator