Forwarding tables and routing

Sizes of the shared hash and TCAM tables (L2, host, exact match, ALPM/LPM), ECMP, VXLAN/RIOT overlay resources, hashing and learning. See Forwarding table sizes.

Set in several SONiC Trident 3 HWSKU files: arl_clean_timeout_usec, bcm_tunnel_term_compatible_mode, flow_init_mode, fpem_mem_entries, host_as_route_disable, ipv6_lpm_128b_enable, l2_entry_used_as_my_station, l2_mem_entries, l2xmsg_hostbuf_size, l2xmsg_mode, l3_alpm_enable, l3_alpm_ipv6_128b_bkt_rsvd, l3_ecmp_levels, l3_max_ecmp_mode, l3_mem_entries, lpm_scaling_enable, max_vp_lags, mpls_mem_entries, multicast_l2_range, multicast_l3_range, riot_enable, riot_overlay_ecmp_resilient_hash_size, riot_overlay_l3_egress_mem_size, riot_overlay_l3_intf_mem_size, use_all_splithorizon_groups, vlan_xlate_1_mem_entries, vlan_xlate_2_mem_entries.

alpm_data_autosave
Type:
number

Enable ALPM data autosave after first ALPM error ocurrs. The default file to save is: alpm_data.bin User can use shell command <alpm data restore> to restore ALPM HW data & SW trie.

alpm_dist_hit_interval_us
Type:
number
alpm_dist_hit_priority
Type:
number
alpm_flex_stat_support
Type:
number
Default:
0

Enable flex counter support for ALPM.

alpm_pre_filter
Type:
number

Enable ALPM pre-filter feature.

alpm_resource_log_enable
Type:
number
alpm_trace_enable
Type:
number
alpm_trace_sanity
Type:
number
alpm_trace_wrap
Type:
number
arl_clean_timeout_usec
Type:
number
Default:
15000000

Timeout for hardware-accelerated ARL delete operations including: delete by port, delete by port+modid, delete by VLAN, delete by trunk.

SONiC:

set in 9 Trident 3 HWSKU files; 15000000

arl_rate_limit
Type:
number
Default:
3000

Limit the number of ARL messages/sec the software will process, to keep it from hogging the CPU. Set to 0 to disable. Does not apply to L2X shadow table (see l2xmsg_thread_usec instead).

arl_resync_delay
Type:
number
Default:
3000000

Delay this long after an ARL message overrun before a lengthy ARL- resync process. Setting to 0 to disables resync, in peril of getting an inconsistent ARL message stream and/or corrupt L2 shadow table.

bcm_tunnel_term_compatible_mode
Type:
number
Default:
1

Terminate tunnels without matching the inner protocol (protocol mask 0), in the way all devices support. The SAI sets it to 1 if the file does not.

SONiC:

set in 33 Trident 3 HWSKU files; 1

On Seastone2:

bcm_tunnel_term_compatible_mode=1

bcm_use_gport
Type:
number

All API will return port numbers in GPORT encodings

defip_wide_key_for_ipmc_disable
Type:
number
Default:
0

Disable using single wide key for IPMC in DEFIP table. 0 – Enable using single wide key for IPMC in DEFIP table (default). 1 – Disable using single wide key for IPMC in DEFIP table.

dlb_enable
Type:
number
Default:
1

Enable/Disable the DLB feature. By default, we enable DLB. For disable, dlb_en = 0 For enable, dlb_en = 1

dlb_flow_monitor_en
Type:
number

Turn on/off DLB flow monitoring. When set to a non-zero value, DLB flow monitoring feature is enabled. DLB id of 0 is not available when DLB monitoring is enabled. Currently supported on BCM5698x only. Valid values are: 0 (disabled) or non-zero (enabled). Default value is 0 (disabled)

dlb_hgt_lag_selection
Type:
number
Default:
0

Select either trunk or higig trunk that supports DLB 0: higig trunk 1: trunk

dlb_quality_adjustment_default_value_select
Type:
number
Default:
0
dual_hash_recurse_depth_<table>
Type:
number

Maximum recursion depth when moving entries to make room in a dual-hash table. The multi-bank tables of Trident 3 use multi_hash_recurse_depth instead.

Names:

