Switch memory model configuration

This article explains the parameters that are part of the switch memory model and can be specified in the lower left corner of the New Switch dialog window.

Note that the memory model is the same irrespective of the Scheduling Policy selected (Strict Priority Scheduling, Audio Video Briding or Time-Aware Shaper).

Block byte size

The memory of a switch is dived into blocks comprised of a number of bytes. To store a new Ethernet frame, that arrives on an ingress port, the memory manager of the switch reserves a number of memory blocks to hold the new frame. For example, if an Ethernet frame of size 1500 bytes arrives on an input port and the block size is set to the default size of 128 bytes per block then the number of memory blocks reserved are ceiling(1500/128) = 12.

The default block size used was deduced experimentally by performing stress test measurements on a three port automotive grade switch. It should be a good compromise block size; if one typically have many minimum sized Ethernet frames in a network, a small block size should be preferable. If one instead has many video-streams with maximum sized Ethernet frames in the network, a larger block size is probably more efficient.

Default buffer block size and Priority buffer block size

The switch memory is further divided into buffers, which implies a limit to the number of memory blocks assigned to an Ethernet port.

Initially, there was a single memory buffer per switch port, that stored Ethernet frames that needed to be queued up temporarily due to contention at the egress interface of a port.

From version 1.1.0, the single memory buffer of a port has been split into two separate buffers, one for high priority frames, The Priority Buffer, and the other one for lower priority frames, The Default Buffer. The Default buffer block size and the Priority buffer block size thus effectively specifies the size of these two buffers, respectively, and a frame buffer byte size is computed as (Buffer block size) * (Block byte size).

Priority buffer limit

This parameter specifies which frames are considered as high priority frames. If it is set to 7, then only the Ethernet frames with the highest priority will be stored in the Priority Buffer of a port. Ethernet frames with priorities 0-6 on the other hand will be stored in the Default Buffer. If instead this parameter is set to 6, then Ethernet frames with priorities 6 and 7 will be stored in the Priority Buffer and frames with priorities 0-5 will be placed in the Default Buffer etc. This means that if this parameter is set to 0, all frames will be stored in the Priority Buffer, the Default Buffer will not be used at all and one will get the same behavior as in old releases of the tool with a single frame buffer per switch port.

Now, assume we have a situation were a switch is overwhelmed by a large amount of low priority frames coming in on several ports and all should exit through one and the same egress port. The port buffer memory quickly fills up and packet drop sets in. Now, if a high priority frame arrives and want to exit through the same port, there is a high probability that it is dropped, if there is a single frame buffer per port, especially if it is a large frame. However, with a separate Priority Buffer for high priority frames, there is a much higher probability that there is memory available for the high priority frame and it should get through the switch with much higher probability as compared with a single frame buffer per port storing all types of frames.