AVB_Node

Parent Previous Next

Interfaces and Buses / Audio_Video_Bridging  / AVB_Node
Block Name: AVB_Node

Code File Location: VisualSim/actor/lib/networking/avb/AVB_Node

Table of Content

Quick Overview
Operation
Data Structure
Required Data Structure Fields
Connectivity in the Model
Detailed Description
Examples

Quick Overview

AVB_Node block is used to emulate the operation of a Audio Video Bridging Node block.  This block contains the admission control, stream reservation protocol, clock synchronization and the traffic shaping.  This block can act as both a Talker and a Listener.  The input to this block from the Application layer is either an Ethernet, AVB Talker Advertise or a AVB Stream.  The output from this block to the network is a Ethernet packet, AVB stream, Talker Advertise (Register or DeRegister), Talker Failed and Listener Ready.  The input from the network is a Talker Advertise (Register or DeRegister), Listener Ready, Ethernet packet, AVB stream and Talker Failed.  The output from this block to the Application Layer are AVB or Ethernet stream to this destination, and Talker Failed.

The block is connect to the StreamRP on the Application side and connectionless to the network.  

For a detailed description of AVB and AVB_Node, review the AVB support document.

Operation

When a packet enters this block from the Aplication side, the following actions are performed based on the packet type


When a packet enters this block from the Network side, the following actions are performed based on the packet type. The types of packet are an Ethernet arriving at the destination, a Listener Ready from the destination for a AVB Stream, Talker Failed from the network or a AVB stream.  

Data Structure

The Data Structure arriving from the Application Layer and the Network have the following fields:

{BLOCK                = "Traffic",
DELTA                = 0.0,
DS_NAME                = "DS_Database5",
Fail_Code            = 0,
ID                = 4,
INDEX                = 0,
Identifier            = "00:04",
Mac_ID                = "a0:36:9f:0c:77:38",
Mbps                = 3.0,
Multicast            = "none",
Network_Message            = "none",
Orig_Bytes            = 64,
Orig_StrmID            = 4,
Orig_Type            = 1,
Port                = "dn_1",
Protocol            = "UDP",
Protocol_Idx            = 0,
Rate                = 1.7066666666667E-4,
SR_A                = true,
SR_B                = false,
Sequence            = 2,
Start_Time            = 0.01,
Stop_Time            = 0.5,
Stream_Flag            = true,
Stream_ID            = 4,
TIME                = 0.0613240671,
Task_Ack            = false,
Task_Delta_Time            = 0.0,
Task_Destination        = "Node_5",
Task_Hop            = "Node_1",
Task_ID                = -1,
Task_Last_Node            = "Node_1",
Task_Layer            = 0,
Task_Message            = "none",
Task_Message_Type        = "none",
Task_Modifier            = 0,
Task_Number            = 0,
Task_Overhead            = 0,
Task_Port            = 0,
Task_Priority            = 0,
Task_Request            = false,
Task_Retry            = 0,
Task_Size            = 64,
Task_Source            = "Node_1",
Task_Time            = 1.2E-4,
Task_Timestamp            = 0.0,
Task_Trace            = {"Node_1"},
Type                = 5}

Name of the block generating the packet
Double value scratch pad
Name of the Data Structure template
For a Talked Failed, indicates the type of failure
Sequence number of each packet
Integer value scratch pad
Unique stream ID. Must be different from all other streams in the model
Physical Address
Packet rate used in the Traffic block
Name of the multicast list, used to transmit the packet as a multicast
Message for the network operations- Acknowledge, Multicast, Talker Advertise
Original packet size
Original stream ID, if packet is forced to operate as a Ethernet for lack of credits
Type of the packet in the Traffic table
Arriving port at the node
UDP or TCP
Integer value
Time between packets in seconds
Is it Stream Class A
Is it Stream class B
Sequence number for the packet in this stream
Start of this stream from the beginning of the simulation
Stop time of this stream from the beginning of the simulation
Is this a AVB stream
Unique stream ID from the Stream Table
Timestamp at generation
Is this a acknowledge
Intermediate time stamp
Destination Node name
Next Node or Bridge in the path
Used internally in the Layer block
Prior Node in the flow
Current Layer
User message
Used by AVB for Register or DeRegister
Not used
Not used
Any packet size overhead- used in Layer blocks
Not used
Priority of the packet and is used in queuing- Traffic Shaping uses the Type field
Request type
Number of retires is incremented by the Source node
Packet size
Source Destination Name
Time of processing
Intermediate timestamp
Trace of all the Nodes and bridges in this flow path
Type of class used by Ethernet for Traffic Shaping

Required Data Structure Fields

The following fields are required and their acceptable values

For Talker Advertise and Register

For Talker Advertise and DeRegister

For Listener Ready

For Talker Failed

For Ethernet stream
Identifier            = "Ethernet",
Multicast            = "none",
Network_Message            = "none",
Protocol            = "UDP",
SR_A                = false,
SR_B                = false,
Stream_Flag            = false,
Task_Message            = "none",
Task_Message_Type        = "none",

For AVB Stream

Connectivity in the model

On the Application side, the minimum configuration will be Ethernet Traffic->StreamRP->Node block

On the Network side, the Link Setup table of the AVB_Config_Table lists the connectivity

Detailed Description

This block is used with the Node blocks to simulate the Internet multicast protocol. The block works in conjunction with a Init_Memory block. The lower ports (fr_Node and to_Node) are connected to the Node ports (node_input and node_output) respectively. The top ports (fr_layer and to_layer) are connected to the Layer_Block ports () respectively. Each instance of the multicast block must have a unique multicast name.

The configuration of the multicasts are done in the Init_Memory. There are two parts to the definition. The first row must contain the following sequence

Multicast_List global {"Multicast_1","Multicast_2"}

where the Multicast_List is a keyword, type must always be global and the array must be the list of all the multicasts.

The Init_Memory must contain a separate line for each item in the array. The following example:

Multicast_1 global {"Node_6","Node_5","Node_7","Node_2","Node_3","Node_4"}

where the Multicast_1 is the string from the Multicast_List, type must always be global and the array must be the list of all the Nodes that must receive this multicast. For a Broadcast, this will contain the list of all the Nodes on this network excluding the Source node.

Any transaction that must be multicast or broadcast (as a multicast) must contain the name of the multicast item as a string in the Task_Message field of the incoming Data Structure at the source Multicast block or the Node block. The block manages the spanning tree algorithm for the routing of the multicast packets.

Examples

To illustrate the usage, look at the following Examples in the BDE.

AVB Example

AVB with Multi-Bridge

AVB with Dynamic Instantiation

 

Parameter

Explanation

 Type  

 Example 

Node_Name

Unique name for this AVB Node.  Must be unique for all blocks in the model, not just other multicast.

String

"Multi_1"

Clock_Sync

true if the Node support Clock Sync message and false if the message are ignored..

String

true

Routing_Table_Name

This is the Routing_Table block name that is responsible for routing the packet within this network.

String

"RT"


 

  Port 

 Explanation 

port_in

From the Application layer.  Can be a AVB StreamRP, Traffic Generator or a Layer block.

port_out

To the Application layer.  Can be a StreamRP, Traffic Generator or a Layer block. 

virtual

The packet is sent virtually to the Bridge and/or Nodes.


Created with the Personal Edition of HelpNDoc: Free Qt Help documentation generator