AVB_Bridge

Parent Previous Next

Interfaces and Buses / Audio_Video_Bridging  / AVB_Bridge
Block Name: AVB_Bridge

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

Quick Overview


This block is the Ethernet MAC Layer implementation for a Bridge. This block handles common Ethernet operation including Clock Synchronization, Multicast, Traffic Shaping, Routing and the AVB Reservation protocol management.   For a detailed description of AVB and AVB Node, review the AVB support document.  The tables to configure are also listed in this document.

For Ethernet traffic, the block requires the following fields: Task_Source, Task_Destination, Task_Hop, Task_Trace, Task_Size, Type, Network_Message, Network_Message_Type and Task_Layer. For an AVB stream, the initiation will be a data structure with Network_Message="Talker_Advertise" and a Network_Message_Type="Register". If Bandwidth is available, it will forward the message to the next Node or Bridge in the flow. The flow is determined by the Routing_Table.  The bandwidth will also be marked for credit. If Bandwidth is not available, it will return the message to the Source Node with the Network_Message="Listener Failed". When the sream has stopped transmission, the AVB stream will send a data structure with Network_Message="Talker_Advertise" and Network_Message_Type="Deregister". The block will release the credits for the stream and forward to the next Bridge or end-Node in the flow.

This block requires the AVB_Network_Setup block to be in the model. A number of tables are required for this block to operate correctly. The sample of these Tables are shown in the AVB_Config_Table. This blocks also requires the two Memory_Init block that are shown in the AVB_Config_Table block. This block requires two Database tables- one with Linking_Table_Name=Type_to_BW and the other one with Linking_Table_Name="Class_to_Type". The AVB_Config_Table block contains examples of these two tables. These two tables are common to all the Nodes and Bridges in the model.

The first table has the allocation of bandwidth to each Type of class. The second table has the mapping of the AVB Class A and B to the Types.There are 8 Types from 0 to 7 for Ethernet. All bandwidth that has not been allocated will be placed in a Queue called Type 9. For the AVB streams, the bandwidth is allocated for each stream based on the amount requested in the Talker_Advertise and the availability of bandwidth.

The AVB Stream Reservation Protocol allocates bandwidth to the requesting stream and passes the Data Structure to the Bridge. If the stream is allocated bandwidth it will attach the WCET and send the Data Structure to the next bridge or the destination node for this stream. If it cannot allocated bandwidth, then it returns the same Data Structure back to the Source Node. The return message will have Network_Message="Listener_Failed"

The four checks are

The Traffic Shaper uses a leaky bucket algorithm for the traffic management. It uses the Type_to_BW table and the currently allocated AVB stream credits. Each Type has a separate Queue. All the Data Structures of that Type are placed in that Queue. The algorithm starts with the Types that have bandwith allocated. It searches the Type Queue in the order of priority. The higher the Type, the higher the priority. If there are any AVB streams within a Type, it first completes all the AVB streams before transfering any Ethernet packets. The traffic shaper loop has a period within which the allocated bandwidth is guaranteed. After the bandwidth has been consumed for the Types with bandwidth, it starts the Type 9 Queue. This queue will first cycle through all the Types that do not have bandwidth allocated and then look at the Types that have bandwidth allocated. Every time through the loop at least one packet will be transfered. So there is no loss of bandwidth from the scheme.

This block assumes a maximum of 8 links to this Bridge block.

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

AVB Example

 

Parameter

Explanation

 Type  

 Example 

Bridge_Name

An unique name for this Bridge.  

String

"Bridge_" + Number.

Clock_Sync

If this is set to true, the incoming Clock_Sync is processed and sent out on all the links.

Boolean

true

Routing_Table_Name

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

String

"RT"


 

Created with the Personal Edition of HelpNDoc: Full-featured multi-format Help generator