Compare commits
35 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
8a7b89883f | ||
|
0e0d67846d | ||
|
cc04731338 | ||
|
6bf252f45f | ||
|
a1e6c2ce5e | ||
|
c164caf529 | ||
|
fea4bdfc04 | ||
|
4af5328140 | ||
|
8b6d69ac9b | ||
|
9a64452568 | ||
|
2ffa1e9573 | ||
|
b818397e28 | ||
|
83c21150e5 | ||
|
56b8a2cc9a | ||
|
12fe300183 | ||
|
182c35158c | ||
|
c2b1cae257 | ||
|
fd7c190bca | ||
|
352532abf3 | ||
|
786a908012 | ||
|
2ffbb0e8c0 | ||
|
0aeba8ad3b | ||
|
6cf2d10d83 | ||
|
bc4a39fcd8 | ||
|
8fc68746f5 | ||
|
97b5f3d462 | ||
|
e237df8e21 | ||
|
6293178012 | ||
|
dd94d9d7cd | ||
|
be56470ab0 | ||
|
90257f53eb | ||
|
f07181e89b | ||
|
5e48e6c780 | ||
|
b64aec58af | ||
|
46ba7816c2 |
26
.gitmodules
vendored
26
.gitmodules
vendored
@ -1,15 +1,15 @@
|
||||
[submodule "sonic-swss-common"]
|
||||
path = src/sonic-swss-common
|
||||
url = https://github.com/Azure/sonic-swss-common
|
||||
url = https://github.com/sonic-net/sonic-swss-common
|
||||
[submodule "sonic-linux-kernel"]
|
||||
path = src/sonic-linux-kernel
|
||||
url = https://github.com/Azure/sonic-linux-kernel
|
||||
url = https://github.com/sonic-net/sonic-linux-kernel
|
||||
[submodule "sonic-sairedis"]
|
||||
path = src/sonic-sairedis
|
||||
url = https://github.com/Azure/sonic-sairedis
|
||||
url = https://github.com/sonic-net/sonic-sairedis
|
||||
[submodule "sonic-swss"]
|
||||
path = src/sonic-swss
|
||||
url = https://github.com/Azure/sonic-swss
|
||||
url = https://github.com/sonic-net/sonic-swss
|
||||
[submodule "src/p4c-bm/p4c-bm"]
|
||||
path = platform/p4/p4c-bm/p4c-bm
|
||||
url = https://github.com/krambn/p4c-bm
|
||||
@ -18,41 +18,41 @@
|
||||
url = https://github.com/p4lang/p4-hlir
|
||||
[submodule "quagga"]
|
||||
path = src/sonic-quagga
|
||||
url = https://github.com/Azure/sonic-quagga
|
||||
url = https://github.com/sonic-net/sonic-quagga
|
||||
branch = debian/0.99.24.1
|
||||
[submodule "sonic-dbsyncd"]
|
||||
path = src/sonic-dbsyncd
|
||||
url = https://github.com/Azure/sonic-dbsyncd
|
||||
url = https://github.com/sonic-net/sonic-dbsyncd
|
||||
[submodule "src/sonic-py-swsssdk"]
|
||||
path = src/sonic-py-swsssdk
|
||||
url = https://github.com/Azure/sonic-py-swsssdk.git
|
||||
url = https://github.com/sonic-net/sonic-py-swsssdk.git
|
||||
[submodule "src/sonic-snmpagent"]
|
||||
path = src/sonic-snmpagent
|
||||
url = https://github.com/Azure/sonic-snmpagent
|
||||
url = https://github.com/sonic-net/sonic-snmpagent
|
||||
[submodule "src/ptf"]
|
||||
path = src/ptf
|
||||
url = https://github.com/p4lang/ptf.git
|
||||
[submodule "src/sonic-utilities"]
|
||||
path = src/sonic-utilities
|
||||
url = https://github.com/Azure/sonic-utilities
|
||||
url = https://github.com/sonic-net/sonic-utilities
|
||||
[submodule "platform/broadcom/sonic-platform-modules-s6000"]
|
||||
path = platform/broadcom/sonic-platform-modules-s6000
|
||||
url = https://github.com/Azure/sonic-platform-modules-s6000
|
||||
url = https://github.com/sonic-net/sonic-platform-modules-s6000
|
||||
[submodule "platform/broadcom/sonic-platform-modules-arista"]
|
||||
path = platform/broadcom/sonic-platform-modules-arista
|
||||
url = https://github.com/aristanetworks/sonic
|
||||
[submodule "platform/broadcom/sonic-platform-modules-dell"]
|
||||
path = platform/broadcom/sonic-platform-modules-dell
|
||||
url = https://github.com/Azure/sonic-platform-modules-dell
|
||||
url = https://github.com/sonic-net/sonic-platform-modules-dell
|
||||
[submodule "platform/broadcom/sonic-platform-modules-ingrasys"]
|
||||
path = platform/broadcom/sonic-platform-modules-ingrasys
|
||||
url = https://github.com/Ingrasys-sonic/sonic-platform-modules-ingrasys
|
||||
[submodule "src/sonic-platform-common"]
|
||||
path = src/sonic-platform-common
|
||||
url = https://github.com/Azure/sonic-platform-common
|
||||
url = https://github.com/sonic-net/sonic-platform-common
|
||||
[submodule "src/sonic-platform-daemons"]
|
||||
path = src/sonic-platform-daemons
|
||||
url = https://github.com/Azure/sonic-platform-daemons
|
||||
url = https://github.com/sonic-net/sonic-platform-daemons
|
||||
[submodule "platform/broadcom/sonic-platform-modules-accton"]
|
||||
path = platform/broadcom/sonic-platform-modules-accton
|
||||
url = https://github.com/edge-core/sonic-platform-modules-accton.git
|
||||
|
@ -2,9 +2,9 @@
|
||||
#
|
||||
# Platform-specific SFP transceiver interface for SONiC
|
||||
#
|
||||
|
||||
try:
|
||||
import time
|
||||
import os
|
||||
from sonic_sfp.sfputilbase import SfpUtilBase
|
||||
except ImportError as e:
|
||||
raise ImportError("%s - required module not found" % str(e))
|
||||
@ -21,8 +21,14 @@ class SfpUtil(SfpUtilBase):
|
||||
|
||||
BASE_VAL_PATH = "/sys/class/i2c-adapter/i2c-{0}/{1}-0050/"
|
||||
BASE_OOM_PATH = "/sys/bus/i2c/devices/{0}-0050/"
|
||||
BASE_CPLD2_PATH = "/sys/bus/i2c/devices/0-0061/"
|
||||
BASE_CPLD3_PATH = "/sys/bus/i2c/devices/0-0062/"
|
||||
BASE_CPLD2_PATH = "/sys/bus/i2c/devices/{0}-0061/"
|
||||
BASE_CPLD3_PATH = "/sys/bus/i2c/devices/{0}-0062/"
|
||||
I2C_BUS_ORDER = -1
|
||||
|
||||
#The sidebands of QSFP is different.
|
||||
#present is in-order.
|
||||
#But lp_mode and reset are not.
|
||||
qsfp_sb_map = [1, 3, 5, 2, 4, 6]
|
||||
|
||||
_port_to_is_present = {}
|
||||
_port_to_lp_mode = {}
|
||||
@ -137,18 +143,30 @@ class SfpUtil(SfpUtilBase):
|
||||
|
||||
SfpUtilBase.__init__(self)
|
||||
|
||||
#Two i2c buses might get flipped order, check them both.
|
||||
def update_i2c_order(self):
|
||||
if self.I2C_BUS_ORDER < 0:
|
||||
eeprom_path = "/sys/bus/i2c/devices/1-0057/eeprom"
|
||||
if os.path.exists(eeprom_path):
|
||||
self.I2C_BUS_ORDER = 0
|
||||
eeprom_path = "/sys/bus/i2c/devices/0-0057/eeprom"
|
||||
if os.path.exists(eeprom_path):
|
||||
self.I2C_BUS_ORDER = 1
|
||||
return self.I2C_BUS_ORDER
|
||||
|
||||
def get_presence(self, port_num):
|
||||
# Check for invalid port_num
|
||||
if port_num < self.port_start or port_num > self.port_end:
|
||||
return False
|
||||
|
||||
order = self.update_i2c_order()
|
||||
if port_num < 24:
|
||||
present_path = self.BASE_CPLD2_PATH + "module_present_" + str(self._port_to_i2c_mapping[port_num][0])
|
||||
present_path = self.BASE_CPLD2_PATH.format(order)
|
||||
else:
|
||||
present_path = self.BASE_CPLD3_PATH + "module_present_" + str(self._port_to_i2c_mapping[port_num][0])
|
||||
present_path = self.BASE_CPLD3_PATH.format(order)
|
||||
|
||||
present_path = present_path + "module_present_" + str(self._port_to_i2c_mapping[port_num][0])
|
||||
self.__port_to_is_present = present_path
|
||||
|
||||
|
||||
try:
|
||||
val_file = open(self.__port_to_is_present)
|
||||
@ -165,11 +183,21 @@ class SfpUtil(SfpUtilBase):
|
||||
|
||||
return False
|
||||
|
||||
def qsfp_sb_remap(self, port_num):
|
||||
qsfp_start = self.qsfp_port_start
|
||||
qsfp_index = self._port_to_i2c_mapping[port_num][0] - qsfp_start
|
||||
qsfp_index = self.qsfp_sb_map[qsfp_index-1]
|
||||
return qsfp_start+qsfp_index
|
||||
|
||||
def get_low_power_mode(self, port_num):
|
||||
if port_num < self.qsfp_port_start or port_num > self.qsfp_port_end:
|
||||
return False
|
||||
|
||||
lp_mode_path = self.BASE_CPLD3_PATH + "module_lp_mode_" + str(self._port_to_i2c_mapping[port_num][0])
|
||||
order = self.update_i2c_order()
|
||||
lp_mode_path = self.BASE_CPLD3_PATH.format(order)
|
||||
lp_mode_path = lp_mode_path + "module_lp_mode_"
|
||||
q = self.qsfp_sb_remap(port_num)
|
||||
lp_mode_path = lp_mode_path + str(q)
|
||||
|
||||
try:
|
||||
val_file = open(lp_mode_path)
|
||||
@ -190,7 +218,11 @@ class SfpUtil(SfpUtilBase):
|
||||
if port_num < self.qsfp_port_start or port_num > self.qsfp_port_end:
|
||||
return False
|
||||
|
||||
lp_mode_path = self.BASE_CPLD3_PATH + "module_lp_mode_" + str(self._port_to_i2c_mapping[port_num][0])
|
||||
order = self.update_i2c_order()
|
||||
lp_mode_path = self.BASE_CPLD3_PATH.format(order)
|
||||
lp_mode_path = lp_mode_path + "module_lp_mode_"
|
||||
q = self.qsfp_sb_remap(port_num)
|
||||
lp_mode_path = lp_mode_path + str(q)
|
||||
|
||||
try:
|
||||
reg_file = open(lp_mode_path, 'r+')
|
||||
@ -212,7 +244,11 @@ class SfpUtil(SfpUtilBase):
|
||||
if port_num < self.qsfp_port_start or port_num > self.qsfp_port_end:
|
||||
return False
|
||||
|
||||
mod_rst_path = lp_mode_path = self.BASE_CPLD3_PATH + "module_reset_" + str(self._port_to_i2c_mapping[port_num][0])
|
||||
order = self.update_i2c_order()
|
||||
lp_mode_path = self.BASE_CPLD3_PATH.format(order)
|
||||
mod_rst_path = lp_mode_path + "module_reset_"
|
||||
q = self.qsfp_sb_remap(port_num)
|
||||
mod_rst_path = mod_rst_path + str(q)
|
||||
|
||||
try:
|
||||
reg_file = open(mod_rst_path, 'r+')
|
||||
@ -220,9 +256,13 @@ class SfpUtil(SfpUtilBase):
|
||||
print "Error: unable to open file: %s" % str(e)
|
||||
return False
|
||||
|
||||
reg_value = '1'
|
||||
|
||||
reg_file.write(reg_value)
|
||||
#toggle reset
|
||||
reg_file.seek(0)
|
||||
reg_file.write('0')
|
||||
time.sleep(1)
|
||||
reg_file.seek(0)
|
||||
reg_file.write('1')
|
||||
reg_file.close()
|
||||
return True
|
||||
|
||||
return True
|
||||
return True
|
||||
|
@ -0,0 +1,2 @@
|
||||
{%- set default_topo = 't0' %}
|
||||
{%- include 'buffers_config.j2' %}
|
@ -0,0 +1,72 @@
|
||||
{% set default_cable = '5m' %}
|
||||
{% set ingress_lossless_pool_size = '20971328' %}
|
||||
{% set ingress_lossy_pool_size = '20971328' %}
|
||||
{% set egress_lossless_pool_size = '20971328' %}
|
||||
{% set egress_lossy_pool_size = '20971328' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{%- for port_idx in range(0, 48) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- for port_idx in range(48, 54) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (48 + (port_idx-48) * 4)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "{{ ingress_lossless_pool_size }}",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"ingress_lossy_pool": {
|
||||
"size": "{{ ingress_lossy_pool_size }}",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "{{ egress_lossless_pool_size }}",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "{{ egress_lossy_pool_size }}",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"xon":"78400",
|
||||
"xoff":"132160",
|
||||
"size":"3584",
|
||||
"static_th":"82880"
|
||||
},
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossy_pool]",
|
||||
"size":"3584",
|
||||
"dynamic_th":"-1"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"3584",
|
||||
"dynamic_th":"-4"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
||||
|
||||
{# the typo of generate_pg_profils dued to buffers_config.j2 #}
|
||||
{# Default, we do not bind any buffer profiles. #}
|
||||
{%- macro generate_pg_profils(port_names) %}
|
||||
"BUFFER_PG": {
|
||||
}
|
||||
{%- endmacro %}
|
||||
|
||||
{# Default, we do not bind any buffer profiles. #}
|
||||
{%- macro generate_queue_buffers(port_names) %}
|
||||
"BUFFER_QUEUE": {
|
||||
}
|
||||
{%- endmacro %}
|
@ -0,0 +1,72 @@
|
||||
{% set default_cable = '5m' %}
|
||||
{% set ingress_lossless_pool_size = '20971328' %}
|
||||
{% set ingress_lossy_pool_size = '20971328' %}
|
||||
{% set egress_lossless_pool_size = '20971328' %}
|
||||
{% set egress_lossy_pool_size = '20971328' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{%- for port_idx in range(0, 48) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- for port_idx in range(48, 54) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (48 + (port_idx-48) * 4)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "{{ ingress_lossless_pool_size }}",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"ingress_lossy_pool": {
|
||||
"size": "{{ ingress_lossy_pool_size }}",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "{{ egress_lossless_pool_size }}",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "{{ egress_lossy_pool_size }}",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"xon":"78400",
|
||||
"xoff":"132160",
|
||||
"size":"3584",
|
||||
"static_th":"82880"
|
||||
},
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossy_pool]",
|
||||
"size":"3584",
|
||||
"dynamic_th":"-1"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"3584",
|
||||
"dynamic_th":"-4"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
||||
|
||||
{# the typo of generate_pg_profils dued to buffers_config.j2 #}
|
||||
{# Default, we do not bind any buffer profiles. #}
|
||||
{%- macro generate_pg_profils(port_names) %}
|
||||
"BUFFER_PG": {
|
||||
}
|
||||
{%- endmacro %}
|
||||
|
||||
{# Default, we do not bind any buffer profiles. #}
|
||||
{%- macro generate_queue_buffers(port_names) %}
|
||||
"BUFFER_QUEUE": {
|
||||
}
|
||||
{%- endmacro %}
|
@ -0,0 +1,17 @@
|
||||
# PG lossless profiles.
|
||||
# speed cable size xon xoff threshold
|
||||
10000 5m 3584 32256 59136 36736
|
||||
25000 5m 3584 41216 68096 45696
|
||||
40000 5m 3584 47488 74368 51968
|
||||
50000 5m 3584 52864 79744 57344
|
||||
100000 5m 3584 78400 132160 82880
|
||||
10000 40m 3584 32256 59136 36736
|
||||
25000 40m 3584 41216 68096 45696
|
||||
40000 40m 3584 47488 74368 51968
|
||||
50000 40m 3584 52864 79744 57344
|
||||
100000 40m 3584 78400 132160 82880
|
||||
10000 300m 3584 32256 65856 36736
|
||||
25000 300m 3584 41216 84672 45696
|
||||
40000 300m 3584 47488 101024 51968
|
||||
50000 300m 3584 52864 113120 57344
|
||||
100000 300m 3584 78400 198688 82880
|
@ -47,12 +47,9 @@ Ethernet44 76 Ethernet45/1 44
|
||||
Ethernet45 77 Ethernet46/1 45
|
||||
Ethernet46 78 Ethernet47/1 46
|
||||
Ethernet47 79 Ethernet48/1 47
|
||||
Ethernet48 80 Ethernet49/1 48
|
||||
Ethernet49 81 Ethernet50/1 49
|
||||
Ethernet50 82 Ethernet51/1 50
|
||||
Ethernet51 83 Ethernet52/1 51
|
||||
Ethernet52 84,85,86,87 Ethernet53/1 52
|
||||
Ethernet53 104,105,106,107 Ethernet54/1 53
|
||||
Ethernet54 108,109,110,111 Ethernet55/1 54
|
||||
Ethernet55 112,113,114,115 Ethernet56/1 55
|
||||
Ethernet56 116,117,118,119 Ethernet57/1 56
|
||||
Ethernet48 84,85,86,87 Ethernet49/1 48
|
||||
Ethernet49 80,81,82,83 Ethernet50/1 49
|
||||
Ethernet50 104,105,106,107 Ethernet51/1 50
|
||||
Ethernet51 108,109,110,111 Ethernet52/1 51
|
||||
Ethernet52 112,113,114,115 Ethernet53/1 52
|
||||
Ethernet53 116,117,118,119 Ethernet54/1 53
|
@ -0,0 +1,414 @@
|
||||
init start stage unit=0 low-level
|
||||
init set port-map unit=0 port=0 eth-macro=2 lane=0 max-speed=25g active=true
|
||||
init set port-map unit=0 port=1 eth-macro=2 lane=1 max-speed=25g active=true
|
||||
init set port-map unit=0 port=2 eth-macro=2 lane=2 max-speed=25g active=true
|
||||
init set port-map unit=0 port=3 eth-macro=2 lane=3 max-speed=25g active=true
|
||||
init set port-map unit=0 port=4 eth-macro=3 lane=0 max-speed=25g active=true
|
||||
init set port-map unit=0 port=5 eth-macro=3 lane=1 max-speed=25g active=true
|
||||
init set port-map unit=0 port=6 eth-macro=3 lane=2 max-speed=25g active=true
|
||||
init set port-map unit=0 port=7 eth-macro=3 lane=3 max-speed=25g active=true
|
||||
init set port-map unit=0 port=8 eth-macro=4 lane=0 max-speed=25g active=true
|
||||
init set port-map unit=0 port=9 eth-macro=4 lane=1 max-speed=25g active=true
|
||||
init set port-map unit=0 port=10 eth-macro=4 lane=2 max-speed=25g active=true
|
||||
init set port-map unit=0 port=11 eth-macro=4 lane=3 max-speed=25g active=true
|
||||
init set port-map unit=0 port=12 eth-macro=5 lane=0 max-speed=25g active=true
|
||||
init set port-map unit=0 port=13 eth-macro=5 lane=1 max-speed=25g active=true
|
||||
init set port-map unit=0 port=14 eth-macro=5 lane=2 max-speed=25g active=true
|
||||
init set port-map unit=0 port=15 eth-macro=5 lane=3 max-speed=25g active=true
|
||||
init set port-map unit=0 port=16 eth-macro=8 lane=0 max-speed=25g active=true
|
||||
init set port-map unit=0 port=17 eth-macro=8 lane=1 max-speed=25g active=true
|
||||
init set port-map unit=0 port=18 eth-macro=8 lane=2 max-speed=25g active=true
|
||||
init set port-map unit=0 port=19 eth-macro=8 lane=3 max-speed=25g active=true
|
||||
init set port-map unit=0 port=20 eth-macro=10 lane=0 max-speed=25g active=true
|
||||
init set port-map unit=0 port=21 eth-macro=10 lane=1 max-speed=25g active=true
|
||||
init set port-map unit=0 port=22 eth-macro=10 lane=2 max-speed=25g active=true
|
||||
init set port-map unit=0 port=23 eth-macro=10 lane=3 max-speed=25g active=true
|
||||
init set port-map unit=0 port=24 eth-macro=12 lane=0 max-speed=25g active=true
|
||||
init set port-map unit=0 port=25 eth-macro=12 lane=1 max-speed=25g active=true
|
||||
init set port-map unit=0 port=26 eth-macro=12 lane=2 max-speed=25g active=true
|
||||
init set port-map unit=0 port=27 eth-macro=12 lane=3 max-speed=25g active=true
|
||||
init set port-map unit=0 port=28 eth-macro=14 lane=0 max-speed=25g active=true
|
||||
init set port-map unit=0 port=29 eth-macro=14 lane=1 max-speed=25g active=true
|
||||
init set port-map unit=0 port=30 eth-macro=14 lane=2 max-speed=25g active=true
|
||||
init set port-map unit=0 port=31 eth-macro=14 lane=3 max-speed=25g active=true
|
||||
init set port-map unit=0 port=32 eth-macro=16 lane=0 max-speed=25g active=true
|
||||
init set port-map unit=0 port=33 eth-macro=16 lane=1 max-speed=25g active=true
|
||||
init set port-map unit=0 port=34 eth-macro=16 lane=2 max-speed=25g active=true
|
||||
init set port-map unit=0 port=35 eth-macro=16 lane=3 max-speed=25g active=true
|
||||
init set port-map unit=0 port=36 eth-macro=17 lane=0 max-speed=25g active=true
|
||||
init set port-map unit=0 port=37 eth-macro=17 lane=1 max-speed=25g active=true
|
||||
init set port-map unit=0 port=38 eth-macro=17 lane=2 max-speed=25g active=true
|
||||
init set port-map unit=0 port=39 eth-macro=17 lane=3 max-speed=25g active=true
|
||||
init set port-map unit=0 port=40 eth-macro=18 lane=0 max-speed=25g active=true
|
||||
init set port-map unit=0 port=41 eth-macro=18 lane=1 max-speed=25g active=true
|
||||
init set port-map unit=0 port=42 eth-macro=18 lane=2 max-speed=25g active=true
|
||||
init set port-map unit=0 port=43 eth-macro=18 lane=3 max-speed=25g active=true
|
||||
init set port-map unit=0 port=44 eth-macro=19 lane=0 max-speed=25g active=true
|
||||
init set port-map unit=0 port=45 eth-macro=19 lane=1 max-speed=25g active=true
|
||||
init set port-map unit=0 port=46 eth-macro=19 lane=2 max-speed=25g active=true
|
||||
init set port-map unit=0 port=47 eth-macro=19 lane=3 max-speed=25g active=true
|
||||
init set port-map unit=0 port=48 eth-macro=21 lane=0 max-speed=100g active=true
|
||||
init set port-map unit=0 port=49 eth-macro=20 lane=0 max-speed=100g active=true
|
||||
init set port-map unit=0 port=50 eth-macro=26 lane=0 max-speed=100g active=true
|
||||
init set port-map unit=0 port=51 eth-macro=27 lane=0 max-speed=100g active=true
|
||||
init set port-map unit=0 port=52 eth-macro=28 lane=0 max-speed=100g active=true
|
||||
init set port-map unit=0 port=53 eth-macro=29 lane=0 max-speed=100g active=true
|
||||
init set port-map unit=0 port=129 eth-macro=0 lane=1 max-speed=10g active=true guarantee=true cpi=true
|
||||
init set port-map unit=0 port=130 eth-macro=0 lane=0 max-speed=10g active=true guarantee=true cpi=true init-done=true
|
||||
init start stage unit=0 task-rsrc
|
||||
init start stage unit=0 module
|
||||
init start stage unit=0 task
|
||||
phy set lane-swap portlist=0 lane-cnt=1 property=tx data=0x0
|
||||
phy set lane-swap portlist=1 lane-cnt=1 property=tx data=0x1
|
||||
phy set lane-swap portlist=2 lane-cnt=1 property=tx data=0x2
|
||||
phy set lane-swap portlist=3 lane-cnt=1 property=tx data=0x3
|
||||
phy set lane-swap portlist=4 lane-cnt=1 property=tx data=0x3
|
||||
phy set lane-swap portlist=5 lane-cnt=1 property=tx data=0x2
|
||||
phy set lane-swap portlist=6 lane-cnt=1 property=tx data=0x1
|
||||
phy set lane-swap portlist=7 lane-cnt=1 property=tx data=0x0
|
||||
phy set lane-swap portlist=8 lane-cnt=1 property=tx data=0x0
|
||||
phy set lane-swap portlist=9 lane-cnt=1 property=tx data=0x1
|
||||
phy set lane-swap portlist=10 lane-cnt=1 property=tx data=0x2
|
||||
phy set lane-swap portlist=11 lane-cnt=1 property=tx data=0x3
|
||||
phy set lane-swap portlist=12 lane-cnt=1 property=tx data=0x3
|
||||
phy set lane-swap portlist=13 lane-cnt=1 property=tx data=0x2
|
||||
phy set lane-swap portlist=14 lane-cnt=1 property=tx data=0x1
|
||||
phy set lane-swap portlist=15 lane-cnt=1 property=tx data=0x0
|
||||
phy set lane-swap portlist=16 lane-cnt=1 property=tx data=0x3
|
||||
phy set lane-swap portlist=17 lane-cnt=1 property=tx data=0x2
|
||||
phy set lane-swap portlist=18 lane-cnt=1 property=tx data=0x0
|
||||
phy set lane-swap portlist=19 lane-cnt=1 property=tx data=0x1
|
||||
phy set lane-swap portlist=20 lane-cnt=1 property=tx data=0x3
|
||||
phy set lane-swap portlist=21 lane-cnt=1 property=tx data=0x2
|
||||
phy set lane-swap portlist=22 lane-cnt=1 property=tx data=0x1
|
||||
phy set lane-swap portlist=23 lane-cnt=1 property=tx data=0x0
|
||||
phy set lane-swap portlist=24 lane-cnt=1 property=tx data=0x3
|
||||
phy set lane-swap portlist=25 lane-cnt=1 property=tx data=0x2
|
||||
phy set lane-swap portlist=26 lane-cnt=1 property=tx data=0x1
|
||||
phy set lane-swap portlist=27 lane-cnt=1 property=tx data=0x0
|
||||
phy set lane-swap portlist=28 lane-cnt=1 property=tx data=0x3
|
||||
phy set lane-swap portlist=29 lane-cnt=1 property=tx data=0x2
|
||||
phy set lane-swap portlist=30 lane-cnt=1 property=tx data=0x1
|
||||
phy set lane-swap portlist=31 lane-cnt=1 property=tx data=0x0
|
||||
phy set lane-swap portlist=32 lane-cnt=1 property=tx data=0x0
|
||||
phy set lane-swap portlist=33 lane-cnt=1 property=tx data=0x1
|
||||
phy set lane-swap portlist=34 lane-cnt=1 property=tx data=0x2
|
||||
phy set lane-swap portlist=35 lane-cnt=1 property=tx data=0x3
|
||||
phy set lane-swap portlist=36 lane-cnt=1 property=tx data=0x0
|
||||
phy set lane-swap portlist=37 lane-cnt=1 property=tx data=0x1
|
||||
phy set lane-swap portlist=38 lane-cnt=1 property=tx data=0x2
|
||||
phy set lane-swap portlist=39 lane-cnt=1 property=tx data=0x3
|
||||
phy set lane-swap portlist=40 lane-cnt=1 property=tx data=0x0
|
||||
phy set lane-swap portlist=41 lane-cnt=1 property=tx data=0x1
|
||||
phy set lane-swap portlist=42 lane-cnt=1 property=tx data=0x2
|
||||
phy set lane-swap portlist=43 lane-cnt=1 property=tx data=0x3
|
||||
phy set lane-swap portlist=44 lane-cnt=1 property=tx data=0x0
|
||||
phy set lane-swap portlist=45 lane-cnt=1 property=tx data=0x1
|
||||
phy set lane-swap portlist=46 lane-cnt=1 property=tx data=0x2
|
||||
phy set lane-swap portlist=47 lane-cnt=1 property=tx data=0x3
|
||||
phy set lane-swap portlist=48 lane-cnt=4 property=tx data=0x1.3.0.2
|
||||
phy set lane-swap portlist=49 lane-cnt=4 property=tx data=0x0.3.1.2
|
||||
phy set lane-swap portlist=50 lane-cnt=4 property=tx data=0x1.3.0.2
|
||||
phy set lane-swap portlist=51 lane-cnt=4 property=tx data=0x2.0.3.1
|
||||
phy set lane-swap portlist=52 lane-cnt=4 property=tx data=0x3.2.1.0
|
||||
phy set lane-swap portlist=53 lane-cnt=4 property=tx data=0x3.2.1.0
|
||||
phy set lane-swap portlist=0 lane-cnt=1 property=rx data=0x0
|
||||
phy set lane-swap portlist=1 lane-cnt=1 property=rx data=0x1
|
||||
phy set lane-swap portlist=2 lane-cnt=1 property=rx data=0x2
|
||||
phy set lane-swap portlist=3 lane-cnt=1 property=rx data=0x3
|
||||
phy set lane-swap portlist=4 lane-cnt=1 property=rx data=0x3
|
||||
phy set lane-swap portlist=5 lane-cnt=1 property=rx data=0x2
|
||||
phy set lane-swap portlist=6 lane-cnt=1 property=rx data=0x1
|
||||
phy set lane-swap portlist=7 lane-cnt=1 property=rx data=0x0
|
||||
phy set lane-swap portlist=8 lane-cnt=1 property=rx data=0x0
|
||||
phy set lane-swap portlist=9 lane-cnt=1 property=rx data=0x1
|
||||
phy set lane-swap portlist=10 lane-cnt=1 property=rx data=0x2
|
||||
phy set lane-swap portlist=11 lane-cnt=1 property=rx data=0x3
|
||||
phy set lane-swap portlist=12 lane-cnt=1 property=rx data=0x3
|
||||
phy set lane-swap portlist=13 lane-cnt=1 property=rx data=0x2
|
||||
phy set lane-swap portlist=14 lane-cnt=1 property=rx data=0x0
|
||||
phy set lane-swap portlist=15 lane-cnt=1 property=rx data=0x1
|
||||
phy set lane-swap portlist=16 lane-cnt=1 property=rx data=0x0
|
||||
phy set lane-swap portlist=17 lane-cnt=1 property=rx data=0x3
|
||||
phy set lane-swap portlist=18 lane-cnt=1 property=rx data=0x2
|
||||
phy set lane-swap portlist=19 lane-cnt=1 property=rx data=0x1
|
||||
phy set lane-swap portlist=20 lane-cnt=1 property=rx data=0x3
|
||||
phy set lane-swap portlist=21 lane-cnt=1 property=rx data=0x0
|
||||
phy set lane-swap portlist=22 lane-cnt=1 property=rx data=0x1
|
||||
phy set lane-swap portlist=23 lane-cnt=1 property=rx data=0x2
|
||||
phy set lane-swap portlist=24 lane-cnt=1 property=rx data=0x3
|
||||
phy set lane-swap portlist=25 lane-cnt=1 property=rx data=0x0
|
||||
phy set lane-swap portlist=26 lane-cnt=1 property=rx data=0x1
|
||||
phy set lane-swap portlist=27 lane-cnt=1 property=rx data=0x2
|
||||
phy set lane-swap portlist=28 lane-cnt=1 property=rx data=0x3
|
||||
phy set lane-swap portlist=29 lane-cnt=1 property=rx data=0x0
|
||||
phy set lane-swap portlist=30 lane-cnt=1 property=rx data=0x1
|
||||
phy set lane-swap portlist=31 lane-cnt=1 property=rx data=0x2
|
||||
phy set lane-swap portlist=32 lane-cnt=1 property=rx data=0x1
|
||||
phy set lane-swap portlist=33 lane-cnt=1 property=rx data=0x2
|
||||
phy set lane-swap portlist=34 lane-cnt=1 property=rx data=0x3
|
||||
phy set lane-swap portlist=35 lane-cnt=1 property=rx data=0x0
|
||||
phy set lane-swap portlist=36 lane-cnt=1 property=rx data=0x1
|
||||
phy set lane-swap portlist=37 lane-cnt=1 property=rx data=0x2
|
||||
phy set lane-swap portlist=38 lane-cnt=1 property=rx data=0x3
|
||||
phy set lane-swap portlist=39 lane-cnt=1 property=rx data=0x0
|
||||
phy set lane-swap portlist=40 lane-cnt=1 property=rx data=0x1
|
||||
phy set lane-swap portlist=41 lane-cnt=1 property=rx data=0x2
|
||||
phy set lane-swap portlist=42 lane-cnt=1 property=rx data=0x3
|
||||
phy set lane-swap portlist=43 lane-cnt=1 property=rx data=0x0
|
||||
phy set lane-swap portlist=44 lane-cnt=1 property=rx data=0x1
|
||||
phy set lane-swap portlist=45 lane-cnt=1 property=rx data=0x2
|
||||
phy set lane-swap portlist=46 lane-cnt=1 property=rx data=0x3
|
||||
phy set lane-swap portlist=47 lane-cnt=1 property=rx data=0x0
|
||||
phy set lane-swap portlist=48 lane-cnt=4 property=rx data=0x2.1.0.3
|
||||
phy set lane-swap portlist=49 lane-cnt=4 property=rx data=0x0.1.3.2
|
||||
phy set lane-swap portlist=50 lane-cnt=4 property=rx data=0x3.1.0.2
|
||||
phy set lane-swap portlist=51 lane-cnt=4 property=rx data=0x1.3.0.2
|
||||
phy set lane-swap portlist=52 lane-cnt=4 property=rx data=0x3.2.1.0
|
||||
phy set lane-swap portlist=53 lane-cnt=4 property=rx data=0x3.2.1.0
|
||||
phy set polarity-rev portlist=0 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=1 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=2 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=3 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=4 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=5 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=6 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=7 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=8 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=9 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=10 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=11 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=12 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=13 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=14 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=15 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=16 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=17 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=18 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=19 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=20 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=21 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=22 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=23 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=24 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=25 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=26 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=27 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=28 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=29 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=30 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=31 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=32 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=33 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=34 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=35 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=36 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=37 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=38 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=39 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=40 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=41 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=42 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=43 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=44 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=45 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=46 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=47 lane-cnt=1 property=tx data=0x0
|
||||
phy set polarity-rev portlist=48 lane-cnt=4 property=tx data=0x0.0.0.1
|
||||
phy set polarity-rev portlist=49 lane-cnt=4 property=tx data=0x0.0.0.0
|
||||
phy set polarity-rev portlist=50 lane-cnt=4 property=tx data=0x1.1.0.0
|
||||
phy set polarity-rev portlist=51 lane-cnt=4 property=tx data=0x0.0.0.0
|
||||
phy set polarity-rev portlist=52 lane-cnt=4 property=tx data=0x0.0.0.0
|
||||
phy set polarity-rev portlist=53 lane-cnt=4 property=tx data=0x0.0.0.0
|
||||
phy set polarity-rev portlist=0 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=1 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=2 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=3 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=4 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=5 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=6 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=7 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=8 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=9 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=10 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=11 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=12 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=13 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=14 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=15 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=16 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=17 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=18 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=19 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=20 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=21 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=22 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=23 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=24 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=25 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=26 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=27 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=28 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=29 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=30 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=31 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=32 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=33 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=34 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=35 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=36 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=37 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=38 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=39 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=40 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=41 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=42 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=43 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=44 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=45 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=46 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=47 lane-cnt=1 property=rx data=0x0
|
||||
phy set polarity-rev portlist=48 lane-cnt=4 property=rx data=0x0.1.0.1
|
||||
phy set polarity-rev portlist=49 lane-cnt=4 property=rx data=0x1.0.1.0
|
||||
phy set polarity-rev portlist=50 lane-cnt=4 property=rx data=0x0.0.1.0
|
||||
phy set polarity-rev portlist=51 lane-cnt=4 property=rx data=0x0.0.0.1
|
||||
phy set polarity-rev portlist=52 lane-cnt=4 property=rx data=0x0.0.0.0
|
||||
phy set polarity-rev portlist=53 lane-cnt=4 property=rx data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=0 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=0 lane-cnt=4 property=cn1 data=0x1.1.1.1
|
||||
phy set pre-emphasis portlist=0 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a
|
||||
phy set pre-emphasis portlist=0 lane-cnt=4 property=c1 data=0x7.7.7.7
|
||||
phy set pre-emphasis portlist=4 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=4 lane-cnt=4 property=cn1 data=0x1.1.1.1
|
||||
phy set pre-emphasis portlist=4 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a
|
||||
phy set pre-emphasis portlist=4 lane-cnt=4 property=c1 data=0x7.7.7.7
|
||||
phy set pre-emphasis portlist=8 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=8 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=8 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
|
||||
phy set pre-emphasis portlist=8 lane-cnt=4 property=c1 data=0x6.6.6.6
|
||||
phy set pre-emphasis portlist=12 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=12 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=12 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b
|
||||
phy set pre-emphasis portlist=12 lane-cnt=4 property=c1 data=0x7.7.7.7
|
||||
phy set pre-emphasis portlist=16 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=16 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=16 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
|
||||
phy set pre-emphasis portlist=16 lane-cnt=4 property=c1 data=0x6.6.6.6
|
||||
phy set pre-emphasis portlist=20 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=20 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=20 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
|
||||
phy set pre-emphasis portlist=20 lane-cnt=4 property=c1 data=0x6.6.6.6
|
||||
phy set pre-emphasis portlist=24 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=24 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=24 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
|
||||
phy set pre-emphasis portlist=24 lane-cnt=4 property=c1 data=0x6.6.6.6
|
||||
phy set pre-emphasis portlist=28 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=28 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=28 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
|
||||
phy set pre-emphasis portlist=28 lane-cnt=4 property=c1 data=0x6.6.6.6
|
||||
phy set pre-emphasis portlist=32 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=32 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=32 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
|
||||
phy set pre-emphasis portlist=32 lane-cnt=4 property=c1 data=0x6.6.6.6
|
||||
phy set pre-emphasis portlist=36 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=36 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=36 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
|
||||
phy set pre-emphasis portlist=36 lane-cnt=4 property=c1 data=0x6.6.6.6
|
||||
phy set pre-emphasis portlist=40 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=40 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=40 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
|
||||
phy set pre-emphasis portlist=40 lane-cnt=4 property=c1 data=0x6.6.6.6
|
||||
phy set pre-emphasis portlist=44 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=44 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=44 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
|
||||
phy set pre-emphasis portlist=44 lane-cnt=4 property=c1 data=0x6.6.6.6
|
||||
phy set pre-emphasis portlist=48 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=48 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=48 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b
|
||||
phy set pre-emphasis portlist=48 lane-cnt=4 property=c1 data=0x6.6.6.6
|
||||
phy set pre-emphasis portlist=49 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=49 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=49 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b
|
||||
phy set pre-emphasis portlist=49 lane-cnt=4 property=c1 data=0x6.6.6.6
|
||||
phy set pre-emphasis portlist=50 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=50 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=50 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b
|
||||
phy set pre-emphasis portlist=50 lane-cnt=4 property=c1 data=0x7.7.7.7
|
||||
phy set pre-emphasis portlist=51 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=51 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=51 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b
|
||||
phy set pre-emphasis portlist=51 lane-cnt=4 property=c1 data=0x7.7.7.7
|
||||
phy set pre-emphasis portlist=52 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=52 lane-cnt=4 property=cn1 data=0x0.0.0.0
|
||||
phy set pre-emphasis portlist=52 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a
|
||||
phy set pre-emphasis portlist=52 lane-cnt=4 property=c1 data=0x8.8.8.8
|
||||
phy set pre-emphasis portlist=53 lane-cnt=4 property=c2 data=0x2.2.2.2
|
||||
phy set pre-emphasis portlist=53 lane-cnt=4 property=cn1 data=0x1.1.1.1
|
||||
phy set pre-emphasis portlist=53 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a
|
||||
phy set pre-emphasis portlist=53 lane-cnt=4 property=c1 data=0x7.7.7.7
|
||||
phy set mdio portlist=0 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=1 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=2 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=3 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=4 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=5 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=6 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=7 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=8 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=9 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=10 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=11 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=12 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=13 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=14 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=15 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=16 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=17 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=18 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=19 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=20 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=21 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=22 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=23 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=24 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=25 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=26 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=27 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=28 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=29 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=30 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=31 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=32 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=33 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=34 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=35 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=36 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=37 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=38 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=39 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=40 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=41 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=42 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=43 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=44 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=45 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=46 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=47 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=48 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=49 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=50 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=51 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=52 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=53 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=129 devad=0x1E addr=0x2 data=0x0000
|
||||
phy set mdio portlist=130 devad=0x1E addr=0x2 data=0x0000
|
||||
port set property portlist=0-47 speed=25g
|
||||
port set property portlist=48-53 speed=100g
|
||||
port set property portlist=129-130 speed=10g
|
||||
port set property portlist=0-47 medium-type=sr
|
||||
port set property portlist=48-53 medium-type=sr4
|
||||
port set property portlist=129-130 medium-type=kr
|
||||
port set adver portlist=129-130 speed-10g-kr
|
||||
port set property portlist=129-130 an=enable
|
||||
port set property portlist=0-53,129-130 admin=enable
|
||||
|
@ -1,55 +0,0 @@
|
||||
# name lanes alias index
|
||||
Ethernet0 8 Ethernet1/1 0
|
||||
Ethernet1 9 Ethernet2/1 1
|
||||
Ethernet2 10 Ethernet3/1 2
|
||||
Ethernet3 11 Ethernet4/1 3
|
||||
Ethernet4 12 Ethernet5/1 4
|
||||
Ethernet5 13 Ethernet6/1 5
|
||||
Ethernet6 14 Ethernet7/1 6
|
||||
Ethernet7 15 Ethernet8/1 7
|
||||
Ethernet8 16 Ethernet9/1 8
|
||||
Ethernet9 17 Ethernet10/1 9
|
||||
Ethernet10 18 Ethernet11/1 10
|
||||
Ethernet11 19 Ethernet12/1 11
|
||||
Ethernet12 20 Ethernet13/1 12
|
||||
Ethernet13 21 Ethernet14/1 13
|
||||
Ethernet14 22 Ethernet15/1 14
|
||||
Ethernet15 23 Ethernet16/1 15
|
||||
Ethernet16 32 Ethernet17/1 16
|
||||
Ethernet17 33 Ethernet18/1 17
|
||||
Ethernet18 34 Ethernet19/1 18
|
||||
Ethernet19 35 Ethernet20/1 19
|
||||
Ethernet20 40 Ethernet21/1 20
|
||||
Ethernet21 41 Ethernet22/1 21
|
||||
Ethernet22 42 Ethernet23/1 22
|
||||
Ethernet23 43 Ethernet24/1 23
|
||||
Ethernet24 48 Ethernet25/1 24
|
||||
Ethernet25 49 Ethernet26/1 25
|
||||
Ethernet26 50 Ethernet27/1 26
|
||||
Ethernet27 51 Ethernet28/1 27
|
||||
Ethernet28 56 Ethernet29/1 28
|
||||
Ethernet29 57 Ethernet30/1 29
|
||||
Ethernet30 58 Ethernet31/1 30
|
||||
Ethernet31 59 Ethernet32/1 31
|
||||
Ethernet32 64 Ethernet33/1 32
|
||||
Ethernet33 65 Ethernet34/1 33
|
||||
Ethernet34 66 Ethernet35/1 34
|
||||
Ethernet35 67 Ethernet36/1 35
|
||||
Ethernet36 68 Ethernet37/1 36
|
||||
Ethernet37 69 Ethernet38/1 37
|
||||
Ethernet38 70 Ethernet39/1 38
|
||||
Ethernet39 71 Ethernet40/1 39
|
||||
Ethernet40 72 Ethernet41/1 40
|
||||
Ethernet41 73 Ethernet42/1 41
|
||||
Ethernet42 74 Ethernet43/1 42
|
||||
Ethernet43 75 Ethernet44/1 43
|
||||
Ethernet44 76 Ethernet45/1 44
|
||||
Ethernet45 77 Ethernet46/1 45
|
||||
Ethernet46 78 Ethernet47/1 46
|
||||
Ethernet47 79 Ethernet48/1 47
|
||||
Ethernet48 80,81,82,83 Ethernet49/1 48
|
||||
Ethernet49 84,85,86,87 Ethernet50/1 49
|
||||
Ethernet50 104,105,106,107 Ethernet51/1 50
|
||||
Ethernet51 108,109,110,111 Ethernet52/1 51
|
||||
Ethernet52 112,113,114,115 Ethernet53/1 52
|
||||
Ethernet53 116,117,118,119 Ethernet54/1 56
|
@ -1,153 +1,136 @@
|
||||
{
|
||||
"TC_TO_PRIORITY_GROUP_MAP": {
|
||||
"AZURE": {
|
||||
"0": "1",
|
||||
"1": "0",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"MAP_PFC_PRIORITY_TO_QUEUE": {
|
||||
"AZURE": {
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"TC_TO_QUEUE_MAP": {
|
||||
"AZURE": {
|
||||
"0": "1",
|
||||
"1": "0",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"DSCP_TO_TC_MAP": {
|
||||
"AZURE": {
|
||||
"0":"1",
|
||||
"1":"0",
|
||||
"2":"0",
|
||||
"3":"3",
|
||||
"4":"4",
|
||||
"5":"0",
|
||||
"6":"0",
|
||||
"7":"0",
|
||||
"8":"1",
|
||||
"9":"0",
|
||||
"10":"0",
|
||||
"11":"0",
|
||||
"12":"0",
|
||||
"13":"0",
|
||||
"14":"0",
|
||||
"15":"0",
|
||||
"16":"0",
|
||||
"17":"0",
|
||||
"18":"0",
|
||||
"19":"0",
|
||||
"20":"0",
|
||||
"21":"0",
|
||||
"22":"0",
|
||||
"23":"0",
|
||||
"24":"0",
|
||||
"25":"0",
|
||||
"26":"0",
|
||||
"27":"0",
|
||||
"28":"0",
|
||||
"29":"0",
|
||||
"30":"0",
|
||||
"31":"0",
|
||||
"32":"0",
|
||||
"33":"0",
|
||||
"34":"0",
|
||||
"35":"0",
|
||||
"36":"0",
|
||||
"37":"0",
|
||||
"38":"0",
|
||||
"39":"0",
|
||||
"40":"0",
|
||||
"41":"0",
|
||||
"42":"0",
|
||||
"43":"0",
|
||||
"44":"0",
|
||||
"45":"0",
|
||||
"46":"0",
|
||||
"47":"0",
|
||||
"48":"0",
|
||||
"49":"0",
|
||||
"50":"0",
|
||||
"51":"0",
|
||||
"52":"0",
|
||||
"53":"0",
|
||||
"54":"0",
|
||||
"55":"0",
|
||||
"56":"0",
|
||||
"57":"0",
|
||||
"58":"0",
|
||||
"59":"0",
|
||||
"60":"0",
|
||||
"61":"0",
|
||||
"62":"0",
|
||||
"63":"0"
|
||||
}
|
||||
},
|
||||
"SCHEDULER": {
|
||||
"scheduler.0" : {
|
||||
"type":"DWRR",
|
||||
"weight": "25"
|
||||
},
|
||||
"scheduler.1" : {
|
||||
"type":"DWRR",
|
||||
"weight": "30"
|
||||
},
|
||||
"scheduler.2" : {
|
||||
"type":"DWRR",
|
||||
"weight": "20"
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
"Ethernet0,Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53": {
|
||||
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
|
||||
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
|
||||
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
|
||||
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
|
||||
"pfc_enable": "3,4"
|
||||
}
|
||||
},
|
||||
"WRED_PROFILE": {
|
||||
"AZURE_LOSSY" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"wred_red_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"516096",
|
||||
"red_min_threshold":"516096",
|
||||
"yellow_max_threshold":"516096",
|
||||
"yellow_min_threshold":"516096",
|
||||
"green_max_threshold": "184128",
|
||||
"green_min_threshold": "184128"
|
||||
},
|
||||
"AZURE_LOSSLESS" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"wred_red_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"516096",
|
||||
"red_min_threshold":"516096",
|
||||
"yellow_max_threshold":"516096",
|
||||
"yellow_min_threshold":"516096",
|
||||
"green_max_threshold": "184128",
|
||||
"green_min_threshold": "184128"
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
"Ethernet0,Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53|3-4" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.0]",
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
|
||||
},
|
||||
"Ethernet0,Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53|0" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"Ethernet0,Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53|1" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
"TC_TO_PRIORITY_GROUP_MAP": {
|
||||
"AZURE": {
|
||||
"0": "1",
|
||||
"1": "0",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"MAP_PFC_PRIORITY_TO_QUEUE": {
|
||||
"AZURE": {
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"TC_TO_QUEUE_MAP": {
|
||||
"AZURE": {
|
||||
"0": "1",
|
||||
"1": "0",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"DSCP_TO_TC_MAP": {
|
||||
"AZURE": {
|
||||
"0":"1",
|
||||
"1":"0",
|
||||
"2":"0",
|
||||
"3":"3",
|
||||
"4":"4",
|
||||
"5":"0",
|
||||
"6":"0",
|
||||
"7":"0",
|
||||
"8":"1",
|
||||
"9":"0",
|
||||
"10":"0",
|
||||
"11":"0",
|
||||
"12":"0",
|
||||
"13":"0",
|
||||
"14":"0",
|
||||
"15":"0",
|
||||
"16":"0",
|
||||
"17":"0",
|
||||
"18":"0",
|
||||
"19":"0",
|
||||
"20":"0",
|
||||
"21":"0",
|
||||
"22":"0",
|
||||
"23":"0",
|
||||
"24":"0",
|
||||
"25":"0",
|
||||
"26":"0",
|
||||
"27":"0",
|
||||
"28":"0",
|
||||
"29":"0",
|
||||
"30":"0",
|
||||
"31":"0",
|
||||
"32":"0",
|
||||
"33":"0",
|
||||
"34":"0",
|
||||
"35":"0",
|
||||
"36":"0",
|
||||
"37":"0",
|
||||
"38":"0",
|
||||
"39":"0",
|
||||
"40":"0",
|
||||
"41":"0",
|
||||
"42":"0",
|
||||
"43":"0",
|
||||
"44":"0",
|
||||
"45":"0",
|
||||
"46":"0",
|
||||
"47":"0",
|
||||
"48":"0",
|
||||
"49":"0",
|
||||
"50":"0",
|
||||
"51":"0",
|
||||
"52":"0",
|
||||
"53":"0",
|
||||
"54":"0",
|
||||
"55":"0",
|
||||
"56":"0",
|
||||
"57":"0",
|
||||
"58":"0",
|
||||
"59":"0",
|
||||
"60":"0",
|
||||
"61":"0",
|
||||
"62":"0",
|
||||
"63":"0"
|
||||
}
|
||||
},
|
||||
"SCHEDULER": {
|
||||
"scheduler.0" : {
|
||||
"type":"DWRR",
|
||||
"weight": "25"
|
||||
},
|
||||
"scheduler.1" : {
|
||||
"type":"DWRR",
|
||||
"weight": "30"
|
||||
},
|
||||
"scheduler.2" : {
|
||||
"type":"DWRR",
|
||||
"weight": "20"
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
},
|
||||
"WRED_PROFILE": {
|
||||
"AZURE_LOSSY" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"wred_red_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"613984",
|
||||
"red_min_threshold":"76608",
|
||||
"yellow_max_threshold":"628320",
|
||||
"yellow_min_threshold":"78400",
|
||||
"green_max_threshold": "642656",
|
||||
"green_min_threshold": "80192"
|
||||
},
|
||||
"AZURE_LOSSLESS" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"wred_red_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"613984",
|
||||
"red_min_threshold":"76608",
|
||||
"yellow_max_threshold":"628320",
|
||||
"yellow_min_threshold":"78400",
|
||||
"green_max_threshold": "642656",
|
||||
"green_min_threshold": "80192"
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
}
|
||||
}
|
||||
|
@ -1,2 +1,2 @@
|
||||
SAI_INIT_CONFIG_FILE=/etc/nps/tau-as7116-4806.cfg
|
||||
SAI_DSH_CONFIG_FILE=/etc/nps/tau-as7116-4806.dsh
|
||||
SAI_INIT_CONFIG_FILE=/usr/share/sonic/platform/led_proc_init.nps
|
||||
SAI_DSH_CONFIG_FILE=/usr/share/sonic/hwsku/port_config.nps
|
||||
|
@ -1,3 +1,4 @@
|
||||
CONSOLE_PORT=0x3f8
|
||||
CONSOLE_DEV=0
|
||||
CONSOLE_SPEED=115200
|
||||
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="pci=noaer"
|
@ -1,20 +1,10 @@
|
||||
#This configuration file is for customer init value feature. Please refer to mtk_cfg.h/mtk_cfg.c for detail.
|
||||
#1. The lines beginning with # are comment lines. The lines beginning with number are the setting lines.
|
||||
#2. There are five parameters which can be set.
|
||||
# 1) the first is unit.
|
||||
# 2) the second is NPS_CFG_TYPE_XXX. Refer to NPS_CFG_TYPE_T.
|
||||
# 3) the 3-5 are {param0, param1, value} pairs. Refer to NPS_CFG_VALUE_T. Support HEX format.
|
||||
# 4) the (unit, NPS_CFG_TYPE_XXX, param0, param1) group is the key to get the correspingding value.
|
||||
# There should be no same (unit, NPS_CFG_TYPE_XXX, param0, param1) group.
|
||||
#3. User must follow correct format to apply the setting. Please refer to below commentted example(#0 NPS_CFG_TYPE_L2_ADDR_MODE 0 0 1);
|
||||
#4. Usage under the linux shell:
|
||||
# 1) ./image-path/image-name -c cfg-path/NPS_Ari_EVB_24.cfg : mamually specify directory path if they are not in current work dirctory.
|
||||
# 2) ./image-name -c NPS_Ari_EVB_24.cfg : the image and the NPS_Ari_EVB_24.cfg are in the current work directory.
|
||||
|
||||
#unit NPS_CFG_TYPE_XXX param0 param1 value
|
||||
#---- ---------------- ------ ------ -----
|
||||
0 NPS_CFG_TYPE_USE_UNIT_PORT 0 0 1
|
||||
0 NPS_CFG_TYPE_LED_CFG 0 0 3
|
||||
0 NPS_CFG_TYPE_USER_BUF_CTRL 0 0 1
|
||||
0 NPS_CFG_TYPE_LED_CFG 0 0 5
|
||||
0 NPS_CFG_TYPE_CPI_PORT_MODE 129 0 1
|
||||
0 NPS_CFG_TYPE_CPI_PORT_MODE 130 0 1
|
||||
0 NPS_CFG_TYPE_USER_BUF_CTRL 0 0 1
|
||||
0 NPS_CFG_TYPE_HASH_L2_FDB_REGION_ENTRY_NUM 0 0 49152
|
||||
0 NPS_CFG_TYPE_HASH_L3_WITH_IPV6_PREFIX_64_REGION_ENTRY_NUM 0 0 32768
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
92
device/accton/x86_64-accton_as7116_54x-r0/plugins/psuutil.py
Normal file
92
device/accton/x86_64-accton_as7116_54x-r0/plugins/psuutil.py
Normal file
@ -0,0 +1,92 @@
|
||||
#
|
||||
# psuutil.py
|
||||
# Platform-specific PSU status interface for SONiC
|
||||
#
|
||||
|
||||
|
||||
import os.path
|
||||
|
||||
try:
|
||||
from sonic_psu.psu_base import PsuBase
|
||||
except ImportError as e:
|
||||
raise ImportError(str(e) + "- required module not found")
|
||||
|
||||
|
||||
class PsuUtil(PsuBase):
|
||||
"""Platform-specific PSUutil class"""
|
||||
|
||||
SYSFS_PSU_DIR = ["/sys/bus/i2c/devices/10-0050",
|
||||
"/sys/bus/i2c/devices/11-0053"]
|
||||
|
||||
def __init__(self):
|
||||
PsuBase.__init__(self)
|
||||
|
||||
|
||||
# Get sysfs attribute
|
||||
def get_attr_value(self, attr_path):
|
||||
|
||||
retval = 'ERR'
|
||||
if (not os.path.isfile(attr_path)):
|
||||
return retval
|
||||
|
||||
try:
|
||||
with open(attr_path, 'r') as fd:
|
||||
retval = fd.read()
|
||||
except Exception as error:
|
||||
logging.error("Unable to open ", attr_path, " file !")
|
||||
|
||||
retval = retval.rstrip('\r\n')
|
||||
return retval
|
||||
|
||||
def get_num_psus(self):
|
||||
"""
|
||||
Retrieves the number of PSUs available on the device
|
||||
:return: An integer, the number of PSUs available on the device
|
||||
"""
|
||||
MAX_PSUS = 2
|
||||
return MAX_PSUS
|
||||
|
||||
def get_psu_status(self, index):
|
||||
"""
|
||||
Retrieves the oprational status of power supply unit (PSU) defined
|
||||
by index <index>
|
||||
:param index: An integer, index of the PSU of which to query status
|
||||
:return: Boolean, True if PSU is operating properly, False if PSU is\
|
||||
faulty
|
||||
"""
|
||||
status = 0
|
||||
attr_file = 'psu_power_good'
|
||||
attr_path = self.SYSFS_PSU_DIR[index-1] +'/' + attr_file
|
||||
|
||||
attr_value = self.get_attr_value(attr_path)
|
||||
|
||||
if (attr_value != 'ERR'):
|
||||
attr_value = int(attr_value, 16)
|
||||
# Check for PSU status
|
||||
if (attr_value == 1):
|
||||
status = 1
|
||||
|
||||
return status
|
||||
|
||||
def get_psu_presence(self, index):
|
||||
"""
|
||||
Retrieves the presence status of power supply unit (PSU) defined
|
||||
by index <index>
|
||||
:param index: An integer, index of the PSU of which to query status
|
||||
:return: Boolean, True if PSU is plugged, False if not
|
||||
"""
|
||||
status = 0
|
||||
psu_absent = 0
|
||||
attr_file ='psu_present'
|
||||
attr_path = self.SYSFS_PSU_DIR[index-1] +'/' + attr_file
|
||||
|
||||
attr_value = self.get_attr_value(attr_path)
|
||||
|
||||
if (attr_value != 'ERR'):
|
||||
attr_value = int(attr_value, 16)
|
||||
# Check for PSU presence
|
||||
if (attr_value == 1):
|
||||
status = 1
|
||||
|
||||
return status
|
||||
|
@ -79,10 +79,7 @@ class SfpUtil(SfpUtilBase):
|
||||
eeprom_path = '/sys/bus/i2c/devices/{0}-0050/sfp_eeprom'
|
||||
for x in range(self._port_start, self._port_end + 1):
|
||||
port_eeprom_path = eeprom_path.format(self._port_to_i2c_mapping[x])
|
||||
if x == 53:
|
||||
self._port_to_eeprom_mapping[56] = port_eeprom_path # ugly!!!!
|
||||
else:
|
||||
self._port_to_eeprom_mapping[x] = port_eeprom_path
|
||||
self._port_to_eeprom_mapping[x] = port_eeprom_path
|
||||
|
||||
SfpUtilBase.__init__(self)
|
||||
|
||||
@ -135,6 +132,9 @@ class SfpUtil(SfpUtilBase):
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def get_transceiver_change_event(self, timeout=0):
|
||||
raise NotImplementedError
|
||||
|
||||
@property
|
||||
def port_start(self):
|
||||
@ -151,5 +151,3 @@ class SfpUtil(SfpUtilBase):
|
||||
@property
|
||||
def port_to_eeprom_mapping(self):
|
||||
return self._port_to_eeprom_mapping
|
||||
|
||||
|
||||
|
13
device/accton/x86_64-accton_as7116_54x-r0/sensors.conf
Normal file
13
device/accton/x86_64-accton_as7116_54x-r0/sensors.conf
Normal file
@ -0,0 +1,13 @@
|
||||
# libsensors configuration file
|
||||
|
||||
chip "as7116_54x_fan-*"
|
||||
label fan1 "front fan 1"
|
||||
label fan2 "front fan 2"
|
||||
label fan3 "front fan 3"
|
||||
label fan4 "front fan 4"
|
||||
label fan5 "front fan 5"
|
||||
label fan6 "rear fan 1"
|
||||
label fan7 "rear fan 2"
|
||||
label fan8 "rear fan 3"
|
||||
label fan9 "rear fan 4"
|
||||
label fan10 "rear fan 5"
|
@ -0,0 +1,70 @@
|
||||
{# Default values which will be used if no actual configura available #}
|
||||
{% set default_cable = '40m' %}
|
||||
{% set default_ports_num = 54 -%}
|
||||
|
||||
{# Port configuration to cable length look-up table #}
|
||||
{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #}
|
||||
{# Roles described in the minigraph #}
|
||||
{% set ports2cable = {
|
||||
'torrouter_server' : '5m',
|
||||
'leafrouter_torrouter' : '40m',
|
||||
'spinerouter_leafrouter' : '300m'
|
||||
}
|
||||
%}
|
||||
|
||||
{%- macro cable_length(port_name) -%}
|
||||
{%- set cable_len = [] -%}
|
||||
{%- for local_port in DEVICE_NEIGHBOR -%}
|
||||
{%- if local_port == port_name -%}
|
||||
{%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%}
|
||||
{%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%}
|
||||
{%- set neighbor_role = neighbor.type -%}
|
||||
{%- set roles1 = switch_role + '_' + neighbor_role %}
|
||||
{%- set roles2 = neighbor_role + '_' + switch_role -%}
|
||||
{%- set roles1 = roles1 | lower -%}
|
||||
{%- set roles2 = roles2 | lower -%}
|
||||
{%- if roles1 in ports2cable -%}
|
||||
{%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%}
|
||||
{%- elif roles2 in ports2cable -%}
|
||||
{%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- if cable_len -%}
|
||||
{{ cable_len.0 }}
|
||||
{%- else -%}
|
||||
{{ default_cable }}
|
||||
{%- endif -%}
|
||||
{% endmacro %}
|
||||
|
||||
{%- if DEVICE_METADATA is defined %}
|
||||
{%- set switch_role = DEVICE_METADATA['localhost']['type'] %}
|
||||
{%- endif -%}
|
||||
|
||||
{# Generate list of ports if not defined #}
|
||||
{% if PORT is not defined %}
|
||||
{% set PORT = [] %}
|
||||
{% for port_idx in range(1,default_ports_num+1) %}
|
||||
{% if PORT.append("Ethernet%d" % (port_idx)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{% endif -%}
|
||||
|
||||
{% set port_names_list = [] %}
|
||||
{% for port in PORT %}
|
||||
{%- if port_names_list.append(port) %}{% endif %}
|
||||
{% endfor %}
|
||||
{% set port_names = port_names_list | join(',') -%}
|
||||
|
||||
{
|
||||
"CABLE_LENGTH": {
|
||||
"AZURE": {
|
||||
{% for port in PORT %}
|
||||
{% set cable = cable_length(port) -%}
|
||||
"{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,21 @@
|
||||
# PG lossless profiles.
|
||||
# speed cable size xon xoff threshold
|
||||
1000 5m 34816 18432 16384 0
|
||||
10000 5m 34816 18432 16384 0
|
||||
25000 5m 34816 18432 16384 0
|
||||
40000 5m 34816 18432 16384 0
|
||||
50000 5m 34816 18432 16384 0
|
||||
100000 5m 36864 18432 18432 0
|
||||
1000 40m 36864 18432 18432 0
|
||||
10000 40m 36864 18432 18432 0
|
||||
25000 40m 39936 18432 21504 0
|
||||
40000 40m 41984 18432 23552 0
|
||||
50000 40m 41984 18432 23552 0
|
||||
100000 40m 54272 18432 35840 0
|
||||
1000 300m 49152 18432 30720 0
|
||||
10000 300m 49152 18432 30720 0
|
||||
25000 300m 71680 18432 53248 0
|
||||
40000 300m 94208 18432 75776 0
|
||||
50000 300m 94208 18432 75776 0
|
||||
100000 300m 184320 18432 165888 0
|
||||
|
@ -0,0 +1,55 @@
|
||||
# name lanes alias speed
|
||||
Ethernet1 75 eth-0-1 1000
|
||||
Ethernet2 73 eth-0-2 1000
|
||||
Ethernet3 72 eth-0-3 1000
|
||||
Ethernet4 70 eth-0-4 1000
|
||||
Ethernet5 69 eth-0-5 1000
|
||||
Ethernet6 67 eth-0-6 1000
|
||||
Ethernet7 66 eth-0-7 1000
|
||||
Ethernet8 64 eth-0-8 1000
|
||||
Ethernet9 63 eth-0-9 1000
|
||||
Ethernet10 61 eth-0-10 1000
|
||||
Ethernet11 60 eth-0-11 1000
|
||||
Ethernet12 58 eth-0-12 1000
|
||||
Ethernet13 57 eth-0-13 10000
|
||||
Ethernet14 56 eth-0-14 10000
|
||||
Ethernet15 55 eth-0-15 10000
|
||||
Ethernet16 53 eth-0-16 10000
|
||||
Ethernet17 52 eth-0-17 10000
|
||||
Ethernet18 50 eth-0-18 10000
|
||||
Ethernet19 49 eth-0-19 10000
|
||||
Ethernet20 48 eth-0-20 10000
|
||||
Ethernet21 0 eth-0-21 10000
|
||||
Ethernet22 1 eth-0-22 10000
|
||||
Ethernet23 3 eth-0-23 10000
|
||||
Ethernet24 2 eth-0-24 10000
|
||||
Ethernet25 4 eth-0-25 10000
|
||||
Ethernet26 5 eth-0-26 10000
|
||||
Ethernet27 6 eth-0-27 10000
|
||||
Ethernet28 7 eth-0-28 10000
|
||||
Ethernet29 8 eth-0-29 10000
|
||||
Ethernet30 9 eth-0-30 10000
|
||||
Ethernet31 10 eth-0-31 10000
|
||||
Ethernet32 12 eth-0-32 10000
|
||||
Ethernet33 13 eth-0-33 10000
|
||||
Ethernet34 15 eth-0-34 10000
|
||||
Ethernet35 16 eth-0-35 10000
|
||||
Ethernet36 18 eth-0-36 10000
|
||||
Ethernet37 19 eth-0-37 10000
|
||||
Ethernet38 21 eth-0-38 10000
|
||||
Ethernet39 22 eth-0-39 10000
|
||||
Ethernet40 24 eth-0-40 10000
|
||||
Ethernet41 25 eth-0-41 10000
|
||||
Ethernet42 27 eth-0-42 10000
|
||||
Ethernet43 28 eth-0-43 10000
|
||||
Ethernet44 30 eth-0-44 10000
|
||||
Ethernet45 31 eth-0-45 10000
|
||||
Ethernet46 33 eth-0-46 10000
|
||||
Ethernet47 34 eth-0-47 10000
|
||||
Ethernet48 36 eth-0-48 10000
|
||||
Ethernet49 42,41,43,40 eth-0-49 40000
|
||||
Ethernet50 45,46,44,47 eth-0-50 40000
|
||||
Ethernet51 94,93,95,92 eth-0-51 100000
|
||||
Ethernet52 89,90,88,91 eth-0-52 100000
|
||||
Ethernet53 85,86,84,87 eth-0-53 100000
|
||||
Ethernet54 81,82,80,83 eth-0-54 100000
|
@ -0,0 +1,133 @@
|
||||
{
|
||||
"DSCP_TO_TC_MAP": {
|
||||
"AZURE": {
|
||||
"0":"0",
|
||||
"1":"0",
|
||||
"2":"0",
|
||||
"3":"0",
|
||||
"4":"0",
|
||||
"5":"0",
|
||||
"6":"0",
|
||||
"7":"0",
|
||||
"8":"1",
|
||||
"9":"1",
|
||||
"10":"1",
|
||||
"11":"1",
|
||||
"12":"1",
|
||||
"13":"1",
|
||||
"14":"1",
|
||||
"15":"1",
|
||||
"16":"2",
|
||||
"17":"2",
|
||||
"18":"2",
|
||||
"19":"2",
|
||||
"20":"2",
|
||||
"21":"2",
|
||||
"22":"2",
|
||||
"23":"2",
|
||||
"24":"3",
|
||||
"25":"3",
|
||||
"26":"3",
|
||||
"27":"3",
|
||||
"28":"3",
|
||||
"29":"3",
|
||||
"30":"3",
|
||||
"31":"3",
|
||||
"32":"4",
|
||||
"33":"4",
|
||||
"34":"4",
|
||||
"35":"4",
|
||||
"36":"4",
|
||||
"37":"4",
|
||||
"38":"4",
|
||||
"39":"4",
|
||||
"40":"5",
|
||||
"41":"5",
|
||||
"42":"5",
|
||||
"43":"5",
|
||||
"44":"5",
|
||||
"45":"5",
|
||||
"46":"5",
|
||||
"47":"5",
|
||||
"48":"6",
|
||||
"49":"6",
|
||||
"50":"6",
|
||||
"51":"6",
|
||||
"52":"6",
|
||||
"53":"6",
|
||||
"54":"6",
|
||||
"55":"6",
|
||||
"56":"7",
|
||||
"57":"7",
|
||||
"58":"7",
|
||||
"59":"7",
|
||||
"60":"7",
|
||||
"61":"7",
|
||||
"62":"7",
|
||||
"63":"7"
|
||||
}
|
||||
},
|
||||
"SCHEDULER": {
|
||||
"scheduler.0": {
|
||||
"type":"DWRR",
|
||||
"weight": "25"
|
||||
},
|
||||
"scheduler.1": {
|
||||
"type":"DWRR",
|
||||
"weight": "30"
|
||||
},
|
||||
"scheduler.2": {
|
||||
"type":"DWRR",
|
||||
"weight": "20"
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
"Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54": {
|
||||
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
|
||||
"pfc_enable": "3,4"
|
||||
}
|
||||
},
|
||||
"WRED_PROFILE": {
|
||||
"AZURE_LOSSY": {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"red_max_threshold":"32760",
|
||||
"red_min_threshold":"4095",
|
||||
"yellow_max_threshold":"32760",
|
||||
"yellow_min_threshold":"4095",
|
||||
"green_max_threshold": "32760",
|
||||
"green_min_threshold": "4095"
|
||||
},
|
||||
"AZURE_LOSSLESS": {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"red_max_threshold":"32760",
|
||||
"red_min_threshold":"4095",
|
||||
"yellow_max_threshold":"32760",
|
||||
"yellow_min_threshold":"4095",
|
||||
"green_max_threshold": "32760",
|
||||
"green_min_threshold": "4095"
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
"Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54|0-2": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54|5-7": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
},
|
||||
"Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54|0-2": {
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
|
||||
},
|
||||
|
||||
"Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54|5-7": {
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
|
||||
},
|
||||
"Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54|3-4": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.0]",
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSLESS]"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,2 @@
|
||||
SAI_INIT_CONFIG_FILE=/etc/centec/E582-48x2q4z-chip-profile.txt
|
||||
SAI_HW_PORT_PROFILE_ID_CONFIG_FILE=/etc/centec/E582-48x2q4z-datapath-cfg.txt
|
10
device/centec/x86_64-centec_e582_48x2q4z-r0/fancontrol
Normal file
10
device/centec/x86_64-centec_e582_48x2q4z-r0/fancontrol
Normal file
@ -0,0 +1,10 @@
|
||||
# Configuration file generated by pwmconfig, changes will be lost
|
||||
INTERVAL=10
|
||||
DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon5=devices/pci0000:00/0000:00:1f.3/i2c-0/i2c-15/15-002f
|
||||
DEVNAME=hwmon1=coretemp hwmon5=adt7470
|
||||
FCTEMPS=hwmon5/pwm4=hwmon1/temp1_input hwmon5/pwm3=hwmon1/temp1_input hwmon5/pwm2=hwmon1/temp1_input hwmon5/pwm1=hwmon1/temp1_input
|
||||
FCFANS=hwmon5/pwm4=hwmon5/fan4_input hwmon5/pwm3=hwmon5/fan3_input hwmon5/pwm2=hwmon5/fan2_input hwmon5/pwm1=hwmon5/fan1_input
|
||||
MINTEMP=hwmon5/pwm4=20 hwmon5/pwm3=20 hwmon5/pwm2=20 hwmon5/pwm1=20
|
||||
MAXTEMP=hwmon5/pwm4=60 hwmon5/pwm3=60 hwmon5/pwm2=60 hwmon5/pwm1=60
|
||||
MINSTART=hwmon5/pwm4=150 hwmon5/pwm3=150 hwmon5/pwm2=150 hwmon5/pwm1=150
|
||||
MINSTOP=hwmon5/pwm4=0 hwmon5/pwm3=0 hwmon5/pwm2=0 hwmon5/pwm1=100
|
@ -0,0 +1,2 @@
|
||||
CONSOLE_SPEED=115200
|
||||
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="acpi_enforce_resources=no"
|
@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
#############################################################################
|
||||
# Centec E582-48X6Q
|
||||
#
|
||||
# Platform and model specific eeprom subclass, inherits from the base class,
|
||||
# and provides the followings:
|
||||
# - the eeprom format definition
|
||||
# - specific encoder/decoder if there is special need
|
||||
#############################################################################
|
||||
|
||||
try:
|
||||
import exceptions
|
||||
import binascii
|
||||
import time
|
||||
import optparse
|
||||
import warnings
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
from sonic_eeprom import eeprom_base
|
||||
from sonic_eeprom import eeprom_tlvinfo
|
||||
except ImportError, e:
|
||||
raise ImportError (str(e) + "- required module not found")
|
||||
|
||||
|
||||
class board(eeprom_tlvinfo.TlvInfoDecoder):
|
||||
|
||||
def __init__(self, name, path, cpld_root, ro):
|
||||
self.eeprom_path = "/sys/class/i2c-adapter/i2c-0/0-0057/eeprom"
|
||||
super(board, self).__init__(self.eeprom_path, 0, '', True)
|
@ -0,0 +1,153 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# led_control.py
|
||||
#
|
||||
# Platform-specific LED control functionality for SONiC
|
||||
#
|
||||
|
||||
try:
|
||||
from sonic_led.led_control_base import LedControlBase
|
||||
import swsssdk
|
||||
import threading
|
||||
import os
|
||||
import logging
|
||||
import struct
|
||||
import time
|
||||
import syslog
|
||||
from socket import *
|
||||
from select import *
|
||||
except ImportError, e:
|
||||
raise ImportError(str(e) + " - required module not found")
|
||||
|
||||
|
||||
def DBG_PRINT(str):
|
||||
syslog.openlog("centec-led")
|
||||
syslog.syslog(syslog.LOG_INFO, str)
|
||||
syslog.closelog()
|
||||
|
||||
class LedControl(LedControlBase):
|
||||
"""Platform specific LED control class"""
|
||||
SONIC_PORT_NAME_PREFIX = "Ethernet"
|
||||
LED_MODE_UP = [11, 1]
|
||||
LED_MODE_DOWN = [7, 2]
|
||||
|
||||
def _initSystemLed(self):
|
||||
try:
|
||||
with open(self.f_led.format("system"), 'w') as led_file:
|
||||
led_file.write("5")
|
||||
DBG_PRINT("init system led to normal")
|
||||
with open(self.f_led.format("idn"), 'w') as led_file:
|
||||
led_file.write("1")
|
||||
DBG_PRINT("init idn led to off")
|
||||
except IOError as e:
|
||||
DBG_PRINT(str(e))
|
||||
|
||||
def _initPanelLed(self):
|
||||
with open(self.f_led.format("port1"), 'r') as led_file:
|
||||
shouldInit = (int(led_file.read()) == 0)
|
||||
|
||||
if shouldInit == True:
|
||||
for (port, ctlid, defmode) in self.led_mapping[1:59]:
|
||||
data = struct.pack('=HHHBBH', 0, 7, 4, ctlid, defmode, port)
|
||||
self.udpClient.sendto(data, ('localhost', 8101))
|
||||
|
||||
data = struct.pack('=HHHBB30B', 0, 3, 32, 30, 0, *[x[0] for x in self.led_mapping[21:51]])
|
||||
self.udpClient.sendto(data, ('localhost', 8101))
|
||||
data = struct.pack('=HHHBB28B', 0, 3, 30, 28, 1, *[x[0] for x in (self.led_mapping[1:21]+self.led_mapping[51:59])])
|
||||
self.udpClient.sendto(data, ('localhost', 8101))
|
||||
|
||||
data = struct.pack('=HHHB', 0, 5, 1, 1)
|
||||
self.udpClient.sendto(data, ('localhost', 8101))
|
||||
|
||||
for idx in range(1, 55):
|
||||
(port, ctlid, defmode) = self.led_mapping[idx]
|
||||
with open(self.f_led.format("port{}".format(idx)), 'w') as led_file:
|
||||
led_file.write(str(defmode))
|
||||
DBG_PRINT("init port{} led to mode={}".format(idx, defmode))
|
||||
|
||||
for idx in range(1, 55):
|
||||
(port, ctlid, defmode) = self.led_mapping[idx]
|
||||
with open(self.f_led.format("port{}".format(idx)), 'r') as led_file:
|
||||
defmode = int(led_file.read())
|
||||
data = struct.pack('=HHHBBH', 0, 7, 4, ctlid, defmode, port)
|
||||
self.udpClient.sendto(data, ('localhost', 8101))
|
||||
DBG_PRINT("init port{} led to mode={}".format(idx, defmode))
|
||||
|
||||
def _initDefaultConfig(self):
|
||||
DBG_PRINT("start init led")
|
||||
while True:
|
||||
try:
|
||||
r_sel = [self.udpClient]
|
||||
echo_req = struct.pack('=HHH', 0, 1, 0)
|
||||
self.udpClient.sendto(echo_req, ('localhost', 8101))
|
||||
result = select(r_sel, [], [], 1)
|
||||
if self.udpClient in result[0]:
|
||||
echo_rsp, srv_addr = self.udpClient.recvfrom(1024)
|
||||
if echo_rsp:
|
||||
break
|
||||
DBG_PRINT("connect to sdk rpc server timeout, try again.")
|
||||
except IOError as e:
|
||||
DBG_PRINT(str(e))
|
||||
|
||||
DBG_PRINT("connect to sdk rpc server success.")
|
||||
|
||||
self._initSystemLed()
|
||||
self._initPanelLed()
|
||||
|
||||
DBG_PRINT("init led done")
|
||||
|
||||
|
||||
# Helper method to map SONiC port name to index
|
||||
def _port_name_to_index(self, port_name):
|
||||
# Strip "Ethernet" off port name
|
||||
if not port_name.startswith(self.SONIC_PORT_NAME_PREFIX):
|
||||
return -1
|
||||
|
||||
port_idx = int(port_name[len(self.SONIC_PORT_NAME_PREFIX):])
|
||||
return port_idx
|
||||
|
||||
def _port_state_to_mode(self, port_idx, state):
|
||||
if state == "up":
|
||||
return self.LED_MODE_UP[0] if (port_idx < 49) else self.LED_MODE_UP[1]
|
||||
else:
|
||||
return self.LED_MODE_DOWN[0] if (port_idx < 49) else self.LED_MODE_DOWN[1]
|
||||
|
||||
def _port_led_mode_update(self, port_idx, ledMode):
|
||||
with open(self.f_led.format("port{}".format(port_idx)), 'w') as led_file:
|
||||
led_file.write(str(ledMode))
|
||||
(port, ctlid) = (self.led_mapping[port_idx][0], self.led_mapping[port_idx][1])
|
||||
data = struct.pack('=HHHBBH', 0, 7, 4, ctlid, ledMode, port)
|
||||
self.udpClient.sendto(data, ('localhost', 8101))
|
||||
|
||||
# Concrete implementation of port_link_state_change() method
|
||||
def port_link_state_change(self, portname, state):
|
||||
port_idx = self._port_name_to_index(portname)
|
||||
ledMode = self._port_state_to_mode(port_idx, state)
|
||||
with open(self.f_led.format("port{}".format(port_idx)), 'r') as led_file:
|
||||
saveMode = int(led_file.read())
|
||||
|
||||
if ledMode == saveMode:
|
||||
return
|
||||
|
||||
self._port_led_mode_update(port_idx, ledMode)
|
||||
DBG_PRINT("update {} led mode from {} to {}".format(portname, saveMode, ledMode))
|
||||
|
||||
# Constructor
|
||||
def __init__(self):
|
||||
# [macid, ctlid, defaultmode]
|
||||
self.led_mapping = [(0, 0, 0)] # resv
|
||||
self.led_mapping.extend([(27, 1, 7), (25, 1, 7), (24, 1, 7), (22, 1, 7), (21, 1, 7), (19, 1, 7), (18, 1, 7), (16, 1, 7)]) # panel port 1~8
|
||||
self.led_mapping.extend([(15, 1, 7), (13, 1, 7), (12, 1, 7), (10, 1, 7), (9, 1, 7), (8, 1, 7), (7, 1, 7), (5, 1, 7)]) # panel port 9~16
|
||||
self.led_mapping.extend([(4, 1, 7), (2, 1, 7), (1, 1, 7), (0, 1, 7), (0, 0, 7), (1, 0, 7), (3, 0, 7), (2, 0, 7)]) # panel port 17~24
|
||||
self.led_mapping.extend([(4, 0, 7), (5, 0, 7), (6, 0, 7), (7, 0, 7), (8, 0, 7), (9, 0, 7), (10, 0, 7), (12, 0, 7)]) # panel port 25~32
|
||||
self.led_mapping.extend([(13, 0, 7), (15, 0, 7), (16, 0, 7), (18, 0, 7), (19, 0, 7), (21, 0, 7), (22, 0, 7), (24, 0, 7)]) # panel port 33~40
|
||||
self.led_mapping.extend([(25, 0, 7), (27, 0, 7), (28, 0, 7), (30, 0, 7), (31, 0, 7), (33, 0, 7), (34, 0, 7), (48, 0, 7)]) # panel port 41~48
|
||||
self.led_mapping.extend([(36, 0, 2), (52, 0, 2), (52, 1, 2), (36, 1, 2), (48, 1, 2), (32, 1, 2)]) # panel port 49~54
|
||||
self.led_mapping.extend([(11, 1, 2), (11, 1, 2), (11, 1, 2), (11, 1, 2), (11, 1, 2), (11, 1, 2)])
|
||||
|
||||
self.f_led = "/sys/class/leds/{}/brightness"
|
||||
|
||||
self.udpClient = socket(AF_INET, SOCK_DGRAM)
|
||||
|
||||
self._initDefaultConfig()
|
||||
|
@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
#############################################################################
|
||||
# Mellanox
|
||||
#
|
||||
# Module contains an implementation of SONiC PSU Base API and
|
||||
# provides the PSUs status which are available in the platform
|
||||
#
|
||||
#############################################################################
|
||||
|
||||
import os.path
|
||||
|
||||
try:
|
||||
from sonic_psu.psu_base import PsuBase
|
||||
except ImportError as e:
|
||||
raise ImportError (str(e) + "- required module not found")
|
||||
|
||||
class PsuUtil(PsuBase):
|
||||
"""Platform-specific PSUutil class"""
|
||||
|
||||
def __init__(self):
|
||||
PsuBase.__init__(self)
|
||||
|
||||
self.psu_path = "/sys/class/psu/psu{}/"
|
||||
self.psu_presence = "psu_presence"
|
||||
self.psu_oper_status = "psu_status"
|
||||
|
||||
def get_num_psus(self):
|
||||
"""
|
||||
Retrieves the number of PSUs available on the device
|
||||
|
||||
:return: An integer, the number of PSUs available on the device
|
||||
"""
|
||||
return 2
|
||||
|
||||
def get_psu_status(self, index):
|
||||
"""
|
||||
Retrieves the oprational status of power supply unit (PSU) defined
|
||||
by 1-based index <index>
|
||||
|
||||
:param index: An integer, 1-based index of the PSU of which to query status
|
||||
:return: Boolean, True if PSU is operating properly, False if PSU is faulty
|
||||
"""
|
||||
if index is None:
|
||||
return False
|
||||
|
||||
status = 0
|
||||
try:
|
||||
with open(self.psu_path.format(index) + self.psu_oper_status, 'r') as power_status:
|
||||
status = int(power_status.read())
|
||||
except IOError:
|
||||
return False
|
||||
|
||||
return status == 0
|
||||
|
||||
def get_psu_presence(self, index):
|
||||
"""
|
||||
Retrieves the presence status of power supply unit (PSU) defined
|
||||
by 1-based index <index>
|
||||
|
||||
:param index: An integer, 1-based index of the PSU of which to query status
|
||||
:return: Boolean, True if PSU is plugged, False if not
|
||||
"""
|
||||
if index is None:
|
||||
return False
|
||||
|
||||
status = 0
|
||||
try:
|
||||
with open(self.psu_path.format(index) + self.psu_presence, 'r') as presence_status:
|
||||
status = int(presence_status.read())
|
||||
except IOError:
|
||||
return False
|
||||
|
||||
return status == 0
|
162
device/centec/x86_64-centec_e582_48x2q4z-r0/plugins/sfputil.py
Normal file
162
device/centec/x86_64-centec_e582_48x2q4z-r0/plugins/sfputil.py
Normal file
@ -0,0 +1,162 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# sfputil.py
|
||||
#
|
||||
# Platform-specific SFP transceiver interface for SONiC
|
||||
#
|
||||
|
||||
try:
|
||||
import time
|
||||
import os
|
||||
import logging
|
||||
import struct
|
||||
import syslog
|
||||
from socket import *
|
||||
from select import *
|
||||
from sonic_sfp.sfputilbase import SfpUtilBase
|
||||
except ImportError as e:
|
||||
raise ImportError("%s - required module not found" % str(e))
|
||||
|
||||
|
||||
|
||||
def DBG_PRINT(str):
|
||||
print str + "\n"
|
||||
|
||||
|
||||
class SfpUtil(SfpUtilBase):
|
||||
"""Platform-specific SfpUtil class"""
|
||||
SONIC_PORT_NAME_PREFIX = "Ethernet"
|
||||
PORT_START = 1
|
||||
PORT_END = 54
|
||||
PORTS_IN_BLOCK = 54
|
||||
|
||||
@property
|
||||
def port_start(self):
|
||||
return self.PORT_START
|
||||
|
||||
@property
|
||||
def port_end(self):
|
||||
return self.PORT_END
|
||||
|
||||
@property
|
||||
def qsfp_ports(self):
|
||||
return range(49, self.PORTS_IN_BLOCK + 1)
|
||||
|
||||
@property
|
||||
def port_to_eeprom_mapping(self):
|
||||
return self.eeprom_mapping
|
||||
|
||||
def is_logical_port(self, port_name):
|
||||
return True
|
||||
|
||||
def get_logical_to_physical(self, port_name):
|
||||
if not port_name.startswith(self.SONIC_PORT_NAME_PREFIX):
|
||||
return None
|
||||
|
||||
port_idx = int(port_name[len(self.SONIC_PORT_NAME_PREFIX):])
|
||||
|
||||
return [port_idx]
|
||||
|
||||
def get_eeprom_data(self, port):
|
||||
(ctlid, devid) = self.fiber_mapping[port]
|
||||
offset = (128 if port in self.qsfp_ports else 0)
|
||||
r_sel = [self.udpClient]
|
||||
req = struct.pack('=HHHBBHIBBBBI',
|
||||
0, 9, 16, # lchip/msgtype/msglen
|
||||
ctlid, # uint8 ctl_id
|
||||
devid, # uint8 slave_dev_id
|
||||
0x50, # uint16 dev_addr
|
||||
(1<<devid), # uint32 slave_bitmap
|
||||
offset, # uint8 offset
|
||||
95, # uint8 length
|
||||
0xf, # uint8 i2c_switch_id
|
||||
0, # uint8 access_switch
|
||||
95 # uint32 buf_length
|
||||
)
|
||||
self.udpClient.sendto(req, ('localhost', 8101))
|
||||
result = select(r_sel, [], [], 1)
|
||||
if self.udpClient in result[0]:
|
||||
rsp, addr = self.udpClient.recvfrom(1024)
|
||||
if rsp:
|
||||
rsp_data = struct.unpack('=HHHBBHIBBBBIi512B', rsp)
|
||||
if rsp_data[12] != 0:
|
||||
return None
|
||||
if port in self.qsfp_ports:
|
||||
return buffer(bytearray([0]*128), 0, 128) + buffer(rsp, 26, 512)
|
||||
return buffer(rsp, 26, 512)
|
||||
return None
|
||||
|
||||
def __init__(self):
|
||||
"""[ctlid, slavedevid]"""
|
||||
self.fiber_mapping = [(0, 0)] # res
|
||||
self.fiber_mapping.extend([(1, 7), (1, 6), (1, 5), (1, 4), (1, 3), (1, 2), (1, 1), (1, 0)]) # panel port 1~8
|
||||
self.fiber_mapping.extend([(1, 15), (1, 14), (1, 13), (1, 12), (1, 11), (1, 10), (1, 9), (1, 8)]) # panel port 9~16
|
||||
self.fiber_mapping.extend([(1, 19), (1, 17), (1, 16), (1, 18), (0, 7), (0, 6), (0, 5), (0, 4)]) # panel port 17~24
|
||||
self.fiber_mapping.extend([(0, 3), (0, 2), (0, 1), (0, 0), (0, 15), (0, 14), (0, 13), (0, 12)]) # panel port 25~32
|
||||
self.fiber_mapping.extend([(0, 11), (0, 10), (0, 9), (0, 8), (0, 23), (0, 22), (0, 21), (0, 20)]) # panel port 33~40
|
||||
self.fiber_mapping.extend([(0, 19), (0, 18), (0, 17), (0, 16), (0, 31), (0, 26), (0, 29), (0, 27)]) # panel port 41~48
|
||||
self.fiber_mapping.extend([(0, 24), (0, 25), (1, 23), (1, 22), (1, 21), (1, 20)]) # panel port 49~54
|
||||
|
||||
self.udpClient = socket(AF_INET, SOCK_DGRAM)
|
||||
self.eeprom_mapping = {}
|
||||
self.f_sfp_present = "/sys/class/sfp/sfp{}/sfp_presence"
|
||||
self.f_sfp_enable = "/sys/class/sfp/sfp{}/sfp_enable"
|
||||
|
||||
for x in range(1, self.port_end + 1):
|
||||
self.eeprom_mapping[x] = "/var/cache/sonic/sfp/sfp{}_eeprom".format(x)
|
||||
|
||||
try:
|
||||
if not os.path.exists("/var/cache/sonic/sfp"):
|
||||
os.makedirs("/var/cache/sonic/sfp", 0777)
|
||||
for x in range(1, self.port_end + 1):
|
||||
if not self.get_presence(x):
|
||||
if os.path.exists(self.eeprom_mapping[x]):
|
||||
os.remove(self.eeprom_mapping[x])
|
||||
continue
|
||||
data = self.get_eeprom_data(x)
|
||||
if data:
|
||||
with open(self.eeprom_mapping[x], 'w') as sfp_eeprom:
|
||||
sfp_eeprom.write(data)
|
||||
else:
|
||||
DBG_PRINT("get sfp{} eeprom data failed.".format(x))
|
||||
break
|
||||
except IOError as e:
|
||||
DBG_PRINT(str(e))
|
||||
|
||||
SfpUtilBase.__init__(self)
|
||||
|
||||
def get_presence(self, port_num):
|
||||
# Check for invalid port_num
|
||||
if port_num < self.port_start or port_num > self.port_end:
|
||||
return False
|
||||
try:
|
||||
with open(self.f_sfp_present.format(port_num), 'r') as sfp_file:
|
||||
return 1 == int(sfp_file.read())
|
||||
except IOError as e:
|
||||
DBG_PRINT(str(e))
|
||||
|
||||
return False
|
||||
|
||||
def get_low_power_mode(self, port_num):
|
||||
# Check for invalid port_num
|
||||
if port_num < self.port_start or port_num > self.port_end:
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
def set_low_power_mode(self, port_num, lpmode):
|
||||
# Check for invalid port_num
|
||||
if port_num < self.port_start or port_num > self.port_end:
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
def reset(self, port_num):
|
||||
# Check for invalid port_num
|
||||
if port_num < self.port_start or port_num > self.port_end:
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
def get_transceiver_change_event(self, timeout=0):
|
||||
return False, {}
|
@ -0,0 +1,70 @@
|
||||
{# Default values which will be used if no actual configura available #}
|
||||
{% set default_cable = '40m' %}
|
||||
{% set default_ports_num = 54 -%}
|
||||
|
||||
{# Port configuration to cable length look-up table #}
|
||||
{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #}
|
||||
{# Roles described in the minigraph #}
|
||||
{% set ports2cable = {
|
||||
'torrouter_server' : '5m',
|
||||
'leafrouter_torrouter' : '40m',
|
||||
'spinerouter_leafrouter' : '300m'
|
||||
}
|
||||
%}
|
||||
|
||||
{%- macro cable_length(port_name) -%}
|
||||
{%- set cable_len = [] -%}
|
||||
{%- for local_port in DEVICE_NEIGHBOR -%}
|
||||
{%- if local_port == port_name -%}
|
||||
{%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%}
|
||||
{%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%}
|
||||
{%- set neighbor_role = neighbor.type -%}
|
||||
{%- set roles1 = switch_role + '_' + neighbor_role %}
|
||||
{%- set roles2 = neighbor_role + '_' + switch_role -%}
|
||||
{%- set roles1 = roles1 | lower -%}
|
||||
{%- set roles2 = roles2 | lower -%}
|
||||
{%- if roles1 in ports2cable -%}
|
||||
{%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%}
|
||||
{%- elif roles2 in ports2cable -%}
|
||||
{%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{%- if cable_len -%}
|
||||
{{ cable_len.0 }}
|
||||
{%- else -%}
|
||||
{{ default_cable }}
|
||||
{%- endif -%}
|
||||
{% endmacro %}
|
||||
|
||||
{%- if DEVICE_METADATA is defined %}
|
||||
{%- set switch_role = DEVICE_METADATA['localhost']['type'] %}
|
||||
{%- endif -%}
|
||||
|
||||
{# Generate list of ports if not defined #}
|
||||
{% if PORT is not defined %}
|
||||
{% set PORT = [] %}
|
||||
{% for port_idx in range(1,default_ports_num+1) %}
|
||||
{% if PORT.append("Ethernet%d" % (port_idx)) %}{% endif %}
|
||||
{% endfor %}
|
||||
{% endif -%}
|
||||
|
||||
{% set port_names_list = [] %}
|
||||
{% for port in PORT %}
|
||||
{%- if port_names_list.append(port) %}{% endif %}
|
||||
{% endfor %}
|
||||
{% set port_names = port_names_list | join(',') -%}
|
||||
|
||||
{
|
||||
"CABLE_LENGTH": {
|
||||
"AZURE": {
|
||||
{% for port in PORT %}
|
||||
{% set cable = cable_length(port) -%}
|
||||
"{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,21 @@
|
||||
# PG lossless profiles.
|
||||
# speed cable size xon xoff threshold
|
||||
1000 5m 34816 18432 16384 0
|
||||
10000 5m 34816 18432 16384 0
|
||||
25000 5m 34816 18432 16384 0
|
||||
40000 5m 34816 18432 16384 0
|
||||
50000 5m 34816 18432 16384 0
|
||||
100000 5m 36864 18432 18432 0
|
||||
1000 40m 36864 18432 18432 0
|
||||
10000 40m 36864 18432 18432 0
|
||||
25000 40m 39936 18432 21504 0
|
||||
40000 40m 41984 18432 23552 0
|
||||
50000 40m 41984 18432 23552 0
|
||||
100000 40m 54272 18432 35840 0
|
||||
1000 300m 49152 18432 30720 0
|
||||
10000 300m 49152 18432 30720 0
|
||||
25000 300m 71680 18432 53248 0
|
||||
40000 300m 94208 18432 75776 0
|
||||
50000 300m 94208 18432 75776 0
|
||||
100000 300m 184320 18432 165888 0
|
||||
|
@ -1,33 +1,55 @@
|
||||
# name lanes
|
||||
Ethernet0 1
|
||||
Ethernet4 2
|
||||
Ethernet8 3
|
||||
Ethernet12 4
|
||||
Ethernet16 5
|
||||
Ethernet20 6
|
||||
Ethernet24 7
|
||||
Ethernet28 8
|
||||
Ethernet32 9
|
||||
Ethernet36 10
|
||||
Ethernet40 11
|
||||
Ethernet44 12
|
||||
Ethernet48 13
|
||||
Ethernet52 14
|
||||
Ethernet56 15
|
||||
Ethernet60 16
|
||||
Ethernet64 17
|
||||
Ethernet68 18
|
||||
Ethernet72 19
|
||||
Ethernet76 20
|
||||
Ethernet80 21
|
||||
Ethernet84 22
|
||||
Ethernet88 23
|
||||
Ethernet92 24
|
||||
Ethernet96 25
|
||||
Ethernet100 26
|
||||
Ethernet104 27
|
||||
Ethernet108 28
|
||||
Ethernet112 29
|
||||
Ethernet116 30
|
||||
Ethernet120 31
|
||||
Ethernet124 32
|
||||
# name lanes alias speed
|
||||
Ethernet1 4 eth-0-1 1000
|
||||
Ethernet2 5 eth-0-2 1000
|
||||
Ethernet3 6 eth-0-3 1000
|
||||
Ethernet4 8 eth-0-4 1000
|
||||
Ethernet5 9 eth-0-5 1000
|
||||
Ethernet6 10 eth-0-6 1000
|
||||
Ethernet7 12 eth-0-7 1000
|
||||
Ethernet8 13 eth-0-8 1000
|
||||
Ethernet9 14 eth-0-9 1000
|
||||
Ethernet10 16 eth-0-10 1000
|
||||
Ethernet11 17 eth-0-11 1000
|
||||
Ethernet12 18 eth-0-12 1000
|
||||
Ethernet13 20 eth-0-13 10000
|
||||
Ethernet14 21 eth-0-14 10000
|
||||
Ethernet15 22 eth-0-15 10000
|
||||
Ethernet16 24 eth-0-16 10000
|
||||
Ethernet17 25 eth-0-17 10000
|
||||
Ethernet18 26 eth-0-18 10000
|
||||
Ethernet19 28 eth-0-19 10000
|
||||
Ethernet20 30 eth-0-20 10000
|
||||
Ethernet21 31 eth-0-21 10000
|
||||
Ethernet22 32 eth-0-22 10000
|
||||
Ethernet23 34 eth-0-23 10000
|
||||
Ethernet24 35 eth-0-24 10000
|
||||
Ethernet25 36 eth-0-25 10000
|
||||
Ethernet26 37 eth-0-26 10000
|
||||
Ethernet27 39 eth-0-27 10000
|
||||
Ethernet28 40 eth-0-28 10000
|
||||
Ethernet29 41 eth-0-29 10000
|
||||
Ethernet30 43 eth-0-30 10000
|
||||
Ethernet31 47 eth-0-31 10000
|
||||
Ethernet32 46 eth-0-32 10000
|
||||
Ethernet33 45 eth-0-33 10000
|
||||
Ethernet34 44 eth-0-34 10000
|
||||
Ethernet35 92 eth-0-35 10000
|
||||
Ethernet36 93 eth-0-36 10000
|
||||
Ethernet37 94 eth-0-37 10000
|
||||
Ethernet38 95 eth-0-38 10000
|
||||
Ethernet39 90 eth-0-39 10000
|
||||
Ethernet40 89 eth-0-40 10000
|
||||
Ethernet41 88 eth-0-41 10000
|
||||
Ethernet42 87 eth-0-42 10000
|
||||
Ethernet43 86 eth-0-43 10000
|
||||
Ethernet44 85 eth-0-44 10000
|
||||
Ethernet45 84 eth-0-45 10000
|
||||
Ethernet46 82 eth-0-46 10000
|
||||
Ethernet47 81 eth-0-47 10000
|
||||
Ethernet48 80 eth-0-48 10000
|
||||
Ethernet49 77,78,76,79 eth-0-49 40000
|
||||
Ethernet50 73,74,72,75 eth-0-50 40000
|
||||
Ethernet51 70,71,69,68 eth-0-51 40000
|
||||
Ethernet52 61,63,60,62 eth-0-52 40000
|
||||
Ethernet53 59,57,58,56 eth-0-53 40000
|
||||
Ethernet54 53,55,54,52 eth-0-54 40000
|
||||
|
133
device/centec/x86_64-centec_e582_48x6q-r0/E582-48x6q/qos.json
Normal file
133
device/centec/x86_64-centec_e582_48x6q-r0/E582-48x6q/qos.json
Normal file
@ -0,0 +1,133 @@
|
||||
{
|
||||
"DSCP_TO_TC_MAP": {
|
||||
"AZURE": {
|
||||
"0":"0",
|
||||
"1":"0",
|
||||
"2":"0",
|
||||
"3":"0",
|
||||
"4":"0",
|
||||
"5":"0",
|
||||
"6":"0",
|
||||
"7":"0",
|
||||
"8":"1",
|
||||
"9":"1",
|
||||
"10":"1",
|
||||
"11":"1",
|
||||
"12":"1",
|
||||
"13":"1",
|
||||
"14":"1",
|
||||
"15":"1",
|
||||
"16":"2",
|
||||
"17":"2",
|
||||
"18":"2",
|
||||
"19":"2",
|
||||
"20":"2",
|
||||
"21":"2",
|
||||
"22":"2",
|
||||
"23":"2",
|
||||
"24":"3",
|
||||
"25":"3",
|
||||
"26":"3",
|
||||
"27":"3",
|
||||
"28":"3",
|
||||
"29":"3",
|
||||
"30":"3",
|
||||
"31":"3",
|
||||
"32":"4",
|
||||
"33":"4",
|
||||
"34":"4",
|
||||
"35":"4",
|
||||
"36":"4",
|
||||
"37":"4",
|
||||
"38":"4",
|
||||
"39":"4",
|
||||
"40":"5",
|
||||
"41":"5",
|
||||
"42":"5",
|
||||
"43":"5",
|
||||
"44":"5",
|
||||
"45":"5",
|
||||
"46":"5",
|
||||
"47":"5",
|
||||
"48":"6",
|
||||
"49":"6",
|
||||
"50":"6",
|
||||
"51":"6",
|
||||
"52":"6",
|
||||
"53":"6",
|
||||
"54":"6",
|
||||
"55":"6",
|
||||
"56":"7",
|
||||
"57":"7",
|
||||
"58":"7",
|
||||
"59":"7",
|
||||
"60":"7",
|
||||
"61":"7",
|
||||
"62":"7",
|
||||
"63":"7"
|
||||
}
|
||||
},
|
||||
"SCHEDULER": {
|
||||
"scheduler.0": {
|
||||
"type":"DWRR",
|
||||
"weight": "25"
|
||||
},
|
||||
"scheduler.1": {
|
||||
"type":"DWRR",
|
||||
"weight": "30"
|
||||
},
|
||||
"scheduler.2": {
|
||||
"type":"DWRR",
|
||||
"weight": "20"
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
"Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54": {
|
||||
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
|
||||
"pfc_enable": "3,4"
|
||||
}
|
||||
},
|
||||
"WRED_PROFILE": {
|
||||
"AZURE_LOSSY": {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"red_max_threshold":"32760",
|
||||
"red_min_threshold":"4095",
|
||||
"yellow_max_threshold":"32760",
|
||||
"yellow_min_threshold":"4095",
|
||||
"green_max_threshold": "32760",
|
||||
"green_min_threshold": "4095"
|
||||
},
|
||||
"AZURE_LOSSLESS": {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"red_max_threshold":"32760",
|
||||
"red_min_threshold":"4095",
|
||||
"yellow_max_threshold":"32760",
|
||||
"yellow_min_threshold":"4095",
|
||||
"green_max_threshold": "32760",
|
||||
"green_min_threshold": "4095"
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
"Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54|0-2": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54|5-7": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
},
|
||||
"Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54|0-2": {
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
|
||||
},
|
||||
|
||||
"Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54|5-7": {
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
|
||||
},
|
||||
"Ethernet1,Ethernet2,Ethernet3,Ethernet4,Ethernet5,Ethernet6,Ethernet7,Ethernet8,Ethernet9,Ethernet10,Ethernet11,Ethernet12,Ethernet13,Ethernet14,Ethernet15,Ethernet16,Ethernet17,Ethernet18,Ethernet19,Ethernet20,Ethernet21,Ethernet22,Ethernet23,Ethernet24,Ethernet25,Ethernet26,Ethernet27,Ethernet28,Ethernet29,Ethernet30,Ethernet31,Ethernet32,Ethernet33,Ethernet34,Ethernet35,Ethernet36,Ethernet37,Ethernet38,Ethernet39,Ethernet40,Ethernet41,Ethernet42,Ethernet43,Ethernet44,Ethernet45,Ethernet46,Ethernet47,Ethernet48,Ethernet49,Ethernet50,Ethernet51,Ethernet52,Ethernet53,Ethernet54|3-4": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.0]",
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSLESS]"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1 +1,2 @@
|
||||
BOARD_CONFIG_FILE_PATH=/etc/centec/E582-48x6q.json
|
||||
SAI_INIT_CONFIG_FILE=/etc/centec/E582-48x6q-chip-profile.txt
|
||||
SAI_HW_PORT_PROFILE_ID_CONFIG_FILE=/etc/centec/E582-48x6q-datapath-cfg.txt
|
||||
|
10
device/centec/x86_64-centec_e582_48x6q-r0/fancontrol
Normal file
10
device/centec/x86_64-centec_e582_48x6q-r0/fancontrol
Normal file
@ -0,0 +1,10 @@
|
||||
# Configuration file generated by pwmconfig, changes will be lost
|
||||
INTERVAL=10
|
||||
DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon5=devices/pci0000:00/0000:00:1f.3/i2c-0/i2c-15/15-002f
|
||||
DEVNAME=hwmon1=coretemp hwmon5=adt7470
|
||||
FCTEMPS=hwmon5/pwm4=hwmon1/temp1_input hwmon5/pwm3=hwmon1/temp1_input hwmon5/pwm2=hwmon1/temp1_input hwmon5/pwm1=hwmon1/temp1_input
|
||||
FCFANS=hwmon5/pwm4=hwmon5/fan4_input hwmon5/pwm3=hwmon5/fan3_input hwmon5/pwm2=hwmon5/fan2_input hwmon5/pwm1=hwmon5/fan1_input
|
||||
MINTEMP=hwmon5/pwm4=20 hwmon5/pwm3=20 hwmon5/pwm2=20 hwmon5/pwm1=20
|
||||
MAXTEMP=hwmon5/pwm4=60 hwmon5/pwm3=60 hwmon5/pwm2=60 hwmon5/pwm1=60
|
||||
MINSTART=hwmon5/pwm4=150 hwmon5/pwm3=150 hwmon5/pwm2=150 hwmon5/pwm1=150
|
||||
MINSTOP=hwmon5/pwm4=0 hwmon5/pwm3=0 hwmon5/pwm2=0 hwmon5/pwm1=100
|
@ -1 +1,2 @@
|
||||
CONSOLE_SPEED=115200
|
||||
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="acpi_enforce_resources=no"
|
||||
|
File diff suppressed because it is too large
Load Diff
31
device/centec/x86_64-centec_e582_48x6q-r0/plugins/eeprom.py
Normal file
31
device/centec/x86_64-centec_e582_48x6q-r0/plugins/eeprom.py
Normal file
@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
#############################################################################
|
||||
# Centec E582-48X6Q
|
||||
#
|
||||
# Platform and model specific eeprom subclass, inherits from the base class,
|
||||
# and provides the followings:
|
||||
# - the eeprom format definition
|
||||
# - specific encoder/decoder if there is special need
|
||||
#############################################################################
|
||||
|
||||
try:
|
||||
import exceptions
|
||||
import binascii
|
||||
import time
|
||||
import optparse
|
||||
import warnings
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
from sonic_eeprom import eeprom_base
|
||||
from sonic_eeprom import eeprom_tlvinfo
|
||||
except ImportError, e:
|
||||
raise ImportError (str(e) + "- required module not found")
|
||||
|
||||
|
||||
class board(eeprom_tlvinfo.TlvInfoDecoder):
|
||||
|
||||
def __init__(self, name, path, cpld_root, ro):
|
||||
self.eeprom_path = "/sys/class/i2c-adapter/i2c-0/0-0057/eeprom"
|
||||
super(board, self).__init__(self.eeprom_path, 0, '', True)
|
153
device/centec/x86_64-centec_e582_48x6q-r0/plugins/led_control.py
Normal file
153
device/centec/x86_64-centec_e582_48x6q-r0/plugins/led_control.py
Normal file
@ -0,0 +1,153 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# led_control.py
|
||||
#
|
||||
# Platform-specific LED control functionality for SONiC
|
||||
#
|
||||
|
||||
try:
|
||||
from sonic_led.led_control_base import LedControlBase
|
||||
import swsssdk
|
||||
import threading
|
||||
import os
|
||||
import logging
|
||||
import struct
|
||||
import time
|
||||
import syslog
|
||||
from socket import *
|
||||
from select import *
|
||||
except ImportError, e:
|
||||
raise ImportError(str(e) + " - required module not found")
|
||||
|
||||
|
||||
def DBG_PRINT(str):
|
||||
syslog.openlog("centec-led")
|
||||
syslog.syslog(syslog.LOG_INFO, str)
|
||||
syslog.closelog()
|
||||
|
||||
class LedControl(LedControlBase):
|
||||
"""Platform specific LED control class"""
|
||||
SONIC_PORT_NAME_PREFIX = "Ethernet"
|
||||
LED_MODE_UP = [11, 1]
|
||||
LED_MODE_DOWN = [7, 2]
|
||||
|
||||
def _initSystemLed(self):
|
||||
try:
|
||||
with open(self.f_led.format("system"), 'w') as led_file:
|
||||
led_file.write("5")
|
||||
DBG_PRINT("init system led to normal")
|
||||
with open(self.f_led.format("idn"), 'w') as led_file:
|
||||
led_file.write("1")
|
||||
DBG_PRINT("init idn led to off")
|
||||
except IOError as e:
|
||||
DBG_PRINT(str(e))
|
||||
|
||||
def _initPanelLed(self):
|
||||
with open(self.f_led.format("port1"), 'r') as led_file:
|
||||
shouldInit = (int(led_file.read()) == 0)
|
||||
|
||||
if shouldInit == True:
|
||||
for (port, ctlid, defmode) in self.led_mapping[1:59]:
|
||||
data = struct.pack('=HHHBBH', 0, 7, 4, ctlid, defmode, port)
|
||||
self.udpClient.sendto(data, ('localhost', 8101))
|
||||
|
||||
data = struct.pack('=HHHBB34B', 0, 3, 36, 34, 0, *[x[0] for x in self.led_mapping[1:35]])
|
||||
self.udpClient.sendto(data, ('localhost', 8101))
|
||||
data = struct.pack('=HHHBB24B', 0, 3, 26, 24, 1, *[x[0] for x in self.led_mapping[35:59]])
|
||||
self.udpClient.sendto(data, ('localhost', 8101))
|
||||
|
||||
data = struct.pack('=HHHB', 0, 5, 1, 1)
|
||||
self.udpClient.sendto(data, ('localhost', 8101))
|
||||
|
||||
for idx in range(1, 55):
|
||||
(port, ctlid, defmode) = self.led_mapping[idx]
|
||||
with open(self.f_led.format("port{}".format(idx)), 'w') as led_file:
|
||||
led_file.write(str(defmode))
|
||||
DBG_PRINT("init port{} led to mode={}".format(idx, defmode))
|
||||
|
||||
for idx in range(1, 55):
|
||||
(port, ctlid, defmode) = self.led_mapping[idx]
|
||||
with open(self.f_led.format("port{}".format(idx)), 'r') as led_file:
|
||||
defmode = int(led_file.read())
|
||||
data = struct.pack('=HHHBBH', 0, 7, 4, ctlid, defmode, port)
|
||||
self.udpClient.sendto(data, ('localhost', 8101))
|
||||
DBG_PRINT("init port{} led to mode={}".format(idx, defmode))
|
||||
|
||||
def _initDefaultConfig(self):
|
||||
DBG_PRINT("start init led")
|
||||
while True:
|
||||
try:
|
||||
r_sel = [self.udpClient]
|
||||
echo_req = struct.pack('=HHH', 0, 1, 0)
|
||||
self.udpClient.sendto(echo_req, ('localhost', 8101))
|
||||
result = select(r_sel, [], [], 1)
|
||||
if self.udpClient in result[0]:
|
||||
echo_rsp, srv_addr = self.udpClient.recvfrom(1024)
|
||||
if echo_rsp:
|
||||
break
|
||||
DBG_PRINT("connect to sdk rpc server timeout, try again.")
|
||||
except IOError as e:
|
||||
DBG_PRINT(str(e))
|
||||
|
||||
DBG_PRINT("connect to sdk rpc server success.")
|
||||
|
||||
self._initSystemLed()
|
||||
self._initPanelLed()
|
||||
|
||||
DBG_PRINT("init led done")
|
||||
|
||||
|
||||
# Helper method to map SONiC port name to index
|
||||
def _port_name_to_index(self, port_name):
|
||||
# Strip "Ethernet" off port name
|
||||
if not port_name.startswith(self.SONIC_PORT_NAME_PREFIX):
|
||||
return -1
|
||||
|
||||
port_idx = int(port_name[len(self.SONIC_PORT_NAME_PREFIX):])
|
||||
return port_idx
|
||||
|
||||
def _port_state_to_mode(self, port_idx, state):
|
||||
if state == "up":
|
||||
return self.LED_MODE_UP[0] if (port_idx < 49) else self.LED_MODE_UP[1]
|
||||
else:
|
||||
return self.LED_MODE_DOWN[0] if (port_idx < 49) else self.LED_MODE_DOWN[1]
|
||||
|
||||
def _port_led_mode_update(self, port_idx, ledMode):
|
||||
with open(self.f_led.format("port{}".format(port_idx)), 'w') as led_file:
|
||||
led_file.write(str(ledMode))
|
||||
(port, ctlid) = (self.led_mapping[port_idx][0], self.led_mapping[port_idx][1])
|
||||
data = struct.pack('=HHHBBH', 0, 7, 4, ctlid, ledMode, port)
|
||||
self.udpClient.sendto(data, ('localhost', 8101))
|
||||
|
||||
# Concrete implementation of port_link_state_change() method
|
||||
def port_link_state_change(self, portname, state):
|
||||
port_idx = self._port_name_to_index(portname)
|
||||
ledMode = self._port_state_to_mode(port_idx, state)
|
||||
with open(self.f_led.format("port{}".format(port_idx)), 'r') as led_file:
|
||||
saveMode = int(led_file.read())
|
||||
|
||||
if ledMode == saveMode:
|
||||
return
|
||||
|
||||
self._port_led_mode_update(port_idx, ledMode)
|
||||
DBG_PRINT("update {} led mode from {} to {}".format(portname, saveMode, ledMode))
|
||||
|
||||
# Constructor
|
||||
def __init__(self):
|
||||
# [macid, ctlid, defaultmode]
|
||||
self.led_mapping = [(0, 0, 0)] # resv
|
||||
self.led_mapping.extend([(4, 0, 7), (5, 0, 7), (6, 0, 7), (8, 0, 7), (9, 0, 7), (10, 0, 7), (12, 0, 7), (13, 0, 7)]) # panel port 1~8
|
||||
self.led_mapping.extend([(14, 0, 7), (16, 0, 7), (17, 0, 7), (18, 0, 7), (20, 0, 7), (21, 0, 7), (22, 0, 7), (24, 0, 7)]) # panel port 9~16
|
||||
self.led_mapping.extend([(25, 0, 7), (26, 0, 7), (28, 0, 7), (30, 0, 7), (31, 0, 7), (32, 0, 7), (34, 0, 7), (35, 0, 7)]) # panel port 17~24
|
||||
self.led_mapping.extend([(48, 0, 7), (49, 0, 7), (51, 0, 7), (36, 0, 7), (37, 0, 7), (39, 0, 7), (55, 0, 7), (54, 0, 7)]) # panel port 25~32
|
||||
self.led_mapping.extend([(53, 0, 7), (52, 0, 7), (52, 1, 7), (53, 1, 7), (54, 1, 7), (55, 1, 7), (38, 1, 7), (37, 1, 7)]) # panel port 33~40
|
||||
self.led_mapping.extend([(36, 1, 7), (51, 1, 7), (50, 1, 7), (49, 1, 7), (48, 1, 7), (34, 1, 7), (33, 1, 7), (32, 1, 7)]) # panel port 41~48
|
||||
self.led_mapping.extend([(28, 1, 2), (24, 1, 2), (20, 1, 2), (12, 1, 2), (8, 1, 2), (4, 1, 2)]) # panel port 49~54
|
||||
self.led_mapping.extend([(0, 1, 2), (0, 1, 2), (0, 1, 2), (0, 1, 2), (0, 1, 2), (0, 1, 2)])
|
||||
|
||||
self.f_led = "/sys/class/leds/{}/brightness"
|
||||
|
||||
self.udpClient = socket(AF_INET, SOCK_DGRAM)
|
||||
|
||||
self._initDefaultConfig()
|
||||
|
74
device/centec/x86_64-centec_e582_48x6q-r0/plugins/psuutil.py
Normal file
74
device/centec/x86_64-centec_e582_48x6q-r0/plugins/psuutil.py
Normal file
@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
#############################################################################
|
||||
# Mellanox
|
||||
#
|
||||
# Module contains an implementation of SONiC PSU Base API and
|
||||
# provides the PSUs status which are available in the platform
|
||||
#
|
||||
#############################################################################
|
||||
|
||||
import os.path
|
||||
|
||||
try:
|
||||
from sonic_psu.psu_base import PsuBase
|
||||
except ImportError as e:
|
||||
raise ImportError (str(e) + "- required module not found")
|
||||
|
||||
class PsuUtil(PsuBase):
|
||||
"""Platform-specific PSUutil class"""
|
||||
|
||||
def __init__(self):
|
||||
PsuBase.__init__(self)
|
||||
|
||||
self.psu_path = "/sys/class/psu/psu{}/"
|
||||
self.psu_presence = "psu_presence"
|
||||
self.psu_oper_status = "psu_status"
|
||||
|
||||
def get_num_psus(self):
|
||||
"""
|
||||
Retrieves the number of PSUs available on the device
|
||||
|
||||
:return: An integer, the number of PSUs available on the device
|
||||
"""
|
||||
return 2
|
||||
|
||||
def get_psu_status(self, index):
|
||||
"""
|
||||
Retrieves the oprational status of power supply unit (PSU) defined
|
||||
by 1-based index <index>
|
||||
|
||||
:param index: An integer, 1-based index of the PSU of which to query status
|
||||
:return: Boolean, True if PSU is operating properly, False if PSU is faulty
|
||||
"""
|
||||
if index is None:
|
||||
return False
|
||||
|
||||
status = 0
|
||||
try:
|
||||
with open(self.psu_path.format(index) + self.psu_oper_status, 'r') as power_status:
|
||||
status = int(power_status.read())
|
||||
except IOError:
|
||||
return False
|
||||
|
||||
return status == 0
|
||||
|
||||
def get_psu_presence(self, index):
|
||||
"""
|
||||
Retrieves the presence status of power supply unit (PSU) defined
|
||||
by 1-based index <index>
|
||||
|
||||
:param index: An integer, 1-based index of the PSU of which to query status
|
||||
:return: Boolean, True if PSU is plugged, False if not
|
||||
"""
|
||||
if index is None:
|
||||
return False
|
||||
|
||||
status = 0
|
||||
try:
|
||||
with open(self.psu_path.format(index) + self.psu_presence, 'r') as presence_status:
|
||||
status = int(presence_status.read())
|
||||
except IOError:
|
||||
return False
|
||||
|
||||
return status == 0
|
162
device/centec/x86_64-centec_e582_48x6q-r0/plugins/sfputil.py
Normal file
162
device/centec/x86_64-centec_e582_48x6q-r0/plugins/sfputil.py
Normal file
@ -0,0 +1,162 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# sfputil.py
|
||||
#
|
||||
# Platform-specific SFP transceiver interface for SONiC
|
||||
#
|
||||
|
||||
try:
|
||||
import time
|
||||
import os
|
||||
import logging
|
||||
import struct
|
||||
import syslog
|
||||
from socket import *
|
||||
from select import *
|
||||
from sonic_sfp.sfputilbase import SfpUtilBase
|
||||
except ImportError as e:
|
||||
raise ImportError("%s - required module not found" % str(e))
|
||||
|
||||
|
||||
|
||||
def DBG_PRINT(str):
|
||||
print str + "\n"
|
||||
|
||||
|
||||
class SfpUtil(SfpUtilBase):
|
||||
"""Platform-specific SfpUtil class"""
|
||||
SONIC_PORT_NAME_PREFIX = "Ethernet"
|
||||
PORT_START = 1
|
||||
PORT_END = 54
|
||||
PORTS_IN_BLOCK = 54
|
||||
|
||||
@property
|
||||
def port_start(self):
|
||||
return self.PORT_START
|
||||
|
||||
@property
|
||||
def port_end(self):
|
||||
return self.PORT_END
|
||||
|
||||
@property
|
||||
def qsfp_ports(self):
|
||||
return range(49, self.PORTS_IN_BLOCK + 1)
|
||||
|
||||
@property
|
||||
def port_to_eeprom_mapping(self):
|
||||
return self.eeprom_mapping
|
||||
|
||||
def is_logical_port(self, port_name):
|
||||
return True
|
||||
|
||||
def get_logical_to_physical(self, port_name):
|
||||
if not port_name.startswith(self.SONIC_PORT_NAME_PREFIX):
|
||||
return None
|
||||
|
||||
port_idx = int(port_name[len(self.SONIC_PORT_NAME_PREFIX):])
|
||||
|
||||
return [port_idx]
|
||||
|
||||
def get_eeprom_data(self, port):
|
||||
(ctlid, devid) = self.fiber_mapping[port]
|
||||
offset = (128 if port in self.qsfp_ports else 0)
|
||||
r_sel = [self.udpClient]
|
||||
req = struct.pack('=HHHBBHIBBBBI',
|
||||
0, 9, 16, # lchip/msgtype/msglen
|
||||
ctlid, # uint8 ctl_id
|
||||
devid, # uint8 slave_dev_id
|
||||
0x50, # uint16 dev_addr
|
||||
(1<<devid), # uint32 slave_bitmap
|
||||
offset, # uint8 offset
|
||||
95, # uint8 length
|
||||
0xf, # uint8 i2c_switch_id
|
||||
0, # uint8 access_switch
|
||||
95 # uint32 buf_length
|
||||
)
|
||||
self.udpClient.sendto(req, ('localhost', 8101))
|
||||
result = select(r_sel, [], [], 1)
|
||||
if self.udpClient in result[0]:
|
||||
rsp, addr = self.udpClient.recvfrom(1024)
|
||||
if rsp:
|
||||
rsp_data = struct.unpack('=HHHBBHIBBBBIi512B', rsp)
|
||||
if rsp_data[12] != 0:
|
||||
return None
|
||||
if port in self.qsfp_ports:
|
||||
return buffer(bytearray([0]*128), 0, 128) + buffer(rsp, 26, 512)
|
||||
return buffer(rsp, 26, 512)
|
||||
return None
|
||||
|
||||
def __init__(self):
|
||||
"""[ctlid, slavedevid]"""
|
||||
self.fiber_mapping = [(0, 0)] # res
|
||||
self.fiber_mapping.extend([(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (0, 7)]) # panel port 1~8
|
||||
self.fiber_mapping.extend([(0, 14), (0, 13), (0, 15), (0, 12), (0, 8), (0, 11), (0, 9), (0, 10)]) # panel port 9~16
|
||||
self.fiber_mapping.extend([(0, 22), (0, 21), (0, 23), (0, 20), (0, 16), (0, 19), (0, 17), (0, 18)]) # panel port 17~24
|
||||
self.fiber_mapping.extend([(1, 4), (1, 3), (1, 5), (1, 2), (1, 6), (1, 1), (1, 7), (1, 0)]) # panel port 25~32
|
||||
self.fiber_mapping.extend([(1, 8), (1, 15), (1, 9), (1, 14), (1, 10), (1, 13), (1, 11), (1, 12)]) # panel port 33~40
|
||||
self.fiber_mapping.extend([(1, 22), (1, 21), (1, 23), (1, 20), (1, 16), (1, 19), (1, 17), (1, 18)]) # panel port 41~48
|
||||
self.fiber_mapping.extend([(1, 28), (1, 29), (1, 26), (1, 27), (1, 24), (1, 25)]) # panel port 49~54
|
||||
|
||||
self.udpClient = socket(AF_INET, SOCK_DGRAM)
|
||||
self.eeprom_mapping = {}
|
||||
self.f_sfp_present = "/sys/class/sfp/sfp{}/sfp_presence"
|
||||
self.f_sfp_enable = "/sys/class/sfp/sfp{}/sfp_enable"
|
||||
|
||||
for x in range(1, self.port_end + 1):
|
||||
self.eeprom_mapping[x] = "/var/cache/sonic/sfp/sfp{}_eeprom".format(x)
|
||||
|
||||
try:
|
||||
if not os.path.exists("/var/cache/sonic/sfp"):
|
||||
os.makedirs("/var/cache/sonic/sfp", 0777)
|
||||
for x in range(1, self.port_end + 1):
|
||||
if not self.get_presence(x):
|
||||
if os.path.exists(self.eeprom_mapping[x]):
|
||||
os.remove(self.eeprom_mapping[x])
|
||||
continue
|
||||
data = self.get_eeprom_data(x)
|
||||
if data:
|
||||
with open(self.eeprom_mapping[x], 'w') as sfp_eeprom:
|
||||
sfp_eeprom.write(data)
|
||||
else:
|
||||
DBG_PRINT("get sfp{} eeprom data failed.".format(x))
|
||||
break
|
||||
except IOError as e:
|
||||
DBG_PRINT(str(e))
|
||||
|
||||
SfpUtilBase.__init__(self)
|
||||
|
||||
def get_presence(self, port_num):
|
||||
# Check for invalid port_num
|
||||
if port_num < self.port_start or port_num > self.port_end:
|
||||
return False
|
||||
try:
|
||||
with open(self.f_sfp_present.format(port_num), 'r') as sfp_file:
|
||||
return 1 == int(sfp_file.read())
|
||||
except IOError as e:
|
||||
DBG_PRINT(str(e))
|
||||
|
||||
return False
|
||||
|
||||
def get_low_power_mode(self, port_num):
|
||||
# Check for invalid port_num
|
||||
if port_num < self.port_start or port_num > self.port_end:
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
def set_low_power_mode(self, port_num, lpmode):
|
||||
# Check for invalid port_num
|
||||
if port_num < self.port_start or port_num > self.port_end:
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
def reset(self, port_num):
|
||||
# Check for invalid port_num
|
||||
if port_num < self.port_start or port_num > self.port_end:
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
def get_transceiver_change_event(self, timeout=0):
|
||||
return False, {}
|
@ -1 +1,3 @@
|
||||
BOARD_CONFIG_FILE_PATH=/etc/centec/ES6428A-X48Q2H4.json
|
||||
SAI_INIT_CONFIG_FILE=/etc/centec/ES6428A-X48Q2H4-chip-profile.txt
|
||||
SAI_HW_PORT_PROFILE_ID_CONFIG_FILE=/etc/centec/ES6428A-X48Q2H4-datapath-cfg.txt
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,2 @@
|
||||
{%- set default_topo = 't0' %}
|
||||
{%- include 'buffers_config.j2' %}
|
@ -0,0 +1,69 @@
|
||||
{% set default_cable = '5m' %}
|
||||
{% set ingress_lossless_pool_size = '20971328' %}
|
||||
{% set ingress_lossy_pool_size = '20971328' %}
|
||||
{% set egress_lossless_pool_size = '20971328' %}
|
||||
{% set egress_lossy_pool_size = '20971328' %}
|
||||
|
||||
{%- 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": "{{ ingress_lossless_pool_size }}",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"ingress_lossy_pool": {
|
||||
"size": "{{ ingress_lossy_pool_size }}",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "{{ egress_lossless_pool_size }}",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "{{ egress_lossy_pool_size }}",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"xon":"78400",
|
||||
"xoff":"132160",
|
||||
"size":"3584",
|
||||
"static_th":"82880"
|
||||
},
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossy_pool]",
|
||||
"size":"3584",
|
||||
"dynamic_th":"-1"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"3584",
|
||||
"dynamic_th":"-4"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
||||
|
||||
{# the typo of generate_pg_profils dued to buffers_config.j2 #}
|
||||
{# Default, we do not bind any buffer profiles. #}
|
||||
{%- macro generate_pg_profils(port_names) %}
|
||||
"BUFFER_PG": {
|
||||
}
|
||||
{%- endmacro %}
|
||||
|
||||
{# Default, we do not bind any buffer profiles. #}
|
||||
{%- macro generate_queue_buffers(port_names) %}
|
||||
"BUFFER_QUEUE": {
|
||||
}
|
||||
{%- endmacro %}
|
@ -0,0 +1,69 @@
|
||||
{% set default_cable = '5m' %}
|
||||
{% set ingress_lossless_pool_size = '20971328' %}
|
||||
{% set ingress_lossy_pool_size = '20971328' %}
|
||||
{% set egress_lossless_pool_size = '20971328' %}
|
||||
{% set egress_lossy_pool_size = '20971328' %}
|
||||
|
||||
{%- 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": "{{ ingress_lossless_pool_size }}",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"ingress_lossy_pool": {
|
||||
"size": "{{ ingress_lossy_pool_size }}",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "{{ egress_lossless_pool_size }}",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "{{ egress_lossy_pool_size }}",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"xon":"78400",
|
||||
"xoff":"132160",
|
||||
"size":"3584",
|
||||
"static_th":"82880"
|
||||
},
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossy_pool]",
|
||||
"size":"3584",
|
||||
"dynamic_th":"-1"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"3584",
|
||||
"dynamic_th":"-4"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
||||
|
||||
{# the typo of generate_pg_profils dued to buffers_config.j2 #}
|
||||
{# Default, we do not bind any buffer profiles. #}
|
||||
{%- macro generate_pg_profils(port_names) %}
|
||||
"BUFFER_PG": {
|
||||
}
|
||||
{%- endmacro %}
|
||||
|
||||
{# Default, we do not bind any buffer profiles. #}
|
||||
{%- macro generate_queue_buffers(port_names) %}
|
||||
"BUFFER_QUEUE": {
|
||||
}
|
||||
{%- endmacro %}
|
@ -0,0 +1,17 @@
|
||||
# PG lossless profiles.
|
||||
# speed cable size xon xoff threshold
|
||||
10000 5m 3584 32256 59136 36736
|
||||
25000 5m 3584 41216 68096 45696
|
||||
40000 5m 3584 47488 74368 51968
|
||||
50000 5m 3584 52864 79744 57344
|
||||
100000 5m 3584 78400 132160 82880
|
||||
10000 40m 3584 32256 59136 36736
|
||||
25000 40m 3584 41216 68096 45696
|
||||
40000 40m 3584 47488 74368 51968
|
||||
50000 40m 3584 52864 79744 57344
|
||||
100000 40m 3584 78400 132160 82880
|
||||
10000 300m 3584 32256 65856 36736
|
||||
25000 300m 3584 41216 84672 45696
|
||||
40000 300m 3584 47488 101024 51968
|
||||
50000 300m 3584 52864 113120 57344
|
||||
100000 300m 3584 78400 198688 82880
|
@ -308,6 +308,40 @@ phy set pre-emphasis unit=0 portlist=130 lane-cnt=1 property=c2 data=0x01
|
||||
phy set pre-emphasis unit=0 portlist=130 lane-cnt=1 property=cn1 data=0x01
|
||||
phy set pre-emphasis unit=0 portlist=130 lane-cnt=1 property=c0 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=130 lane-cnt=1 property=c1 data=0x03
|
||||
phy set mdio portlist=0 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=1 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=2 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=3 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=4 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=5 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=6 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=7 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=8 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=9 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=10 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=11 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=12 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=13 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=14 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=15 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=16 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=17 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=18 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=19 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=20 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=21 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=22 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=23 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=24 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=25 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=26 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=27 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=28 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=29 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=30 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=31 devad=0x1E addr=0x2 data=0x8000
|
||||
phy set mdio portlist=129 devad=0x1E addr=0x2 data=0x0000
|
||||
phy set mdio portlist=130 devad=0x1E addr=0x2 data=0x0000
|
||||
port set property unit=0 portlist=0-31 speed=100g
|
||||
port set property unit=0 portlist=129-130 speed=10g
|
||||
port set property unit=0 portlist=0-31 medium-type=sr4
|
||||
|
@ -1,153 +1,136 @@
|
||||
{
|
||||
"TC_TO_PRIORITY_GROUP_MAP": {
|
||||
"AZURE": {
|
||||
"0": "1",
|
||||
"1": "0",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"MAP_PFC_PRIORITY_TO_QUEUE": {
|
||||
"AZURE": {
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"TC_TO_QUEUE_MAP": {
|
||||
"AZURE": {
|
||||
"0": "1",
|
||||
"1": "0",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"DSCP_TO_TC_MAP": {
|
||||
"AZURE": {
|
||||
"0":"1",
|
||||
"1":"0",
|
||||
"2":"0",
|
||||
"3":"3",
|
||||
"4":"4",
|
||||
"5":"0",
|
||||
"6":"0",
|
||||
"7":"0",
|
||||
"8":"1",
|
||||
"9":"0",
|
||||
"10":"0",
|
||||
"11":"0",
|
||||
"12":"0",
|
||||
"13":"0",
|
||||
"14":"0",
|
||||
"15":"0",
|
||||
"16":"0",
|
||||
"17":"0",
|
||||
"18":"0",
|
||||
"19":"0",
|
||||
"20":"0",
|
||||
"21":"0",
|
||||
"22":"0",
|
||||
"23":"0",
|
||||
"24":"0",
|
||||
"25":"0",
|
||||
"26":"0",
|
||||
"27":"0",
|
||||
"28":"0",
|
||||
"29":"0",
|
||||
"30":"0",
|
||||
"31":"0",
|
||||
"32":"0",
|
||||
"33":"0",
|
||||
"34":"0",
|
||||
"35":"0",
|
||||
"36":"0",
|
||||
"37":"0",
|
||||
"38":"0",
|
||||
"39":"0",
|
||||
"40":"0",
|
||||
"41":"0",
|
||||
"42":"0",
|
||||
"43":"0",
|
||||
"44":"0",
|
||||
"45":"0",
|
||||
"46":"0",
|
||||
"47":"0",
|
||||
"48":"0",
|
||||
"49":"0",
|
||||
"50":"0",
|
||||
"51":"0",
|
||||
"52":"0",
|
||||
"53":"0",
|
||||
"54":"0",
|
||||
"55":"0",
|
||||
"56":"0",
|
||||
"57":"0",
|
||||
"58":"0",
|
||||
"59":"0",
|
||||
"60":"0",
|
||||
"61":"0",
|
||||
"62":"0",
|
||||
"63":"0"
|
||||
}
|
||||
},
|
||||
"SCHEDULER": {
|
||||
"scheduler.0" : {
|
||||
"type":"DWRR",
|
||||
"weight": "25"
|
||||
},
|
||||
"scheduler.1" : {
|
||||
"type":"DWRR",
|
||||
"weight": "30"
|
||||
},
|
||||
"scheduler.2" : {
|
||||
"type":"DWRR",
|
||||
"weight": "20"
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124": {
|
||||
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
|
||||
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
|
||||
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
|
||||
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
|
||||
"pfc_enable": "3,4"
|
||||
}
|
||||
},
|
||||
"WRED_PROFILE": {
|
||||
"AZURE_LOSSY" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"wred_red_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"516096",
|
||||
"red_min_threshold":"516096",
|
||||
"yellow_max_threshold":"516096",
|
||||
"yellow_min_threshold":"516096",
|
||||
"green_max_threshold": "184128",
|
||||
"green_min_threshold": "184128"
|
||||
},
|
||||
"AZURE_LOSSLESS" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"wred_red_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"516096",
|
||||
"red_min_threshold":"516096",
|
||||
"yellow_max_threshold":"516096",
|
||||
"yellow_min_threshold":"516096",
|
||||
"green_max_threshold": "184128",
|
||||
"green_min_threshold": "184128"
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|3-4" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.0]",
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|0" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|1" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
"TC_TO_PRIORITY_GROUP_MAP": {
|
||||
"AZURE": {
|
||||
"0": "1",
|
||||
"1": "0",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"MAP_PFC_PRIORITY_TO_QUEUE": {
|
||||
"AZURE": {
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"TC_TO_QUEUE_MAP": {
|
||||
"AZURE": {
|
||||
"0": "1",
|
||||
"1": "0",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"DSCP_TO_TC_MAP": {
|
||||
"AZURE": {
|
||||
"0":"1",
|
||||
"1":"0",
|
||||
"2":"0",
|
||||
"3":"3",
|
||||
"4":"4",
|
||||
"5":"0",
|
||||
"6":"0",
|
||||
"7":"0",
|
||||
"8":"1",
|
||||
"9":"0",
|
||||
"10":"0",
|
||||
"11":"0",
|
||||
"12":"0",
|
||||
"13":"0",
|
||||
"14":"0",
|
||||
"15":"0",
|
||||
"16":"0",
|
||||
"17":"0",
|
||||
"18":"0",
|
||||
"19":"0",
|
||||
"20":"0",
|
||||
"21":"0",
|
||||
"22":"0",
|
||||
"23":"0",
|
||||
"24":"0",
|
||||
"25":"0",
|
||||
"26":"0",
|
||||
"27":"0",
|
||||
"28":"0",
|
||||
"29":"0",
|
||||
"30":"0",
|
||||
"31":"0",
|
||||
"32":"0",
|
||||
"33":"0",
|
||||
"34":"0",
|
||||
"35":"0",
|
||||
"36":"0",
|
||||
"37":"0",
|
||||
"38":"0",
|
||||
"39":"0",
|
||||
"40":"0",
|
||||
"41":"0",
|
||||
"42":"0",
|
||||
"43":"0",
|
||||
"44":"0",
|
||||
"45":"0",
|
||||
"46":"0",
|
||||
"47":"0",
|
||||
"48":"0",
|
||||
"49":"0",
|
||||
"50":"0",
|
||||
"51":"0",
|
||||
"52":"0",
|
||||
"53":"0",
|
||||
"54":"0",
|
||||
"55":"0",
|
||||
"56":"0",
|
||||
"57":"0",
|
||||
"58":"0",
|
||||
"59":"0",
|
||||
"60":"0",
|
||||
"61":"0",
|
||||
"62":"0",
|
||||
"63":"0"
|
||||
}
|
||||
},
|
||||
"SCHEDULER": {
|
||||
"scheduler.0" : {
|
||||
"type":"DWRR",
|
||||
"weight": "25"
|
||||
},
|
||||
"scheduler.1" : {
|
||||
"type":"DWRR",
|
||||
"weight": "30"
|
||||
},
|
||||
"scheduler.2" : {
|
||||
"type":"DWRR",
|
||||
"weight": "20"
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
},
|
||||
"WRED_PROFILE": {
|
||||
"AZURE_LOSSY" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"wred_red_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"516096",
|
||||
"red_min_threshold":"516096",
|
||||
"yellow_max_threshold":"516096",
|
||||
"yellow_min_threshold":"516096",
|
||||
"green_max_threshold": "184128",
|
||||
"green_min_threshold": "184128"
|
||||
},
|
||||
"AZURE_LOSSLESS" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"wred_red_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"516096",
|
||||
"red_min_threshold":"516096",
|
||||
"yellow_max_threshold":"516096",
|
||||
"yellow_min_threshold":"516096",
|
||||
"green_max_threshold": "184128",
|
||||
"green_min_threshold": "184128"
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
}
|
||||
}
|
||||
|
@ -1,55 +1,6 @@
|
||||
<DeviceMiniGraph xmlns="Microsoft.Search.Autopilot.Evolution" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<CpgDec>
|
||||
<IsisRouters xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution"/>
|
||||
<PeeringSessions>
|
||||
<BGPSession>
|
||||
<StartRouter>OCPSCH0104001MS</StartRouter>
|
||||
<StartPeer>10.10.1.26</StartPeer>
|
||||
<EndRouter>OCPSCH01040GGLF</EndRouter>
|
||||
<EndPeer>10.10.1.25</EndPeer>
|
||||
<Multihop>1</Multihop>
|
||||
<HoldTime>10</HoldTime>
|
||||
<KeepAliveTime>3</KeepAliveTime>
|
||||
</BGPSession>
|
||||
<BGPSession>
|
||||
<StartRouter>OCPSCH0104002MS</StartRouter>
|
||||
<StartPeer>10.10.2.26</StartPeer>
|
||||
<EndRouter>OCPSCH01040GGLF</EndRouter>
|
||||
<EndPeer>10.10.2.25</EndPeer>
|
||||
<Multihop>1</Multihop>
|
||||
<HoldTime>10</HoldTime>
|
||||
<KeepAliveTime>3</KeepAliveTime>
|
||||
</BGPSession>
|
||||
</PeeringSessions>
|
||||
<Routers xmlns:a="http://schemas.datacontract.org/2004/07/Microsoft.Search.Autopilot.Evolution">
|
||||
<a:BGPRouterDeclaration>
|
||||
<a:ASN>64536</a:ASN>
|
||||
<a:Hostname>OCPSCH01040GGLF</a:Hostname>
|
||||
<a:Peers>
|
||||
<BGPPeer>
|
||||
<Address>10.10.1.26</Address>
|
||||
<RouteMapIn i:nil="true"/>
|
||||
<RouteMapOut i:nil="true"/>
|
||||
</BGPPeer>
|
||||
<BGPPeer>
|
||||
<Address>10.10.2.26</Address>
|
||||
<RouteMapIn i:nil="true"/>
|
||||
<RouteMapOut i:nil="true"/>
|
||||
</BGPPeer>
|
||||
</a:Peers>
|
||||
<a:RouteMaps/>
|
||||
</a:BGPRouterDeclaration>
|
||||
<a:BGPRouterDeclaration>
|
||||
<a:ASN>64542</a:ASN>
|
||||
<a:Hostname>OCPSCH0104001MS</a:Hostname>
|
||||
<a:RouteMaps/>
|
||||
</a:BGPRouterDeclaration>
|
||||
<a:BGPRouterDeclaration>
|
||||
<a:ASN>64543</a:ASN>
|
||||
<a:Hostname>OCPSCH0104002MS</a:Hostname>
|
||||
<a:RouteMaps/>
|
||||
</a:BGPRouterDeclaration>
|
||||
</Routers>
|
||||
</CpgDec>
|
||||
<DpgDec>
|
||||
<DeviceDataPlaneInfo>
|
||||
@ -72,18 +23,7 @@
|
||||
<Hostname>OCPSCH01040GGLF</Hostname>
|
||||
<PortChannelInterfaces/>
|
||||
<VlanInterfaces/>
|
||||
<IPInterfaces>
|
||||
<IPInterface>
|
||||
<Name i:nil="true"/>
|
||||
<AttachTo>Ethernet0</AttachTo>
|
||||
<Prefix>10.10.1.25/30</Prefix>
|
||||
</IPInterface>
|
||||
<IPInterface>
|
||||
<Name i:nil="true"/>
|
||||
<AttachTo>Ethernet4</AttachTo>
|
||||
<Prefix>10.10.2.25/30</Prefix>
|
||||
</IPInterface>
|
||||
</IPInterfaces>
|
||||
<IPInterfaces/>
|
||||
<DataAcls/>
|
||||
<AclInterfaces/>
|
||||
<DownstreamSummaries/>
|
||||
@ -91,24 +31,7 @@
|
||||
</DeviceDataPlaneInfo>
|
||||
</DpgDec>
|
||||
<PngDec>
|
||||
<DeviceInterfaceLinks>
|
||||
<DeviceLinkBase i:type="DeviceInterfaceLink">
|
||||
<Bandwidth>40000</Bandwidth>
|
||||
<ElementType>DeviceInterfaceLink</ElementType>
|
||||
<EndDevice>OCPSCH0104001MS</EndDevice>
|
||||
<EndPort>Ethernet24</EndPort>
|
||||
<StartDevice>OCPSCH01040GGLF</StartDevice>
|
||||
<StartPort>Ethernet0</StartPort>
|
||||
</DeviceLinkBase>
|
||||
<DeviceLinkBase i:type="DeviceInterfaceLink">
|
||||
<Bandwidth>40000</Bandwidth>
|
||||
<ElementType>DeviceInterfaceLink</ElementType>
|
||||
<EndDevice>OCPSCH0104002MS</EndDevice>
|
||||
<EndPort>Ethernet24</EndPort>
|
||||
<StartDevice>OCPSCH01040GGLF</StartDevice>
|
||||
<StartPort>Ethernet4</StartPort>
|
||||
</DeviceLinkBase>
|
||||
</DeviceInterfaceLinks>
|
||||
<DeviceInterfaceLinks/>
|
||||
<Devices>
|
||||
<Device i:type="LeafRouter">
|
||||
<Hostname>OCPSCH01040GGLF</Hostname>
|
||||
@ -136,11 +59,6 @@
|
||||
<a:Reference i:nil="true"/>
|
||||
<a:Value></a:Value>
|
||||
</a:DeviceProperty>
|
||||
<a:DeviceProperty>
|
||||
<a:Name>ErspanDestinationIpv4</a:Name>
|
||||
<a:Reference i:nil="true"/>
|
||||
<a:Value>2.2.2.2</a:Value>
|
||||
</a:DeviceProperty>
|
||||
</a:Properties>
|
||||
</a:DeviceMetadata>
|
||||
</Devices>
|
||||
|
@ -185,3 +185,6 @@ class SfpUtil(SfpUtilBase):
|
||||
gpio_file.close()
|
||||
|
||||
return True
|
||||
|
||||
def get_transceiver_change_event(self, timeout=0):
|
||||
raise NotImplementedError
|
||||
|
@ -0,0 +1,2 @@
|
||||
{%- set default_topo = 't0' %}
|
||||
{%- include 'buffers_config.j2' %}
|
@ -0,0 +1,69 @@
|
||||
{% set default_cable = '5m' %}
|
||||
{% set ingress_lossless_pool_size = '20971328' %}
|
||||
{% set ingress_lossy_pool_size = '20971328' %}
|
||||
{% set egress_lossless_pool_size = '20971328' %}
|
||||
{% set egress_lossy_pool_size = '20971328' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{%- for port_idx in range(0, 64) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx*4)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "{{ ingress_lossless_pool_size }}",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"ingress_lossy_pool": {
|
||||
"size": "{{ ingress_lossy_pool_size }}",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "{{ egress_lossless_pool_size }}",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "{{ egress_lossy_pool_size }}",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"xon":"78400",
|
||||
"xoff":"132160",
|
||||
"size":"3584",
|
||||
"static_th":"82880"
|
||||
},
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossy_pool]",
|
||||
"size":"3584",
|
||||
"dynamic_th":"-1"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"3584",
|
||||
"dynamic_th":"-4"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
||||
|
||||
{# the typo of generate_pg_profils dued to buffers_config.j2 #}
|
||||
{# Default, we do not bind any buffer profiles. #}
|
||||
{%- macro generate_pg_profils(port_names) %}
|
||||
"BUFFER_PG": {
|
||||
}
|
||||
{%- endmacro %}
|
||||
|
||||
{# Default, we do not bind any buffer profiles. #}
|
||||
{%- macro generate_queue_buffers(port_names) %}
|
||||
"BUFFER_QUEUE": {
|
||||
}
|
||||
{%- endmacro %}
|
@ -0,0 +1,69 @@
|
||||
{% set default_cable = '5m' %}
|
||||
{% set ingress_lossless_pool_size = '20971328' %}
|
||||
{% set ingress_lossy_pool_size = '20971328' %}
|
||||
{% set egress_lossless_pool_size = '20971328' %}
|
||||
{% set egress_lossy_pool_size = '20971328' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{%- for port_idx in range(0, 64) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx*4)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "{{ ingress_lossless_pool_size }}",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"ingress_lossy_pool": {
|
||||
"size": "{{ ingress_lossy_pool_size }}",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "{{ egress_lossless_pool_size }}",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "{{ egress_lossy_pool_size }}",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
}
|
||||
},
|
||||
"BUFFER_PROFILE": {
|
||||
"ingress_lossless_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
|
||||
"xon":"78400",
|
||||
"xoff":"132160",
|
||||
"size":"3584",
|
||||
"static_th":"82880"
|
||||
},
|
||||
"ingress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|ingress_lossy_pool]",
|
||||
"size":"3584",
|
||||
"dynamic_th":"-1"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"3584",
|
||||
"dynamic_th":"-4"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
||||
|
||||
{# the typo of generate_pg_profils dued to buffers_config.j2 #}
|
||||
{# Default, we do not bind any buffer profiles. #}
|
||||
{%- macro generate_pg_profils(port_names) %}
|
||||
"BUFFER_PG": {
|
||||
}
|
||||
{%- endmacro %}
|
||||
|
||||
{# Default, we do not bind any buffer profiles. #}
|
||||
{%- macro generate_queue_buffers(port_names) %}
|
||||
"BUFFER_QUEUE": {
|
||||
}
|
||||
{%- endmacro %}
|
@ -0,0 +1,17 @@
|
||||
# PG lossless profiles.
|
||||
# speed cable size xon xoff threshold
|
||||
10000 5m 3584 32256 59136 36736
|
||||
25000 5m 3584 41216 68096 45696
|
||||
40000 5m 3584 47488 74368 51968
|
||||
50000 5m 3584 52864 79744 57344
|
||||
100000 5m 3584 78400 132160 82880
|
||||
10000 40m 3584 32256 59136 36736
|
||||
25000 40m 3584 41216 68096 45696
|
||||
40000 40m 3584 47488 74368 51968
|
||||
50000 40m 3584 52864 79744 57344
|
||||
100000 40m 3584 78400 132160 82880
|
||||
10000 300m 3584 32256 65856 36736
|
||||
25000 300m 3584 41216 84672 45696
|
||||
40000 300m 3584 47488 101024 51968
|
||||
50000 300m 3584 52864 113120 57344
|
||||
100000 300m 3584 78400 198688 82880
|
@ -1,6 +1,6 @@
|
||||
# name lanes alias index
|
||||
Ethernet0 4,5,6,7 Ethernet1/1 0
|
||||
Ethernet4 0,1,2,3 Ethernet2/1 1
|
||||
Ethernet0 0,1,2,3 Ethernet1/1 0
|
||||
Ethernet4 4,5,6,7 Ethernet2/1 1
|
||||
Ethernet8 20,21,22,23 Ethernet3/1 2
|
||||
Ethernet12 16,17,18,19 Ethernet4/1 3
|
||||
Ethernet16 36,37,38,39 Ethernet5/1 4
|
||||
@ -61,5 +61,5 @@ Ethernet232 220,221,222,223 Ethernet59/1 58
|
||||
Ethernet236 216,217,218,219 Ethernet60/1 59
|
||||
Ethernet240 236,237,238,239 Ethernet61/1 60
|
||||
Ethernet244 232,233,234,235 Ethernet62/1 61
|
||||
Ethernet248 252,253,254,255 Ethernet63/1 62
|
||||
Ethernet252 248,249,250,251 Ethernet64/1 63
|
||||
Ethernet248 248,249,250,251 Ethernet63/1 62
|
||||
Ethernet252 252,253,254,255 Ethernet64/1 63
|
File diff suppressed because it is too large
Load Diff
@ -1,153 +1,136 @@
|
||||
{
|
||||
"TC_TO_PRIORITY_GROUP_MAP": {
|
||||
"AZURE": {
|
||||
"0": "1",
|
||||
"1": "0",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"MAP_PFC_PRIORITY_TO_QUEUE": {
|
||||
"AZURE": {
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"TC_TO_QUEUE_MAP": {
|
||||
"AZURE": {
|
||||
"0": "1",
|
||||
"1": "0",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"DSCP_TO_TC_MAP": {
|
||||
"AZURE": {
|
||||
"0":"1",
|
||||
"1":"0",
|
||||
"2":"0",
|
||||
"3":"3",
|
||||
"4":"4",
|
||||
"5":"0",
|
||||
"6":"0",
|
||||
"7":"0",
|
||||
"8":"1",
|
||||
"9":"0",
|
||||
"10":"0",
|
||||
"11":"0",
|
||||
"12":"0",
|
||||
"13":"0",
|
||||
"14":"0",
|
||||
"15":"0",
|
||||
"16":"0",
|
||||
"17":"0",
|
||||
"18":"0",
|
||||
"19":"0",
|
||||
"20":"0",
|
||||
"21":"0",
|
||||
"22":"0",
|
||||
"23":"0",
|
||||
"24":"0",
|
||||
"25":"0",
|
||||
"26":"0",
|
||||
"27":"0",
|
||||
"28":"0",
|
||||
"29":"0",
|
||||
"30":"0",
|
||||
"31":"0",
|
||||
"32":"0",
|
||||
"33":"0",
|
||||
"34":"0",
|
||||
"35":"0",
|
||||
"36":"0",
|
||||
"37":"0",
|
||||
"38":"0",
|
||||
"39":"0",
|
||||
"40":"0",
|
||||
"41":"0",
|
||||
"42":"0",
|
||||
"43":"0",
|
||||
"44":"0",
|
||||
"45":"0",
|
||||
"46":"0",
|
||||
"47":"0",
|
||||
"48":"0",
|
||||
"49":"0",
|
||||
"50":"0",
|
||||
"51":"0",
|
||||
"52":"0",
|
||||
"53":"0",
|
||||
"54":"0",
|
||||
"55":"0",
|
||||
"56":"0",
|
||||
"57":"0",
|
||||
"58":"0",
|
||||
"59":"0",
|
||||
"60":"0",
|
||||
"61":"0",
|
||||
"62":"0",
|
||||
"63":"0"
|
||||
}
|
||||
},
|
||||
"SCHEDULER": {
|
||||
"scheduler.0" : {
|
||||
"type":"DWRR",
|
||||
"weight": "25"
|
||||
},
|
||||
"scheduler.1" : {
|
||||
"type":"DWRR",
|
||||
"weight": "30"
|
||||
},
|
||||
"scheduler.2" : {
|
||||
"type":"DWRR",
|
||||
"weight": "20"
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124,Ethernet128,Ethernet132,Ethernet136,Ethernet140,Ethernet144,Ethernet148,Ethernet152,Ethernet156,Ethernet160,Ethernet164,Ethernet168,Ethernet172,Ethernet176,Ethernet180,Ethernet184,Ethernet188,Ethernet192,Ethernet196,Ethernet200,Ethernet204,Ethernet208,Ethernet212,Ethernet216,Ethernet220,Ethernet224,Ethernet228,Ethernet232,Ethernet236,Ethernet240,Ethernet244,Ethernet248,Ethernet252": {
|
||||
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
|
||||
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
|
||||
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
|
||||
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
|
||||
"pfc_enable": "3,4"
|
||||
}
|
||||
},
|
||||
"WRED_PROFILE": {
|
||||
"AZURE_LOSSY" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"wred_red_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"516096",
|
||||
"red_min_threshold":"516096",
|
||||
"yellow_max_threshold":"516096",
|
||||
"yellow_min_threshold":"516096",
|
||||
"green_max_threshold": "184128",
|
||||
"green_min_threshold": "184128"
|
||||
},
|
||||
"AZURE_LOSSLESS" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"wred_red_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"516096",
|
||||
"red_min_threshold":"516096",
|
||||
"yellow_max_threshold":"516096",
|
||||
"yellow_min_threshold":"516096",
|
||||
"green_max_threshold": "184128",
|
||||
"green_min_threshold": "184128"
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124,Ethernet128,Ethernet132,Ethernet136,Ethernet140,Ethernet144,Ethernet148,Ethernet152,Ethernet156,Ethernet160,Ethernet164,Ethernet168,Ethernet172,Ethernet176,Ethernet180,Ethernet184,Ethernet188,Ethernet192,Ethernet196,Ethernet200,Ethernet204,Ethernet208,Ethernet212,Ethernet216,Ethernet220,Ethernet224,Ethernet228,Ethernet232,Ethernet236,Ethernet240,Ethernet244,Ethernet248,Ethernet252|3-4" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.0]",
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124,Ethernet128,Ethernet132,Ethernet136,Ethernet140,Ethernet144,Ethernet148,Ethernet152,Ethernet156,Ethernet160,Ethernet164,Ethernet168,Ethernet172,Ethernet176,Ethernet180,Ethernet184,Ethernet188,Ethernet192,Ethernet196,Ethernet200,Ethernet204,Ethernet208,Ethernet212,Ethernet216,Ethernet220,Ethernet224,Ethernet228,Ethernet232,Ethernet236,Ethernet240,Ethernet244,Ethernet248,Ethernet252|0" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124,Ethernet128,Ethernet132,Ethernet136,Ethernet140,Ethernet144,Ethernet148,Ethernet152,Ethernet156,Ethernet160,Ethernet164,Ethernet168,Ethernet172,Ethernet176,Ethernet180,Ethernet184,Ethernet188,Ethernet192,Ethernet196,Ethernet200,Ethernet204,Ethernet208,Ethernet212,Ethernet216,Ethernet220,Ethernet224,Ethernet228,Ethernet232,Ethernet236,Ethernet240,Ethernet244,Ethernet248,Ethernet252|1" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
"TC_TO_PRIORITY_GROUP_MAP": {
|
||||
"AZURE": {
|
||||
"0": "1",
|
||||
"1": "0",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"MAP_PFC_PRIORITY_TO_QUEUE": {
|
||||
"AZURE": {
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"TC_TO_QUEUE_MAP": {
|
||||
"AZURE": {
|
||||
"0": "1",
|
||||
"1": "0",
|
||||
"3": "3",
|
||||
"4": "4"
|
||||
}
|
||||
},
|
||||
"DSCP_TO_TC_MAP": {
|
||||
"AZURE": {
|
||||
"0":"1",
|
||||
"1":"0",
|
||||
"2":"0",
|
||||
"3":"3",
|
||||
"4":"4",
|
||||
"5":"0",
|
||||
"6":"0",
|
||||
"7":"0",
|
||||
"8":"1",
|
||||
"9":"0",
|
||||
"10":"0",
|
||||
"11":"0",
|
||||
"12":"0",
|
||||
"13":"0",
|
||||
"14":"0",
|
||||
"15":"0",
|
||||
"16":"0",
|
||||
"17":"0",
|
||||
"18":"0",
|
||||
"19":"0",
|
||||
"20":"0",
|
||||
"21":"0",
|
||||
"22":"0",
|
||||
"23":"0",
|
||||
"24":"0",
|
||||
"25":"0",
|
||||
"26":"0",
|
||||
"27":"0",
|
||||
"28":"0",
|
||||
"29":"0",
|
||||
"30":"0",
|
||||
"31":"0",
|
||||
"32":"0",
|
||||
"33":"0",
|
||||
"34":"0",
|
||||
"35":"0",
|
||||
"36":"0",
|
||||
"37":"0",
|
||||
"38":"0",
|
||||
"39":"0",
|
||||
"40":"0",
|
||||
"41":"0",
|
||||
"42":"0",
|
||||
"43":"0",
|
||||
"44":"0",
|
||||
"45":"0",
|
||||
"46":"0",
|
||||
"47":"0",
|
||||
"48":"0",
|
||||
"49":"0",
|
||||
"50":"0",
|
||||
"51":"0",
|
||||
"52":"0",
|
||||
"53":"0",
|
||||
"54":"0",
|
||||
"55":"0",
|
||||
"56":"0",
|
||||
"57":"0",
|
||||
"58":"0",
|
||||
"59":"0",
|
||||
"60":"0",
|
||||
"61":"0",
|
||||
"62":"0",
|
||||
"63":"0"
|
||||
}
|
||||
},
|
||||
"SCHEDULER": {
|
||||
"scheduler.0" : {
|
||||
"type":"DWRR",
|
||||
"weight": "25"
|
||||
},
|
||||
"scheduler.1" : {
|
||||
"type":"DWRR",
|
||||
"weight": "30"
|
||||
},
|
||||
"scheduler.2" : {
|
||||
"type":"DWRR",
|
||||
"weight": "20"
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
},
|
||||
"WRED_PROFILE": {
|
||||
"AZURE_LOSSY" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"wred_red_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"516096",
|
||||
"red_min_threshold":"516096",
|
||||
"yellow_max_threshold":"516096",
|
||||
"yellow_min_threshold":"516096",
|
||||
"green_max_threshold": "184128",
|
||||
"green_min_threshold": "184128"
|
||||
},
|
||||
"AZURE_LOSSLESS" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"wred_red_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"516096",
|
||||
"red_min_threshold":"516096",
|
||||
"yellow_max_threshold":"516096",
|
||||
"yellow_min_threshold":"516096",
|
||||
"green_max_threshold": "184128",
|
||||
"green_min_threshold": "184128"
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
#unit NPS_CFG_TYPE_XXX param0 param1 value
|
||||
#---- ---------------- ------ ------ -----
|
||||
0 NPS_CFG_TYPE_USE_UNIT_PORT 0 0 1
|
||||
0 NPS_CFG_TYPE_LED_CFG 0 0 2
|
||||
0 NPS_CFG_TYPE_LED_CFG 0 0 6
|
||||
0 NPS_CFG_TYPE_CPI_PORT_MODE 129 0 1
|
||||
0 NPS_CFG_TYPE_CPI_PORT_MODE 130 0 1
|
||||
0 NPS_CFG_TYPE_USER_BUF_CTRL 0 0 1
|
||||
|
@ -291,3 +291,5 @@ class SfpUtil(SfpUtilBase):
|
||||
|
||||
return True
|
||||
|
||||
def get_transceiver_change_event(self, timeout=0):
|
||||
raise NotImplementedError
|
||||
|
@ -1,3 +1,30 @@
|
||||
{%- set PORT_ALL = [] %}
|
||||
|
||||
{%- if PORT is not defined %}
|
||||
{%- for port_idx in range(0,64) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- else %}
|
||||
{%- for port in PORT %}
|
||||
{%- if PORT_ALL.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
|
||||
{%- set PORT_ACTIVE = [] %}
|
||||
{%- if DEVICE_NEIGHBOR is not defined %}
|
||||
{%- set PORT_ACTIVE = PORT_ALL %}
|
||||
{%- else %}
|
||||
{%- for port in DEVICE_NEIGHBOR.keys() %}
|
||||
{%- if PORT_ACTIVE.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
|
||||
{%- set port_names_list_active = [] %}
|
||||
{%- for port in PORT_ACTIVE %}
|
||||
{%- if port_names_list_active.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- set port_names_active = port_names_list_active | join(',') %}
|
||||
|
||||
{
|
||||
"TC_TO_PRIORITY_GROUP_MAP": {
|
||||
"AZURE": {
|
||||
@ -114,7 +141,7 @@
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124": {
|
||||
"{{ port_names_active }}": {
|
||||
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
|
||||
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
|
||||
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
|
||||
@ -148,19 +175,15 @@
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|0": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|1": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|0-1": {
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|3-4": {
|
||||
"{{ port_names_active }}|3-4" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.0]",
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSLESS]"
|
||||
},
|
||||
"{{ port_names_active }}|0" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"{{ port_names_active }}|1" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -10,10 +10,13 @@ try:
|
||||
except ImportError as e:
|
||||
raise ImportError("%s - required module not found" % str(e))
|
||||
|
||||
# parameters for DB connection
|
||||
REDIS_HOSTNAME = "localhost"
|
||||
REDIS_PORT = 6379
|
||||
REDIS_TIMEOUT_USECS = 0
|
||||
|
||||
class SfpUtil(SfpUtilBase):
|
||||
"""Platform-specific SfpUtil class"""
|
||||
|
||||
PORT_START = 0
|
||||
PORT_END = 31
|
||||
PORTS_IN_BLOCK = 32
|
||||
@ -22,6 +25,12 @@ class SfpUtil(SfpUtilBase):
|
||||
|
||||
_port_to_eeprom_mapping = {}
|
||||
|
||||
db_sel = None
|
||||
db_sel_timeout = None
|
||||
db_sel_object = None
|
||||
db_sel_tbl = None
|
||||
state_db = None
|
||||
|
||||
@property
|
||||
def port_start(self):
|
||||
return self.PORT_START
|
||||
@ -39,7 +48,7 @@ class SfpUtil(SfpUtilBase):
|
||||
return self._port_to_eeprom_mapping
|
||||
|
||||
def __init__(self):
|
||||
eeprom_path = "/bsp/qsfp/qsfp{0}"
|
||||
eeprom_path = "/sys/class/i2c-adapter/i2c-2/2-0048/hwmon/hwmon7/qsfp{0}_eeprom"
|
||||
|
||||
for x in range(0, self.port_end + 1):
|
||||
self._port_to_eeprom_mapping[x] = eeprom_path.format(x + self.EEPROM_OFFSET)
|
||||
@ -149,3 +158,33 @@ class SfpUtil(SfpUtilBase):
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
def get_transceiver_change_event(self, timeout=0):
|
||||
phy_port_dict = {}
|
||||
status = True
|
||||
|
||||
if self.db_sel == None:
|
||||
from swsscommon import swsscommon
|
||||
self.state_db = swsscommon.DBConnector(swsscommon.STATE_DB,
|
||||
REDIS_HOSTNAME,
|
||||
REDIS_PORT,
|
||||
REDIS_TIMEOUT_USECS)
|
||||
|
||||
# Subscribe to state table for SFP change notifications
|
||||
self.db_sel = swsscommon.Select()
|
||||
self.db_sel_tbl = swsscommon.NotificationConsumer(self.state_db, 'TRANSCEIVER_NOTIFY')
|
||||
self.db_sel.addSelectable(self.db_sel_tbl)
|
||||
self.db_sel_timeout = swsscommon.Select.TIMEOUT
|
||||
self.db_sel_object = swsscommon.Select.OBJECT
|
||||
|
||||
(state, c) = self.db_sel.select(timeout)
|
||||
if state == self.db_sel_timeout:
|
||||
status = True
|
||||
elif state != self.db_sel_object:
|
||||
status = False
|
||||
else:
|
||||
(key, op, fvp) = self.db_sel_tbl.pop()
|
||||
phy_port_dict[key] = op
|
||||
|
||||
return status, phy_port_dict
|
||||
|
||||
|
@ -1,3 +1,30 @@
|
||||
{%- set PORT_ALL = [] %}
|
||||
|
||||
{%- if PORT is not defined %}
|
||||
{%- for port_idx in range(0,64) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- else %}
|
||||
{%- for port in PORT %}
|
||||
{%- if PORT_ALL.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
|
||||
{%- set PORT_ACTIVE = [] %}
|
||||
{%- if DEVICE_NEIGHBOR is not defined %}
|
||||
{%- set PORT_ACTIVE = PORT_ALL %}
|
||||
{%- else %}
|
||||
{%- for port in DEVICE_NEIGHBOR.keys() %}
|
||||
{%- if PORT_ACTIVE.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
|
||||
{%- set port_names_list_active = [] %}
|
||||
{%- for port in PORT_ACTIVE %}
|
||||
{%- if port_names_list_active.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- set port_names_active = port_names_list_active | join(',') %}
|
||||
|
||||
{
|
||||
"TC_TO_PRIORITY_GROUP_MAP": {
|
||||
"AZURE": {
|
||||
@ -114,7 +141,7 @@
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60": {
|
||||
"{{ port_names_active }}": {
|
||||
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
|
||||
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
|
||||
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
|
||||
@ -148,18 +175,15 @@
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60|0": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60|1": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60|0-1": {
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60|3-4": {
|
||||
"{{ port_names_active }}|3-4" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.0]",
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSLESS]"
|
||||
},
|
||||
"{{ port_names_active }}|0" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"{{ port_names_active }}|1" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,10 +10,13 @@ try:
|
||||
except ImportError as e:
|
||||
raise ImportError("%s - required module not found" % str(e))
|
||||
|
||||
# parameters for DB connection
|
||||
REDIS_HOSTNAME = "localhost"
|
||||
REDIS_PORT = 6379
|
||||
REDIS_TIMEOUT_USECS = 0
|
||||
|
||||
class SfpUtil(SfpUtilBase):
|
||||
"""Platform-specific SfpUtil class"""
|
||||
|
||||
PORT_START = 0
|
||||
PORT_END = 15
|
||||
PORTS_IN_BLOCK = 16
|
||||
@ -22,6 +25,13 @@ class SfpUtil(SfpUtilBase):
|
||||
|
||||
_port_to_eeprom_mapping = {}
|
||||
|
||||
db_sel = None
|
||||
db_sel_timeout = None
|
||||
db_sel_object = None
|
||||
db_sel_tbl = None
|
||||
state_db = None
|
||||
sfpd_status_tbl = None
|
||||
|
||||
@property
|
||||
def port_start(self):
|
||||
return self.PORT_START
|
||||
@ -39,7 +49,7 @@ class SfpUtil(SfpUtilBase):
|
||||
return self._port_to_eeprom_mapping
|
||||
|
||||
def __init__(self):
|
||||
eeprom_path = "/bsp/qsfp/qsfp{0}"
|
||||
eeprom_path = "/sys/class/i2c-adapter/i2c-2/2-0048/hwmon/hwmon4/qsfp{0}_eeprom"
|
||||
|
||||
for x in range(0, self.port_end + 1):
|
||||
self._port_to_eeprom_mapping[x] = eeprom_path.format(x + self.EEPROM_OFFSET)
|
||||
@ -149,3 +159,39 @@ class SfpUtil(SfpUtilBase):
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
def get_transceiver_change_event(self, timeout=0):
|
||||
phy_port_dict = {}
|
||||
status = True
|
||||
|
||||
if self.db_sel == None:
|
||||
from swsscommon import swsscommon
|
||||
self.state_db = swsscommon.DBConnector(swsscommon.STATE_DB,
|
||||
REDIS_HOSTNAME,
|
||||
REDIS_PORT,
|
||||
REDIS_TIMEOUT_USECS)
|
||||
|
||||
# Subscribe to state table for SFP change notifications
|
||||
self.db_sel = swsscommon.Select()
|
||||
self.db_sel_tbl = swsscommon.NotificationConsumer(self.state_db, 'TRANSCEIVER_NOTIFY')
|
||||
self.db_sel.addSelectable(self.db_sel_tbl)
|
||||
self.db_sel_timeout = swsscommon.Select.TIMEOUT
|
||||
self.db_sel_object = swsscommon.Select.OBJECT
|
||||
self.sfpd_status_tbl = swsscommon.Table(self.state_db, 'MLNX_SFPD_TASK')
|
||||
|
||||
# Check the liveness of mlnx-sfpd, if it failed, return false
|
||||
keys = self.sfpd_status_tbl.getKeys()
|
||||
if 'LIVENESS' not in keys:
|
||||
return False, phy_port_dict
|
||||
|
||||
(state, c) = self.db_sel.select(timeout)
|
||||
if state == self.db_sel_timeout:
|
||||
status = True
|
||||
elif state != self.db_sel_object:
|
||||
status = False
|
||||
else:
|
||||
(key, op, fvp) = self.db_sel_tbl.pop()
|
||||
phy_port_dict[key] = op
|
||||
|
||||
return status, phy_port_dict
|
||||
|
||||
|
@ -1,3 +1,30 @@
|
||||
{%- set PORT_ALL = [] %}
|
||||
|
||||
{%- if PORT is not defined %}
|
||||
{%- for port_idx in range(0,64) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- else %}
|
||||
{%- for port in PORT %}
|
||||
{%- if PORT_ALL.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
|
||||
{%- set PORT_ACTIVE = [] %}
|
||||
{%- if DEVICE_NEIGHBOR is not defined %}
|
||||
{%- set PORT_ACTIVE = PORT_ALL %}
|
||||
{%- else %}
|
||||
{%- for port in DEVICE_NEIGHBOR.keys() %}
|
||||
{%- if PORT_ACTIVE.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
|
||||
{%- set port_names_list_active = [] %}
|
||||
{%- for port in PORT_ACTIVE %}
|
||||
{%- if port_names_list_active.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- set port_names_active = port_names_list_active | join(',') %}
|
||||
|
||||
{
|
||||
"TC_TO_PRIORITY_GROUP_MAP": {
|
||||
"AZURE": {
|
||||
@ -114,7 +141,7 @@
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124,Ethernet128,Ethernet132,Ethernet136,Ethernet140,Ethernet144,Ethernet148,Ethernet152,Ethernet156,Ethernet160,Ethernet164,Ethernet168,Ethernet172,Ethernet176,Ethernet180,Ethernet184,Ethernet188,Ethernet192,Ethernet196,Ethernet200,Ethernet204,Ethernet208,Ethernet212,Ethernet216,Ethernet220": {
|
||||
"{{ port_names_active }}": {
|
||||
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
|
||||
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
|
||||
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
|
||||
@ -148,18 +175,15 @@
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124,Ethernet128,Ethernet132,Ethernet136,Ethernet140,Ethernet144,Ethernet148,Ethernet152,Ethernet156,Ethernet160,Ethernet164,Ethernet168,Ethernet172,Ethernet176,Ethernet180,Ethernet184,Ethernet188,Ethernet192,Ethernet196,Ethernet200,Ethernet204,Ethernet208,Ethernet212,Ethernet216,Ethernet220|0": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124,Ethernet128,Ethernet132,Ethernet136,Ethernet140,Ethernet144,Ethernet148,Ethernet152,Ethernet156,Ethernet160,Ethernet164,Ethernet168,Ethernet172,Ethernet176,Ethernet180,Ethernet184,Ethernet188,Ethernet192,Ethernet196,Ethernet200,Ethernet204,Ethernet208,Ethernet212,Ethernet216,Ethernet220|1": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124,Ethernet128,Ethernet132,Ethernet136,Ethernet140,Ethernet144,Ethernet148,Ethernet152,Ethernet156,Ethernet160,Ethernet164,Ethernet168,Ethernet172,Ethernet176,Ethernet180,Ethernet184,Ethernet188,Ethernet192,Ethernet196,Ethernet200,Ethernet204,Ethernet208,Ethernet212,Ethernet216,Ethernet220|0-1": {
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124,Ethernet128,Ethernet132,Ethernet136,Ethernet140,Ethernet144,Ethernet148,Ethernet152,Ethernet156,Ethernet160,Ethernet164,Ethernet168,Ethernet172,Ethernet176,Ethernet180,Ethernet184,Ethernet188,Ethernet192,Ethernet196,Ethernet200,Ethernet204,Ethernet208,Ethernet212,Ethernet216,Ethernet220|3-4": {
|
||||
"{{ port_names_active }}|3-4" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.0]",
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSLESS]"
|
||||
},
|
||||
"{{ port_names_active }}|0" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"{{ port_names_active }}|1" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,18 +10,28 @@ try:
|
||||
except ImportError as e:
|
||||
raise ImportError("%s - required module not found" % str(e))
|
||||
|
||||
# parameters for DB connection
|
||||
REDIS_HOSTNAME = "localhost"
|
||||
REDIS_PORT = 6379
|
||||
REDIS_TIMEOUT_USECS = 0
|
||||
|
||||
class SfpUtil(SfpUtilBase):
|
||||
"""Platform-specific SfpUtil class"""
|
||||
|
||||
PORT_START = 0
|
||||
PORT_END = 55
|
||||
PORTS_IN_BLOCK = 56
|
||||
|
||||
QSFP_PORT_START = 48
|
||||
EEPROM_OFFSET = 1
|
||||
|
||||
_port_to_eeprom_mapping = {}
|
||||
|
||||
db_sel = None
|
||||
db_sel_timeout = None
|
||||
db_sel_object = None
|
||||
db_sel_tbl = None
|
||||
state_db = None
|
||||
sfpd_status_tbl = None
|
||||
|
||||
@property
|
||||
def port_start(self):
|
||||
return self.PORT_START
|
||||
@ -32,20 +42,21 @@ class SfpUtil(SfpUtilBase):
|
||||
|
||||
@property
|
||||
def qsfp_ports(self):
|
||||
return range(0, self.PORTS_IN_BLOCK + 1)
|
||||
return range(self.QSFP_PORT_START, self.PORTS_IN_BLOCK + 1)
|
||||
|
||||
@property
|
||||
def port_to_eeprom_mapping(self):
|
||||
return self._port_to_eeprom_mapping
|
||||
|
||||
def __init__(self):
|
||||
eeprom_path = "/bsp/qsfp/qsfp{0}"
|
||||
eeprom_path = "/sys/class/i2c-adapter/i2c-2/2-0048/hwmon/hwmon7/qsfp{0}_eeprom"
|
||||
|
||||
for x in range(0, self.port_end + 1):
|
||||
self._port_to_eeprom_mapping[x] = eeprom_path.format(x + self.EEPROM_OFFSET)
|
||||
|
||||
SfpUtilBase.__init__(self)
|
||||
|
||||
|
||||
def get_presence(self, port_num):
|
||||
# Check for invalid port_num
|
||||
if port_num < self.port_start or port_num > self.port_end:
|
||||
@ -149,3 +160,39 @@ class SfpUtil(SfpUtilBase):
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
def get_transceiver_change_event(self, timeout=0):
|
||||
phy_port_dict = {}
|
||||
status = True
|
||||
|
||||
if self.db_sel == None:
|
||||
from swsscommon import swsscommon
|
||||
self.state_db = swsscommon.DBConnector(swsscommon.STATE_DB,
|
||||
REDIS_HOSTNAME,
|
||||
REDIS_PORT,
|
||||
REDIS_TIMEOUT_USECS)
|
||||
|
||||
# Subscribe to state table for SFP change notifications
|
||||
self.db_sel = swsscommon.Select()
|
||||
self.db_sel_tbl = swsscommon.NotificationConsumer(self.state_db, 'TRANSCEIVER_NOTIFY')
|
||||
self.db_sel.addSelectable(self.db_sel_tbl)
|
||||
self.db_sel_timeout = swsscommon.Select.TIMEOUT
|
||||
self.db_sel_object = swsscommon.Select.OBJECT
|
||||
self.sfpd_status_tbl = swsscommon.Table(self.state_db, 'MLNX_SFPD_TASK')
|
||||
|
||||
# Check the liveness of mlnx-sfpd, if it failed, return false
|
||||
keys = self.sfpd_status_tbl.getKeys()
|
||||
if 'LIVENESS' not in keys:
|
||||
return False, phy_port_dict
|
||||
|
||||
(state, c) = self.db_sel.select(timeout)
|
||||
if state == self.db_sel_timeout:
|
||||
status = True
|
||||
elif state != self.db_sel_object:
|
||||
status = False
|
||||
else:
|
||||
(key, op, fvp) = self.db_sel_tbl.pop()
|
||||
phy_port_dict[key] = op
|
||||
|
||||
return status, phy_port_dict
|
||||
|
||||
|
@ -1,3 +1,30 @@
|
||||
{%- set PORT_ALL = [] %}
|
||||
|
||||
{%- if PORT is not defined %}
|
||||
{%- for port_idx in range(0,64) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- else %}
|
||||
{%- for port in PORT %}
|
||||
{%- if PORT_ALL.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
|
||||
{%- set PORT_ACTIVE = [] %}
|
||||
{%- if DEVICE_NEIGHBOR is not defined %}
|
||||
{%- set PORT_ACTIVE = PORT_ALL %}
|
||||
{%- else %}
|
||||
{%- for port in DEVICE_NEIGHBOR.keys() %}
|
||||
{%- if PORT_ACTIVE.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
|
||||
{%- set port_names_list_active = [] %}
|
||||
{%- for port in PORT_ACTIVE %}
|
||||
{%- if port_names_list_active.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- set port_names_active = port_names_list_active | join(',') %}
|
||||
|
||||
{
|
||||
"TC_TO_PRIORITY_GROUP_MAP": {
|
||||
"AZURE": {
|
||||
@ -114,7 +141,7 @@
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124": {
|
||||
"{{ port_names_active }}": {
|
||||
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
|
||||
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
|
||||
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
|
||||
@ -148,19 +175,15 @@
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|0": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|1": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|0-1": {
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|3-4": {
|
||||
"{{ port_names_active }}|3-4" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.0]",
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSLESS]"
|
||||
},
|
||||
"{{ port_names_active }}|0" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"{{ port_names_active }}|1" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,30 @@
|
||||
{%- set PORT_ALL = [] %}
|
||||
|
||||
{%- if PORT is not defined %}
|
||||
{%- for port_idx in range(0,64) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- else %}
|
||||
{%- for port in PORT %}
|
||||
{%- if PORT_ALL.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
|
||||
{%- set PORT_ACTIVE = [] %}
|
||||
{%- if DEVICE_NEIGHBOR is not defined %}
|
||||
{%- set PORT_ACTIVE = PORT_ALL %}
|
||||
{%- else %}
|
||||
{%- for port in DEVICE_NEIGHBOR.keys() %}
|
||||
{%- if PORT_ACTIVE.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
|
||||
{%- set port_names_list_active = [] %}
|
||||
{%- for port in PORT_ACTIVE %}
|
||||
{%- if port_names_list_active.append(port) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- set port_names_active = port_names_list_active | join(',') %}
|
||||
|
||||
{
|
||||
"TC_TO_PRIORITY_GROUP_MAP": {
|
||||
"AZURE": {
|
||||
@ -114,7 +141,7 @@
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
"Ethernet8,Ethernet2,Ethernet0,Ethernet6,Ethernet4,Ethernet108,Ethernet100,Ethernet104,Ethernet106,Ethernet58,Ethernet126,Ethernet96,Ethernet124,Ethernet122,Ethernet92,Ethernet120,Ethernet50,Ethernet52,Ethernet54,Ethernet56,Ethernet76,Ethernet74,Ethernet18,Ethernet70,Ethernet32,Ethernet72,Ethernet16,Ethernet36,Ethernet78,Ethernet60,Ethernet28,Ethernet62,Ethernet14,Ethernet88,Ethernet118,Ethernet24,Ethernet116,Ethernet82,Ethernet114,Ethernet80,Ethernet112,Ethernet86,Ethernet110,Ethernet84,Ethernet48,Ethernet10,Ethernet44,Ethernet42,Ethernet40,Ethernet64,Ethernet66,Ethernet12,Ethernet46,Ethernet20,Ethernet22,Ethernet68": {
|
||||
"{{ port_names_active }}": {
|
||||
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
|
||||
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
|
||||
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
|
||||
@ -148,19 +175,15 @@
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
"Ethernet8,Ethernet2,Ethernet0,Ethernet6,Ethernet4,Ethernet108,Ethernet100,Ethernet104,Ethernet106,Ethernet58,Ethernet126,Ethernet96,Ethernet124,Ethernet122,Ethernet92,Ethernet120,Ethernet50,Ethernet52,Ethernet54,Ethernet56,Ethernet76,Ethernet74,Ethernet18,Ethernet70,Ethernet32,Ethernet72,Ethernet16,Ethernet36,Ethernet78,Ethernet60,Ethernet28,Ethernet62,Ethernet14,Ethernet88,Ethernet118,Ethernet24,Ethernet116,Ethernet82,Ethernet114,Ethernet80,Ethernet112,Ethernet86,Ethernet110,Ethernet84,Ethernet48,Ethernet10,Ethernet44,Ethernet42,Ethernet40,Ethernet64,Ethernet66,Ethernet12,Ethernet46,Ethernet20,Ethernet22,Ethernet68|0": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"Ethernet8,Ethernet2,Ethernet0,Ethernet6,Ethernet4,Ethernet108,Ethernet100,Ethernet104,Ethernet106,Ethernet58,Ethernet126,Ethernet96,Ethernet124,Ethernet122,Ethernet92,Ethernet120,Ethernet50,Ethernet52,Ethernet54,Ethernet56,Ethernet76,Ethernet74,Ethernet18,Ethernet70,Ethernet32,Ethernet72,Ethernet16,Ethernet36,Ethernet78,Ethernet60,Ethernet28,Ethernet62,Ethernet14,Ethernet88,Ethernet118,Ethernet24,Ethernet116,Ethernet82,Ethernet114,Ethernet80,Ethernet112,Ethernet86,Ethernet110,Ethernet84,Ethernet48,Ethernet10,Ethernet44,Ethernet42,Ethernet40,Ethernet64,Ethernet66,Ethernet12,Ethernet46,Ethernet20,Ethernet22,Ethernet68|1": {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|0-1": {
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
|
||||
},
|
||||
"Ethernet8,Ethernet2,Ethernet0,Ethernet6,Ethernet4,Ethernet108,Ethernet100,Ethernet104,Ethernet106,Ethernet58,Ethernet126,Ethernet96,Ethernet124,Ethernet122,Ethernet92,Ethernet120,Ethernet50,Ethernet52,Ethernet54,Ethernet56,Ethernet76,Ethernet74,Ethernet18,Ethernet70,Ethernet32,Ethernet72,Ethernet16,Ethernet36,Ethernet78,Ethernet60,Ethernet28,Ethernet62,Ethernet14,Ethernet88,Ethernet118,Ethernet24,Ethernet116,Ethernet82,Ethernet114,Ethernet80,Ethernet112,Ethernet86,Ethernet110,Ethernet84,Ethernet48,Ethernet10,Ethernet44,Ethernet42,Ethernet40,Ethernet64,Ethernet66,Ethernet12,Ethernet46,Ethernet20,Ethernet22,Ethernet68|3-4": {
|
||||
"{{ port_names_active }}|3-4" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.0]",
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSLESS]"
|
||||
},
|
||||
"{{ port_names_active }}|0" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"{{ port_names_active }}|1" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -10,10 +10,13 @@ try:
|
||||
except ImportError as e:
|
||||
raise ImportError("%s - required module not found" % str(e))
|
||||
|
||||
# parameters for DB connection
|
||||
REDIS_HOSTNAME = "localhost"
|
||||
REDIS_PORT = 6379
|
||||
REDIS_TIMEOUT_USECS = 0
|
||||
|
||||
class SfpUtil(SfpUtilBase):
|
||||
"""Platform-specific SfpUtil class"""
|
||||
|
||||
PORT_START = 0
|
||||
PORT_END = 31
|
||||
PORTS_IN_BLOCK = 32
|
||||
@ -22,6 +25,13 @@ class SfpUtil(SfpUtilBase):
|
||||
|
||||
_port_to_eeprom_mapping = {}
|
||||
|
||||
db_sel = None
|
||||
db_sel_timeout = None
|
||||
db_sel_object = None
|
||||
db_sel_tbl = None
|
||||
state_db = None
|
||||
sfpd_status_tbl = None
|
||||
|
||||
@property
|
||||
def port_start(self):
|
||||
return self.PORT_START
|
||||
@ -39,7 +49,7 @@ class SfpUtil(SfpUtilBase):
|
||||
return self._port_to_eeprom_mapping
|
||||
|
||||
def __init__(self):
|
||||
eeprom_path = "/bsp/qsfp/qsfp{0}"
|
||||
eeprom_path = "/sys/class/i2c-adapter/i2c-2/2-0048/hwmon/hwmon7/qsfp{0}_eeprom"
|
||||
|
||||
for x in range(0, self.port_end + 1):
|
||||
self._port_to_eeprom_mapping[x] = eeprom_path.format(x + self.EEPROM_OFFSET)
|
||||
@ -149,3 +159,39 @@ class SfpUtil(SfpUtilBase):
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
def get_transceiver_change_event(self, timeout=0):
|
||||
phy_port_dict = {}
|
||||
status = True
|
||||
|
||||
if self.db_sel == None:
|
||||
from swsscommon import swsscommon
|
||||
self.state_db = swsscommon.DBConnector(swsscommon.STATE_DB,
|
||||
REDIS_HOSTNAME,
|
||||
REDIS_PORT,
|
||||
REDIS_TIMEOUT_USECS)
|
||||
|
||||
# Subscribe to state table for SFP change notifications
|
||||
self.db_sel = swsscommon.Select()
|
||||
self.db_sel_tbl = swsscommon.NotificationConsumer(self.state_db, 'TRANSCEIVER_NOTIFY')
|
||||
self.db_sel.addSelectable(self.db_sel_tbl)
|
||||
self.db_sel_timeout = swsscommon.Select.TIMEOUT
|
||||
self.db_sel_object = swsscommon.Select.OBJECT
|
||||
self.sfpd_status_tbl = swsscommon.Table(self.state_db, 'MLNX_SFPD_TASK')
|
||||
|
||||
# Check the liveness of mlnx-sfpd, if it failed, return false
|
||||
keys = self.sfpd_status_tbl.getKeys()
|
||||
if 'LIVENESS' not in keys:
|
||||
return False, phy_port_dict
|
||||
|
||||
(state, c) = self.db_sel.select(timeout)
|
||||
if state == self.db_sel_timeout:
|
||||
status = True
|
||||
elif state != self.db_sel_object:
|
||||
status = False
|
||||
else:
|
||||
(key, op, fvp) = self.db_sel_tbl.pop()
|
||||
phy_port_dict[key] = op
|
||||
|
||||
return status, phy_port_dict
|
||||
|
||||
|
@ -10,10 +10,13 @@ try:
|
||||
except ImportError as e:
|
||||
raise ImportError("%s - required module not found" % str(e))
|
||||
|
||||
# parameters for DB connection
|
||||
REDIS_HOSTNAME = "localhost"
|
||||
REDIS_PORT = 6379
|
||||
REDIS_TIMEOUT_USECS = 0
|
||||
|
||||
class SfpUtil(SfpUtilBase):
|
||||
"""Platform-specific SfpUtil class"""
|
||||
|
||||
PORT_START = 0
|
||||
PORT_END = 31
|
||||
PORTS_IN_BLOCK = 32
|
||||
@ -22,6 +25,13 @@ class SfpUtil(SfpUtilBase):
|
||||
|
||||
_port_to_eeprom_mapping = {}
|
||||
|
||||
db_sel = None
|
||||
db_sel_timeout = None
|
||||
db_sel_object = None
|
||||
db_sel_tbl = None
|
||||
state_db = None
|
||||
sfpd_status_tbl = None
|
||||
|
||||
@property
|
||||
def port_start(self):
|
||||
return self.PORT_START
|
||||
@ -39,7 +49,7 @@ class SfpUtil(SfpUtilBase):
|
||||
return self._port_to_eeprom_mapping
|
||||
|
||||
def __init__(self):
|
||||
eeprom_path = "/bsp/qsfp/qsfp{0}"
|
||||
eeprom_path = "/sys/class/i2c-adapter/i2c-2/2-0048/hwmon/hwmon6/qsfp{0}_eeprom"
|
||||
|
||||
for x in range(0, self.port_end + 1):
|
||||
self._port_to_eeprom_mapping[x] = eeprom_path.format(x + self.EEPROM_OFFSET)
|
||||
@ -149,3 +159,39 @@ class SfpUtil(SfpUtilBase):
|
||||
return False
|
||||
|
||||
return False
|
||||
|
||||
def get_transceiver_change_event(self, timeout=0):
|
||||
phy_port_dict = {}
|
||||
status = True
|
||||
|
||||
if self.db_sel == None:
|
||||
from swsscommon import swsscommon
|
||||
self.state_db = swsscommon.DBConnector(swsscommon.STATE_DB,
|
||||
REDIS_HOSTNAME,
|
||||
REDIS_PORT,
|
||||
REDIS_TIMEOUT_USECS)
|
||||
|
||||
# Subscribe to state table for SFP change notifications
|
||||
self.db_sel = swsscommon.Select()
|
||||
self.db_sel_tbl = swsscommon.NotificationConsumer(self.state_db, 'TRANSCEIVER_NOTIFY')
|
||||
self.db_sel.addSelectable(self.db_sel_tbl)
|
||||
self.db_sel_timeout = swsscommon.Select.TIMEOUT
|
||||
self.db_sel_object = swsscommon.Select.OBJECT
|
||||
self.sfpd_status_tbl = swsscommon.Table(self.state_db, 'MLNX_SFPD_TASK')
|
||||
|
||||
# Check the liveness of mlnx-sfpd, if it failed, return false
|
||||
keys = self.sfpd_status_tbl.getKeys()
|
||||
if 'LIVENESS' not in keys:
|
||||
return False, phy_port_dict
|
||||
|
||||
(state, c) = self.db_sel.select(timeout)
|
||||
if state == self.db_sel_timeout:
|
||||
status = True
|
||||
elif state != self.db_sel_object:
|
||||
status = False
|
||||
else:
|
||||
(key, op, fvp) = self.db_sel_tbl.pop()
|
||||
phy_port_dict[key] = op
|
||||
|
||||
return status, phy_port_dict
|
||||
|
||||
|
@ -0,0 +1,2 @@
|
||||
{%- set default_topo = 't1' %}
|
||||
{%- include 'buffers_config.j2' %}
|
@ -0,0 +1,47 @@
|
||||
|
||||
{%- set default_cable = '5m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{%- for port_idx in range(0,128,4) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "11213696",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic",
|
||||
"xoff": "3855488"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "9532224",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "15982720",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
}
|
||||
},
|
||||
"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":"1518",
|
||||
"static_th":"3995680"
|
||||
},
|
||||
"egress_lossy_profile": {
|
||||
"pool":"[BUFFER_POOL|egress_lossy_pool]",
|
||||
"size":"1518",
|
||||
"dynamic_th":"3"
|
||||
}
|
||||
},
|
||||
{%- endmacro %}
|
@ -0,0 +1,47 @@
|
||||
|
||||
{%- set default_cable = '40m' %}
|
||||
|
||||
{%- macro generate_port_lists(PORT_ALL) %}
|
||||
{# Generate list of ports #}
|
||||
{%- for port_idx in range(0,128,4) %}
|
||||
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
|
||||
{%- endfor %}
|
||||
{%- endmacro %}
|
||||
|
||||
{%- macro generate_buffer_pool_and_profiles() %}
|
||||
"BUFFER_POOL": {
|
||||
"ingress_lossless_pool": {
|
||||
"size": "10443264",
|
||||
"type": "ingress",
|
||||
"mode": "dynamic",
|
||||
"xoff": "4625920"
|
||||
},
|
||||
"egress_lossy_pool": {
|
||||
"size": "8877440",
|
||||
"type": "egress",
|
||||
"mode": "dynamic"
|
||||
},
|
||||
"egress_lossless_pool": {
|
||||
"size": "15982720",
|
||||
"type": "egress",
|
||||
"mode": "static"
|
||||
}
|
||||
},
|
||||
"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":"1518",
|
||||
"static_th":"3995680"
|
||||
},
|
||||
"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 1248 2288 35776 -4 2288
|
||||
25000 5m 1248 2288 53248 -4 2288
|
||||
40000 5m 1248 2288 66560 -4 2288
|
||||
50000 5m 1248 2288 90272 -4 2288
|
||||
100000 5m 1248 2288 165568 -4 2288
|
||||
10000 40m 1248 2288 37024 -4 2288
|
||||
25000 40m 1248 2288 53248 -4 2288
|
||||
40000 40m 1248 2288 71552 -4 2288
|
||||
50000 40m 1248 2288 96096 -4 2288
|
||||
100000 40m 1248 2288 177632 -4 2288
|
||||
10000 300m 1248 2288 46176 -4 2288
|
||||
25000 300m 1248 2288 79040 -4 2288
|
||||
40000 300m 1248 2288 108160 -4 2288
|
||||
50000 300m 1248 2288 141856 -4 2288
|
||||
100000 300m 1248 2288 268736 -4 2288
|
@ -0,0 +1,167 @@
|
||||
{
|
||||
"TC_TO_PRIORITY_GROUP_MAP": {
|
||||
"AZURE": {
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"6": "6",
|
||||
"7": "7"
|
||||
}
|
||||
},
|
||||
"MAP_PFC_PRIORITY_TO_QUEUE": {
|
||||
"AZURE": {
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"6": "6",
|
||||
"7": "7"
|
||||
}
|
||||
},
|
||||
"TC_TO_QUEUE_MAP": {
|
||||
"AZURE": {
|
||||
"0": "0",
|
||||
"1": "1",
|
||||
"2": "2",
|
||||
"3": "3",
|
||||
"4": "4",
|
||||
"5": "5",
|
||||
"6": "6",
|
||||
"7": "7"
|
||||
}
|
||||
},
|
||||
"DSCP_TO_TC_MAP": {
|
||||
"AZURE": {
|
||||
"0":"0",
|
||||
"1":"0",
|
||||
"2":"0",
|
||||
"3":"3",
|
||||
"4":"4",
|
||||
"5":"0",
|
||||
"6":"0",
|
||||
"7":"0",
|
||||
"8":"1",
|
||||
"9":"0",
|
||||
"10":"0",
|
||||
"11":"0",
|
||||
"12":"0",
|
||||
"13":"0",
|
||||
"14":"0",
|
||||
"15":"0",
|
||||
"16":"0",
|
||||
"17":"0",
|
||||
"18":"0",
|
||||
"19":"0",
|
||||
"20":"0",
|
||||
"21":"0",
|
||||
"22":"0",
|
||||
"23":"0",
|
||||
"24":"0",
|
||||
"25":"0",
|
||||
"26":"0",
|
||||
"27":"0",
|
||||
"28":"0",
|
||||
"29":"0",
|
||||
"30":"0",
|
||||
"31":"0",
|
||||
"32":"0",
|
||||
"33":"0",
|
||||
"34":"0",
|
||||
"35":"0",
|
||||
"36":"0",
|
||||
"37":"0",
|
||||
"38":"0",
|
||||
"39":"0",
|
||||
"40":"0",
|
||||
"41":"0",
|
||||
"42":"0",
|
||||
"43":"0",
|
||||
"44":"0",
|
||||
"45":"0",
|
||||
"46":"0",
|
||||
"47":"0",
|
||||
"48":"0",
|
||||
"49":"0",
|
||||
"50":"0",
|
||||
"51":"0",
|
||||
"52":"0",
|
||||
"53":"0",
|
||||
"54":"0",
|
||||
"55":"0",
|
||||
"56":"0",
|
||||
"57":"0",
|
||||
"58":"0",
|
||||
"59":"0",
|
||||
"60":"0",
|
||||
"61":"0",
|
||||
"62":"0",
|
||||
"63":"0"
|
||||
}
|
||||
},
|
||||
"SCHEDULER": {
|
||||
"scheduler.0" : {
|
||||
"type":"DWRR",
|
||||
"weight": "25"
|
||||
},
|
||||
"scheduler.1" : {
|
||||
"type":"DWRR",
|
||||
"weight": "30"
|
||||
},
|
||||
"scheduler.2" : {
|
||||
"type":"DWRR",
|
||||
"weight": "20"
|
||||
}
|
||||
},
|
||||
"PORT_QOS_MAP": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124": {
|
||||
"dscp_to_tc_map" : "[DSCP_TO_TC_MAP|AZURE]",
|
||||
"tc_to_queue_map" : "[TC_TO_QUEUE_MAP|AZURE]",
|
||||
"tc_to_pg_map" : "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
|
||||
"pfc_to_queue_map": "[MAP_PFC_PRIORITY_TO_QUEUE|AZURE]",
|
||||
"pfc_enable": "3,4"
|
||||
}
|
||||
},
|
||||
"WRED_PROFILE": {
|
||||
"AZURE_LOSSY" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"512000",
|
||||
"red_min_threshold":"512000",
|
||||
"yellow_max_threshold":"512000",
|
||||
"yellow_min_threshold":"512000",
|
||||
"green_max_threshold": "184320",
|
||||
"green_min_threshold": "184320"
|
||||
},
|
||||
"AZURE_LOSSLESS" : {
|
||||
"wred_green_enable":"true",
|
||||
"wred_yellow_enable":"true",
|
||||
"ecn":"ecn_all",
|
||||
"red_max_threshold":"512000",
|
||||
"red_min_threshold":"512000",
|
||||
"yellow_max_threshold":"512000",
|
||||
"yellow_min_threshold":"512000",
|
||||
"green_max_threshold": "184320",
|
||||
"green_min_threshold": "184320"
|
||||
}
|
||||
},
|
||||
"QUEUE": {
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|0-1" : {
|
||||
"wred_profile" : "[WRED_PROFILE|AZURE_LOSSY]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|3-4" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.0]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|0" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.1]"
|
||||
},
|
||||
"Ethernet0,Ethernet4,Ethernet8,Ethernet12,Ethernet16,Ethernet20,Ethernet24,Ethernet28,Ethernet32,Ethernet36,Ethernet40,Ethernet44,Ethernet48,Ethernet52,Ethernet56,Ethernet60,Ethernet64,Ethernet68,Ethernet72,Ethernet76,Ethernet80,Ethernet84,Ethernet88,Ethernet92,Ethernet96,Ethernet100,Ethernet104,Ethernet108,Ethernet112,Ethernet116,Ethernet120,Ethernet124|1" : {
|
||||
"scheduler" : "[SCHEDULER|scheduler.2]"
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
#############################################################################
|
||||
# MiTAC
|
||||
#
|
||||
# Module contains an implementation of SONiC PSU Base API and
|
||||
# provides the PSUs status which are available in the platform
|
||||
#
|
||||
#############################################################################
|
||||
|
||||
import os.path
|
||||
|
||||
try:
|
||||
from sonic_psu.psu_base import PsuBase
|
||||
except ImportError as e:
|
||||
raise ImportError (str(e) + "- required module not found")
|
||||
|
||||
class PsuUtil(PsuBase):
|
||||
"""Platform-specific PSUutil class"""
|
||||
|
||||
def __init__(self):
|
||||
PsuBase.__init__(self)
|
||||
|
||||
self.psu_nums = 2
|
||||
self.psu_path = "/sys/bus/i2c/devices/1-0032/"
|
||||
self.psu_presence = "ps{}_ps"
|
||||
self.psu_oper_status = "ps{}_pg"
|
||||
|
||||
def get_num_psus(self):
|
||||
"""
|
||||
Retrieves the number of PSUs available on the device
|
||||
:return: An integer, the number of PSUs available on the device
|
||||
"""
|
||||
return self.psu_nums
|
||||
|
||||
def get_psu_status(self, index):
|
||||
"""
|
||||
Retrieves the oprational status of power supply unit (PSU) defined
|
||||
by 1-based index <index>
|
||||
:param index: An integer, 1-based index of the PSU of which to query status
|
||||
:return: Boolean, True if PSU is operating properly, False if PSU is faulty
|
||||
"""
|
||||
if index is None:
|
||||
return False
|
||||
|
||||
status = 1
|
||||
try:
|
||||
with open(self.psu_path + self.psu_oper_status.format(index), 'r') as power_status:
|
||||
status = int(power_status.read(), 0)
|
||||
except IOError:
|
||||
return False
|
||||
|
||||
return status == 0
|
||||
|
||||
def get_psu_presence(self, index):
|
||||
"""
|
||||
Retrieves the presence status of power supply unit (PSU) defined
|
||||
by 1-based index <index>
|
||||
:param index: An integer, 1-based index of the PSU of which to query status
|
||||
:return: Boolean, True if PSU is plugged, False if not
|
||||
"""
|
||||
if index is None:
|
||||
return False
|
||||
|
||||
status = 1
|
||||
try:
|
||||
with open(self.psu_path + self.psu_presence.format(index), 'r') as presence_status:
|
||||
status = int(presence_status.read(), 0)
|
||||
except IOError:
|
||||
return False
|
||||
|
||||
return status == 0
|
1
device/pegatron/x86_64-pegatron_porsche-r0/default_sku
Normal file
1
device/pegatron/x86_64-pegatron_porsche-r0/default_sku
Normal file
@ -0,0 +1 @@
|
||||
porsche t1
|
3
device/pegatron/x86_64-pegatron_porsche-r0/installer.conf
Executable file
3
device/pegatron/x86_64-pegatron_porsche-r0/installer.conf
Executable file
@ -0,0 +1,3 @@
|
||||
CONSOLE_PORT=0x2f8
|
||||
CONSOLE_DEV=1
|
||||
CONSOLE_SPEED=115200
|
21
device/pegatron/x86_64-pegatron_porsche-r0/plugins/eeprom.py
Executable file
21
device/pegatron/x86_64-pegatron_porsche-r0/plugins/eeprom.py
Executable file
@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
try:
|
||||
import exceptions
|
||||
import binascii
|
||||
import time
|
||||
import optparse
|
||||
import warnings
|
||||
import os
|
||||
import sys
|
||||
from sonic_eeprom import eeprom_base
|
||||
from sonic_eeprom import eeprom_tlvinfo
|
||||
import subprocess
|
||||
except ImportError, e:
|
||||
raise ImportError (str(e) + "- required module not found")
|
||||
|
||||
class board(eeprom_tlvinfo.TlvInfoDecoder):
|
||||
_TLV_INFO_MAX_LEN = 256
|
||||
def __init__(self, name, path, cpld_root, ro):
|
||||
self.eeprom_path = "/sys/bus/i2c/devices/4-0054/eeprom"
|
||||
super(board, self).__init__(self.eeprom_path, 0, '', True)
|
92
device/pegatron/x86_64-pegatron_porsche-r0/plugins/psuutil.py
Executable file
92
device/pegatron/x86_64-pegatron_porsche-r0/plugins/psuutil.py
Executable file
@ -0,0 +1,92 @@
|
||||
#
|
||||
# psuutil.py
|
||||
# Platform-specific PSU status interface for SONiC
|
||||
#
|
||||
|
||||
|
||||
import os.path
|
||||
|
||||
try:
|
||||
from sonic_psu.psu_base import PsuBase
|
||||
except ImportError as e:
|
||||
raise ImportError(str(e) + "- required module not found")
|
||||
|
||||
|
||||
class PsuUtil(PsuBase):
|
||||
"""Platform-specific PSUutil class"""
|
||||
|
||||
SYSFS_PSU_DIR = "/sys/bus/i2c/devices/7-0075"
|
||||
|
||||
def __init__(self):
|
||||
PsuBase.__init__(self)
|
||||
|
||||
|
||||
# Get sysfs attribute
|
||||
def get_attr_value(self, attr_path):
|
||||
|
||||
retval = 'ERR'
|
||||
if (not os.path.isfile(attr_path)):
|
||||
return retval
|
||||
|
||||
try:
|
||||
with open(attr_path, 'r') as fd:
|
||||
retval = fd.read()
|
||||
except Exception as error:
|
||||
logging.error("Unable to open ", attr_path, " file !")
|
||||
|
||||
retval = retval.rstrip('\r\n')
|
||||
|
||||
fd.close()
|
||||
return retval
|
||||
|
||||
def get_num_psus(self):
|
||||
"""
|
||||
Retrieves the number of PSUs available on the device
|
||||
:return: An integer, the number of PSUs available on the device
|
||||
"""
|
||||
MAX_PSUS = 2
|
||||
return MAX_PSUS
|
||||
|
||||
def get_psu_status(self, index):
|
||||
"""
|
||||
Retrieves the oprational status of power supply unit (PSU) defined
|
||||
by index <index>
|
||||
:param index: An integer, index of the PSU of which to query status
|
||||
:return: Boolean, True if PSU is operating properly, False if PSU is\
|
||||
faulty
|
||||
"""
|
||||
status = 0
|
||||
attr_file = 'psu_'+str(index)+'_status'
|
||||
attr_path = self.SYSFS_PSU_DIR +'/' + attr_file
|
||||
|
||||
attr_value = self.get_attr_value(attr_path)
|
||||
|
||||
if (attr_value != 'ERR'):
|
||||
attr_value = int(attr_value, 16)
|
||||
# Check for PSU status
|
||||
if (attr_value == 1):
|
||||
status = 1
|
||||
|
||||
return status
|
||||
|
||||
def get_psu_presence(self, index):
|
||||
"""
|
||||
Retrieves the presence status of power supply unit (PSU) defined
|
||||
by index <index>
|
||||
:param index: An integer, index of the PSU of which to query status
|
||||
:return: Boolean, True if PSU is plugged, False if not
|
||||
"""
|
||||
status = 0
|
||||
attr_file = 'psu_'+str(index)+'_present'
|
||||
attr_path = self.SYSFS_PSU_DIR +'/' + attr_file
|
||||
|
||||
attr_value = self.get_attr_value(attr_path)
|
||||
|
||||
if (attr_value != 'ERR'):
|
||||
attr_value = int(attr_value, 16)
|
||||
# Check for PSU presence
|
||||
if (attr_value == 0):
|
||||
status = 1
|
||||
|
||||
return status
|
||||
|
238
device/pegatron/x86_64-pegatron_porsche-r0/plugins/sfputil.py
Executable file
238
device/pegatron/x86_64-pegatron_porsche-r0/plugins/sfputil.py
Executable file
@ -0,0 +1,238 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
try:
|
||||
import os
|
||||
import re
|
||||
import time
|
||||
from sonic_sfp.sfputilbase import SfpUtilBase
|
||||
except ImportError, e:
|
||||
raise ImportError (str(e) + "- required module not found")
|
||||
|
||||
|
||||
class SfpUtil(SfpUtilBase):
|
||||
"""Platform specific sfputil class"""
|
||||
|
||||
port_start = 0
|
||||
port_end = 53
|
||||
ports_in_block = 54
|
||||
cplda_sfp_num = 24
|
||||
cpldb_sfp_num = 12
|
||||
cpldc_sfp_num = 18
|
||||
|
||||
port_to_eeprom_mapping = {}
|
||||
port_to_i2c_mapping = {}
|
||||
sfp_ports = range(0, ports_in_block)
|
||||
qsfp_ports = range(ports_in_block - 6, ports_in_block)
|
||||
|
||||
|
||||
def __init__(self):
|
||||
for x in range(self.port_start, self.port_end + 1):
|
||||
if x < self.cpldb_sfp_num:
|
||||
self.port_to_i2c_mapping.update({x:7})
|
||||
elif x < self.cplda_sfp_num + self.cpldb_sfp_num:
|
||||
self.port_to_i2c_mapping.update({x:6})
|
||||
else:
|
||||
self.port_to_i2c_mapping.update({x:8})
|
||||
|
||||
for x in range(self.port_start, self.port_end+1):
|
||||
eeprom_path = '/sys/bus/i2c/devices/{0}-0050/sfp'+str(x+1)+'_eeprom'
|
||||
port_eeprom_path = eeprom_path.format(self.port_to_i2c_mapping[x])
|
||||
self.port_to_eeprom_mapping[x] = port_eeprom_path
|
||||
SfpUtilBase.__init__(self)
|
||||
|
||||
|
||||
def get_presence(self, port_num):
|
||||
if port_num < self.port_start or port_num > self.port_end:
|
||||
return False
|
||||
|
||||
if port_num < self.cpldb_sfp_num:
|
||||
presence_path = '/sys/bus/i2c/devices/7-0075/sfp'+str(port_num+1)+'_present'
|
||||
elif port_num < self.cpldb_sfp_num + self.cplda_sfp_num:
|
||||
presence_path = '/sys/bus/i2c/devices/6-0074/sfp'+str(port_num+1)+'_present'
|
||||
else:
|
||||
presence_path = '/sys/bus/i2c/devices/8-0076/sfp'+str(port_num+1)+'_present'
|
||||
|
||||
try:
|
||||
file = open(presence_path)
|
||||
except IOError as e:
|
||||
print "Error: unable to open file: %s" % str(e)
|
||||
return False
|
||||
|
||||
value = int(file.readline().rstrip())
|
||||
|
||||
file.close()
|
||||
if value == 0:
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def get_low_power_mode(self, port_num):
|
||||
if port_num not in self.qsfp_ports:
|
||||
return False
|
||||
|
||||
lowpower_path = '/sys/bus/i2c/devices/8-0076/sfp'+str(port_num+1)+'_lowpower'
|
||||
|
||||
try:
|
||||
file = open(lowpower_path)
|
||||
except IOError as e:
|
||||
print "Error: unable to open file: %s" % str(e)
|
||||
return False
|
||||
|
||||
value = int(file.readline().rstrip())
|
||||
|
||||
file.close()
|
||||
if value == 1:
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def set_low_power_mode(self, port_num, lpmode):
|
||||
if port_num not in self.qsfp_ports:
|
||||
return False
|
||||
|
||||
lowpower_path = '/sys/bus/i2c/devices/8-0076/sfp'+str(port_num+1)+'_lowpower'
|
||||
|
||||
# LPMode is active high; set or clear the bit accordingly
|
||||
if lpmode is True:
|
||||
value = 1
|
||||
else:
|
||||
value = 0
|
||||
|
||||
try:
|
||||
file = open(lowpower_path, "r+")
|
||||
except IOError as e:
|
||||
print "Error: unable to open file: %s" % str(e)
|
||||
return False
|
||||
|
||||
file.seek(0)
|
||||
file.write(str(value))
|
||||
file.close()
|
||||
|
||||
return True
|
||||
|
||||
def reset(self, port_num):
|
||||
if port_num not in self.qsfp_ports:
|
||||
return False
|
||||
reset_path = '/sys/bus/i2c/devices/8-0076/sfp'+str(port_num+1)+'_reset'
|
||||
|
||||
try:
|
||||
file = open(reset_path, "r+")
|
||||
except IOError as e:
|
||||
print "Error: unable to open file: %s" % str(e)
|
||||
return False
|
||||
|
||||
file.seek(0)
|
||||
file.write(str(2))
|
||||
file.close()
|
||||
|
||||
# Sleep 1 second to allow it to settle
|
||||
time.sleep(1)
|
||||
|
||||
try:
|
||||
file = open(reset_path, "r+")
|
||||
except IOError as e:
|
||||
print "Error: unable to open file: %s" % str(e)
|
||||
return False
|
||||
|
||||
file.seek(0)
|
||||
file.write(str(1))
|
||||
file.close()
|
||||
|
||||
return True
|
||||
|
||||
def read_porttab_mappings(self, porttabfile):
|
||||
logical = []
|
||||
logical_to_bcm = {}
|
||||
logical_to_physical = {}
|
||||
physical_to_logical = {}
|
||||
last_fp_port_index = 0
|
||||
last_portname = ""
|
||||
first = 1
|
||||
port_pos_in_file = 0
|
||||
parse_fmt_port_config_ini = False
|
||||
|
||||
try:
|
||||
f = open(porttabfile)
|
||||
except:
|
||||
raise
|
||||
|
||||
parse_fmt_port_config_ini = (os.path.basename(porttabfile) == "port_config.ini")
|
||||
|
||||
# Read the porttab file and generate dicts
|
||||
# with mapping for future reference.
|
||||
# XXX: move the porttab
|
||||
# parsing stuff to a separate module, or reuse
|
||||
# if something already exists
|
||||
for line in f:
|
||||
line.strip()
|
||||
if re.search("^#", line) is not None:
|
||||
continue
|
||||
|
||||
# Parsing logic for 'port_config.ini' file
|
||||
if (parse_fmt_port_config_ini):
|
||||
# bcm_port is not explicitly listed in port_config.ini format
|
||||
# Currently we assume ports are listed in numerical order according to bcm_port
|
||||
# so we use the port's position in the file (zero-based) as bcm_port
|
||||
portname = line.split()[0]
|
||||
|
||||
bcm_port = str(port_pos_in_file)
|
||||
|
||||
if len(line.split()) >= 4:
|
||||
fp_port_index = int(line.split()[3])
|
||||
else:
|
||||
fp_port_index = portname.split("Ethernet").pop()
|
||||
fp_port_index = int(fp_port_index.split("s").pop(0))/4
|
||||
else: # Parsing logic for older 'portmap.ini' file
|
||||
(portname, bcm_port) = line.split("=")[1].split(",")[:2]
|
||||
|
||||
fp_port_index = portname.split("Ethernet").pop()
|
||||
fp_port_index = int(fp_port_index.split("s").pop(0))/4
|
||||
|
||||
if ((len(self.sfp_ports) > 0) and (fp_port_index not in self.sfp_ports)):
|
||||
continue
|
||||
|
||||
if first == 1:
|
||||
# Initialize last_[physical|logical]_port
|
||||
# to the first valid port
|
||||
last_fp_port_index = fp_port_index
|
||||
last_portname = portname
|
||||
first = 0
|
||||
|
||||
logical.append(portname)
|
||||
|
||||
logical_to_bcm[portname] = "xe" + bcm_port
|
||||
logical_to_physical[portname] = [fp_port_index]
|
||||
if physical_to_logical.get(fp_port_index) is None:
|
||||
physical_to_logical[fp_port_index] = [portname]
|
||||
else:
|
||||
physical_to_logical[fp_port_index].append(
|
||||
portname)
|
||||
|
||||
if (fp_port_index - last_fp_port_index) > 1:
|
||||
# last port was a gang port
|
||||
for p in range(last_fp_port_index+1, fp_port_index):
|
||||
logical_to_physical[last_portname].append(p)
|
||||
if physical_to_logical.get(p) is None:
|
||||
physical_to_logical[p] = [last_portname]
|
||||
else:
|
||||
physical_to_logical[p].append(last_portname)
|
||||
|
||||
last_fp_port_index = fp_port_index
|
||||
last_portname = portname
|
||||
|
||||
port_pos_in_file += 1
|
||||
|
||||
self.logical = logical
|
||||
self.logical_to_bcm = logical_to_bcm
|
||||
self.logical_to_physical = logical_to_physical
|
||||
self.physical_to_logical = physical_to_logical
|
||||
|
||||
"""
|
||||
print "logical: " + self.logical
|
||||
print "logical to bcm: " + self.logical_to_bcm
|
||||
print "logical to physical: " + self.logical_to_physical
|
||||
print "physical to logical: " + self.physical_to_logical
|
||||
"""
|
||||
|
||||
|
||||
|
55
device/pegatron/x86_64-pegatron_porsche-r0/porsche/port_config.ini
Executable file
55
device/pegatron/x86_64-pegatron_porsche-r0/porsche/port_config.ini
Executable file
@ -0,0 +1,55 @@
|
||||
#name lanes alias index speed
|
||||
Ethernet0 8 Ethernet1/1 0 10000
|
||||
Ethernet1 9 Ethernet2/1 1 10000
|
||||
Ethernet2 10 Ethernet3/1 2 10000
|
||||
Ethernet3 11 Ethernet4/1 3 10000
|
||||
Ethernet4 12 Ethernet5/1 4 10000
|
||||
Ethernet5 13 Ethernet6/1 5 10000
|
||||
Ethernet6 14 Ethernet7/1 6 10000
|
||||
Ethernet7 15 Ethernet8/1 7 10000
|
||||
Ethernet8 16 Ethernet9/1 8 10000
|
||||
Ethernet9 17 Ethernet10/1 9 10000
|
||||
Ethernet10 18 Ethernet11/1 10 10000
|
||||
Ethernet11 19 Ethernet12/1 11 10000
|
||||
Ethernet12 20 Ethernet13/1 12 10000
|
||||
Ethernet13 21 Ethernet14/1 13 10000
|
||||
Ethernet14 22 Ethernet15/1 14 10000
|
||||
Ethernet15 23 Ethernet16/1 15 10000
|
||||
Ethernet16 32 Ethernet17/1 16 10000
|
||||
Ethernet17 33 Ethernet18/1 17 10000
|
||||
Ethernet18 34 Ethernet19/1 18 10000
|
||||
Ethernet19 35 Ethernet20/1 19 10000
|
||||
Ethernet20 40 Ethernet21/1 20 10000
|
||||
Ethernet21 41 Ethernet22/1 21 10000
|
||||
Ethernet22 42 Ethernet23/1 22 10000
|
||||
Ethernet23 43 Ethernet24/1 23 10000
|
||||
Ethernet24 48 Ethernet25/1 24 10000
|
||||
Ethernet25 49 Ethernet26/1 25 10000
|
||||
Ethernet26 50 Ethernet27/1 26 10000
|
||||
Ethernet27 51 Ethernet28/1 27 10000
|
||||
Ethernet28 56 Ethernet29/1 28 10000
|
||||
Ethernet29 57 Ethernet30/1 29 10000
|
||||
Ethernet30 58 Ethernet31/1 30 10000
|
||||
Ethernet31 59 Ethernet32/1 31 10000
|
||||
Ethernet32 64 Ethernet33/1 32 10000
|
||||
Ethernet33 65 Ethernet34/1 33 10000
|
||||
Ethernet34 66 Ethernet35/1 34 10000
|
||||
Ethernet35 67 Ethernet36/1 35 10000
|
||||
Ethernet36 68 Ethernet37/1 36 10000
|
||||
Ethernet37 69 Ethernet38/1 37 10000
|
||||
Ethernet38 70 Ethernet39/1 38 10000
|
||||
Ethernet39 71 Ethernet40/1 39 10000
|
||||
Ethernet40 72 Ethernet41/1 40 10000
|
||||
Ethernet41 73 Ethernet42/1 41 10000
|
||||
Ethernet42 74 Ethernet43/1 42 10000
|
||||
Ethernet43 75 Ethernet44/1 43 10000
|
||||
Ethernet44 76 Ethernet45/1 44 10000
|
||||
Ethernet45 77 Ethernet46/1 45 10000
|
||||
Ethernet46 78 Ethernet47/1 46 10000
|
||||
Ethernet47 79 Ethernet48/1 47 10000
|
||||
Ethernet48 80,81,82,83 Ethernet49/1 48 100000
|
||||
Ethernet49 84,85,86,87 Ethernet50/1 49 100000
|
||||
Ethernet50 104,105,106,107 Ethernet51/1 50 100000
|
||||
Ethernet51 108,109,110,111 Ethernet52/1 51 100000
|
||||
Ethernet52 112,113,114,115 Ethernet53/1 52 100000
|
||||
Ethernet53 116,117,118,119 Ethernet54/1 53 100000
|
2
device/pegatron/x86_64-pegatron_porsche-r0/porsche/sai.profile
Executable file
2
device/pegatron/x86_64-pegatron_porsche-r0/porsche/sai.profile
Executable file
@ -0,0 +1,2 @@
|
||||
SAI_INIT_CONFIG_FILE=/usr/share/sonic/platform/tau-porsche.cfg
|
||||
SAI_DSH_CONFIG_FILE=/usr/share/sonic/hwsku/tau-porsche.dsh
|
497
device/pegatron/x86_64-pegatron_porsche-r0/porsche/tau-porsche.dsh
Executable file
497
device/pegatron/x86_64-pegatron_porsche-r0/porsche/tau-porsche.dsh
Executable file
@ -0,0 +1,497 @@
|
||||
init start stage unit=0 low-level
|
||||
init set port-map unit=0 port=0 eth-macro=2 lane=0 max-speed=10g active=true
|
||||
init set port-map unit=0 port=1 eth-macro=2 lane=1 max-speed=10g active=true
|
||||
init set port-map unit=0 port=2 eth-macro=2 lane=2 max-speed=10g active=true
|
||||
init set port-map unit=0 port=3 eth-macro=2 lane=3 max-speed=10g active=true
|
||||
init set port-map unit=0 port=4 eth-macro=3 lane=0 max-speed=10g active=true
|
||||
init set port-map unit=0 port=5 eth-macro=3 lane=1 max-speed=10g active=true
|
||||
init set port-map unit=0 port=6 eth-macro=3 lane=2 max-speed=10g active=true
|
||||
init set port-map unit=0 port=7 eth-macro=3 lane=3 max-speed=10g active=true
|
||||
init set port-map unit=0 port=8 eth-macro=4 lane=0 max-speed=10g active=true
|
||||
init set port-map unit=0 port=9 eth-macro=4 lane=1 max-speed=10g active=true
|
||||
init set port-map unit=0 port=10 eth-macro=4 lane=2 max-speed=10g active=true
|
||||
init set port-map unit=0 port=11 eth-macro=4 lane=3 max-speed=10g active=true
|
||||
init set port-map unit=0 port=12 eth-macro=5 lane=0 max-speed=10g active=true
|
||||
init set port-map unit=0 port=13 eth-macro=5 lane=1 max-speed=10g active=true
|
||||
init set port-map unit=0 port=14 eth-macro=5 lane=2 max-speed=10g active=true
|
||||
init set port-map unit=0 port=15 eth-macro=5 lane=3 max-speed=10g active=true
|
||||
init set port-map unit=0 port=16 eth-macro=8 lane=0 max-speed=10g active=true
|
||||
init set port-map unit=0 port=17 eth-macro=8 lane=1 max-speed=10g active=true
|
||||
init set port-map unit=0 port=18 eth-macro=8 lane=2 max-speed=10g active=true
|
||||
init set port-map unit=0 port=19 eth-macro=8 lane=3 max-speed=10g active=true
|
||||
init set port-map unit=0 port=20 eth-macro=10 lane=0 max-speed=10g active=true
|
||||
init set port-map unit=0 port=21 eth-macro=10 lane=1 max-speed=10g active=true
|
||||
init set port-map unit=0 port=22 eth-macro=10 lane=2 max-speed=10g active=true
|
||||
init set port-map unit=0 port=23 eth-macro=10 lane=3 max-speed=10g active=true
|
||||
init set port-map unit=0 port=24 eth-macro=12 lane=0 max-speed=10g active=true
|
||||
init set port-map unit=0 port=25 eth-macro=12 lane=1 max-speed=10g active=true
|
||||
init set port-map unit=0 port=26 eth-macro=12 lane=2 max-speed=10g active=true
|
||||
init set port-map unit=0 port=27 eth-macro=12 lane=3 max-speed=10g active=true
|
||||
init set port-map unit=0 port=28 eth-macro=14 lane=0 max-speed=10g active=true
|
||||
init set port-map unit=0 port=29 eth-macro=14 lane=1 max-speed=10g active=true
|
||||
init set port-map unit=0 port=30 eth-macro=14 lane=2 max-speed=10g active=true
|
||||
init set port-map unit=0 port=31 eth-macro=14 lane=3 max-speed=10g active=true
|
||||
init set port-map unit=0 port=32 eth-macro=16 lane=0 max-speed=10g active=true
|
||||
init set port-map unit=0 port=33 eth-macro=16 lane=1 max-speed=10g active=true
|
||||
init set port-map unit=0 port=34 eth-macro=16 lane=2 max-speed=10g active=true
|
||||
init set port-map unit=0 port=35 eth-macro=16 lane=3 max-speed=10g active=true
|
||||
init set port-map unit=0 port=36 eth-macro=17 lane=0 max-speed=10g active=true
|
||||
init set port-map unit=0 port=37 eth-macro=17 lane=1 max-speed=10g active=true
|
||||
init set port-map unit=0 port=38 eth-macro=17 lane=2 max-speed=10g active=true
|
||||
init set port-map unit=0 port=39 eth-macro=17 lane=3 max-speed=10g active=true
|
||||
init set port-map unit=0 port=40 eth-macro=18 lane=0 max-speed=10g active=true
|
||||
init set port-map unit=0 port=41 eth-macro=18 lane=1 max-speed=10g active=true
|
||||
init set port-map unit=0 port=42 eth-macro=18 lane=2 max-speed=10g active=true
|
||||
init set port-map unit=0 port=43 eth-macro=18 lane=3 max-speed=10g active=true
|
||||
init set port-map unit=0 port=44 eth-macro=19 lane=0 max-speed=10g active=true
|
||||
init set port-map unit=0 port=45 eth-macro=19 lane=1 max-speed=10g active=true
|
||||
init set port-map unit=0 port=46 eth-macro=19 lane=2 max-speed=10g active=true
|
||||
init set port-map unit=0 port=47 eth-macro=19 lane=3 max-speed=10g active=true
|
||||
init set port-map unit=0 port=48 eth-macro=20 lane=0 max-speed=100g active=true
|
||||
init set port-map unit=0 port=49 eth-macro=21 lane=0 max-speed=100g active=true
|
||||
init set port-map unit=0 port=50 eth-macro=26 lane=0 max-speed=100g active=true
|
||||
init set port-map unit=0 port=51 eth-macro=27 lane=0 max-speed=100g active=true
|
||||
init set port-map unit=0 port=52 eth-macro=28 lane=0 max-speed=100g active=true
|
||||
init set port-map unit=0 port=53 eth-macro=29 lane=0 max-speed=100g active=true init-done=true
|
||||
init start stage unit=0 task-rsrc
|
||||
init start stage unit=0 module
|
||||
init start stage unit=0 task
|
||||
phy set lane-swap unit=0 portlist=0 lane-cnt=1 property=tx data=0x00
|
||||
phy set lane-swap unit=0 portlist=1 lane-cnt=1 property=tx data=0x01
|
||||
phy set lane-swap unit=0 portlist=2 lane-cnt=1 property=tx data=0x02
|
||||
phy set lane-swap unit=0 portlist=3 lane-cnt=1 property=tx data=0x03
|
||||
phy set lane-swap unit=0 portlist=4 lane-cnt=1 property=tx data=0x02
|
||||
phy set lane-swap unit=0 portlist=5 lane-cnt=1 property=tx data=0x03
|
||||
phy set lane-swap unit=0 portlist=6 lane-cnt=1 property=tx data=0x00
|
||||
phy set lane-swap unit=0 portlist=7 lane-cnt=1 property=tx data=0x01
|
||||
phy set lane-swap unit=0 portlist=8 lane-cnt=1 property=tx data=0x00
|
||||
phy set lane-swap unit=0 portlist=9 lane-cnt=1 property=tx data=0x01
|
||||
phy set lane-swap unit=0 portlist=10 lane-cnt=1 property=tx data=0x02
|
||||
phy set lane-swap unit=0 portlist=11 lane-cnt=1 property=tx data=0x03
|
||||
phy set lane-swap unit=0 portlist=12 lane-cnt=1 property=tx data=0x00
|
||||
phy set lane-swap unit=0 portlist=13 lane-cnt=1 property=tx data=0x03
|
||||
phy set lane-swap unit=0 portlist=14 lane-cnt=1 property=tx data=0x02
|
||||
phy set lane-swap unit=0 portlist=15 lane-cnt=1 property=tx data=0x01
|
||||
phy set lane-swap unit=0 portlist=16 lane-cnt=1 property=tx data=0x03
|
||||
phy set lane-swap unit=0 portlist=17 lane-cnt=1 property=tx data=0x02
|
||||
phy set lane-swap unit=0 portlist=18 lane-cnt=1 property=tx data=0x01
|
||||
phy set lane-swap unit=0 portlist=19 lane-cnt=1 property=tx data=0x00
|
||||
phy set lane-swap unit=0 portlist=20 lane-cnt=1 property=tx data=0x02
|
||||
phy set lane-swap unit=0 portlist=21 lane-cnt=1 property=tx data=0x03
|
||||
phy set lane-swap unit=0 portlist=22 lane-cnt=1 property=tx data=0x00
|
||||
phy set lane-swap unit=0 portlist=23 lane-cnt=1 property=tx data=0x01
|
||||
phy set lane-swap unit=0 portlist=24 lane-cnt=1 property=tx data=0x02
|
||||
phy set lane-swap unit=0 portlist=25 lane-cnt=1 property=tx data=0x03
|
||||
phy set lane-swap unit=0 portlist=26 lane-cnt=1 property=tx data=0x00
|
||||
phy set lane-swap unit=0 portlist=27 lane-cnt=1 property=tx data=0x01
|
||||
phy set lane-swap unit=0 portlist=28 lane-cnt=1 property=tx data=0x02
|
||||
phy set lane-swap unit=0 portlist=29 lane-cnt=1 property=tx data=0x03
|
||||
phy set lane-swap unit=0 portlist=30 lane-cnt=1 property=tx data=0x00
|
||||
phy set lane-swap unit=0 portlist=31 lane-cnt=1 property=tx data=0x01
|
||||
phy set lane-swap unit=0 portlist=32 lane-cnt=1 property=tx data=0x00
|
||||
phy set lane-swap unit=0 portlist=33 lane-cnt=1 property=tx data=0x01
|
||||
phy set lane-swap unit=0 portlist=34 lane-cnt=1 property=tx data=0x02
|
||||
phy set lane-swap unit=0 portlist=35 lane-cnt=1 property=tx data=0x03
|
||||
phy set lane-swap unit=0 portlist=36 lane-cnt=1 property=tx data=0x00
|
||||
phy set lane-swap unit=0 portlist=37 lane-cnt=1 property=tx data=0x01
|
||||
phy set lane-swap unit=0 portlist=38 lane-cnt=1 property=tx data=0x02
|
||||
phy set lane-swap unit=0 portlist=39 lane-cnt=1 property=tx data=0x03
|
||||
phy set lane-swap unit=0 portlist=40 lane-cnt=1 property=tx data=0x00
|
||||
phy set lane-swap unit=0 portlist=41 lane-cnt=1 property=tx data=0x01
|
||||
phy set lane-swap unit=0 portlist=42 lane-cnt=1 property=tx data=0x02
|
||||
phy set lane-swap unit=0 portlist=43 lane-cnt=1 property=tx data=0x03
|
||||
phy set lane-swap unit=0 portlist=44 lane-cnt=1 property=tx data=0x00
|
||||
phy set lane-swap unit=0 portlist=45 lane-cnt=1 property=tx data=0x01
|
||||
phy set lane-swap unit=0 portlist=46 lane-cnt=1 property=tx data=0x02
|
||||
phy set lane-swap unit=0 portlist=47 lane-cnt=1 property=tx data=0x03
|
||||
phy set lane-swap unit=0 portlist=48 lane-cnt=4 property=tx data=0x03.02.01.00
|
||||
phy set lane-swap unit=0 portlist=49 lane-cnt=4 property=tx data=0x01.02.03.00
|
||||
phy set lane-swap unit=0 portlist=50 lane-cnt=4 property=tx data=0x01.02.03.00
|
||||
phy set lane-swap unit=0 portlist=51 lane-cnt=4 property=tx data=0x03.02.01.00
|
||||
phy set lane-swap unit=0 portlist=52 lane-cnt=4 property=tx data=0x03.02.01.00
|
||||
phy set lane-swap unit=0 portlist=53 lane-cnt=4 property=tx data=0x01.02.03.00
|
||||
phy set lane-swap unit=0 portlist=0 lane-cnt=1 property=rx data=0x00
|
||||
phy set lane-swap unit=0 portlist=1 lane-cnt=1 property=rx data=0x01
|
||||
phy set lane-swap unit=0 portlist=2 lane-cnt=1 property=rx data=0x02
|
||||
phy set lane-swap unit=0 portlist=3 lane-cnt=1 property=rx data=0x03
|
||||
phy set lane-swap unit=0 portlist=4 lane-cnt=1 property=rx data=0x02
|
||||
phy set lane-swap unit=0 portlist=5 lane-cnt=1 property=rx data=0x03
|
||||
phy set lane-swap unit=0 portlist=6 lane-cnt=1 property=rx data=0x00
|
||||
phy set lane-swap unit=0 portlist=7 lane-cnt=1 property=rx data=0x01
|
||||
phy set lane-swap unit=0 portlist=8 lane-cnt=1 property=rx data=0x00
|
||||
phy set lane-swap unit=0 portlist=9 lane-cnt=1 property=rx data=0x01
|
||||
phy set lane-swap unit=0 portlist=10 lane-cnt=1 property=rx data=0x02
|
||||
phy set lane-swap unit=0 portlist=11 lane-cnt=1 property=rx data=0x03
|
||||
phy set lane-swap unit=0 portlist=12 lane-cnt=1 property=rx data=0x03
|
||||
phy set lane-swap unit=0 portlist=13 lane-cnt=1 property=rx data=0x02
|
||||
phy set lane-swap unit=0 portlist=14 lane-cnt=1 property=rx data=0x01
|
||||
phy set lane-swap unit=0 portlist=15 lane-cnt=1 property=rx data=0x00
|
||||
phy set lane-swap unit=0 portlist=16 lane-cnt=1 property=rx data=0x00
|
||||
phy set lane-swap unit=0 portlist=17 lane-cnt=1 property=rx data=0x03
|
||||
phy set lane-swap unit=0 portlist=18 lane-cnt=1 property=rx data=0x02
|
||||
phy set lane-swap unit=0 portlist=19 lane-cnt=1 property=rx data=0x01
|
||||
phy set lane-swap unit=0 portlist=20 lane-cnt=1 property=rx data=0x00
|
||||
phy set lane-swap unit=0 portlist=21 lane-cnt=1 property=rx data=0x03
|
||||
phy set lane-swap unit=0 portlist=22 lane-cnt=1 property=rx data=0x02
|
||||
phy set lane-swap unit=0 portlist=23 lane-cnt=1 property=rx data=0x01
|
||||
phy set lane-swap unit=0 portlist=24 lane-cnt=1 property=rx data=0x00
|
||||
phy set lane-swap unit=0 portlist=25 lane-cnt=1 property=rx data=0x03
|
||||
phy set lane-swap unit=0 portlist=26 lane-cnt=1 property=rx data=0x02
|
||||
phy set lane-swap unit=0 portlist=27 lane-cnt=1 property=rx data=0x01
|
||||
phy set lane-swap unit=0 portlist=28 lane-cnt=1 property=rx data=0x00
|
||||
phy set lane-swap unit=0 portlist=29 lane-cnt=1 property=rx data=0x03
|
||||
phy set lane-swap unit=0 portlist=30 lane-cnt=1 property=rx data=0x02
|
||||
phy set lane-swap unit=0 portlist=31 lane-cnt=1 property=rx data=0x01
|
||||
phy set lane-swap unit=0 portlist=32 lane-cnt=1 property=rx data=0x02
|
||||
phy set lane-swap unit=0 portlist=33 lane-cnt=1 property=rx data=0x01
|
||||
phy set lane-swap unit=0 portlist=34 lane-cnt=1 property=rx data=0x00
|
||||
phy set lane-swap unit=0 portlist=35 lane-cnt=1 property=rx data=0x03
|
||||
phy set lane-swap unit=0 portlist=36 lane-cnt=1 property=rx data=0x02
|
||||
phy set lane-swap unit=0 portlist=37 lane-cnt=1 property=rx data=0x01
|
||||
phy set lane-swap unit=0 portlist=38 lane-cnt=1 property=rx data=0x00
|
||||
phy set lane-swap unit=0 portlist=39 lane-cnt=1 property=rx data=0x03
|
||||
phy set lane-swap unit=0 portlist=40 lane-cnt=1 property=rx data=0x02
|
||||
phy set lane-swap unit=0 portlist=41 lane-cnt=1 property=rx data=0x01
|
||||
phy set lane-swap unit=0 portlist=42 lane-cnt=1 property=rx data=0x00
|
||||
phy set lane-swap unit=0 portlist=43 lane-cnt=1 property=rx data=0x03
|
||||
phy set lane-swap unit=0 portlist=44 lane-cnt=1 property=rx data=0x02
|
||||
phy set lane-swap unit=0 portlist=45 lane-cnt=1 property=rx data=0x01
|
||||
phy set lane-swap unit=0 portlist=46 lane-cnt=1 property=rx data=0x00
|
||||
phy set lane-swap unit=0 portlist=47 lane-cnt=1 property=rx data=0x03
|
||||
phy set lane-swap unit=0 portlist=48 lane-cnt=4 property=rx data=0x03.00.01.02
|
||||
phy set lane-swap unit=0 portlist=49 lane-cnt=4 property=rx data=0x03.00.01.02
|
||||
phy set lane-swap unit=0 portlist=50 lane-cnt=4 property=rx data=0x03.01.02.00
|
||||
phy set lane-swap unit=0 portlist=51 lane-cnt=4 property=rx data=0x03.02.01.00
|
||||
phy set lane-swap unit=0 portlist=52 lane-cnt=4 property=rx data=0x03.02.01.00
|
||||
phy set lane-swap unit=0 portlist=53 lane-cnt=4 property=rx data=0x00.01.02.03
|
||||
phy set polarity-rev unit=0 portlist=0 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=1 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=2 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=3 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=4 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=5 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=6 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=7 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=8 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=9 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=10 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=11 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=12 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=13 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=14 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=15 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=16 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=17 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=18 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=19 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=20 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=21 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=22 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=23 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=24 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=25 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=26 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=27 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=28 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=29 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=30 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=31 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=32 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=33 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=34 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=35 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=36 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=37 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=38 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=39 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=40 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=41 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=42 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=43 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=44 lane-cnt=1 property=tx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=45 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=46 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=47 lane-cnt=1 property=tx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=48 lane-cnt=4 property=tx data=0x00.01.00.00
|
||||
phy set polarity-rev unit=0 portlist=49 lane-cnt=4 property=tx data=0x00.00.01.00
|
||||
phy set polarity-rev unit=0 portlist=50 lane-cnt=4 property=tx data=0x01.00.01.01
|
||||
phy set polarity-rev unit=0 portlist=51 lane-cnt=4 property=tx data=0x01.01.01.01
|
||||
phy set polarity-rev unit=0 portlist=52 lane-cnt=4 property=tx data=0x01.00.00.00
|
||||
phy set polarity-rev unit=0 portlist=53 lane-cnt=4 property=tx data=0x00.00.01.00
|
||||
phy set polarity-rev unit=0 portlist=0 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=1 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=2 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=3 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=4 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=5 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=6 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=7 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=8 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=9 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=10 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=11 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=12 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=13 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=14 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=15 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=16 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=17 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=18 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=19 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=20 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=21 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=22 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=23 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=24 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=25 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=26 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=27 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=28 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=29 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=30 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=31 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=32 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=33 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=34 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=35 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=36 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=37 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=38 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=39 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=40 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=41 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=42 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=43 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=44 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=45 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=46 lane-cnt=1 property=rx data=0x01
|
||||
phy set polarity-rev unit=0 portlist=47 lane-cnt=1 property=rx data=0x00
|
||||
phy set polarity-rev unit=0 portlist=48 lane-cnt=4 property=rx data=0x00.01.00.00
|
||||
phy set polarity-rev unit=0 portlist=49 lane-cnt=4 property=rx data=0x00.00.01.00
|
||||
phy set polarity-rev unit=0 portlist=50 lane-cnt=4 property=rx data=0x00.00.01.01
|
||||
phy set polarity-rev unit=0 portlist=51 lane-cnt=4 property=rx data=0x00.01.00.01
|
||||
phy set polarity-rev unit=0 portlist=52 lane-cnt=4 property=rx data=0x00.01.00.01
|
||||
phy set polarity-rev unit=0 portlist=53 lane-cnt=4 property=rx data=0x01.01.01.01
|
||||
phy set pre-emphasis unit=0 portlist=0 lane-cnt=1 property=c2 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=0 lane-cnt=1 property=cn1 data=0x04
|
||||
phy set pre-emphasis unit=0 portlist=0 lane-cnt=1 property=c0 data=0x1E
|
||||
phy set pre-emphasis unit=0 portlist=0 lane-cnt=1 property=c1 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=1 lane-cnt=1 property=c2 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=1 lane-cnt=1 property=cn1 data=0x04
|
||||
phy set pre-emphasis unit=0 portlist=1 lane-cnt=1 property=c0 data=0x1E
|
||||
phy set pre-emphasis unit=0 portlist=1 lane-cnt=1 property=c1 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=2 lane-cnt=1 property=c2 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=2 lane-cnt=1 property=cn1 data=0x04
|
||||
phy set pre-emphasis unit=0 portlist=2 lane-cnt=1 property=c0 data=0x1E
|
||||
phy set pre-emphasis unit=0 portlist=2 lane-cnt=1 property=c1 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=3 lane-cnt=1 property=c2 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=3 lane-cnt=1 property=cn1 data=0x04
|
||||
phy set pre-emphasis unit=0 portlist=3 lane-cnt=1 property=c0 data=0x1E
|
||||
phy set pre-emphasis unit=0 portlist=3 lane-cnt=1 property=c1 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=4 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=4 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=4 lane-cnt=1 property=c0 data=0x1B
|
||||
phy set pre-emphasis unit=0 portlist=4 lane-cnt=1 property=c1 data=0x07
|
||||
phy set pre-emphasis unit=0 portlist=5 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=5 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=5 lane-cnt=1 property=c0 data=0x1B
|
||||
phy set pre-emphasis unit=0 portlist=5 lane-cnt=1 property=c1 data=0x07
|
||||
phy set pre-emphasis unit=0 portlist=6 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=6 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=6 lane-cnt=1 property=c0 data=0x1B
|
||||
phy set pre-emphasis unit=0 portlist=6 lane-cnt=1 property=c1 data=0x07
|
||||
phy set pre-emphasis unit=0 portlist=7 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=7 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=7 lane-cnt=1 property=c0 data=0x1B
|
||||
phy set pre-emphasis unit=0 portlist=7 lane-cnt=1 property=c1 data=0x07
|
||||
phy set pre-emphasis unit=0 portlist=8 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=8 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=8 lane-cnt=1 property=c0 data=0x1B
|
||||
phy set pre-emphasis unit=0 portlist=8 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=9 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=9 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=9 lane-cnt=1 property=c0 data=0x1B
|
||||
phy set pre-emphasis unit=0 portlist=9 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=10 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=10 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=10 lane-cnt=1 property=c0 data=0x1B
|
||||
phy set pre-emphasis unit=0 portlist=10 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=11 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=11 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=11 lane-cnt=1 property=c0 data=0x1B
|
||||
phy set pre-emphasis unit=0 portlist=11 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=12 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=12 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=12 lane-cnt=1 property=c0 data=0x1B
|
||||
phy set pre-emphasis unit=0 portlist=12 lane-cnt=1 property=c1 data=0x07
|
||||
phy set pre-emphasis unit=0 portlist=13 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=13 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=13 lane-cnt=1 property=c0 data=0x1B
|
||||
phy set pre-emphasis unit=0 portlist=13 lane-cnt=1 property=c1 data=0x07
|
||||
phy set pre-emphasis unit=0 portlist=14 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=14 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=14 lane-cnt=1 property=c0 data=0x1B
|
||||
phy set pre-emphasis unit=0 portlist=14 lane-cnt=1 property=c1 data=0x07
|
||||
phy set pre-emphasis unit=0 portlist=15 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=15 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=15 lane-cnt=1 property=c0 data=0x1B
|
||||
phy set pre-emphasis unit=0 portlist=15 lane-cnt=1 property=c1 data=0x07
|
||||
phy set pre-emphasis unit=0 portlist=16 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=16 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=16 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=16 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=17 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=17 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=17 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=17 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=18 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=18 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=18 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=18 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=19 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=19 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=19 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=19 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=20 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=20 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=20 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=20 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=21 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=21 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=21 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=21 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=22 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=22 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=22 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=22 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=23 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=23 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=23 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=23 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=24 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=24 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=24 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=24 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=25 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=25 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=25 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=25 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=26 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=26 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=26 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=26 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=27 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=27 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=27 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=27 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=28 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=28 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=28 lane-cnt=1 property=c0 data=0x1D
|
||||
phy set pre-emphasis unit=0 portlist=28 lane-cnt=1 property=c1 data=0x05
|
||||
phy set pre-emphasis unit=0 portlist=29 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=29 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=29 lane-cnt=1 property=c0 data=0x1D
|
||||
phy set pre-emphasis unit=0 portlist=29 lane-cnt=1 property=c1 data=0x05
|
||||
phy set pre-emphasis unit=0 portlist=30 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=30 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=30 lane-cnt=1 property=c0 data=0x1D
|
||||
phy set pre-emphasis unit=0 portlist=30 lane-cnt=1 property=c1 data=0x05
|
||||
phy set pre-emphasis unit=0 portlist=31 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=31 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=31 lane-cnt=1 property=c0 data=0x1D
|
||||
phy set pre-emphasis unit=0 portlist=31 lane-cnt=1 property=c1 data=0x05
|
||||
phy set pre-emphasis unit=0 portlist=32 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=32 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=32 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=32 lane-cnt=1 property=c1 data=0x05
|
||||
phy set pre-emphasis unit=0 portlist=33 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=33 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=33 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=33 lane-cnt=1 property=c1 data=0x05
|
||||
phy set pre-emphasis unit=0 portlist=34 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=34 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=34 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=34 lane-cnt=1 property=c1 data=0x05
|
||||
phy set pre-emphasis unit=0 portlist=35 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=35 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=35 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=35 lane-cnt=1 property=c1 data=0x05
|
||||
phy set pre-emphasis unit=0 portlist=36 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=36 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=36 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=36 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=37 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=37 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=37 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=37 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=38 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=38 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=38 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=38 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=39 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=39 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=39 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=39 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=40 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=40 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=40 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=40 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=41 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=41 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=41 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=41 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=42 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=42 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=42 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=42 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=43 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=43 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=43 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=43 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=44 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=44 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=44 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=44 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=45 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=45 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=45 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=45 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=46 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=46 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=46 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=46 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=47 lane-cnt=1 property=c2 data=0x02
|
||||
phy set pre-emphasis unit=0 portlist=47 lane-cnt=1 property=cn1 data=0x00
|
||||
phy set pre-emphasis unit=0 portlist=47 lane-cnt=1 property=c0 data=0x1C
|
||||
phy set pre-emphasis unit=0 portlist=47 lane-cnt=1 property=c1 data=0x06
|
||||
phy set pre-emphasis unit=0 portlist=48 lane-cnt=4 property=c2 data=0x02.02.02.02
|
||||
phy set pre-emphasis unit=0 portlist=48 lane-cnt=4 property=cn1 data=0x00.00.00.00
|
||||
phy set pre-emphasis unit=0 portlist=48 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C
|
||||
phy set pre-emphasis unit=0 portlist=48 lane-cnt=4 property=c1 data=0x06.06.06.06
|
||||
phy set pre-emphasis unit=0 portlist=49 lane-cnt=4 property=c2 data=0x02.02.02.02
|
||||
phy set pre-emphasis unit=0 portlist=49 lane-cnt=4 property=cn1 data=0x00.00.00.00
|
||||
phy set pre-emphasis unit=0 portlist=49 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B
|
||||
phy set pre-emphasis unit=0 portlist=49 lane-cnt=4 property=c1 data=0x06.06.06.06
|
||||
phy set pre-emphasis unit=0 portlist=50 lane-cnt=4 property=c2 data=0x02.02.02.02
|
||||
phy set pre-emphasis unit=0 portlist=50 lane-cnt=4 property=cn1 data=0x00.00.00.00
|
||||
phy set pre-emphasis unit=0 portlist=50 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B
|
||||
phy set pre-emphasis unit=0 portlist=50 lane-cnt=4 property=c1 data=0x06.06.06.06
|
||||
phy set pre-emphasis unit=0 portlist=51 lane-cnt=4 property=c2 data=0x02.02.02.02
|
||||
phy set pre-emphasis unit=0 portlist=51 lane-cnt=4 property=cn1 data=0x00.00.00.00
|
||||
phy set pre-emphasis unit=0 portlist=51 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B
|
||||
phy set pre-emphasis unit=0 portlist=51 lane-cnt=4 property=c1 data=0x06.06.06.06
|
||||
phy set pre-emphasis unit=0 portlist=52 lane-cnt=4 property=c2 data=0x02.02.02.02
|
||||
phy set pre-emphasis unit=0 portlist=52 lane-cnt=4 property=cn1 data=0x00.00.00.00
|
||||
phy set pre-emphasis unit=0 portlist=52 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B
|
||||
phy set pre-emphasis unit=0 portlist=52 lane-cnt=4 property=c1 data=0x07.07.07.07
|
||||
phy set pre-emphasis unit=0 portlist=53 lane-cnt=4 property=c2 data=0x02.02.02.02
|
||||
phy set pre-emphasis unit=0 portlist=53 lane-cnt=4 property=cn1 data=0x00.00.00.00
|
||||
phy set pre-emphasis unit=0 portlist=53 lane-cnt=4 property=c0 data=0x1A.1A.1A.1A
|
||||
phy set pre-emphasis unit=0 portlist=53 lane-cnt=4 property=c1 data=0x07.07.07.07
|
||||
port set property unit=0 portlist=0-47 speed=10g
|
||||
port set property unit=0 portlist=0-47 medium-type=sr
|
||||
port set property unit=0 portlist=48-53 speed=100g
|
||||
port set property unit=0 portlist=48-53 medium-type=sr4
|
||||
port set property unit=0 portlist=0-53 fec=disable
|
||||
port set property unit=0 portlist=0-53 an=disable
|
||||
port set property unit=0 portlist=0-53 admin=enable
|
23
device/pegatron/x86_64-pegatron_porsche-r0/tau-porsche.cfg
Executable file
23
device/pegatron/x86_64-pegatron_porsche-r0/tau-porsche.cfg
Executable file
@ -0,0 +1,23 @@
|
||||
#This configuration file is for customer init value feature. Please refer to mtk_cfg.h/mtk_cfg.c for detail.
|
||||
#1. The lines beginning with # are comment lines. The lines beginning with number are the setting lines.
|
||||
#2. There are five parameters which can be set.
|
||||
# 1) the first is unit.
|
||||
# 2) the second is NPS_CFG_TYPE_XXX. Refer to NPS_CFG_TYPE_T.
|
||||
# 3) the 3-5 are {param0, param1, value} pairs. Refer to NPS_CFG_VALUE_T. Support HEX format.
|
||||
# 4) the (unit, NPS_CFG_TYPE_XXX, param0, param1) group is the key to get the correspingding value.
|
||||
# There should be no same (unit, NPS_CFG_TYPE_XXX, param0, param1) group.
|
||||
#3. User must follow correct format to apply the setting. Please refer to below commentted example(#0 NPS_CFG_TYPE_L2_ADDR_MODE 0 0 1);
|
||||
#4. Usage under the linux shell:
|
||||
# 1) ./image-path/image-name -c cfg-path/NPS_Ari_EVB_24.cfg : mamually specify directory path if they are not in current work dirctory.
|
||||
# 2) ./image-name -c NPS_Ari_EVB_24.cfg : the image and the NPS_Ari_EVB_24.cfg are in the current work directory.
|
||||
|
||||
#unit NPS_CFG_TYPE_XXX param0 param1 value
|
||||
#---- ---------------- ------ ------ -----
|
||||
0 NPS_CFG_TYPE_USE_UNIT_PORT 0 0 1
|
||||
0 NPS_CFG_TYPE_LED_CFG 0 0 3
|
||||
0 NPS_CFG_TYPE_CPI_PORT_MODE 129 0 1
|
||||
0 NPS_CFG_TYPE_CPI_PORT_MODE 130 0 1
|
||||
0 NPS_CFG_TYPE_USER_BUF_CTRL 0 0 1
|
||||
0 NPS_CFG_TYPE_HASH_L2_FDB_REGION_ENTRY_NUM 0 0 49152
|
||||
0 NPS_CFG_TYPE_HASH_L3_WITH_IPV6_PREFIX_64_REGION_ENTRY_NUM 0 0 32768
|
||||
|
@ -20,6 +20,11 @@ elif [ "$platform" == "cavium" ]; then
|
||||
ORCHAGENT_ARGS+="-m $MAC_ADDRESS"
|
||||
elif [ "$platform" == "nephos" ]; then
|
||||
ORCHAGENT_ARGS+="-m $MAC_ADDRESS"
|
||||
elif [ "$platform" == "centec" ]; then
|
||||
last_byte=$(python -c "print '$MAC_ADDRESS'[-2:]")
|
||||
aligned_last_byte=$(python -c "print format(int(int('$last_byte', 16) + 1), '02x')") # put mask and take away the 0x prefix
|
||||
ALIGNED_MAC_ADDRESS=$(python -c "print '$MAC_ADDRESS'[:-2] + '$aligned_last_byte'") # put aligned byte into the end of MAC
|
||||
ORCHAGENT_ARGS+="-m $ALIGNED_MAC_ADDRESS"
|
||||
elif [ "$platform" == "barefoot" ]; then
|
||||
ORCHAGENT_ARGS+="-m $MAC_ADDRESS"
|
||||
fi
|
||||
|
@ -26,3 +26,5 @@ if [ -e /usr/share/sonic/platform/fancontrol ]; then
|
||||
fi
|
||||
|
||||
supervisorctl start ledd
|
||||
|
||||
supervisorctl start xcvrd
|
||||
|
@ -45,3 +45,12 @@ autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
startsecs=0
|
||||
|
||||
[program:xcvrd]
|
||||
command=/usr/bin/xcvrd
|
||||
priority=6
|
||||
autostart=false
|
||||
autorestart=false
|
||||
stdout_logfile=syslog
|
||||
stderr_logfile=syslog
|
||||
startsecs=0
|
||||
|
@ -75,7 +75,7 @@ sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install $CONFIG
|
||||
sudo rm -rf $FILESYSTEM_ROOT/$CONFIG_ENGINE_WHEEL_NAME
|
||||
|
||||
# Install Python client for Redis
|
||||
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install redis
|
||||
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install "redis==2.10.6"
|
||||
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip install redis-dump-load
|
||||
|
||||
# Install SwSS SDK Python 2 package
|
||||
|
@ -10,5 +10,5 @@ You are on
|
||||
Unauthorized access and/or use are prohibited.
|
||||
All access and/or use are subject to monitoring.
|
||||
|
||||
Help: http://azure.github.io/SONiC/
|
||||
Help: https://sonic-net.github.io/SONiC/
|
||||
|
||||
|
@ -172,7 +172,7 @@ umount "$root_mnt"
|
||||
if [ $(echo -n "$root_dev" | tail -c 1) == "1" ]; then
|
||||
# Create a new partition table (content in flash_dev will be deleted)
|
||||
err_msg="Error: repartitioning $flash_dev failed"
|
||||
cmd="echo ';' | sfdisk $flash_dev || (sleep 3; blockdev --rereadpt $flash_dev && fdisk -l $flash_dev | grep -q ${root_dev}.*Linux)"
|
||||
cmd="echo '2048' | sfdisk -u S --force $flash_dev || (sleep 3; blockdev --rereadpt $flash_dev && fdisk -l $flash_dev | grep -q ${root_dev}.*Linux)"
|
||||
run_cmd "$cmd" "$err_msg"
|
||||
fi
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
BFN_PLATFORM = bfnplatform_1.0.0_amd64.deb
|
||||
$(BFN_PLATFORM)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/rel_8_2/bfnplatform_1.0.0_amd64.deb"
|
||||
$(BFN_PLATFORM)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/201807/bfnplatform_1.0.0_amd64.deb"
|
||||
|
||||
SONIC_ONLINE_DEBS += $(BFN_PLATFORM) # $(BFN_SAI_DEV)
|
||||
$(BFN_SAI_DEV)_DEPENDS += $(BFN_PLATFORM)
|
||||
|
@ -1,5 +1,5 @@
|
||||
BFN_SAI = bfnsdk_1.0.0_amd64.deb
|
||||
$(BFN_SAI)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/rel_8_2/bfnsdk_1.0.0_amd64.deb"
|
||||
$(BFN_SAI)_URL = "https://github.com/barefootnetworks/sonic-release-pkgs/raw/201807/bfnsdk_1.0.0_amd64.deb"
|
||||
|
||||
SONIC_ONLINE_DEBS += $(BFN_SAI) # $(BFN_SAI_DEV)
|
||||
$(BFN_SAI_DEV)_DEPENDS += $(BFN_SAI)
|
||||
|
@ -27,6 +27,7 @@ RUN apt-get update \
|
||||
python-dev \
|
||||
wget \
|
||||
cmake \
|
||||
libpython3.4 \
|
||||
&& wget https://github.com/nanomsg/nanomsg/archive/1.0.0.tar.gz \
|
||||
&& tar xvfz 1.0.0.tar.gz \
|
||||
&& cd nanomsg-1.0.0 \
|
||||
|
@ -11,7 +11,7 @@ debs/{{ deb }}{{' '}}
|
||||
{%- endfor -%}
|
||||
debs/
|
||||
|
||||
RUN apt-get install -y libxml2 libpcap-dev libusb-1.0-0-dev libcurl3 libcurl4-gnutls-dev libunwind8-dev
|
||||
RUN apt-get install -y libxml2 libpcap-dev libusb-1.0-0-dev libcurl3 libcurl4-gnutls-dev libunwind8-dev libpython3.4
|
||||
|
||||
RUN dpkg -i \
|
||||
{% for deb in docker_syncd_bfn_debs.split(' ') -%}
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 406c4e675ea73d52827b520958c9956551a94e8e
|
||||
Subproject commit 46908e3e9315ad7f0742ebfde3281236556f1526
|
@ -1 +1 @@
|
||||
Subproject commit c114bb1f903a5630c3a02d450a026949c323defd
|
||||
Subproject commit 887996d9395dbdc96818020bd50e04da6f124ed5
|
@ -1 +1 @@
|
||||
Subproject commit 8bc799d26011622be07e03f888b4dd4c6b014d38
|
||||
Subproject commit 8778f07ee2df381c595c6a3c0f7b5d832543951a
|
@ -1 +1 @@
|
||||
Subproject commit ed807feb6f8efc612ae57dea3123256d972506c5
|
||||
Subproject commit 5b1ce26b76880979de5bbbb54140a750b2809367
|
@ -1,6 +1,6 @@
|
||||
# libsaithrift-dev package
|
||||
|
||||
LIBSAITHRIFT_DEV_CENTEC = libsaithrift-dev_1.2.1_amd64.deb
|
||||
LIBSAITHRIFT_DEV_CENTEC = libsaithrift-dev_1.3.0_amd64.deb
|
||||
$(LIBSAITHRIFT_DEV_CENTEC)_SRC_PATH = $(SRC_PATH)/sonic-sairedis/SAI
|
||||
$(LIBSAITHRIFT_DEV_CENTEC)_DEPENDS += $(LIBTHRIFT) $(LIBTHRIFT_DEV) $(THRIFT_COMPILER) $(CENTEC_SAI)
|
||||
$(LIBSAITHRIFT_DEV_CENTEC)_RDEPENDS += $(LIBTHRIFT) $(CENTEC_SAI)
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user