Commit Graph

1096 Commits

Author SHA1 Message Date
Stepan Blyshchak
16a37d8c17
[dockers] update mellanox syncd and pmon to buster (#4818)
Upgrade to libsensors5

Updated sonic-sairedis pointer:
    d54bfb4 [SAI] update pointer (#636)
    1885a8c [syncd] Fix notification on shutdown request (#635)
    9e57ba2 Fixing hostif For Genetlink host interfaces (#633)
    449a092 sonic-sairedis: Add support to sonic-sairedis for gearbox phys (#632)

Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2020-07-18 03:46:15 -07:00
lguohan
25c3900085
[docker-sonic-vs]: upgrade docker-sonic-vs to buster (#4979)
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-07-18 00:11:09 -07:00
lguohan
458b4aef48
[vstest]: remove kill exabgp command from the test (#4978)
the command kills all exabgp processes on the host.
since the namespaces are newly added, there should
be no prior exabgp processes.

if it is existing namespace, it is also the dvs
framework job to clean up all prior processes.
2020-07-16 17:19:21 -07:00
Joe LeVeque
9905d9382d
[devices] Update SFP keys to align with new standard (#4975)
Align SFP key names with new standard defined in https://github.com/Azure/sonic-platform-common/pull/97

- hardwarerev -> hardware_rev
- serialnum -> serial
- manufacturename -> manufacturer
- modelname -> model
- Connector -> connector
2020-07-16 13:03:50 -07:00
shlomibitton
545fe3ecd0
Add support for QSFP-DD cables on MLNX platform API (#4965)
Signed-off-by: Shlomi Bitton <shlomibi@mellanox.com>
2020-07-15 11:09:46 -07:00
Sangita Maity
6ebcfb226b
[docker-vs] Install dependencies for testing DPB (#4960)
Added xmltodict and jsondiff packages needed to run vs test cases successfully for DPB.
sonic-utilities PR #766 has a dependency on these packages.

Signed-off-by: Sangita Maity <sangitamaity0211@gmail.com>
2020-07-14 15:52:03 -07:00
ciju-juniper
46cc6968d7
[Juniper][QFX52xx] Platform fixes/enhancements (#4953)
1) Fixing the issues while applying platform TxCTLE settings in sfputil.py for QFX5200
 2) Adding the support for transceiver dom threshold info in sfputil.py for both  QFX5210 & QFX5200 platforms
 3) Updating the sfputil.py for QFX5210 & QFX5200 platforms
4) Adding a new platform specific command 'show_thresholds' to display the FAN dutycycle percentage for various temperature ranges (for both AFI & AFO QFX5200 systems).

Signed-off-by: Ciju Rajan K <crajank@juniper.net>
2020-07-14 14:20:41 -07:00
taochengyi
de16e6f14d
[build][centec] update sai to v1.6.3 (#4951)
update sai to v1.6.3 for centec E582 platform(x86 CPU)
2020-07-13 22:56:42 -07:00
Junchao-Mellanox
76d68ad1f5
[Mellanox] Add support for set/get system led status (#4829)
System health feature needs to set/get system led status

- Add a led object in chassis class and initialize it when the API is called on host side
- Read/write system led system fs to get/set the status
2020-07-13 10:22:39 -07:00
Volodymyr Boiko
39941f0ae2 [BFN] Update SAI and platform packages to 20200710 (#4942)
Barefoot, updated SAI and platform packages to 20200710

Signed-off-by: Volodymyr Boyko <volodymyrx.boiko@intel.com>
2020-07-12 18:08:52 +00:00
Santhosh Kumar T
c9a14f71d0 [DellEMC] Z9264f Disable low power modes in 10G ports (#4908)
In Z9264 by default, all the ports have disabled low power mode except the last two 10G ports.
Disabled low power mode in the last two 10G ports.
2020-07-12 18:08:52 +00:00
arlakshm
a46f4c96e7 Add support for bcmsh and bcmcmd utlitites in multi ASIC devices (#4926)
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
This PR has changes to support accessing the bcmsh and bcmcmd utilities on multi ASIC devices
Changes done
- move the link of /var/run/sswsyncd from docker-syncd-brcm.mk to docker_image_ctl.j2
- update the bcmsh and bcmcmd scripts to take -n [ASIC_ID] as an argument on multi ASIC platforms
2020-07-12 18:08:52 +00:00
Samuel Angebault
c213bcf23a [arista]: Update arista driver submodules (#4922)
- Add more reboot cause reporting
 - Fix backward compatibility issue with older reboot cause format
 - Miscellaneous improvements
2020-07-12 18:08:52 +00:00
lguohan
1dcf8ec04f [kernel]: upgrade linux kernel to 4.9.118 (#4897)
upgrade kernel to latest maintenance version 4.9.118

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-07-12 18:08:51 +00:00
Volodymyr Boiko
15748a50ae [barefoot][SAI v1.6.3] Update SAI and platform packages to 20200701 (#4890)
Signed-off-by: Volodymyr Boyko <volodymyrx.boiko@intel.com>
2020-07-12 18:08:51 +00:00
paavaanan
cba801ae89 [Dell]: DellEMC S6100 disable pericom/xlinx chipset (#4868)
- Xilinx/pericom peripherals are not actively used in DellEMC S6100 switch.
- These peripherals are throwing PCIE corrected messages in some of the units and filling syslog.
- Since it is not usable disabling it at startup.
2020-07-12 18:08:51 +00:00
lguohan
58632e6e83 [docker-orchagent]: make build depends only on sairedis package (#4880)
make swss build depends only on libsairedis instead of syncd. This allows to build swss without depending
on vendor sai library.

Currently, libsairedis build also buils syncd which requires vendor SAI lib. This makes difficult to build
swss docker in buster while still keeping syncd docker in stretch, as swss requires libsairedis which also
build syncd and requires vendor to provide SAI for buster. As swss docker does not really contain syncd
binary, so it is not necessary to build syncd for swss docker.

* [submodule]: update sonic-sairedis

* ccbb3bc 2020-06-28 | add option to build without syncd (HEAD, origin/master, origin/HEAD) [Guohan Lu]
* 4247481 2020-06-28 | install saidiscovery into syncd package [Guohan Lu]
* 61b8e8e 2020-06-26 | Revert "sonic-sairedis: Add support to sonic-sairedis for gearbox phys (#624)" (#630) [Danny Allen]
* 85e543c 2020-06-26 | add a README to tests directory to describe how to run 'make check' (#629) [Syd Logan]
* 2772f15 2020-06-26 | sonic-sairedis: Add support to sonic-sairedis for gearbox phys (#624) [Syd Logan]

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-07-12 18:08:51 +00:00
Renuka Manavalan
7c30949758 Added new pip packages, required by kube.py (kubernetes CLI). (#4884) 2020-07-12 18:08:51 +00:00
Mahesh Maddikayala
5eabae1ede Fix in libsaibcm for high CPU utilization of syncd (#4874) 2020-07-12 18:08:51 +00:00
Mahesh Maddikayala
74389cb402 [sonic-sairedis] sonic-sairedis submodule update (#4847)
* sonic-sairedis submodule update
* Update BRCM SAI to 3.7.5.1
2020-07-12 18:08:51 +00:00
Kebo Liu
0921e3d6ff [mellanox]: Update SAI to 1.16.5 (#4873)
1.  Upgrade SAI headers to v1.6.3
2.  Fix traffic lost during FFB related to buffer config + optimize buffer config timing for FB
3.  Add ACL fields BTH, IP flags
4.  Add ACL infrastructure of different fields per ASIC type
2020-07-12 18:08:51 +00:00
Junchao-Mellanox
ce391645f2
[Mellanox] add ASIC temperature support to platform API (#4828)
**- Why I did it**

System health feature requires to read ASIC temperature and threshold from platform API

**- How I did it**

Implement Chassis.get_asic_temperature and Chassis.get_asic_temperature_threshold by getting value from system fs.
2020-06-28 17:54:28 -07:00
ciju-juniper
dd4cf912a6
[Juniper][QFX5210] Fixing a few platform issues (#4857)
This patch addresses the following issues:
 1) Platform drivers were not loading in the latest images. Fixed
    the intialization script to make sure that all the drivers are
    loaded.
 2) Getting rid of "pstore: crypto_comp_decompress failed, ret = -22!"
    messages during the kernel boot, after moving to 4.19 kernel. The
    solution is to remove the files under '/sys/fs/pstore' directory.

Signed-off-by: Ciju Rajan K <crajank@juniper.net>
2020-06-28 11:11:34 -07:00
Qi Luo
6849a0351c
[redis] Install vanilla redis packages for Buster and Stretch; upgrade Buster to 6.0.5 (#4732)
upgrade redis server to 5:6.0.5-1~bpo10+1
2020-06-27 01:17:20 -07:00
Kebo Liu
88bbcbf246
[Mellanox] Update SDK to 4.4.0952, FW to *.2007.1280 (#4842) 2020-06-26 13:44:21 +03:00
yozhao101
4fa81b4f8d
[dockers] Update critical_processes file syntax (#4831)
**- Why I did it**
Initially, the critical_processes file contains either the name of critical process or the name of group.
For example, the critical_processes file in the dhcp_relay container contains a single group name
`isc-dhcp-relay`. When testing the autorestart feature of each container, we need get all the critical
processes and test whether a  container can be restarted correctly if one of its critical processes is
killed. However, it will be difficult to differentiate whether the names in the critical_processes file are
the critical processes or group names. At the same time, changing the syntax in this file will separate the individual process from the groups and also makes it clear to the user.

Right now the critical_processes file contains two different kind of entries. One is "program:xxx" which indicates a critical process. Another is "group:xxx" which indicates a group of critical processes
managed by supervisord using the name "xxx". At the same time, I also updated the logic to
parse the file critical_processes in supervisor-proc-event-listener script.

**- How to verify it**
We can first enable the autorestart feature of a specified container for example `dhcp_relay` by running the comman `sudo config container feature autorestart dhcp_relay enabled` on DUT. Then we can select a critical process from the command `docker top dhcp_relay` and use the command `sudo kill -SIGKILL <pid>` to kill that critical process. Final step is to check whether the container is restarted correctly or not.
2020-06-25 21:18:21 -07:00
yozhao101
b8ad0ed4e4
[Monit] Use the string "/usr/bin/syncd\s" to monitor the syncd process (#4706)
**- Why I did it**
After discussed with Joe, we use the string "/usr/bin/syncd\s" in Monit configuration file to monitor 
syncd process on Broadcom and Mellanox. Due to my careless, I did not find this bug during the 
previous testing. If we use the string "/usr/bin/syncd" in Monit configuration file to monitor the 
syncd process, Monit will not detect whether syncd process is running or not. 

If we ran the command  `sudo monit procmactch “/usr/bin/syncd”` on Broadcom, there will be three 
processes in syncd container which matched this "/usr/bin/syncd": `/bin/bash /usr/bin/syncd.sh
wait`, `/usr/bin/dsserve /usr/bin/syncd –diag -u -p /etc/sai.d/sai.profile` and `/usr/bin/syncd –diag -
u -p /etc/sai.d/said.profile`. Monit will select the processes with the highest uptime (at there 
`/bin/bash /usr/bin/syncd.sh wait`) to match and did not select `/usr/bin/syncd –diag -u -p
/etc/sai.d/said.profile` to match. 

Similarly, On Mellanox Monit will also select the process with the highest uptime (at there 
`/bin/bash /usr/bin/syncd.sh wait`) to match and did not select `/usr/bin/syncd –diag -u -p
/etc/sai.d/said.profile` to match.

That is why Monit is unable to detect whether syncd process is running or not if we use the string “/usr/bin/syncd” in Monit configuration file. If we use the string "/usr/bin/syncd\s" in Monit configuration file, Monit can filter out the process `/bin/bash /usr/bin/syncd.sh wait` and thus can correctly monitor the syncd process.

**- How I did it**

**- How to verify it**

Signed-off-by: Yong Zhao <yozhao@microsoft.com>
2020-06-25 17:03:14 -07:00
Danny Allen
c50b431747
[dvs] Install libteamdctl runtime dependency in VS docker (#4837)
* Add libteamdctl dependency to VS docker
* Reorder dependencies and rename libteamctl

Signed-off-by: Danny Allen <daall@microsoft.com>
2020-06-24 14:07:22 -07:00
Junchao-Mellanox
563a0fd21e
[Mellanox] Change port index in port_config.ini to 1-based (#4781)
* Change port index in port_config.ini to 1-based
* Add default port index to port_config.ini, change platform plugins to accept 1-based port index
* fix port index in sfp_event.py
2020-06-23 17:21:36 -07:00
Praveen Chaudhary
c6dcd7d9a1
[docker-sonic-vs/Dockerfile.j2]: Install new YANG PKGs in VS docker. (#4684)
Changes:
. Install new YANG PKGs in VS docker.
. Install fixed version on other PY PKGs.

Signed-off-by: Praveen Chaudhary pchaudhary@linkedin.com
2020-06-22 15:38:36 -07:00
madhanmellanox
2c830f4074
Modified SKU based utils to Platform based utils (#4786)
Co-authored-by: Madhan Babu <madhan@arc-build-server.mtr.labs.mlnx>
2020-06-21 12:15:23 -07:00
Olivier Singla
68576bc2f9
[kerne]: kernel update from 4.19.0-6 to 4.19.0-6-2 (#4711) 2020-06-21 06:41:23 -07:00
Volodymyr Boiko
603b2955e6
[BFN] Update SAI and platform packages to 20200618 (#4817)
Signed-off-by: Volodymyr Boyko <volodymyrx.boiko@intel.com>
2020-06-19 11:00:44 -07:00
Joe LeVeque
1f8a78cef1
[build] No longer install Python 'click-default-group' package (#4811)
All dependencies upon the Python 'click-default-group' package have been removed from sonic-utilities as of https://github.com/Azure/sonic-utilities/pull/903. The submodule was updated to include this patch as of https://github.com/Azure/sonic-buildimage/pull/4601, therefore we no longer need to install this package in the SONiC image.
2020-06-19 10:54:10 -07:00
kuanyu99
f2af8aa8a9
[accton/as5835-54x] Fix sfp related function like tx_disable (#4763)
**- Why I did it**

The tx_disable function isn't work for the accton_ax5835-54x device.

**- How I did it**
Fix the incorrect path of the sfp node path inside the util file.

**- How to verify it**

Test with
"sudo accton_as5835_54x_util.py show"
"sudo accton_as5835_54x_util.py set sfp"

There should see correct value for module_present and module_tx_disable. And should able to set it.

Signed-off-by: kuanyu_chen <kuanyu_chen@edge-core.com>
2020-06-18 10:52:06 -07:00
Nazarii Hnydyn
6014773ac9
[Mellanox] Update MFT to v4.14.5-2. (#4784)
Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2020-06-17 20:03:07 +03:00
Kebo Liu
91a1f131a1
[Mellanox] Update hw-mgmt package to V.7.0010.1000 for master (#4687)
* [Mellanox] Update hw-mgmt package to V.7.0010.1000

* update sonic-linux-kernel pointer to pick up new patch
2020-06-16 21:01:41 +03:00
Volodymyr Samotiy
1e7e6b9521
[Mellanox] Update SDK 4.4.0940 and FW xx.2007.1244 (#4776) 2020-06-16 10:28:10 -07:00
Nazarii Hnydyn
1db64a3bc1
[Mellanox] Add ONIE and SSD platform components. (#4758)
Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2020-06-15 14:25:49 +03:00
Andriy Kokhan
6acd64d005
[BFN] Updated SDK packages to SAI v1.6.1 (#4744)
Signed-off-by: Andriy Kokhan <akokhan@barefootnetworks.com>
2020-06-11 23:24:49 -07:00
Joe LeVeque
5d5d5739c2
[dockers] Rename 'docker-snmp-sv2' to 'docker-snmp' (#4699)
The `-sv2` suffix was used to differentiate SNMP Dockers when we transitioned from "SONiCv1" to "SONiCv2", about four years ago. The old Docker materials were removed long ago; there is no need to keep this suffix. Removing it aligns the name with all the other Dockers.

Also edit Monit configuration to detect proper snmp-subagent command line in Buster, and make snmpd command line matching more robust.
2020-06-11 16:04:23 -07:00
Junchao-Mellanox
4da4955b2f
[Mellanox] Upgrade mft to 4.14.1-8 (#4701) 2020-06-11 09:02:44 +03:00
noaOrMlnx
36419978b7
[Mellanox] Update SAI, SDK 4.4.0928 and FW xx.2007.1208 - master branch (#4723)
Signed-off-by: Noa Or <noaor@mellanox.com>
2020-06-11 09:01:01 +03:00
taochengyi
830c9eabd4
[centec]: update SAI to v1.6.1 for centec x86 platform (#4730) 2020-06-10 01:32:08 -07:00
Joe LeVeque
c6365e7abe
Reorganize .gitignore files (#4707)
- Add .gitignore files in each subdirectory of src/, so as to reduce the size of the .gitignore file in the project root, and also make it easier to maintain (i.e., if a directory in src/ is removed, there will not be outdated entries in the root .gitignore file.

- Also add missing .gitignore entries and remove outdated entries and duplicates.
2020-06-09 21:04:55 -07:00
YaoTien
e2ebe99665
[devices]: Fixed OSW1800 build problem (#4647)
* Enable to build osw1800
* Modify wnc-eeprom which base on debian buster's eeprom.c

Co-authored-by: Brand.huang <brand.huang@wnc.com.tw>
2020-06-09 09:19:45 -07:00
Joe LeVeque
9b27efdcc2
[dockers] Rename 'docker-lldp-sv2' to 'docker-lldp' (#4700)
The -sv2 suffix was used to differentiate SNMP Dockers when we transitioned from "SONiCv1" to "SONiCv2", about four years ago. The old Docker materials were removed long ago; there is no need to keep this suffix. Removing it aligns the name with all the other Dockers.
2020-06-09 09:09:56 -07:00
Arun Saravanan Balachandran
54b284f4b0
[DellEMC]: EEPROM decoder for S6000, S6000-ON (#4718)
**- Why I did it**

For decoding system EEPROM of S6000 based on Dell offset format and S6000-ON’s system EEPROM in ONIE TLV format.

**- How I did it**

- Differentiate between S6000 and S6000-ON using the product name available in ‘dmi’  ( “/sys/class/dmi/id/product_name” )
- For decoding S6000 system EEPROM in Dell offset format and updating the redis DB with the EEPROM contents, added a new class ‘EepromS6000’ in eeprom.py, 
- Renamed certain methods in both Eeprom, EepromS6000 classes to accommodate the plugin-specific methods.

**- How to verify it**

- Use 'decode-syseeprom' command to list the system EEPROM details.
- Wrote a python script to load chassis class and call the appropriate methods.

UT Logs: [S6000_eeprom_logs.txt](https://github.com/Azure/sonic-buildimage/files/4735515/S6000_eeprom_logs.txt), [S6000-ON_eeprom_logs.txt](https://github.com/Azure/sonic-buildimage/files/4735461/S6000-ON_eeprom_logs.txt)
Test script: [eeprom_test_py.txt](https://github.com/Azure/sonic-buildimage/files/4735509/eeprom_test_py.txt)
2020-06-09 09:08:15 -07:00
joyas-joseph
9505bdb910
[docker-syncd-vs]: Convert syncd-vs docker to buster (#4726)
Signed-off-by: Joyas Joseph <joyas_joseph@dell.com>
2020-06-09 09:07:25 -07:00
Mahesh Maddikayala
af81b8ebcd
[libsaibcm] Update pointer to Broadcom SAI debian package (#4725) 2020-06-08 17:03:09 -07:00
taochengyi
6b332f74a0
[centec_syncd_rpc] fix build failure when set ENABLE_SYNCD_RPC=y (#4690) 2020-06-05 12:56:35 -07:00
Samuel Angebault
c8bd640ae5
[arista] Update drivers submodules (#4693)
- Sensor and Fan information added to primary platforms for thermal API.
- Refactors involving better abstractions, code reuse and dead code removal.
- Improvements to the diag capabilities
- Pylintrc added to improve code quality. Will become fatal at a later time.

Co-authored-by: Baptiste Covolato <baptiste@arista.com>
2020-06-04 13:33:33 -07:00
Masaru OKI
3a0de981ca
[kvmimae]: Update sonic-gns3a.sh (#4694)
Cleanup description string
First port (management port) are excluded from general port naming scheme.

Management port are excluded from general port naming scheme.

before:
|on GNS3  |in SONiC |
|---------|---------|
|Ethernet0|eth0     |
|Ethernet1|Ethernet0|
|Ethernet2|Ethernet4|
|Ethernet3|Ethernet8|

after:
|on GNS3  |in SONiC |
|---------|---------|
|eth0   |eth0       |
|Ethernet0|Ethernet0|
|Ethernet1|Ethernet4|
|Ethernet2|Ethernet8|

Signed-off-by: Masaru OKI <masaru.oki@gmail.com>
2020-06-04 13:29:36 -07:00
Mahesh Maddikayala
fb6916f88b
Update packages and pointers to use SAI1.6 headers. (#4597)
* Update sonic-sairedis (sairedis with SAI 1.6 headers)

* Update SAIBCM to 3.7.4.2, which is built upon SAI1.6 headers

* missed updating BRCM_SAI variable, fixed it

* Update SAIBCM to 3.7.4.2, updated link to libsaibcm

* [Mellanox] Update SAI (release:v1.16.3; API:v1.6)

Signed-off-by: Volodymyr Samotiy <volodymyrs@mellanox.com>

* Update sonic-sairedis pointer to include SAI1.6 headers

* [Mellanox] Update SDK to 4.4.0914 and FW to xx.2007.1112 to match SAI 1.16.3 (API:v1.6)

Signed-off-by: Volodymyr Samotiy <volodymyrs@mellanox.com>

* ensure the veth link is up in docker VS container

* ensure the veth link is up in docker VS container

* [Mellanox] Update SAI (release:v1.16.3.2; API:v1.6)

Signed-off-by: Volodymyr Samotiy <volodymyrs@mellanox.com>

* use 'config interface startup' instead of using ifconfig command, also undid the previous change'

Co-authored-by: Volodymyr Samotiy <volodymyrs@mellanox.com>
2020-05-30 14:23:34 -07:00
Arun Saravanan Balachandran
f0eb1dbc93
DellEMC: Skip thermalctld (S6000, S6100, Z9100 and Z9264) and thermal platform API changes (#4644)
- Skip thermalctld in DellEMC S6000, S6100, Z9100 and Z9264 platforms.
- Change the return type of thermal Platform APIs in DellEMC S6000, S6100, Z9100 and Z9264 platforms to 'float'.
2020-05-27 12:22:55 -07:00
zoe-kuan
fa809c86dc
[platform/delta]: Add a new supported platform, Delta-agc032 (#4602)
* [platform]: Add a new supported platform, Delta-agc032

Switch Vendor: Delta
Switch SKU: Delta-agc032
CPU: BROADWELL-DE
ASIC Vendor: Broadcom
Switch ASIC: Tomahawk3, BCM56980
Port Configuration: 32x400G + 2x10G

- What I did
Add a new Delta platform Delta-agc032.

- How I did it
Add files by following SONiC Porting Guide.

- How to verify it
1. decode-syseeprom
2. sensors
3. psuutil
4. sfputil
5. show interface status
6. bcmcmd

Signed-off-by: zoe-kuan <ZOE.KUAN@deltaww.com>
2020-05-27 09:33:02 -07:00
jostar-yang
f532fb95a9
[accton/as4630-54pe] Fix ypeb-1200am psu_fan dir issue (#4626)
3y Power YPEB-1200am PSU doens't support read fan_dir from pmbus register

Check with vendor this PUS type only support F2B fan direction. So add to show "F2B"
when red psu_fan_dir sysfs.
2020-05-26 12:49:51 -07:00
Junchao-Mellanox
e25c2d984f
[Mellanox] Never disable kernel thermal algorithm at real-time (#4638) 2020-05-26 10:46:29 -07:00
Junchao-Mellanox
f277d13cd6
[Mellanox] Adjust log level to avoid too many thermal logs (#4631)
* Trigger thermal action log only if thermal condition changes
* test file existence before read file content
* fix error for set psu fan speed
* Remove logs because it print too frequently
2020-05-26 10:45:25 -07:00
Guohan Lu
40cb10d2dd [docker-syncd-nephos]: use service dependency in supervisord to start services 2020-05-22 11:01:28 -07:00
Guohan Lu
918cf632f4 [docker-syncd-mrvl]: use service dependency in supervisord to start services 2020-05-22 11:01:28 -07:00
Guohan Lu
7ae67d0dcf [docker-syncd-centec]: use service dependency in supervisord to start services
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-05-22 11:01:28 -07:00
Guohan Lu
745f58cde7 [docker-syncd-invm]: use service dependency in supervisord to start services 2020-05-22 11:01:28 -07:00
Guohan Lu
82dc8ace12 [docker-syncd-bfn]: use service dependency in supervisord to start services 2020-05-22 11:01:28 -07:00
Guohan Lu
5664f68bb7 [docker-syncd-mlnx]: use service dependency in supervisord to start services 2020-05-22 11:01:28 -07:00
Guohan Lu
bb40300cad [docker-syncd-brcm]: use service dependency in supervisord to start services 2020-05-22 11:01:28 -07:00
Guohan Lu
ecde1fe1aa [docker-syncd-vs]: use service dependency in supervisord to start services 2020-05-22 11:01:28 -07:00
Wirut Getbamrung
5e5e9ec417
[device/celestica]: DX010 platform API update (#4608)
- Fix fancontrol.service path
- Fix return temp format in thermal API
- Improve init time in chassis API
- Upgrade sfp API
2020-05-22 03:50:43 -07:00
simonJi2018
0b6253baa1
[platform/nephos] Optimize the code to reduce changes due to the kernel upgrade (#4332)
- bug fix : Fixed an issue which the nps ko file was not loaded due to the wrong service file name
- Optimize the code to reduce changes due to the kernel upgrade
- Remove nephos ko file loaded in swss.service.j2 because it has loaded at syncd.service.j2
2020-05-21 02:21:07 -07:00
Srideep
2cd9f74d21
[platform] Add DellEMC s5232f API 2.0 support (#4552) 2020-05-20 14:40:39 -07:00
Arun Saravanan Balachandran
e976b70e74
DellEMC: get_change_event Platform API implementation for S6000, S6100 and Z9100 (#4593)
For detecting transceiver change events through xcvrd in DellEMC S6000, S6100 and Z9100 platforms.

- In S6000, rename 'get_transceiver_change_event' in chassis.py to 'get_change_event' and return appropriate values.
- In S6100, implement 'get_change_event' through polling method (poll interval = 1 second) in chassis.py (Transceiver insertion/removal does not generate interrupts due to a CPLD bug)
- In Z9100, implement 'get_change_event' through interrupt method using select.epoll().
2020-05-20 12:52:50 -07:00
taochengyi
cde69bafa9
[centec]: Adding missing changes for centec x86 platform (#4611)
PR #4605 has two changes that are missing, fix them.
2020-05-19 09:22:35 -07:00
taochengyi
edde1222b0
[CENTEC] Fix compile issues for centec x86 platform image build under 4.19 (#4605)
* centec x86 update for buster
* optimize dal code
2020-05-15 14:49:22 -07:00
Santhosh Kumar T
d90fdbf3f9
[DellEMC] S6000 Disable Low power mode by default (#4592) 2020-05-14 10:29:43 -07:00
ciju-juniper
40bc4875a8
[Juniper][QFX5200] EM policy updates (#4543)
This patchset implement the following:
 - Setting the FAN frequency
 - Corrections to the EM policy with respect to platform
   defined temperature / fan values
 - Updates to the platform monitorng script logging
 - Fixes to platform initialization script

Signed-off-by: Ciju Rajan K <crajank@juniper.net>
2020-05-13 10:02:15 -07:00
Junchao-Mellanox
5e6c20481d
[Mellanox] Enhancement for fan led management (#4437) 2020-05-13 10:01:32 -07:00
Andriy Kokhan
6889fd14ac
[BFN] Fixed Barefoot platform image build. (#4565)
- Updated bf_tun kernel driver;
- Temporarily disabled WNC modules build;

Signed-off-by: Andriy Kokhan <akokhan@barefootnetworks.com>
2020-05-11 23:23:34 -07:00
Andriy Kokhan
40ed75c2cb
[BFN] Updated Barefoot SDK to 2020-05-07 (#4566)
Signed-off-by: Andriy Kokhan <akokhan@barefootnetworks.com>
2020-05-11 23:21:05 -07:00
Kebo Liu
61c304d00a
[mellanox]: Update SAI to 1.16.4, SDK to 4.4.0918, FW to *.2007.1140 (#4571)
- mgmt buffer issue on 400G port
- high CPU utilization issue caused by some counter reading
2020-05-11 14:11:05 -07:00
Junchao-Mellanox
1cdcb2c62d
[Mellanox] Add patch to disable hw-management thermal control shell script (#4550)
* [Mellanox] Add patch to disable hw-management thermal control shell script

* Remove SimX patch since https://github.com/Azure/sonic-buildimage/pull/4364/files has already handle it
2020-05-07 12:35:48 -07:00
Guohan Lu
767bc5c8c0 [build]: add docker-saiserver-* as stretch docker targets
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-05-06 10:23:38 +00:00
shlomibitton
30bbbbf24f
hw-mgmt_V.7.0000.3034 integration (#4519)
Signed-off-by: Shlomi Bitton <shlomibi@mellanox.com>
2020-05-02 20:37:14 +03:00
lguohan
c55603f494
[build]: add docker-ptf-* as stretch docker targets (#4516)
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-05-01 11:20:33 -07:00
dereksun01
506e9546c9
[device] Upgrade as4630_54pe for new platform (#4268)
- Add port auto-negotiation attribute.
- Add CPLD command to disable mode.
2020-05-01 05:27:32 -07:00
Kebo Liu
352a39742a
[mellanox]: MSN4700 support 8 lanes 400G with new SAI/SDK/FW (#4509)
Update SAI/SDK/FW and MSN4700 device files to support 8 lanes 400G

Update SAI to 1.16.3
Update SDK to 4.4.0914
Update FW to *.2007.1112
Update MSN4700 device files to support 8 lanes 400G
2020-04-30 15:46:21 -07:00
lguohan
86bc8aec5f
[vs]: dynamically create front panel ports in vs docker (#4499)
currently, vs docker always create 32 front panel ports.

when vs docker starts, it first detects the peer links
in the namespace and then setup equal number of front panel
interfaces as the peer links.

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-04-30 12:50:59 -07:00
Junchao-Mellanox
4c210f0d02
[Mellanox] Enhancement for support PSU LED management (#4467) 2020-04-30 12:42:01 -07:00
Samuel Angebault
80a025a7c2
[arista] update platform driver submodules (#4512)
- Add Makefile rules to build debug containers for SWI images
- Fix some platform API implementation for xcvrd and thermalctld
- Improvements to arista diag command
- Miscellaneous refactors

Co-authored-by: Maxime Lorrillere <mlorrillere@arista.com>
2020-04-30 12:06:19 -07:00
Guohan Lu
6850644640 [vs]: add missing dvslib link for the vs test
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-04-30 17:17:58 +00:00
shlomibitton
b6291372d9
[Mellanox] Add a new Mellanox platform x86_64-mlnx_msn4600c and new SKU ACS-MSN4600C (#4483)
* New SKU support for MSN4600C

Signed-off-by: Shlomi Bitton <shlomibi@mellanox.com>
2020-04-30 00:30:11 -07:00
Aravind Mani
a40fe3ba15
[DellEMC] S6100-Fix i2C ISMT issue (#4330)
* [DellEMC] S6100-Fix i2C ISMT issue

* Modified the retry condition for bit bang
2020-04-28 13:16:19 -07:00
Nazarii Hnydyn
0409a32abe
[mellanox]: Align CPLD component with latest hw-mgmt. (#4485)
Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2020-04-28 18:15:19 +03:00
Junchao-Mellanox
b26814f643
[Mellanox] Adjust dynamic minimum fan speed algorithm (#4476)
* remove air flow direction from dynamic minimum algorithm
* adjust minimum table according to thermal data
2020-04-27 20:52:57 -07:00
shlomibitton
ac6cfb115f
[Mellanox] Add a new Mellanox platform x86_64-mlnx_msn3420 and new SKU ACS-MSN3420 (#4436)
* New SKU support for MSN3420

Signed-off-by: Shlomi Bitton <shlomibi@mellanox.com>

Conflicts:
	device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py

* Add CPLD's

* Symlink fixes and semantics

* Adding new platform at end of lines
2020-04-26 14:39:55 +03:00
jostar-yang
9129378097
[accton/as9716-32d] add support get_transceiver_change_event (#4105)
Co-authored-by: Jostar Yang <jostar_yang@accton.com.tw>
2020-04-22 22:54:48 -07:00
lguohan
c52b8c4e75
[platform-modules]: set debian control depends on unsigned kernel package (#4466)
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-04-22 19:41:48 -07:00
Junchao-Mellanox
c730f3e207
[Mellanox] thermal control enhancement for dynamic minimum fan speed and PSU fan speed policy (#4403) 2020-04-21 08:09:53 -07:00
ciju-juniper
d1940b2cf4
[Juniper] Re-organizing sonic_platform modules (#4448)
This patch set implements the following:
 - Fixes the conflicts in chassis.py / platform.py in sonic_platfrom
 - Consolidating the common library files in sonic_platform
 - Moving QFX5210 specific drivers to qfx5210/modules
 - Moving Juniper common fpga drivers to common/modules
 - Cleaning up the platform driver files
 - Bug fixes in QFX5210 platform monitor & initialiazation script
 - Fixing the bugs in QFX5210 eeprom parsing

Signed-off-by: Ciju Rajan K <crajank@juniper.net>
2020-04-21 02:25:51 -07:00
Nazarii Hnydyn
13bef09889
[mellanox]: Add DPKG local caching support. (#4441)
Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2020-04-20 19:02:46 -07:00
lguohan
46fad0e0c6
Merge pull request #4405 from lguohan/buster
[baseimage]: upgrade base image to debian buster

bring up the base image to debian buster 4.19 kernel.

using the merge commits to preserve the individual commits to better track the history.
2020-04-20 15:32:17 -07:00
byu343
0095763780 [arista]: Update driver submodules to support buster kernel (#57) 2020-04-20 07:34:43 +00:00
abdosi
d8b716681c
[sonic-buildimage] libsaibcm Debian package update (#4439)
from 3.7.3.3-3 to 3.7.3.3-4
Fixes for PFC WD

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2020-04-17 10:46:56 -07:00
taochengyi
744d33d502
[devices]: Centec x86 goldengate platforms and devices update (#4248)
* Centec x86 goldengate update (#8)
2020-04-17 00:38:48 -07:00
Guohan Lu
f3a1156d45 [vsraw]: build sonic-vs.raw image 2020-04-17 04:51:51 +00:00
Guohan Lu
38a4fddaa9 [vsimage]: install systemd generator into one image
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-04-17 04:51:51 +00:00
Stephen Sun
7e0cfcee2c [Mellanox] build mft/hw-management in buster stage
Currently we port SONiC to buster in a way that base image is on buster and
other dockers based on stretch. The benefit is that tasks can be carried out
simultaneously.

The build procedure can be treated as 2 stages.

The first stage is to build the stretch-based debs and dockers and the second
stage is to build the buster-based ones.

One thing we have to pay attention to is some debs depend on kernel should not
be built at stretch stage because the kernel isn't available at that time.
The idea is to move that kind of debs out of SONIC_STRETCH_DEBS. Meanwhile,
any dependency explicitly put on the stretch based dockers on kernel should be
removed.
2020-04-17 04:51:51 +00:00
Guohan Lu
e5e26d9a43 [platform-modules]: set debian control file to depend on 4.19.0-6
change depends to linux-image-4.19.0-6-amd64 in debian/control

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-04-17 04:51:51 +00:00
Guohan Lu
207e32a9f2 [platform-modules]: fix compile issues for platform driver under 4.19
1. undefine led_classdev_register as it is defined in leds.h
2. header file location change
   a. linux/i2c/pmbus.h -> linux/pmbus.h
   b. linux/i2c-mux-gpio.h -> linux/platform_data/i2c-mux-gpio.h
   c. linux/i2c/pca954x.h -> linux/platform_data/pca954x.h
2020-04-17 04:51:51 +00:00
Guohan Lu
7f7212d8a8 [broadcom]: build opennsl-modules for kernel 4.19.0-6
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-04-16 10:26:18 +00:00
Guohan Lu
9d6760c336 [kernel]: build linux kernel 4.19.0-6
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-04-16 10:26:18 +00:00
Guohan Lu
01cb7934b0 [build]: add buster docker as the last step of the build proces
- build SONIC_STRETCH_DOCKERS in sonic-slave-stretch docker
- build image related module in sonic-slave-buster docker.
  This includes all kernels modules and some packages

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-04-16 10:26:18 +00:00
ciju-juniper
695652c9d1
[platform]: Adding platform support for Juniper QFX5200 (#4376)
This is a 1RU switch with 32 QSFP28 (40G/100G) ports on
Broadcom Tomahawk I chipset. CPU used in QFX5200-32C-S
is Intel Ivy Bridge. The machine has Redundant and
hot-swappable Power Supply (1+1) and also has Redundant
and hot swappable fans (5).

Signed-off-by: Ciju Rajan K <crajank@juniper.net>
Signed-off-by: Ashish Bhensdadia <bashish@juniper.net>
2020-04-16 03:09:32 -07:00
Kebo Liu
89fb1059fa
[Mellanox] Update hw-mgmt package to V.7.0000.3020 (#4362)
* update hw-mgmt package to V.7.0000.3020
* update sonic-linux-kernel repo to pick up new patches
2020-04-15 03:04:11 -07:00
Kebo Liu
cfa112ace8
[Mellanox] Extend mellanox platform API to report SFP error event (#4365)
* extend mellanox platform API to report SFP error event
* remove unnecessary loop code
* install enum34 to pmon to support using Enum
2020-04-14 10:20:06 -07:00
Nazarii Hnydyn
3c4f3116a0
[mellanox]: Enable CPLD update progress bar (#4363)
Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2020-04-14 09:55:08 -07:00
Myron Sosyak
530c9fc427
Update Barefoot kdrv (#4355) 2020-04-14 09:43:35 -07:00
Kebo Liu
48acdf882e
update SAI 1.16.2 SDK 4.4.0800 FW *.2007.0872 (#4417) 2020-04-13 19:45:56 +03:00
Nazarii Hnydyn
1b8897eec0
[mellanox]: Add SSD FW update tool (#4351)
* [mellanox]: Add SSD FW update tool.

Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>

* [mellanox]: Align Platform API.

Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>

* [mellanox]: Fix firmware description.

Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>

* [mellanox]: Update SSD tool.

Signed-off-by: Nazarii Hnydyn <nazariig@mellanox.com>
2020-04-13 18:13:19 +03:00
rajendra-dendukuri
606db589b8
[brcm-th-svk]: Fix errors in BCM956960K switch (#4390)
Fix Broadcom TH SVK boot up crash
2020-04-10 09:25:52 -07:00
Joe LeVeque
7405f8cfea
[Accton AS4630-54PE] Fix Python indentation error (#4393)
Fix Python indentation error
Add newline at EOF
2020-04-08 23:04:13 -07:00
Joe LeVeque
9068652cfd
[Juniper QFX5210] Fix Python errors (#4394)
* [Juniper QFX5210] Fix Python errors
* Remove unnecessary 'pass'
2020-04-08 23:01:27 -07:00
Andriy Kokhan
36752b8775
[BFN] Update Barefoot SDK packages (#4397)
Signed-off-by: Andriy Kokhan <akokhan@barefootnetworks.com>
2020-04-08 22:49:45 -07:00
Srideep
444cede11d
[DellEMC] S5232 platform updates (#4360)
FPGA driver crash fix for stale buffer in i2c transfer
LED firmware load issue fix.
10G port swapfix
psu/sfp bug fixes to report correct states/status of hw
2020-04-08 02:41:56 -07:00
Santhosh Kumar T
7bc8f1293c
[DellEMC] Z9264f Watchdog support (#4192)
Co-authored-by: Sujin Kang <sujkang@microsoft.com>
2020-04-06 09:27:45 -07:00
lguohan
60b16495cc
[docker-base-stretch]: move common packages into docker-base-stretch (#4371)
libpython2.7, libdaemon0, libdbus-1-3, libjansson4 are common
across different containers. move them into docker-base-stretch

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-04-05 13:29:34 -07:00
lguohan
dca8a27719
[docker-syncd-vs]: add support for vs syncd docker auto restart (#4344)
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2020-03-31 15:00:48 -07:00
SuvarnaMeenakshi
4b8067e913
Multi-ASIC implementation (#3888)
Changes made to support multi-asic platform. Added multi-instance support for swss, syncd, database, bgp, teamd and lldp.
2020-03-31 10:06:19 -07:00
rkdevi27
84256314fe
DellEMC: Platform 2.0 Api - Fan for z9264f (#4191) 2020-03-28 11:48:22 -07:00
Samuel Angebault
5b0ec7afe6
[Arista] Update drivers submodules (#4317)
* Update arista drivers submodules

* Add device configs for 7060CX2-32S

* Update boot0 and union-mount for 7060CX2-32S

* Add 7170-32C and 7170-32CD support in boot0

* Sync after writting boot configs

* Add 7170-32C and 7170-32CD device configurations

Co-authored-by: Boyang Yu <byu@arista.com>
2020-03-27 17:28:27 -07:00
jostar-yang
592abec5d9
[as4630-54pe]Put correct fanuilt.py file (#4321) 2020-03-25 11:58:19 -07:00
Junchao-Mellanox
80bf061b37
[Mellanox] Fix thermal control bugs (#4298)
* [thermal control] Fix pmon docker stop issue on 3800
* [thermal fix] Fix QA test issue
* [thermal fix] change psu._get_power_available_status to psu.get_power_available_status
* [thermal fix] adjust log for PSU absence and power absence
* [thermal fix] add unit test for loading thermal policy file with duplicate conditions in different policies
* [thermal] fix fan.get_presence for non-removable SKU
* [thermal fix] fix issue: fan direction is based on drawer
* Fix issue: when fan is not present, should not read fan direction from sysfs but directly return N/A
* [thermal fix] add unit test for get_direction for absent FAN
* Unplugable PSU has no FAN, no need add a FAN object for this PSU
* Update submodules

Co-authored-by: Stephen Sun <5379172+stephenxs@users.noreply.github.com>
2020-03-25 10:54:07 -07:00
Santhosh Kumar T
12291b276b
DellEMC S6100 I2C Enumeration Segregation (#4312) 2020-03-24 13:52:30 -07:00
Kebo Liu
f4ed88297d
[Mellanox] Add a new Mellanox platform x86_64-mlnx_msn4700 and new SKU ACS-MSN4700 (#3901)
* add MSN4700 device files

* update ACS-MSN4700 sai profile

* update buffer pool size, headroom, sensor conf, port config and reboot scripts

* fix ident

* update sensor conf and buffer pool

* [sn4700] add sku 4700 to chassis.py

* [Mellanox-4700] Add 4700 info to psu and thermal platform API

* update buffer config file template to the latest.
update SAI profile to use 100G X 4lanes for now
update port_config.ini according to the SAI profile

* [Mellanox]Update the buffer configurations for 4700

* fix alignment in pg_profile_lookup.ini

* add platform components file for new sku

* Update device/mellanox/x86_64-mlnx_msn4700-r0/ACS-MSN4700/pg_profile_lookup.ini

Co-Authored-By: Nazarii Hnydyn <nazariig@mellanox.com>

* remove redundant line

* [Mellanox]Correct type, buffer size

Co-authored-by: Nazarii Hnydyn <nazariig@mellanox.com>
Co-authored-by: junchao <junchao@mellanox.com>
Co-authored-by: Stephen Sun <stephens@mellanox.com>
2020-03-24 14:32:52 +02:00
Aravind Mani
8a6aeace6e
[DellEMC] Fix Z9100 port index issue (#4309) 2020-03-23 21:09:35 -07:00
Arun Saravanan Balachandran
0b52be3e5f
DellEMC: Z9264-Platform2.0 Implementation [Reboot Cause] (#4246)
- Added get_reboot_cause() API implementation in chassis.py
- Added new file platform.py for platform2.0 API implementation.
2020-03-23 15:30:09 -07:00
Nazarii Hnydyn
4d22cd405f
[mellanox]: Align platform API: change CPLD version representation (#4221) 2020-03-23 09:04:11 -07:00
noaOrMlnx
440f86ee07
[Mellanox] Update MFT version to 4.14.0 (#4262)
Signed-off-by: Noa Or <noaor@mellanox.com>
2020-03-23 00:42:30 -07:00
CharlieChenEC
3e6899004c
[docker/brcm-syncd-rpc]: remove duplicated "--net" options in broadcom syncd rpc (#4296)
In the file "files/build_templates/docker_image_ctl.j2", it adds the option
"--net" to the docker create command through the commit
"abe7ef7e2e2e1215c97cee19a83aab0b130cebe5" (#3856).

Remove the "--net" option in "docker-syncd-brcm-rpc.mk" to avoid
specifying duplicated "--net" options.

Signed-off-by: charlie_chen <charlie_chen@edge-core.com>
2020-03-21 18:47:31 -07:00
jostar-yang
c9059992a0
[AS9716-32D]:Support 0x57 and 0x56 eeprom (#4103)
* [AS9716-32D]:Support 0x57 and 0x56 eeprom

* Add checking sysfs use 0x57 or 0x56

Co-authored-by: Jostar Yang <jostar_yang@accton.com.tw>
2020-03-21 14:26:55 -07:00
ashishb-juniper
f88dffe95c
[platform]: Added QFX5210 readme for build and install (#4211)
Signed-off-by: Ciju Rajan K <crajank@juniper.net>
Signed-off-by: Ashish Bhensdadia <bashish@juniper.net>
Co-authored-by: Ashish Kumar Bhensdadia <ashish@sonic-server.englab.juniper.net>
2020-03-19 23:33:44 -07:00
arheneus@marvell.com
59ea0daf35
[Marvell] ARM64 Uboot Fit Image for Marvell SONIC image (#4293)
marvell sonic arm64 uboot fit flattened blob file.
Used by uboot as refered in this change
https://github.com/Azure/sonic-buildimage/pull/4043/files#diff-f6372e5829e59e22aa068273c238ba83

Signed-off-by: Antony Rheneus <arheneus@marvell.com>
2020-03-19 23:25:38 -07:00
Myron Sosyak
0b618ab19b
[BFN] Fix syncd RPC compilation (#4258)
* Fix BFN syncd RPC compilation
* Remove empty line
2020-03-19 10:40:14 -07:00
simonJi2018
9c866cd17e
[platform/nephos] Upgrade nephos-modules from 1.0.0 to 1.0.1 (#4267) 2020-03-18 14:05:42 -07:00
Mykola F
bfe690b739
[syncd-rpc.mk] install ptf dependancy (#4279)
Signed-off-by: Mykola Faryma <mykolaf@mellanox.com>
2020-03-18 11:59:39 -07:00
Samuel Angebault
a3bbdc9929
[arista] Update platform drivers submodules (#4200)
* Build Arista drivers using DPKG_DEB
* Update arista platform submodule
2020-03-17 10:14:59 -07:00
Danny Allen
487a734ce0
[vs] Add dependencies for NAT to docker-sonic-vs (#4259)
I added dependencies to support the NAT feature on the virtual switch.

Signed-off-by: Danny Allen <daall@microsoft.com>
2020-03-15 13:54:05 -07:00
Kalimuthu-Velappan
7d2ebf8116
[build]: support for DPKG local caching (#4117)
DPKG caching framework provides the infrastructure to cache the sonic module/target .deb files into a local cache by tracking the target dependency files.SONIC build infrastructure is designed as a plugin framework where any new source code can be easily integrated into sonic as a module and that generates output as a .deb file. The source code compilation of a module is completely independent of other modules compilation. Inter module dependency is resolved through build artifacts like header files, libraries, and binaries in the form of Debian packages. For example module A depends on module B. While module A is being built, it uses B's .deb file to install it in the build docker.

The DPKG caching framework provides an infrastructure that caches a module's deb package and restores it back to the build directory if its dependency files are not modified. When a module is compiled for the first time, the generated deb package is stored at the DPKG cache location. On the subsequent build, first, it checks the module dependency file modification. If none of the dependent files is changed, it copies the deb package from the cache location, otherwise, it goes for local compilation and generates the deb package. The modified files should be checked-in to get the newer cache deb package.

This provides a huge improvement in build time and also supports the true incremental build by tracking the dependency files.

- How I did it
It takes two global arguments to enable the DPKG caching, the first one indicates the caching method and the second one describes the location of the cache.
SONIC_DPKG_CACHE_METHOD=cache
SONIC_DPKG_CACHE_SOURCE=

    where  SONIC_DPKG_CACHE_METHOD - Default method is 'cache' for deb package caching
                            none:     no caching
                            cache:    cache from local directory
Dependency file tracking:
Dependency files are tracked for each target in two levels.
1. Common make infrastructure files - rules/config, rules/functions, slave.mk etc.
2. Per module files - files which are specific to modules, Makefile, debian/rules, patch files, etc.

    For example: dependency files for Linux Kernel - src/sonic-linux-kernel,

            SPATH       := $($(LINUX_HEADERS_COMMON)_SRC_PATH)
            DEP_FILES   := $(SONIC_COMMON_FILES_LIST) rules/linux-kernel.mk rules/linux-kernel.dep
            DEP_FILES   += $(SONIC_COMMON_BASE_FILES_LIST)
            SMDEP_FILES := $(addprefix $(SPATH)/,$(shell cd $(SPATH) && git ls-files))

            DEP_FLAGS := $(SONIC_COMMON_FLAGS_LIST) \
                         $(KERNEL_PROCURE_METHOD) $(KERNEL_CACHE_PATH)

            $(LINUX_HEADERS_COMMON)_CACHE_MODE  := GIT_CONTENT_SHA
            $(LINUX_HEADERS_COMMON)_DEP_FLAGS   := $(DEP_FLAGS)
            $(LINUX_HEADERS_COMMON)_DEP_FILES   := $(DEP_FILES)
            $(LINUX_HEADERS_COMMON)_SMDEP_FILES := $(SMDEP_FILES)
            $(LINUX_HEADERS_COMMON)_SMDEP_PATHS := $(SPATH)
Cache file tracking:
The Cache file is a compressed TAR ball of a module's target DEB file and its derived-target DEB files.
The cache filename is formed with the following format

    FORMAT:
            <module deb filename>.<24 byte of DEP SHA hash >-<24 byte of MOD SHA hash>.tgz
            Eg:
              linux-headers-4.9.0-9-2-common_4.9.168-1+deb9u3_all.deb-23658712fd21bb776fa16f47-c0b63ef593d4a32643bca228.tgz

            < 24-byte DEP SHA value > - the SHA value is derived from all the dependent packages.
            < 24-byte MOD SHA value > - the SHA value is derived from either of the following.
                    GIT_COMMIT_SHA  - SHA value of the last git commit ID if it is a submodule
                    GIT_CONTENT_SHA - SHA value is generated from the content of the target dependency files.
Target Specific rules:
Caching can be enabled/disabled on a global level and also on the per-target level.

            $(addprefix $(DEBS_PATH)/, $(SONIC_DPKG_DEBS)) : $(DEBS_PATH)/% : .platform $$(addsuffix -install,$$(addprefix $(DEBS_PATH)/,$$($$*_DEPENDS))) \
                    $(call dpkg_depend,$(DEBS_PATH)/%.dep )
            $(HEADER)


            # Load the target deb from DPKG cache
            $(call LOAD_CACHE,$*,$@)


            # Skip building the target if it is already loaded from cache
            if [ -z '$($*_CACHE_LOADED)' ] ; then

                  .....
                 # Rules for Generating the target DEB file.
                  .....

                  # Save the target deb into DPKG cache
                  $(call SAVE_CACHE,$*,$@)
            fi


            $(FOOTER)


    The make rule-'$(call dpkg_depend,$(DEBS_PATH)/%.dep )' checks for target dependency file modification. If it is newer than the target, it will go for re-generation of that target.

    Two main macros 'LOAD_CACHE' and 'SAVE_CACHE' are used for loading and storing the cache contents.
    The 'LOAD_CACHE' macro is used to load the cache file from cache storage and extracts them into the target folder. It is done only if target dependency files are not modified by checking the GIT file status, otherwise, cache loading is skipped and full compilation is performed.
    It also updates the target-specific variable to indicate the cache is loaded or not.
    The 'SAVE_CACHE' macro generates the compressed tarball of the cache file and saves them into cache storage. Saving into the cache storage is protected with a lock.
- How to verify it

    The caching functionality is verified by enabling it in Linux kernel submodule.
    It uses the cache directory as 'target/cache' where Linux cache file gets stored on the first-time build and it is picked from the cache location during the subsequent clean build.
- Description for the changelog
The DPKG caching framework provides the infrastructure to save the module-specific deb file to be cached by tracking the module's dependency files.
If the module's dependency files are not changed, it restores the module deb files from the cache storage.

- Description for the changelog

- A picture of a cute animal (not mandatory but encouraged)

DOCUMENT PR:

           https://github.com/Azure/SONiC/pull/559
2020-03-11 20:04:52 -07:00
Stephen Sun
7d0570c517
[Mellanox]Take advantage of sdk variable to customize the location where sdk_socket exists. (#4223)
Take advantage of an SDK environment variable to customize the location where sdk_socket exists.
In the latest SDK sdk_socket has been moved from /tmp to /var/run which is a better place to contain this kind of file.
However, this prevents the subdirs under /var/run from being mapped to different volumes. To resolve this, we take advantage of an SDK variable to designate the location of sdk_socket.
This requires every process that requires to access sdk_socket have this environment variable defined. However, to define environment variable for each process is less scalable. We take advantage of the docker scope environment variable to avoid that.
It depends on PR 4227
2020-03-09 12:36:56 -07:00
Junchao-Mellanox
be549db395
Add thermal control support for SONiC (#3949) 2020-03-09 10:41:10 -07:00
Junchao-Mellanox
67f520ff5b
[Mellanox] Add sdk 4.4.0542 (#4227)
* [Mellanox] Add sdk 4.4.0542

* fix typo
2020-03-09 17:58:49 +02:00