Compare commits

...

35 Commits

Author SHA1 Message Date
xumia
8a7b89883f
[201807] Change submodule path from Azure to sonic-net (#12319)
Why I did it
Change the path of sonic submodules that point to "Azure" to point to "sonic-net"

How I did it
Replace "Azure" with "sonic-net" on all relevant paths of sonic submodules
2022-10-12 21:08:12 +08:00
Stephen Sun
0e0d67846d [Mellanox] Fix the memory leak in mlnx-sfpd (201807) (#3131) 2019-07-10 12:12:26 -07:00
Andriy Moroz
cc04731338 [Mellanox] Update SAI (FDB fix) (#2656)
Signed-off-by: Andriy Moroz <c_andriym@mellanox.com>
2019-03-09 06:16:50 -08:00
shawnli-van
6bf252f45f [devices]: Fix arista-convertfs for aligning flash via sfdisk in Jessie (#2402)
The sfdisk in Jessie use unit Cylinder by default. To perform 1M
aligning partition, 2048 sector unit is desirable instead.
2018-12-27 20:58:30 -08:00
Peter5 Lin
a1e6c2ce5e Add Pegatron project to branch 201807 (#2299)
* Add Porsche project

* Upgrade kernel to 3.16.57-2
2018-12-04 10:13:11 -08:00
simonJi2018
c164caf529 update sdk and sai for 201807 (#2330)
* update device driver and support qos and fix some driver bug

* modified device file for support qos and fix some device init error
2018-12-04 10:09:43 -08:00
Kevin(Shengkai) Wang
fea4bdfc04 Fix redis-py version to 2.10.6 (#2342)
Signed-off-by: Kevin Wang <kevinw@mellanox.com>
2018-12-04 10:08:02 -08:00
lguohan
4af5328140 [thrift]: change wget download from -nc to -N (#2268)
-nc will not download if already here and return error
-N will compare the timestamp and not download the file.

Signed-off-by: Guohan Lu <gulv@microsoft.com>
2018-12-01 10:18:21 +00:00
Qi Luo
8b6d69ac9b Fix bug: wget rename saved file (#2259)
Signed-off-by: Qi Luo <qiluo-msft@users.noreply.github.com>
2018-12-01 10:17:24 +00:00
Qi Luo
9a64452568 Store thrift source packages in blob (#2255)
Signed-off-by: Qi Luo <qiluo-msft@users.noreply.github.com>
2018-12-01 10:16:08 +00:00
Kevin(Shengkai) Wang
2ffa1e9573 [Mellanox] Update hw-management service config (#2325)
Signed-off-by: Kevin Wang <kevinw@mellanox.com>
2018-12-01 02:12:37 -08:00
paavaanan
b818397e28 Dell submodule update for depmod fixes (#2292) 2018-11-22 02:27:11 -08:00
Samuel Angebault
83c21150e5 [devices]: Update arista driver submodule (#2251)
- Force fans to 100% upon loading the kernel driver for safety
2018-11-16 12:41:43 -08:00
yangbashuang
56b8a2cc9a [centec]: update centec platform driver and device data (#2060) 2018-10-16 11:18:17 -07:00
Samuel Angebault
12fe300183 [devices]: Align flash partition at 1M (#2104)
Flashes used for the 7050QX-32 and 7050QX-32S have a fw issue.
The best option to solve the problem is to upgrade to a newer firmware.
However this can only be done while in memory and take 10 seconds.
Adding an upgrade mechanism is possible but would need more
consideration as flashing the firmware and reformating the flash will
exceed the fast-reboot requirements.

A quick mitigation is to align the ext4 partition that we create on
these vfat based system on a 4k boundary.
Here we chose 1M instead but it's the same.
Newer version of sfdisk do this automatically but the one in SONiC
today doesn't have this behavior.

This workaround will only reduce the pace of the flash health
degradation. The only long term fix is to flash the firmware.
2018-10-15 22:33:21 +00:00
zzhiyuan
182c35158c [devices]: Update arista submodules for SFP txdisable toggle (#2123)
With this update the SFPs will set txdisable to 0 when out of reset.
Allowing optical cables to be used on these ports.
2018-10-05 09:15:26 -07:00
Samuel Angebault
c2b1cae257 [arista] Update Arista drivers submodule (#2107) 2018-10-03 21:02:42 -07:00
Mykola Faryma
fd7c190bca [submodules] update dbsyncd and snmpagent pointers for LLDP MIB support
Signed-off-by: Mykola Faryma <mykolaf@mellanox.com>
2018-10-03 14:28:04 +00:00
Guohan Lu
352532abf3 [submodule]: update sonic-linux-kernel
* e9f0369 2018-09-07 | import upstream optoe chunk offset fix (#60) (HEAD, origin/201807) [lguohan]
* b9135e2 2018-08-22 | Fix calculation of page_len in sff_8436_read_write function (#57) [yurypm]

Signed-off-by: Guohan Lu <gulv@microsoft.com>
2018-10-03 02:11:51 +00:00
Guohan Lu
786a908012 [submodules]: update sonic-linux-kernel
* 493ab6b 2018-10-01 | [Kernel] fix kernel build errors (#65) (origin/201807) [Ying Xie]
* 6a58489 2018-10-01 | uart: fix race between uart_put_char() and uart_shutdown() (#64) [lguohan]

Signed-off-by: Guohan Lu <gulv@microsoft.com>
2018-10-03 01:52:36 +00:00
Sagar Balani
2ffbb0e8c0 [barefoot]: Fix bfn sde dep (#2086) 2018-09-27 01:13:01 -07:00
Samuel Angebault
0aeba8ad3b [devices]: Update arista driver submodule (#2057)
Incorporate a fix for the fan driver on 7050QX-32S
2018-09-18 18:27:16 -07:00
Guohan Lu
6cf2d10d83 [snmpagent]: update snmpagent submodule
ae99de0 Extend RFC 2737 MIB and implement RFC 3433 (#69)

Signed-off-by: Guohan Lu <gulv@microsoft.com>
2018-09-06 10:15:43 +00:00
Kebo Liu
bc4a39fcd8 [swsssdk]: update DBInterface submodule (#1942) 2018-09-06 07:45:45 +00:00
Kebo Liu
8fc68746f5 [mlnx-platform] enhancement for xcvrd implementation on mlnx platform (#1937)
* mlnx enhancement for xcvrd implementation

* fix conflict
2018-09-06 07:44:00 +00:00
Kebo Liu
97b5f3d462 update sonic-platform-common submodule for xcvrd support (#1901) 2018-09-06 07:42:43 +00:00
Kebo Liu
e237df8e21 [docker-platform-monitor] make file and supervisord conf change for new xcvrd deamon (#1840)
* [docker-platform-monitor] make file and supervisord conf change for new xcvrd deamon

* make file change for the new daemon
* supervisord conf change for the new daemon

signed-off-by Liu Kebo kebol@mellanox.com

* make xcvrd start sequence aligned with the supervisord conf

* update submodules to include xcvrd modification
2018-09-06 07:38:17 +00:00
Kebo Liu
6293178012 [mlnx-sfp-plugin] enhancement to support transceiver sensor monitoring (#1839)
* [mlnx-sfpplugin] enhancement to support tranceiver sensor monitoring

* Modify the eeprom folder to make it accessably from pmon container
* implement the get_transceiver_change_event API

file change list

	modified:   device/mellanox/x86_64-mlnx_lssn2700-r0/plugins/sfputil.py
	modified:   device/mellanox/x86_64-mlnx_msn2100-r0/plugins/sfputil.py
	modified:   device/mellanox/x86_64-mlnx_msn2410-r0/plugins/sfputil.py
	modified:   device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py
	modified:   device/mellanox/x86_64-mlnx_msn2740-r0/plugins/sfputil.py

signed-off-by Liu Kebo kebol@mellanox.com

* remove commented code

* revise the get_transceiver_change_event implementation and remove unused function

* remove blank
2018-09-06 07:37:49 +00:00
stepanblyschak
dd94d9d7cd [mellanox]: Fix qos.json.j2: apply qos config for active ports (#1932)
Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2018-09-06 07:36:31 +00:00
Andriy Moroz
be56470ab0 [Mellanox] Update hw-management service config (#2019)
Signed-off-by: Andriy Moroz <c_andriym@mellanox.com>
2018-09-05 22:43:27 -07:00
zzhiyuan
90257f53eb [devices]: Update 201807 release with transceiver detection for arista devices (#2013) 2018-09-04 22:34:40 -07:00
Roy Lee
f07181e89b [201807][platform] Accton: As5712-54x. Fix sfputil and accton_util (#2002)
* [platform] accton as5712-54x, fixed
    1. Check i2c buses, they may get fliped on every bootup.
    2. QSFP's lp_mode and reset are out of port order.
    3. Change QSFP is reset with 1 second period.
Signed-off-by: roy_lee <roy_lee@accton.com>

* [platform] accton as5712-54x. Fix util.py error about SFP/QSFP's tx_disable and present.
Signed-off-by: roy_lee <roy_lee@accton.com>
2018-08-30 05:29:01 -07:00
Sagar Balani
5e48e6c780 [barefoot]: Update bfn deb pkg urls for 201807 (#1963) 2018-08-22 01:09:42 -07:00
Volodymyr Samotiy
b64aec58af [mellanox]: Fix problem with system EEPROM in "hw-mgmt" (#1951)
Signed-off-by: Volodymyr Samotiy <volodymyrs@mellanox.com>
2018-08-21 00:56:36 -07:00
stanepc1
46ba7816c2 [device] Update driver and configuration for ly1200 of MiTAC (#1905)
Signed-off-by: Stane Shieh <stane.shieh@mic.com.tw>
2018-08-12 03:05:42 -07:00
182 changed files with 20916 additions and 5900 deletions

26
.gitmodules vendored
View File

@ -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

View File

@ -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

View File

@ -0,0 +1,2 @@
{%- set default_topo = 't0' %}
{%- include 'buffers_config.j2' %}

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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": {
}
}

View File

@ -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

View File

@ -1,3 +1,4 @@
CONSOLE_PORT=0x3f8
CONSOLE_DEV=0
CONSOLE_SPEED=115200
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="pci=noaer"

View File

@ -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

View 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

View File

@ -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

View 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"

View File

@ -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 %}
}
}
}

View File

@ -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

View File

@ -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

View 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]"
}
}
}

View File

@ -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

View 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

View File

@ -0,0 +1,2 @@
CONSOLE_SPEED=115200
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="acpi_enforce_resources=no"

View 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)

View 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('=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()

View 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

View 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, {}

View File

@ -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 %}
}
}
}

View File

@ -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

View File

@ -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

View 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]"
}
}
}

View File

@ -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

View 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

View File

@ -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

View 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)

View 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()

View 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

View 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, {}

View File

@ -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

View File

@ -0,0 +1,2 @@
{%- set default_topo = 't0' %}
{%- include 'buffers_config.j2' %}

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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

View File

@ -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

View File

@ -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": {
}
}

View File

@ -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>

View File

@ -185,3 +185,6 @@ class SfpUtil(SfpUtilBase):
gpio_file.close()
return True
def get_transceiver_change_event(self, timeout=0):
raise NotImplementedError

View File

@ -0,0 +1,2 @@
{%- set default_topo = 't0' %}
{%- include 'buffers_config.j2' %}

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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

View File

@ -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

View File

@ -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": {
}
}

View File

@ -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

View File

@ -291,3 +291,5 @@ class SfpUtil(SfpUtilBase):
return True
def get_transceiver_change_event(self, timeout=0):
raise NotImplementedError

View File

@ -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]"
}
}
}

View File

@ -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

View File

@ -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]"
}
}
}

View File

@ -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

View File

@ -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]"
}
}
}

View File

@ -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

View File

@ -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]"
}
}
}

View File

@ -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]"
}
}
}

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,2 @@
{%- set default_topo = 't1' %}
{%- include 'buffers_config.j2' %}

View File

@ -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 %}

View File

@ -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 %}

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -0,0 +1 @@
porsche t1

View File

@ -0,0 +1,3 @@
CONSOLE_PORT=0x2f8
CONSOLE_DEV=1
CONSOLE_SPEED=115200

View 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)

View 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

View 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
"""

View 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

View 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

View 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

View 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

View File

@ -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

View File

@ -26,3 +26,5 @@ if [ -e /usr/share/sonic/platform/fancontrol ]; then
fi
supervisorctl start ledd
supervisorctl start xcvrd

View File

@ -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

View File

@ -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

View File

@ -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/

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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 \

View File

@ -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

View File

@ -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