dual_hash_recurse_depth, dual_hash_recurse_depth_dnat_pool, dual_hash_recurse_depth_egr_vp_vlan_member, dual_hash_recurse_depth_egress_vlan, dual_hash_recurse_depth_ing_vp_vlan_member, dual_hash_recurse_depth_l2x, dual_hash_recurse_depth_l3x, dual_hash_recurse_depth_mpls, dual_hash_recurse_depth_vlan

ecmp_dlb_port_speeds
Type:
number
Default:
0
ecmp_resilient_hash_size
Type:
number

The number of entries in the resilient hash table used by ECMP. The remaining entries are used by LAG resilient hashing. By default, the table is split evenly between ECMP and LAG resilient hashing. Valid values are 0, 32768, and 65536.

egr_vlan_xlate_1_mem_entries
Type:
number
Default:
16384

Number of EGR_VLAN_XLATE_1 mem entries.

egr_vlan_xlate_2_mem_entries
Type:
number
Default:
16384

Number of EGR_VLAN_XLATE_2 mem entries.

egr_vlan_xlate_mem_banks
Type:
number

Number of minimum egress VLAN xlate mem banks. Applicable for devices supporting ISM.

egr_vlan_xlate_mem_entries
Type:
number

Number of widest egress VLAN xlate mem entries.

epc_sobmh_block
Type:
number
flow_init_mode
Type:
number
Default:
0

Which VXLAN implementation the SDK starts: 0 the legacy VXLAN module, 1 the flex-flow module. SONiC VXLAN files set 1, together with riot_enable and sai_tunnel_support.

SONiC:

set in 27 Trident 3 HWSKU files; 1

On Seastone2:

flow_init_mode=1

fpem_mem_entries
Type:
number
Default:
0

Number of exact-match (FPEM) entries, used by the flow tracker and exact-match ACL. Allocated in shared UFT banks of 16384; one bank is always rounded up to two.

SONiC:

set in 23 Trident 3 HWSKU files; 0, 16384, 32768

gport_rsv_mask
Type:
number

Set the Receive Status Vector (RSV) mask for the Unimac

Forms:

gport_rsv_mask_<port>, gport_rsv_mask_<type>, gport_rsv_mask

host_as_route_disable
Type:
number
Default:
0

1 stops host entries from going into the route table when the host table is full or a hash bucket collides; 0 (the default) allows it.

SONiC:

set in 21 Trident 3 HWSKU files; 1

ip6_vxlan_mshg_enable
Type:
number
Default:
0

Enable/Disable egress multiple split horizon group check enhancement for IPv6 VxLAN. ip6_vxlan_mshg_enable = 0 disable ipv6 vxlan egress MSHG check enhancement. ip6_vxlan_mshg_enable = 1 enable ipv6 vxlan egress MSHG check enhancement.

ipmc_age_mode
Type:
number
Default:
0

IPMC aging mode. 0: (default): Application management mode. IPMC aging process triggered by applications and bcm_ipmc_age can be used to clear hit or delete entries. 1: SDK management mode. IPMC aging triggered by SDK and bcm_ipmc_age_timer_set can be used to set the interval of aging thread.

ipmc_do_vlan
Type:
number
Default:
1

Include the VLAN as part of the hash key for L3 IPMC

ipmc_independent_mode
Type:
number

Enable IPMC independent mode.

ipmc_l2_use_vlan_vpn
Type:
number
Default:
0

Enable broadcast domain (VLAN/VPN) hash keys lookup for L2 IPMC In absence of this config the device loopkup IPMC multicast table based on L3 ingress interface.

ipv6_lpm_128b_enable
Type:
number
Default:
1

Enable IPv6 routes longer than /64 in the LPM table. Every SONiC Trident 3 file sets it to 1; the number of entries reserved is set with num_ipv6_lpm_128b_entries.

SONiC:

set in 45 Trident 3 HWSKU files; 0x1, 1, 0

On Seastone2:

ipv6_lpm_128b_enable=0x1

l2_age_mode
Type:
number
l2_entry_used_as_my_station
Type:
number
Default:
0

If set, enable L2_ENTRY and L2_USER_ENTRY my station hit.

SONiC:

set in 6 Trident 3 HWSKU files; 1

l2_hitbit_enable
Type:
number
Default:
1
l2_mem_banks
Type:
number

Number of minimum l2 mem banks. Applicable for devices supporting ISM.

l2_mem_entries
Type:
number
Default:
32768

