VisualSim Audio Video Bridging Model

Below is a browsable image of the model.

AVB_Example_Modelmodel<h2>Stats</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>StopTime</td><td>0.51</td><td>0.51</td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Stats</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Stats</td></tr><tr><td>Node_Name</td><td>&quot;Node_5&quot;</td><td>&quot;Node_5&quot;</td></tr><tr><td>Enable_Histogram</td><td>false</td><td>false</td></tr><tr><td>Enable_Second_Plot</td><td>false</td><td>false</td></tr><tr><td>Enable_Write_to_File</td><td>true</td><td>true</td></tr><tr><td>Second_Plot_Contains</td><td>{&quot;N1&quot;,&quot;Stream_1&quot;} /* AND conditions */</td><td>{&quot;N1&quot;, &quot;Stream_1&quot;}\\n</td></tr><tr><td>Sim_Time</td><td>StopTime</td><td>0.51</td></tr></table><h2>StreamRP3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_StreamRP</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_StreamRP</td></tr><tr><td>Number_of_Retries</td><td>1</td><td>1</td></tr><tr><td>Node_Number</td><td>3</td><td>3</td></tr><tr><td>Enable_SRP_Plot</td><td>false</td><td>false</td></tr></table><h2>StreamRP2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_StreamRP</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_StreamRP</td></tr><tr><td>Number_of_Retries</td><td>1</td><td>1</td></tr><tr><td>Node_Number</td><td>2</td><td>2</td></tr><tr><td>Enable_SRP_Plot</td><td>false</td><td>false</td></tr></table><h2>StreamRP</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_StreamRP</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_StreamRP</td></tr><tr><td>Number_of_Retries</td><td>1</td><td>1</td></tr><tr><td>Node_Number</td><td>1</td><td>1</td></tr><tr><td>Enable_SRP_Plot</td><td>true</td><td>true</td></tr></table><h2>Bridge</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Bridge</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Bridge</td></tr><tr><td>Bridge_Name</td><td>&quot;Bridge_4&quot;</td><td>&quot;Bridge_4&quot;</td></tr><tr><td>Clock_Sync</td><td>true</td><td>true</td></tr><tr><td>Routing_Table_Name</td><td>Routing_Table_Name</td><td>&quot;RT&quot;</td></tr></table><h2>Network_Setup</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Setup</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Setup</td></tr><tr><td>Routing_Table_Name</td><td>Routing_Table_Name</td><td>&quot;RT&quot;</td></tr><tr><td>Traffic_Tables</td><td>{&quot;Traffic&quot;,&quot;Traffic2&quot;,&quot;Traffic3&quot;}</td><td>{&quot;Traffic&quot;, &quot;Traffic2&quot;, &quot;Traffic3&quot;}\\n</td></tr><tr><td>WriteWarningtoFile</td><td>false</td><td>false</td></tr><tr><td>List_of_Tables</td><td>{&quot;Traffic&quot;,&quot;Traffic2&quot;,&quot;Traffic3&quot;}</td><td>{&quot;Traffic&quot;, &quot;Traffic2&quot;, &quot;Traffic3&quot;}\\n</td></tr></table><h2>Node5</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Node</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Node</td></tr><tr><td>Node_Name</td><td>&quot;Node_5&quot;</td><td>&quot;Node_5&quot;</td></tr><tr><td>Clock_Sync</td><td>true</td><td>true</td></tr><tr><td>Routing_Table_Name</td><td>Routing_Table_Name</td><td>&quot;RT&quot;</td></tr><tr><td>_flipPortsHorizontal</td><td>true</td><td>true</td></tr></table><h2>Node3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Node</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Node</td></tr><tr><td>Node_Name</td><td>&quot;Node_3&quot;</td><td>&quot;Node_3&quot;</td></tr><tr><td>Clock_Sync</td><td>true</td><td>true</td></tr><tr><td>Routing_Table_Name</td><td>Routing_Table_Name</td><td>&quot;RT&quot;</td></tr></table><h2>Node2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Node</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Node</td></tr><tr><td>Node_Name</td><td>&quot;Node_2&quot;</td><td>&quot;Node_2&quot;</td></tr><tr><td>Clock_Sync</td><td>true</td><td>true</td></tr><tr><td>Routing_Table_Name</td><td>Routing_Table_Name</td><td>&quot;RT&quot;</td></tr></table><h2>Node1</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Node</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Node</td></tr><tr><td>Node_Name</td><td>&quot;Node_1&quot;</td><td>&quot;Node_1&quot;</td></tr><tr><td>Clock_Sync</td><td>true</td><td>true</td></tr><tr><td>Routing_Table_Name</td><td>Routing_Table_Name</td><td>&quot;RT&quot;</td></tr></table><h2>AVB_Config_Table</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>Block_Documentation</td><td>Enter User Documentation Here</td><td>Enter User Documentation Here</td></tr><tr><td>Routing_Table_Name</td><td>&quot;RT&quot;</td><td>&quot;RT&quot;</td></tr></table><h2>NetTG3</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Traffic</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Traffic</td></tr><tr><td>Traffic_Table</td><td>&quot;Traffic3&quot;</td><td>&quot;Traffic3&quot;</td></tr></table><h2>NetTG2</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Traffic</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Traffic</td></tr><tr><td>Traffic_Table</td><td>&quot;Traffic2&quot;</td><td>&quot;Traffic2&quot;</td></tr></table><h2>NetTG</h2><table border="1"><tr><td><b>Parameter</b></td><td><b>Expression</b></td><td><b>Value</b></td></tr><tr><td>_explanation</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Traffic</td><td>Interfaces and Buses-&gt;Audio Video Bridging-&gt;AVB_Traffic</td></tr><tr><td>Traffic_Table</td><td>&quot;Traffic&quot;</td><td>&quot;Traffic&quot;</td></tr></table>

