[baseimage]: support building multi-asic component (#3856)
- move single instance services into their own folder - generate Systemd templates for any multi-instance service files in slave.mk - detect single or multi-instance platform in systemd-sonic-generator based on asic.conf platform specific file. - update container hostname after creation instead of during creation (docker_image_ctl) - run Docker containers in a network namespace if specified - add a service to create a simulated multi-ASIC topology on the virtual switch platform Signed-off-by: Lawrence Lee <t-lale@microsoft.com> Signed-off-by: Suvarna Meenakshi <Suvarna.Meenaksh@microsoft.com>
This commit is contained in:
parent
61858807ce
commit
c9483796dc
1
device/virtual/x86_64-kvm_x86_64-r0/asic.conf
Normal file
1
device/virtual/x86_64-kvm_x86_64-r0/asic.conf
Normal file
@ -0,0 +1 @@
|
||||
NUM_ASIC=1
|
@ -0,0 +1,3 @@
|
||||
{%- set default_topo = 't1' %}
|
||||
{%- include 'buffers_config.j2' %}
|
||||
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,17 @@
|
||||
# PG lossless profiles.
|
||||
# speed cable size xon xoff threshold xon_offset
|
||||
10000 5m 56368 18432 55120 -3 2496
|
||||
25000 5m 56368 18432 55120 -3 2496
|
||||
40000 5m 56368 18432 55120 -3 2496
|
||||
50000 5m 56368 18432 55120 -3 2496
|
||||
100000 5m 56368 18432 55120 -3 2496
|
||||
10000 40m 56368 18432 55120 -3 2496
|
||||
25000 40m 56368 18432 55120 -3 2496
|
||||
40000 40m 56368 18432 55120 -3 2496
|
||||
50000 40m 56368 18432 55120 -3 2496
|
||||
100000 40m 56368 18432 55120 -3 2496
|
||||
10000 300m 56368 18432 55120 -3 2496
|
||||
25000 300m 56368 18432 55120 -3 2496
|
||||
40000 300m 56368 18432 55120 -3 2496
|
||||
50000 300m 56368 18432 55120 -3 2496
|
||||
100000 300m 56368 18432 55120 -3 2496
|
@ -0,0 +1,33 @@
|
||||
# name lanes alias index speed
|
||||
Ethernet0 25,26,27,28 fortyGigE0/0 0 40000
|
||||
Ethernet4 29,30,31,32 fortyGigE0/4 1 40000
|
||||
Ethernet8 33,34,35,36 fortyGigE0/8 2 40000
|
||||
Ethernet12 37,38,39,40 fortyGigE0/12 3 40000
|
||||
Ethernet16 45,46,47,48 fortyGigE0/16 4 40000
|
||||
Ethernet20 41,42,43,44 fortyGigE0/20 5 40000
|
||||
Ethernet24 1,2,3,4 fortyGigE0/24 6 40000
|
||||
Ethernet28 5,6,7,8 fortyGigE0/28 7 40000
|
||||
Ethernet32 13,14,15,16 fortyGigE0/32 8 40000
|
||||
Ethernet36 9,10,11,12 fortyGigE0/36 9 40000
|
||||
Ethernet40 17,18,19,20 fortyGigE0/40 10 40000
|
||||
Ethernet44 21,22,23,24 fortyGigE0/44 11 40000
|
||||
Ethernet48 53,54,55,56 fortyGigE0/48 12 40000
|
||||
Ethernet52 49,50,51,52 fortyGigE0/52 13 40000
|
||||
Ethernet56 57,58,59,60 fortyGigE0/56 14 40000
|
||||
Ethernet60 61,62,63,64 fortyGigE0/60 15 40000
|
||||
Ethernet64 69,70,71,72 fortyGigE0/64 16 40000
|
||||
Ethernet68 65,66,67,68 fortyGigE0/68 17 40000
|
||||
Ethernet72 73,74,75,76 fortyGigE0/72 18 40000
|
||||
Ethernet76 77,78,79,80 fortyGigE0/76 19 40000
|
||||
Ethernet80 109,110,111,112 fortyGigE0/80 20 40000
|
||||
Ethernet84 105,106,107,108 fortyGigE0/84 21 40000
|
||||
Ethernet88 113,114,115,116 fortyGigE0/88 22 40000
|
||||
Ethernet92 117,118,119,120 fortyGigE0/92 23 40000
|
||||
Ethernet96 125,126,127,128 fortyGigE0/96 24 40000
|
||||
Ethernet100 121,122,123,124 fortyGigE0/100 25 40000
|
||||
Ethernet104 81,82,83,84 fortyGigE0/104 26 40000
|
||||
Ethernet108 85,86,87,88 fortyGigE0/108 27 40000
|
||||
Ethernet112 93,94,95,96 fortyGigE0/112 28 40000
|
||||
Ethernet116 89,90,91,92 fortyGigE0/116 29 40000
|
||||
Ethernet120 101,102,103,104 fortyGigE0/120 30 40000
|
||||
Ethernet124 97,98,99,100 fortyGigE0/124 31 40000
|
@ -0,0 +1 @@
|
||||
{%- include 'qos_config.j2' %}
|
@ -0,0 +1,2 @@
|
||||
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/td2-s6000-32x40G.config.bcm
|
||||
SAI_NUM_ECMP_MEMBERS=32
|
@ -0,0 +1,646 @@
|
||||
# Old LPM only configuration
|
||||
# l2_mem_entries=163840
|
||||
# l3_mem_entries=90112
|
||||
# l3_alpm_enable=0
|
||||
# ipv6_lpm_128b_enable=0
|
||||
#
|
||||
# ALPM enable
|
||||
l3_alpm_enable=2
|
||||
ipv6_lpm_128b_enable=1
|
||||
l2_mem_entries=32768
|
||||
l3_mem_entries=16384
|
||||
|
||||
# From old config file
|
||||
os=unix
|
||||
higig2_hdr_mode=1
|
||||
|
||||
# Parity
|
||||
parity_correction=1
|
||||
parity_enable=1
|
||||
stat_if_parity_enable=0
|
||||
|
||||
#
|
||||
bcm_num_cos=8
|
||||
bcm_stat_interval=2000000
|
||||
l2xmsg_hostbuf_size=8192
|
||||
l2xmsg_mode=1
|
||||
lls_num_l2uc=12
|
||||
max_vp_lags=0
|
||||
miim_intr_enable=0
|
||||
mmu_lossless=0
|
||||
module_64ports=0
|
||||
schan_intr_enable=0
|
||||
stable_size=0x2000000
|
||||
tdma_timeout_usec=5000000
|
||||
|
||||
pbmp_oversubscribe=0x000007fffffffffffffffffffffffffe
|
||||
pbmp_xport_xe=0x000007fffffffffffffffffffffffffe
|
||||
|
||||
# Ports configuration
|
||||
# xe0 (40G)
|
||||
portmap_1=25:40
|
||||
xgxs_rx_lane_map_1=0x213
|
||||
xgxs_tx_lane_map_1=0x2031
|
||||
phy_xaui_rx_polarity_flip_1=0xe
|
||||
phy_xaui_tx_polarity_flip_1=0x2
|
||||
serdes_driver_current_lane0_xe0=0x5
|
||||
serdes_driver_current_lane1_xe0=0x5
|
||||
serdes_driver_current_lane2_xe0=0x5
|
||||
serdes_driver_current_lane3_xe0=0x5
|
||||
serdes_pre_driver_current_lane0_xe0=0x5
|
||||
serdes_pre_driver_current_lane1_xe0=0x5
|
||||
serdes_pre_driver_current_lane2_xe0=0x5
|
||||
serdes_pre_driver_current_lane3_xe0=0x5
|
||||
serdes_preemphasis_lane0_xe0=0xcad0
|
||||
serdes_preemphasis_lane1_xe0=0xc6e0
|
||||
serdes_preemphasis_lane2_xe0=0xc6e0
|
||||
serdes_preemphasis_lane3_xe0=0xd2b0
|
||||
|
||||
# xe1 (40G)
|
||||
portmap_2=29:40
|
||||
xgxs_rx_lane_map_2=0x213
|
||||
xgxs_tx_lane_map_2=0x213
|
||||
phy_xaui_rx_polarity_flip_2=0xc
|
||||
phy_xaui_tx_polarity_flip_2=0x9
|
||||
serdes_driver_current_lane0_xe1=0x6
|
||||
serdes_driver_current_lane1_xe1=0x7
|
||||
serdes_driver_current_lane2_xe1=0x6
|
||||
serdes_driver_current_lane3_xe1=0x6
|
||||
serdes_pre_driver_current_lane0_xe1=0x6
|
||||
serdes_pre_driver_current_lane1_xe1=0x7
|
||||
serdes_pre_driver_current_lane2_xe1=0x6
|
||||
serdes_pre_driver_current_lane3_xe1=0x6
|
||||
serdes_preemphasis_lane0_xe1=0xc2f0
|
||||
serdes_preemphasis_lane1_xe1=0xd2b0
|
||||
serdes_preemphasis_lane2_xe1=0xc6e0
|
||||
serdes_preemphasis_lane3_xe1=0xc2f0
|
||||
|
||||
# xe2 (40G)
|
||||
portmap_3=33:40
|
||||
xgxs_rx_lane_map_3=0x213
|
||||
xgxs_tx_lane_map_3=0x132
|
||||
phy_xaui_rx_polarity_flip_3=0xe
|
||||
phy_xaui_tx_polarity_flip_3=0x2
|
||||
serdes_driver_current_lane0_xe2=0x4
|
||||
serdes_driver_current_lane1_xe2=0x4
|
||||
serdes_driver_current_lane2_xe2=0x4
|
||||
serdes_driver_current_lane3_xe2=0x4
|
||||
serdes_pre_driver_current_lane0_xe2=0x4
|
||||
serdes_pre_driver_current_lane1_xe2=0x4
|
||||
serdes_pre_driver_current_lane2_xe2=0x4
|
||||
serdes_pre_driver_current_lane3_xe2=0x4
|
||||
serdes_preemphasis_lane0_xe2=0xc6e0
|
||||
serdes_preemphasis_lane1_xe2=0xc6e0
|
||||
serdes_preemphasis_lane2_xe2=0xc6e0
|
||||
serdes_preemphasis_lane3_xe2=0xc6e0
|
||||
|
||||
# xe3 (40G)
|
||||
portmap_4=37:40
|
||||
xgxs_rx_lane_map_4=0x213
|
||||
xgxs_tx_lane_map_4=0x1203
|
||||
phy_xaui_rx_polarity_flip_4=0x3
|
||||
phy_xaui_tx_polarity_flip_4=0xe
|
||||
serdes_driver_current_lane0_xe3=0x4
|
||||
serdes_driver_current_lane1_xe3=0x4
|
||||
serdes_driver_current_lane2_xe3=0x4
|
||||
serdes_driver_current_lane3_xe3=0x4
|
||||
serdes_pre_driver_current_lane0_xe3=0x4
|
||||
serdes_pre_driver_current_lane1_xe3=0x4
|
||||
serdes_pre_driver_current_lane2_xe3=0x4
|
||||
serdes_pre_driver_current_lane3_xe3=0x4
|
||||
serdes_preemphasis_lane0_xe3=0xcad0
|
||||
serdes_preemphasis_lane1_xe3=0xcad0
|
||||
serdes_preemphasis_lane2_xe3=0xc2f0
|
||||
serdes_preemphasis_lane3_xe3=0xc2f0
|
||||
|
||||
# xe4 (40G)
|
||||
portmap_5=45:40
|
||||
xgxs_rx_lane_map_5=0x213
|
||||
xgxs_tx_lane_map_5=0x213
|
||||
phy_xaui_rx_polarity_flip_5=0xe
|
||||
phy_xaui_tx_polarity_flip_5=0x8
|
||||
serdes_driver_current_lane0_xe4=0x4
|
||||
serdes_driver_current_lane1_xe4=0x4
|
||||
serdes_driver_current_lane2_xe4=0x4
|
||||
serdes_driver_current_lane3_xe4=0x4
|
||||
serdes_pre_driver_current_lane0_xe4=0x4
|
||||
serdes_pre_driver_current_lane1_xe4=0x4
|
||||
serdes_pre_driver_current_lane2_xe4=0x4
|
||||
serdes_pre_driver_current_lane3_xe4=0x4
|
||||
serdes_preemphasis_lane0_xe4=0xc2f0
|
||||
serdes_preemphasis_lane1_xe4=0xc2f0
|
||||
serdes_preemphasis_lane2_xe4=0xc2f0
|
||||
serdes_preemphasis_lane3_xe4=0xc2f0
|
||||
|
||||
# xe5 (40G)
|
||||
portmap_6=41:40
|
||||
xgxs_rx_lane_map_6=0x213
|
||||
xgxs_tx_lane_map_6=0x3021
|
||||
phy_xaui_rx_polarity_flip_6=0x3
|
||||
phy_xaui_tx_polarity_flip_6=0xb
|
||||
serdes_driver_current_lane0_xe5=0x4
|
||||
serdes_driver_current_lane1_xe5=0x4
|
||||
serdes_driver_current_lane2_xe5=0x4
|
||||
serdes_driver_current_lane3_xe5=0x4
|
||||
serdes_pre_driver_current_lane0_xe5=0x4
|
||||
serdes_pre_driver_current_lane1_xe5=0x4
|
||||
serdes_pre_driver_current_lane2_xe5=0x4
|
||||
serdes_pre_driver_current_lane3_xe5=0x4
|
||||
serdes_preemphasis_lane0_xe5=0xc6e0
|
||||
serdes_preemphasis_lane1_xe5=0xc2f0
|
||||
serdes_preemphasis_lane2_xe5=0xc2f0
|
||||
serdes_preemphasis_lane3_xe5=0xcad0
|
||||
|
||||
# xe6 (40G)
|
||||
portmap_7=1:40
|
||||
xgxs_rx_lane_map_7=0x213
|
||||
xgxs_tx_lane_map_7=0x2031
|
||||
phy_xaui_rx_polarity_flip_7=0xe
|
||||
phy_xaui_tx_polarity_flip_7=0xd
|
||||
serdes_driver_current_lane0_xe6=0x5
|
||||
serdes_driver_current_lane1_xe6=0x5
|
||||
serdes_driver_current_lane2_xe6=0x5
|
||||
serdes_driver_current_lane3_xe6=0x5
|
||||
serdes_pre_driver_current_lane0_xe6=0x5
|
||||
serdes_pre_driver_current_lane1_xe6=0x5
|
||||
serdes_pre_driver_current_lane2_xe6=0x5
|
||||
serdes_pre_driver_current_lane3_xe6=0x5
|
||||
serdes_preemphasis_lane0_xe6=0xc6e0
|
||||
serdes_preemphasis_lane1_xe6=0xcad0
|
||||
serdes_preemphasis_lane2_xe6=0xc6e0
|
||||
serdes_preemphasis_lane3_xe6=0xcad0
|
||||
|
||||
# xe7 (40G)
|
||||
portmap_8=5:40
|
||||
xgxs_rx_lane_map_8=0x213
|
||||
xgxs_tx_lane_map_8=0x1203
|
||||
phy_xaui_rx_polarity_flip_8=0xc
|
||||
phy_xaui_tx_polarity_flip_8=0x1
|
||||
serdes_driver_current_lane0_xe7=0x4
|
||||
serdes_driver_current_lane1_xe7=0x4
|
||||
serdes_driver_current_lane2_xe7=0x4
|
||||
serdes_driver_current_lane3_xe7=0x4
|
||||
serdes_pre_driver_current_lane0_xe7=0x4
|
||||
serdes_pre_driver_current_lane1_xe7=0x4
|
||||
serdes_pre_driver_current_lane2_xe7=0x4
|
||||
serdes_pre_driver_current_lane3_xe7=0x4
|
||||
serdes_preemphasis_lane0_xe7=0xc6e0
|
||||
serdes_preemphasis_lane1_xe7=0xc6e0
|
||||
serdes_preemphasis_lane2_xe7=0xc6e0
|
||||
serdes_preemphasis_lane3_xe7=0xc6e0
|
||||
|
||||
# xe8 (40G)
|
||||
portmap_9=13:40
|
||||
xgxs_rx_lane_map_9=0x213
|
||||
xgxs_tx_lane_map_9=0x132
|
||||
phy_xaui_rx_polarity_flip_9=0xe
|
||||
phy_xaui_tx_polarity_flip_9=0x0
|
||||
serdes_driver_current_lane0_xe8=0x2
|
||||
serdes_driver_current_lane1_xe8=0x3
|
||||
serdes_driver_current_lane2_xe8=0x2
|
||||
serdes_driver_current_lane3_xe8=0x2
|
||||
serdes_pre_driver_current_lane0_xe8=0x2
|
||||
serdes_pre_driver_current_lane1_xe8=0x3
|
||||
serdes_pre_driver_current_lane2_xe8=0x2
|
||||
serdes_pre_driver_current_lane3_xe8=0x2
|
||||
serdes_preemphasis_lane0_xe8=0xb270
|
||||
serdes_preemphasis_lane1_xe8=0xbb10
|
||||
serdes_preemphasis_lane2_xe8=0xb720
|
||||
serdes_preemphasis_lane3_xe8=0xb720
|
||||
|
||||
# xe9 (40G)
|
||||
portmap_10=9:40
|
||||
xgxs_rx_lane_map_10=0x3120
|
||||
xgxs_tx_lane_map_10=0x3021
|
||||
phy_xaui_rx_polarity_flip_10=0x0
|
||||
phy_xaui_tx_polarity_flip_10=0x4
|
||||
serdes_driver_current_lane0_xe9=0x3
|
||||
serdes_driver_current_lane1_xe9=0x3
|
||||
serdes_driver_current_lane2_xe9=0x3
|
||||
serdes_driver_current_lane3_xe9=0x3
|
||||
serdes_pre_driver_current_lane0_xe9=0x3
|
||||
serdes_pre_driver_current_lane1_xe9=0x3
|
||||
serdes_pre_driver_current_lane2_xe9=0x3
|
||||
serdes_pre_driver_current_lane3_xe9=0x3
|
||||
serdes_preemphasis_lane0_xe9=0xc2f0
|
||||
serdes_preemphasis_lane1_xe9=0xc6e0
|
||||
serdes_preemphasis_lane2_xe9=0xbf00
|
||||
serdes_preemphasis_lane3_xe9=0xc2f0
|
||||
|
||||
# xe10 (40G)
|
||||
portmap_11=17:40
|
||||
xgxs_rx_lane_map_11=0x213
|
||||
xgxs_tx_lane_map_11=0x132
|
||||
phy_xaui_rx_polarity_flip_11=0xe
|
||||
phy_xaui_tx_polarity_flip_11=0x0
|
||||
serdes_driver_current_lane0_xe10=0x2
|
||||
serdes_driver_current_lane1_xe10=0x2
|
||||
serdes_driver_current_lane2_xe10=0x2
|
||||
serdes_driver_current_lane3_xe10=0x2
|
||||
serdes_pre_driver_current_lane0_xe10=0x2
|
||||
serdes_pre_driver_current_lane1_xe10=0x2
|
||||
serdes_pre_driver_current_lane2_xe10=0x2
|
||||
serdes_pre_driver_current_lane3_xe10=0x2
|
||||
serdes_preemphasis_lane0_xe10=0xb330
|
||||
serdes_preemphasis_lane1_xe10=0xbb10
|
||||
serdes_preemphasis_lane2_xe10=0xbb10
|
||||
serdes_preemphasis_lane3_xe10=0xbb10
|
||||
|
||||
# xe11 (40G)
|
||||
portmap_12=21:40
|
||||
xgxs_rx_lane_map_12=0x123
|
||||
xgxs_tx_lane_map_12=0x1203
|
||||
phy_xaui_rx_polarity_flip_12=0xc
|
||||
phy_xaui_tx_polarity_flip_12=0xe
|
||||
serdes_driver_current_lane0_xe11=0x2
|
||||
serdes_driver_current_lane1_xe11=0x2
|
||||
serdes_driver_current_lane2_xe11=0x2
|
||||
serdes_driver_current_lane3_xe11=0x2
|
||||
serdes_pre_driver_current_lane0_xe11=0x2
|
||||
serdes_pre_driver_current_lane1_xe11=0x2
|
||||
serdes_pre_driver_current_lane2_xe11=0x2
|
||||
serdes_pre_driver_current_lane3_xe11=0x2
|
||||
serdes_preemphasis_lane0_xe11=0xb330
|
||||
serdes_preemphasis_lane1_xe11=0xb330
|
||||
serdes_preemphasis_lane2_xe11=0xb330
|
||||
serdes_preemphasis_lane3_xe11=0xb330
|
||||
|
||||
# xe12 (40G)
|
||||
portmap_13=53:40
|
||||
xgxs_rx_lane_map_13=0x213
|
||||
xgxs_tx_lane_map_13=0x231
|
||||
phy_xaui_rx_polarity_flip_13=0x1
|
||||
phy_xaui_tx_polarity_flip_13=0x0
|
||||
serdes_driver_current_lane0_xe12=0x2
|
||||
serdes_driver_current_lane1_xe12=0x2
|
||||
serdes_driver_current_lane2_xe12=0x2
|
||||
serdes_driver_current_lane3_xe12=0x2
|
||||
serdes_pre_driver_current_lane0_xe12=0x2
|
||||
serdes_pre_driver_current_lane1_xe12=0x2
|
||||
serdes_pre_driver_current_lane2_xe12=0x2
|
||||
serdes_pre_driver_current_lane3_xe12=0x2
|
||||
serdes_preemphasis_lane0_xe12=0xaf40
|
||||
serdes_preemphasis_lane1_xe12=0xaf40
|
||||
serdes_preemphasis_lane2_xe12=0xaf40
|
||||
serdes_preemphasis_lane3_xe12=0xaf40
|
||||
|
||||
# xe13 (40G)
|
||||
portmap_14=49:40
|
||||
xgxs_rx_lane_map_14=0x1302
|
||||
xgxs_tx_lane_map_14=0x2031
|
||||
phy_xaui_rx_polarity_flip_14=0xb
|
||||
phy_xaui_tx_polarity_flip_14=0x3
|
||||
serdes_driver_current_lane0_xe13=0x2
|
||||
serdes_driver_current_lane1_xe13=0x2
|
||||
serdes_driver_current_lane2_xe13=0x2
|
||||
serdes_driver_current_lane3_xe13=0x2
|
||||
serdes_pre_driver_current_lane0_xe13=0x2
|
||||
serdes_pre_driver_current_lane1_xe13=0x2
|
||||
serdes_pre_driver_current_lane2_xe13=0x2
|
||||
serdes_pre_driver_current_lane3_xe13=0x2
|
||||
serdes_preemphasis_lane0_xe13=0xa760
|
||||
serdes_preemphasis_lane1_xe13=0xa760
|
||||
serdes_preemphasis_lane2_xe13=0xa760
|
||||
serdes_preemphasis_lane3_xe13=0xa760
|
||||
|
||||
# xe14 (40G)
|
||||
portmap_15=57:40
|
||||
xgxs_rx_lane_map_15=0x213
|
||||
xgxs_tx_lane_map_15=0x2031
|
||||
phy_xaui_rx_polarity_flip_15=0x1
|
||||
phy_xaui_tx_polarity_flip_15=0x0
|
||||
serdes_driver_current_lane0_xe14=0x1
|
||||
serdes_driver_current_lane1_xe14=0x1
|
||||
serdes_driver_current_lane2_xe14=0x1
|
||||
serdes_driver_current_lane3_xe14=0x1
|
||||
serdes_pre_driver_current_lane0_xe14=0x1
|
||||
serdes_pre_driver_current_lane1_xe14=0x1
|
||||
serdes_pre_driver_current_lane2_xe14=0x1
|
||||
serdes_pre_driver_current_lane3_xe14=0x1
|
||||
serdes_preemphasis_lane0_xe14=0xa760
|
||||
serdes_preemphasis_lane1_xe14=0xa760
|
||||
serdes_preemphasis_lane2_xe14=0xa760
|
||||
serdes_preemphasis_lane3_xe14=0xa760
|
||||
|
||||
# xe15 (40G)
|
||||
portmap_16=61:40
|
||||
xgxs_rx_lane_map_16=0x132
|
||||
xgxs_tx_lane_map_16=0x213
|
||||
phy_xaui_rx_polarity_flip_16=0x0
|
||||
phy_xaui_tx_polarity_flip_16=0x0
|
||||
serdes_driver_current_lane0_xe15=0x2
|
||||
serdes_driver_current_lane1_xe15=0x2
|
||||
serdes_driver_current_lane2_xe15=0x2
|
||||
serdes_driver_current_lane3_xe15=0x2
|
||||
serdes_pre_driver_current_lane0_xe15=0x2
|
||||
serdes_pre_driver_current_lane1_xe15=0x2
|
||||
serdes_pre_driver_current_lane2_xe15=0x2
|
||||
serdes_pre_driver_current_lane3_xe15=0x2
|
||||
serdes_preemphasis_lane0_xe15=0xa760
|
||||
serdes_preemphasis_lane1_xe15=0xa760
|
||||
serdes_preemphasis_lane2_xe15=0xa760
|
||||
serdes_preemphasis_lane3_xe15=0xa760
|
||||
|
||||
# xe16 (40G)
|
||||
portmap_17=69:40
|
||||
xgxs_rx_lane_map_17=0x213
|
||||
xgxs_tx_lane_map_17=0x2130
|
||||
phy_xaui_rx_polarity_flip_17=0x1
|
||||
phy_xaui_tx_polarity_flip_17=0xf
|
||||
serdes_driver_current_lane0_xe16=0x1
|
||||
serdes_driver_current_lane1_xe16=0x1
|
||||
serdes_driver_current_lane2_xe16=0x1
|
||||
serdes_driver_current_lane3_xe16=0x1
|
||||
serdes_pre_driver_current_lane0_xe16=0x1
|
||||
serdes_pre_driver_current_lane1_xe16=0x1
|
||||
serdes_pre_driver_current_lane2_xe16=0x1
|
||||
serdes_pre_driver_current_lane3_xe16=0x1
|
||||
serdes_preemphasis_lane0_xe16=0xa760
|
||||
serdes_preemphasis_lane1_xe16=0xa760
|
||||
serdes_preemphasis_lane2_xe16=0xa760
|
||||
serdes_preemphasis_lane3_xe16=0xa760
|
||||
|
||||
# xe17 (40G)
|
||||
portmap_18=65:40
|
||||
xgxs_rx_lane_map_18=0x132
|
||||
xgxs_tx_lane_map_18=0x2031
|
||||
phy_xaui_rx_polarity_flip_18=0x3
|
||||
phy_xaui_tx_polarity_flip_18=0x9
|
||||
serdes_driver_current_lane0_xe17=0x1
|
||||
serdes_driver_current_lane1_xe17=0x1
|
||||
serdes_driver_current_lane2_xe17=0x1
|
||||
serdes_driver_current_lane3_xe17=0x1
|
||||
serdes_pre_driver_current_lane0_xe17=0x1
|
||||
serdes_pre_driver_current_lane1_xe17=0x1
|
||||
serdes_pre_driver_current_lane2_xe17=0x1
|
||||
serdes_pre_driver_current_lane3_xe17=0x1
|
||||
serdes_preemphasis_lane0_xe17=0xa370
|
||||
serdes_preemphasis_lane1_xe17=0xa370
|
||||
serdes_preemphasis_lane2_xe17=0xa370
|
||||
serdes_preemphasis_lane3_xe17=0xa370
|
||||
|
||||
# xe18 (40G)
|
||||
portmap_19=73:40
|
||||
xgxs_rx_lane_map_19=0x213
|
||||
xgxs_tx_lane_map_19=0x2031
|
||||
phy_xaui_rx_polarity_flip_19=0x1
|
||||
phy_xaui_tx_polarity_flip_19=0x0
|
||||
serdes_driver_current_lane0_xe18=0x2
|
||||
serdes_driver_current_lane1_xe18=0x2
|
||||
serdes_driver_current_lane2_xe18=0x2
|
||||
serdes_driver_current_lane3_xe18=0x2
|
||||
serdes_pre_driver_current_lane0_xe18=0x2
|
||||
serdes_pre_driver_current_lane1_xe18=0x2
|
||||
serdes_pre_driver_current_lane2_xe18=0x2
|
||||
serdes_pre_driver_current_lane3_xe18=0x2
|
||||
serdes_preemphasis_lane0_xe18=0xa760
|
||||
serdes_preemphasis_lane1_xe18=0xa760
|
||||
serdes_preemphasis_lane2_xe18=0xa760
|
||||
serdes_preemphasis_lane3_xe18=0xa760
|
||||
|
||||
# xe19 (40G)
|
||||
portmap_20=77:40
|
||||
xgxs_rx_lane_map_20=0x123
|
||||
xgxs_tx_lane_map_20=0x1203
|
||||
phy_xaui_rx_polarity_flip_20=0x3
|
||||
phy_xaui_tx_polarity_flip_20=0xe
|
||||
serdes_driver_current_lane0_xe19=0x2
|
||||
serdes_driver_current_lane1_xe19=0x2
|
||||
serdes_driver_current_lane2_xe19=0x2
|
||||
serdes_driver_current_lane3_xe19=0x2
|
||||
serdes_pre_driver_current_lane0_xe19=0x2
|
||||
serdes_pre_driver_current_lane1_xe19=0x2
|
||||
serdes_pre_driver_current_lane2_xe19=0x2
|
||||
serdes_pre_driver_current_lane3_xe19=0x2
|
||||
serdes_preemphasis_lane0_xe19=0xaf40
|
||||
serdes_preemphasis_lane1_xe19=0xaf40
|
||||
serdes_preemphasis_lane2_xe19=0xaf40
|
||||
serdes_preemphasis_lane3_xe19=0xaf40
|
||||
|
||||
# xe20 (40G)
|
||||
portmap_21=109:40
|
||||
xgxs_rx_lane_map_21=0x132
|
||||
xgxs_tx_lane_map_21=0x132
|
||||
phy_xaui_rx_polarity_flip_21=0x8
|
||||
phy_xaui_tx_polarity_flip_21=0x0
|
||||
serdes_driver_current_lane0_xe20=0x1
|
||||
serdes_driver_current_lane1_xe20=0x1
|
||||
serdes_driver_current_lane2_xe20=0x1
|
||||
serdes_driver_current_lane3_xe20=0x2
|
||||
serdes_pre_driver_current_lane0_xe20=0x1
|
||||
serdes_pre_driver_current_lane1_xe20=0x1
|
||||
serdes_pre_driver_current_lane2_xe20=0x1
|
||||
serdes_pre_driver_current_lane3_xe20=0x2
|
||||
serdes_preemphasis_lane0_xe20=0xb330
|
||||
serdes_preemphasis_lane1_xe20=0xb330
|
||||
serdes_preemphasis_lane2_xe20=0xb330
|
||||
serdes_preemphasis_lane3_xe20=0xbff0
|
||||
|
||||
# xe21 (40G)
|
||||
portmap_22=105:40
|
||||
xgxs_rx_lane_map_22=0x1320
|
||||
xgxs_tx_lane_map_22=0x3021
|
||||
phy_xaui_rx_polarity_flip_22=0xd
|
||||
phy_xaui_tx_polarity_flip_22=0xb
|
||||
serdes_driver_current_lane0_xe21=0x1
|
||||
serdes_driver_current_lane1_xe21=0x1
|
||||
serdes_driver_current_lane2_xe21=0x1
|
||||
serdes_driver_current_lane3_xe21=0x1
|
||||
serdes_pre_driver_current_lane0_xe21=0x1
|
||||
serdes_pre_driver_current_lane1_xe21=0x1
|
||||
serdes_pre_driver_current_lane2_xe21=0x1
|
||||
serdes_pre_driver_current_lane3_xe21=0x1
|
||||
serdes_preemphasis_lane0_xe21=0xb330
|
||||
serdes_preemphasis_lane1_xe21=0xb330
|
||||
serdes_preemphasis_lane2_xe21=0xb330
|
||||
serdes_preemphasis_lane3_xe21=0xb330
|
||||
|
||||
# xe22 (40G)
|
||||
portmap_23=113:40
|
||||
xgxs_rx_lane_map_23=0x132
|
||||
xgxs_tx_lane_map_23=0x132
|
||||
phy_xaui_rx_polarity_flip_23=0x8
|
||||
phy_xaui_tx_polarity_flip_23=0x0
|
||||
serdes_driver_current_lane0_xe22=0x1
|
||||
serdes_driver_current_lane1_xe22=0x1
|
||||
serdes_driver_current_lane2_xe22=0x1
|
||||
serdes_driver_current_lane3_xe22=0x1
|
||||
serdes_pre_driver_current_lane0_xe22=0x1
|
||||
serdes_pre_driver_current_lane1_xe22=0x1
|
||||
serdes_pre_driver_current_lane2_xe22=0x1
|
||||
serdes_pre_driver_current_lane3_xe22=0x1
|
||||
serdes_preemphasis_lane0_xe22=0xbb10
|
||||
serdes_preemphasis_lane1_xe22=0xbb10
|
||||
serdes_preemphasis_lane2_xe22=0xbb10
|
||||
serdes_preemphasis_lane3_xe22=0xc2f0
|
||||
|
||||
# xe23 (40G)
|
||||
portmap_24=117:40
|
||||
xgxs_rx_lane_map_24=0x231
|
||||
xgxs_tx_lane_map_24=0x1203
|
||||
phy_xaui_rx_polarity_flip_24=0x3
|
||||
phy_xaui_tx_polarity_flip_24=0xe
|
||||
serdes_driver_current_lane0_xe23=0x3
|
||||
serdes_driver_current_lane1_xe23=0x5
|
||||
serdes_driver_current_lane2_xe23=0x3
|
||||
serdes_driver_current_lane3_xe23=0x3
|
||||
serdes_pre_driver_current_lane0_xe23=0x3
|
||||
serdes_pre_driver_current_lane1_xe23=0x5
|
||||
serdes_pre_driver_current_lane2_xe23=0x3
|
||||
serdes_pre_driver_current_lane3_xe23=0x3
|
||||
serdes_preemphasis_lane0_xe23=0xc6e0
|
||||
serdes_preemphasis_lane1_xe23=0xc6e0
|
||||
serdes_preemphasis_lane2_xe23=0xc6e0
|
||||
serdes_preemphasis_lane3_xe23=0xc6e0
|
||||
|
||||
# xe24 (40G)
|
||||
portmap_25=125:40
|
||||
xgxs_rx_lane_map_25=0x132
|
||||
xgxs_tx_lane_map_25=0x132
|
||||
phy_xaui_rx_polarity_flip_25=0x8
|
||||
phy_xaui_tx_polarity_flip_25=0x0
|
||||
serdes_driver_current_lane0_xe24=0x4
|
||||
serdes_driver_current_lane1_xe24=0x4
|
||||
serdes_driver_current_lane2_xe24=0x4
|
||||
serdes_driver_current_lane3_xe24=0x4
|
||||
serdes_pre_driver_current_lane0_xe24=0x4
|
||||
serdes_pre_driver_current_lane1_xe24=0x4
|
||||
serdes_pre_driver_current_lane2_xe24=0x4
|
||||
serdes_pre_driver_current_lane3_xe24=0x4
|
||||
serdes_preemphasis_lane0_xe24=0xc6e0
|
||||
serdes_preemphasis_lane1_xe24=0xc6e0
|
||||
serdes_preemphasis_lane2_xe24=0xc6e0
|
||||
serdes_preemphasis_lane3_xe24=0xcec0
|
||||
|
||||
# xe25 (40G)
|
||||
portmap_26=121:40
|
||||
xgxs_rx_lane_map_26=0x1320
|
||||
xgxs_tx_lane_map_26=0x3021
|
||||
phy_xaui_rx_polarity_flip_26=0xd
|
||||
phy_xaui_tx_polarity_flip_26=0xb
|
||||
serdes_driver_current_lane0_xe25=0x4
|
||||
serdes_driver_current_lane1_xe25=0x4
|
||||
serdes_driver_current_lane2_xe25=0x4
|
||||
serdes_driver_current_lane3_xe25=0x4
|
||||
serdes_pre_driver_current_lane0_xe25=0x4
|
||||
serdes_pre_driver_current_lane1_xe25=0x4
|
||||
serdes_pre_driver_current_lane2_xe25=0x4
|
||||
serdes_pre_driver_current_lane3_xe25=0x4
|
||||
serdes_preemphasis_lane0_xe25=0xc6e0
|
||||
serdes_preemphasis_lane1_xe25=0xc6e0
|
||||
serdes_preemphasis_lane2_xe25=0xc6e0
|
||||
serdes_preemphasis_lane3_xe25=0xc6e0
|
||||
|
||||
# xe26 (40G)
|
||||
portmap_27=81:40
|
||||
xgxs_rx_lane_map_27=0x1320
|
||||
xgxs_tx_lane_map_27=0x2031
|
||||
phy_xaui_rx_polarity_flip_27=0x1
|
||||
phy_xaui_tx_polarity_flip_27=0x2
|
||||
serdes_driver_current_lane0_xe26=0x2
|
||||
serdes_driver_current_lane1_xe26=0x2
|
||||
serdes_driver_current_lane2_xe26=0x2
|
||||
serdes_driver_current_lane3_xe26=0x2
|
||||
serdes_pre_driver_current_lane0_xe26=0x2
|
||||
serdes_pre_driver_current_lane1_xe26=0x2
|
||||
serdes_pre_driver_current_lane2_xe26=0x2
|
||||
serdes_pre_driver_current_lane3_xe26=0x2
|
||||
serdes_preemphasis_lane0_xe26=0xbb10
|
||||
serdes_preemphasis_lane1_xe26=0xbb10
|
||||
serdes_preemphasis_lane2_xe26=0xbf00
|
||||
serdes_preemphasis_lane3_xe26=0xbb10
|
||||
|
||||
# xe27 (40G)
|
||||
portmap_28=85:40
|
||||
xgxs_rx_lane_map_28=0x213
|
||||
xgxs_tx_lane_map_28=0x1203
|
||||
phy_xaui_rx_polarity_flip_28=0xc
|
||||
phy_xaui_tx_polarity_flip_28=0xe
|
||||
serdes_driver_current_lane0_xe27=0x4
|
||||
serdes_driver_current_lane1_xe27=0x5
|
||||
serdes_driver_current_lane2_xe27=0x4
|
||||
serdes_driver_current_lane3_xe27=0x5
|
||||
serdes_pre_driver_current_lane0_xe27=0x4
|
||||
serdes_pre_driver_current_lane1_xe27=0x5
|
||||
serdes_pre_driver_current_lane2_xe27=0x4
|
||||
serdes_pre_driver_current_lane3_xe27=0x5
|
||||
serdes_preemphasis_lane0_xe27=0xc2f0
|
||||
serdes_preemphasis_lane1_xe27=0xc6e0
|
||||
serdes_preemphasis_lane2_xe27=0xc6e0
|
||||
serdes_preemphasis_lane3_xe27=0xc6e0
|
||||
|
||||
# xe28 (40G)
|
||||
portmap_29=93:40
|
||||
xgxs_rx_lane_map_29=0x1320
|
||||
xgxs_tx_lane_map_29=0x2031
|
||||
phy_xaui_rx_polarity_flip_29=0x1
|
||||
phy_xaui_tx_polarity_flip_29=0x2
|
||||
serdes_driver_current_lane0_xe28=0x4
|
||||
serdes_driver_current_lane1_xe28=0x4
|
||||
serdes_driver_current_lane2_xe28=0x4
|
||||
serdes_driver_current_lane3_xe28=0x4
|
||||
serdes_pre_driver_current_lane0_xe28=0x4
|
||||
serdes_pre_driver_current_lane1_xe28=0x4
|
||||
serdes_pre_driver_current_lane2_xe28=0x4
|
||||
serdes_pre_driver_current_lane3_xe28=0x4
|
||||
serdes_preemphasis_lane0_xe28=0xc2f0
|
||||
serdes_preemphasis_lane1_xe28=0xc2f0
|
||||
serdes_preemphasis_lane2_xe28=0xc2f0
|
||||
serdes_preemphasis_lane3_xe28=0xc2f0
|
||||
|
||||
# xe29 (40G)
|
||||
portmap_30=89:40
|
||||
xgxs_rx_lane_map_30=0x1320
|
||||
xgxs_tx_lane_map_30=0x3021
|
||||
phy_xaui_rx_polarity_flip_30=0x2
|
||||
phy_xaui_tx_polarity_flip_30=0xb
|
||||
serdes_driver_current_lane0_xe29=0x4
|
||||
serdes_driver_current_lane1_xe29=0x4
|
||||
serdes_driver_current_lane2_xe29=0x4
|
||||
serdes_driver_current_lane3_xe29=0x4
|
||||
serdes_pre_driver_current_lane0_xe29=0x4
|
||||
serdes_pre_driver_current_lane1_xe29=0x4
|
||||
serdes_pre_driver_current_lane2_xe29=0x4
|
||||
serdes_pre_driver_current_lane3_xe29=0x4
|
||||
serdes_preemphasis_lane0_xe29=0xcad0
|
||||
serdes_preemphasis_lane1_xe29=0xc6e0
|
||||
serdes_preemphasis_lane2_xe29=0xc6e0
|
||||
serdes_preemphasis_lane3_xe29=0xc6e0
|
||||
|
||||
# xe30 (40G)
|
||||
portmap_31=101:40
|
||||
xgxs_rx_lane_map_31=0x1320
|
||||
xgxs_tx_lane_map_31=0x1203
|
||||
phy_xaui_rx_polarity_flip_31=0x1
|
||||
phy_xaui_tx_polarity_flip_31=0x6
|
||||
serdes_driver_current_lane0_xe30=0x6
|
||||
serdes_driver_current_lane1_xe30=0x6
|
||||
serdes_driver_current_lane2_xe30=0x6
|
||||
serdes_driver_current_lane3_xe30=0x7
|
||||
serdes_pre_driver_current_lane0_xe30=0x6
|
||||
serdes_pre_driver_current_lane1_xe30=0x6
|
||||
serdes_pre_driver_current_lane2_xe30=0x6
|
||||
serdes_pre_driver_current_lane3_xe30=0x7
|
||||
serdes_preemphasis_lane0_xe30=0xcec0
|
||||
serdes_preemphasis_lane1_xe30=0xcec0
|
||||
serdes_preemphasis_lane2_xe30=0xcad0
|
||||
serdes_preemphasis_lane3_xe30=0xc6e0
|
||||
|
||||
# xe31 (40G)
|
||||
portmap_32=97:40
|
||||
xgxs_rx_lane_map_32=0x213
|
||||
xgxs_tx_lane_map_32=0x2031
|
||||
phy_xaui_rx_polarity_flip_32=0xc
|
||||
phy_xaui_tx_polarity_flip_32=0x3
|
||||
serdes_driver_current_lane0_xe31=0x5
|
||||
serdes_driver_current_lane1_xe31=0x5
|
||||
serdes_driver_current_lane2_xe31=0x5
|
||||
serdes_driver_current_lane3_xe31=0x5
|
||||
serdes_pre_driver_current_lane0_xe31=0x5
|
||||
serdes_pre_driver_current_lane1_xe31=0x5
|
||||
serdes_pre_driver_current_lane2_xe31=0x5
|
||||
serdes_pre_driver_current_lane3_xe31=0x5
|
||||
serdes_preemphasis_lane0_xe31=0xcad0
|
||||
serdes_preemphasis_lane1_xe31=0xcad0
|
||||
serdes_preemphasis_lane2_xe31=0xcad0
|
||||
serdes_preemphasis_lane3_xe31=0xcad0
|
@ -0,0 +1,3 @@
|
||||
{%- set default_topo = 't1' %}
|
||||
{%- include 'buffers_config.j2' %}
|
||||
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,17 @@
|
||||
# PG lossless profiles.
|
||||
# speed cable size xon xoff threshold xon_offset
|
||||
10000 5m 56368 18432 55120 -3 2496
|
||||
25000 5m 56368 18432 55120 -3 2496
|
||||
40000 5m 56368 18432 55120 -3 2496
|
||||
50000 5m 56368 18432 55120 -3 2496
|
||||
100000 5m 56368 18432 55120 -3 2496
|
||||
10000 40m 56368 18432 55120 -3 2496
|
||||
25000 40m 56368 18432 55120 -3 2496
|
||||
40000 40m 56368 18432 55120 -3 2496
|
||||
50000 40m 56368 18432 55120 -3 2496
|
||||
100000 40m 56368 18432 55120 -3 2496
|
||||
10000 300m 56368 18432 55120 -3 2496
|
||||
25000 300m 56368 18432 55120 -3 2496
|
||||
40000 300m 56368 18432 55120 -3 2496
|
||||
50000 300m 56368 18432 55120 -3 2496
|
||||
100000 300m 56368 18432 55120 -3 2496
|
@ -0,0 +1,33 @@
|
||||
# name lanes alias index speed
|
||||
Ethernet0 25,26,27,28 fortyGigE0/0 0 40000
|
||||
Ethernet4 29,30,31,32 fortyGigE0/4 1 40000
|
||||
Ethernet8 33,34,35,36 fortyGigE0/8 2 40000
|
||||
Ethernet12 37,38,39,40 fortyGigE0/12 3 40000
|
||||
Ethernet16 45,46,47,48 fortyGigE0/16 4 40000
|
||||
Ethernet20 41,42,43,44 fortyGigE0/20 5 40000
|
||||
Ethernet24 1,2,3,4 fortyGigE0/24 6 40000
|
||||
Ethernet28 5,6,7,8 fortyGigE0/28 7 40000
|
||||
Ethernet32 13,14,15,16 fortyGigE0/32 8 40000
|
||||
Ethernet36 9,10,11,12 fortyGigE0/36 9 40000
|
||||
Ethernet40 17,18,19,20 fortyGigE0/40 10 40000
|
||||
Ethernet44 21,22,23,24 fortyGigE0/44 11 40000
|
||||
Ethernet48 53,54,55,56 fortyGigE0/48 12 40000
|
||||
Ethernet52 49,50,51,52 fortyGigE0/52 13 40000
|
||||
Ethernet56 57,58,59,60 fortyGigE0/56 14 40000
|
||||
Ethernet60 61,62,63,64 fortyGigE0/60 15 40000
|
||||
Ethernet64 69,70,71,72 fortyGigE0/64 16 40000
|
||||
Ethernet68 65,66,67,68 fortyGigE0/68 17 40000
|
||||
Ethernet72 73,74,75,76 fortyGigE0/72 18 40000
|
||||
Ethernet76 77,78,79,80 fortyGigE0/76 19 40000
|
||||
Ethernet80 109,110,111,112 fortyGigE0/80 20 40000
|
||||
Ethernet84 105,106,107,108 fortyGigE0/84 21 40000
|
||||
Ethernet88 113,114,115,116 fortyGigE0/88 22 40000
|
||||
Ethernet92 117,118,119,120 fortyGigE0/92 23 40000
|
||||
Ethernet96 125,126,127,128 fortyGigE0/96 24 40000
|
||||
Ethernet100 121,122,123,124 fortyGigE0/100 25 40000
|
||||
Ethernet104 81,82,83,84 fortyGigE0/104 26 40000
|
||||
Ethernet108 85,86,87,88 fortyGigE0/108 27 40000
|
||||
Ethernet112 93,94,95,96 fortyGigE0/112 28 40000
|
||||
Ethernet116 89,90,91,92 fortyGigE0/116 29 40000
|
||||
Ethernet120 101,102,103,104 fortyGigE0/120 30 40000
|
||||
Ethernet124 97,98,99,100 fortyGigE0/124 31 40000
|
@ -0,0 +1 @@
|
||||
{%- include 'qos_config.j2' %}
|
@ -0,0 +1,2 @@
|
||||
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/td2-s6000-32x40G.config.bcm
|
||||
SAI_NUM_ECMP_MEMBERS=32
|
@ -0,0 +1,646 @@
|
||||
# Old LPM only configuration
|
||||
# l2_mem_entries=163840
|
||||
# l3_mem_entries=90112
|
||||
# l3_alpm_enable=0
|
||||
# ipv6_lpm_128b_enable=0
|
||||
#
|
||||
# ALPM enable
|
||||
l3_alpm_enable=2
|
||||
ipv6_lpm_128b_enable=1
|
||||
l2_mem_entries=32768
|
||||
l3_mem_entries=16384
|
||||
|
||||
# From old config file
|
||||
os=unix
|
||||
higig2_hdr_mode=1
|
||||
|
||||
# Parity
|
||||
parity_correction=1
|
||||
parity_enable=1
|
||||
stat_if_parity_enable=0
|
||||
|
||||
#
|
||||
bcm_num_cos=8
|
||||
bcm_stat_interval=2000000
|
||||
l2xmsg_hostbuf_size=8192
|
||||
l2xmsg_mode=1
|
||||
lls_num_l2uc=12
|
||||
max_vp_lags=0
|
||||
miim_intr_enable=0
|
||||
mmu_lossless=0
|
||||
module_64ports=0
|
||||
schan_intr_enable=0
|
||||
stable_size=0x2000000
|
||||
tdma_timeout_usec=5000000
|
||||
|
||||
pbmp_oversubscribe=0x000007fffffffffffffffffffffffffe
|
||||
pbmp_xport_xe=0x000007fffffffffffffffffffffffffe
|
||||
|
||||
# Ports configuration
|
||||
# xe0 (40G)
|
||||
portmap_1=25:40
|
||||
xgxs_rx_lane_map_1=0x213
|
||||
xgxs_tx_lane_map_1=0x2031
|
||||
phy_xaui_rx_polarity_flip_1=0xe
|
||||
phy_xaui_tx_polarity_flip_1=0x2
|
||||
serdes_driver_current_lane0_xe0=0x5
|
||||
serdes_driver_current_lane1_xe0=0x5
|
||||
serdes_driver_current_lane2_xe0=0x5
|
||||
serdes_driver_current_lane3_xe0=0x5
|
||||
serdes_pre_driver_current_lane0_xe0=0x5
|
||||
serdes_pre_driver_current_lane1_xe0=0x5
|
||||
serdes_pre_driver_current_lane2_xe0=0x5
|
||||
serdes_pre_driver_current_lane3_xe0=0x5
|
||||
serdes_preemphasis_lane0_xe0=0xcad0
|
||||
serdes_preemphasis_lane1_xe0=0xc6e0
|
||||
serdes_preemphasis_lane2_xe0=0xc6e0
|
||||
serdes_preemphasis_lane3_xe0=0xd2b0
|
||||
|
||||
# xe1 (40G)
|
||||
portmap_2=29:40
|
||||
xgxs_rx_lane_map_2=0x213
|
||||
xgxs_tx_lane_map_2=0x213
|
||||
phy_xaui_rx_polarity_flip_2=0xc
|
||||
phy_xaui_tx_polarity_flip_2=0x9
|
||||
serdes_driver_current_lane0_xe1=0x6
|
||||
serdes_driver_current_lane1_xe1=0x7
|
||||
serdes_driver_current_lane2_xe1=0x6
|
||||
serdes_driver_current_lane3_xe1=0x6
|
||||
serdes_pre_driver_current_lane0_xe1=0x6
|
||||
serdes_pre_driver_current_lane1_xe1=0x7
|
||||
serdes_pre_driver_current_lane2_xe1=0x6
|
||||
serdes_pre_driver_current_lane3_xe1=0x6
|
||||
serdes_preemphasis_lane0_xe1=0xc2f0
|
||||
serdes_preemphasis_lane1_xe1=0xd2b0
|
||||
serdes_preemphasis_lane2_xe1=0xc6e0
|
||||
serdes_preemphasis_lane3_xe1=0xc2f0
|
||||
|
||||
# xe2 (40G)
|
||||
portmap_3=33:40
|
||||
xgxs_rx_lane_map_3=0x213
|
||||
xgxs_tx_lane_map_3=0x132
|
||||
phy_xaui_rx_polarity_flip_3=0xe
|
||||
phy_xaui_tx_polarity_flip_3=0x2
|
||||
serdes_driver_current_lane0_xe2=0x4
|
||||
serdes_driver_current_lane1_xe2=0x4
|
||||
serdes_driver_current_lane2_xe2=0x4
|
||||
serdes_driver_current_lane3_xe2=0x4
|
||||
serdes_pre_driver_current_lane0_xe2=0x4
|
||||
serdes_pre_driver_current_lane1_xe2=0x4
|
||||
serdes_pre_driver_current_lane2_xe2=0x4
|
||||
serdes_pre_driver_current_lane3_xe2=0x4
|
||||
serdes_preemphasis_lane0_xe2=0xc6e0
|
||||
serdes_preemphasis_lane1_xe2=0xc6e0
|
||||
serdes_preemphasis_lane2_xe2=0xc6e0
|
||||
serdes_preemphasis_lane3_xe2=0xc6e0
|
||||
|
||||
# xe3 (40G)
|
||||
portmap_4=37:40
|
||||
xgxs_rx_lane_map_4=0x213
|
||||
xgxs_tx_lane_map_4=0x1203
|
||||
phy_xaui_rx_polarity_flip_4=0x3
|
||||
phy_xaui_tx_polarity_flip_4=0xe
|
||||
serdes_driver_current_lane0_xe3=0x4
|
||||
serdes_driver_current_lane1_xe3=0x4
|
||||
serdes_driver_current_lane2_xe3=0x4
|
||||
serdes_driver_current_lane3_xe3=0x4
|
||||
serdes_pre_driver_current_lane0_xe3=0x4
|
||||
serdes_pre_driver_current_lane1_xe3=0x4
|
||||
serdes_pre_driver_current_lane2_xe3=0x4
|
||||
serdes_pre_driver_current_lane3_xe3=0x4
|
||||
serdes_preemphasis_lane0_xe3=0xcad0
|
||||
serdes_preemphasis_lane1_xe3=0xcad0
|
||||
serdes_preemphasis_lane2_xe3=0xc2f0
|
||||
serdes_preemphasis_lane3_xe3=0xc2f0
|
||||
|
||||
# xe4 (40G)
|
||||
portmap_5=45:40
|
||||
xgxs_rx_lane_map_5=0x213
|
||||
xgxs_tx_lane_map_5=0x213
|
||||
phy_xaui_rx_polarity_flip_5=0xe
|
||||
phy_xaui_tx_polarity_flip_5=0x8
|
||||
serdes_driver_current_lane0_xe4=0x4
|
||||
serdes_driver_current_lane1_xe4=0x4
|
||||
serdes_driver_current_lane2_xe4=0x4
|
||||
serdes_driver_current_lane3_xe4=0x4
|
||||
serdes_pre_driver_current_lane0_xe4=0x4
|
||||
serdes_pre_driver_current_lane1_xe4=0x4
|
||||
serdes_pre_driver_current_lane2_xe4=0x4
|
||||
serdes_pre_driver_current_lane3_xe4=0x4
|
||||
serdes_preemphasis_lane0_xe4=0xc2f0
|
||||
serdes_preemphasis_lane1_xe4=0xc2f0
|
||||
serdes_preemphasis_lane2_xe4=0xc2f0
|
||||
serdes_preemphasis_lane3_xe4=0xc2f0
|
||||
|
||||
# xe5 (40G)
|
||||
portmap_6=41:40
|
||||
xgxs_rx_lane_map_6=0x213
|
||||
xgxs_tx_lane_map_6=0x3021
|
||||
phy_xaui_rx_polarity_flip_6=0x3
|
||||
phy_xaui_tx_polarity_flip_6=0xb
|
||||
serdes_driver_current_lane0_xe5=0x4
|
||||
serdes_driver_current_lane1_xe5=0x4
|
||||
serdes_driver_current_lane2_xe5=0x4
|
||||
serdes_driver_current_lane3_xe5=0x4
|
||||
serdes_pre_driver_current_lane0_xe5=0x4
|
||||
serdes_pre_driver_current_lane1_xe5=0x4
|
||||
serdes_pre_driver_current_lane2_xe5=0x4
|
||||
serdes_pre_driver_current_lane3_xe5=0x4
|
||||
serdes_preemphasis_lane0_xe5=0xc6e0
|
||||
serdes_preemphasis_lane1_xe5=0xc2f0
|
||||
serdes_preemphasis_lane2_xe5=0xc2f0
|
||||
serdes_preemphasis_lane3_xe5=0xcad0
|
||||
|
||||
# xe6 (40G)
|
||||
portmap_7=1:40
|
||||
xgxs_rx_lane_map_7=0x213
|
||||
xgxs_tx_lane_map_7=0x2031
|
||||
phy_xaui_rx_polarity_flip_7=0xe
|
||||
phy_xaui_tx_polarity_flip_7=0xd
|
||||
serdes_driver_current_lane0_xe6=0x5
|
||||
serdes_driver_current_lane1_xe6=0x5
|
||||
serdes_driver_current_lane2_xe6=0x5
|
||||
serdes_driver_current_lane3_xe6=0x5
|
||||
serdes_pre_driver_current_lane0_xe6=0x5
|
||||
serdes_pre_driver_current_lane1_xe6=0x5
|
||||
serdes_pre_driver_current_lane2_xe6=0x5
|
||||
serdes_pre_driver_current_lane3_xe6=0x5
|
||||
serdes_preemphasis_lane0_xe6=0xc6e0
|
||||
serdes_preemphasis_lane1_xe6=0xcad0
|
||||
serdes_preemphasis_lane2_xe6=0xc6e0
|
||||
serdes_preemphasis_lane3_xe6=0xcad0
|
||||
|
||||
# xe7 (40G)
|
||||
portmap_8=5:40
|
||||
xgxs_rx_lane_map_8=0x213
|
||||
xgxs_tx_lane_map_8=0x1203
|
||||
phy_xaui_rx_polarity_flip_8=0xc
|
||||
phy_xaui_tx_polarity_flip_8=0x1
|
||||
serdes_driver_current_lane0_xe7=0x4
|
||||
serdes_driver_current_lane1_xe7=0x4
|
||||
serdes_driver_current_lane2_xe7=0x4
|
||||
serdes_driver_current_lane3_xe7=0x4
|
||||
serdes_pre_driver_current_lane0_xe7=0x4
|
||||
serdes_pre_driver_current_lane1_xe7=0x4
|
||||
serdes_pre_driver_current_lane2_xe7=0x4
|
||||
serdes_pre_driver_current_lane3_xe7=0x4
|
||||
serdes_preemphasis_lane0_xe7=0xc6e0
|
||||
serdes_preemphasis_lane1_xe7=0xc6e0
|
||||
serdes_preemphasis_lane2_xe7=0xc6e0
|
||||
serdes_preemphasis_lane3_xe7=0xc6e0
|
||||
|
||||
# xe8 (40G)
|
||||
portmap_9=13:40
|
||||
xgxs_rx_lane_map_9=0x213
|
||||
xgxs_tx_lane_map_9=0x132
|
||||
phy_xaui_rx_polarity_flip_9=0xe
|
||||
phy_xaui_tx_polarity_flip_9=0x0
|
||||
serdes_driver_current_lane0_xe8=0x2
|
||||
serdes_driver_current_lane1_xe8=0x3
|
||||
serdes_driver_current_lane2_xe8=0x2
|
||||
serdes_driver_current_lane3_xe8=0x2
|
||||
serdes_pre_driver_current_lane0_xe8=0x2
|
||||
serdes_pre_driver_current_lane1_xe8=0x3
|
||||
serdes_pre_driver_current_lane2_xe8=0x2
|
||||
serdes_pre_driver_current_lane3_xe8=0x2
|
||||
serdes_preemphasis_lane0_xe8=0xb270
|
||||
serdes_preemphasis_lane1_xe8=0xbb10
|
||||
serdes_preemphasis_lane2_xe8=0xb720
|
||||
serdes_preemphasis_lane3_xe8=0xb720
|
||||
|
||||
# xe9 (40G)
|
||||
portmap_10=9:40
|
||||
xgxs_rx_lane_map_10=0x3120
|
||||
xgxs_tx_lane_map_10=0x3021
|
||||
phy_xaui_rx_polarity_flip_10=0x0
|
||||
phy_xaui_tx_polarity_flip_10=0x4
|
||||
serdes_driver_current_lane0_xe9=0x3
|
||||
serdes_driver_current_lane1_xe9=0x3
|
||||
serdes_driver_current_lane2_xe9=0x3
|
||||
serdes_driver_current_lane3_xe9=0x3
|
||||
serdes_pre_driver_current_lane0_xe9=0x3
|
||||
serdes_pre_driver_current_lane1_xe9=0x3
|
||||
serdes_pre_driver_current_lane2_xe9=0x3
|
||||
serdes_pre_driver_current_lane3_xe9=0x3
|
||||
serdes_preemphasis_lane0_xe9=0xc2f0
|
||||
serdes_preemphasis_lane1_xe9=0xc6e0
|
||||
serdes_preemphasis_lane2_xe9=0xbf00
|
||||
serdes_preemphasis_lane3_xe9=0xc2f0
|
||||
|
||||
# xe10 (40G)
|
||||
portmap_11=17:40
|
||||
xgxs_rx_lane_map_11=0x213
|
||||
xgxs_tx_lane_map_11=0x132
|
||||
phy_xaui_rx_polarity_flip_11=0xe
|
||||
phy_xaui_tx_polarity_flip_11=0x0
|
||||
serdes_driver_current_lane0_xe10=0x2
|
||||
serdes_driver_current_lane1_xe10=0x2
|
||||
serdes_driver_current_lane2_xe10=0x2
|
||||
serdes_driver_current_lane3_xe10=0x2
|
||||
serdes_pre_driver_current_lane0_xe10=0x2
|
||||
serdes_pre_driver_current_lane1_xe10=0x2
|
||||
serdes_pre_driver_current_lane2_xe10=0x2
|
||||
serdes_pre_driver_current_lane3_xe10=0x2
|
||||
serdes_preemphasis_lane0_xe10=0xb330
|
||||
serdes_preemphasis_lane1_xe10=0xbb10
|
||||
serdes_preemphasis_lane2_xe10=0xbb10
|
||||
serdes_preemphasis_lane3_xe10=0xbb10
|
||||
|
||||
# xe11 (40G)
|
||||
portmap_12=21:40
|
||||
xgxs_rx_lane_map_12=0x123
|
||||
xgxs_tx_lane_map_12=0x1203
|
||||
phy_xaui_rx_polarity_flip_12=0xc
|
||||
phy_xaui_tx_polarity_flip_12=0xe
|
||||
serdes_driver_current_lane0_xe11=0x2
|
||||
serdes_driver_current_lane1_xe11=0x2
|
||||
serdes_driver_current_lane2_xe11=0x2
|
||||
serdes_driver_current_lane3_xe11=0x2
|
||||
serdes_pre_driver_current_lane0_xe11=0x2
|
||||
serdes_pre_driver_current_lane1_xe11=0x2
|
||||
serdes_pre_driver_current_lane2_xe11=0x2
|
||||
serdes_pre_driver_current_lane3_xe11=0x2
|
||||
serdes_preemphasis_lane0_xe11=0xb330
|
||||
serdes_preemphasis_lane1_xe11=0xb330
|
||||
serdes_preemphasis_lane2_xe11=0xb330
|
||||
serdes_preemphasis_lane3_xe11=0xb330
|
||||
|
||||
# xe12 (40G)
|
||||
portmap_13=53:40
|
||||
xgxs_rx_lane_map_13=0x213
|
||||
xgxs_tx_lane_map_13=0x231
|
||||
phy_xaui_rx_polarity_flip_13=0x1
|
||||
phy_xaui_tx_polarity_flip_13=0x0
|
||||
serdes_driver_current_lane0_xe12=0x2
|
||||
serdes_driver_current_lane1_xe12=0x2
|
||||
serdes_driver_current_lane2_xe12=0x2
|
||||
serdes_driver_current_lane3_xe12=0x2
|
||||
serdes_pre_driver_current_lane0_xe12=0x2
|
||||
serdes_pre_driver_current_lane1_xe12=0x2
|
||||
serdes_pre_driver_current_lane2_xe12=0x2
|
||||
serdes_pre_driver_current_lane3_xe12=0x2
|
||||
serdes_preemphasis_lane0_xe12=0xaf40
|
||||
serdes_preemphasis_lane1_xe12=0xaf40
|
||||
serdes_preemphasis_lane2_xe12=0xaf40
|
||||
serdes_preemphasis_lane3_xe12=0xaf40
|
||||
|
||||
# xe13 (40G)
|
||||
portmap_14=49:40
|
||||
xgxs_rx_lane_map_14=0x1302
|
||||
xgxs_tx_lane_map_14=0x2031
|
||||
phy_xaui_rx_polarity_flip_14=0xb
|
||||
phy_xaui_tx_polarity_flip_14=0x3
|
||||
serdes_driver_current_lane0_xe13=0x2
|
||||
serdes_driver_current_lane1_xe13=0x2
|
||||
serdes_driver_current_lane2_xe13=0x2
|
||||
serdes_driver_current_lane3_xe13=0x2
|
||||
serdes_pre_driver_current_lane0_xe13=0x2
|
||||
serdes_pre_driver_current_lane1_xe13=0x2
|
||||
serdes_pre_driver_current_lane2_xe13=0x2
|
||||
serdes_pre_driver_current_lane3_xe13=0x2
|
||||
serdes_preemphasis_lane0_xe13=0xa760
|
||||
serdes_preemphasis_lane1_xe13=0xa760
|
||||
serdes_preemphasis_lane2_xe13=0xa760
|
||||
serdes_preemphasis_lane3_xe13=0xa760
|
||||
|
||||
# xe14 (40G)
|
||||
portmap_15=57:40
|
||||
xgxs_rx_lane_map_15=0x213
|
||||
xgxs_tx_lane_map_15=0x2031
|
||||
phy_xaui_rx_polarity_flip_15=0x1
|
||||
phy_xaui_tx_polarity_flip_15=0x0
|
||||
serdes_driver_current_lane0_xe14=0x1
|
||||
serdes_driver_current_lane1_xe14=0x1
|
||||
serdes_driver_current_lane2_xe14=0x1
|
||||
serdes_driver_current_lane3_xe14=0x1
|
||||
serdes_pre_driver_current_lane0_xe14=0x1
|
||||
serdes_pre_driver_current_lane1_xe14=0x1
|
||||
serdes_pre_driver_current_lane2_xe14=0x1
|
||||
serdes_pre_driver_current_lane3_xe14=0x1
|
||||
serdes_preemphasis_lane0_xe14=0xa760
|
||||
serdes_preemphasis_lane1_xe14=0xa760
|
||||
serdes_preemphasis_lane2_xe14=0xa760
|
||||
serdes_preemphasis_lane3_xe14=0xa760
|
||||
|
||||
# xe15 (40G)
|
||||
portmap_16=61:40
|
||||
xgxs_rx_lane_map_16=0x132
|
||||
xgxs_tx_lane_map_16=0x213
|
||||
phy_xaui_rx_polarity_flip_16=0x0
|
||||
phy_xaui_tx_polarity_flip_16=0x0
|
||||
serdes_driver_current_lane0_xe15=0x2
|
||||
serdes_driver_current_lane1_xe15=0x2
|
||||
serdes_driver_current_lane2_xe15=0x2
|
||||
serdes_driver_current_lane3_xe15=0x2
|
||||
serdes_pre_driver_current_lane0_xe15=0x2
|
||||
serdes_pre_driver_current_lane1_xe15=0x2
|
||||
serdes_pre_driver_current_lane2_xe15=0x2
|
||||
serdes_pre_driver_current_lane3_xe15=0x2
|
||||
serdes_preemphasis_lane0_xe15=0xa760
|
||||
serdes_preemphasis_lane1_xe15=0xa760
|
||||
serdes_preemphasis_lane2_xe15=0xa760
|
||||
serdes_preemphasis_lane3_xe15=0xa760
|
||||
|
||||
# xe16 (40G)
|
||||
portmap_17=69:40
|
||||
xgxs_rx_lane_map_17=0x213
|
||||
xgxs_tx_lane_map_17=0x2130
|
||||
phy_xaui_rx_polarity_flip_17=0x1
|
||||
phy_xaui_tx_polarity_flip_17=0xf
|
||||
serdes_driver_current_lane0_xe16=0x1
|
||||
serdes_driver_current_lane1_xe16=0x1
|
||||
serdes_driver_current_lane2_xe16=0x1
|
||||
serdes_driver_current_lane3_xe16=0x1
|
||||
serdes_pre_driver_current_lane0_xe16=0x1
|
||||
serdes_pre_driver_current_lane1_xe16=0x1
|
||||
serdes_pre_driver_current_lane2_xe16=0x1
|
||||
serdes_pre_driver_current_lane3_xe16=0x1
|
||||
serdes_preemphasis_lane0_xe16=0xa760
|
||||
serdes_preemphasis_lane1_xe16=0xa760
|
||||
serdes_preemphasis_lane2_xe16=0xa760
|
||||
serdes_preemphasis_lane3_xe16=0xa760
|
||||
|
||||
# xe17 (40G)
|
||||
portmap_18=65:40
|
||||
xgxs_rx_lane_map_18=0x132
|
||||
xgxs_tx_lane_map_18=0x2031
|
||||
phy_xaui_rx_polarity_flip_18=0x3
|
||||
phy_xaui_tx_polarity_flip_18=0x9
|
||||
serdes_driver_current_lane0_xe17=0x1
|
||||
serdes_driver_current_lane1_xe17=0x1
|
||||
serdes_driver_current_lane2_xe17=0x1
|
||||
serdes_driver_current_lane3_xe17=0x1
|
||||
serdes_pre_driver_current_lane0_xe17=0x1
|
||||
serdes_pre_driver_current_lane1_xe17=0x1
|
||||
serdes_pre_driver_current_lane2_xe17=0x1
|
||||
serdes_pre_driver_current_lane3_xe17=0x1
|
||||
serdes_preemphasis_lane0_xe17=0xa370
|
||||
serdes_preemphasis_lane1_xe17=0xa370
|
||||
serdes_preemphasis_lane2_xe17=0xa370
|
||||
serdes_preemphasis_lane3_xe17=0xa370
|
||||
|
||||
# xe18 (40G)
|
||||
portmap_19=73:40
|
||||
xgxs_rx_lane_map_19=0x213
|
||||
xgxs_tx_lane_map_19=0x2031
|
||||
phy_xaui_rx_polarity_flip_19=0x1
|
||||
phy_xaui_tx_polarity_flip_19=0x0
|
||||
serdes_driver_current_lane0_xe18=0x2
|
||||
serdes_driver_current_lane1_xe18=0x2
|
||||
serdes_driver_current_lane2_xe18=0x2
|
||||
serdes_driver_current_lane3_xe18=0x2
|
||||
serdes_pre_driver_current_lane0_xe18=0x2
|
||||
serdes_pre_driver_current_lane1_xe18=0x2
|
||||
serdes_pre_driver_current_lane2_xe18=0x2
|
||||
serdes_pre_driver_current_lane3_xe18=0x2
|
||||
serdes_preemphasis_lane0_xe18=0xa760
|
||||
serdes_preemphasis_lane1_xe18=0xa760
|
||||
serdes_preemphasis_lane2_xe18=0xa760
|
||||
serdes_preemphasis_lane3_xe18=0xa760
|
||||
|
||||
# xe19 (40G)
|
||||
portmap_20=77:40
|
||||
xgxs_rx_lane_map_20=0x123
|
||||
xgxs_tx_lane_map_20=0x1203
|
||||
phy_xaui_rx_polarity_flip_20=0x3
|
||||
phy_xaui_tx_polarity_flip_20=0xe
|
||||
serdes_driver_current_lane0_xe19=0x2
|
||||
serdes_driver_current_lane1_xe19=0x2
|
||||
serdes_driver_current_lane2_xe19=0x2
|
||||
serdes_driver_current_lane3_xe19=0x2
|
||||
serdes_pre_driver_current_lane0_xe19=0x2
|
||||
serdes_pre_driver_current_lane1_xe19=0x2
|
||||
serdes_pre_driver_current_lane2_xe19=0x2
|
||||
serdes_pre_driver_current_lane3_xe19=0x2
|
||||
serdes_preemphasis_lane0_xe19=0xaf40
|
||||
serdes_preemphasis_lane1_xe19=0xaf40
|
||||
serdes_preemphasis_lane2_xe19=0xaf40
|
||||
serdes_preemphasis_lane3_xe19=0xaf40
|
||||
|
||||
# xe20 (40G)
|
||||
portmap_21=109:40
|
||||
xgxs_rx_lane_map_21=0x132
|
||||
xgxs_tx_lane_map_21=0x132
|
||||
phy_xaui_rx_polarity_flip_21=0x8
|
||||
phy_xaui_tx_polarity_flip_21=0x0
|
||||
serdes_driver_current_lane0_xe20=0x1
|
||||
serdes_driver_current_lane1_xe20=0x1
|
||||
serdes_driver_current_lane2_xe20=0x1
|
||||
serdes_driver_current_lane3_xe20=0x2
|
||||
serdes_pre_driver_current_lane0_xe20=0x1
|
||||
serdes_pre_driver_current_lane1_xe20=0x1
|
||||
serdes_pre_driver_current_lane2_xe20=0x1
|
||||
serdes_pre_driver_current_lane3_xe20=0x2
|
||||
serdes_preemphasis_lane0_xe20=0xb330
|
||||
serdes_preemphasis_lane1_xe20=0xb330
|
||||
serdes_preemphasis_lane2_xe20=0xb330
|
||||
serdes_preemphasis_lane3_xe20=0xbff0
|
||||
|
||||
# xe21 (40G)
|
||||
portmap_22=105:40
|
||||
xgxs_rx_lane_map_22=0x1320
|
||||
xgxs_tx_lane_map_22=0x3021
|
||||
phy_xaui_rx_polarity_flip_22=0xd
|
||||
phy_xaui_tx_polarity_flip_22=0xb
|
||||
serdes_driver_current_lane0_xe21=0x1
|
||||
serdes_driver_current_lane1_xe21=0x1
|
||||
serdes_driver_current_lane2_xe21=0x1
|
||||
serdes_driver_current_lane3_xe21=0x1
|
||||
serdes_pre_driver_current_lane0_xe21=0x1
|
||||
serdes_pre_driver_current_lane1_xe21=0x1
|
||||
serdes_pre_driver_current_lane2_xe21=0x1
|
||||
serdes_pre_driver_current_lane3_xe21=0x1
|
||||
serdes_preemphasis_lane0_xe21=0xb330
|
||||
serdes_preemphasis_lane1_xe21=0xb330
|
||||
serdes_preemphasis_lane2_xe21=0xb330
|
||||
serdes_preemphasis_lane3_xe21=0xb330
|
||||
|
||||
# xe22 (40G)
|
||||
portmap_23=113:40
|
||||
xgxs_rx_lane_map_23=0x132
|
||||
xgxs_tx_lane_map_23=0x132
|
||||
phy_xaui_rx_polarity_flip_23=0x8
|
||||
phy_xaui_tx_polarity_flip_23=0x0
|
||||
serdes_driver_current_lane0_xe22=0x1
|
||||
serdes_driver_current_lane1_xe22=0x1
|
||||
serdes_driver_current_lane2_xe22=0x1
|
||||
serdes_driver_current_lane3_xe22=0x1
|
||||
serdes_pre_driver_current_lane0_xe22=0x1
|
||||
serdes_pre_driver_current_lane1_xe22=0x1
|
||||
serdes_pre_driver_current_lane2_xe22=0x1
|
||||
serdes_pre_driver_current_lane3_xe22=0x1
|
||||
serdes_preemphasis_lane0_xe22=0xbb10
|
||||
serdes_preemphasis_lane1_xe22=0xbb10
|
||||
serdes_preemphasis_lane2_xe22=0xbb10
|
||||
serdes_preemphasis_lane3_xe22=0xc2f0
|
||||
|
||||
# xe23 (40G)
|
||||
portmap_24=117:40
|
||||
xgxs_rx_lane_map_24=0x231
|
||||
xgxs_tx_lane_map_24=0x1203
|
||||
phy_xaui_rx_polarity_flip_24=0x3
|
||||
phy_xaui_tx_polarity_flip_24=0xe
|
||||
serdes_driver_current_lane0_xe23=0x3
|
||||
serdes_driver_current_lane1_xe23=0x5
|
||||
serdes_driver_current_lane2_xe23=0x3
|
||||
serdes_driver_current_lane3_xe23=0x3
|
||||
serdes_pre_driver_current_lane0_xe23=0x3
|
||||
serdes_pre_driver_current_lane1_xe23=0x5
|
||||
serdes_pre_driver_current_lane2_xe23=0x3
|
||||
serdes_pre_driver_current_lane3_xe23=0x3
|
||||
serdes_preemphasis_lane0_xe23=0xc6e0
|
||||
serdes_preemphasis_lane1_xe23=0xc6e0
|
||||
serdes_preemphasis_lane2_xe23=0xc6e0
|
||||
serdes_preemphasis_lane3_xe23=0xc6e0
|
||||
|
||||
# xe24 (40G)
|
||||
portmap_25=125:40
|
||||
xgxs_rx_lane_map_25=0x132
|
||||
xgxs_tx_lane_map_25=0x132
|
||||
phy_xaui_rx_polarity_flip_25=0x8
|
||||
phy_xaui_tx_polarity_flip_25=0x0
|
||||
serdes_driver_current_lane0_xe24=0x4
|
||||
serdes_driver_current_lane1_xe24=0x4
|
||||
serdes_driver_current_lane2_xe24=0x4
|
||||
serdes_driver_current_lane3_xe24=0x4
|
||||
serdes_pre_driver_current_lane0_xe24=0x4
|
||||
serdes_pre_driver_current_lane1_xe24=0x4
|
||||
serdes_pre_driver_current_lane2_xe24=0x4
|
||||
serdes_pre_driver_current_lane3_xe24=0x4
|
||||
serdes_preemphasis_lane0_xe24=0xc6e0
|
||||
serdes_preemphasis_lane1_xe24=0xc6e0
|
||||
serdes_preemphasis_lane2_xe24=0xc6e0
|
||||
serdes_preemphasis_lane3_xe24=0xcec0
|
||||
|
||||
# xe25 (40G)
|
||||
portmap_26=121:40
|
||||
xgxs_rx_lane_map_26=0x1320
|
||||
xgxs_tx_lane_map_26=0x3021
|
||||
phy_xaui_rx_polarity_flip_26=0xd
|
||||
phy_xaui_tx_polarity_flip_26=0xb
|
||||
serdes_driver_current_lane0_xe25=0x4
|
||||
serdes_driver_current_lane1_xe25=0x4
|
||||
serdes_driver_current_lane2_xe25=0x4
|
||||
serdes_driver_current_lane3_xe25=0x4
|
||||
serdes_pre_driver_current_lane0_xe25=0x4
|
||||
serdes_pre_driver_current_lane1_xe25=0x4
|
||||
serdes_pre_driver_current_lane2_xe25=0x4
|
||||
serdes_pre_driver_current_lane3_xe25=0x4
|
||||
serdes_preemphasis_lane0_xe25=0xc6e0
|
||||
serdes_preemphasis_lane1_xe25=0xc6e0
|
||||
serdes_preemphasis_lane2_xe25=0xc6e0
|
||||
serdes_preemphasis_lane3_xe25=0xc6e0
|
||||
|
||||
# xe26 (40G)
|
||||
portmap_27=81:40
|
||||
xgxs_rx_lane_map_27=0x1320
|
||||
xgxs_tx_lane_map_27=0x2031
|
||||
phy_xaui_rx_polarity_flip_27=0x1
|
||||
phy_xaui_tx_polarity_flip_27=0x2
|
||||
serdes_driver_current_lane0_xe26=0x2
|
||||
serdes_driver_current_lane1_xe26=0x2
|
||||
serdes_driver_current_lane2_xe26=0x2
|
||||
serdes_driver_current_lane3_xe26=0x2
|
||||
serdes_pre_driver_current_lane0_xe26=0x2
|
||||
serdes_pre_driver_current_lane1_xe26=0x2
|
||||
serdes_pre_driver_current_lane2_xe26=0x2
|
||||
serdes_pre_driver_current_lane3_xe26=0x2
|
||||
serdes_preemphasis_lane0_xe26=0xbb10
|
||||
serdes_preemphasis_lane1_xe26=0xbb10
|
||||
serdes_preemphasis_lane2_xe26=0xbf00
|
||||
serdes_preemphasis_lane3_xe26=0xbb10
|
||||
|
||||
# xe27 (40G)
|
||||
portmap_28=85:40
|
||||
xgxs_rx_lane_map_28=0x213
|
||||
xgxs_tx_lane_map_28=0x1203
|
||||
phy_xaui_rx_polarity_flip_28=0xc
|
||||
phy_xaui_tx_polarity_flip_28=0xe
|
||||
serdes_driver_current_lane0_xe27=0x4
|
||||
serdes_driver_current_lane1_xe27=0x5
|
||||
serdes_driver_current_lane2_xe27=0x4
|
||||
serdes_driver_current_lane3_xe27=0x5
|
||||
serdes_pre_driver_current_lane0_xe27=0x4
|
||||
serdes_pre_driver_current_lane1_xe27=0x5
|
||||
serdes_pre_driver_current_lane2_xe27=0x4
|
||||
serdes_pre_driver_current_lane3_xe27=0x5
|
||||
serdes_preemphasis_lane0_xe27=0xc2f0
|
||||
serdes_preemphasis_lane1_xe27=0xc6e0
|
||||
serdes_preemphasis_lane2_xe27=0xc6e0
|
||||
serdes_preemphasis_lane3_xe27=0xc6e0
|
||||
|
||||
# xe28 (40G)
|
||||
portmap_29=93:40
|
||||
xgxs_rx_lane_map_29=0x1320
|
||||
xgxs_tx_lane_map_29=0x2031
|
||||
phy_xaui_rx_polarity_flip_29=0x1
|
||||
phy_xaui_tx_polarity_flip_29=0x2
|
||||
serdes_driver_current_lane0_xe28=0x4
|
||||
serdes_driver_current_lane1_xe28=0x4
|
||||
serdes_driver_current_lane2_xe28=0x4
|
||||
serdes_driver_current_lane3_xe28=0x4
|
||||
serdes_pre_driver_current_lane0_xe28=0x4
|
||||
serdes_pre_driver_current_lane1_xe28=0x4
|
||||
serdes_pre_driver_current_lane2_xe28=0x4
|
||||
serdes_pre_driver_current_lane3_xe28=0x4
|
||||
serdes_preemphasis_lane0_xe28=0xc2f0
|
||||
serdes_preemphasis_lane1_xe28=0xc2f0
|
||||
serdes_preemphasis_lane2_xe28=0xc2f0
|
||||
serdes_preemphasis_lane3_xe28=0xc2f0
|
||||
|
||||
# xe29 (40G)
|
||||
portmap_30=89:40
|
||||
xgxs_rx_lane_map_30=0x1320
|
||||
xgxs_tx_lane_map_30=0x3021
|
||||
phy_xaui_rx_polarity_flip_30=0x2
|
||||
phy_xaui_tx_polarity_flip_30=0xb
|
||||
serdes_driver_current_lane0_xe29=0x4
|
||||
serdes_driver_current_lane1_xe29=0x4
|
||||
serdes_driver_current_lane2_xe29=0x4
|
||||
serdes_driver_current_lane3_xe29=0x4
|
||||
serdes_pre_driver_current_lane0_xe29=0x4
|
||||
serdes_pre_driver_current_lane1_xe29=0x4
|
||||
serdes_pre_driver_current_lane2_xe29=0x4
|
||||
serdes_pre_driver_current_lane3_xe29=0x4
|
||||
serdes_preemphasis_lane0_xe29=0xcad0
|
||||
serdes_preemphasis_lane1_xe29=0xc6e0
|
||||
serdes_preemphasis_lane2_xe29=0xc6e0
|
||||
serdes_preemphasis_lane3_xe29=0xc6e0
|
||||
|
||||
# xe30 (40G)
|
||||
portmap_31=101:40
|
||||
xgxs_rx_lane_map_31=0x1320
|
||||
xgxs_tx_lane_map_31=0x1203
|
||||
phy_xaui_rx_polarity_flip_31=0x1
|
||||
phy_xaui_tx_polarity_flip_31=0x6
|
||||
serdes_driver_current_lane0_xe30=0x6
|
||||
serdes_driver_current_lane1_xe30=0x6
|
||||
serdes_driver_current_lane2_xe30=0x6
|
||||
serdes_driver_current_lane3_xe30=0x7
|
||||
serdes_pre_driver_current_lane0_xe30=0x6
|
||||
serdes_pre_driver_current_lane1_xe30=0x6
|
||||
serdes_pre_driver_current_lane2_xe30=0x6
|
||||
serdes_pre_driver_current_lane3_xe30=0x7
|
||||
serdes_preemphasis_lane0_xe30=0xcec0
|
||||
serdes_preemphasis_lane1_xe30=0xcec0
|
||||
serdes_preemphasis_lane2_xe30=0xcad0
|
||||
serdes_preemphasis_lane3_xe30=0xc6e0
|
||||
|
||||
# xe31 (40G)
|
||||
portmap_32=97:40
|
||||
xgxs_rx_lane_map_32=0x213
|
||||
xgxs_tx_lane_map_32=0x2031
|
||||
phy_xaui_rx_polarity_flip_32=0xc
|
||||
phy_xaui_tx_polarity_flip_32=0x3
|
||||
serdes_driver_current_lane0_xe31=0x5
|
||||
serdes_driver_current_lane1_xe31=0x5
|
||||
serdes_driver_current_lane2_xe31=0x5
|
||||
serdes_driver_current_lane3_xe31=0x5
|
||||
serdes_pre_driver_current_lane0_xe31=0x5
|
||||
serdes_pre_driver_current_lane1_xe31=0x5
|
||||
serdes_pre_driver_current_lane2_xe31=0x5
|
||||
serdes_pre_driver_current_lane3_xe31=0x5
|
||||
serdes_preemphasis_lane0_xe31=0xcad0
|
||||
serdes_preemphasis_lane1_xe31=0xcad0
|
||||
serdes_preemphasis_lane2_xe31=0xcad0
|
||||
serdes_preemphasis_lane3_xe31=0xcad0
|
@ -0,0 +1,3 @@
|
||||
{%- set default_topo = 't1' %}
|
||||
{%- include 'buffers_config.j2' %}
|
||||
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,17 @@
|
||||
# PG lossless profiles.
|
||||
# speed cable size xon xoff threshold xon_offset
|
||||
10000 5m 56368 18432 55120 -3 2496
|
||||
25000 5m 56368 18432 55120 -3 2496
|
||||
40000 5m 56368 18432 55120 -3 2496
|
||||
50000 5m 56368 18432 55120 -3 2496
|
||||
100000 5m 56368 18432 55120 -3 2496
|
||||
10000 40m 56368 18432 55120 -3 2496
|
||||
25000 40m 56368 18432 55120 -3 2496
|
||||
40000 40m 56368 18432 55120 -3 2496
|
||||
50000 40m 56368 18432 55120 -3 2496
|
||||
100000 40m 56368 18432 55120 -3 2496
|
||||
10000 300m 56368 18432 55120 -3 2496
|
||||
25000 300m 56368 18432 55120 -3 2496
|
||||
40000 300m 56368 18432 55120 -3 2496
|
||||
50000 300m 56368 18432 55120 -3 2496
|
||||
100000 300m 56368 18432 55120 -3 2496
|
@ -0,0 +1,33 @@
|
||||
# name lanes alias index speed
|
||||
Ethernet0 25,26,27,28 fortyGigE0/0 0 40000
|
||||
Ethernet4 29,30,31,32 fortyGigE0/4 1 40000
|
||||
Ethernet8 33,34,35,36 fortyGigE0/8 2 40000
|
||||
Ethernet12 37,38,39,40 fortyGigE0/12 3 40000
|
||||
Ethernet16 45,46,47,48 fortyGigE0/16 4 40000
|
||||
Ethernet20 41,42,43,44 fortyGigE0/20 5 40000
|
||||
Ethernet24 1,2,3,4 fortyGigE0/24 6 40000
|
||||
Ethernet28 5,6,7,8 fortyGigE0/28 7 40000
|
||||
Ethernet32 13,14,15,16 fortyGigE0/32 8 40000
|
||||
Ethernet36 9,10,11,12 fortyGigE0/36 9 40000
|
||||
Ethernet40 17,18,19,20 fortyGigE0/40 10 40000
|
||||
Ethernet44 21,22,23,24 fortyGigE0/44 11 40000
|
||||
Ethernet48 53,54,55,56 fortyGigE0/48 12 40000
|
||||
Ethernet52 49,50,51,52 fortyGigE0/52 13 40000
|
||||
Ethernet56 57,58,59,60 fortyGigE0/56 14 40000
|
||||
Ethernet60 61,62,63,64 fortyGigE0/60 15 40000
|
||||
Ethernet64 69,70,71,72 fortyGigE0/64 16 40000
|
||||
Ethernet68 65,66,67,68 fortyGigE0/68 17 40000
|
||||
Ethernet72 73,74,75,76 fortyGigE0/72 18 40000
|
||||
Ethernet76 77,78,79,80 fortyGigE0/76 19 40000
|
||||
Ethernet80 109,110,111,112 fortyGigE0/80 20 40000
|
||||
Ethernet84 105,106,107,108 fortyGigE0/84 21 40000
|
||||
Ethernet88 113,114,115,116 fortyGigE0/88 22 40000
|
||||
Ethernet92 117,118,119,120 fortyGigE0/92 23 40000
|
||||
Ethernet96 125,126,127,128 fortyGigE0/96 24 40000
|
||||
Ethernet100 121,122,123,124 fortyGigE0/100 25 40000
|
||||
Ethernet104 81,82,83,84 fortyGigE0/104 26 40000
|
||||
Ethernet108 85,86,87,88 fortyGigE0/108 27 40000
|
||||
Ethernet112 93,94,95,96 fortyGigE0/112 28 40000
|
||||
Ethernet116 89,90,91,92 fortyGigE0/116 29 40000
|
||||
Ethernet120 101,102,103,104 fortyGigE0/120 30 40000
|
||||
Ethernet124 97,98,99,100 fortyGigE0/124 31 40000
|
@ -0,0 +1 @@
|
||||
{%- include 'qos_config.j2' %}
|
@ -0,0 +1,2 @@
|
||||
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/td2-s6000-32x40G.config.bcm
|
||||
SAI_NUM_ECMP_MEMBERS=32
|
@ -0,0 +1,646 @@
|
||||
# Old LPM only configuration
|
||||
# l2_mem_entries=163840
|
||||
# l3_mem_entries=90112
|
||||
# l3_alpm_enable=0
|
||||
# ipv6_lpm_128b_enable=0
|
||||
#
|
||||
# ALPM enable
|
||||
l3_alpm_enable=2
|
||||
ipv6_lpm_128b_enable=1
|
||||
l2_mem_entries=32768
|
||||
l3_mem_entries=16384
|
||||
|
||||
# From old config file
|
||||
os=unix
|
||||
higig2_hdr_mode=1
|
||||
|
||||
# Parity
|
||||
parity_correction=1
|
||||
parity_enable=1
|
||||
stat_if_parity_enable=0
|
||||
|
||||
#
|
||||
bcm_num_cos=8
|
||||
bcm_stat_interval=2000000
|
||||
l2xmsg_hostbuf_size=8192
|
||||
l2xmsg_mode=1
|
||||
lls_num_l2uc=12
|
||||
max_vp_lags=0
|
||||
miim_intr_enable=0
|
||||
mmu_lossless=0
|
||||
module_64ports=0
|
||||
schan_intr_enable=0
|
||||
stable_size=0x2000000
|
||||
tdma_timeout_usec=5000000
|
||||
|
||||
pbmp_oversubscribe=0x000007fffffffffffffffffffffffffe
|
||||
pbmp_xport_xe=0x000007fffffffffffffffffffffffffe
|
||||
|
||||
# Ports configuration
|
||||
# xe0 (40G)
|
||||
portmap_1=25:40
|
||||
xgxs_rx_lane_map_1=0x213
|
||||
xgxs_tx_lane_map_1=0x2031
|
||||
phy_xaui_rx_polarity_flip_1=0xe
|
||||
phy_xaui_tx_polarity_flip_1=0x2
|
||||
serdes_driver_current_lane0_xe0=0x5
|
||||
serdes_driver_current_lane1_xe0=0x5
|
||||
serdes_driver_current_lane2_xe0=0x5
|
||||
serdes_driver_current_lane3_xe0=0x5
|
||||
serdes_pre_driver_current_lane0_xe0=0x5
|
||||
serdes_pre_driver_current_lane1_xe0=0x5
|
||||
serdes_pre_driver_current_lane2_xe0=0x5
|
||||
serdes_pre_driver_current_lane3_xe0=0x5
|
||||
serdes_preemphasis_lane0_xe0=0xcad0
|
||||
serdes_preemphasis_lane1_xe0=0xc6e0
|
||||
serdes_preemphasis_lane2_xe0=0xc6e0
|
||||
serdes_preemphasis_lane3_xe0=0xd2b0
|
||||
|
||||
# xe1 (40G)
|
||||
portmap_2=29:40
|
||||
xgxs_rx_lane_map_2=0x213
|
||||
xgxs_tx_lane_map_2=0x213
|
||||
phy_xaui_rx_polarity_flip_2=0xc
|
||||
phy_xaui_tx_polarity_flip_2=0x9
|
||||
serdes_driver_current_lane0_xe1=0x6
|
||||
serdes_driver_current_lane1_xe1=0x7
|
||||
serdes_driver_current_lane2_xe1=0x6
|
||||
serdes_driver_current_lane3_xe1=0x6
|
||||
serdes_pre_driver_current_lane0_xe1=0x6
|
||||
serdes_pre_driver_current_lane1_xe1=0x7
|
||||
serdes_pre_driver_current_lane2_xe1=0x6
|
||||
serdes_pre_driver_current_lane3_xe1=0x6
|
||||
serdes_preemphasis_lane0_xe1=0xc2f0
|
||||
serdes_preemphasis_lane1_xe1=0xd2b0
|
||||
serdes_preemphasis_lane2_xe1=0xc6e0
|
||||
serdes_preemphasis_lane3_xe1=0xc2f0
|
||||
|
||||
# xe2 (40G)
|
||||
portmap_3=33:40
|
||||
xgxs_rx_lane_map_3=0x213
|
||||
xgxs_tx_lane_map_3=0x132
|
||||
phy_xaui_rx_polarity_flip_3=0xe
|
||||
phy_xaui_tx_polarity_flip_3=0x2
|
||||
serdes_driver_current_lane0_xe2=0x4
|
||||
serdes_driver_current_lane1_xe2=0x4
|
||||
serdes_driver_current_lane2_xe2=0x4
|
||||
serdes_driver_current_lane3_xe2=0x4
|
||||
serdes_pre_driver_current_lane0_xe2=0x4
|
||||
serdes_pre_driver_current_lane1_xe2=0x4
|
||||
serdes_pre_driver_current_lane2_xe2=0x4
|
||||
serdes_pre_driver_current_lane3_xe2=0x4
|
||||
serdes_preemphasis_lane0_xe2=0xc6e0
|
||||
serdes_preemphasis_lane1_xe2=0xc6e0
|
||||
serdes_preemphasis_lane2_xe2=0xc6e0
|
||||
serdes_preemphasis_lane3_xe2=0xc6e0
|
||||
|
||||
# xe3 (40G)
|
||||
portmap_4=37:40
|
||||
xgxs_rx_lane_map_4=0x213
|
||||
xgxs_tx_lane_map_4=0x1203
|
||||
phy_xaui_rx_polarity_flip_4=0x3
|
||||
phy_xaui_tx_polarity_flip_4=0xe
|
||||
serdes_driver_current_lane0_xe3=0x4
|
||||
serdes_driver_current_lane1_xe3=0x4
|
||||
serdes_driver_current_lane2_xe3=0x4
|
||||
serdes_driver_current_lane3_xe3=0x4
|
||||
serdes_pre_driver_current_lane0_xe3=0x4
|
||||
serdes_pre_driver_current_lane1_xe3=0x4
|
||||
serdes_pre_driver_current_lane2_xe3=0x4
|
||||
serdes_pre_driver_current_lane3_xe3=0x4
|
||||
serdes_preemphasis_lane0_xe3=0xcad0
|
||||
serdes_preemphasis_lane1_xe3=0xcad0
|
||||
serdes_preemphasis_lane2_xe3=0xc2f0
|
||||
serdes_preemphasis_lane3_xe3=0xc2f0
|
||||
|
||||
# xe4 (40G)
|
||||
portmap_5=45:40
|
||||
xgxs_rx_lane_map_5=0x213
|
||||
xgxs_tx_lane_map_5=0x213
|
||||
phy_xaui_rx_polarity_flip_5=0xe
|
||||
phy_xaui_tx_polarity_flip_5=0x8
|
||||
serdes_driver_current_lane0_xe4=0x4
|
||||
serdes_driver_current_lane1_xe4=0x4
|
||||
serdes_driver_current_lane2_xe4=0x4
|
||||
serdes_driver_current_lane3_xe4=0x4
|
||||
serdes_pre_driver_current_lane0_xe4=0x4
|
||||
serdes_pre_driver_current_lane1_xe4=0x4
|
||||
serdes_pre_driver_current_lane2_xe4=0x4
|
||||
serdes_pre_driver_current_lane3_xe4=0x4
|
||||
serdes_preemphasis_lane0_xe4=0xc2f0
|
||||
serdes_preemphasis_lane1_xe4=0xc2f0
|
||||
serdes_preemphasis_lane2_xe4=0xc2f0
|
||||
serdes_preemphasis_lane3_xe4=0xc2f0
|
||||
|
||||
# xe5 (40G)
|
||||
portmap_6=41:40
|
||||
xgxs_rx_lane_map_6=0x213
|
||||
xgxs_tx_lane_map_6=0x3021
|
||||
phy_xaui_rx_polarity_flip_6=0x3
|
||||
phy_xaui_tx_polarity_flip_6=0xb
|
||||
serdes_driver_current_lane0_xe5=0x4
|
||||
serdes_driver_current_lane1_xe5=0x4
|
||||
serdes_driver_current_lane2_xe5=0x4
|
||||
serdes_driver_current_lane3_xe5=0x4
|
||||
serdes_pre_driver_current_lane0_xe5=0x4
|
||||
serdes_pre_driver_current_lane1_xe5=0x4
|
||||
serdes_pre_driver_current_lane2_xe5=0x4
|
||||
serdes_pre_driver_current_lane3_xe5=0x4
|
||||
serdes_preemphasis_lane0_xe5=0xc6e0
|
||||
serdes_preemphasis_lane1_xe5=0xc2f0
|
||||
serdes_preemphasis_lane2_xe5=0xc2f0
|
||||
serdes_preemphasis_lane3_xe5=0xcad0
|
||||
|
||||
# xe6 (40G)
|
||||
portmap_7=1:40
|
||||
xgxs_rx_lane_map_7=0x213
|
||||
xgxs_tx_lane_map_7=0x2031
|
||||
phy_xaui_rx_polarity_flip_7=0xe
|
||||
phy_xaui_tx_polarity_flip_7=0xd
|
||||
serdes_driver_current_lane0_xe6=0x5
|
||||
serdes_driver_current_lane1_xe6=0x5
|
||||
serdes_driver_current_lane2_xe6=0x5
|
||||
serdes_driver_current_lane3_xe6=0x5
|
||||
serdes_pre_driver_current_lane0_xe6=0x5
|
||||
serdes_pre_driver_current_lane1_xe6=0x5
|
||||
serdes_pre_driver_current_lane2_xe6=0x5
|
||||
serdes_pre_driver_current_lane3_xe6=0x5
|
||||
serdes_preemphasis_lane0_xe6=0xc6e0
|
||||
serdes_preemphasis_lane1_xe6=0xcad0
|
||||
serdes_preemphasis_lane2_xe6=0xc6e0
|
||||
serdes_preemphasis_lane3_xe6=0xcad0
|
||||
|
||||
# xe7 (40G)
|
||||
portmap_8=5:40
|
||||
xgxs_rx_lane_map_8=0x213
|
||||
xgxs_tx_lane_map_8=0x1203
|
||||
phy_xaui_rx_polarity_flip_8=0xc
|
||||
phy_xaui_tx_polarity_flip_8=0x1
|
||||
serdes_driver_current_lane0_xe7=0x4
|
||||
serdes_driver_current_lane1_xe7=0x4
|
||||
serdes_driver_current_lane2_xe7=0x4
|
||||
serdes_driver_current_lane3_xe7=0x4
|
||||
serdes_pre_driver_current_lane0_xe7=0x4
|
||||
serdes_pre_driver_current_lane1_xe7=0x4
|
||||
serdes_pre_driver_current_lane2_xe7=0x4
|
||||
serdes_pre_driver_current_lane3_xe7=0x4
|
||||
serdes_preemphasis_lane0_xe7=0xc6e0
|
||||
serdes_preemphasis_lane1_xe7=0xc6e0
|
||||
serdes_preemphasis_lane2_xe7=0xc6e0
|
||||
serdes_preemphasis_lane3_xe7=0xc6e0
|
||||
|
||||
# xe8 (40G)
|
||||
portmap_9=13:40
|
||||
xgxs_rx_lane_map_9=0x213
|
||||
xgxs_tx_lane_map_9=0x132
|
||||
phy_xaui_rx_polarity_flip_9=0xe
|
||||
phy_xaui_tx_polarity_flip_9=0x0
|
||||
serdes_driver_current_lane0_xe8=0x2
|
||||
serdes_driver_current_lane1_xe8=0x3
|
||||
serdes_driver_current_lane2_xe8=0x2
|
||||
serdes_driver_current_lane3_xe8=0x2
|
||||
serdes_pre_driver_current_lane0_xe8=0x2
|
||||
serdes_pre_driver_current_lane1_xe8=0x3
|
||||
serdes_pre_driver_current_lane2_xe8=0x2
|
||||
serdes_pre_driver_current_lane3_xe8=0x2
|
||||
serdes_preemphasis_lane0_xe8=0xb270
|
||||
serdes_preemphasis_lane1_xe8=0xbb10
|
||||
serdes_preemphasis_lane2_xe8=0xb720
|
||||
serdes_preemphasis_lane3_xe8=0xb720
|
||||
|
||||
# xe9 (40G)
|
||||
portmap_10=9:40
|
||||
xgxs_rx_lane_map_10=0x3120
|
||||
xgxs_tx_lane_map_10=0x3021
|
||||
phy_xaui_rx_polarity_flip_10=0x0
|
||||
phy_xaui_tx_polarity_flip_10=0x4
|
||||
serdes_driver_current_lane0_xe9=0x3
|
||||
serdes_driver_current_lane1_xe9=0x3
|
||||
serdes_driver_current_lane2_xe9=0x3
|
||||
serdes_driver_current_lane3_xe9=0x3
|
||||
serdes_pre_driver_current_lane0_xe9=0x3
|
||||
serdes_pre_driver_current_lane1_xe9=0x3
|
||||
serdes_pre_driver_current_lane2_xe9=0x3
|
||||
serdes_pre_driver_current_lane3_xe9=0x3
|
||||
serdes_preemphasis_lane0_xe9=0xc2f0
|
||||
serdes_preemphasis_lane1_xe9=0xc6e0
|
||||
serdes_preemphasis_lane2_xe9=0xbf00
|
||||
serdes_preemphasis_lane3_xe9=0xc2f0
|
||||
|
||||
# xe10 (40G)
|
||||
portmap_11=17:40
|
||||
xgxs_rx_lane_map_11=0x213
|
||||
xgxs_tx_lane_map_11=0x132
|
||||
phy_xaui_rx_polarity_flip_11=0xe
|
||||
phy_xaui_tx_polarity_flip_11=0x0
|
||||
serdes_driver_current_lane0_xe10=0x2
|
||||
serdes_driver_current_lane1_xe10=0x2
|
||||
serdes_driver_current_lane2_xe10=0x2
|
||||
serdes_driver_current_lane3_xe10=0x2
|
||||
serdes_pre_driver_current_lane0_xe10=0x2
|
||||
serdes_pre_driver_current_lane1_xe10=0x2
|
||||
serdes_pre_driver_current_lane2_xe10=0x2
|
||||
serdes_pre_driver_current_lane3_xe10=0x2
|
||||
serdes_preemphasis_lane0_xe10=0xb330
|
||||
serdes_preemphasis_lane1_xe10=0xbb10
|
||||
serdes_preemphasis_lane2_xe10=0xbb10
|
||||
serdes_preemphasis_lane3_xe10=0xbb10
|
||||
|
||||
# xe11 (40G)
|
||||
portmap_12=21:40
|
||||
xgxs_rx_lane_map_12=0x123
|
||||
xgxs_tx_lane_map_12=0x1203
|
||||
phy_xaui_rx_polarity_flip_12=0xc
|
||||
phy_xaui_tx_polarity_flip_12=0xe
|
||||
serdes_driver_current_lane0_xe11=0x2
|
||||
serdes_driver_current_lane1_xe11=0x2
|
||||
serdes_driver_current_lane2_xe11=0x2
|
||||
serdes_driver_current_lane3_xe11=0x2
|
||||
serdes_pre_driver_current_lane0_xe11=0x2
|
||||
serdes_pre_driver_current_lane1_xe11=0x2
|
||||
serdes_pre_driver_current_lane2_xe11=0x2
|
||||
serdes_pre_driver_current_lane3_xe11=0x2
|
||||
serdes_preemphasis_lane0_xe11=0xb330
|
||||
serdes_preemphasis_lane1_xe11=0xb330
|
||||
serdes_preemphasis_lane2_xe11=0xb330
|
||||
serdes_preemphasis_lane3_xe11=0xb330
|
||||
|
||||
# xe12 (40G)
|
||||
portmap_13=53:40
|
||||
xgxs_rx_lane_map_13=0x213
|
||||
xgxs_tx_lane_map_13=0x231
|
||||
phy_xaui_rx_polarity_flip_13=0x1
|
||||
phy_xaui_tx_polarity_flip_13=0x0
|
||||
serdes_driver_current_lane0_xe12=0x2
|
||||
serdes_driver_current_lane1_xe12=0x2
|
||||
serdes_driver_current_lane2_xe12=0x2
|
||||
serdes_driver_current_lane3_xe12=0x2
|
||||
serdes_pre_driver_current_lane0_xe12=0x2
|
||||
serdes_pre_driver_current_lane1_xe12=0x2
|
||||
serdes_pre_driver_current_lane2_xe12=0x2
|
||||
serdes_pre_driver_current_lane3_xe12=0x2
|
||||
serdes_preemphasis_lane0_xe12=0xaf40
|
||||
serdes_preemphasis_lane1_xe12=0xaf40
|
||||
serdes_preemphasis_lane2_xe12=0xaf40
|
||||
serdes_preemphasis_lane3_xe12=0xaf40
|
||||
|
||||
# xe13 (40G)
|
||||
portmap_14=49:40
|
||||
xgxs_rx_lane_map_14=0x1302
|
||||
xgxs_tx_lane_map_14=0x2031
|
||||
phy_xaui_rx_polarity_flip_14=0xb
|
||||
phy_xaui_tx_polarity_flip_14=0x3
|
||||
serdes_driver_current_lane0_xe13=0x2
|
||||
serdes_driver_current_lane1_xe13=0x2
|
||||
serdes_driver_current_lane2_xe13=0x2
|
||||
serdes_driver_current_lane3_xe13=0x2
|
||||
serdes_pre_driver_current_lane0_xe13=0x2
|
||||
serdes_pre_driver_current_lane1_xe13=0x2
|
||||
serdes_pre_driver_current_lane2_xe13=0x2
|
||||
serdes_pre_driver_current_lane3_xe13=0x2
|
||||
serdes_preemphasis_lane0_xe13=0xa760
|
||||
serdes_preemphasis_lane1_xe13=0xa760
|
||||
serdes_preemphasis_lane2_xe13=0xa760
|
||||
serdes_preemphasis_lane3_xe13=0xa760
|
||||
|
||||
# xe14 (40G)
|
||||
portmap_15=57:40
|
||||
xgxs_rx_lane_map_15=0x213
|
||||
xgxs_tx_lane_map_15=0x2031
|
||||
phy_xaui_rx_polarity_flip_15=0x1
|
||||
phy_xaui_tx_polarity_flip_15=0x0
|
||||
serdes_driver_current_lane0_xe14=0x1
|
||||
serdes_driver_current_lane1_xe14=0x1
|
||||
serdes_driver_current_lane2_xe14=0x1
|
||||
serdes_driver_current_lane3_xe14=0x1
|
||||
serdes_pre_driver_current_lane0_xe14=0x1
|
||||
serdes_pre_driver_current_lane1_xe14=0x1
|
||||
serdes_pre_driver_current_lane2_xe14=0x1
|
||||
serdes_pre_driver_current_lane3_xe14=0x1
|
||||
serdes_preemphasis_lane0_xe14=0xa760
|
||||
serdes_preemphasis_lane1_xe14=0xa760
|
||||
serdes_preemphasis_lane2_xe14=0xa760
|
||||
serdes_preemphasis_lane3_xe14=0xa760
|
||||
|
||||
# xe15 (40G)
|
||||
portmap_16=61:40
|
||||
xgxs_rx_lane_map_16=0x132
|
||||
xgxs_tx_lane_map_16=0x213
|
||||
phy_xaui_rx_polarity_flip_16=0x0
|
||||
phy_xaui_tx_polarity_flip_16=0x0
|
||||
serdes_driver_current_lane0_xe15=0x2
|
||||
serdes_driver_current_lane1_xe15=0x2
|
||||
serdes_driver_current_lane2_xe15=0x2
|
||||
serdes_driver_current_lane3_xe15=0x2
|
||||
serdes_pre_driver_current_lane0_xe15=0x2
|
||||
serdes_pre_driver_current_lane1_xe15=0x2
|
||||
serdes_pre_driver_current_lane2_xe15=0x2
|
||||
serdes_pre_driver_current_lane3_xe15=0x2
|
||||
serdes_preemphasis_lane0_xe15=0xa760
|
||||
serdes_preemphasis_lane1_xe15=0xa760
|
||||
serdes_preemphasis_lane2_xe15=0xa760
|
||||
serdes_preemphasis_lane3_xe15=0xa760
|
||||
|
||||
# xe16 (40G)
|
||||
portmap_17=69:40
|
||||
xgxs_rx_lane_map_17=0x213
|
||||
xgxs_tx_lane_map_17=0x2130
|
||||
phy_xaui_rx_polarity_flip_17=0x1
|
||||
phy_xaui_tx_polarity_flip_17=0xf
|
||||
serdes_driver_current_lane0_xe16=0x1
|
||||
serdes_driver_current_lane1_xe16=0x1
|
||||
serdes_driver_current_lane2_xe16=0x1
|
||||
serdes_driver_current_lane3_xe16=0x1
|
||||
serdes_pre_driver_current_lane0_xe16=0x1
|
||||
serdes_pre_driver_current_lane1_xe16=0x1
|
||||
serdes_pre_driver_current_lane2_xe16=0x1
|
||||
serdes_pre_driver_current_lane3_xe16=0x1
|
||||
serdes_preemphasis_lane0_xe16=0xa760
|
||||
serdes_preemphasis_lane1_xe16=0xa760
|
||||
serdes_preemphasis_lane2_xe16=0xa760
|
||||
serdes_preemphasis_lane3_xe16=0xa760
|
||||
|
||||
# xe17 (40G)
|
||||
portmap_18=65:40
|
||||
xgxs_rx_lane_map_18=0x132
|
||||
xgxs_tx_lane_map_18=0x2031
|
||||
phy_xaui_rx_polarity_flip_18=0x3
|
||||
phy_xaui_tx_polarity_flip_18=0x9
|
||||
serdes_driver_current_lane0_xe17=0x1
|
||||
serdes_driver_current_lane1_xe17=0x1
|
||||
serdes_driver_current_lane2_xe17=0x1
|
||||
serdes_driver_current_lane3_xe17=0x1
|
||||
serdes_pre_driver_current_lane0_xe17=0x1
|
||||
serdes_pre_driver_current_lane1_xe17=0x1
|
||||
serdes_pre_driver_current_lane2_xe17=0x1
|
||||
serdes_pre_driver_current_lane3_xe17=0x1
|
||||
serdes_preemphasis_lane0_xe17=0xa370
|
||||
serdes_preemphasis_lane1_xe17=0xa370
|
||||
serdes_preemphasis_lane2_xe17=0xa370
|
||||
serdes_preemphasis_lane3_xe17=0xa370
|
||||
|
||||
# xe18 (40G)
|
||||
portmap_19=73:40
|
||||
xgxs_rx_lane_map_19=0x213
|
||||
xgxs_tx_lane_map_19=0x2031
|
||||
phy_xaui_rx_polarity_flip_19=0x1
|
||||
phy_xaui_tx_polarity_flip_19=0x0
|
||||
serdes_driver_current_lane0_xe18=0x2
|
||||
serdes_driver_current_lane1_xe18=0x2
|
||||
serdes_driver_current_lane2_xe18=0x2
|
||||
serdes_driver_current_lane3_xe18=0x2
|
||||
serdes_pre_driver_current_lane0_xe18=0x2
|
||||
serdes_pre_driver_current_lane1_xe18=0x2
|
||||
serdes_pre_driver_current_lane2_xe18=0x2
|
||||
serdes_pre_driver_current_lane3_xe18=0x2
|
||||
serdes_preemphasis_lane0_xe18=0xa760
|
||||
serdes_preemphasis_lane1_xe18=0xa760
|
||||
serdes_preemphasis_lane2_xe18=0xa760
|
||||
serdes_preemphasis_lane3_xe18=0xa760
|
||||
|
||||
# xe19 (40G)
|
||||
portmap_20=77:40
|
||||
xgxs_rx_lane_map_20=0x123
|
||||
xgxs_tx_lane_map_20=0x1203
|
||||
phy_xaui_rx_polarity_flip_20=0x3
|
||||
phy_xaui_tx_polarity_flip_20=0xe
|
||||
serdes_driver_current_lane0_xe19=0x2
|
||||
serdes_driver_current_lane1_xe19=0x2
|
||||
serdes_driver_current_lane2_xe19=0x2
|
||||
serdes_driver_current_lane3_xe19=0x2
|
||||
serdes_pre_driver_current_lane0_xe19=0x2
|
||||
serdes_pre_driver_current_lane1_xe19=0x2
|
||||
serdes_pre_driver_current_lane2_xe19=0x2
|
||||
serdes_pre_driver_current_lane3_xe19=0x2
|
||||
serdes_preemphasis_lane0_xe19=0xaf40
|
||||
serdes_preemphasis_lane1_xe19=0xaf40
|
||||
serdes_preemphasis_lane2_xe19=0xaf40
|
||||
serdes_preemphasis_lane3_xe19=0xaf40
|
||||
|
||||
# xe20 (40G)
|
||||
portmap_21=109:40
|
||||
xgxs_rx_lane_map_21=0x132
|
||||
xgxs_tx_lane_map_21=0x132
|
||||
phy_xaui_rx_polarity_flip_21=0x8
|
||||
phy_xaui_tx_polarity_flip_21=0x0
|
||||
serdes_driver_current_lane0_xe20=0x1
|
||||
serdes_driver_current_lane1_xe20=0x1
|
||||
serdes_driver_current_lane2_xe20=0x1
|
||||
serdes_driver_current_lane3_xe20=0x2
|
||||
serdes_pre_driver_current_lane0_xe20=0x1
|
||||
serdes_pre_driver_current_lane1_xe20=0x1
|
||||
serdes_pre_driver_current_lane2_xe20=0x1
|
||||
serdes_pre_driver_current_lane3_xe20=0x2
|
||||
serdes_preemphasis_lane0_xe20=0xb330
|
||||
serdes_preemphasis_lane1_xe20=0xb330
|
||||
serdes_preemphasis_lane2_xe20=0xb330
|
||||
serdes_preemphasis_lane3_xe20=0xbff0
|
||||
|
||||
# xe21 (40G)
|
||||
portmap_22=105:40
|
||||
xgxs_rx_lane_map_22=0x1320
|
||||
xgxs_tx_lane_map_22=0x3021
|
||||
phy_xaui_rx_polarity_flip_22=0xd
|
||||
phy_xaui_tx_polarity_flip_22=0xb
|
||||
serdes_driver_current_lane0_xe21=0x1
|
||||
serdes_driver_current_lane1_xe21=0x1
|
||||
serdes_driver_current_lane2_xe21=0x1
|
||||
serdes_driver_current_lane3_xe21=0x1
|
||||
serdes_pre_driver_current_lane0_xe21=0x1
|
||||
serdes_pre_driver_current_lane1_xe21=0x1
|
||||
serdes_pre_driver_current_lane2_xe21=0x1
|
||||
serdes_pre_driver_current_lane3_xe21=0x1
|
||||
serdes_preemphasis_lane0_xe21=0xb330
|
||||
serdes_preemphasis_lane1_xe21=0xb330
|
||||
serdes_preemphasis_lane2_xe21=0xb330
|
||||
serdes_preemphasis_lane3_xe21=0xb330
|
||||
|
||||
# xe22 (40G)
|
||||
portmap_23=113:40
|
||||
xgxs_rx_lane_map_23=0x132
|
||||
xgxs_tx_lane_map_23=0x132
|
||||
phy_xaui_rx_polarity_flip_23=0x8
|
||||
phy_xaui_tx_polarity_flip_23=0x0
|
||||
serdes_driver_current_lane0_xe22=0x1
|
||||
serdes_driver_current_lane1_xe22=0x1
|
||||
serdes_driver_current_lane2_xe22=0x1
|
||||
serdes_driver_current_lane3_xe22=0x1
|
||||
serdes_pre_driver_current_lane0_xe22=0x1
|
||||
serdes_pre_driver_current_lane1_xe22=0x1
|
||||
serdes_pre_driver_current_lane2_xe22=0x1
|
||||
serdes_pre_driver_current_lane3_xe22=0x1
|
||||
serdes_preemphasis_lane0_xe22=0xbb10
|
||||
serdes_preemphasis_lane1_xe22=0xbb10
|
||||
serdes_preemphasis_lane2_xe22=0xbb10
|
||||
serdes_preemphasis_lane3_xe22=0xc2f0
|
||||
|
||||
# xe23 (40G)
|
||||
portmap_24=117:40
|
||||
xgxs_rx_lane_map_24=0x231
|
||||
xgxs_tx_lane_map_24=0x1203
|
||||
phy_xaui_rx_polarity_flip_24=0x3
|
||||
phy_xaui_tx_polarity_flip_24=0xe
|
||||
serdes_driver_current_lane0_xe23=0x3
|
||||
serdes_driver_current_lane1_xe23=0x5
|
||||
serdes_driver_current_lane2_xe23=0x3
|
||||
serdes_driver_current_lane3_xe23=0x3
|
||||
serdes_pre_driver_current_lane0_xe23=0x3
|
||||
serdes_pre_driver_current_lane1_xe23=0x5
|
||||
serdes_pre_driver_current_lane2_xe23=0x3
|
||||
serdes_pre_driver_current_lane3_xe23=0x3
|
||||
serdes_preemphasis_lane0_xe23=0xc6e0
|
||||
serdes_preemphasis_lane1_xe23=0xc6e0
|
||||
serdes_preemphasis_lane2_xe23=0xc6e0
|
||||
serdes_preemphasis_lane3_xe23=0xc6e0
|
||||
|
||||
# xe24 (40G)
|
||||
portmap_25=125:40
|
||||
xgxs_rx_lane_map_25=0x132
|
||||
xgxs_tx_lane_map_25=0x132
|
||||
phy_xaui_rx_polarity_flip_25=0x8
|
||||
phy_xaui_tx_polarity_flip_25=0x0
|
||||
serdes_driver_current_lane0_xe24=0x4
|
||||
serdes_driver_current_lane1_xe24=0x4
|
||||
serdes_driver_current_lane2_xe24=0x4
|
||||
serdes_driver_current_lane3_xe24=0x4
|
||||
serdes_pre_driver_current_lane0_xe24=0x4
|
||||
serdes_pre_driver_current_lane1_xe24=0x4
|
||||
serdes_pre_driver_current_lane2_xe24=0x4
|
||||
serdes_pre_driver_current_lane3_xe24=0x4
|
||||
serdes_preemphasis_lane0_xe24=0xc6e0
|
||||
serdes_preemphasis_lane1_xe24=0xc6e0
|
||||
serdes_preemphasis_lane2_xe24=0xc6e0
|
||||
serdes_preemphasis_lane3_xe24=0xcec0
|
||||
|
||||
# xe25 (40G)
|
||||
portmap_26=121:40
|
||||
xgxs_rx_lane_map_26=0x1320
|
||||
xgxs_tx_lane_map_26=0x3021
|
||||
phy_xaui_rx_polarity_flip_26=0xd
|
||||
phy_xaui_tx_polarity_flip_26=0xb
|
||||
serdes_driver_current_lane0_xe25=0x4
|
||||
serdes_driver_current_lane1_xe25=0x4
|
||||
serdes_driver_current_lane2_xe25=0x4
|
||||
serdes_driver_current_lane3_xe25=0x4
|
||||
serdes_pre_driver_current_lane0_xe25=0x4
|
||||
serdes_pre_driver_current_lane1_xe25=0x4
|
||||
serdes_pre_driver_current_lane2_xe25=0x4
|
||||
serdes_pre_driver_current_lane3_xe25=0x4
|
||||
serdes_preemphasis_lane0_xe25=0xc6e0
|
||||
serdes_preemphasis_lane1_xe25=0xc6e0
|
||||
serdes_preemphasis_lane2_xe25=0xc6e0
|
||||
serdes_preemphasis_lane3_xe25=0xc6e0
|
||||
|
||||
# xe26 (40G)
|
||||
portmap_27=81:40
|
||||
xgxs_rx_lane_map_27=0x1320
|
||||
xgxs_tx_lane_map_27=0x2031
|
||||
phy_xaui_rx_polarity_flip_27=0x1
|
||||
phy_xaui_tx_polarity_flip_27=0x2
|
||||
serdes_driver_current_lane0_xe26=0x2
|
||||
serdes_driver_current_lane1_xe26=0x2
|
||||
serdes_driver_current_lane2_xe26=0x2
|
||||
serdes_driver_current_lane3_xe26=0x2
|
||||
serdes_pre_driver_current_lane0_xe26=0x2
|
||||
serdes_pre_driver_current_lane1_xe26=0x2
|
||||
serdes_pre_driver_current_lane2_xe26=0x2
|
||||
serdes_pre_driver_current_lane3_xe26=0x2
|
||||
serdes_preemphasis_lane0_xe26=0xbb10
|
||||
serdes_preemphasis_lane1_xe26=0xbb10
|
||||
serdes_preemphasis_lane2_xe26=0xbf00
|
||||
serdes_preemphasis_lane3_xe26=0xbb10
|
||||
|
||||
# xe27 (40G)
|
||||
portmap_28=85:40
|
||||
xgxs_rx_lane_map_28=0x213
|
||||
xgxs_tx_lane_map_28=0x1203
|
||||
phy_xaui_rx_polarity_flip_28=0xc
|
||||
phy_xaui_tx_polarity_flip_28=0xe
|
||||
serdes_driver_current_lane0_xe27=0x4
|
||||
serdes_driver_current_lane1_xe27=0x5
|
||||
serdes_driver_current_lane2_xe27=0x4
|
||||
serdes_driver_current_lane3_xe27=0x5
|
||||
serdes_pre_driver_current_lane0_xe27=0x4
|
||||
serdes_pre_driver_current_lane1_xe27=0x5
|
||||
serdes_pre_driver_current_lane2_xe27=0x4
|
||||
serdes_pre_driver_current_lane3_xe27=0x5
|
||||
serdes_preemphasis_lane0_xe27=0xc2f0
|
||||
serdes_preemphasis_lane1_xe27=0xc6e0
|
||||
serdes_preemphasis_lane2_xe27=0xc6e0
|
||||
serdes_preemphasis_lane3_xe27=0xc6e0
|
||||
|
||||
# xe28 (40G)
|
||||
portmap_29=93:40
|
||||
xgxs_rx_lane_map_29=0x1320
|
||||
xgxs_tx_lane_map_29=0x2031
|
||||
phy_xaui_rx_polarity_flip_29=0x1
|
||||
phy_xaui_tx_polarity_flip_29=0x2
|
||||
serdes_driver_current_lane0_xe28=0x4
|
||||
serdes_driver_current_lane1_xe28=0x4
|
||||
serdes_driver_current_lane2_xe28=0x4
|
||||
serdes_driver_current_lane3_xe28=0x4
|
||||
serdes_pre_driver_current_lane0_xe28=0x4
|
||||
serdes_pre_driver_current_lane1_xe28=0x4
|
||||
serdes_pre_driver_current_lane2_xe28=0x4
|
||||
serdes_pre_driver_current_lane3_xe28=0x4
|
||||
serdes_preemphasis_lane0_xe28=0xc2f0
|
||||
serdes_preemphasis_lane1_xe28=0xc2f0
|
||||
serdes_preemphasis_lane2_xe28=0xc2f0
|
||||
serdes_preemphasis_lane3_xe28=0xc2f0
|
||||
|
||||
# xe29 (40G)
|
||||
portmap_30=89:40
|
||||
xgxs_rx_lane_map_30=0x1320
|
||||
xgxs_tx_lane_map_30=0x3021
|
||||
phy_xaui_rx_polarity_flip_30=0x2
|
||||
phy_xaui_tx_polarity_flip_30=0xb
|
||||
serdes_driver_current_lane0_xe29=0x4
|
||||
serdes_driver_current_lane1_xe29=0x4
|
||||
serdes_driver_current_lane2_xe29=0x4
|
||||
serdes_driver_current_lane3_xe29=0x4
|
||||
serdes_pre_driver_current_lane0_xe29=0x4
|
||||
serdes_pre_driver_current_lane1_xe29=0x4
|
||||
serdes_pre_driver_current_lane2_xe29=0x4
|
||||
serdes_pre_driver_current_lane3_xe29=0x4
|
||||
serdes_preemphasis_lane0_xe29=0xcad0
|
||||
serdes_preemphasis_lane1_xe29=0xc6e0
|
||||
serdes_preemphasis_lane2_xe29=0xc6e0
|
||||
serdes_preemphasis_lane3_xe29=0xc6e0
|
||||
|
||||
# xe30 (40G)
|
||||
portmap_31=101:40
|
||||
xgxs_rx_lane_map_31=0x1320
|
||||
xgxs_tx_lane_map_31=0x1203
|
||||
phy_xaui_rx_polarity_flip_31=0x1
|
||||
phy_xaui_tx_polarity_flip_31=0x6
|
||||
serdes_driver_current_lane0_xe30=0x6
|
||||
serdes_driver_current_lane1_xe30=0x6
|
||||
serdes_driver_current_lane2_xe30=0x6
|
||||
serdes_driver_current_lane3_xe30=0x7
|
||||
serdes_pre_driver_current_lane0_xe30=0x6
|
||||
serdes_pre_driver_current_lane1_xe30=0x6
|
||||
serdes_pre_driver_current_lane2_xe30=0x6
|
||||
serdes_pre_driver_current_lane3_xe30=0x7
|
||||
serdes_preemphasis_lane0_xe30=0xcec0
|
||||
serdes_preemphasis_lane1_xe30=0xcec0
|
||||
serdes_preemphasis_lane2_xe30=0xcad0
|
||||
serdes_preemphasis_lane3_xe30=0xc6e0
|
||||
|
||||
# xe31 (40G)
|
||||
portmap_32=97:40
|
||||
xgxs_rx_lane_map_32=0x213
|
||||
xgxs_tx_lane_map_32=0x2031
|
||||
phy_xaui_rx_polarity_flip_32=0xc
|
||||
phy_xaui_tx_polarity_flip_32=0x3
|
||||
serdes_driver_current_lane0_xe31=0x5
|
||||
serdes_driver_current_lane1_xe31=0x5
|
||||
serdes_driver_current_lane2_xe31=0x5
|
||||
serdes_driver_current_lane3_xe31=0x5
|
||||
serdes_pre_driver_current_lane0_xe31=0x5
|
||||
serdes_pre_driver_current_lane1_xe31=0x5
|
||||
serdes_pre_driver_current_lane2_xe31=0x5
|
||||
serdes_pre_driver_current_lane3_xe31=0x5
|
||||
serdes_preemphasis_lane0_xe31=0xcad0
|
||||
serdes_preemphasis_lane1_xe31=0xcad0
|
||||
serdes_preemphasis_lane2_xe31=0xcad0
|
||||
serdes_preemphasis_lane3_xe31=0xcad0
|
@ -0,0 +1,3 @@
|
||||
{%- set default_topo = 't1' %}
|
||||
{%- include 'buffers_config.j2' %}
|
||||
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,17 @@
|
||||
# PG lossless profiles.
|
||||
# speed cable size xon xoff threshold xon_offset
|
||||
10000 5m 56368 18432 55120 -3 2496
|
||||
25000 5m 56368 18432 55120 -3 2496
|
||||
40000 5m 56368 18432 55120 -3 2496
|
||||
50000 5m 56368 18432 55120 -3 2496
|
||||
100000 5m 56368 18432 55120 -3 2496
|
||||
10000 40m 56368 18432 55120 -3 2496
|
||||
25000 40m 56368 18432 55120 -3 2496
|
||||
40000 40m 56368 18432 55120 -3 2496
|
||||
50000 40m 56368 18432 55120 -3 2496
|
||||
100000 40m 56368 18432 55120 -3 2496
|
||||
10000 300m 56368 18432 55120 -3 2496
|
||||
25000 300m 56368 18432 55120 -3 2496
|
||||
40000 300m 56368 18432 55120 -3 2496
|
||||
50000 300m 56368 18432 55120 -3 2496
|
||||
100000 300m 56368 18432 55120 -3 2496
|
@ -0,0 +1,33 @@
|
||||
# name lanes alias index speed
|
||||
Ethernet0 25,26,27,28 fortyGigE0/0 0 40000
|
||||
Ethernet4 29,30,31,32 fortyGigE0/4 1 40000
|
||||
Ethernet8 33,34,35,36 fortyGigE0/8 2 40000
|
||||
Ethernet12 37,38,39,40 fortyGigE0/12 3 40000
|
||||
Ethernet16 45,46,47,48 fortyGigE0/16 4 40000
|
||||
Ethernet20 41,42,43,44 fortyGigE0/20 5 40000
|
||||
Ethernet24 1,2,3,4 fortyGigE0/24 6 40000
|
||||
Ethernet28 5,6,7,8 fortyGigE0/28 7 40000
|
||||
Ethernet32 13,14,15,16 fortyGigE0/32 8 40000
|
||||
Ethernet36 9,10,11,12 fortyGigE0/36 9 40000
|
||||
Ethernet40 17,18,19,20 fortyGigE0/40 10 40000
|
||||
Ethernet44 21,22,23,24 fortyGigE0/44 11 40000
|
||||
Ethernet48 53,54,55,56 fortyGigE0/48 12 40000
|
||||
Ethernet52 49,50,51,52 fortyGigE0/52 13 40000
|
||||
Ethernet56 57,58,59,60 fortyGigE0/56 14 40000
|
||||
Ethernet60 61,62,63,64 fortyGigE0/60 15 40000
|
||||
Ethernet64 69,70,71,72 fortyGigE0/64 16 40000
|
||||
Ethernet68 65,66,67,68 fortyGigE0/68 17 40000
|
||||
Ethernet72 73,74,75,76 fortyGigE0/72 18 40000
|
||||
Ethernet76 77,78,79,80 fortyGigE0/76 19 40000
|
||||
Ethernet80 109,110,111,112 fortyGigE0/80 20 40000
|
||||
Ethernet84 105,106,107,108 fortyGigE0/84 21 40000
|
||||
Ethernet88 113,114,115,116 fortyGigE0/88 22 40000
|
||||
Ethernet92 117,118,119,120 fortyGigE0/92 23 40000
|
||||
Ethernet96 125,126,127,128 fortyGigE0/96 24 40000
|
||||
Ethernet100 121,122,123,124 fortyGigE0/100 25 40000
|
||||
Ethernet104 81,82,83,84 fortyGigE0/104 26 40000
|
||||
Ethernet108 85,86,87,88 fortyGigE0/108 27 40000
|
||||
Ethernet112 93,94,95,96 fortyGigE0/112 28 40000
|
||||
Ethernet116 89,90,91,92 fortyGigE0/116 29 40000
|
||||
Ethernet120 101,102,103,104 fortyGigE0/120 30 40000
|
||||
Ethernet124 97,98,99,100 fortyGigE0/124 31 40000
|
@ -0,0 +1 @@
|
||||
{%- include 'qos_config.j2' %}
|
@ -0,0 +1,2 @@
|
||||
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/td2-s6000-32x40G.config.bcm
|
||||
SAI_NUM_ECMP_MEMBERS=32
|
@ -0,0 +1,646 @@
|
||||
# Old LPM only configuration
|
||||
# l2_mem_entries=163840
|
||||
# l3_mem_entries=90112
|
||||
# l3_alpm_enable=0
|
||||
# ipv6_lpm_128b_enable=0
|
||||
#
|
||||
# ALPM enable
|
||||
l3_alpm_enable=2
|
||||
ipv6_lpm_128b_enable=1
|
||||
l2_mem_entries=32768
|
||||
l3_mem_entries=16384
|
||||
|
||||
# From old config file
|
||||
os=unix
|
||||
higig2_hdr_mode=1
|
||||
|
||||
# Parity
|
||||
parity_correction=1
|
||||
parity_enable=1
|
||||
stat_if_parity_enable=0
|
||||
|
||||
#
|
||||
bcm_num_cos=8
|
||||
bcm_stat_interval=2000000
|
||||
l2xmsg_hostbuf_size=8192
|
||||
l2xmsg_mode=1
|
||||
lls_num_l2uc=12
|
||||
max_vp_lags=0
|
||||
miim_intr_enable=0
|
||||
mmu_lossless=0
|
||||
module_64ports=0
|
||||
schan_intr_enable=0
|
||||
stable_size=0x2000000
|
||||
tdma_timeout_usec=5000000
|
||||
|
||||
pbmp_oversubscribe=0x000007fffffffffffffffffffffffffe
|
||||
pbmp_xport_xe=0x000007fffffffffffffffffffffffffe
|
||||
|
||||
# Ports configuration
|
||||
# xe0 (40G)
|
||||
portmap_1=25:40
|
||||
xgxs_rx_lane_map_1=0x213
|
||||
xgxs_tx_lane_map_1=0x2031
|
||||
phy_xaui_rx_polarity_flip_1=0xe
|
||||
phy_xaui_tx_polarity_flip_1=0x2
|
||||
serdes_driver_current_lane0_xe0=0x5
|
||||
serdes_driver_current_lane1_xe0=0x5
|
||||
serdes_driver_current_lane2_xe0=0x5
|
||||
serdes_driver_current_lane3_xe0=0x5
|
||||
serdes_pre_driver_current_lane0_xe0=0x5
|
||||
serdes_pre_driver_current_lane1_xe0=0x5
|
||||
serdes_pre_driver_current_lane2_xe0=0x5
|
||||
serdes_pre_driver_current_lane3_xe0=0x5
|
||||
serdes_preemphasis_lane0_xe0=0xcad0
|
||||
serdes_preemphasis_lane1_xe0=0xc6e0
|
||||
serdes_preemphasis_lane2_xe0=0xc6e0
|
||||
serdes_preemphasis_lane3_xe0=0xd2b0
|
||||
|
||||
# xe1 (40G)
|
||||
portmap_2=29:40
|
||||
xgxs_rx_lane_map_2=0x213
|
||||
xgxs_tx_lane_map_2=0x213
|
||||
phy_xaui_rx_polarity_flip_2=0xc
|
||||
phy_xaui_tx_polarity_flip_2=0x9
|
||||
serdes_driver_current_lane0_xe1=0x6
|
||||
serdes_driver_current_lane1_xe1=0x7
|
||||
serdes_driver_current_lane2_xe1=0x6
|
||||
serdes_driver_current_lane3_xe1=0x6
|
||||
serdes_pre_driver_current_lane0_xe1=0x6
|
||||
serdes_pre_driver_current_lane1_xe1=0x7
|
||||
serdes_pre_driver_current_lane2_xe1=0x6
|
||||
serdes_pre_driver_current_lane3_xe1=0x6
|
||||
serdes_preemphasis_lane0_xe1=0xc2f0
|
||||
serdes_preemphasis_lane1_xe1=0xd2b0
|
||||
serdes_preemphasis_lane2_xe1=0xc6e0
|
||||
serdes_preemphasis_lane3_xe1=0xc2f0
|
||||
|
||||
# xe2 (40G)
|
||||
portmap_3=33:40
|
||||
xgxs_rx_lane_map_3=0x213
|
||||
xgxs_tx_lane_map_3=0x132
|
||||
phy_xaui_rx_polarity_flip_3=0xe
|
||||
phy_xaui_tx_polarity_flip_3=0x2
|
||||
serdes_driver_current_lane0_xe2=0x4
|
||||
serdes_driver_current_lane1_xe2=0x4
|
||||
serdes_driver_current_lane2_xe2=0x4
|
||||
serdes_driver_current_lane3_xe2=0x4
|
||||
serdes_pre_driver_current_lane0_xe2=0x4
|
||||
serdes_pre_driver_current_lane1_xe2=0x4
|
||||
serdes_pre_driver_current_lane2_xe2=0x4
|
||||
serdes_pre_driver_current_lane3_xe2=0x4
|
||||
serdes_preemphasis_lane0_xe2=0xc6e0
|
||||
serdes_preemphasis_lane1_xe2=0xc6e0
|
||||
serdes_preemphasis_lane2_xe2=0xc6e0
|
||||
serdes_preemphasis_lane3_xe2=0xc6e0
|
||||
|
||||
# xe3 (40G)
|
||||
portmap_4=37:40
|
||||
xgxs_rx_lane_map_4=0x213
|
||||
xgxs_tx_lane_map_4=0x1203
|
||||
phy_xaui_rx_polarity_flip_4=0x3
|
||||
phy_xaui_tx_polarity_flip_4=0xe
|
||||
serdes_driver_current_lane0_xe3=0x4
|
||||
serdes_driver_current_lane1_xe3=0x4
|
||||
serdes_driver_current_lane2_xe3=0x4
|
||||
serdes_driver_current_lane3_xe3=0x4
|
||||
serdes_pre_driver_current_lane0_xe3=0x4
|
||||
serdes_pre_driver_current_lane1_xe3=0x4
|
||||
serdes_pre_driver_current_lane2_xe3=0x4
|
||||
serdes_pre_driver_current_lane3_xe3=0x4
|
||||
serdes_preemphasis_lane0_xe3=0xcad0
|
||||
serdes_preemphasis_lane1_xe3=0xcad0
|
||||
serdes_preemphasis_lane2_xe3=0xc2f0
|
||||
serdes_preemphasis_lane3_xe3=0xc2f0
|
||||
|
||||
# xe4 (40G)
|
||||
portmap_5=45:40
|
||||
xgxs_rx_lane_map_5=0x213
|
||||
xgxs_tx_lane_map_5=0x213
|
||||
phy_xaui_rx_polarity_flip_5=0xe
|
||||
phy_xaui_tx_polarity_flip_5=0x8
|
||||
serdes_driver_current_lane0_xe4=0x4
|
||||
serdes_driver_current_lane1_xe4=0x4
|
||||
serdes_driver_current_lane2_xe4=0x4
|
||||
serdes_driver_current_lane3_xe4=0x4
|
||||
serdes_pre_driver_current_lane0_xe4=0x4
|
||||
serdes_pre_driver_current_lane1_xe4=0x4
|
||||
serdes_pre_driver_current_lane2_xe4=0x4
|
||||
serdes_pre_driver_current_lane3_xe4=0x4
|
||||
serdes_preemphasis_lane0_xe4=0xc2f0
|
||||
serdes_preemphasis_lane1_xe4=0xc2f0
|
||||
serdes_preemphasis_lane2_xe4=0xc2f0
|
||||
serdes_preemphasis_lane3_xe4=0xc2f0
|
||||
|
||||
# xe5 (40G)
|
||||
portmap_6=41:40
|
||||
xgxs_rx_lane_map_6=0x213
|
||||
xgxs_tx_lane_map_6=0x3021
|
||||
phy_xaui_rx_polarity_flip_6=0x3
|
||||
phy_xaui_tx_polarity_flip_6=0xb
|
||||
serdes_driver_current_lane0_xe5=0x4
|
||||
serdes_driver_current_lane1_xe5=0x4
|
||||
serdes_driver_current_lane2_xe5=0x4
|
||||
serdes_driver_current_lane3_xe5=0x4
|
||||
serdes_pre_driver_current_lane0_xe5=0x4
|
||||
serdes_pre_driver_current_lane1_xe5=0x4
|
||||
serdes_pre_driver_current_lane2_xe5=0x4
|
||||
serdes_pre_driver_current_lane3_xe5=0x4
|
||||
serdes_preemphasis_lane0_xe5=0xc6e0
|
||||
serdes_preemphasis_lane1_xe5=0xc2f0
|
||||
serdes_preemphasis_lane2_xe5=0xc2f0
|
||||
serdes_preemphasis_lane3_xe5=0xcad0
|
||||
|
||||
# xe6 (40G)
|
||||
portmap_7=1:40
|
||||
xgxs_rx_lane_map_7=0x213
|
||||
xgxs_tx_lane_map_7=0x2031
|
||||
phy_xaui_rx_polarity_flip_7=0xe
|
||||
phy_xaui_tx_polarity_flip_7=0xd
|
||||
serdes_driver_current_lane0_xe6=0x5
|
||||
serdes_driver_current_lane1_xe6=0x5
|
||||
serdes_driver_current_lane2_xe6=0x5
|
||||
serdes_driver_current_lane3_xe6=0x5
|
||||
serdes_pre_driver_current_lane0_xe6=0x5
|
||||
serdes_pre_driver_current_lane1_xe6=0x5
|
||||
serdes_pre_driver_current_lane2_xe6=0x5
|
||||
serdes_pre_driver_current_lane3_xe6=0x5
|
||||
serdes_preemphasis_lane0_xe6=0xc6e0
|
||||
serdes_preemphasis_lane1_xe6=0xcad0
|
||||
serdes_preemphasis_lane2_xe6=0xc6e0
|
||||
serdes_preemphasis_lane3_xe6=0xcad0
|
||||
|
||||
# xe7 (40G)
|
||||
portmap_8=5:40
|
||||
xgxs_rx_lane_map_8=0x213
|
||||
xgxs_tx_lane_map_8=0x1203
|
||||
phy_xaui_rx_polarity_flip_8=0xc
|
||||
phy_xaui_tx_polarity_flip_8=0x1
|
||||
serdes_driver_current_lane0_xe7=0x4
|
||||
serdes_driver_current_lane1_xe7=0x4
|
||||
serdes_driver_current_lane2_xe7=0x4
|
||||
serdes_driver_current_lane3_xe7=0x4
|
||||
serdes_pre_driver_current_lane0_xe7=0x4
|
||||
serdes_pre_driver_current_lane1_xe7=0x4
|
||||
serdes_pre_driver_current_lane2_xe7=0x4
|
||||
serdes_pre_driver_current_lane3_xe7=0x4
|
||||
serdes_preemphasis_lane0_xe7=0xc6e0
|
||||
serdes_preemphasis_lane1_xe7=0xc6e0
|
||||
serdes_preemphasis_lane2_xe7=0xc6e0
|
||||
serdes_preemphasis_lane3_xe7=0xc6e0
|
||||
|
||||
# xe8 (40G)
|
||||
portmap_9=13:40
|
||||
xgxs_rx_lane_map_9=0x213
|
||||
xgxs_tx_lane_map_9=0x132
|
||||
phy_xaui_rx_polarity_flip_9=0xe
|
||||
phy_xaui_tx_polarity_flip_9=0x0
|
||||
serdes_driver_current_lane0_xe8=0x2
|
||||
serdes_driver_current_lane1_xe8=0x3
|
||||
serdes_driver_current_lane2_xe8=0x2
|
||||
serdes_driver_current_lane3_xe8=0x2
|
||||
serdes_pre_driver_current_lane0_xe8=0x2
|
||||
serdes_pre_driver_current_lane1_xe8=0x3
|
||||
serdes_pre_driver_current_lane2_xe8=0x2
|
||||
serdes_pre_driver_current_lane3_xe8=0x2
|
||||
serdes_preemphasis_lane0_xe8=0xb270
|
||||
serdes_preemphasis_lane1_xe8=0xbb10
|
||||
serdes_preemphasis_lane2_xe8=0xb720
|
||||
serdes_preemphasis_lane3_xe8=0xb720
|
||||
|
||||
# xe9 (40G)
|
||||
portmap_10=9:40
|
||||
xgxs_rx_lane_map_10=0x3120
|
||||
xgxs_tx_lane_map_10=0x3021
|
||||
phy_xaui_rx_polarity_flip_10=0x0
|
||||
phy_xaui_tx_polarity_flip_10=0x4
|
||||
serdes_driver_current_lane0_xe9=0x3
|
||||
serdes_driver_current_lane1_xe9=0x3
|
||||
serdes_driver_current_lane2_xe9=0x3
|
||||
serdes_driver_current_lane3_xe9=0x3
|
||||
serdes_pre_driver_current_lane0_xe9=0x3
|
||||
serdes_pre_driver_current_lane1_xe9=0x3
|
||||
serdes_pre_driver_current_lane2_xe9=0x3
|
||||
serdes_pre_driver_current_lane3_xe9=0x3
|
||||
serdes_preemphasis_lane0_xe9=0xc2f0
|
||||
serdes_preemphasis_lane1_xe9=0xc6e0
|
||||
serdes_preemphasis_lane2_xe9=0xbf00
|
||||
serdes_preemphasis_lane3_xe9=0xc2f0
|
||||
|
||||
# xe10 (40G)
|
||||
portmap_11=17:40
|
||||
xgxs_rx_lane_map_11=0x213
|
||||
xgxs_tx_lane_map_11=0x132
|
||||
phy_xaui_rx_polarity_flip_11=0xe
|
||||
phy_xaui_tx_polarity_flip_11=0x0
|
||||
serdes_driver_current_lane0_xe10=0x2
|
||||
serdes_driver_current_lane1_xe10=0x2
|
||||
serdes_driver_current_lane2_xe10=0x2
|
||||
serdes_driver_current_lane3_xe10=0x2
|
||||
serdes_pre_driver_current_lane0_xe10=0x2
|
||||
serdes_pre_driver_current_lane1_xe10=0x2
|
||||
serdes_pre_driver_current_lane2_xe10=0x2
|
||||
serdes_pre_driver_current_lane3_xe10=0x2
|
||||
serdes_preemphasis_lane0_xe10=0xb330
|
||||
serdes_preemphasis_lane1_xe10=0xbb10
|
||||
serdes_preemphasis_lane2_xe10=0xbb10
|
||||
serdes_preemphasis_lane3_xe10=0xbb10
|
||||
|
||||
# xe11 (40G)
|
||||
portmap_12=21:40
|
||||
xgxs_rx_lane_map_12=0x123
|
||||
xgxs_tx_lane_map_12=0x1203
|
||||
phy_xaui_rx_polarity_flip_12=0xc
|
||||
phy_xaui_tx_polarity_flip_12=0xe
|
||||
serdes_driver_current_lane0_xe11=0x2
|
||||
serdes_driver_current_lane1_xe11=0x2
|
||||
serdes_driver_current_lane2_xe11=0x2
|
||||
serdes_driver_current_lane3_xe11=0x2
|
||||
serdes_pre_driver_current_lane0_xe11=0x2
|
||||
serdes_pre_driver_current_lane1_xe11=0x2
|
||||
serdes_pre_driver_current_lane2_xe11=0x2
|
||||
serdes_pre_driver_current_lane3_xe11=0x2
|
||||
serdes_preemphasis_lane0_xe11=0xb330
|
||||
serdes_preemphasis_lane1_xe11=0xb330
|
||||
serdes_preemphasis_lane2_xe11=0xb330
|
||||
serdes_preemphasis_lane3_xe11=0xb330
|
||||
|
||||
# xe12 (40G)
|
||||
portmap_13=53:40
|
||||
xgxs_rx_lane_map_13=0x213
|
||||
xgxs_tx_lane_map_13=0x231
|
||||
phy_xaui_rx_polarity_flip_13=0x1
|
||||
phy_xaui_tx_polarity_flip_13=0x0
|
||||
serdes_driver_current_lane0_xe12=0x2
|
||||
serdes_driver_current_lane1_xe12=0x2
|
||||
serdes_driver_current_lane2_xe12=0x2
|
||||
serdes_driver_current_lane3_xe12=0x2
|
||||
serdes_pre_driver_current_lane0_xe12=0x2
|
||||
serdes_pre_driver_current_lane1_xe12=0x2
|
||||
serdes_pre_driver_current_lane2_xe12=0x2
|
||||
serdes_pre_driver_current_lane3_xe12=0x2
|
||||
serdes_preemphasis_lane0_xe12=0xaf40
|
||||
serdes_preemphasis_lane1_xe12=0xaf40
|
||||
serdes_preemphasis_lane2_xe12=0xaf40
|
||||
serdes_preemphasis_lane3_xe12=0xaf40
|
||||
|
||||
# xe13 (40G)
|
||||
portmap_14=49:40
|
||||
xgxs_rx_lane_map_14=0x1302
|
||||
xgxs_tx_lane_map_14=0x2031
|
||||
phy_xaui_rx_polarity_flip_14=0xb
|
||||
phy_xaui_tx_polarity_flip_14=0x3
|
||||
serdes_driver_current_lane0_xe13=0x2
|
||||
serdes_driver_current_lane1_xe13=0x2
|
||||
serdes_driver_current_lane2_xe13=0x2
|
||||
serdes_driver_current_lane3_xe13=0x2
|
||||
serdes_pre_driver_current_lane0_xe13=0x2
|
||||
serdes_pre_driver_current_lane1_xe13=0x2
|
||||
serdes_pre_driver_current_lane2_xe13=0x2
|
||||
serdes_pre_driver_current_lane3_xe13=0x2
|
||||
serdes_preemphasis_lane0_xe13=0xa760
|
||||
serdes_preemphasis_lane1_xe13=0xa760
|
||||
serdes_preemphasis_lane2_xe13=0xa760
|
||||
serdes_preemphasis_lane3_xe13=0xa760
|
||||
|
||||
# xe14 (40G)
|
||||
portmap_15=57:40
|
||||
xgxs_rx_lane_map_15=0x213
|
||||
xgxs_tx_lane_map_15=0x2031
|
||||
phy_xaui_rx_polarity_flip_15=0x1
|
||||
phy_xaui_tx_polarity_flip_15=0x0
|
||||
serdes_driver_current_lane0_xe14=0x1
|
||||
serdes_driver_current_lane1_xe14=0x1
|
||||
serdes_driver_current_lane2_xe14=0x1
|
||||
serdes_driver_current_lane3_xe14=0x1
|
||||
serdes_pre_driver_current_lane0_xe14=0x1
|
||||
serdes_pre_driver_current_lane1_xe14=0x1
|
||||
serdes_pre_driver_current_lane2_xe14=0x1
|
||||
serdes_pre_driver_current_lane3_xe14=0x1
|
||||
serdes_preemphasis_lane0_xe14=0xa760
|
||||
serdes_preemphasis_lane1_xe14=0xa760
|
||||
serdes_preemphasis_lane2_xe14=0xa760
|
||||
serdes_preemphasis_lane3_xe14=0xa760
|
||||
|
||||
# xe15 (40G)
|
||||
portmap_16=61:40
|
||||
xgxs_rx_lane_map_16=0x132
|
||||
xgxs_tx_lane_map_16=0x213
|
||||
phy_xaui_rx_polarity_flip_16=0x0
|
||||
phy_xaui_tx_polarity_flip_16=0x0
|
||||
serdes_driver_current_lane0_xe15=0x2
|
||||
serdes_driver_current_lane1_xe15=0x2
|
||||
serdes_driver_current_lane2_xe15=0x2
|
||||
serdes_driver_current_lane3_xe15=0x2
|
||||
serdes_pre_driver_current_lane0_xe15=0x2
|
||||
serdes_pre_driver_current_lane1_xe15=0x2
|
||||
serdes_pre_driver_current_lane2_xe15=0x2
|
||||
serdes_pre_driver_current_lane3_xe15=0x2
|
||||
serdes_preemphasis_lane0_xe15=0xa760
|
||||
serdes_preemphasis_lane1_xe15=0xa760
|
||||
serdes_preemphasis_lane2_xe15=0xa760
|
||||
serdes_preemphasis_lane3_xe15=0xa760
|
||||
|
||||
# xe16 (40G)
|
||||
portmap_17=69:40
|
||||
xgxs_rx_lane_map_17=0x213
|
||||
xgxs_tx_lane_map_17=0x2130
|
||||
phy_xaui_rx_polarity_flip_17=0x1
|
||||
phy_xaui_tx_polarity_flip_17=0xf
|
||||
serdes_driver_current_lane0_xe16=0x1
|
||||
serdes_driver_current_lane1_xe16=0x1
|
||||
serdes_driver_current_lane2_xe16=0x1
|
||||
serdes_driver_current_lane3_xe16=0x1
|
||||
serdes_pre_driver_current_lane0_xe16=0x1
|
||||
serdes_pre_driver_current_lane1_xe16=0x1
|
||||
serdes_pre_driver_current_lane2_xe16=0x1
|
||||
serdes_pre_driver_current_lane3_xe16=0x1
|
||||
serdes_preemphasis_lane0_xe16=0xa760
|
||||
serdes_preemphasis_lane1_xe16=0xa760
|
||||
serdes_preemphasis_lane2_xe16=0xa760
|
||||
serdes_preemphasis_lane3_xe16=0xa760
|
||||
|
||||
# xe17 (40G)
|
||||
portmap_18=65:40
|
||||
xgxs_rx_lane_map_18=0x132
|
||||
xgxs_tx_lane_map_18=0x2031
|
||||
phy_xaui_rx_polarity_flip_18=0x3
|
||||
phy_xaui_tx_polarity_flip_18=0x9
|
||||
serdes_driver_current_lane0_xe17=0x1
|
||||
serdes_driver_current_lane1_xe17=0x1
|
||||
serdes_driver_current_lane2_xe17=0x1
|
||||
serdes_driver_current_lane3_xe17=0x1
|
||||
serdes_pre_driver_current_lane0_xe17=0x1
|
||||
serdes_pre_driver_current_lane1_xe17=0x1
|
||||
serdes_pre_driver_current_lane2_xe17=0x1
|
||||
serdes_pre_driver_current_lane3_xe17=0x1
|
||||
serdes_preemphasis_lane0_xe17=0xa370
|
||||
serdes_preemphasis_lane1_xe17=0xa370
|
||||
serdes_preemphasis_lane2_xe17=0xa370
|
||||
serdes_preemphasis_lane3_xe17=0xa370
|
||||
|
||||
# xe18 (40G)
|
||||
portmap_19=73:40
|
||||
xgxs_rx_lane_map_19=0x213
|
||||
xgxs_tx_lane_map_19=0x2031
|
||||
phy_xaui_rx_polarity_flip_19=0x1
|
||||
phy_xaui_tx_polarity_flip_19=0x0
|
||||
serdes_driver_current_lane0_xe18=0x2
|
||||
serdes_driver_current_lane1_xe18=0x2
|
||||
serdes_driver_current_lane2_xe18=0x2
|
||||
serdes_driver_current_lane3_xe18=0x2
|
||||
serdes_pre_driver_current_lane0_xe18=0x2
|
||||
serdes_pre_driver_current_lane1_xe18=0x2
|
||||
serdes_pre_driver_current_lane2_xe18=0x2
|
||||
serdes_pre_driver_current_lane3_xe18=0x2
|
||||
serdes_preemphasis_lane0_xe18=0xa760
|
||||
serdes_preemphasis_lane1_xe18=0xa760
|
||||
serdes_preemphasis_lane2_xe18=0xa760
|
||||
serdes_preemphasis_lane3_xe18=0xa760
|
||||
|
||||
# xe19 (40G)
|
||||
portmap_20=77:40
|
||||
xgxs_rx_lane_map_20=0x123
|
||||
xgxs_tx_lane_map_20=0x1203
|
||||
phy_xaui_rx_polarity_flip_20=0x3
|
||||
phy_xaui_tx_polarity_flip_20=0xe
|
||||
serdes_driver_current_lane0_xe19=0x2
|
||||
serdes_driver_current_lane1_xe19=0x2
|
||||
serdes_driver_current_lane2_xe19=0x2
|
||||
serdes_driver_current_lane3_xe19=0x2
|
||||
serdes_pre_driver_current_lane0_xe19=0x2
|
||||
serdes_pre_driver_current_lane1_xe19=0x2
|
||||
serdes_pre_driver_current_lane2_xe19=0x2
|
||||
serdes_pre_driver_current_lane3_xe19=0x2
|
||||
serdes_preemphasis_lane0_xe19=0xaf40
|
||||
serdes_preemphasis_lane1_xe19=0xaf40
|
||||
serdes_preemphasis_lane2_xe19=0xaf40
|
||||
serdes_preemphasis_lane3_xe19=0xaf40
|
||||
|
||||
# xe20 (40G)
|
||||
portmap_21=109:40
|
||||
xgxs_rx_lane_map_21=0x132
|
||||
xgxs_tx_lane_map_21=0x132
|
||||
phy_xaui_rx_polarity_flip_21=0x8
|
||||
phy_xaui_tx_polarity_flip_21=0x0
|
||||
serdes_driver_current_lane0_xe20=0x1
|
||||
serdes_driver_current_lane1_xe20=0x1
|
||||
serdes_driver_current_lane2_xe20=0x1
|
||||
serdes_driver_current_lane3_xe20=0x2
|
||||
serdes_pre_driver_current_lane0_xe20=0x1
|
||||
serdes_pre_driver_current_lane1_xe20=0x1
|
||||
serdes_pre_driver_current_lane2_xe20=0x1
|
||||
serdes_pre_driver_current_lane3_xe20=0x2
|
||||
serdes_preemphasis_lane0_xe20=0xb330
|
||||
serdes_preemphasis_lane1_xe20=0xb330
|
||||
serdes_preemphasis_lane2_xe20=0xb330
|
||||
serdes_preemphasis_lane3_xe20=0xbff0
|
||||
|
||||
# xe21 (40G)
|
||||
portmap_22=105:40
|
||||
xgxs_rx_lane_map_22=0x1320
|
||||
xgxs_tx_lane_map_22=0x3021
|
||||
phy_xaui_rx_polarity_flip_22=0xd
|
||||
phy_xaui_tx_polarity_flip_22=0xb
|
||||
serdes_driver_current_lane0_xe21=0x1
|
||||
serdes_driver_current_lane1_xe21=0x1
|
||||
serdes_driver_current_lane2_xe21=0x1
|
||||
serdes_driver_current_lane3_xe21=0x1
|
||||
serdes_pre_driver_current_lane0_xe21=0x1
|
||||
serdes_pre_driver_current_lane1_xe21=0x1
|
||||
serdes_pre_driver_current_lane2_xe21=0x1
|
||||
serdes_pre_driver_current_lane3_xe21=0x1
|
||||
serdes_preemphasis_lane0_xe21=0xb330
|
||||
serdes_preemphasis_lane1_xe21=0xb330
|
||||
serdes_preemphasis_lane2_xe21=0xb330
|
||||
serdes_preemphasis_lane3_xe21=0xb330
|
||||
|
||||
# xe22 (40G)
|
||||
portmap_23=113:40
|
||||
xgxs_rx_lane_map_23=0x132
|
||||
xgxs_tx_lane_map_23=0x132
|
||||
phy_xaui_rx_polarity_flip_23=0x8
|
||||
phy_xaui_tx_polarity_flip_23=0x0
|
||||
serdes_driver_current_lane0_xe22=0x1
|
||||
serdes_driver_current_lane1_xe22=0x1
|
||||
serdes_driver_current_lane2_xe22=0x1
|
||||
serdes_driver_current_lane3_xe22=0x1
|
||||
serdes_pre_driver_current_lane0_xe22=0x1
|
||||
serdes_pre_driver_current_lane1_xe22=0x1
|
||||
serdes_pre_driver_current_lane2_xe22=0x1
|
||||
serdes_pre_driver_current_lane3_xe22=0x1
|
||||
serdes_preemphasis_lane0_xe22=0xbb10
|
||||
serdes_preemphasis_lane1_xe22=0xbb10
|
||||
serdes_preemphasis_lane2_xe22=0xbb10
|
||||
serdes_preemphasis_lane3_xe22=0xc2f0
|
||||
|
||||
# xe23 (40G)
|
||||
portmap_24=117:40
|
||||
xgxs_rx_lane_map_24=0x231
|
||||
xgxs_tx_lane_map_24=0x1203
|
||||
phy_xaui_rx_polarity_flip_24=0x3
|
||||
phy_xaui_tx_polarity_flip_24=0xe
|
||||
serdes_driver_current_lane0_xe23=0x3
|
||||
serdes_driver_current_lane1_xe23=0x5
|
||||
serdes_driver_current_lane2_xe23=0x3
|
||||
serdes_driver_current_lane3_xe23=0x3
|
||||
serdes_pre_driver_current_lane0_xe23=0x3
|
||||
serdes_pre_driver_current_lane1_xe23=0x5
|
||||
serdes_pre_driver_current_lane2_xe23=0x3
|
||||
serdes_pre_driver_current_lane3_xe23=0x3
|
||||
serdes_preemphasis_lane0_xe23=0xc6e0
|
||||
serdes_preemphasis_lane1_xe23=0xc6e0
|
||||
serdes_preemphasis_lane2_xe23=0xc6e0
|
||||
serdes_preemphasis_lane3_xe23=0xc6e0
|
||||
|
||||
# xe24 (40G)
|
||||
portmap_25=125:40
|
||||
xgxs_rx_lane_map_25=0x132
|
||||
xgxs_tx_lane_map_25=0x132
|
||||
phy_xaui_rx_polarity_flip_25=0x8
|
||||
phy_xaui_tx_polarity_flip_25=0x0
|
||||
serdes_driver_current_lane0_xe24=0x4
|
||||
serdes_driver_current_lane1_xe24=0x4
|
||||
serdes_driver_current_lane2_xe24=0x4
|
||||
serdes_driver_current_lane3_xe24=0x4
|
||||
serdes_pre_driver_current_lane0_xe24=0x4
|
||||
serdes_pre_driver_current_lane1_xe24=0x4
|
||||
serdes_pre_driver_current_lane2_xe24=0x4
|
||||
serdes_pre_driver_current_lane3_xe24=0x4
|
||||
serdes_preemphasis_lane0_xe24=0xc6e0
|
||||
serdes_preemphasis_lane1_xe24=0xc6e0
|
||||
serdes_preemphasis_lane2_xe24=0xc6e0
|
||||
serdes_preemphasis_lane3_xe24=0xcec0
|
||||
|
||||
# xe25 (40G)
|
||||
portmap_26=121:40
|
||||
xgxs_rx_lane_map_26=0x1320
|
||||
xgxs_tx_lane_map_26=0x3021
|
||||
phy_xaui_rx_polarity_flip_26=0xd
|
||||
phy_xaui_tx_polarity_flip_26=0xb
|
||||
serdes_driver_current_lane0_xe25=0x4
|
||||
serdes_driver_current_lane1_xe25=0x4
|
||||
serdes_driver_current_lane2_xe25=0x4
|
||||
serdes_driver_current_lane3_xe25=0x4
|
||||
serdes_pre_driver_current_lane0_xe25=0x4
|
||||
serdes_pre_driver_current_lane1_xe25=0x4
|
||||
serdes_pre_driver_current_lane2_xe25=0x4
|
||||
serdes_pre_driver_current_lane3_xe25=0x4
|
||||
serdes_preemphasis_lane0_xe25=0xc6e0
|
||||
serdes_preemphasis_lane1_xe25=0xc6e0
|
||||
serdes_preemphasis_lane2_xe25=0xc6e0
|
||||
serdes_preemphasis_lane3_xe25=0xc6e0
|
||||
|
||||
# xe26 (40G)
|
||||
portmap_27=81:40
|
||||
xgxs_rx_lane_map_27=0x1320
|
||||
xgxs_tx_lane_map_27=0x2031
|
||||
phy_xaui_rx_polarity_flip_27=0x1
|
||||
phy_xaui_tx_polarity_flip_27=0x2
|
||||
serdes_driver_current_lane0_xe26=0x2
|
||||
serdes_driver_current_lane1_xe26=0x2
|
||||
serdes_driver_current_lane2_xe26=0x2
|
||||
serdes_driver_current_lane3_xe26=0x2
|
||||
serdes_pre_driver_current_lane0_xe26=0x2
|
||||
serdes_pre_driver_current_lane1_xe26=0x2
|
||||
serdes_pre_driver_current_lane2_xe26=0x2
|
||||
serdes_pre_driver_current_lane3_xe26=0x2
|
||||
serdes_preemphasis_lane0_xe26=0xbb10
|
||||
serdes_preemphasis_lane1_xe26=0xbb10
|
||||
serdes_preemphasis_lane2_xe26=0xbf00
|
||||
serdes_preemphasis_lane3_xe26=0xbb10
|
||||
|
||||
# xe27 (40G)
|
||||
portmap_28=85:40
|
||||
xgxs_rx_lane_map_28=0x213
|
||||
xgxs_tx_lane_map_28=0x1203
|
||||
phy_xaui_rx_polarity_flip_28=0xc
|
||||
phy_xaui_tx_polarity_flip_28=0xe
|
||||
serdes_driver_current_lane0_xe27=0x4
|
||||
serdes_driver_current_lane1_xe27=0x5
|
||||
serdes_driver_current_lane2_xe27=0x4
|
||||
serdes_driver_current_lane3_xe27=0x5
|
||||
serdes_pre_driver_current_lane0_xe27=0x4
|
||||
serdes_pre_driver_current_lane1_xe27=0x5
|
||||
serdes_pre_driver_current_lane2_xe27=0x4
|
||||
serdes_pre_driver_current_lane3_xe27=0x5
|
||||
serdes_preemphasis_lane0_xe27=0xc2f0
|
||||
serdes_preemphasis_lane1_xe27=0xc6e0
|
||||
serdes_preemphasis_lane2_xe27=0xc6e0
|
||||
serdes_preemphasis_lane3_xe27=0xc6e0
|
||||
|
||||
# xe28 (40G)
|
||||
portmap_29=93:40
|
||||
xgxs_rx_lane_map_29=0x1320
|
||||
xgxs_tx_lane_map_29=0x2031
|
||||
phy_xaui_rx_polarity_flip_29=0x1
|
||||
phy_xaui_tx_polarity_flip_29=0x2
|
||||
serdes_driver_current_lane0_xe28=0x4
|
||||
serdes_driver_current_lane1_xe28=0x4
|
||||
serdes_driver_current_lane2_xe28=0x4
|
||||
serdes_driver_current_lane3_xe28=0x4
|
||||
serdes_pre_driver_current_lane0_xe28=0x4
|
||||
serdes_pre_driver_current_lane1_xe28=0x4
|
||||
serdes_pre_driver_current_lane2_xe28=0x4
|
||||
serdes_pre_driver_current_lane3_xe28=0x4
|
||||
serdes_preemphasis_lane0_xe28=0xc2f0
|
||||
serdes_preemphasis_lane1_xe28=0xc2f0
|
||||
serdes_preemphasis_lane2_xe28=0xc2f0
|
||||
serdes_preemphasis_lane3_xe28=0xc2f0
|
||||
|
||||
# xe29 (40G)
|
||||
portmap_30=89:40
|
||||
xgxs_rx_lane_map_30=0x1320
|
||||
xgxs_tx_lane_map_30=0x3021
|
||||
phy_xaui_rx_polarity_flip_30=0x2
|
||||
phy_xaui_tx_polarity_flip_30=0xb
|
||||
serdes_driver_current_lane0_xe29=0x4
|
||||
serdes_driver_current_lane1_xe29=0x4
|
||||
serdes_driver_current_lane2_xe29=0x4
|
||||
serdes_driver_current_lane3_xe29=0x4
|
||||
serdes_pre_driver_current_lane0_xe29=0x4
|
||||
serdes_pre_driver_current_lane1_xe29=0x4
|
||||
serdes_pre_driver_current_lane2_xe29=0x4
|
||||
serdes_pre_driver_current_lane3_xe29=0x4
|
||||
serdes_preemphasis_lane0_xe29=0xcad0
|
||||
serdes_preemphasis_lane1_xe29=0xc6e0
|
||||
serdes_preemphasis_lane2_xe29=0xc6e0
|
||||
serdes_preemphasis_lane3_xe29=0xc6e0
|
||||
|
||||
# xe30 (40G)
|
||||
portmap_31=101:40
|
||||
xgxs_rx_lane_map_31=0x1320
|
||||
xgxs_tx_lane_map_31=0x1203
|
||||
phy_xaui_rx_polarity_flip_31=0x1
|
||||
phy_xaui_tx_polarity_flip_31=0x6
|
||||
serdes_driver_current_lane0_xe30=0x6
|
||||
serdes_driver_current_lane1_xe30=0x6
|
||||
serdes_driver_current_lane2_xe30=0x6
|
||||
serdes_driver_current_lane3_xe30=0x7
|
||||
serdes_pre_driver_current_lane0_xe30=0x6
|
||||
serdes_pre_driver_current_lane1_xe30=0x6
|
||||
serdes_pre_driver_current_lane2_xe30=0x6
|
||||
serdes_pre_driver_current_lane3_xe30=0x7
|
||||
serdes_preemphasis_lane0_xe30=0xcec0
|
||||
serdes_preemphasis_lane1_xe30=0xcec0
|
||||
serdes_preemphasis_lane2_xe30=0xcad0
|
||||
serdes_preemphasis_lane3_xe30=0xc6e0
|
||||
|
||||
# xe31 (40G)
|
||||
portmap_32=97:40
|
||||
xgxs_rx_lane_map_32=0x213
|
||||
xgxs_tx_lane_map_32=0x2031
|
||||
phy_xaui_rx_polarity_flip_32=0xc
|
||||
phy_xaui_tx_polarity_flip_32=0x3
|
||||
serdes_driver_current_lane0_xe31=0x5
|
||||
serdes_driver_current_lane1_xe31=0x5
|
||||
serdes_driver_current_lane2_xe31=0x5
|
||||
serdes_driver_current_lane3_xe31=0x5
|
||||
serdes_pre_driver_current_lane0_xe31=0x5
|
||||
serdes_pre_driver_current_lane1_xe31=0x5
|
||||
serdes_pre_driver_current_lane2_xe31=0x5
|
||||
serdes_pre_driver_current_lane3_xe31=0x5
|
||||
serdes_preemphasis_lane0_xe31=0xcad0
|
||||
serdes_preemphasis_lane1_xe31=0xcad0
|
||||
serdes_preemphasis_lane2_xe31=0xcad0
|
||||
serdes_preemphasis_lane3_xe31=0xcad0
|
@ -0,0 +1,3 @@
|
||||
{%- set default_topo = 't1' %}
|
||||
{%- include 'buffers_config.j2' %}
|
||||
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,17 @@
|
||||
# PG lossless profiles.
|
||||
# speed cable size xon xoff threshold xon_offset
|
||||
10000 5m 56368 18432 55120 -3 2496
|
||||
25000 5m 56368 18432 55120 -3 2496
|
||||
40000 5m 56368 18432 55120 -3 2496
|
||||
50000 5m 56368 18432 55120 -3 2496
|
||||
100000 5m 56368 18432 55120 -3 2496
|
||||
10000 40m 56368 18432 55120 -3 2496
|
||||
25000 40m 56368 18432 55120 -3 2496
|
||||
40000 40m 56368 18432 55120 -3 2496
|
||||
50000 40m 56368 18432 55120 -3 2496
|
||||
100000 40m 56368 18432 55120 -3 2496
|
||||
10000 300m 56368 18432 55120 -3 2496
|
||||
25000 300m 56368 18432 55120 -3 2496
|
||||
40000 300m 56368 18432 55120 -3 2496
|
||||
50000 300m 56368 18432 55120 -3 2496
|
||||
100000 300m 56368 18432 55120 -3 2496
|
@ -0,0 +1,33 @@
|
||||
# name lanes alias index speed
|
||||
Ethernet0 25,26,27,28 fortyGigE0/0 0 40000
|
||||
Ethernet4 29,30,31,32 fortyGigE0/4 1 40000
|
||||
Ethernet8 33,34,35,36 fortyGigE0/8 2 40000
|
||||
Ethernet12 37,38,39,40 fortyGigE0/12 3 40000
|
||||
Ethernet16 45,46,47,48 fortyGigE0/16 4 40000
|
||||
Ethernet20 41,42,43,44 fortyGigE0/20 5 40000
|
||||
Ethernet24 1,2,3,4 fortyGigE0/24 6 40000
|
||||
Ethernet28 5,6,7,8 fortyGigE0/28 7 40000
|
||||
Ethernet32 13,14,15,16 fortyGigE0/32 8 40000
|
||||
Ethernet36 9,10,11,12 fortyGigE0/36 9 40000
|
||||
Ethernet40 17,18,19,20 fortyGigE0/40 10 40000
|
||||
Ethernet44 21,22,23,24 fortyGigE0/44 11 40000
|
||||
Ethernet48 53,54,55,56 fortyGigE0/48 12 40000
|
||||
Ethernet52 49,50,51,52 fortyGigE0/52 13 40000
|
||||
Ethernet56 57,58,59,60 fortyGigE0/56 14 40000
|
||||
Ethernet60 61,62,63,64 fortyGigE0/60 15 40000
|
||||
Ethernet64 69,70,71,72 fortyGigE0/64 16 40000
|
||||
Ethernet68 65,66,67,68 fortyGigE0/68 17 40000
|
||||
Ethernet72 73,74,75,76 fortyGigE0/72 18 40000
|
||||
Ethernet76 77,78,79,80 fortyGigE0/76 19 40000
|
||||
Ethernet80 109,110,111,112 fortyGigE0/80 20 40000
|
||||
Ethernet84 105,106,107,108 fortyGigE0/84 21 40000
|
||||
Ethernet88 113,114,115,116 fortyGigE0/88 22 40000
|
||||
Ethernet92 117,118,119,120 fortyGigE0/92 23 40000
|
||||
Ethernet96 125,126,127,128 fortyGigE0/96 24 40000
|
||||
Ethernet100 121,122,123,124 fortyGigE0/100 25 40000
|
||||
Ethernet104 81,82,83,84 fortyGigE0/104 26 40000
|
||||
Ethernet108 85,86,87,88 fortyGigE0/108 27 40000
|
||||
Ethernet112 93,94,95,96 fortyGigE0/112 28 40000
|
||||
Ethernet116 89,90,91,92 fortyGigE0/116 29 40000
|
||||
Ethernet120 101,102,103,104 fortyGigE0/120 30 40000
|
||||
Ethernet124 97,98,99,100 fortyGigE0/124 31 40000
|
@ -0,0 +1 @@
|
||||
{%- include 'qos_config.j2' %}
|
@ -0,0 +1,2 @@
|
||||
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/td2-s6000-32x40G.config.bcm
|
||||
SAI_NUM_ECMP_MEMBERS=32
|
@ -0,0 +1,646 @@
|
||||
# Old LPM only configuration
|
||||
# l2_mem_entries=163840
|
||||
# l3_mem_entries=90112
|
||||
# l3_alpm_enable=0
|
||||
# ipv6_lpm_128b_enable=0
|
||||
#
|
||||
# ALPM enable
|
||||
l3_alpm_enable=2
|
||||
ipv6_lpm_128b_enable=1
|
||||
l2_mem_entries=32768
|
||||
l3_mem_entries=16384
|
||||
|
||||
# From old config file
|
||||
os=unix
|
||||
higig2_hdr_mode=1
|
||||
|
||||
# Parity
|
||||
parity_correction=1
|
||||
parity_enable=1
|
||||
stat_if_parity_enable=0
|
||||
|
||||
#
|
||||
bcm_num_cos=8
|
||||
bcm_stat_interval=2000000
|
||||
l2xmsg_hostbuf_size=8192
|
||||
l2xmsg_mode=1
|
||||
lls_num_l2uc=12
|
||||
max_vp_lags=0
|
||||
miim_intr_enable=0
|
||||
mmu_lossless=0
|
||||
module_64ports=0
|
||||
schan_intr_enable=0
|
||||
stable_size=0x2000000
|
||||
tdma_timeout_usec=5000000
|
||||
|
||||
pbmp_oversubscribe=0x000007fffffffffffffffffffffffffe
|
||||
pbmp_xport_xe=0x000007fffffffffffffffffffffffffe
|
||||
|
||||
# Ports configuration
|
||||
# xe0 (40G)
|
||||
portmap_1=25:40
|
||||
xgxs_rx_lane_map_1=0x213
|
||||
xgxs_tx_lane_map_1=0x2031
|
||||
phy_xaui_rx_polarity_flip_1=0xe
|
||||
phy_xaui_tx_polarity_flip_1=0x2
|
||||
serdes_driver_current_lane0_xe0=0x5
|
||||
serdes_driver_current_lane1_xe0=0x5
|
||||
serdes_driver_current_lane2_xe0=0x5
|
||||
serdes_driver_current_lane3_xe0=0x5
|
||||
serdes_pre_driver_current_lane0_xe0=0x5
|
||||
serdes_pre_driver_current_lane1_xe0=0x5
|
||||
serdes_pre_driver_current_lane2_xe0=0x5
|
||||
serdes_pre_driver_current_lane3_xe0=0x5
|
||||
serdes_preemphasis_lane0_xe0=0xcad0
|
||||
serdes_preemphasis_lane1_xe0=0xc6e0
|
||||
serdes_preemphasis_lane2_xe0=0xc6e0
|
||||
serdes_preemphasis_lane3_xe0=0xd2b0
|
||||
|
||||
# xe1 (40G)
|
||||
portmap_2=29:40
|
||||
xgxs_rx_lane_map_2=0x213
|
||||
xgxs_tx_lane_map_2=0x213
|
||||
phy_xaui_rx_polarity_flip_2=0xc
|
||||
phy_xaui_tx_polarity_flip_2=0x9
|
||||
serdes_driver_current_lane0_xe1=0x6
|
||||
serdes_driver_current_lane1_xe1=0x7
|
||||
serdes_driver_current_lane2_xe1=0x6
|
||||
serdes_driver_current_lane3_xe1=0x6
|
||||
serdes_pre_driver_current_lane0_xe1=0x6
|
||||
serdes_pre_driver_current_lane1_xe1=0x7
|
||||
serdes_pre_driver_current_lane2_xe1=0x6
|
||||
serdes_pre_driver_current_lane3_xe1=0x6
|
||||
serdes_preemphasis_lane0_xe1=0xc2f0
|
||||
serdes_preemphasis_lane1_xe1=0xd2b0
|
||||
serdes_preemphasis_lane2_xe1=0xc6e0
|
||||
serdes_preemphasis_lane3_xe1=0xc2f0
|
||||
|
||||
# xe2 (40G)
|
||||
portmap_3=33:40
|
||||
xgxs_rx_lane_map_3=0x213
|
||||
xgxs_tx_lane_map_3=0x132
|
||||
phy_xaui_rx_polarity_flip_3=0xe
|
||||
phy_xaui_tx_polarity_flip_3=0x2
|
||||
serdes_driver_current_lane0_xe2=0x4
|
||||
serdes_driver_current_lane1_xe2=0x4
|
||||
serdes_driver_current_lane2_xe2=0x4
|
||||
serdes_driver_current_lane3_xe2=0x4
|
||||
serdes_pre_driver_current_lane0_xe2=0x4
|
||||
serdes_pre_driver_current_lane1_xe2=0x4
|
||||
serdes_pre_driver_current_lane2_xe2=0x4
|
||||
serdes_pre_driver_current_lane3_xe2=0x4
|
||||
serdes_preemphasis_lane0_xe2=0xc6e0
|
||||
serdes_preemphasis_lane1_xe2=0xc6e0
|
||||
serdes_preemphasis_lane2_xe2=0xc6e0
|
||||
serdes_preemphasis_lane3_xe2=0xc6e0
|
||||
|
||||
# xe3 (40G)
|
||||
portmap_4=37:40
|
||||
xgxs_rx_lane_map_4=0x213
|
||||
xgxs_tx_lane_map_4=0x1203
|
||||
phy_xaui_rx_polarity_flip_4=0x3
|
||||
phy_xaui_tx_polarity_flip_4=0xe
|
||||
serdes_driver_current_lane0_xe3=0x4
|
||||
serdes_driver_current_lane1_xe3=0x4
|
||||
serdes_driver_current_lane2_xe3=0x4
|
||||
serdes_driver_current_lane3_xe3=0x4
|
||||
serdes_pre_driver_current_lane0_xe3=0x4
|
||||
serdes_pre_driver_current_lane1_xe3=0x4
|
||||
serdes_pre_driver_current_lane2_xe3=0x4
|
||||
serdes_pre_driver_current_lane3_xe3=0x4
|
||||
serdes_preemphasis_lane0_xe3=0xcad0
|
||||
serdes_preemphasis_lane1_xe3=0xcad0
|
||||
serdes_preemphasis_lane2_xe3=0xc2f0
|
||||
serdes_preemphasis_lane3_xe3=0xc2f0
|
||||
|
||||
# xe4 (40G)
|
||||
portmap_5=45:40
|
||||
xgxs_rx_lane_map_5=0x213
|
||||
xgxs_tx_lane_map_5=0x213
|
||||
phy_xaui_rx_polarity_flip_5=0xe
|
||||
phy_xaui_tx_polarity_flip_5=0x8
|
||||
serdes_driver_current_lane0_xe4=0x4
|
||||
serdes_driver_current_lane1_xe4=0x4
|
||||
serdes_driver_current_lane2_xe4=0x4
|
||||
serdes_driver_current_lane3_xe4=0x4
|
||||
serdes_pre_driver_current_lane0_xe4=0x4
|
||||
serdes_pre_driver_current_lane1_xe4=0x4
|
||||
serdes_pre_driver_current_lane2_xe4=0x4
|
||||
serdes_pre_driver_current_lane3_xe4=0x4
|
||||
serdes_preemphasis_lane0_xe4=0xc2f0
|
||||
serdes_preemphasis_lane1_xe4=0xc2f0
|
||||
serdes_preemphasis_lane2_xe4=0xc2f0
|
||||
serdes_preemphasis_lane3_xe4=0xc2f0
|
||||
|
||||
# xe5 (40G)
|
||||
portmap_6=41:40
|
||||
xgxs_rx_lane_map_6=0x213
|
||||
xgxs_tx_lane_map_6=0x3021
|
||||
phy_xaui_rx_polarity_flip_6=0x3
|
||||
phy_xaui_tx_polarity_flip_6=0xb
|
||||
serdes_driver_current_lane0_xe5=0x4
|
||||
serdes_driver_current_lane1_xe5=0x4
|
||||
serdes_driver_current_lane2_xe5=0x4
|
||||
serdes_driver_current_lane3_xe5=0x4
|
||||
serdes_pre_driver_current_lane0_xe5=0x4
|
||||
serdes_pre_driver_current_lane1_xe5=0x4
|
||||
serdes_pre_driver_current_lane2_xe5=0x4
|
||||
serdes_pre_driver_current_lane3_xe5=0x4
|
||||
serdes_preemphasis_lane0_xe5=0xc6e0
|
||||
serdes_preemphasis_lane1_xe5=0xc2f0
|
||||
serdes_preemphasis_lane2_xe5=0xc2f0
|
||||
serdes_preemphasis_lane3_xe5=0xcad0
|
||||
|
||||
# xe6 (40G)
|
||||
portmap_7=1:40
|
||||
xgxs_rx_lane_map_7=0x213
|
||||
xgxs_tx_lane_map_7=0x2031
|
||||
phy_xaui_rx_polarity_flip_7=0xe
|
||||
phy_xaui_tx_polarity_flip_7=0xd
|
||||
serdes_driver_current_lane0_xe6=0x5
|
||||
serdes_driver_current_lane1_xe6=0x5
|
||||
serdes_driver_current_lane2_xe6=0x5
|
||||
serdes_driver_current_lane3_xe6=0x5
|
||||
serdes_pre_driver_current_lane0_xe6=0x5
|
||||
serdes_pre_driver_current_lane1_xe6=0x5
|
||||
serdes_pre_driver_current_lane2_xe6=0x5
|
||||
serdes_pre_driver_current_lane3_xe6=0x5
|
||||
serdes_preemphasis_lane0_xe6=0xc6e0
|
||||
serdes_preemphasis_lane1_xe6=0xcad0
|
||||
serdes_preemphasis_lane2_xe6=0xc6e0
|
||||
serdes_preemphasis_lane3_xe6=0xcad0
|
||||
|
||||
# xe7 (40G)
|
||||
portmap_8=5:40
|
||||
xgxs_rx_lane_map_8=0x213
|
||||
xgxs_tx_lane_map_8=0x1203
|
||||
phy_xaui_rx_polarity_flip_8=0xc
|
||||
phy_xaui_tx_polarity_flip_8=0x1
|
||||
serdes_driver_current_lane0_xe7=0x4
|
||||
serdes_driver_current_lane1_xe7=0x4
|
||||
serdes_driver_current_lane2_xe7=0x4
|
||||
serdes_driver_current_lane3_xe7=0x4
|
||||
serdes_pre_driver_current_lane0_xe7=0x4
|
||||
serdes_pre_driver_current_lane1_xe7=0x4
|
||||
serdes_pre_driver_current_lane2_xe7=0x4
|
||||
serdes_pre_driver_current_lane3_xe7=0x4
|
||||
serdes_preemphasis_lane0_xe7=0xc6e0
|
||||
serdes_preemphasis_lane1_xe7=0xc6e0
|
||||
serdes_preemphasis_lane2_xe7=0xc6e0
|
||||
serdes_preemphasis_lane3_xe7=0xc6e0
|
||||
|
||||
# xe8 (40G)
|
||||
portmap_9=13:40
|
||||
xgxs_rx_lane_map_9=0x213
|
||||
xgxs_tx_lane_map_9=0x132
|
||||
phy_xaui_rx_polarity_flip_9=0xe
|
||||
phy_xaui_tx_polarity_flip_9=0x0
|
||||
serdes_driver_current_lane0_xe8=0x2
|
||||
serdes_driver_current_lane1_xe8=0x3
|
||||
serdes_driver_current_lane2_xe8=0x2
|
||||
serdes_driver_current_lane3_xe8=0x2
|
||||
serdes_pre_driver_current_lane0_xe8=0x2
|
||||
serdes_pre_driver_current_lane1_xe8=0x3
|
||||
serdes_pre_driver_current_lane2_xe8=0x2
|
||||
serdes_pre_driver_current_lane3_xe8=0x2
|
||||
serdes_preemphasis_lane0_xe8=0xb270
|
||||
serdes_preemphasis_lane1_xe8=0xbb10
|
||||
serdes_preemphasis_lane2_xe8=0xb720
|
||||
serdes_preemphasis_lane3_xe8=0xb720
|
||||
|
||||
# xe9 (40G)
|
||||
portmap_10=9:40
|
||||
xgxs_rx_lane_map_10=0x3120
|
||||
xgxs_tx_lane_map_10=0x3021
|
||||
phy_xaui_rx_polarity_flip_10=0x0
|
||||
phy_xaui_tx_polarity_flip_10=0x4
|
||||
serdes_driver_current_lane0_xe9=0x3
|
||||
serdes_driver_current_lane1_xe9=0x3
|
||||
serdes_driver_current_lane2_xe9=0x3
|
||||
serdes_driver_current_lane3_xe9=0x3
|
||||
serdes_pre_driver_current_lane0_xe9=0x3
|
||||
serdes_pre_driver_current_lane1_xe9=0x3
|
||||
serdes_pre_driver_current_lane2_xe9=0x3
|
||||
serdes_pre_driver_current_lane3_xe9=0x3
|
||||
serdes_preemphasis_lane0_xe9=0xc2f0
|
||||
serdes_preemphasis_lane1_xe9=0xc6e0
|
||||
serdes_preemphasis_lane2_xe9=0xbf00
|
||||
serdes_preemphasis_lane3_xe9=0xc2f0
|
||||
|
||||
# xe10 (40G)
|
||||
portmap_11=17:40
|
||||
xgxs_rx_lane_map_11=0x213
|
||||
xgxs_tx_lane_map_11=0x132
|
||||
phy_xaui_rx_polarity_flip_11=0xe
|
||||
phy_xaui_tx_polarity_flip_11=0x0
|
||||
serdes_driver_current_lane0_xe10=0x2
|
||||
serdes_driver_current_lane1_xe10=0x2
|
||||
serdes_driver_current_lane2_xe10=0x2
|
||||
serdes_driver_current_lane3_xe10=0x2
|
||||
serdes_pre_driver_current_lane0_xe10=0x2
|
||||
serdes_pre_driver_current_lane1_xe10=0x2
|
||||
serdes_pre_driver_current_lane2_xe10=0x2
|
||||
serdes_pre_driver_current_lane3_xe10=0x2
|
||||
serdes_preemphasis_lane0_xe10=0xb330
|
||||
serdes_preemphasis_lane1_xe10=0xbb10
|
||||
serdes_preemphasis_lane2_xe10=0xbb10
|
||||
serdes_preemphasis_lane3_xe10=0xbb10
|
||||
|
||||
# xe11 (40G)
|
||||
portmap_12=21:40
|
||||
xgxs_rx_lane_map_12=0x123
|
||||
xgxs_tx_lane_map_12=0x1203
|
||||
phy_xaui_rx_polarity_flip_12=0xc
|
||||
phy_xaui_tx_polarity_flip_12=0xe
|
||||
serdes_driver_current_lane0_xe11=0x2
|
||||
serdes_driver_current_lane1_xe11=0x2
|
||||
serdes_driver_current_lane2_xe11=0x2
|
||||
serdes_driver_current_lane3_xe11=0x2
|
||||
serdes_pre_driver_current_lane0_xe11=0x2
|
||||
serdes_pre_driver_current_lane1_xe11=0x2
|
||||
serdes_pre_driver_current_lane2_xe11=0x2
|
||||
serdes_pre_driver_current_lane3_xe11=0x2
|
||||
serdes_preemphasis_lane0_xe11=0xb330
|
||||
serdes_preemphasis_lane1_xe11=0xb330
|
||||
serdes_preemphasis_lane2_xe11=0xb330
|
||||
serdes_preemphasis_lane3_xe11=0xb330
|
||||
|
||||
# xe12 (40G)
|
||||
portmap_13=53:40
|
||||
xgxs_rx_lane_map_13=0x213
|
||||
xgxs_tx_lane_map_13=0x231
|
||||
phy_xaui_rx_polarity_flip_13=0x1
|
||||
phy_xaui_tx_polarity_flip_13=0x0
|
||||
serdes_driver_current_lane0_xe12=0x2
|
||||
serdes_driver_current_lane1_xe12=0x2
|
||||
serdes_driver_current_lane2_xe12=0x2
|
||||
serdes_driver_current_lane3_xe12=0x2
|
||||
serdes_pre_driver_current_lane0_xe12=0x2
|
||||
serdes_pre_driver_current_lane1_xe12=0x2
|
||||
serdes_pre_driver_current_lane2_xe12=0x2
|
||||
serdes_pre_driver_current_lane3_xe12=0x2
|
||||
serdes_preemphasis_lane0_xe12=0xaf40
|
||||
serdes_preemphasis_lane1_xe12=0xaf40
|
||||
serdes_preemphasis_lane2_xe12=0xaf40
|
||||
serdes_preemphasis_lane3_xe12=0xaf40
|
||||
|
||||
# xe13 (40G)
|
||||
portmap_14=49:40
|
||||
xgxs_rx_lane_map_14=0x1302
|
||||
xgxs_tx_lane_map_14=0x2031
|
||||
phy_xaui_rx_polarity_flip_14=0xb
|
||||
phy_xaui_tx_polarity_flip_14=0x3
|
||||
serdes_driver_current_lane0_xe13=0x2
|
||||
serdes_driver_current_lane1_xe13=0x2
|
||||
serdes_driver_current_lane2_xe13=0x2
|
||||
serdes_driver_current_lane3_xe13=0x2
|
||||
serdes_pre_driver_current_lane0_xe13=0x2
|
||||
serdes_pre_driver_current_lane1_xe13=0x2
|
||||
serdes_pre_driver_current_lane2_xe13=0x2
|
||||
serdes_pre_driver_current_lane3_xe13=0x2
|
||||
serdes_preemphasis_lane0_xe13=0xa760
|
||||
serdes_preemphasis_lane1_xe13=0xa760
|
||||
serdes_preemphasis_lane2_xe13=0xa760
|
||||
serdes_preemphasis_lane3_xe13=0xa760
|
||||
|
||||
# xe14 (40G)
|
||||
portmap_15=57:40
|
||||
xgxs_rx_lane_map_15=0x213
|
||||
xgxs_tx_lane_map_15=0x2031
|
||||
phy_xaui_rx_polarity_flip_15=0x1
|
||||
phy_xaui_tx_polarity_flip_15=0x0
|
||||
serdes_driver_current_lane0_xe14=0x1
|
||||
serdes_driver_current_lane1_xe14=0x1
|
||||
serdes_driver_current_lane2_xe14=0x1
|
||||
serdes_driver_current_lane3_xe14=0x1
|
||||
serdes_pre_driver_current_lane0_xe14=0x1
|
||||
serdes_pre_driver_current_lane1_xe14=0x1
|
||||
serdes_pre_driver_current_lane2_xe14=0x1
|
||||
serdes_pre_driver_current_lane3_xe14=0x1
|
||||
serdes_preemphasis_lane0_xe14=0xa760
|
||||
serdes_preemphasis_lane1_xe14=0xa760
|
||||
serdes_preemphasis_lane2_xe14=0xa760
|
||||
serdes_preemphasis_lane3_xe14=0xa760
|
||||
|
||||
# xe15 (40G)
|
||||
portmap_16=61:40
|
||||
xgxs_rx_lane_map_16=0x132
|
||||
xgxs_tx_lane_map_16=0x213
|
||||
phy_xaui_rx_polarity_flip_16=0x0
|
||||
phy_xaui_tx_polarity_flip_16=0x0
|
||||
serdes_driver_current_lane0_xe15=0x2
|
||||
serdes_driver_current_lane1_xe15=0x2
|
||||
serdes_driver_current_lane2_xe15=0x2
|
||||
serdes_driver_current_lane3_xe15=0x2
|
||||
serdes_pre_driver_current_lane0_xe15=0x2
|
||||
serdes_pre_driver_current_lane1_xe15=0x2
|
||||
serdes_pre_driver_current_lane2_xe15=0x2
|
||||
serdes_pre_driver_current_lane3_xe15=0x2
|
||||
serdes_preemphasis_lane0_xe15=0xa760
|
||||
serdes_preemphasis_lane1_xe15=0xa760
|
||||
serdes_preemphasis_lane2_xe15=0xa760
|
||||
serdes_preemphasis_lane3_xe15=0xa760
|
||||
|
||||
# xe16 (40G)
|
||||
portmap_17=69:40
|
||||
xgxs_rx_lane_map_17=0x213
|
||||
xgxs_tx_lane_map_17=0x2130
|
||||
phy_xaui_rx_polarity_flip_17=0x1
|
||||
phy_xaui_tx_polarity_flip_17=0xf
|
||||
serdes_driver_current_lane0_xe16=0x1
|
||||
serdes_driver_current_lane1_xe16=0x1
|
||||
serdes_driver_current_lane2_xe16=0x1
|
||||
serdes_driver_current_lane3_xe16=0x1
|
||||
serdes_pre_driver_current_lane0_xe16=0x1
|
||||
serdes_pre_driver_current_lane1_xe16=0x1
|
||||
serdes_pre_driver_current_lane2_xe16=0x1
|
||||
serdes_pre_driver_current_lane3_xe16=0x1
|
||||
serdes_preemphasis_lane0_xe16=0xa760
|
||||
serdes_preemphasis_lane1_xe16=0xa760
|
||||
serdes_preemphasis_lane2_xe16=0xa760
|
||||
serdes_preemphasis_lane3_xe16=0xa760
|
||||
|
||||
# xe17 (40G)
|
||||
portmap_18=65:40
|
||||
xgxs_rx_lane_map_18=0x132
|
||||
xgxs_tx_lane_map_18=0x2031
|
||||
phy_xaui_rx_polarity_flip_18=0x3
|
||||
phy_xaui_tx_polarity_flip_18=0x9
|
||||
serdes_driver_current_lane0_xe17=0x1
|
||||
serdes_driver_current_lane1_xe17=0x1
|
||||
serdes_driver_current_lane2_xe17=0x1
|
||||
serdes_driver_current_lane3_xe17=0x1
|
||||
serdes_pre_driver_current_lane0_xe17=0x1
|
||||
serdes_pre_driver_current_lane1_xe17=0x1
|
||||
serdes_pre_driver_current_lane2_xe17=0x1
|
||||
serdes_pre_driver_current_lane3_xe17=0x1
|
||||
serdes_preemphasis_lane0_xe17=0xa370
|
||||
serdes_preemphasis_lane1_xe17=0xa370
|
||||
serdes_preemphasis_lane2_xe17=0xa370
|
||||
serdes_preemphasis_lane3_xe17=0xa370
|
||||
|
||||
# xe18 (40G)
|
||||
portmap_19=73:40
|
||||
xgxs_rx_lane_map_19=0x213
|
||||
xgxs_tx_lane_map_19=0x2031
|
||||
phy_xaui_rx_polarity_flip_19=0x1
|
||||
phy_xaui_tx_polarity_flip_19=0x0
|
||||
serdes_driver_current_lane0_xe18=0x2
|
||||
serdes_driver_current_lane1_xe18=0x2
|
||||
serdes_driver_current_lane2_xe18=0x2
|
||||
serdes_driver_current_lane3_xe18=0x2
|
||||
serdes_pre_driver_current_lane0_xe18=0x2
|
||||
serdes_pre_driver_current_lane1_xe18=0x2
|
||||
serdes_pre_driver_current_lane2_xe18=0x2
|
||||
serdes_pre_driver_current_lane3_xe18=0x2
|
||||
serdes_preemphasis_lane0_xe18=0xa760
|
||||
serdes_preemphasis_lane1_xe18=0xa760
|
||||
serdes_preemphasis_lane2_xe18=0xa760
|
||||
serdes_preemphasis_lane3_xe18=0xa760
|
||||
|
||||
# xe19 (40G)
|
||||
portmap_20=77:40
|
||||
xgxs_rx_lane_map_20=0x123
|
||||
xgxs_tx_lane_map_20=0x1203
|
||||
phy_xaui_rx_polarity_flip_20=0x3
|
||||
phy_xaui_tx_polarity_flip_20=0xe
|
||||
serdes_driver_current_lane0_xe19=0x2
|
||||
serdes_driver_current_lane1_xe19=0x2
|
||||
serdes_driver_current_lane2_xe19=0x2
|
||||
serdes_driver_current_lane3_xe19=0x2
|
||||
serdes_pre_driver_current_lane0_xe19=0x2
|
||||
serdes_pre_driver_current_lane1_xe19=0x2
|
||||
serdes_pre_driver_current_lane2_xe19=0x2
|
||||
serdes_pre_driver_current_lane3_xe19=0x2
|
||||
serdes_preemphasis_lane0_xe19=0xaf40
|
||||
serdes_preemphasis_lane1_xe19=0xaf40
|
||||
serdes_preemphasis_lane2_xe19=0xaf40
|
||||
serdes_preemphasis_lane3_xe19=0xaf40
|
||||
|
||||
# xe20 (40G)
|
||||
portmap_21=109:40
|
||||
xgxs_rx_lane_map_21=0x132
|
||||
xgxs_tx_lane_map_21=0x132
|
||||
phy_xaui_rx_polarity_flip_21=0x8
|
||||
phy_xaui_tx_polarity_flip_21=0x0
|
||||
serdes_driver_current_lane0_xe20=0x1
|
||||
serdes_driver_current_lane1_xe20=0x1
|
||||
serdes_driver_current_lane2_xe20=0x1
|
||||
serdes_driver_current_lane3_xe20=0x2
|
||||
serdes_pre_driver_current_lane0_xe20=0x1
|
||||
serdes_pre_driver_current_lane1_xe20=0x1
|
||||
serdes_pre_driver_current_lane2_xe20=0x1
|
||||
serdes_pre_driver_current_lane3_xe20=0x2
|
||||
serdes_preemphasis_lane0_xe20=0xb330
|
||||
serdes_preemphasis_lane1_xe20=0xb330
|
||||
serdes_preemphasis_lane2_xe20=0xb330
|
||||
serdes_preemphasis_lane3_xe20=0xbff0
|
||||
|
||||
# xe21 (40G)
|
||||
portmap_22=105:40
|
||||
xgxs_rx_lane_map_22=0x1320
|
||||
xgxs_tx_lane_map_22=0x3021
|
||||
phy_xaui_rx_polarity_flip_22=0xd
|
||||
phy_xaui_tx_polarity_flip_22=0xb
|
||||
serdes_driver_current_lane0_xe21=0x1
|
||||
serdes_driver_current_lane1_xe21=0x1
|
||||
serdes_driver_current_lane2_xe21=0x1
|
||||
serdes_driver_current_lane3_xe21=0x1
|
||||
serdes_pre_driver_current_lane0_xe21=0x1
|
||||
serdes_pre_driver_current_lane1_xe21=0x1
|
||||
serdes_pre_driver_current_lane2_xe21=0x1
|
||||
serdes_pre_driver_current_lane3_xe21=0x1
|
||||
serdes_preemphasis_lane0_xe21=0xb330
|
||||
serdes_preemphasis_lane1_xe21=0xb330
|
||||
serdes_preemphasis_lane2_xe21=0xb330
|
||||
serdes_preemphasis_lane3_xe21=0xb330
|
||||
|
||||
# xe22 (40G)
|
||||
portmap_23=113:40
|
||||
xgxs_rx_lane_map_23=0x132
|
||||
xgxs_tx_lane_map_23=0x132
|
||||
phy_xaui_rx_polarity_flip_23=0x8
|
||||
phy_xaui_tx_polarity_flip_23=0x0
|
||||
serdes_driver_current_lane0_xe22=0x1
|
||||
serdes_driver_current_lane1_xe22=0x1
|
||||
serdes_driver_current_lane2_xe22=0x1
|
||||
serdes_driver_current_lane3_xe22=0x1
|
||||
serdes_pre_driver_current_lane0_xe22=0x1
|
||||
serdes_pre_driver_current_lane1_xe22=0x1
|
||||
serdes_pre_driver_current_lane2_xe22=0x1
|
||||
serdes_pre_driver_current_lane3_xe22=0x1
|
||||
serdes_preemphasis_lane0_xe22=0xbb10
|
||||
serdes_preemphasis_lane1_xe22=0xbb10
|
||||
serdes_preemphasis_lane2_xe22=0xbb10
|
||||
serdes_preemphasis_lane3_xe22=0xc2f0
|
||||
|
||||
# xe23 (40G)
|
||||
portmap_24=117:40
|
||||
xgxs_rx_lane_map_24=0x231
|
||||
xgxs_tx_lane_map_24=0x1203
|
||||
phy_xaui_rx_polarity_flip_24=0x3
|
||||
phy_xaui_tx_polarity_flip_24=0xe
|
||||
serdes_driver_current_lane0_xe23=0x3
|
||||
serdes_driver_current_lane1_xe23=0x5
|
||||
serdes_driver_current_lane2_xe23=0x3
|
||||
serdes_driver_current_lane3_xe23=0x3
|
||||
serdes_pre_driver_current_lane0_xe23=0x3
|
||||
serdes_pre_driver_current_lane1_xe23=0x5
|
||||
serdes_pre_driver_current_lane2_xe23=0x3
|
||||
serdes_pre_driver_current_lane3_xe23=0x3
|
||||
serdes_preemphasis_lane0_xe23=0xc6e0
|
||||
serdes_preemphasis_lane1_xe23=0xc6e0
|
||||
serdes_preemphasis_lane2_xe23=0xc6e0
|
||||
serdes_preemphasis_lane3_xe23=0xc6e0
|
||||
|
||||
# xe24 (40G)
|
||||
portmap_25=125:40
|
||||
xgxs_rx_lane_map_25=0x132
|
||||
xgxs_tx_lane_map_25=0x132
|
||||
phy_xaui_rx_polarity_flip_25=0x8
|
||||
phy_xaui_tx_polarity_flip_25=0x0
|
||||
serdes_driver_current_lane0_xe24=0x4
|
||||
serdes_driver_current_lane1_xe24=0x4
|
||||
serdes_driver_current_lane2_xe24=0x4
|
||||
serdes_driver_current_lane3_xe24=0x4
|
||||
serdes_pre_driver_current_lane0_xe24=0x4
|
||||
serdes_pre_driver_current_lane1_xe24=0x4
|
||||
serdes_pre_driver_current_lane2_xe24=0x4
|
||||
serdes_pre_driver_current_lane3_xe24=0x4
|
||||
serdes_preemphasis_lane0_xe24=0xc6e0
|
||||
serdes_preemphasis_lane1_xe24=0xc6e0
|
||||
serdes_preemphasis_lane2_xe24=0xc6e0
|
||||
serdes_preemphasis_lane3_xe24=0xcec0
|
||||
|
||||
# xe25 (40G)
|
||||
portmap_26=121:40
|
||||
xgxs_rx_lane_map_26=0x1320
|
||||
xgxs_tx_lane_map_26=0x3021
|
||||
phy_xaui_rx_polarity_flip_26=0xd
|
||||
phy_xaui_tx_polarity_flip_26=0xb
|
||||
serdes_driver_current_lane0_xe25=0x4
|
||||
serdes_driver_current_lane1_xe25=0x4
|
||||
serdes_driver_current_lane2_xe25=0x4
|
||||
serdes_driver_current_lane3_xe25=0x4
|
||||
serdes_pre_driver_current_lane0_xe25=0x4
|
||||
serdes_pre_driver_current_lane1_xe25=0x4
|
||||
serdes_pre_driver_current_lane2_xe25=0x4
|
||||
serdes_pre_driver_current_lane3_xe25=0x4
|
||||
serdes_preemphasis_lane0_xe25=0xc6e0
|
||||
serdes_preemphasis_lane1_xe25=0xc6e0
|
||||
serdes_preemphasis_lane2_xe25=0xc6e0
|
||||
serdes_preemphasis_lane3_xe25=0xc6e0
|
||||
|
||||
# xe26 (40G)
|
||||
portmap_27=81:40
|
||||
xgxs_rx_lane_map_27=0x1320
|
||||
xgxs_tx_lane_map_27=0x2031
|
||||
phy_xaui_rx_polarity_flip_27=0x1
|
||||
phy_xaui_tx_polarity_flip_27=0x2
|
||||
serdes_driver_current_lane0_xe26=0x2
|
||||
serdes_driver_current_lane1_xe26=0x2
|
||||
serdes_driver_current_lane2_xe26=0x2
|
||||
serdes_driver_current_lane3_xe26=0x2
|
||||
serdes_pre_driver_current_lane0_xe26=0x2
|
||||
serdes_pre_driver_current_lane1_xe26=0x2
|
||||
serdes_pre_driver_current_lane2_xe26=0x2
|
||||
serdes_pre_driver_current_lane3_xe26=0x2
|
||||
serdes_preemphasis_lane0_xe26=0xbb10
|
||||
serdes_preemphasis_lane1_xe26=0xbb10
|
||||
serdes_preemphasis_lane2_xe26=0xbf00
|
||||
serdes_preemphasis_lane3_xe26=0xbb10
|
||||
|
||||
# xe27 (40G)
|
||||
portmap_28=85:40
|
||||
xgxs_rx_lane_map_28=0x213
|
||||
xgxs_tx_lane_map_28=0x1203
|
||||
phy_xaui_rx_polarity_flip_28=0xc
|
||||
phy_xaui_tx_polarity_flip_28=0xe
|
||||
serdes_driver_current_lane0_xe27=0x4
|
||||
serdes_driver_current_lane1_xe27=0x5
|
||||
serdes_driver_current_lane2_xe27=0x4
|
||||
serdes_driver_current_lane3_xe27=0x5
|
||||
serdes_pre_driver_current_lane0_xe27=0x4
|
||||
serdes_pre_driver_current_lane1_xe27=0x5
|
||||
serdes_pre_driver_current_lane2_xe27=0x4
|
||||
serdes_pre_driver_current_lane3_xe27=0x5
|
||||
serdes_preemphasis_lane0_xe27=0xc2f0
|
||||
serdes_preemphasis_lane1_xe27=0xc6e0
|
||||
serdes_preemphasis_lane2_xe27=0xc6e0
|
||||
serdes_preemphasis_lane3_xe27=0xc6e0
|
||||
|
||||
# xe28 (40G)
|
||||
portmap_29=93:40
|
||||
xgxs_rx_lane_map_29=0x1320
|
||||
xgxs_tx_lane_map_29=0x2031
|
||||
phy_xaui_rx_polarity_flip_29=0x1
|
||||
phy_xaui_tx_polarity_flip_29=0x2
|
||||
serdes_driver_current_lane0_xe28=0x4
|
||||
serdes_driver_current_lane1_xe28=0x4
|
||||
serdes_driver_current_lane2_xe28=0x4
|
||||
serdes_driver_current_lane3_xe28=0x4
|
||||
serdes_pre_driver_current_lane0_xe28=0x4
|
||||
serdes_pre_driver_current_lane1_xe28=0x4
|
||||
serdes_pre_driver_current_lane2_xe28=0x4
|
||||
serdes_pre_driver_current_lane3_xe28=0x4
|
||||
serdes_preemphasis_lane0_xe28=0xc2f0
|
||||
serdes_preemphasis_lane1_xe28=0xc2f0
|
||||
serdes_preemphasis_lane2_xe28=0xc2f0
|
||||
serdes_preemphasis_lane3_xe28=0xc2f0
|
||||
|
||||
# xe29 (40G)
|
||||
portmap_30=89:40
|
||||
xgxs_rx_lane_map_30=0x1320
|
||||
xgxs_tx_lane_map_30=0x3021
|
||||
phy_xaui_rx_polarity_flip_30=0x2
|
||||
phy_xaui_tx_polarity_flip_30=0xb
|
||||
serdes_driver_current_lane0_xe29=0x4
|
||||
serdes_driver_current_lane1_xe29=0x4
|
||||
serdes_driver_current_lane2_xe29=0x4
|
||||
serdes_driver_current_lane3_xe29=0x4
|
||||
serdes_pre_driver_current_lane0_xe29=0x4
|
||||
serdes_pre_driver_current_lane1_xe29=0x4
|
||||
serdes_pre_driver_current_lane2_xe29=0x4
|
||||
serdes_pre_driver_current_lane3_xe29=0x4
|
||||
serdes_preemphasis_lane0_xe29=0xcad0
|
||||
serdes_preemphasis_lane1_xe29=0xc6e0
|
||||
serdes_preemphasis_lane2_xe29=0xc6e0
|
||||
serdes_preemphasis_lane3_xe29=0xc6e0
|
||||
|
||||
# xe30 (40G)
|
||||
portmap_31=101:40
|
||||
xgxs_rx_lane_map_31=0x1320
|
||||
xgxs_tx_lane_map_31=0x1203
|
||||
phy_xaui_rx_polarity_flip_31=0x1
|
||||
phy_xaui_tx_polarity_flip_31=0x6
|
||||
serdes_driver_current_lane0_xe30=0x6
|
||||
serdes_driver_current_lane1_xe30=0x6
|
||||
serdes_driver_current_lane2_xe30=0x6
|
||||
serdes_driver_current_lane3_xe30=0x7
|
||||
serdes_pre_driver_current_lane0_xe30=0x6
|
||||
serdes_pre_driver_current_lane1_xe30=0x6
|
||||
serdes_pre_driver_current_lane2_xe30=0x6
|
||||
serdes_pre_driver_current_lane3_xe30=0x7
|
||||
serdes_preemphasis_lane0_xe30=0xcec0
|
||||
serdes_preemphasis_lane1_xe30=0xcec0
|
||||
serdes_preemphasis_lane2_xe30=0xcad0
|
||||
serdes_preemphasis_lane3_xe30=0xc6e0
|
||||
|
||||
# xe31 (40G)
|
||||
portmap_32=97:40
|
||||
xgxs_rx_lane_map_32=0x213
|
||||
xgxs_tx_lane_map_32=0x2031
|
||||
phy_xaui_rx_polarity_flip_32=0xc
|
||||
phy_xaui_tx_polarity_flip_32=0x3
|
||||
serdes_driver_current_lane0_xe31=0x5
|
||||
serdes_driver_current_lane1_xe31=0x5
|
||||
serdes_driver_current_lane2_xe31=0x5
|
||||
serdes_driver_current_lane3_xe31=0x5
|
||||
serdes_pre_driver_current_lane0_xe31=0x5
|
||||
serdes_pre_driver_current_lane1_xe31=0x5
|
||||
serdes_pre_driver_current_lane2_xe31=0x5
|
||||
serdes_pre_driver_current_lane3_xe31=0x5
|
||||
serdes_preemphasis_lane0_xe31=0xcad0
|
||||
serdes_preemphasis_lane1_xe31=0xcad0
|
||||
serdes_preemphasis_lane2_xe31=0xcad0
|
||||
serdes_preemphasis_lane3_xe31=0xcad0
|
@ -0,0 +1,3 @@
|
||||
{%- set default_topo = 't1' %}
|
||||
{%- include 'buffers_config.j2' %}
|
||||
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,45 @@
|
||||
{%- set default_cable = '300m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{% for port_idx in range(0,32) %}
|
||||
{% if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "12766208",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "7326924",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"size":"0",
|
||||
"dynamic_th":"3"
|
||||
},
|
||||
"egress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossless_pool]",
|
||||
"size":"0",
|
||||
"static_th":"12766208"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,17 @@
|
||||
# PG lossless profiles.
|
||||
# speed cable size xon xoff threshold xon_offset
|
||||
10000 5m 56368 18432 55120 -3 2496
|
||||
25000 5m 56368 18432 55120 -3 2496
|
||||
40000 5m 56368 18432 55120 -3 2496
|
||||
50000 5m 56368 18432 55120 -3 2496
|
||||
100000 5m 56368 18432 55120 -3 2496
|
||||
10000 40m 56368 18432 55120 -3 2496
|
||||
25000 40m 56368 18432 55120 -3 2496
|
||||
40000 40m 56368 18432 55120 -3 2496
|
||||
50000 40m 56368 18432 55120 -3 2496
|
||||
100000 40m 56368 18432 55120 -3 2496
|
||||
10000 300m 56368 18432 55120 -3 2496
|
||||
25000 300m 56368 18432 55120 -3 2496
|
||||
40000 300m 56368 18432 55120 -3 2496
|
||||
50000 300m 56368 18432 55120 -3 2496
|
||||
100000 300m 56368 18432 55120 -3 2496
|
@ -0,0 +1,33 @@
|
||||
# name lanes alias index speed
|
||||
Ethernet0 25,26,27,28 fortyGigE0/0 0 40000
|
||||
Ethernet4 29,30,31,32 fortyGigE0/4 1 40000
|
||||
Ethernet8 33,34,35,36 fortyGigE0/8 2 40000
|
||||
Ethernet12 37,38,39,40 fortyGigE0/12 3 40000
|
||||
Ethernet16 45,46,47,48 fortyGigE0/16 4 40000
|
||||
Ethernet20 41,42,43,44 fortyGigE0/20 5 40000
|
||||
Ethernet24 1,2,3,4 fortyGigE0/24 6 40000
|
||||
Ethernet28 5,6,7,8 fortyGigE0/28 7 40000
|
||||
Ethernet32 13,14,15,16 fortyGigE0/32 8 40000
|
||||
Ethernet36 9,10,11,12 fortyGigE0/36 9 40000
|
||||
Ethernet40 17,18,19,20 fortyGigE0/40 10 40000
|
||||
Ethernet44 21,22,23,24 fortyGigE0/44 11 40000
|
||||
Ethernet48 53,54,55,56 fortyGigE0/48 12 40000
|
||||
Ethernet52 49,50,51,52 fortyGigE0/52 13 40000
|
||||
Ethernet56 57,58,59,60 fortyGigE0/56 14 40000
|
||||
Ethernet60 61,62,63,64 fortyGigE0/60 15 40000
|
||||
Ethernet64 69,70,71,72 fortyGigE0/64 16 40000
|
||||
Ethernet68 65,66,67,68 fortyGigE0/68 17 40000
|
||||
Ethernet72 73,74,75,76 fortyGigE0/72 18 40000
|
||||
Ethernet76 77,78,79,80 fortyGigE0/76 19 40000
|
||||
Ethernet80 109,110,111,112 fortyGigE0/80 20 40000
|
||||
Ethernet84 105,106,107,108 fortyGigE0/84 21 40000
|
||||
Ethernet88 113,114,115,116 fortyGigE0/88 22 40000
|
||||
Ethernet92 117,118,119,120 fortyGigE0/92 23 40000
|
||||
Ethernet96 125,126,127,128 fortyGigE0/96 24 40000
|
||||
Ethernet100 121,122,123,124 fortyGigE0/100 25 40000
|
||||
Ethernet104 81,82,83,84 fortyGigE0/104 26 40000
|
||||
Ethernet108 85,86,87,88 fortyGigE0/108 27 40000
|
||||
Ethernet112 93,94,95,96 fortyGigE0/112 28 40000
|
||||
Ethernet116 89,90,91,92 fortyGigE0/116 29 40000
|
||||
Ethernet120 101,102,103,104 fortyGigE0/120 30 40000
|
||||
Ethernet124 97,98,99,100 fortyGigE0/124 31 40000
|
@ -0,0 +1 @@
|
||||
{%- include 'qos_config.j2' %}
|
@ -0,0 +1,2 @@
|
||||
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/td2-s6000-32x40G.config.bcm
|
||||
SAI_NUM_ECMP_MEMBERS=32
|
@ -0,0 +1,646 @@
|
||||
# Old LPM only configuration
|
||||
# l2_mem_entries=163840
|
||||
# l3_mem_entries=90112
|
||||
# l3_alpm_enable=0
|
||||
# ipv6_lpm_128b_enable=0
|
||||
#
|
||||
# ALPM enable
|
||||
l3_alpm_enable=2
|
||||
ipv6_lpm_128b_enable=1
|
||||
l2_mem_entries=32768
|
||||
l3_mem_entries=16384
|
||||
|
||||
# From old config file
|
||||
os=unix
|
||||
higig2_hdr_mode=1
|
||||
|
||||
# Parity
|
||||
parity_correction=1
|
||||
parity_enable=1
|
||||
stat_if_parity_enable=0
|
||||
|
||||
#
|
||||
bcm_num_cos=8
|
||||
bcm_stat_interval=2000000
|
||||
l2xmsg_hostbuf_size=8192
|
||||
l2xmsg_mode=1
|
||||
lls_num_l2uc=12
|
||||
max_vp_lags=0
|
||||
miim_intr_enable=0
|
||||
mmu_lossless=0
|
||||
module_64ports=0
|
||||
schan_intr_enable=0
|
||||
stable_size=0x2000000
|
||||
tdma_timeout_usec=5000000
|
||||
|
||||
pbmp_oversubscribe=0x000007fffffffffffffffffffffffffe
|
||||
pbmp_xport_xe=0x000007fffffffffffffffffffffffffe
|
||||
|
||||
# Ports configuration
|
||||
# xe0 (40G)
|
||||
portmap_1=25:40
|
||||
xgxs_rx_lane_map_1=0x213
|
||||
xgxs_tx_lane_map_1=0x2031
|
||||
phy_xaui_rx_polarity_flip_1=0xe
|
||||
phy_xaui_tx_polarity_flip_1=0x2
|
||||
serdes_driver_current_lane0_xe0=0x5
|
||||
serdes_driver_current_lane1_xe0=0x5
|
||||
serdes_driver_current_lane2_xe0=0x5
|
||||
serdes_driver_current_lane3_xe0=0x5
|
||||
serdes_pre_driver_current_lane0_xe0=0x5
|
||||
serdes_pre_driver_current_lane1_xe0=0x5
|
||||
serdes_pre_driver_current_lane2_xe0=0x5
|
||||
serdes_pre_driver_current_lane3_xe0=0x5
|
||||
serdes_preemphasis_lane0_xe0=0xcad0
|
||||
serdes_preemphasis_lane1_xe0=0xc6e0
|
||||
serdes_preemphasis_lane2_xe0=0xc6e0
|
||||
serdes_preemphasis_lane3_xe0=0xd2b0
|
||||
|
||||
# xe1 (40G)
|
||||
portmap_2=29:40
|
||||
xgxs_rx_lane_map_2=0x213
|
||||
xgxs_tx_lane_map_2=0x213
|
||||
phy_xaui_rx_polarity_flip_2=0xc
|
||||
phy_xaui_tx_polarity_flip_2=0x9
|
||||
serdes_driver_current_lane0_xe1=0x6
|
||||
serdes_driver_current_lane1_xe1=0x7
|
||||
serdes_driver_current_lane2_xe1=0x6
|
||||
serdes_driver_current_lane3_xe1=0x6
|
||||
serdes_pre_driver_current_lane0_xe1=0x6
|
||||
serdes_pre_driver_current_lane1_xe1=0x7
|
||||
serdes_pre_driver_current_lane2_xe1=0x6
|
||||
serdes_pre_driver_current_lane3_xe1=0x6
|
||||
serdes_preemphasis_lane0_xe1=0xc2f0
|
||||
serdes_preemphasis_lane1_xe1=0xd2b0
|
||||
serdes_preemphasis_lane2_xe1=0xc6e0
|
||||
serdes_preemphasis_lane3_xe1=0xc2f0
|
||||
|
||||
# xe2 (40G)
|
||||
portmap_3=33:40
|
||||
xgxs_rx_lane_map_3=0x213
|
||||
xgxs_tx_lane_map_3=0x132
|
||||
phy_xaui_rx_polarity_flip_3=0xe
|
||||
phy_xaui_tx_polarity_flip_3=0x2
|
||||
serdes_driver_current_lane0_xe2=0x4
|
||||
serdes_driver_current_lane1_xe2=0x4
|
||||
serdes_driver_current_lane2_xe2=0x4
|
||||
serdes_driver_current_lane3_xe2=0x4
|
||||
serdes_pre_driver_current_lane0_xe2=0x4
|
||||
serdes_pre_driver_current_lane1_xe2=0x4
|
||||
serdes_pre_driver_current_lane2_xe2=0x4
|
||||
serdes_pre_driver_current_lane3_xe2=0x4
|
||||
serdes_preemphasis_lane0_xe2=0xc6e0
|
||||
serdes_preemphasis_lane1_xe2=0xc6e0
|
||||
serdes_preemphasis_lane2_xe2=0xc6e0
|
||||
serdes_preemphasis_lane3_xe2=0xc6e0
|
||||
|
||||
# xe3 (40G)
|
||||
portmap_4=37:40
|
||||
xgxs_rx_lane_map_4=0x213
|
||||
xgxs_tx_lane_map_4=0x1203
|
||||
phy_xaui_rx_polarity_flip_4=0x3
|
||||
phy_xaui_tx_polarity_flip_4=0xe
|
||||
serdes_driver_current_lane0_xe3=0x4
|
||||
serdes_driver_current_lane1_xe3=0x4
|
||||
serdes_driver_current_lane2_xe3=0x4
|
||||
serdes_driver_current_lane3_xe3=0x4
|
||||
serdes_pre_driver_current_lane0_xe3=0x4
|
||||
serdes_pre_driver_current_lane1_xe3=0x4
|
||||
serdes_pre_driver_current_lane2_xe3=0x4
|
||||
serdes_pre_driver_current_lane3_xe3=0x4
|
||||
serdes_preemphasis_lane0_xe3=0xcad0
|
||||
serdes_preemphasis_lane1_xe3=0xcad0
|
||||
serdes_preemphasis_lane2_xe3=0xc2f0
|
||||
serdes_preemphasis_lane3_xe3=0xc2f0
|
||||
|
||||
# xe4 (40G)
|
||||
portmap_5=45:40
|
||||
xgxs_rx_lane_map_5=0x213
|
||||
xgxs_tx_lane_map_5=0x213
|
||||
phy_xaui_rx_polarity_flip_5=0xe
|
||||
phy_xaui_tx_polarity_flip_5=0x8
|
||||
serdes_driver_current_lane0_xe4=0x4
|
||||
serdes_driver_current_lane1_xe4=0x4
|
||||
serdes_driver_current_lane2_xe4=0x4
|
||||
serdes_driver_current_lane3_xe4=0x4
|
||||
serdes_pre_driver_current_lane0_xe4=0x4
|
||||
serdes_pre_driver_current_lane1_xe4=0x4
|
||||
serdes_pre_driver_current_lane2_xe4=0x4
|
||||
serdes_pre_driver_current_lane3_xe4=0x4
|
||||
serdes_preemphasis_lane0_xe4=0xc2f0
|
||||
serdes_preemphasis_lane1_xe4=0xc2f0
|
||||
serdes_preemphasis_lane2_xe4=0xc2f0
|
||||
serdes_preemphasis_lane3_xe4=0xc2f0
|
||||
|
||||
# xe5 (40G)
|
||||
portmap_6=41:40
|
||||
xgxs_rx_lane_map_6=0x213
|
||||
xgxs_tx_lane_map_6=0x3021
|
||||
phy_xaui_rx_polarity_flip_6=0x3
|
||||
phy_xaui_tx_polarity_flip_6=0xb
|
||||
serdes_driver_current_lane0_xe5=0x4
|
||||
serdes_driver_current_lane1_xe5=0x4
|
||||
serdes_driver_current_lane2_xe5=0x4
|
||||
serdes_driver_current_lane3_xe5=0x4
|
||||
serdes_pre_driver_current_lane0_xe5=0x4
|
||||
serdes_pre_driver_current_lane1_xe5=0x4
|
||||
serdes_pre_driver_current_lane2_xe5=0x4
|
||||
serdes_pre_driver_current_lane3_xe5=0x4
|
||||
serdes_preemphasis_lane0_xe5=0xc6e0
|
||||
serdes_preemphasis_lane1_xe5=0xc2f0
|
||||
serdes_preemphasis_lane2_xe5=0xc2f0
|
||||
serdes_preemphasis_lane3_xe5=0xcad0
|
||||
|
||||
# xe6 (40G)
|
||||
portmap_7=1:40
|
||||
xgxs_rx_lane_map_7=0x213
|
||||
xgxs_tx_lane_map_7=0x2031
|
||||
phy_xaui_rx_polarity_flip_7=0xe
|
||||
phy_xaui_tx_polarity_flip_7=0xd
|
||||
serdes_driver_current_lane0_xe6=0x5
|
||||
serdes_driver_current_lane1_xe6=0x5
|
||||
serdes_driver_current_lane2_xe6=0x5
|
||||
serdes_driver_current_lane3_xe6=0x5
|
||||
serdes_pre_driver_current_lane0_xe6=0x5
|
||||
serdes_pre_driver_current_lane1_xe6=0x5
|
||||
serdes_pre_driver_current_lane2_xe6=0x5
|
||||
serdes_pre_driver_current_lane3_xe6=0x5
|
||||
serdes_preemphasis_lane0_xe6=0xc6e0
|
||||
serdes_preemphasis_lane1_xe6=0xcad0
|
||||
serdes_preemphasis_lane2_xe6=0xc6e0
|
||||
serdes_preemphasis_lane3_xe6=0xcad0
|
||||
|
||||
# xe7 (40G)
|
||||
portmap_8=5:40
|
||||
xgxs_rx_lane_map_8=0x213
|
||||
xgxs_tx_lane_map_8=0x1203
|
||||
phy_xaui_rx_polarity_flip_8=0xc
|
||||
phy_xaui_tx_polarity_flip_8=0x1
|
||||
serdes_driver_current_lane0_xe7=0x4
|
||||
serdes_driver_current_lane1_xe7=0x4
|
||||
serdes_driver_current_lane2_xe7=0x4
|
||||
serdes_driver_current_lane3_xe7=0x4
|
||||
serdes_pre_driver_current_lane0_xe7=0x4
|
||||
serdes_pre_driver_current_lane1_xe7=0x4
|
||||
serdes_pre_driver_current_lane2_xe7=0x4
|
||||
serdes_pre_driver_current_lane3_xe7=0x4
|
||||
serdes_preemphasis_lane0_xe7=0xc6e0
|
||||
serdes_preemphasis_lane1_xe7=0xc6e0
|
||||
serdes_preemphasis_lane2_xe7=0xc6e0
|
||||
serdes_preemphasis_lane3_xe7=0xc6e0
|
||||
|
||||
# xe8 (40G)
|
||||
portmap_9=13:40
|
||||
xgxs_rx_lane_map_9=0x213
|
||||
xgxs_tx_lane_map_9=0x132
|
||||
phy_xaui_rx_polarity_flip_9=0xe
|
||||
phy_xaui_tx_polarity_flip_9=0x0
|
||||
serdes_driver_current_lane0_xe8=0x2
|
||||
serdes_driver_current_lane1_xe8=0x3
|
||||
serdes_driver_current_lane2_xe8=0x2
|
||||
serdes_driver_current_lane3_xe8=0x2
|
||||
serdes_pre_driver_current_lane0_xe8=0x2
|
||||
serdes_pre_driver_current_lane1_xe8=0x3
|
||||
serdes_pre_driver_current_lane2_xe8=0x2
|
||||
serdes_pre_driver_current_lane3_xe8=0x2
|
||||
serdes_preemphasis_lane0_xe8=0xb270
|
||||
serdes_preemphasis_lane1_xe8=0xbb10
|
||||
serdes_preemphasis_lane2_xe8=0xb720
|
||||
serdes_preemphasis_lane3_xe8=0xb720
|
||||
|
||||
# xe9 (40G)
|
||||
portmap_10=9:40
|
||||
xgxs_rx_lane_map_10=0x3120
|
||||
xgxs_tx_lane_map_10=0x3021
|
||||
phy_xaui_rx_polarity_flip_10=0x0
|
||||
phy_xaui_tx_polarity_flip_10=0x4
|
||||
serdes_driver_current_lane0_xe9=0x3
|
||||
serdes_driver_current_lane1_xe9=0x3
|
||||
serdes_driver_current_lane2_xe9=0x3
|
||||
serdes_driver_current_lane3_xe9=0x3
|
||||
serdes_pre_driver_current_lane0_xe9=0x3
|
||||
serdes_pre_driver_current_lane1_xe9=0x3
|
||||
serdes_pre_driver_current_lane2_xe9=0x3
|
||||
serdes_pre_driver_current_lane3_xe9=0x3
|
||||
serdes_preemphasis_lane0_xe9=0xc2f0
|
||||
serdes_preemphasis_lane1_xe9=0xc6e0
|
||||
serdes_preemphasis_lane2_xe9=0xbf00
|
||||
serdes_preemphasis_lane3_xe9=0xc2f0
|
||||
|
||||
# xe10 (40G)
|
||||
portmap_11=17:40
|
||||
xgxs_rx_lane_map_11=0x213
|
||||
xgxs_tx_lane_map_11=0x132
|
||||
phy_xaui_rx_polarity_flip_11=0xe
|
||||
phy_xaui_tx_polarity_flip_11=0x0
|
||||
serdes_driver_current_lane0_xe10=0x2
|
||||
serdes_driver_current_lane1_xe10=0x2
|
||||
serdes_driver_current_lane2_xe10=0x2
|
||||
serdes_driver_current_lane3_xe10=0x2
|
||||
serdes_pre_driver_current_lane0_xe10=0x2
|
||||
serdes_pre_driver_current_lane1_xe10=0x2
|
||||
serdes_pre_driver_current_lane2_xe10=0x2
|
||||
serdes_pre_driver_current_lane3_xe10=0x2
|
||||
serdes_preemphasis_lane0_xe10=0xb330
|
||||
serdes_preemphasis_lane1_xe10=0xbb10
|
||||
serdes_preemphasis_lane2_xe10=0xbb10
|
||||
serdes_preemphasis_lane3_xe10=0xbb10
|
||||
|
||||
# xe11 (40G)
|
||||
portmap_12=21:40
|
||||
xgxs_rx_lane_map_12=0x123
|
||||
xgxs_tx_lane_map_12=0x1203
|
||||
phy_xaui_rx_polarity_flip_12=0xc
|
||||
phy_xaui_tx_polarity_flip_12=0xe
|
||||
serdes_driver_current_lane0_xe11=0x2
|
||||
serdes_driver_current_lane1_xe11=0x2
|
||||
serdes_driver_current_lane2_xe11=0x2
|
||||
serdes_driver_current_lane3_xe11=0x2
|
||||
serdes_pre_driver_current_lane0_xe11=0x2
|
||||
serdes_pre_driver_current_lane1_xe11=0x2
|
||||
serdes_pre_driver_current_lane2_xe11=0x2
|
||||
serdes_pre_driver_current_lane3_xe11=0x2
|
||||
serdes_preemphasis_lane0_xe11=0xb330
|
||||
serdes_preemphasis_lane1_xe11=0xb330
|
||||
serdes_preemphasis_lane2_xe11=0xb330
|
||||
serdes_preemphasis_lane3_xe11=0xb330
|
||||
|
||||
# xe12 (40G)
|
||||
portmap_13=53:40
|
||||
xgxs_rx_lane_map_13=0x213
|
||||
xgxs_tx_lane_map_13=0x231
|
||||
phy_xaui_rx_polarity_flip_13=0x1
|
||||
phy_xaui_tx_polarity_flip_13=0x0
|
||||
serdes_driver_current_lane0_xe12=0x2
|
||||
serdes_driver_current_lane1_xe12=0x2
|
||||
serdes_driver_current_lane2_xe12=0x2
|
||||
serdes_driver_current_lane3_xe12=0x2
|
||||
serdes_pre_driver_current_lane0_xe12=0x2
|
||||
serdes_pre_driver_current_lane1_xe12=0x2
|
||||
serdes_pre_driver_current_lane2_xe12=0x2
|
||||
serdes_pre_driver_current_lane3_xe12=0x2
|
||||
serdes_preemphasis_lane0_xe12=0xaf40
|
||||
serdes_preemphasis_lane1_xe12=0xaf40
|
||||
serdes_preemphasis_lane2_xe12=0xaf40
|
||||
serdes_preemphasis_lane3_xe12=0xaf40
|
||||
|
||||
# xe13 (40G)
|
||||
portmap_14=49:40
|
||||
xgxs_rx_lane_map_14=0x1302
|
||||
xgxs_tx_lane_map_14=0x2031
|
||||
phy_xaui_rx_polarity_flip_14=0xb
|
||||
phy_xaui_tx_polarity_flip_14=0x3
|
||||
serdes_driver_current_lane0_xe13=0x2
|
||||
serdes_driver_current_lane1_xe13=0x2
|
||||
serdes_driver_current_lane2_xe13=0x2
|
||||
serdes_driver_current_lane3_xe13=0x2
|
||||
serdes_pre_driver_current_lane0_xe13=0x2
|
||||
serdes_pre_driver_current_lane1_xe13=0x2
|
||||
serdes_pre_driver_current_lane2_xe13=0x2
|
||||
serdes_pre_driver_current_lane3_xe13=0x2
|
||||
serdes_preemphasis_lane0_xe13=0xa760
|
||||
serdes_preemphasis_lane1_xe13=0xa760
|
||||
serdes_preemphasis_lane2_xe13=0xa760
|
||||
serdes_preemphasis_lane3_xe13=0xa760
|
||||
|
||||
# xe14 (40G)
|
||||
portmap_15=57:40
|
||||
xgxs_rx_lane_map_15=0x213
|
||||
xgxs_tx_lane_map_15=0x2031
|
||||
phy_xaui_rx_polarity_flip_15=0x1
|
||||
phy_xaui_tx_polarity_flip_15=0x0
|
||||
serdes_driver_current_lane0_xe14=0x1
|
||||
serdes_driver_current_lane1_xe14=0x1
|
||||
serdes_driver_current_lane2_xe14=0x1
|
||||
serdes_driver_current_lane3_xe14=0x1
|
||||
serdes_pre_driver_current_lane0_xe14=0x1
|
||||
serdes_pre_driver_current_lane1_xe14=0x1
|
||||
serdes_pre_driver_current_lane2_xe14=0x1
|
||||
serdes_pre_driver_current_lane3_xe14=0x1
|
||||
serdes_preemphasis_lane0_xe14=0xa760
|
||||
serdes_preemphasis_lane1_xe14=0xa760
|
||||
serdes_preemphasis_lane2_xe14=0xa760
|
||||
serdes_preemphasis_lane3_xe14=0xa760
|
||||
|
||||
# xe15 (40G)
|
||||
portmap_16=61:40
|
||||
xgxs_rx_lane_map_16=0x132
|
||||
xgxs_tx_lane_map_16=0x213
|
||||
phy_xaui_rx_polarity_flip_16=0x0
|
||||
phy_xaui_tx_polarity_flip_16=0x0
|
||||
serdes_driver_current_lane0_xe15=0x2
|
||||
serdes_driver_current_lane1_xe15=0x2
|
||||
serdes_driver_current_lane2_xe15=0x2
|
||||
serdes_driver_current_lane3_xe15=0x2
|
||||
serdes_pre_driver_current_lane0_xe15=0x2
|
||||
serdes_pre_driver_current_lane1_xe15=0x2
|
||||
serdes_pre_driver_current_lane2_xe15=0x2
|
||||
serdes_pre_driver_current_lane3_xe15=0x2
|
||||
serdes_preemphasis_lane0_xe15=0xa760
|
||||
serdes_preemphasis_lane1_xe15=0xa760
|
||||
serdes_preemphasis_lane2_xe15=0xa760
|
||||
serdes_preemphasis_lane3_xe15=0xa760
|
||||
|
||||
# xe16 (40G)
|
||||
portmap_17=69:40
|
||||
xgxs_rx_lane_map_17=0x213
|
||||
xgxs_tx_lane_map_17=0x2130
|
||||
phy_xaui_rx_polarity_flip_17=0x1
|
||||
phy_xaui_tx_polarity_flip_17=0xf
|
||||
serdes_driver_current_lane0_xe16=0x1
|
||||
serdes_driver_current_lane1_xe16=0x1
|
||||
serdes_driver_current_lane2_xe16=0x1
|
||||
serdes_driver_current_lane3_xe16=0x1
|
||||
serdes_pre_driver_current_lane0_xe16=0x1
|
||||
serdes_pre_driver_current_lane1_xe16=0x1
|
||||
serdes_pre_driver_current_lane2_xe16=0x1
|
||||
serdes_pre_driver_current_lane3_xe16=0x1
|
||||
serdes_preemphasis_lane0_xe16=0xa760
|
||||
serdes_preemphasis_lane1_xe16=0xa760
|
||||
serdes_preemphasis_lane2_xe16=0xa760
|
||||
serdes_preemphasis_lane3_xe16=0xa760
|
||||
|
||||
# xe17 (40G)
|
||||
portmap_18=65:40
|
||||
xgxs_rx_lane_map_18=0x132
|
||||
xgxs_tx_lane_map_18=0x2031
|
||||
phy_xaui_rx_polarity_flip_18=0x3
|
||||
phy_xaui_tx_polarity_flip_18=0x9
|
||||
serdes_driver_current_lane0_xe17=0x1
|
||||
serdes_driver_current_lane1_xe17=0x1
|
||||
serdes_driver_current_lane2_xe17=0x1
|
||||
serdes_driver_current_lane3_xe17=0x1
|
||||
serdes_pre_driver_current_lane0_xe17=0x1
|
||||
serdes_pre_driver_current_lane1_xe17=0x1
|
||||
serdes_pre_driver_current_lane2_xe17=0x1
|
||||
serdes_pre_driver_current_lane3_xe17=0x1
|
||||
serdes_preemphasis_lane0_xe17=0xa370
|
||||
serdes_preemphasis_lane1_xe17=0xa370
|
||||
serdes_preemphasis_lane2_xe17=0xa370
|
||||
serdes_preemphasis_lane3_xe17=0xa370
|
||||
|
||||
# xe18 (40G)
|
||||
portmap_19=73:40
|
||||
xgxs_rx_lane_map_19=0x213
|
||||
xgxs_tx_lane_map_19=0x2031
|
||||
phy_xaui_rx_polarity_flip_19=0x1
|
||||
phy_xaui_tx_polarity_flip_19=0x0
|
||||
serdes_driver_current_lane0_xe18=0x2
|
||||
serdes_driver_current_lane1_xe18=0x2
|
||||
serdes_driver_current_lane2_xe18=0x2
|
||||
serdes_driver_current_lane3_xe18=0x2
|
||||
serdes_pre_driver_current_lane0_xe18=0x2
|
||||
serdes_pre_driver_current_lane1_xe18=0x2
|
||||
serdes_pre_driver_current_lane2_xe18=0x2
|
||||
serdes_pre_driver_current_lane3_xe18=0x2
|
||||
serdes_preemphasis_lane0_xe18=0xa760
|
||||
serdes_preemphasis_lane1_xe18=0xa760
|
||||
serdes_preemphasis_lane2_xe18=0xa760
|
||||
serdes_preemphasis_lane3_xe18=0xa760
|
||||
|
||||
# xe19 (40G)
|
||||
portmap_20=77:40
|
||||
xgxs_rx_lane_map_20=0x123
|
||||
xgxs_tx_lane_map_20=0x1203
|
||||
phy_xaui_rx_polarity_flip_20=0x3
|
||||
phy_xaui_tx_polarity_flip_20=0xe
|
||||
serdes_driver_current_lane0_xe19=0x2
|
||||
serdes_driver_current_lane1_xe19=0x2
|
||||
serdes_driver_current_lane2_xe19=0x2
|
||||
serdes_driver_current_lane3_xe19=0x2
|
||||
serdes_pre_driver_current_lane0_xe19=0x2
|
||||
serdes_pre_driver_current_lane1_xe19=0x2
|
||||
serdes_pre_driver_current_lane2_xe19=0x2
|
||||
serdes_pre_driver_current_lane3_xe19=0x2
|
||||
serdes_preemphasis_lane0_xe19=0xaf40
|
||||
serdes_preemphasis_lane1_xe19=0xaf40
|
||||
serdes_preemphasis_lane2_xe19=0xaf40
|
||||
serdes_preemphasis_lane3_xe19=0xaf40
|
||||
|
||||
# xe20 (40G)
|
||||
portmap_21=109:40
|
||||
xgxs_rx_lane_map_21=0x132
|
||||
xgxs_tx_lane_map_21=0x132
|
||||
phy_xaui_rx_polarity_flip_21=0x8
|
||||
phy_xaui_tx_polarity_flip_21=0x0
|
||||
serdes_driver_current_lane0_xe20=0x1
|
||||
serdes_driver_current_lane1_xe20=0x1
|
||||
serdes_driver_current_lane2_xe20=0x1
|
||||
serdes_driver_current_lane3_xe20=0x2
|
||||
serdes_pre_driver_current_lane0_xe20=0x1
|
||||
serdes_pre_driver_current_lane1_xe20=0x1
|
||||
serdes_pre_driver_current_lane2_xe20=0x1
|
||||
serdes_pre_driver_current_lane3_xe20=0x2
|
||||
serdes_preemphasis_lane0_xe20=0xb330
|
||||
serdes_preemphasis_lane1_xe20=0xb330
|
||||
serdes_preemphasis_lane2_xe20=0xb330
|
||||
serdes_preemphasis_lane3_xe20=0xbff0
|
||||
|
||||
# xe21 (40G)
|
||||
portmap_22=105:40
|
||||
xgxs_rx_lane_map_22=0x1320
|
||||
xgxs_tx_lane_map_22=0x3021
|
||||
phy_xaui_rx_polarity_flip_22=0xd
|
||||
phy_xaui_tx_polarity_flip_22=0xb
|
||||
serdes_driver_current_lane0_xe21=0x1
|
||||
serdes_driver_current_lane1_xe21=0x1
|
||||
serdes_driver_current_lane2_xe21=0x1
|
||||
serdes_driver_current_lane3_xe21=0x1
|
||||
serdes_pre_driver_current_lane0_xe21=0x1
|
||||
serdes_pre_driver_current_lane1_xe21=0x1
|
||||
serdes_pre_driver_current_lane2_xe21=0x1
|
||||
serdes_pre_driver_current_lane3_xe21=0x1
|
||||
serdes_preemphasis_lane0_xe21=0xb330
|
||||
serdes_preemphasis_lane1_xe21=0xb330
|
||||
serdes_preemphasis_lane2_xe21=0xb330
|
||||
serdes_preemphasis_lane3_xe21=0xb330
|
||||
|
||||
# xe22 (40G)
|
||||
portmap_23=113:40
|
||||
xgxs_rx_lane_map_23=0x132
|
||||
xgxs_tx_lane_map_23=0x132
|
||||
phy_xaui_rx_polarity_flip_23=0x8
|
||||
phy_xaui_tx_polarity_flip_23=0x0
|
||||
serdes_driver_current_lane0_xe22=0x1
|
||||
serdes_driver_current_lane1_xe22=0x1
|
||||
serdes_driver_current_lane2_xe22=0x1
|
||||
serdes_driver_current_lane3_xe22=0x1
|
||||
serdes_pre_driver_current_lane0_xe22=0x1
|
||||
serdes_pre_driver_current_lane1_xe22=0x1
|
||||
serdes_pre_driver_current_lane2_xe22=0x1
|
||||
serdes_pre_driver_current_lane3_xe22=0x1
|
||||
serdes_preemphasis_lane0_xe22=0xbb10
|
||||
serdes_preemphasis_lane1_xe22=0xbb10
|
||||
serdes_preemphasis_lane2_xe22=0xbb10
|
||||
serdes_preemphasis_lane3_xe22=0xc2f0
|
||||
|
||||
# xe23 (40G)
|
||||
portmap_24=117:40
|
||||
xgxs_rx_lane_map_24=0x231
|
||||
xgxs_tx_lane_map_24=0x1203
|
||||
phy_xaui_rx_polarity_flip_24=0x3
|
||||
phy_xaui_tx_polarity_flip_24=0xe
|
||||
serdes_driver_current_lane0_xe23=0x3
|
||||
serdes_driver_current_lane1_xe23=0x5
|
||||
serdes_driver_current_lane2_xe23=0x3
|
||||
serdes_driver_current_lane3_xe23=0x3
|
||||
serdes_pre_driver_current_lane0_xe23=0x3
|
||||
serdes_pre_driver_current_lane1_xe23=0x5
|
||||
serdes_pre_driver_current_lane2_xe23=0x3
|
||||
serdes_pre_driver_current_lane3_xe23=0x3
|
||||
serdes_preemphasis_lane0_xe23=0xc6e0
|
||||
serdes_preemphasis_lane1_xe23=0xc6e0
|
||||
serdes_preemphasis_lane2_xe23=0xc6e0
|
||||
serdes_preemphasis_lane3_xe23=0xc6e0
|
||||
|
||||
# xe24 (40G)
|
||||
portmap_25=125:40
|
||||
xgxs_rx_lane_map_25=0x132
|
||||
xgxs_tx_lane_map_25=0x132
|
||||
phy_xaui_rx_polarity_flip_25=0x8
|
||||
phy_xaui_tx_polarity_flip_25=0x0
|
||||
serdes_driver_current_lane0_xe24=0x4
|
||||
serdes_driver_current_lane1_xe24=0x4
|
||||
serdes_driver_current_lane2_xe24=0x4
|
||||
serdes_driver_current_lane3_xe24=0x4
|
||||
serdes_pre_driver_current_lane0_xe24=0x4
|
||||
serdes_pre_driver_current_lane1_xe24=0x4
|
||||
serdes_pre_driver_current_lane2_xe24=0x4
|
||||
serdes_pre_driver_current_lane3_xe24=0x4
|
||||
serdes_preemphasis_lane0_xe24=0xc6e0
|
||||
serdes_preemphasis_lane1_xe24=0xc6e0
|
||||
serdes_preemphasis_lane2_xe24=0xc6e0
|
||||
serdes_preemphasis_lane3_xe24=0xcec0
|
||||
|
||||
# xe25 (40G)
|
||||
portmap_26=121:40
|
||||
xgxs_rx_lane_map_26=0x1320
|
||||
xgxs_tx_lane_map_26=0x3021
|
||||
phy_xaui_rx_polarity_flip_26=0xd
|
||||
phy_xaui_tx_polarity_flip_26=0xb
|
||||
serdes_driver_current_lane0_xe25=0x4
|
||||
serdes_driver_current_lane1_xe25=0x4
|
||||
serdes_driver_current_lane2_xe25=0x4
|
||||
serdes_driver_current_lane3_xe25=0x4
|
||||
serdes_pre_driver_current_lane0_xe25=0x4
|
||||
serdes_pre_driver_current_lane1_xe25=0x4
|
||||
serdes_pre_driver_current_lane2_xe25=0x4
|
||||
serdes_pre_driver_current_lane3_xe25=0x4
|
||||
serdes_preemphasis_lane0_xe25=0xc6e0
|
||||
serdes_preemphasis_lane1_xe25=0xc6e0
|
||||
serdes_preemphasis_lane2_xe25=0xc6e0
|
||||
serdes_preemphasis_lane3_xe25=0xc6e0
|
||||
|
||||
# xe26 (40G)
|
||||
portmap_27=81:40
|
||||
xgxs_rx_lane_map_27=0x1320
|
||||
xgxs_tx_lane_map_27=0x2031
|
||||
phy_xaui_rx_polarity_flip_27=0x1
|
||||
phy_xaui_tx_polarity_flip_27=0x2
|
||||
serdes_driver_current_lane0_xe26=0x2
|
||||
serdes_driver_current_lane1_xe26=0x2
|
||||
serdes_driver_current_lane2_xe26=0x2
|
||||
serdes_driver_current_lane3_xe26=0x2
|
||||
serdes_pre_driver_current_lane0_xe26=0x2
|
||||
serdes_pre_driver_current_lane1_xe26=0x2
|
||||
serdes_pre_driver_current_lane2_xe26=0x2
|
||||
serdes_pre_driver_current_lane3_xe26=0x2
|
||||
serdes_preemphasis_lane0_xe26=0xbb10
|
||||
serdes_preemphasis_lane1_xe26=0xbb10
|
||||
serdes_preemphasis_lane2_xe26=0xbf00
|
||||
serdes_preemphasis_lane3_xe26=0xbb10
|
||||
|
||||
# xe27 (40G)
|
||||
portmap_28=85:40
|
||||
xgxs_rx_lane_map_28=0x213
|
||||
xgxs_tx_lane_map_28=0x1203
|
||||
phy_xaui_rx_polarity_flip_28=0xc
|
||||
phy_xaui_tx_polarity_flip_28=0xe
|
||||
serdes_driver_current_lane0_xe27=0x4
|
||||
serdes_driver_current_lane1_xe27=0x5
|
||||
serdes_driver_current_lane2_xe27=0x4
|
||||
serdes_driver_current_lane3_xe27=0x5
|
||||
serdes_pre_driver_current_lane0_xe27=0x4
|
||||
serdes_pre_driver_current_lane1_xe27=0x5
|
||||
serdes_pre_driver_current_lane2_xe27=0x4
|
||||
serdes_pre_driver_current_lane3_xe27=0x5
|
||||
serdes_preemphasis_lane0_xe27=0xc2f0
|
||||
serdes_preemphasis_lane1_xe27=0xc6e0
|
||||
serdes_preemphasis_lane2_xe27=0xc6e0
|
||||
serdes_preemphasis_lane3_xe27=0xc6e0
|
||||
|
||||
# xe28 (40G)
|
||||
portmap_29=93:40
|
||||
xgxs_rx_lane_map_29=0x1320
|
||||
xgxs_tx_lane_map_29=0x2031
|
||||
phy_xaui_rx_polarity_flip_29=0x1
|
||||
phy_xaui_tx_polarity_flip_29=0x2
|
||||
serdes_driver_current_lane0_xe28=0x4
|
||||
serdes_driver_current_lane1_xe28=0x4
|
||||
serdes_driver_current_lane2_xe28=0x4
|
||||
serdes_driver_current_lane3_xe28=0x4
|
||||
serdes_pre_driver_current_lane0_xe28=0x4
|
||||
serdes_pre_driver_current_lane1_xe28=0x4
|
||||
serdes_pre_driver_current_lane2_xe28=0x4
|
||||
serdes_pre_driver_current_lane3_xe28=0x4
|
||||
serdes_preemphasis_lane0_xe28=0xc2f0
|
||||
serdes_preemphasis_lane1_xe28=0xc2f0
|
||||
serdes_preemphasis_lane2_xe28=0xc2f0
|
||||
serdes_preemphasis_lane3_xe28=0xc2f0
|
||||
|
||||
# xe29 (40G)
|
||||
portmap_30=89:40
|
||||
xgxs_rx_lane_map_30=0x1320
|
||||
xgxs_tx_lane_map_30=0x3021
|
||||
phy_xaui_rx_polarity_flip_30=0x2
|
||||
phy_xaui_tx_polarity_flip_30=0xb
|
||||
serdes_driver_current_lane0_xe29=0x4
|
||||
serdes_driver_current_lane1_xe29=0x4
|
||||
serdes_driver_current_lane2_xe29=0x4
|
||||
serdes_driver_current_lane3_xe29=0x4
|
||||
serdes_pre_driver_current_lane0_xe29=0x4
|
||||
serdes_pre_driver_current_lane1_xe29=0x4
|
||||
serdes_pre_driver_current_lane2_xe29=0x4
|
||||
serdes_pre_driver_current_lane3_xe29=0x4
|
||||
serdes_preemphasis_lane0_xe29=0xcad0
|
||||
serdes_preemphasis_lane1_xe29=0xc6e0
|
||||
serdes_preemphasis_lane2_xe29=0xc6e0
|
||||
serdes_preemphasis_lane3_xe29=0xc6e0
|
||||
|
||||
# xe30 (40G)
|
||||
portmap_31=101:40
|
||||
xgxs_rx_lane_map_31=0x1320
|
||||
xgxs_tx_lane_map_31=0x1203
|
||||
phy_xaui_rx_polarity_flip_31=0x1
|
||||
phy_xaui_tx_polarity_flip_31=0x6
|
||||
serdes_driver_current_lane0_xe30=0x6
|
||||
serdes_driver_current_lane1_xe30=0x6
|
||||
serdes_driver_current_lane2_xe30=0x6
|
||||
serdes_driver_current_lane3_xe30=0x7
|
||||
serdes_pre_driver_current_lane0_xe30=0x6
|
||||
serdes_pre_driver_current_lane1_xe30=0x6
|
||||
serdes_pre_driver_current_lane2_xe30=0x6
|
||||
serdes_pre_driver_current_lane3_xe30=0x7
|
||||
serdes_preemphasis_lane0_xe30=0xcec0
|
||||
serdes_preemphasis_lane1_xe30=0xcec0
|
||||
serdes_preemphasis_lane2_xe30=0xcad0
|
||||
serdes_preemphasis_lane3_xe30=0xc6e0
|
||||
|
||||
# xe31 (40G)
|
||||
portmap_32=97:40
|
||||
xgxs_rx_lane_map_32=0x213
|
||||
xgxs_tx_lane_map_32=0x2031
|
||||
phy_xaui_rx_polarity_flip_32=0xc
|
||||
phy_xaui_tx_polarity_flip_32=0x3
|
||||
serdes_driver_current_lane0_xe31=0x5
|
||||
serdes_driver_current_lane1_xe31=0x5
|
||||
serdes_driver_current_lane2_xe31=0x5
|
||||
serdes_driver_current_lane3_xe31=0x5
|
||||
serdes_pre_driver_current_lane0_xe31=0x5
|
||||
serdes_pre_driver_current_lane1_xe31=0x5
|
||||
serdes_pre_driver_current_lane2_xe31=0x5
|
||||
serdes_pre_driver_current_lane3_xe31=0x5
|
||||
serdes_preemphasis_lane0_xe31=0xcad0
|
||||
serdes_preemphasis_lane1_xe31=0xcad0
|
||||
serdes_preemphasis_lane2_xe31=0xcad0
|
||||
serdes_preemphasis_lane3_xe31=0xcad0
|
81
device/virtual/x86_64-kvm_x86_64-r0/msft_multi_asic_vs/topology.sh
Executable file
81
device/virtual/x86_64-kvm_x86_64-r0/msft_multi_asic_vs/topology.sh
Executable file
@ -0,0 +1,81 @@
|
||||
#!/bin/bash
|
||||
#topolgy script for 6 ASIC PLATFORM
|
||||
FIRST_FRONTEND_ASIC=0
|
||||
LAST_FRONTEND_ASIC=3
|
||||
FIRST_BACKEND_ASIC=4
|
||||
LAST_BACKEND_ASIC=5
|
||||
NUM_INTERFACES_PER_ASIC=32
|
||||
|
||||
start () {
|
||||
# Move external links into assigned frontend namespaces
|
||||
# eth0 - eth15: asic2
|
||||
# eth16 - eth31: asic3
|
||||
# eth32 - eth47: asic4
|
||||
# eth48 - eth63: asic5
|
||||
for ASIC in `seq $FIRST_FRONTEND_ASIC $LAST_FRONTEND_ASIC`; do
|
||||
for NUM in `seq 1 16`; do
|
||||
ORIG="eth$((16 * $ASIC + $NUM - 1))"
|
||||
TEMP="ethTemp999"
|
||||
NEW="eth$(($NUM + 16))"
|
||||
ip link set dev $ORIG down
|
||||
ip link set dev $ORIG name $TEMP # rename to prevent conflicts before renaming in new namespace
|
||||
ip link set dev $TEMP netns asic$ASIC
|
||||
sudo ip netns exec asic$ASIC ip link set $TEMP name $NEW # rename to final interface name
|
||||
sudo ip netns exec asic$ASIC ip link set $NEW up
|
||||
done
|
||||
done
|
||||
|
||||
# Connect all backend namespaces to frontend namespaces
|
||||
for BACKEND in `seq $FIRST_BACKEND_ASIC $LAST_BACKEND_ASIC`; do
|
||||
for FRONTEND in `seq $FIRST_FRONTEND_ASIC $LAST_FRONTEND_ASIC`; do
|
||||
for LINK in `seq 1 8`; do
|
||||
BACK_NAME="eth$((8 * $FRONTEND + $LINK))"
|
||||
FRONT_NAME="eth$((8 * $(($LAST_BACKEND_ASIC - $BACKEND)) + $LINK))"
|
||||
TEMP_BACK="ethBack999"
|
||||
TEMP_FRONT="ethFront999"
|
||||
|
||||
ip link add $TEMP_BACK type veth peer name $TEMP_FRONT # temporary name to prevent conflicts between interfaces
|
||||
ip link set dev $TEMP_BACK netns asic$BACKEND
|
||||
ip link set dev $TEMP_FRONT netns asic$FRONTEND
|
||||
|
||||
sudo ip netns exec asic$BACKEND ip link set $TEMP_BACK name $BACK_NAME
|
||||
sudo ip netns exec asic$FRONTEND ip link set $TEMP_FRONT name $FRONT_NAME
|
||||
|
||||
sudo ip netns exec asic$BACKEND ip link set $BACK_NAME up
|
||||
sudo ip netns exec asic$FRONTEND ip link set $FRONT_NAME up
|
||||
done
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
stop() {
|
||||
for ASIC in `seq $FIRST_FRONTEND_ASIC $LAST_FRONTEND_ASIC`; do
|
||||
for NUM in `seq 1 16`; do
|
||||
TEMP="eth999"
|
||||
OLD="eth$(($NUM + 16))"
|
||||
NAME="eth$((16 * $ASIC + $NUM - 1))"
|
||||
sudo ip netns exec asic$ASIC ip link set dev $OLD down
|
||||
sudo ip netns exec asic$ASIC ip link set dev $OLD name $TEMP
|
||||
sudo ip netns exec asic$ASIC ip link set dev $TEMP netns 1
|
||||
ip link set dev $TEMP name $NAME
|
||||
ip link set dev $NAME up
|
||||
done
|
||||
done
|
||||
|
||||
for ASIC in `seq $FIRST_BACKEND_ASIC $LAST_BACKEND_ASIC`; do
|
||||
for NUM in `seq 1 $NUM_INTERFACES_PER_ASIC`; do
|
||||
sudo ip netns exec asic$ASIC ip link set dev eth$NUM down
|
||||
sudo ip netns exec asic$ASIC ip link delete dev eth$NUM
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start|stop)
|
||||
$1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop}"
|
||||
;;
|
||||
esac
|
||||
|
@ -1,5 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
# single instance containers are still supported (even though it might not look like it)
|
||||
# if no instance number is passed to this script, $DEV will simply be unset, resulting in docker
|
||||
# commands being sent to the base container name. E.g. `docker start database$DEV` simply starts
|
||||
# the container `database` if no instance number is passed since `$DEV` is not defined
|
||||
|
||||
|
||||
{%- if docker_container_name == "database" %}
|
||||
link_namespace() {
|
||||
# Makes namespace of a docker container available in
|
||||
# /var/run/netns so it can be managed with iproute2
|
||||
|
||||
mkdir -p /var/run/netns
|
||||
PID="$(docker inspect -f {{"'{{.State.Pid}}'"}} "{{docker_container_name}}$DEV")"
|
||||
|
||||
if `ip netns | grep --quiet -w "{{docker_container_name}}$DEV"`; then # namespace exists
|
||||
if [ $(readlink -f /var/run/netns/$NET_NS$DEV) = $(readlink -f /proc/$PID/ns/net) ]; then # namespace is correctly linked
|
||||
return 0
|
||||
else # if it's incorrectly linked remove it
|
||||
ip netns delete "{{docker_container_name}}$DEV"
|
||||
fi
|
||||
fi
|
||||
|
||||
ln -s /proc/$PID/ns/net /var/run/netns/$NET_NS$DEV
|
||||
}
|
||||
{%- endif %}
|
||||
|
||||
function getMountPoint()
|
||||
{
|
||||
echo $1 | python -c "import sys, json, os; mnts = [x for x in json.load(sys.stdin)[0]['Mounts'] if x['Destination'] == '/usr/share/sonic/hwsku']; print '' if len(mnts) == 0 else os.path.basename(mnts[0]['Source'])" 2>/dev/null
|
||||
@ -10,7 +36,7 @@ function updateHostName()
|
||||
HOSTS=/etc/hosts
|
||||
HOSTS_TMP=/etc/hosts.tmp
|
||||
|
||||
EXEC="docker exec -i {{docker_container_name}} bash -c"
|
||||
EXEC="docker exec -i {{docker_container_name}}$DEV bash -c"
|
||||
|
||||
NEW_HOSTNAME="$1"
|
||||
HOSTNAME=`$EXEC "hostname"`
|
||||
@ -25,7 +51,7 @@ function updateHostName()
|
||||
# add entry with new hostname
|
||||
$EXEC "echo -e \"127.0.0.1\t$NEW_HOSTNAME\" >> $HOSTS_TMP"
|
||||
|
||||
echo "Set hostname in {{docker_container_name}} container"
|
||||
echo "Set hostname in {{docker_container_name}}$DEV container"
|
||||
$EXEC "hostname '$NEW_HOSTNAME'"
|
||||
$EXEC "cat $HOSTS_TMP > $HOSTS"
|
||||
$EXEC "rm -f $HOSTS_TMP"
|
||||
@ -143,6 +169,9 @@ function preStartAction()
|
||||
function postStartAction()
|
||||
{
|
||||
{%- if docker_container_name == "database" %}
|
||||
if [ "$DEV" ]; then
|
||||
link_namespace $DEV
|
||||
fi
|
||||
# Wait until redis starts
|
||||
/usr/bin/docker exec database ping_pong_db_insts
|
||||
if [[ ("$BOOT_TYPE" == "warm" || "$BOOT_TYPE" == "fastfast") && -f $WARM_DIR/dump.rdb ]]; then
|
||||
@ -209,7 +238,7 @@ start() {
|
||||
HOSTNAME=`hostname`
|
||||
fi
|
||||
|
||||
DOCKERCHECK=`docker inspect --type container {{docker_container_name}} 2>/dev/null`
|
||||
DOCKERCHECK=`docker inspect --type container {{docker_container_name}}$DEV 2>/dev/null`
|
||||
if [ "$?" -eq "0" ]; then
|
||||
{%- if docker_container_name == "database" %}
|
||||
DOCKERMOUNT=""
|
||||
@ -218,39 +247,52 @@ start() {
|
||||
{%- endif %}
|
||||
if [ x"$DOCKERMOUNT" == x"$HWSKU" ]; then
|
||||
{%- if docker_container_name == "database" %}
|
||||
echo "Starting existing {{docker_container_name}} container"
|
||||
echo "Starting existing {{docker_container_name}}$DEV container"
|
||||
{%- else %}
|
||||
echo "Starting existing {{docker_container_name}} container with HWSKU $HWSKU"
|
||||
echo "Starting existing {{docker_container_name}}$DEV container with HWSKU $HWSKU"
|
||||
{%- endif %}
|
||||
preStartAction
|
||||
docker start {{docker_container_name}}
|
||||
CURRENT_HOSTNAME="$(docker exec {{docker_container_name}} hostname)"
|
||||
docker start {{docker_container_name}}$DEV
|
||||
postStartAction
|
||||
CURRENT_HOSTNAME="$(docker exec {{docker_container_name}}$DEV hostname)"
|
||||
if [ x"$HOSTNAME" != x"$CURRENT_HOSTNAME" ]; then
|
||||
updateHostName "$HOSTNAME"
|
||||
fi
|
||||
postStartAction
|
||||
updateHostName "$HOSTNAME"
|
||||
exit $?
|
||||
fi
|
||||
|
||||
# docker created with a different HWSKU, remove and recreate
|
||||
echo "Removing obsolete {{docker_container_name}} container with HWSKU $DOCKERMOUNT"
|
||||
docker rm -f {{docker_container_name}}
|
||||
echo "Removing obsolete {{docker_container_name}}$DEV container with HWSKU $DOCKERMOUNT"
|
||||
docker rm -f {{docker_container_name}}$DEV
|
||||
fi
|
||||
|
||||
{%- if docker_container_name == "database" %}
|
||||
echo "Creating new {{docker_container_name}} container"
|
||||
{%- if docker_container_name == "database" %}
|
||||
echo "Creating new {{docker_container_name}}$DEV container"
|
||||
# if database_config exists in old_config, use it; otherwise use the default one in new image
|
||||
if [ -f /etc/sonic/old_config/database_config.json ]; then
|
||||
echo "Use database_config.json from old system..."
|
||||
mv /etc/sonic/old_config/database_config.json /etc/sonic/
|
||||
fi
|
||||
{%- else %}
|
||||
echo "Creating new {{docker_container_name}} container with HWSKU $HWSKU"
|
||||
{%- endif %}
|
||||
{%- else %}
|
||||
echo "Creating new {{docker_container_name}}$DEV container with HWSKU $HWSKU"
|
||||
{%- endif %}
|
||||
|
||||
if [ -z "$DEV" ]; then
|
||||
NET="host"
|
||||
else
|
||||
{%- if docker_container_name == "database" %}
|
||||
NET="bridge"
|
||||
{%- else %}
|
||||
NET="container:database$DEV"
|
||||
{%- endif %}
|
||||
fi
|
||||
|
||||
{%- if sonic_asic_platform == "mellanox" %}
|
||||
# TODO: Mellanox will remove the --tmpfs exception after SDK socket path changed in new SDK version
|
||||
{%- endif %}
|
||||
docker create {{docker_image_run_opt}} \
|
||||
--net=$NET \
|
||||
{%- if install_debug_image == "y" %}
|
||||
-v /src:/src:ro -v /debug:/debug:rw \
|
||||
{%- endif %}
|
||||
@ -279,8 +321,7 @@ start() {
|
||||
--tmpfs /tmp \
|
||||
{%- endif %}
|
||||
--tmpfs /var/tmp \
|
||||
--hostname "$HOSTNAME" \
|
||||
--name={{docker_container_name}} {{docker_image_name}}:latest || {
|
||||
--name={{docker_container_name}}$DEV {{docker_image_name}}:latest || {
|
||||
echo "Failed to docker run" >&1
|
||||
exit 4
|
||||
}
|
||||
@ -288,24 +329,35 @@ start() {
|
||||
preStartAction
|
||||
docker start {{docker_container_name}}
|
||||
postStartAction
|
||||
updateHostName "$HOSTNAME"
|
||||
}
|
||||
|
||||
wait() {
|
||||
docker wait {{docker_container_name}}
|
||||
docker wait {{docker_container_name}}$DEV
|
||||
}
|
||||
|
||||
stop() {
|
||||
docker stop {{docker_container_name}}
|
||||
docker stop {{docker_container_name}}$DEV
|
||||
{%- if docker_container_name == "database" %}
|
||||
ip netns delete "$NET_NS$DEV"
|
||||
{%- endif %}
|
||||
}
|
||||
|
||||
OP=$1
|
||||
DEV=$2 # namespace/device number to operate on
|
||||
NET_NS="asic" #name of the network namespace
|
||||
|
||||
case "$1" in
|
||||
start|wait|stop|updateHostName)
|
||||
start|wait|stop)
|
||||
$1
|
||||
;;
|
||||
updateHostName)
|
||||
cmd=$1
|
||||
shift
|
||||
shift 2
|
||||
$cmd $@
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|wait|stop|updateHostName new_hostname}"
|
||||
echo "Usage: $0 {start namespace(optional)|wait namespace(optional)|stop namespace(optional)|updateHostName namespace(optional) new_hostname}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
@ -253,6 +253,13 @@ sudo cp $IMAGE_CONFIGS/hostname/hostname-config.sh $FILESYSTEM_ROOT/usr/bin/
|
||||
# Copy miscellaneous scripts
|
||||
sudo cp $IMAGE_CONFIGS/misc/docker-wait-any $FILESYSTEM_ROOT/usr/bin/
|
||||
|
||||
# Copy internal topology configuration scripts
|
||||
{%- if sonic_asic_platform == "vs" %}
|
||||
sudo cp $IMAGE_CONFIGS/topology/topology.service $FILESYSTEM_ROOT/etc/systemd/system/
|
||||
echo "topology.service" | sudo tee -a $GENERATED_SERVICE_FILE
|
||||
sudo cp $IMAGE_CONFIGS/topology/topology.sh $FILESYSTEM_ROOT/usr/bin
|
||||
{%- endif %}
|
||||
|
||||
# Copy updategraph script and service file
|
||||
j2 files/build_templates/updategraph.service.j2 | sudo tee $FILESYSTEM_ROOT/etc/systemd/system/updategraph.service
|
||||
sudo cp $IMAGE_CONFIGS/updategraph/updategraph $FILESYSTEM_ROOT/usr/bin/
|
||||
@ -401,6 +408,13 @@ sudo cp {{script}} $FILESYSTEM_ROOT/usr/bin/
|
||||
{% for service in installer_services.split(' ') -%}
|
||||
if [ -f {{service}} ]; then
|
||||
sudo cp {{service}} $FILESYSTEM_ROOT/etc/systemd/system/
|
||||
|
||||
{% if "@" in service %}
|
||||
MULTI_INSTANCE="{{service}}"
|
||||
SINGLE_INSTANCE=${MULTI_INSTANCE/"@"}
|
||||
sudo cp $SINGLE_INSTANCE $FILESYSTEM_ROOT/etc/systemd/system/
|
||||
{% endif %}
|
||||
|
||||
echo "{{service}}" | sudo tee -a $GENERATED_SERVICE_FILE
|
||||
fi
|
||||
{% endfor %}
|
||||
|
16
files/image_config/topology/topology.service
Normal file
16
files/image_config/topology/topology.service
Normal file
@ -0,0 +1,16 @@
|
||||
[Unit]
|
||||
Description=Internal topology service
|
||||
Requires=database.service
|
||||
After=database.service
|
||||
PartOf=database.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
User=root
|
||||
RemainAfterExit=yes
|
||||
ExecStart=/usr/bin/topology.sh start
|
||||
ExecStop=/usr/bin/topology.sh stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
30
files/image_config/topology/topology.sh
Executable file
30
files/image_config/topology/topology.sh
Executable file
@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
# This script is invoked by topology.service only
|
||||
# for multi-asic virtual platform. For multi-asic platform
|
||||
# multiple Database instances are present
|
||||
# and HWKSU information is retrieved from first database instance.
|
||||
#
|
||||
|
||||
start() {
|
||||
DB_FIRST_INSTANCE="/var/run/redis0/redis.sock"
|
||||
TOPOLOGY_SCRIPT="topology.sh"
|
||||
PLATFORM=`sonic-cfggen -H -v DEVICE_METADATA.localhost.platform -s $DB_FIRST_INSTANCE`
|
||||
HWSKU=`sonic-cfggen -d -v 'DEVICE_METADATA["localhost"]["hwsku"]' -s $DB_FIRST_INSTANCE`
|
||||
/usr/share/sonic/device/$PLATFORM/$HWSKU/$TOPOLOGY_SCRIPT start
|
||||
}
|
||||
stop() {
|
||||
DB_FIRST_INSTANCE="/var/run/redis0/redis.sock"
|
||||
TOPOLOGY_SCRIPT="topology.sh"
|
||||
PLATFORM=`sonic-cfggen -H -v DEVICE_METADATA.localhost.platform -s $DB_FIRST_INSTANCE`
|
||||
HWSKU=`sonic-cfggen -d -v 'DEVICE_METADATA["localhost"]["hwsku"]' -s $DB_FIRST_INSTANCE`
|
||||
/usr/share/sonic/device/$PLATFORM/$HWSKU/$TOPOLOGY_SCRIPT stop
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start|stop)
|
||||
$1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop}"
|
||||
;;
|
||||
esac
|
@ -29,7 +29,7 @@ endif
|
||||
|
||||
|
||||
$(DOCKER_SYNCD_BASE)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_BASE)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
||||
|
@ -6,10 +6,10 @@ HOWTO Use Virtual Switch (VM)
|
||||
sudo apt-get install libvirt-clients qemu-kvm libvirt-bin
|
||||
```
|
||||
|
||||
2. Create SONiC VM
|
||||
2. Create SONiC VM for single ASIC HWSKU
|
||||
|
||||
```
|
||||
$ virsh
|
||||
$ sudo virsh
|
||||
Welcome to virsh, the virtualization interactive terminal.
|
||||
|
||||
Type: 'help' for help with commands
|
||||
@ -22,14 +22,54 @@ Domain sonic created from sonic.xml
|
||||
virsh #
|
||||
```
|
||||
|
||||
2. Connect SONiC VM via console
|
||||
2. Create SONiC VM for multi-ASIC HWSKU
|
||||
Update sonic_multiasic.xml with the external interfaces
|
||||
required for HWSKU.
|
||||
|
||||
```
|
||||
$ telnet 127.0.0.1 7000
|
||||
```
|
||||
$ sudo virsh
|
||||
Welcome to virsh, the virtualization interactive terminal.
|
||||
|
||||
3. Connect SONiC VM via SSH
|
||||
Type: 'help' for help with commands
|
||||
'quit' to quit
|
||||
|
||||
```
|
||||
$ ssh -p 3040 admin@127.0.0.1
|
||||
```
|
||||
virsh #
|
||||
virsh # create sonic_multiasic.xml
|
||||
Domain sonic created from sonic.xml
|
||||
|
||||
virsh #
|
||||
|
||||
Once booted up, create a file "asic.conf" with the content:
|
||||
NUM_ASIC=<Number of asics>
|
||||
under /usr/share/sonic/device/x86_64-kvm_x86_64-r0/
|
||||
Also, create a "topology.sh" file which will simulate the internal
|
||||
asic connectivity of the hardware under
|
||||
/usr/share/sonic/device/x86_64-kvm_x86_64-r0/<HWSKU>
|
||||
The HWSKU directory will have the required files like port_config.ini
|
||||
for each ASIC.
|
||||
|
||||
Having done this, a new service "topology.service" will be started
|
||||
during bootup which will invoke topology.sh script.
|
||||
|
||||
3. Access virtual switch:
|
||||
|
||||
1. Connect SONiC VM via console
|
||||
```
|
||||
$ telnet 127.0.0.1 7000
|
||||
```
|
||||
|
||||
OR
|
||||
|
||||
2. Connect SONiC VM via SSH
|
||||
|
||||
1. Connect via console (see 3.1 above)
|
||||
|
||||
2. Request a new DHCP address
|
||||
```
|
||||
sudo dhclient -v
|
||||
```
|
||||
|
||||
3. Connect via SSH
|
||||
```
|
||||
$ ssh -p 3040 admin@127.0.0.1
|
||||
```
|
||||
|
110
platform/vs/sonic_multiasic.xml
Normal file
110
platform/vs/sonic_multiasic.xml
Normal file
@ -0,0 +1,110 @@
|
||||
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
|
||||
<name>sonic</name>
|
||||
<memory unit='GB'>8</memory>
|
||||
<vcpu placement='static'>2</vcpu>
|
||||
<resource>
|
||||
<partition>/machine</partition>
|
||||
</resource>
|
||||
<os>
|
||||
<type arch='x86_64' machine='pc-i440fx-1.5'>hvm</type>
|
||||
<boot dev='hd'/>
|
||||
</os>
|
||||
<features>
|
||||
<acpi/>
|
||||
<apic/>
|
||||
</features>
|
||||
<clock offset='utc'/>
|
||||
<on_poweroff>destroy</on_poweroff>
|
||||
<on_reboot>restart</on_reboot>
|
||||
<on_crash>restart</on_crash>
|
||||
<devices>
|
||||
<emulator>/usr/bin/qemu-system-x86_64</emulator>
|
||||
<disk type='file' device='disk'>
|
||||
<driver name='qemu' type='qcow2' cache='writeback'/>
|
||||
<source file='/data/sonic/sonic-buildimage/target/sonic-vs.img'/>
|
||||
<target bus='virtio' dev='vda'/>
|
||||
</disk>
|
||||
<serial type='tcp'>
|
||||
<source host='127.0.0.1' mode='bind' service='7000'/>
|
||||
<target port='0'/>
|
||||
<protocol type='telnet'/>
|
||||
</serial>
|
||||
<interface type='user'>
|
||||
<model type='e1000' />
|
||||
</interface>
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<interface type='ethernet' />
|
||||
<controller type='usb' index='0'/>
|
||||
<memballoon model='virtio'>
|
||||
<alias name='balloon0'/>
|
||||
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
|
||||
</memballoon>
|
||||
</devices>
|
||||
<seclabel type='dynamic' model='apparmor' relabel='yes'/>
|
||||
<qemu:commandline>
|
||||
<qemu:arg value='-redir'/>
|
||||
<qemu:arg value='tcp:3040::22'/>
|
||||
</qemu:commandline>
|
||||
</domain>
|
@ -23,7 +23,7 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_DATABASE_DBG)
|
||||
SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_DATABASE_DBG)
|
||||
|
||||
$(DOCKER_DATABASE)_CONTAINER_NAME = database
|
||||
$(DOCKER_DATABASE)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_DATABASE)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_DATABASE)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
||||
$(DOCKER_DATABASE)_BASE_IMAGE_FILES += redis-cli:/usr/bin/redis-cli
|
||||
|
@ -23,6 +23,6 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_DHCP_RELAY_DBG)
|
||||
SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_DHCP_RELAY_DBG)
|
||||
|
||||
$(DOCKER_DHCP_RELAY)_CONTAINER_NAME = dhcp_relay
|
||||
$(DOCKER_DHCP_RELAY)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_DHCP_RELAY)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_DHCP_RELAY)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
$(DOCKER_DHCP_RELAY)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT)
|
||||
|
@ -22,7 +22,7 @@ SONIC_DOCKER_DBG_IMAGES += $(DOCKER_FPM_FRR_DBG)
|
||||
SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_FPM_FRR_DBG)
|
||||
|
||||
$(DOCKER_FPM_FRR)_CONTAINER_NAME = bgp
|
||||
$(DOCKER_FPM_FRR)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_FPM_FRR)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_FPM_FRR)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
$(DOCKER_FPM_FRR)_RUN_OPT += -v /etc/sonic/frr:/etc/frr:rw
|
||||
|
||||
|
@ -7,5 +7,5 @@ $(DOCKER_FPM_GOBGP)_LOAD_DOCKERS += $(DOCKER_FPM_QUAGGA)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_FPM_GOBGP)
|
||||
|
||||
$(DOCKER_FPM_GOBGP)_CONTAINER_NAME = bgp
|
||||
$(DOCKER_FPM_GOBGP)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_FPM_GOBGP)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_FPM_GOBGP)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
@ -7,7 +7,7 @@ $(DOCKER_FPM_QUAGGA)_LOAD_DOCKERS += $(DOCKER_CONFIG_ENGINE)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_FPM_QUAGGA)
|
||||
|
||||
$(DOCKER_FPM_QUAGGA)_CONTAINER_NAME = bgp
|
||||
$(DOCKER_FPM_QUAGGA)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_FPM_QUAGGA)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_FPM_QUAGGA)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
||||
$(DOCKER_FPM_QUAGGA)_BASE_IMAGE_FILES += vtysh:/usr/bin/vtysh
|
||||
|
@ -25,7 +25,7 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_LLDP_SV2_DBG)
|
||||
SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_LLDP_SV2_DBG)
|
||||
|
||||
$(DOCKER_LLDP_SV2)_CONTAINER_NAME = lldp
|
||||
$(DOCKER_LLDP_SV2)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_LLDP_SV2)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_LLDP_SV2)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
||||
$(DOCKER_LLDP_SV2)_BASE_IMAGE_FILES += lldpctl:/usr/bin/lldpctl
|
||||
|
@ -26,7 +26,7 @@ SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_ORCHAGENT_DBG)
|
||||
SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_ORCHAGENT_DBG)
|
||||
|
||||
$(DOCKER_ORCHAGENT)_CONTAINER_NAME = swss
|
||||
$(DOCKER_ORCHAGENT)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_ORCHAGENT)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_ORCHAGENT)_RUN_OPT += -v /etc/network/interfaces:/etc/network/interfaces:ro
|
||||
$(DOCKER_ORCHAGENT)_RUN_OPT += -v /etc/network/interfaces.d/:/etc/network/interfaces.d/:ro
|
||||
$(DOCKER_ORCHAGENT)_RUN_OPT += -v /host/machine.conf:/host/machine.conf:ro
|
||||
|
@ -33,7 +33,7 @@ SONIC_DOCKER_DBG_IMAGES += $(DOCKER_PLATFORM_MONITOR_DBG)
|
||||
SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_PLATFORM_MONITOR_DBG)
|
||||
|
||||
$(DOCKER_PLATFORM_MONITOR)_CONTAINER_NAME = pmon
|
||||
$(DOCKER_PLATFORM_MONITOR)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_PLATFORM_MONITOR)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_PLATFORM_MONITOR)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
||||
# Mount Arista python library on Aboot images to be used by plugins
|
||||
|
@ -23,6 +23,6 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_ROUTER_ADVERTISER_DBG)
|
||||
SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_ROUTER_ADVERTISER_DBG)
|
||||
|
||||
$(DOCKER_ROUTER_ADVERTISER)_CONTAINER_NAME = radv
|
||||
$(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
$(DOCKER_ROUTER_ADVERTISER)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT)
|
||||
|
@ -26,7 +26,7 @@ SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_SFLOW_DBG)
|
||||
endif
|
||||
|
||||
$(DOCKER_SFLOW)_CONTAINER_NAME = sflow
|
||||
$(DOCKER_SFLOW)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SFLOW)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_SFLOW)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
$(DOCKER_SFLOW)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
|
||||
|
@ -26,7 +26,7 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_SNMP_SV2_DBG)
|
||||
SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_SNMP_SV2_DBG)
|
||||
|
||||
$(DOCKER_SNMP_SV2)_CONTAINER_NAME = snmp
|
||||
$(DOCKER_SNMP_SV2)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SNMP_SV2)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_SNMP_SV2)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
# mount Arista platform python libraries to support corresponding platforms SNMP power status query
|
||||
$(DOCKER_SNMP_SV2)_RUN_OPT += -v /usr/lib/python3/dist-packages/arista:/usr/lib/python3/dist-packages/arista:ro
|
||||
|
@ -24,7 +24,7 @@ SONIC_INSTALL_DOCKER_DBG_IMAGES += $(DOCKER_TEAMD_DBG)
|
||||
SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_TEAMD_DBG)
|
||||
|
||||
$(DOCKER_TEAMD)_CONTAINER_NAME = teamd
|
||||
$(DOCKER_TEAMD)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_TEAMD)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_TEAMD)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
$(DOCKER_TEAMD)_RUN_OPT += -v /host/warmboot:/var/warmboot
|
||||
|
||||
|
@ -25,7 +25,7 @@ SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_TELEMETRY_DBG)
|
||||
endif
|
||||
|
||||
$(DOCKER_TELEMETRY)_CONTAINER_NAME = telemetry
|
||||
$(DOCKER_TELEMETRY)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_TELEMETRY)_RUN_OPT += --privileged -t
|
||||
$(DOCKER_TELEMETRY)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
$(DOCKER_TELEMETRY)_RUN_OPT += --mount type=bind,source="/var/platform/",target="/mnt/platform/"
|
||||
|
||||
|
29
slave.mk
29
slave.mk
@ -667,15 +667,39 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \
|
||||
export docker_container_name="$($(docker:-dbg.gz=.gz)_CONTAINER_NAME)"
|
||||
$(eval $(docker:-dbg.gz=.gz)_RUN_OPT += $($(docker:-dbg.gz=.gz)_$($*_IMAGE_TYPE)_RUN_OPT))
|
||||
export docker_image_run_opt="$($(docker:-dbg.gz=.gz)_RUN_OPT)"
|
||||
j2 files/build_templates/docker_image_ctl.j2 > $($(docker:-dbg.gz=.gz)_CONTAINER_NAME).sh
|
||||
|
||||
if [ -f files/build_templates/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).service.j2 ]; then
|
||||
j2 files/build_templates/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).service.j2 > $($(docker:-dbg.gz=.gz)_CONTAINER_NAME).service
|
||||
fi
|
||||
|
||||
if [ -f files/build_templates/multi_instance/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME)@.service.j2 ]; then
|
||||
j2 files/build_templates/multi_instance/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME)@.service.j2 > $($(docker:-dbg.gz=.gz)_CONTAINER_NAME)@.service
|
||||
|
||||
# performs the same check as the elif above, except with make commands so eval behaves properly
|
||||
$(if $(shell ls files/build_templates/multi_instance/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME)@.service.j2 2>/dev/null),\
|
||||
$(eval $(docker:-dbg.gz=.gz)_TEMPLATE = yes)
|
||||
)
|
||||
fi
|
||||
if [ -f files/build_templates/single_instance/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).service.j2 ]; then
|
||||
j2 files/build_templates/single_instance/$($(docker:-dbg.gz=.gz)_CONTAINER_NAME).service.j2 > $($(docker:-dbg.gz=.gz)_CONTAINER_NAME).service
|
||||
fi
|
||||
j2 files/build_templates/docker_image_ctl.j2 > $($(docker:-dbg.gz=.gz)_CONTAINER_NAME).sh
|
||||
chmod +x $($(docker:-dbg.gz=.gz)_CONTAINER_NAME).sh
|
||||
)
|
||||
|
||||
# Exported variables are used by sonic_debian_extension.sh
|
||||
export installer_start_scripts="$(foreach docker, $($*_DOCKERS),$(addsuffix .sh, $($(docker:-dbg.gz=.gz)_CONTAINER_NAME)))"
|
||||
export installer_services="$(foreach docker, $($*_DOCKERS),$(addsuffix .service, $($(docker:-dbg.gz=.gz)_CONTAINER_NAME)))"
|
||||
|
||||
# Marks template services with an "@" according to systemd convention
|
||||
# If the $($docker)_TEMPLATE) variable is set, the service will be treated as a template
|
||||
$(foreach docker, $($*_DOCKERS),\
|
||||
$(if $($(docker:-dbg.gz=.gz)_TEMPLATE),\
|
||||
$(eval SERVICES += "$(addsuffix @.service, $($(docker:-dbg.gz=.gz)_CONTAINER_NAME))"),\
|
||||
$(eval SERVICES += "$(addsuffix .service, $($(docker:-dbg.gz=.gz)_CONTAINER_NAME))")
|
||||
)
|
||||
)
|
||||
export installer_services="$(SERVICES)"
|
||||
|
||||
export installer_extra_files="$(foreach docker, $($*_DOCKERS), $(foreach file, $($(docker:-dbg.gz=.gz)_BASE_IMAGE_FILES), $($(docker:-dbg.gz=.gz)_PATH)/base_image_files/$(file)))"
|
||||
|
||||
j2 -f env files/initramfs-tools/union-mount.j2 onie-image.conf > files/initramfs-tools/union-mount
|
||||
@ -706,6 +730,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : \
|
||||
$(foreach docker, $($*_DOCKERS), \
|
||||
rm -f $($(docker:-dbg.gz=.gz)_CONTAINER_NAME).sh
|
||||
rm -f $($(docker:-dbg.gz=.gz)_CONTAINER_NAME).service
|
||||
rm -f $($(docker:-dbg.gz=.gz)_CONTAINER_NAME)@.service
|
||||
)
|
||||
|
||||
$(if $($*_DOCKERS),
|
||||
|
@ -9,13 +9,17 @@
|
||||
#include <sys/stat.h>
|
||||
#include <linux/limits.h>
|
||||
|
||||
#define MAX_NUM_TARGETS 5
|
||||
#define MAX_NUM_INSTALL_LINES 5
|
||||
#define MAX_NUM_TARGETS 15
|
||||
#define MAX_NUM_INSTALL_LINES 15
|
||||
#define MAX_NUM_UNITS 128
|
||||
#define MAX_BUF_SIZE 512
|
||||
|
||||
static const char* UNIT_FILE_PREFIX = "/etc/systemd/system/";
|
||||
static const char* CONFIG_FILE = "/etc/sonic/generated_services.conf";
|
||||
|
||||
static const char* MACHINE_CONF_FILE = "/host/machine.conf";
|
||||
static int num_asics;
|
||||
static char** multi_instance_services;
|
||||
static int num_multi_inst;
|
||||
|
||||
void strip_trailing_newline(char* str) {
|
||||
/***
|
||||
@ -61,7 +65,7 @@ static int get_target_lines(char* unit_file, char* target_lines[]) {
|
||||
if (num_target_lines >= MAX_NUM_INSTALL_LINES) {
|
||||
fprintf(stderr, "Number of lines in [Install] section of %s exceeds MAX_NUM_INSTALL_LINES\n", unit_file);
|
||||
fputs("Extra [Install] lines will be ignored\n", stderr);
|
||||
return num_target_lines;
|
||||
break;
|
||||
}
|
||||
target_lines[num_target_lines] = strdup(line);
|
||||
num_target_lines++;
|
||||
@ -75,7 +79,18 @@ static int get_target_lines(char* unit_file, char* target_lines[]) {
|
||||
return num_target_lines;
|
||||
}
|
||||
|
||||
static int get_install_targets_from_line(char* target_string, char* suffix, char* targets[], int existing_targets) {
|
||||
static bool is_multi_instance_service(char *service_name){
|
||||
int i;
|
||||
for(i=0; i < num_multi_inst; i++){
|
||||
if (strstr(service_name, multi_instance_services[i]) != NULL) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
static int get_install_targets_from_line(char* target_string, char* install_type, char* targets[], int existing_targets) {
|
||||
/***
|
||||
Helper fuction for get_install_targets
|
||||
|
||||
@ -88,26 +103,113 @@ static int get_install_targets_from_line(char* target_string, char* suffix, char
|
||||
int num_targets = 0;
|
||||
|
||||
while ((token = strtok_r(target_string, " ", &target_string))) {
|
||||
target = strdup(token);
|
||||
strip_trailing_newline(target);
|
||||
|
||||
strcpy(final_target, target);
|
||||
strcat(final_target, suffix);
|
||||
|
||||
free(target);
|
||||
|
||||
if (num_targets + existing_targets >= MAX_NUM_TARGETS) {
|
||||
fputs("Number of targets found exceeds MAX_NUM_TARGETS\n", stderr);
|
||||
fputs("Additional targets will be ignored \n", stderr);
|
||||
return num_targets;
|
||||
}
|
||||
|
||||
target = strdup(token);
|
||||
strip_trailing_newline(target);
|
||||
|
||||
if (strstr(target, "%") != NULL) {
|
||||
char* prefix = strtok(target, ".");
|
||||
char* suffix = strtok(NULL, ".");
|
||||
int prefix_len = strlen(prefix);
|
||||
|
||||
strncpy(final_target, prefix, prefix_len - 2);
|
||||
final_target[prefix_len - 2] = '\0';
|
||||
strcat(final_target, ".");
|
||||
strcat(final_target, suffix);
|
||||
}
|
||||
else {
|
||||
strcpy(final_target, target);
|
||||
}
|
||||
strcat(final_target, install_type);
|
||||
|
||||
free(target);
|
||||
|
||||
targets[num_targets + existing_targets] = strdup(final_target);
|
||||
num_targets++;
|
||||
}
|
||||
return num_targets;
|
||||
}
|
||||
|
||||
static void replace_multi_inst_dep(char *src) {
|
||||
FILE *fp_src;
|
||||
FILE *fp_tmp;
|
||||
char buf[MAX_BUF_SIZE];
|
||||
char* line = NULL;
|
||||
int i;
|
||||
ssize_t len;
|
||||
char *token;
|
||||
char *word;
|
||||
char *line_copy;
|
||||
char *service_name;
|
||||
char *type;
|
||||
ssize_t nread;
|
||||
bool section_done = false;
|
||||
char tmp_file_path[PATH_MAX];
|
||||
|
||||
/* assumes that the service files has 3 sections,
|
||||
* in the order: Unit, Service and Install.
|
||||
* Read service dependency from Unit and Install
|
||||
* sections, replace if dependent on multi instance
|
||||
* service.
|
||||
*/
|
||||
fp_src = fopen(src, "r");
|
||||
snprintf(tmp_file_path, PATH_MAX, "%s.tmp", src);
|
||||
fp_tmp = fopen(tmp_file_path, "w");
|
||||
|
||||
while ((nread = getline(&line, &len, fp_src)) != -1 ) {
|
||||
if (strstr(line, "[Service]") != NULL) {
|
||||
section_done = true;
|
||||
fputs(line,fp_tmp);
|
||||
} else if (strstr(line, "[Install]") != NULL) {
|
||||
section_done = false;
|
||||
fputs(line,fp_tmp);
|
||||
} else if ((strstr(line, "[Unit]") != NULL) ||
|
||||
(strstr(line, "Description") != NULL) ||
|
||||
(section_done == true)){
|
||||
fputs(line,fp_tmp);
|
||||
} else {
|
||||
line_copy = strdup(line);
|
||||
token = strtok(line_copy, "=");
|
||||
while ((word = strtok(NULL, " "))){
|
||||
if((strchr(word, '.') == NULL) ||
|
||||
(strchr(word, '@') != NULL)) {
|
||||
snprintf(buf, MAX_BUF_SIZE,"%s=%s\n",token, word);
|
||||
fputs(buf,fp_tmp);
|
||||
} else {
|
||||
service_name = strdup(word);
|
||||
service_name = strtok(service_name, ".");
|
||||
type = strtok(NULL, " ");
|
||||
if (is_multi_instance_service(word)) {
|
||||
for(i = 0; i < num_asics; i++){
|
||||
snprintf(buf, MAX_BUF_SIZE, "%s=%s@%d.%s\n",
|
||||
token, service_name, i, type);
|
||||
fputs(buf,fp_tmp);
|
||||
}
|
||||
} else {
|
||||
snprintf(buf, MAX_BUF_SIZE,"%s=%s.%s\n",token, service_name, type);
|
||||
fputs(buf, fp_tmp);
|
||||
}
|
||||
free(service_name);
|
||||
}
|
||||
}
|
||||
free(line_copy);
|
||||
}
|
||||
}
|
||||
fclose(fp_src);
|
||||
fclose(fp_tmp);
|
||||
free(line);
|
||||
/* remove the .service file, rename the .service.tmp file
|
||||
* as .service.
|
||||
*/
|
||||
remove(src);
|
||||
rename(tmp_file_path, src);
|
||||
}
|
||||
|
||||
static int get_install_targets(char* unit_file, char* targets[]) {
|
||||
/***
|
||||
Returns install targets for a unit file
|
||||
@ -124,10 +226,21 @@ static int get_install_targets(char* unit_file, char* targets[]) {
|
||||
char* line = NULL;
|
||||
bool first;
|
||||
char* target_suffix;
|
||||
char *instance_name;
|
||||
char *dot_ptr;
|
||||
|
||||
strcpy(file_path, UNIT_FILE_PREFIX);
|
||||
strcat(file_path, unit_file);
|
||||
|
||||
instance_name = strdup(unit_file);
|
||||
dot_ptr = strchr(instance_name, '.');
|
||||
*dot_ptr = '\0';
|
||||
|
||||
if((num_asics > 1) && (!is_multi_instance_service(instance_name))) {
|
||||
replace_multi_inst_dep(file_path);
|
||||
}
|
||||
free(instance_name);
|
||||
|
||||
num_target_lines = get_target_lines(file_path, target_lines);
|
||||
if (num_target_lines < 0) {
|
||||
fprintf(stderr, "Error parsing targets for %s\n", unit_file);
|
||||
@ -170,6 +283,7 @@ static int get_unit_files(char* unit_files[]) {
|
||||
char *line = NULL;
|
||||
size_t len = 0;
|
||||
ssize_t read;
|
||||
char *pos;
|
||||
|
||||
fp = fopen(CONFIG_FILE, "r");
|
||||
|
||||
@ -179,13 +293,30 @@ static int get_unit_files(char* unit_files[]) {
|
||||
}
|
||||
|
||||
int num_unit_files = 0;
|
||||
num_multi_inst = 0;
|
||||
|
||||
multi_instance_services = malloc(MAX_NUM_UNITS * sizeof(char *));
|
||||
|
||||
while ((read = getline(&line, &len, fp)) != -1) {
|
||||
if (num_unit_files >= MAX_NUM_UNITS) {
|
||||
fprintf(stderr, "Maximum number of units exceeded, ignoring extras\n");
|
||||
return num_unit_files;
|
||||
break;
|
||||
}
|
||||
strip_trailing_newline(line);
|
||||
|
||||
/* Get the multi-instance services */
|
||||
pos = strchr(line, '@');
|
||||
if (pos != NULL) {
|
||||
multi_instance_services[num_multi_inst] = malloc(strlen(line)*sizeof(char));
|
||||
strncpy(multi_instance_services[num_multi_inst], line, pos-line);
|
||||
num_multi_inst++;
|
||||
}
|
||||
|
||||
/* topology service to be started only for multiasic VS platform */
|
||||
if ((strcmp(line, "topology.service") == 0) &&
|
||||
(num_asics == 1)) {
|
||||
continue;
|
||||
}
|
||||
unit_files[num_unit_files] = strdup(line);
|
||||
num_unit_files++;
|
||||
}
|
||||
@ -198,28 +329,70 @@ static int get_unit_files(char* unit_files[]) {
|
||||
}
|
||||
|
||||
|
||||
static int install_unit_file(char* unit_file, char* target, char* install_dir) {
|
||||
static char* insert_instance_number(char* unit_file, int instance) {
|
||||
/***
|
||||
Creates a symlink for a unit file installation
|
||||
Adds an instance number to a systemd template name
|
||||
|
||||
For a given unit file and target directory,
|
||||
create the appropriate symlink in the target directory
|
||||
to enable the unit and have it started by Systemd
|
||||
E.g. given unit_file='example@.service', instance=3,
|
||||
returns a pointer to 'example@1.service'
|
||||
***/
|
||||
char final_install_dir[PATH_MAX];
|
||||
char* prefix;
|
||||
char* suffix;
|
||||
char* instance_string;
|
||||
char* instance_name;
|
||||
char* temp_unit_file;
|
||||
|
||||
instance_string = malloc(2 * sizeof(char));
|
||||
snprintf(instance_string, 2, "%d", instance);
|
||||
|
||||
instance_name = malloc(strlen(unit_file) + 2);
|
||||
|
||||
if (instance_name == NULL) {
|
||||
fprintf(stderr, "Error creating instance %d of %s\n", instance, unit_file);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
temp_unit_file = strdup(unit_file);
|
||||
prefix = strtok(temp_unit_file, "@");
|
||||
suffix = strtok(NULL, "@");
|
||||
|
||||
strcpy(instance_name, prefix);
|
||||
strcat(instance_name, "@");
|
||||
strcat(instance_name, instance_string);
|
||||
strcat(instance_name, suffix);
|
||||
|
||||
free(instance_string);
|
||||
free(temp_unit_file);
|
||||
|
||||
return instance_name;
|
||||
}
|
||||
|
||||
|
||||
static int create_symlink(char* unit, char* target, char* install_dir, int instance) {
|
||||
struct stat st;
|
||||
char src_path[PATH_MAX];
|
||||
char dest_path[PATH_MAX];
|
||||
struct stat st;
|
||||
char final_install_dir[PATH_MAX];
|
||||
char* unit_instance;
|
||||
int r;
|
||||
|
||||
assert(unit_file);
|
||||
assert(target);
|
||||
strcpy(src_path, UNIT_FILE_PREFIX);
|
||||
strcat(src_path, unit);
|
||||
|
||||
if (instance < 0) {
|
||||
unit_instance = strdup(unit);
|
||||
}
|
||||
else {
|
||||
unit_instance = insert_instance_number(unit, instance);
|
||||
}
|
||||
|
||||
strcpy(final_install_dir, install_dir);
|
||||
strcat(final_install_dir, target);
|
||||
strcpy(dest_path, final_install_dir);
|
||||
strcat(dest_path, "/");
|
||||
strcat(dest_path, unit_instance);
|
||||
|
||||
strcpy(src_path, UNIT_FILE_PREFIX);
|
||||
strcat(src_path, unit_file);
|
||||
free(unit_instance);
|
||||
|
||||
if (stat(final_install_dir, &st) == -1) {
|
||||
// If doesn't exist, create
|
||||
@ -242,7 +415,7 @@ static int install_unit_file(char* unit_file, char* target, char* install_dir) {
|
||||
fprintf(stderr, "Unable to create target directory %s\n", final_install_dir);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (S_ISDIR(st.st_mode)) {
|
||||
// If directory, verify correct permissions
|
||||
r = chmod(final_install_dir, 0755);
|
||||
@ -251,11 +424,6 @@ static int install_unit_file(char* unit_file, char* target, char* install_dir) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
strcpy(dest_path, final_install_dir);
|
||||
strcat(dest_path, "/");
|
||||
strcat(dest_path, unit_file);
|
||||
|
||||
r = symlink(src_path, dest_path);
|
||||
|
||||
@ -267,6 +435,123 @@ static int install_unit_file(char* unit_file, char* target, char* install_dir) {
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
static int install_unit_file(char* unit_file, char* target, char* install_dir) {
|
||||
/***
|
||||
Creates a symlink for a unit file installation
|
||||
|
||||
For a given unit file and target directory,
|
||||
create the appropriate symlink in the target directory
|
||||
to enable the unit and have it started by Systemd
|
||||
|
||||
If a multi ASIC platform is detected, enables multi-instance
|
||||
services as well
|
||||
***/
|
||||
char* target_instance;
|
||||
char* prefix;
|
||||
char* suffix;
|
||||
int r;
|
||||
|
||||
assert(unit_file);
|
||||
assert(target);
|
||||
|
||||
|
||||
if ((num_asics > 1) && strstr(unit_file, "@") != NULL) {
|
||||
|
||||
for (int i = 0; i < num_asics; i++) {
|
||||
|
||||
if (strstr(target, "@") != NULL) {
|
||||
target_instance = insert_instance_number(target, i);
|
||||
}
|
||||
else {
|
||||
target_instance = strdup(target);
|
||||
}
|
||||
|
||||
r = create_symlink(unit_file, target_instance, install_dir, i);
|
||||
if (r < 0)
|
||||
fprintf(stderr, "Error installing %s for target %s\n", unit_file, target_instance);
|
||||
|
||||
free(target_instance);
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
r = create_symlink(unit_file, target, install_dir, -1);
|
||||
if (r < 0)
|
||||
fprintf(stderr, "Error installing %s for target %s\n", unit_file, target);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int get_num_of_asic() {
|
||||
/***
|
||||
Determines if the current platform is single or multi-ASIC
|
||||
***/
|
||||
FILE *fp;
|
||||
FILE *env_fp;
|
||||
char *line = NULL;
|
||||
char* token;
|
||||
char* platform;
|
||||
size_t len = 0;
|
||||
ssize_t nread;
|
||||
bool ans;
|
||||
char asic_file[512];
|
||||
char* str_num_asic;
|
||||
int num_asic = 1;
|
||||
|
||||
fp = fopen(MACHINE_CONF_FILE, "r");
|
||||
|
||||
if (fp == NULL) {
|
||||
fprintf(stderr, "Failed to open %s\n", MACHINE_CONF_FILE);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
while ((nread = getline(&line, &len, fp)) != -1) {
|
||||
if ((strstr(line, "onie_platform") != NULL) ||
|
||||
(strstr(line, "aboot_platform") != NULL)) {
|
||||
token = strtok(line, "=");
|
||||
platform = strtok(NULL, "=");
|
||||
strip_trailing_newline(platform);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
if(platform != NULL) {
|
||||
snprintf(asic_file, 512, "/usr/share/sonic/device/%s/asic.conf", platform);
|
||||
fp = fopen(asic_file, "r");
|
||||
if (fp != NULL) {
|
||||
while ((nread = getline(&line, &len, fp)) != -1) {
|
||||
if (strstr(line, "NUM_ASIC") != NULL) {
|
||||
token = strtok(line, "=");
|
||||
str_num_asic = strtok(NULL, "=");
|
||||
strip_trailing_newline(str_num_asic);
|
||||
if (str_num_asic != NULL){
|
||||
sscanf(str_num_asic, "%d",&num_asic);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
fclose(fp);
|
||||
free(line);
|
||||
}
|
||||
}
|
||||
|
||||
/*set environment variable NUM_ASIC */
|
||||
env_fp = fopen("/etc/environment", "a");
|
||||
if (env_fp == NULL) {
|
||||
fprintf(stderr, "Failed to open environment file\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
fprintf(env_fp, "NUM_ASIC=%d\n", num_asic);
|
||||
fclose(env_fp);
|
||||
return num_asic;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -274,14 +559,20 @@ int main(int argc, char **argv) {
|
||||
char* unit_files[MAX_NUM_UNITS];
|
||||
char install_dir[PATH_MAX];
|
||||
char* targets[MAX_NUM_TARGETS];
|
||||
char* unit_instance;
|
||||
char* prefix;
|
||||
char* suffix;
|
||||
int num_unit_files;
|
||||
int num_targets;
|
||||
int r;
|
||||
|
||||
if (argc <= 1) {
|
||||
fputs("Installation directory required as argument\n", stderr);
|
||||
return 1;
|
||||
}
|
||||
|
||||
num_asics = get_num_of_asic();
|
||||
|
||||
strcpy(install_dir, argv[1]);
|
||||
strcat(install_dir, "/");
|
||||
|
||||
@ -289,21 +580,38 @@ int main(int argc, char **argv) {
|
||||
|
||||
// For each unit file, get the installation targets and install the unit
|
||||
for (int i = 0; i < num_unit_files; i++) {
|
||||
num_targets = get_install_targets(unit_files[i], targets);
|
||||
unit_instance = strdup(unit_files[i]);
|
||||
if ((num_asics == 1) && strstr(unit_instance, "@") != NULL) {
|
||||
prefix = strtok(unit_instance, "@");
|
||||
suffix = strtok(NULL, "@");
|
||||
|
||||
strcpy(unit_instance, prefix);
|
||||
strcat(unit_instance, suffix);
|
||||
}
|
||||
|
||||
num_targets = get_install_targets(unit_instance, targets);
|
||||
if (num_targets < 0) {
|
||||
fprintf(stderr, "Error parsing %s\n", unit_files[i]);
|
||||
fprintf(stderr, "Error parsing %s\n", unit_instance);
|
||||
free(unit_instance);
|
||||
free(unit_files[i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
for (int j = 0; j < num_targets; j++) {
|
||||
if (install_unit_file(unit_files[i], targets[j], install_dir) != 0)
|
||||
fprintf(stderr, "Error installing %s to target directory %s\n", unit_files[i], targets[j]);
|
||||
if (install_unit_file(unit_instance, targets[j], install_dir) != 0)
|
||||
fprintf(stderr, "Error installing %s to target directory %s\n", unit_instance, targets[j]);
|
||||
|
||||
free(targets[j]);
|
||||
}
|
||||
|
||||
free(unit_instance);
|
||||
free(unit_files[i]);
|
||||
}
|
||||
|
||||
for (int i = 0; i < num_multi_inst; i++) {
|
||||
free(multi_instance_services[i]);
|
||||
}
|
||||
free(multi_instance_services);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user