Number of L2 (MAC) table entries. Trident 3 has 32768 dedicated entries; each further 32768 takes one shared UFT bank (at most 8 shared banks for L2, host and exact match together, 4 with ALPM). See Forwarding table sizes.

SONiC:

set in 46 Trident 3 HWSKU files; 32768, 40960, 65536

On Seastone2:

l2_mem_entries=32768

l2_overflow_event
Type:
number

Enable L2 overflow event processing by default

l2_sw_aging_interval
Type:
number

L2 s/w aging cycle recurrence interval in seconds

l2age_thread_pri
Type:
number

Priority of the s/w based L2 aging thread

l2delete_chunks
Type:
number

L2 table is DMAed into memory to search for entries to delete when no hardware assists are available. DMA is done in smaller parts to minimize memory use. Must be port of 2.

SONiC:

set in 1 Trident 3 HWSKU file; 4096

l2fifo_dma_max_error_count
Type:
number

L2FIFO DMA max error count

l2mod_dma_intr_enable
Type:
number
Default:
1
l2x_bulk_delete_min_poll_num
Type:
number
Default:
0

This soc property is used to provide the minimum polling number for which the SOC timeout routine should iterate before which l2 bulk delete operation is expected to be completed. This can be used in tandem with timeout duration in microseconds for L2 bulk operations. The default timeout duration for l2 bulk operations is 15 sec and a custom value in usec can also be specified using the existing config property “arl_clean_timeout_usec”.

l2x_bulk_op_learn_pause
Type:
number
Default:
0

This soc property is applicable in L2 FIFO mode (l2xmsg_mode = 1), it is used to pause L2 learning during L2 bulk operations having record to L2 FIFO enabled. This soc property can be used in cases where there is very high L2 churn, which may cause contention for L2 FIFO table during L2 bulk operation, causing L2 bulk operation to timeout.

l2xlrn_clear_on_read
Type:
number

When enabled, entries are removed from learn cache immediately following a read operation. Valid values: 0 (disable) or 1 (enable)

l2xmsg_avl
Type:
number

Enable L2X shadowing into AVL tree.

l2xmsg_chunks
Type:
number

Synchronize the L2X table in chunks to spread out the work over time and save memory on size of DMA buffer. Must be power of 2.

l2xmsg_hostbuf_size
Type:
number

Size of the host buffer used to drain the L2 modification FIFO when l2xmsg_mode is 1.

SONiC:

set in 14 Trident 3 HWSKU files; 8192, 16384

l2xmsg_mode
Type:
number

How the SDK learns about L2 table changes (learning, aging): 0 polls the L2 table by DMA and compares it with a software copy, 1 reads the hardware L2 modification FIFO. SONiC files use 1.

SONiC:

set in 46 Trident 3 HWSKU files; 1, 0

On Seastone2:

l2xmsg_mode=1

l2xmsg_shadow_hit_<bits|src|dst>
Type:
number

Whether the software L2 shadow table tracks hardware hit bits (source, destination) when l2xmsg_mode is 1.

Names:

l2xmsg_shadow_hit_bits, l2xmsg_shadow_hit_dst, l2xmsg_shadow_hit_src

l2xmsg_thread_pri
Type:
number
Default:
50

Priority of the _soc_l2x_thread, that is used to synchronize shadow copy of the L2 entry with the HW table

l2xmsg_thread_usec
Type:
number

Period between synchronizations of the software L2X shadow table with the hardware (5690 only). The thread actually runs every l2xmsg_thread_usec/l2xmsg_chunks microseconds.

l3_alpm2
Type:
number
Default:
1
l3_alpm2_bnk_threshold
Type:
number

ALPM Level3 bank usage threshold when bucket defragmentation or expansion is required during insert. Return FULL if exceeds this threshold. Default value is 95 percent.

l3_alpm2_bulk_wr_threshold
Type:
number
l3_alpm2_dbg_bmp
Type:
number
l3_alpm2_dbg_info_bmp
Type:
number
l3_alpm2_default_route_data_mode
Type:
number
Default:
1

How ALPM stores the default route’s data; read by the SAI to decide default-route handling.

l3_alpm2_defrag_max_l2cnt
Type:
number
l3_alpm2_defrag_max_l3cnt
Type:
number
l3_alpm2_defrag_max_time_ms
Type:
number
l3_alpm2_defrag_on_full
Type:
number
l3_alpm2_level
Type:
number
Default:
3
l3_alpm2_spl_dw
Type:
number
l3_alpm2_spl_hw
Type:
number
l3_alpm2_spl_sw
Type:
number
l3_alpm_cache_enable
Type:
number
Default:
0
l3_alpm_enable
Type:
number
Default:
0

