Implement part of the Chassis and Fan related APIs.
- Chassis APIs
get_base_mac()
get_serial_number()
get_serial_number()
get_system_eeprom_info()
get_reboot_cause()
- Fan APIs
get_direction()
get_speed()
get_target_speed()
get_speed_tolerance()
set_speed()
set_status_led()
get_target_speed()
- Fan APIs base on Device API
get_name()
get_presence()
get_model()
get_serial()
get_status()
Signed-off-by: Wirut Getbamrung wgetbumr@celestica.com
* Preemphasis values for various optics
This patch adds the preemphasis values for the various supported
optics for qfx5210 platform
Signed-off-by: Ciju Rajan K <crajank@juniper.net>
* Update driver and Add new platform API implementation for Inventec D6356
* Update Platform API (SFP)
* Update Platform API (QSFP)
* Update Platform API (FAN, THERMAL)
Signed-off-by: David Xiao <xiao.david@inventec.com>
1. add the console port in install.conf
2. update the ag9032v2a configuration file
3. add the default_sku in ag9032v2a
Signed-off-by: hans-tseng <hans.tseng@deltaww.com>
* Remove the divide by 4 operation to the under the hood SAI
This is to avoid the need and thus the confusion for application program to know
the mmu internal architecture
This change must have support from SAI change to reach the correct
config
Signed-off-by: Wenda <wenni@microsoft.com>
* Relegate the divide by 4 operation to the under the hood SAI for egress
lossless pool
Extend to 7060 and 6100
Signed-off-by: Wenda <wenni@microsoft.com>
* Add more TH/TH2 hwskus
Signed-off-by: Wenda Ni <wenni@microsoft.com>
* Update config test
Signed-off-by: Wenda Ni <wenni@microsoft.com>
* Add TH2 ingress lossy profile
Signed-off-by: Wenda Ni <wenni@microsoft.com>
* Move the divide by 4 operation to SAI internal
Signed-off-by: Wenda Ni <wenni@microsoft.com>
* [bcm SAI] Upgrade Broadcom SAI to version 3.5.3.1-15
- Broadcom SAI 3.5 GA release 20190924.
Signed-off-by: Ying Xie <ying.xie@microsoft.com>
Orchagent is crashing on the latest SONiC images. Issue #458
is raised to track the problem. Dynamic port breakout
commit 6f40933d3d introduced
this regression. One of the recommendation that we received
was to disable the loopback and mgmt ports in bcm config.
It was helpful in fixing the issue but not the ideal solution.
It works on qfx5210 as the loopback and management configurations
are not applicable.
While the orchagent crash is being debugged, we need this commit
to fix the issue in qfx5210 platform. This patch can be reversed
once the correct fix for the orchagent is identified.
Signed-off-by: Ciju Rajan K <crajank@juniper.net>
* add config.bcm for hlx
* modify config.bcm path for hlx
* Delete hx4-cel-hbtn-48x1G+4x10G.config.bcm
* add config.bcm and path
* update led for cxp
* Add new device data for dx010
* Adding platform support for Juniper QFX5210
This switch has 64 QSFP28 (40G/100G) ports, 2 SFP+ (1G/10G) ports
on Broadcom Tomahawk II chipset. CPU used in QFX5210-64C-S is
Intel Broadwell-DE. The machine has Redundant and hot-swappable
Power Supply (1+1) and also has Redundant and hot swappable fans (3+1).
Signed-off-by: Ciju Rajan K <crajank@juniper.net>
* [Juniper][QFX5210] Optoe driver for SFP management
This commit implements the following changes
- Moving to optoe driver for sfp management
- Removing the old sfp driver
- Updating the port-config.ini to add the index field
- Correction in sfputil.py to incorporate optoe driver
- Platform support for 'poweroff' command
Signed-off-by: Ciju Rajan K <crajank@juniper.net>
This switch has 64 QSFP28 (40G/100G) ports, 2 SFP+ (1G/10G) ports
on Broadcom Tomahawk II chipset. CPU used in QFX5210-64C-S is
Intel Broadwell-DE. The machine has Redundant and hot-swappable
Power Supply (1+1) and also has Redundant and hot swappable fans (3+1).
Signed-off-by: Ciju Rajan K <crajank@juniper.net>
* Fixed initial state for eeprom.py and sfputil.py when thrift server is down
* Added transceiver plug-in/out event processing
Signed-off-by: Andriy Kokhan <akokhan@barefootnetworks.com>
mellanox simx platform don't have QSFP sysfs created, this script will cause timeout issue on simx platform
Signed-off-by: Kebo Liu <kebol@mellanox.com>
Added exceptions handling for BFN psuutil.py and eeprom.py which are raised when syseepromd and psud try to connect to the BFN thrift server which is not up yet. Now the exceptions backtrace is not logged to the syslog. Also psud doesn't exit on system bootup due to uncaught exception.
Signed-off-by: Vitaliy Senchyshyn <vsenchyshyn@barefootnetworks.com>
This switch has 27 fiber ports, 4x25G, 20x10G , and 3x100G ports ports.
CPU: Intel ® Atom™ Processor C3508,1.6GHz
BMC: None
MAC: Broadcom BCM88470 (Qumran AX).
MISC: Support IEEE1588v2, hot-swappable PSU, hot-swappable fan tray.
But notice here, BCM88470 is not supported for SAI now.
So the syncd container is not running so far.
Signed-off-by: roy_lee <roy_lee@accton.com>
Corrected the ingress and egress lossy and lossless buffer pool and profile values.
Single pool for lossy and lossless traffic for PFC priority 3 and 4.
In HWSKU DellEMC-S5232f-P-100GG/25G/10G. Defaults to lossy profile. No Lossless support.
2 default mmu_init.data files (TD3-DEFAULT-LOSSLESS-P3P4 and "TD3-DEFAULT" created in SAI code. This will have cpu pool configuration and MMU init related configurations.
TD3-DEFAULT.data file is only supports lossy.
TD3-DEFAULT-LOSSLESS-P3P4.data file is supports lossless on P3 and P4.
* Utilize the same sai.profile and config.bcm file
Signed-off-by: Zhenggen Xu <zxu@linkedin.com>
* Fix the index issues for HWSKU: Seastone-DX010-25-50 and Seastone-DX010-50-40
Signed-off-by: Zhenggen Xu <zxu@linkedin.com>
* Update sonic-swss submodule
* src/sonic-swss 63afbd5...5be3963 (11):
> Remove the platform check for remove/add port action at init phase. (#1006)
> [test]: Add Class object in each test script file (#992)
> [vstest]: add --imgname option to specify vs image to test (#996)
> [qosorch]: Add cir and pir parameters for scheduler (#991)
> [vstest]: report error when team kernel module is not available (#994)
> Support per buffer pool watermark polling mode (#973)
> [test]: Update test_vlan to use dvs functions (#986)
> Add synchronous switch to orch agent (#987)
> ARM32 bit fixes, for 64bit printf format specifier (#989)
> [portsorch]: Rename function isPortReady() to allPortsReady() (#990)
> [routeorch]: Fix observer detaching procedure for next hop observers (#985)
Signed-off-by: Zhenggen Xu <zxu@linkedin.com>
Add fan control for as7116-54x
Modify sfputil.py to support sfp insert and remove events for as7116-54x
Modify port_config.nps to set port default admin down
Modify port_config.ini for add speed attr
Code format optimization like remove newline
Modify buffers_defaults_t0 and t1, change ingress_lossless_pool mode from dynamic to static
Add nephos_dac.nps and nephos_opt.nps for support difference dac and fiber module
* [Makefile/slave docker] ARM arch doesn't support few packages
iproute2 is missing for ARM sonic-slave docker
Signed-off-by: Antony Rheneus <arheneus@marvell.com>
Add platform support for delta ag9032v2a
CPU: Broadwell-DE
ASIC: BMC56870 with <100Gx32 + 10Gx1>
BMC: AST2520:
- What I did
add the new platform of delta ag9032v2a
- How I did it
1.provide the QSFP and SWPLD attributes and create the virtual buses of I2C
2. provide the port configuration
- How to verify it
1. psuutil.py
2. sfputil.py
3. bcmcd
- Known issue
The port LED is not ready. We noticed that BCM chip had the M0 FW initialization issue while bringing up SDK with "BRCM SAI ver: [3.5.2.3], OCP SAI ver: [1.4], SDK ver: [6.5.14]" and here is the information :
root@sonic:/home/admin# bcmcmd "M0 status"
M0 status
0:soc_iproc_data_send_wait: No response for msg 2
M0 FW is NOT Running
M0 FW Version is 0.0
Host FW Version is 1.0
Host and M0 FW Versions do not match!!!
Signed-off-by: hans-tseng <hans.tseng@deltaww.com>
xcvrd is broken because a newly introduced interface get_transceiver_dom_threshold_info_dict in common code calls a unsupported interface _read_eeprom_specific_bytes.
Fix the issue by implement get_transceiver_dom_threshold_info_dict to avoid calling the unsupported interface.
* [as5712-54x]
Verified with index from 1.
Add qsfp_event() for command "show interaface trancerver".
Signed-off-by: roy_lee <roy_lee@accton.com>
* [as6712-32x]
Add default port speed.
Verified with index from 1.
Signed-off-by: roy_lee <roy_lee@accton.com>
* [as7726-32x]
Add default port speed.
Verified with index from 1.
Signed-off-by: roy_lee <roy_lee@accton.com>
* [as7712-32x]
Add default port speed.
Verified with index from 1.
Signed-off-by: roy_lee <roy_lee@accton.com>
* [as5812-54x]
Add default port speed.
Verified with index from 1.
Signed-off-by: roy_lee <roy_lee@accton.com>
* [as5712-54x]
Update port-config with 1-based index.
Signed-off-by: roy_lee <roy_lee@accton.com>
* [as5812-54x]
Somehow the service may block, use type=simple to work-around.
Add syslog function for monitor.
Signed-off-by: roy_lee <roy_lee@accton.com>
* [as7716-32x]
Update port-config with 1-based index.
Signed-off-by: roy_lee <roy_lee@accton.com>
* [as7816-64x]
Update port-config with 1-based index.
Implement sfputil change_event.
Signed-off-by: roy_lee <roy_lee@accton.com>
* [as7326-56x]
Update port-config with 1-based index.
Implement sfputil change_event.
Signed-off-by: roy_lee <roy_lee@accton.com>
* Remove debug code.
Signed-off-by: roy_lee <roy_lee@accton.com>
* [as7312-54x]
Update port-config with 1-based index and default port speed.
Signed-off-by: roy_lee <roy_lee@accton.com>
* [devices]: Add a new supported device DellEMC s5232f
* Switch Vendor: DellEMC
* Switch SKU: s5232F
* ASIC Vendor: Broadcom
* Swich ASIC: Trident3
* Port Configuration: 32x100G
* SONiC Image: sonic-broadcom.bin
* LED support for s5232f
* Changes Include ipmitool implementation for platform_sensors script is inclued in pmon startup
* Added 100G,25G,10G configruation ( 100G is default).
* s5232[device] PSU detecttion and default led state support
* Add driver and util for peripherals of as7312-54xs, most are copied from as7312-54s.
Signed-off-by: roy_lee <roy_lee@accton.com>
* Add default port speed and index from 1.
Signed-off-by: roy_lee <roy_lee@accton.com>
* Update i2c addr of psus.
Add system logging for monitor.
Signed-off-by: roy_lee <roy_lee@accton.com>
* Correct syntax of module_dirs.
Signed-off-by: roy_lee <roy_lee@accton.com>
* Validate sfputil after tested.
Signed-off-by: roy_lee <roy_lee@accton.com>
* Correct the index of eeprom mapping.
Signed-off-by: roy_lee <roy_lee@accton.com>
* fix the issue Bug SW #1816356 which is due to failing to test whether dom supported prior to reading dom data
* use pre-defined variable to avoid magic number.
no need to read 16 bytes, 1 byte is enough since calibration and dom capability are all in bytes at offset 92
Variables SFP_VLOT_OFFSET and QSFP_VLOT_OFFSET containing the typo are originally defined in repo sonic-platform-common. The typo has been fixed in PR #33. However, some Mellanox-specific code hasn't updated correspondingly, which results in xcvrd fail to start.
This PR updates the variable name in Mellanox-specific code correspondingly to fix that.
* Switch Vendor: DellEMC
* Switch SKU: s5232F
* ASIC Vendor: Broadcom
* Swich ASIC: Trident3
* Port Configuration: 32x100G
* SONiC Image: sonic-broadcom.bin
* LED support for s5232f
* Changes Include ipmitool implementation for platform_sensors script is inclued in pmon startup
* Added 100G,25G,10G configruation ( 100G is default).
These patches add support for the Broadcom XMC card (XLR/GTS). At this moment
only Tomahawk switch (BCM956960K) is supported. Add
device/broadcom/x86_64-bcm_xlr-r0 and
platform/broadcom/sonic-platform-modules-brcm-xlr-gts files
* [sfputil]Remove the dependency on sysfs for sfputil, mainly get_presence and port_to_eeprom_mapping
Remove the dependency on sysfs, including:
1. rewrite get_presence by using ethtool;
2. remove interface port_to_eeprom_mapping which is no longer referenced;
3. remove code that references port_to_eeprom_mapping and _port_to_eeprom_mapping;
4. remove private member qsfp_sysfs_path which is no longer referenced.
* [sfputil.py]
minor adjustment: move the presence=False to the beginning of get_presence.
* [device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py]
purpose and restrictions
1. reading eeprom via ethtool.
2. avoid changing common codes shared by all the manufacture (sonic-platform-common), contrain all the modifications with Mellanox-specific code.
current implementation
A new class based on SfpUtilBase and a new method _read_eeprom_specific_bytes_via_ethtool have been introduced in order to change the way the eprom DOM data is read. Typically the best practice to do this kind of thing is to contrain the modification within the function which execute reading operations only and keep other stuffs (especially the interface) untouched. However, this can hardly be achieved since the original reading function takes the file object as input parameter to represent the port. It is done by having the file object to point to /var/run/hwmanagement files, which will not be maintained in the future. As a result, a new interface has to be introduced with a port number/name as input parameter in order to get rid of the dependency on the those files:
_read_eeprom_specific_bytes_via_ethtool
Since the interface changed, all methods that call the interface should also be overwritten in order to call the new interface, including:
_read_eeprom_devid
get_transceiver_info_dict
get_transceiver_dom_info_dict
Only interface used to read eeprom DOM has been replaced and the main logic has not been changed except the following mentioned.
1. reading DOM data for sfp port, which is implementioned in get_transceiver_dom_info_dict. In this case a "calibration" should be firstly read from eeprom before other values like temperature, voltage, rx/tx power, can be parsed. However, this has been ignored in the original code, resulting in that the data cann't be parsed.
2. In the original implemention the data area containing the data are read from DOM separatedly in order to avoid read uncessary data and achieve a better performance. Having used ethtool to read DOM data, the performance gap between reading all the area and reading the spot data separatedly has been narrowed to almost zero. To make the code neat and readable, we change the way to read this data.
* [sfputil] Returns dict with all data set to N/A for ports without dom support
Currently, the way in which dom data is read has been changed from using sysfs to using ethtool.
The ethtool returns None for ports without dom support, resulting in None being returned. However, this fails xcvrd to add the TRANSCEIVER_DOM_SENSOR table entry of associated port to CONFIG_DB and then causes SNMP fail.
To address this issue a default dict is initialized with all data set to 'N/A' and is returned is the above case.
BTW, in the original implementation which sysfs is used to read dom data, even though non-None data is returned for ports without dom support, it does not contain valid data. This can result in wrong data in TRANSCEIVER_DOM_SENSOR table.
* [sfputil]
removing unnecessary empty lines
removing redundent code
replacing hardcoding strings/numbers with predefined const variables
* Add new device accton_as5812_54x.
Signed-off-by: roy_lee <roy_lee@accton.com>
* Rename 5812's config.bcm.
Signed-off-by: roy_lee <roy_lee@accton.com>
* Change fan module to support lm-sensors.
Validate for thermal policy.
Signed-off-by: roy_lee <roy_lee@accton.com>
* Add bask reset and lpmode control of 6 QSFP ports.
Signed-off-by: roy_lee <roy_lee@accton.com>
* Get currect duty of fan for comparing. Instead of by stored duty from previous iteration.
Signed-off-by: roy_lee <roy_lee@accton.com>
* Roll back the mistakes to update mellanox submodules.
Signed-off-by: roy_lee <roy_lee@accton.com>
* Rollback for misoperation on submodule platform/p4/SAI-P4-BM.
Signed-off-by: roy_lee <roy_lee@accton.com>
* Change indexes of ports to start from 1, as them on the front panel.
Add low-power mode control of the transciever's eeprom, follows SFF-8436.
Signed-off-by: roy_lee <roy_lee@accton.com>
This commit adds new code and JAON file to support PFC
and MMU setting for PFC feature on z9264f-Q64 (40G) T0
and T1 support. The buffers_defaults_t0.json and
buffers_defaults_t1.json file has the recommended values
for T0 and T1 configuration.
Unit tested and verified by running JSON file and checking
the hardware registers and table in broadcom. THe settings
in hardware are reflecting the JSON values.
Signed-off-by: Harish Venkatraman <harish_venkatraman@dell.com>
* Add boot0 support for the 7280CR3
* Add platform and plugins for 7280CR3
* Add port config for 7280CR3
* Add platform_reboot for 7280CR3
* Add support for 7280CR3-32D4 based on the 7280CR3-32P4
* Update arista driver submodules
- Introduce new 7280CR3-32P4
- Improve to the led plugin for OSFP
This commit adds new code and JSON file to support PFC and
broadcom recommended MMU setting for PFC feaure on z9264f
(100G) T1 support. The buffers_defaults_t1.json file has
the broadcom recommended values for T1 configuration.
Unit tested and verified by running the JSON file and checking
the hardware registers and table in broadcom. The settings in
the hardware is reflecting the broadcom recommended values.
Signed-off-by: Harish Venkatraman <harish_venkatraman@dell.com>
* Fix showing systemd shutdown sequence when verbose is set
* Fix creation of kernel-cmdline file
Sometimes boot0 prints error
"mv: can't preserve ownership of '/mnt/flash/image-arsonic.xxxx/kernel-cmdline': Operation not permitted"
* Improve flash space usage during installation
Some older systems only have 2GB of flash available. Installing a second
image on these can prove to be challenging.
The new installation process moves the installer swi to memory in order
to avoid free up space from the flash before uncompressing it there.
It removes all the flash space usage spike and also improves the IO
since the installation is no more reading and writting to the flash at
the same time.
* Add support of 7060CX-32S-SSD
* 7260CX3: use inventory powerCycle procedures
* 7050QX-32S: use inventory powerCycle procedures
* 7050QX-32: use inventory powerCycle procedures
* platform: arista: add common platform_reboot
Replace platform_reboot by a link to new common for devices already
using a similar script.
* 7060CX-32S: use inventory powerCycle procedures
* Install python smbus in pmon
Some platform plugin need the python smbus library to perform some actions.
This installs the dependency.
* [platform/cel] Implement FAN APIs based on the new platform API
* [platform/cel] Move platform api to under device platform
* [platform/cel] Remove rule to build platform api python wheel
* DellEMC S6000, xcvrd support
* sleep 1 second to avoid busy looping
* removal of dead code
* Correct typo error to 1 second
* Introduced 1 second sleep
* Revamped script with blocking call support
* get_transceiver_change_event api definition update
* adding timeout support for get_transceiver_change_event
* Add new device CIG CS6436-56P
* Delete minigraph.xml
It isn't necessary in the current system, just delete it
* Update qos.json.j2
* Update port_config.ini
Add the speed column. The cmd to show interface status as:
root@switch1:~# show interface status
Interface Lanes Speed MTU Alias Oper Admin Type Asym PFC
----------- --------------- ------- ----- ------------ ------ ------- ------ ----------
Ethernet0 8 25G 9100 Ethernet1/1 up up SFP N/A
Ethernet1 9 25G 9100 Ethernet2/1 up up SFP N/A
Ethernet2 10 25G 9100 Ethernet3/1 down down N/A N/A
Ethernet3 11 25G 9100 Ethernet4/1 down down N/A N/A
Ethernet4 12 25G 9100 Ethernet5/1 down down N/A N/A
Ethernet5 13 25G 9100 Ethernet6/1 down down N/A N/A
Ethernet6 14 25G 9100 Ethernet7/1 down down N/A N/A
Ethernet7 15 25G 9100 Ethernet8/1 down down N/A N/A
Ethernet8 16 25G 9100 Ethernet9/1 down down N/A N/A
Ethernet9 17 25G 9100 Ethernet10/1 down down N/A N/A
Ethernet10 18 25G 9100 Ethernet11/1 down down N/A N/A
Ethernet11 19 25G 9100 Ethernet12/1 down down N/A N/A
Ethernet12 20 25G 9100 Ethernet13/1 down down N/A N/A
Ethernet13 21 25G 9100 Ethernet14/1 down down N/A N/A
Ethernet14 22 25G 9100 Ethernet15/1 down down N/A N/A
Ethernet15 23 25G 9100 Ethernet16/1 down down N/A N/A
Ethernet16 32 25G 9100 Ethernet17/1 down down N/A N/A
Ethernet17 33 25G 9100 Ethernet18/1 down down N/A N/A
Ethernet18 34 25G 9100 Ethernet19/1 down down N/A N/A
Ethernet19 35 25G 9100 Ethernet20/1 down down N/A N/A
Ethernet20 40 25G 9100 Ethernet21/1 down down N/A N/A
Ethernet21 41 25G 9100 Ethernet22/1 down down N/A N/A
Ethernet22 42 25G 9100 Ethernet23/1 down down N/A N/A
Ethernet23 43 25G 9100 Ethernet24/1 down down N/A N/A
Ethernet24 48 25G 9100 Ethernet25/1 down down N/A N/A
Ethernet25 49 25G 9100 Ethernet26/1 down down N/A N/A
Ethernet26 50 25G 9100 Ethernet27/1 down down N/A N/A
Ethernet27 51 25G 9100 Ethernet28/1 down down N/A N/A
Ethernet28 56 25G 9100 Ethernet29/1 down down N/A N/A
Ethernet29 57 25G 9100 Ethernet30/1 down down N/A N/A
Ethernet30 58 25G 9100 Ethernet31/1 down down N/A N/A
Ethernet31 59 25G 9100 Ethernet32/1 down down N/A N/A
Ethernet32 64 25G 9100 Ethernet33/1 down down N/A N/A
Ethernet33 65 25G 9100 Ethernet34/1 down down N/A N/A
Ethernet34 66 25G 9100 Ethernet35/1 down down N/A N/A
Ethernet35 67 25G 9100 Ethernet36/1 down down N/A N/A
Ethernet36 68 25G 9100 Ethernet37/1 down down N/A N/A
Ethernet37 69 25G 9100 Ethernet38/1 down down N/A N/A
Ethernet38 70 25G 9100 Ethernet39/1 down down N/A N/A
Ethernet39 71 25G 9100 Ethernet40/1 down down N/A N/A
Ethernet40 72 25G 9100 Ethernet41/1 down down N/A N/A
Ethernet41 73 25G 9100 Ethernet42/1 down down N/A N/A
Ethernet42 74 25G 9100 Ethernet43/1 down down N/A N/A
Ethernet43 75 25G 9100 Ethernet44/1 down down N/A N/A
Ethernet44 76 25G 9100 Ethernet45/1 down down N/A N/A
Ethernet45 77 25G 9100 Ethernet46/1 down down N/A N/A
Ethernet46 78 25G 9100 Ethernet47/1 down down N/A N/A
Ethernet47 79 25G 9100 Ethernet48/1 down down N/A N/A
Ethernet48 84,85,86,87 100G 9100 Ethernet49/1 up up QSFP28 N/A
Ethernet49 80,81,82,83 100G 9100 Ethernet50/1 up up QSFP28 N/A
Ethernet50 92,93,94,95 100G 9100 Ethernet51/1 down down N/A N/A
Ethernet51 88,89,90,91 100G 9100 Ethernet52/1 down down N/A N/A
Ethernet52 108,109,110,111 100G 9100 Ethernet53/1 down down N/A N/A
Ethernet53 104,105,106,107 100G 9100 Ethernet54/1 down down N/A N/A
Ethernet54 116,117,118,119 100G 9100 Ethernet55/1 down down N/A N/A
Ethernet55 112,113,114,115 100G 9100 Ethernet56/1 down down N/A N/A
root@switch1:~#