Buffers, queues and QoS
MMU buffer configuration, queue counts, cut-through and PFC. See Buffers and queues.
Set in several SONiC Trident 3 HWSKU files: asf_mem_profile, bcm_num_cos, default_cpu_tx_queue, mmu_init_config, mmu_lossless, pfc_deadlock_seq_control.
- asf_mem_profile
- Type:
- number
Cut-through (ASF) buffer profile:
0store-and-forward only,1cut-through between ports of similar speed,2cut-through between all speeds.- SONiC:
set in 9 Trident 3 HWSKU files;
2,0
- bcm_num_cos
- Type:
- number
- Default:
8
Number of class-of-service queues the SDK configures per port at start-up. Dell S5232F files set 10.
- SONiC:
set in 40 Trident 3 HWSKU files;
10,8,9
- bst_sync_thread_pri
- Type:
- number
- Default:
50
Specifies the priority of the bcm_bst_sync_thread
- buffer_stats_collect_mode
- Type:
- number
- Default:
0
Flags to denote pstats and oob stats mode. TH only supports 0. 0x0 Instantaneous mode 0x1 Max use count mode with HW clear on Read
- buffer_stats_collect_type
- Type:
- number
- Default:
1
Flags to enable pstats or oob stats. only one can be enabled at a time. TH only supports 0 and 1. 0x0 None: disable both oob stats and pstats 0x1 OOB STATS: only enable out-of-band stats 0x2 PSTATS: only enable packetized statistic
- default_cpu_tx_queue
- Type:
- number
Queue used for packets sent from the CPU without an explicit queue. Read by the SAI’s MMU set-up.
- SONiC:
set in 18 Trident 3 HWSKU files;
9
- hybrid_pfc_deadlock_enable
- Type:
- number
- Default:
0
Control whether to enable hybrid PFC deadlock. 0 – Do not enable hybrid PFC deadlock. Only support HW based PFC deadlock (default). 1 – Enable hybrid PFC deadlock. Support both HW and SW based PFC deadlock.
- SONiC:
set in 2 Trident 3 HWSKU files;
1
- lb_port_use_uc_queues
- Type:
- number
This soc property defines whether SOBMH packets sent to loopback ports use unicast or multicast queues. The value is 0 to use multicast queues and 1 to use unicast queues.
- lccdrain_timeout_usec
- Type:
- number
When a link goes down for any reason, the driver waits for all packets to that port to drain from the MMU before continuing. There is a timeout in case the packet count is non-zero AND non-decrementing. This is only for devices with UniMAC and TriMAC.
- mirror_copy_counting_disable
- Type:
- number
This soc property is used to disable the mirror copy counting on all pool nums To disable a specific pool num, use the suffix “_poolx”. x represents the pool num default value is 0 (mirror copy counting is enabled).
- Forms:
mirror_copy_counting_disable_pool<N>
- mirror_dest_cosq_mode
- Type:
- number
- Default:
0
- mmu_config_override
- Type:
- number
- Default:
1
Use the SDK’s built-in MMU settings (1) or the
buf.*variables (0). Thebuf.*values are used only when this is 0 and they pass the SDK’s checks; otherwise the built-in settings stay.
- mmu_flow_fanin
- Type:
- number
Number of simultaneous senders to each port for flow control purposes
- mmu_flow_percent
- Type:
- number
Percentage of per-port cells usable before flow control starts
- mmu_init_config
- Type:
- string
Name of a built-in MMU start-up configuration, read by the SAI’s MMU set-up.
- SONiC:
set in 8 Trident 3 HWSKU files;
"TD3-DELL-lossless"
- mmu_lossless
- Type:
- number
- Default:
0
Initial MMU profile: 0 lossy, 1 lossless (PFC-ready headroom). SONiC programs buffers through the SAI at runtime, so most files leave it at 0.
- SONiC:
set in 15 Trident 3 HWSKU files;
0
- mmu_lossless_pbmp
- Type:
- number
Select ports to apply MMU lossless configuration (valid only if mmu_lossless=1). This property is only required for specific chips that have limited MMU lossless ports, such as BCM5354x,BCM5667X. For example, enable MMU lossless mode on port 4~7. mmu_lossless=1 mmu_lossless_pbmp=0xf0
- mmu_mem_size
- Type:
- string
- mmu_num_dmvoq_queues
- Type:
- number
MMU configuration of number of dmvoq queues
- mmu_overcommit
- Type:
- number
Non-stack port overcommit factor for dynamic pool
- mmu_overcommit_stack
- Type:
- number
Stack port overcommit factor for dynamic pool
- mmu_port_num_mc_queue
- Type:
- number
Number of unicast and multicast queues per port mmu_port_num_mc_queue = 0 (12 unicast, 0 multicast) mmu_port_num_mc_queue = 1 (10 unicast, 2 multicast) mmu_port_num_mc_queue = 2 (8 unicast, 4 multicast) mmu_port_num_mc_queue = 3 (6 unicast, 6 multicast)
- mmu_queue_flush_timeout
- Type:
- number
Timeout delay in microseconds for queue flush complete
- mmu_red_drop_percent
- Type:
- number
Percentage of per-port/per-cos packets used before red packets will be dropped
- mmu_reset_bytes
- Type:
- number
(1536 * 2) offset from dynamic cell set limits for reset (enable) limits. Rounded up from bytes to next cell size.
- mmu_static_bytes
- Type:
- number
Per-port/per-cos static reserved limit. Rounded up from bytes to next cell size. Remaining cells are put in dynamic pool. If 0, then mmu_static_percent is used.
- mmu_static_percent
- Type:
- number
Percentage of per-port/per-cos cells to use as static reserved limit. Remaining cells are put in dynamic pool. Only used if mmu_static_bytes is 0.
- mmu_yellow_drop_percent
- Type:
- number
Percentage of per-port/per-cos packets used before yellow packets will be dropped
- num_queues
- Type:
- number
In 5644x, 48 queues will be shared across host CPU and other micro controllers, this variable can be configured suffix with _pci _uc0 etc..
- num_queues_pci
- Type:
- number
- Default:
0
Number of CPU (CMIC) queues served by the PCIe host.
- SONiC:
set in 1 Trident 3 HWSKU file;
46
- num_queues_uc0
- Type:
- number
- Default:
0
Number of CPU queues served by embedded microcontroller 0.
- SONiC:
set in 1 Trident 3 HWSKU file;
1
- num_queues_uc1
- Type:
- number
- Default:
0
Number of CPU queues served by embedded microcontroller 1.
- SONiC:
set in 1 Trident 3 HWSKU file;
1
- oob_pstats_hw_cor_en
- Type:
- number
- Default:
1
- pfc_deadlock_seq_control
- Type:
- number
- Default:
0
Order of PFC deadlock handling: 0 calls the user callback after setting PFC XOFF, 1 before.
- SONiC:
set in 8 Trident 3 HWSKU files;
1
- port_uc_mc_accounting_combine
- Type:
- number
- Default:
0
0: Separate port use-count, port limit and port resume for UC and MC. 1: Combined port use-count, port limit and port resume for UC and MC.
- Type:
- number
- Default:
1
0 - profile priority group with 1 shared profile and 8 headroom profiles, 1 - profile priority group with 8 shared profiles and 1 headroom profile
- pstats_desc_all
- Type:
- number
- Default:
1
- pstats_mor_disable
- Type:
- number
- qos_default_map
- Type:
- number
This configuration property is used to enable/disable default QoS mapping loading when creating a QoS map. Note: qos_default_map = 0 (default): disable loading default Qos mapping. qos_default_map = 1: enable loading default Qos mapping.
- qos_map_dot1p_nonsharable_mode
- Type:
- number
- qos_map_dscp_nonsharable_mode
- Type:
- number
Select DSCP map profile sharable mode. 0 - DSCP map profile shares among some map IDs (Default option). 1 - Each QoS map ID holds an exclusive DSCP map profile.
- qos_map_egr_dscp_nonsharable_mode
- Type:
- number
Select whether the QoS egress DSCP table entries are non-sharable. 0 - The entries within the table are sharable between QoS maps (Default option). 1 - The entries within the table are non-sharable. Each QoS map has an exclusive set for itself.
- qos_map_multi_get_mode
- Type:
- number
Select the output mode of API bcm_qos_map_multi_get. 0 - Get all HW QoS map entries regardless of valid or not (default). 1 - Get configurable QoS map entries.
- service_queue_dynamic_config
- Type:
- number
TRUE => Support a. Changing service queue configuration with traffic. b. Allows multiple SERVICE_QUEUE_MAP table entries can share same egress Service Queue Group. FALSE => Default Setting Note: Hw limites number of port profile indexes to be 8. i.e. Max 8 unique combination of PORT_OFFSETS can be mapped. However, due to software use of memory profile indexing, one of these profile is used as a work entry. Thus we are limite to maximum of 7 unique port profiles.