Route prefixes in ALPM (algorithmic LPM) instead of the TCAM alone: 0 off, 1 parallel mode, 2 combined mode. ALPM takes four shared UFT banks, leaving four for l2_mem_entries, l3_mem_entries and fpem_mem_entries.

SONiC:

set in 37 Trident 3 HWSKU files; 2, 0

l3_alpm_hit_skip
Type:
number

This soc property is used to skip hit bits maintenance in ALPM mode. 1: Do not maintain the HIT bits to achieve performance gain.

SONiC:

set in 2 Trident 3 HWSKU files; 1

l3_alpm_ipv6_128b_bkt_rsvd
Type:
number

If ipv6_lpm_128b_enable is enabled, set to 1 to reserve equal percentage(TCAM[v4]:TCAM[v6]) of ALPM buckets for IPv6.

SONiC:

set in 18 Trident 3 HWSKU files; 1

l3_alpm_ipv6_bkt_rsvd_percent
Type:
number
l3_alpm_sw_prefix_lookup
Type:
number
l3_alpm_template
Type:
number
Default:
1
l3_defip_sizing
Type:
number
l3_disable_add_to_arl
Type:
number
Default:
0

Disable and restrict user to create l2 entry as part of l3 interface create

l3_ecmp_group_first_lkup_mem_size
Type:
number
Default:
0

Configures size of L3 ECMP_GROUP memory in fist lookup. It is used to decide the size of L3_ECMP_GROUP memories that are available for first ECMP lookup. Internally, the size rounds up to multiple of 512.

l3_ecmp_levels
Type:
number
Default:
1

Number of ECMP levels: 1 or 2. Two-level (hierarchical) ECMP is needed for VXLAN overlay ECMP over underlay ECMP and splits the ECMP tables between the levels.

SONiC:

set in 23 Trident 3 HWSKU files; 2, 3

On Seastone2:

l3_ecmp_levels=2

l3_ecmp_max_group_size
Type:
number
Default:
0
l3_ecmp_member_first_lkup_mem_size
Type:
number
Default:
0

Configures size of L3 ECMP memory in first lookup. It is used to decide the size of L3_ECMP memories that are available for first ECMP lookup. Internally, the size rounds up to multiple of 4096 in BCM5687x class of devices and 1024 in BCM5637x/BCM5657x. On BCM5687x this value defaults to half the ECMP member table size. On BCM5637x/BCM5657x, since only 3 out of 4 banks can be used when ECMP works in 2 levels, this defaults to size of one bank (1024).

l3_ecmp_member_secondary_mem_size
Type:
number
Default:
0
l3_enable
Type:
number
Default:
1

L3 switching enable

l3_intf_vlan_split_egress
Type:
number
Default:
1

Allow L3 interfaces on the same VLAN to have different egress properties (MTU, MAC). The SAI always sets it to 1 after reading the file.

On Seastone2:

l3_intf_vlan_split_egress=1

l3_max_ecmp_mode
Type:
number

Select the ECMP scaling mode, which trades the number of ECMP groups against their size. Set to 1 in most SONiC Trident 3 files.

SONiC:

set in 41 Trident 3 HWSKU files; 1

On Seastone2:

l3_max_ecmp_mode=1

l3_mem_banks
Type:
number

Number of minimum l3 mem banks. Applicable for devices supporting ISM.

l3_mem_entries
Type:
number
Default:
16384

Number of L3 host (exact /32 and /128) table entries. 16384 are dedicated; each further 32768 takes one shared UFT bank.

SONiC:

set in 46 Trident 3 HWSKU files; 16384, 40960, 32768

On Seastone2:

l3_mem_entries=16384

l3_reduced_route_max_ecmp_group_index
Type:
number
Default:
0
l3_srv6_enable
Type:
number
Default:
0

Enable SRv6 function

l3_traverse_use_special_intf
Type:
number
lls_num_l2uc
Type:
number

The default number of unicast queues at L2 for LLS setup.

Forms:

lls_num_l2uc_<port>, lls_num_l2uc_<type>, lls_num_l2uc