The goal is to model a AVB system that sends AVB packets regularly in the allocated slots, as the bandwidth is reserved for each slots there will not be any collisions. So, a system may comprise a host node (or many) that is delivering the data (talker) and a node that represents a recorder (listener). In order to conduct trade-off analysis in terms of performance, available bandwidth and reliability we have constructed a simulation model that facilitates the designer to generate verities of traffic patterns with different rates.

Figure 1.0

Here the Camera module is a traffic generator.  There are many configurations that need to be setup.  The user will start with a VisualSim distribution-driven workload generation.  If the designers have any trace files captured from the real hardware then those files can be used as source files. AVB_Node and the AVB Switch are provided as a library block in VisualSim.  Every Traffic generator (Camera) will be connected to a Node block.  Multiple Nodes will be connected to the AVB_Switch.  The Network Config will define the following BW for each type, Class to Type mapping, Master Clock schedule, traffic schedule, bandwidth for each link. The Recorder can do the capture and storage. 

Reservation of bandwidth for a specific stream type can be defined in a table as shown below

ID Type                 Node_1                 Node_2                   Node_3                    Bridge_4             Node_5   ;

 0    0                      25.0                        25.0                        25.0                        25.0                       0.0     ; /* Background                  */

 1    1                      0.0                          0.0                          0.0                          0.0                          0.0     ; /* Best Effort                 */

 2    2                      0.0                          0.0                          0.0                          0.0                          0.0     ; /* Excellent Effort            */

 3    3                      40.0                        40.0                        40.0                        40.0                        50.0     ; /* Video  50ms latency         */

 4    4                      0.0                          0.0                          0.0                          0.0                          0.0     ; /* Critical Apps               */

 5    5                      25.0                        25.0                        25.0                        35.0                        45.0     ; /* Video   2ms latency         */

 6    6                      0.0                          0.0                          0.0                          0.0                          0.0     ; /* Internet Control            */

 7    7                      0.0                          0.0                          0.0                          0.0                          0.0     ; /* Network Control, highest    */

This pre-allocates bandwidth, based on AVB, other Ethernet Type bits.  The bandwidth can be allocated at each node, or bridge; as long as it is equal to or less than 100.0 Mbps or 1.0 Gbps speed of Ethernet. If the bandwidth is greater than 100.0 at a Bridge, for example, the model will generate an exception to the user.  Type 0, is Ethernet background traffic in this example.

Similarly, in the Traffic database blocks, one can set the bandwidth for each traffic stream, notice column in bold:

ID Identifier  Task_Source  Task_Destination  Mbps  Task_Size  Start_Time  Stop_Time  Protocol Type ;      

 1 "00:01"     Node_1          Node_5                  2.0        128           10.0E-03        0.5                  UDP    1  ;

 2 "00:02"     Node_1          Node_5                  2.0        512          10.0E-03        0.5                  UDP    1  ;

 3 "00:03"     Node_1          Node_5                  5.0       1024          10.0E-03        0.5                  UDP    1  ;

 4 "00:04"     Node_1          Node_5                  3.0         64            10.0E-03        0.5                  UDP    1  ;

So, by a combination of pre-allocating bandwidth for the nodes and bridges by Type; and sending in Traffic streams with a predetermined bandwidth; one will see the effect of over allocating data streams for an available bandwidth.

AVB streams have 25.0 to 50.0 Mbps bandwidth pre-allocated in the above table.  If a node or bridge does not have an AVB packets to send, based on their bandwidth allocation, then this bandwidth will be available to other Ethernet Types, such as data packets.  This way AVB model adapts to current AVB traffic, data traffic.

The model generates mainly 4 different pieces of information; latency stats for all AVB streams, activity stats for listeners, bridge and talkers, graphical latency plot for each AVB stream, histogram of the latency for each stream. Figure 2.0 is the sample latency graph.



Figure 2.0
VisualSim enables the designers to model and simulate a complex system with multiple talkers and listeners as shown in figure 3.0. There are no rules on how small or large an AVB system should be, but there are practical limits. AVB streams have a sizeable overhead, limiting the number of streams that an Ethernet cable can carry. A 100-Mbit Ethernet cable can carry nine stereo AVB streams for a total of 18 channels or a single AVB stream with 45 channels. Ability to go beyond the AVB standards for next generation or custom requirements is also supported in VisualSim environment.

Each talker device will be provided with dedicated traffic generation table, each table can have number of AVB streams provided with data rate, packet size, start and stop size of traffic generation. For example one can customize the traffic generator to match different cameras- like video quality (High-Def, 4K etc), mode of operation, distribution of black and white in the frame etc. As VisualSim keeps track of the time stamp when a particular packet of data is created and reaches its destination it helps in computing the end-to-end latency, network delay.