lpm_ipv6_128b_reserved
Type:
number
Default:
1

1: num_ipv6_lpm_128b_entries number of entries are reserved exclusively for 128B V6 LPM entries 0: Do not reserve any entries for 128B V6 entries and use the whole of paired TCAMs for either 128B V6, 64B V6, V4 entries. Ignored if lpm_scaling_enable is 0.

lpm_layout
Type:
number

LPM could support LPM free space layout for different prefixes. Specifies the IP version, VRF type, prefix length and prefix count. via string lpm_layout_prefix<# of idx 0-64>=<IP ver>:<VRF type>:<prefix length>:<prefix count>. i.e. lpm_layout_prefix<1-64> = <4/6>:<0/1/2>:<0~32/0~64/>:<number> IP version: IPv4 or IPv6 VRF type: 0 for specific VRF, 1 for BCM_L3_VRF_OVERRIDE, 2 for BCM_L3_VRF_GLOBAL Prefix length: for IPv4, its range is 0~32, for IPv6, its range is 0~64 Prefix count: total route number should not greater than L3_DEFIP memory capacity This property does not support for Warmboot.

Forms:

lpm_layout_prefix<N>

lpm_layout_prefix_enable
Type:
number
Default:
0

1: Allow defining LPM prefix layout in unpaired TCAM during initialization stage. 0: Do not defining LPM prefix layout in unpaired TCAM during initialization stage.

lpm_mem_size
Type:
number

Configures size of lpm memory for UTT devices Default size is chip specific.

lpm_scaling_enable
Type:
number
Default:
0

1 allows 64-bit IPv6 LPM entries in the unreserved paired TCAM, 0 does not. The Celestica Seastone2 files set 1; the Dell S5232F files set 0 and use ALPM instead.

SONiC:

set in 29 Trident 3 HWSKU files; 0, 1

On Seastone2:

lpm_scaling_enable=1

macro_flow_hash_shuffle_random_seed
Type:
number
Default:
0

Random seed for flow based RTAG7 hash shuffling. 0 :(default) Use the random seed generated from timestamp. Non Zero: Configure the given non zero value as random seed.

max_vp_lags
Type:
number
Default:
0

Number of virtual-port LAGs to reserve; the default is the device maximum. SONiC files set 0.

SONiC:

set in 39 Trident 3 HWSKU files; 0, 256

On Seastone2:

max_vp_lags=0

mim_decoupled_mode
Type:
number

In the decoupled mode, VFI and Source VP(SVP) can be derived seperately and VLAN can be assigned per VFI. mim_decoupled_mode = 0 Disable the MIM(Mac-In-Mac) decoupled mode. Default MIM operation mode applies. mim_decoupled_mode = 1 Enable the MIM(Mac-In-Mac) decoupled mode on applicable devices.

module_num_modids
Type:
number
Default:
1

Configure the number of module id used by the device

mpls_label_per_port_delete_all_enable
Type:
number

Enable removing all MPLS labels on a per port basis for BCM5687x, BCM5677x, BCM5637x and BCM5647x series of devices. With this enabled, traditional adaptation lookup will not happen on individual ports that opt to use this feature by using port control API. This is applicable for both L3MPLS and L2MPLS packets based on values selected Valid values: 0,1 and 3. 0 -> This is the default value and device behaves in the existing way where MPLS tunnel termination is based on results from adaption lookup. 1 -> This enables per port MPLS termination for ONLY L2MPLS applications like VPLS/VPWS. 2 -> Reserved. 3 -> Enables per port MPLS termination for BOTH L2MPLS and L3MPLS applications.

mpls_mem_banks
Type:
number

Number of minimum MPLS mem banks. Applicable for devices supporting ISM.

mpls_mem_entries
Type:
number
Default:
32768

Number of widest MPLS mem entries.

SONiC:

set in 6 Trident 3 HWSKU files; 16384, 2048

mpls_port_qos_mapping_copy_skip
Type:
number
mpls_switch_ipv4_ipv6_independent_control
Type:
number

0=disable 1=enable. By default, IPv4 and IPv6 packets are enabled for MPLS tunnels. This config variable provides option to override the default values.

mps_label_stack_sharing
Type:
number
multi_hash_move_algorithm
Type:
number
multi_hash_recurse_depth
Type:
number

Default maximum number of entry moves when inserting into a full multi-bank hash table, for all tables without a table-specific multi_hash_recurse_depth_<table>.

multi_hash_recurse_depth_<table>
Type:
number

Maximum number of entry moves (cuckoo-style re-insertion) the SDK tries when a multi-bank hash table bucket is full, for one table. Higher values fill the table more densely at the cost of insert time. Overrides multi_hash_recurse_depth.

Names:

multi_hash_recurse_depth_egress_vlan, multi_hash_recurse_depth_egress_vlan_1, multi_hash_recurse_depth_egress_vlan_2, multi_hash_recurse_depth_exact_match, multi_hash_recurse_depth_l2, multi_hash_recurse_depth_l3, multi_hash_recurse_depth_mpls, multi_hash_recurse_depth_vlan, multi_hash_recurse_depth_vlan_1, multi_hash_recurse_depth_vlan_2

SONiC:

set in 6 Trident 3 HWSKU files

multi_network_groups
Type:
number
Default:
0
multicast_l2_range
Type:
number

In BCM568xx and BCM567xx devices, some L2 and L3 multicast information is stored in a shared resource. This value describes the number of resource entries devoted to L2 multicast.

SONiC:

set in 9 Trident 3 HWSKU files; 16383, 4095

multicast_l3_range
Type:
number

In BCM568xx and BCM567xx devices, some L2 and L3 multicast information is stored in a shared resource. This value describes the number of resource entries devoted to IP multicast.

SONiC:

set in 9 Trident 3 HWSKU files; 0

multicast_per_trunk_replication
Type:
number

Per trunk multicast replication mode

my_station_forward_domain_type_decoupled
Type:
number

Whether bcm_l2_station_t.forward_domain_type is explicitly managed by users or not. 0: forward_domain_type setting is coupled with forward domain (VFI or VLAN) and thus managed implicitly. 1: forward_domain_type setting is decoupled from forward domain (VFI or VLAN) and needs to set explicitly. By default 0 is selected, thus providing backward compatibility. However value of 1 is suggested.

num_ipv6_lpm_128b_entries
Type:
number

Number of LPM entries reserved for IPv6 prefixes longer than /64 when ipv6_lpm_128b_enable is 1. They are taken from the IPv4 and short IPv6 space.

preserve_otag_after_routing
Type:
number
protocol_vlan_coupled_mode
Type:
number
Default:
0

To set the couple mode in bcm_port_untagged_vlan_set. mode = 0 is legacy couple mode. Port-based VLAN and protocol-based VLAN can be used at the same time and work right. But port-based vlan supports at max 127 ports with different default vlan. mode = 1 is decouple mode, it supports all ports(>128) based default vlan. But protocol-based vlan is suggested to abandon or use VFP instead.

remote_mod_map_mode
Type:
number
Default:
0

Select MOD map mode of remote unit from global MODID to local MODID or vice versa. 0 - Convert remote (MODID, port) based on dual MOD config of local unit; 1 - Do not convert remote (MODID, port) based on dual MOD config of local unit. Instead, applications need to register a callback to convert remote (MODID, port).

replication_eligible_pbmp
Type:
number

A bitmap of ports eligible for packet replication. The default value is a bitmap of valid ports. This configuration property is applicable to devices on which the hardware resource for packet replication needs to be statically allocated to replication groups during initialization. On such devices, decreasing the number of ports eligible for replication would increase the number of replication groups supported.

reserve_multicast_resources
Type:
number

1: Some of last entries of MMU_REPL_HEAD_TBL are reserved. The number of reserved entries equals to the number of ports in the valid PBMP. When there are not enough entries during deleting a port from a replication group, the reserved entries will be used as a swap space to configure the replication info of the group. After the port is deleted, there will be enough entries to configure the replication info of the group. Then, the reserved entires will be in free status again. 0: The entires are not reserved.

reserve_nh_for_ecmp
Type:
number
Default:
0

This soc property is used to enable/disable the reservation of NextHop tables. The number of entries it reserves is equal to the number of ECMP Groups. NOTES: 1. It is a WAR for H/W limitation. 2. When it is enabled, Black Hole(0) and L2CPU(1) entries will also be moved after reserved entries. 3. Interaction with spn_RIOT_OVERLAY_L3_EGRESS_MEM_ALLOC_MODE and spn_RIOT_OVERLAY_L3_EGRESS_MEM_SIZE: No matter spn_RIOT_OVERLAY_L3_EGRESS_MEM_ALLOC_MODE is enabled or disabled, spn_RIOT_OVERLAY_L3_EGRESS_MEM_SIZE which define the size of overlay can be ensured. Only underlay entries (equal the number of ECMP Groups) will be wasted. spn_RIOT_OVERLAY_L3_EGRESS_MEM_SIZE should be less than the actual size after reservation. 4. On BCM56960, when it is enabled, no need to call bcm_l3_egress_create with BCM_L3_FLAGS2_NO_ECMP_OVERLAP flag.

riot_enable
Type:
number
Default:
0

Enable routing in and out of tunnels (RIOT), needed for routed VXLAN (EVPN symmetric IRB).

SONiC:

set in 31 Trident 3 HWSKU files; 1, 0

On Seastone2:

riot_enable=1

riot_overlay_ecmp_resilient_hash_size
Type:
number
Default:
0

Resilient-hash flow-set entries reserved for overlay ECMP when riot_enable is 1. SONiC VXLAN files use 16384.

SONiC:

set in 30 Trident 3 HWSKU files; 16384

On Seastone2:

riot_overlay_ecmp_resilient_hash_size=16384

riot_overlay_l3_egress_mem_alloc_mode
Type:
number
Default:
0

Configure allocation mode of overlay egress object. Valid values: 0 = allocate from low portion, hard partition for overlay/underlay memory spaces(default, bit0 = 0, bit1 = 0) 1, 3 = allocate from high portion (bit0 = 1) 2, 3 = soft partition, adjust overlay/underlay partition on demand(bit1 = 1)

riot_overlay_l3_egress_mem_size
Type:
number
Default:
0

Number of next hops (egress objects) reserved for the overlay when riot_enable is 1. SONiC VXLAN files use 32768.

SONiC:

set in 30 Trident 3 HWSKU files; 32768, 8192

On Seastone2:

riot_overlay_l3_egress_mem_size=32768

riot_overlay_l3_intf_mem_alloc_mode
Type:
number
Default:
0

Configure allocation mode of overlay egress L3 interface. Valid values: 0 = allocate from low portion, hard partition for overlay/underlay memory spaces(default, bit0 = 0, bit1 = 0) 1, 3 = allocate from high portion (bit0 = 1) 2, 3 = soft partition, adjust overlay/underlay partition on demand(bit1 = 1)

riot_overlay_l3_intf_mem_size
Type:
number
Default:
0

Number of L3 interfaces reserved for the overlay (VXLAN) when riot_enable is 1. SONiC VXLAN files use 8192.

SONiC:

set in 30 Trident 3 HWSKU files; 8192, 4096

On Seastone2:

riot_overlay_l3_intf_mem_size=8192

robust_hash_disable_<table>
Type:
number

Disable robust hashing (the per-table random remapping of hash keys that spreads entries evenly) for one hash table. Default 0: robust hashing on.

Names:

robust_hash_disable_egr_vp_vlan, robust_hash_disable_egress_vlan, robust_hash_disable_egress_vlan1, robust_hash_disable_egress_vlan2, robust_hash_disable_exact_match, robust_hash_disable_ing_dnat_address, robust_hash_disable_ing_vp_vlan, robust_hash_disable_l2, robust_hash_disable_l3, robust_hash_disable_mpls, robust_hash_disable_subport_id_sgpp_map, robust_hash_disable_vlan, robust_hash_disable_vlan1, robust_hash_disable_vlan2

SONiC:

set in 27 Trident 3 HWSKU files

robust_hash_seed_<table>
Type:
number

Seed of the robust-hash remapping for one hash table. Changing it changes where entries land, not the table size.

Names:

robust_hash_seed_egress_vlan, robust_hash_seed_egress_vlan_1, robust_hash_seed_egress_vlan_2, robust_hash_seed_egress_vp_vlan, robust_hash_seed_exact_match, robust_hash_seed_ing_dnat_address, robust_hash_seed_ingress_vp_vlan, robust_hash_seed_l2, robust_hash_seed_l3, robust_hash_seed_mpls, robust_hash_seed_subport_id_to_sgpp_map, robust_hash_seed_vlan, robust_hash_seed_vlan_1, robust_hash_seed_vlan_2

run_l2_sw_aging
Type:
number

Run s/w based L2 aging thread by default

station_mac_address
Type:
string

Station MAC address used for management through the switch ports itself. If using the CPU network interface, the NVRAM setting is used for MAC address assignment.

switch_bypass_mode
Type:
number

On BCM5682x, BCM5672x and BCM56960 devices, some of the switching logic may be skipped to decrease traffic latency. On BCM5682x and BCM5672x, the three modes available are: 0 - normal operation 1 - Skip L3 switch logic 2 - Skip L3 and FP switch logic On BCM56960, the switch latency bypass modes availabe are: 0 - normal operation 1 - balanced latency L2 + L3 2 - low latency L2 3 - EFP Bypass

tr144_long_sleep_time_us
Type:
number
trunk_extend
Type:
number
Default:
1

EXTEND maximum number of front panel trunk groups from 32 to 128

trunk_resilient_hash_table_size
Type:
number
Default:
32768

Specifices the number of entries to be reserved in flowset table for resilient hashing load balancing mode front panel trunk groups. The remaining entries in this table are used by resilient hashing load balancing mode HiGig trunk groups.If this property is not configured, then the table entries are split evenly between resilient hashing load balancing mode front panel trunk groups and HiGig trunk groups. Valid values for this property are: 0, 32K, 64K. Default: 32K.

use_all_splithorizon_groups
Type:
number
Default:
0

Make all split-horizon groups available instead of reserving groups 0 and 1 for access and network ports of L2 tunnels. Set in SONiC VXLAN files.

SONiC:

set in 29 Trident 3 HWSKU files; 1

On Seastone2:

use_all_splithorizon_groups=1

vlan_action_dummy_vp_reserved
Type:
number

This soc property indicates if the dummy VP for VLAN_XLATE action feature is enabled. Value 1 means enable mode, 0 means disable mode. Default value is 0

vlan_auto_stack
Type:
number
Default:
0

This soc property is used to turn on/off vlan auto stack. Note: It will override the preprocessor macro BCM_VLAN_NO_AUTO_STACK. vlan_auto_stack = 1: turn on vlan auto stack. vlan_auto_stack = 2: turn off vlan atuo stack. vlan_auto_stack = 0: the soc property does not take effect.

vlan_mac_add_xlate_table_select
Type:
number

Select VLAN_XLATE table to use for VLAN assignment based on incoming MAC address. Valid values are 0 and 1. The default value is 0. 0: Use VLAN_XLATE_2_DOUBLE to program MAC based VLAN translations (Default behavior) 1: Use VLAN_XLATE_1_DOUBLE to program MAC based VLAN translations. The APIs impacted are: bcm_vlan_mac_add, bcm_esw_vlan_mac_delete, bcm_esw_vlan_mac_delete_all, bcm_esw_vlan_mac_get and bcm_esw_vlan_mac_action_traverse.

vlan_tag_ctrl_on_egress
Type:
number

The config property is used to select packet,s egress tag behavior on the device. User can select “egress vlan translate based tag action” or “hash based egress VP vlan membership” on the devices that support both methods. The valid values are 0 and 1. 0: hash based egress VP vlan membership is used for egress tag 1: egress vlan translate based tag action is used for egress tag default: 0

vlan_xlate_1_mem_entries
Type:
number
Default:
32768

Number of VLAN_XLATE_1 mem entries.

SONiC:

set in 6 Trident 3 HWSKU files; 65536, 16384

vlan_xlate_2_mem_entries
Type:
number
Default:
32768

Number of VLAN_XLATE_2 mem entries.

SONiC:

set in 6 Trident 3 HWSKU files; 16384, 2048

vlan_xlate_mem_banks
Type:
number

Number of minimum VLAN xlate mem banks. Applicable for devices supporting ISM.

vlan_xlate_mem_entries
Type:
number

Number of widest VLAN xlate mem entries.

vlandelete_chunks
Type:
number

Size of chunks to read at once while iterating over VLAN XLATE memory

vplag_vp_alloc_mode
Type:
number

This soc property is used to control vplag vp allocation Set to 0(default) to control vplag vp allocation from low end Set to 1 to control vplag vp allocation from high end.

vxlan_tunnel_init_ext_fields_update
Type:
number

Specify if tunnel related extended fields such as src_port, dscp and ttl can be updated per tunnel, in vxlan tunnel initiator create 0 – Disable updating the extended fields per tunnel. 1 – Enable updating the extended fields per tunnel.