Compare commits

...

374 Commits

Author SHA1 Message Date
Liu Shilong
b6e83d5a69
[build] Use public storage for public resources. (#18038) (#18202) 2024-02-28 13:09:02 -08:00
xumia
2a992ce740
[Build] Fix the PyYang python package installation issue (#15890) (#15904)
Why I did it
Fix the armhf build failure.
How to reproduce the issue:

docker run -it debain:bullseye bash
apt-get update && apt-get install -y python3-pip
pip3 install PyYAML==5.4.1
Error message:

Collecting PyYAML==5.4.1
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 /tmp/tmp6xabslgb_in_process.py get_requires_for_build_wheel /tmp/tmp_er01ztl
....
      raise AttributeError(attr)
  AttributeError: cython_sources
  ----------------------------------------
WARNING: Discarding d63f2d7597/PyYAML-5.4.1.tar.gz (sha256)=607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e (from https://pypi.org/simple/pyyaml/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*). Command errored out with exit status 1: /usr/bin/python3 /tmp/tmp6xabslgb_in_process.py get_requires_for_build_wheel /tmp/tmp_er01ztl Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement PyYAML==5.4.1
ERROR: No matching distribution found for PyYAML==5.4.1
root@fa2fa92edcfd:/#
But if adding the option --no-build-isolation, then it is good, see fix.

install "PyYAML==5.4.1" --no-build-isolation
The same error can be found in the multiple builds.

Work item tracking
Microsoft ADO (number only): 24567457

How I did it
Add a build option --no-build-isolation.
2023-07-20 07:48:25 +08:00
mssonicbld
968852fa72
[Build] Remove the additional space character in the mirrors.list file (#13812) (#15474) 2023-06-15 20:11:27 +08:00
mssonicbld
9ae7e3ac1c
[sonic-frr]: Checkout gracefully if branch exists already. (#8289) (#15434) 2023-06-12 20:21:49 +08:00
Liu Shilong
d360ec030d
[ci] Add OVERRIDE_BUILD_OPTIONS in image build template. (#15309) (#15341)
Why I did it
Set build options in pipeline UI.
Support setting reproducible build options to py2,py3 in release branch and none in master branch.

Work item tracking
Microsoft ADO (number only): 22335854
How I did it
How to verify it
2023-06-08 09:42:31 +08:00
mssonicbld
de3b9d24a9
[ci/build]: Upgrade SONiC package versions (#15060) 2023-05-14 15:13:52 +08:00
mssonicbld
451944c43b
[Build] update python package docker in host image to 6.1.1 (#14993) (#15044) 2023-05-12 19:36:43 +08:00
mssonicbld
ce5656d245
[ci/build]: Upgrade SONiC package versions (#14915) 2023-05-02 20:51:06 +08:00
mssonicbld
65bf713418
[build]: Force xz as compression type when building sonic-build-hooks debs (#12823) (#14898) 2023-05-02 00:09:10 +08:00
mssonicbld
f65cf1c00b
[ci/build]: Upgrade SONiC package versions (#14895) 2023-04-30 22:32:51 +08:00
mssonicbld
eeec884b6d
[ci/build]: Upgrade SONiC package versions (#14840) 2023-04-29 21:09:22 +08:00
mssonicbld
4c5868369b
[ci/build]: Upgrade SONiC package versions (#14813) 2023-04-23 20:30:22 +08:00
mssonicbld
d42e6d040b
[ci/build]: Upgrade SONiC package versions (#14801) 2023-04-22 21:23:22 +08:00
mssonicbld
b609124802 [ci/build]: Upgrade SONiC package versions 2023-04-19 10:43:20 +08:00
xumia
2001bbd07b
[Build][202106] Support Debian snapshot mirror to improve build stability (#14663)
Why I did it
Cherry-pick commits from master to support the snapshot based mirror, and fix the code conflicts.

ad162ae [Build] Optimize the version control for Debian packages (#14557)
38c5d7f [Build] Support j2 template for debian sources for docker ptf (#13198)
5e4826e [Ci] Support to use the same snapshot for all platform builds (#13913)
8206925 [Build] Change the default mirror version config file (#13786)
5e4a866 [Build] Support Debian snapshot mirror to improve build stability (#13097)
ac5d89c [Build] Support j2 template for debian sources (#12557)

Work item tracking
Microsoft ADO (number only): 18018114
How I did it
How to verify it
2023-04-18 10:24:53 +08:00
mssonicbld
7e6a25ee43
[ci/build]: Upgrade SONiC package versions (#14683) 2023-04-16 20:49:31 +08:00
mssonicbld
8438cba059
[ci/build]: Upgrade SONiC package versions (#14676) 2023-04-15 21:18:01 +08:00
Liu Shilong
c24de5e5e6
Fix build issue in 202106 branch on dbus-python and meson. (#14635)
Why I did it
dbus-python-1.3.2 uses latest meson to build.
latest meson v1.1.0 has some issues.

Work item tracking
Microsoft ADO (number only):
How I did it
How to verify it
2023-04-14 11:23:32 +00:00
mssonicbld
c82685ec78
[ci/build]: Upgrade SONiC package versions (#14574) 2023-04-08 20:59:45 +08:00
mssonicbld
5cacc70939
[ci/build]: Upgrade SONiC package versions (#14516) 2023-04-04 21:33:52 +08:00
mssonicbld
9f05d7f514
[ci/build]: Upgrade SONiC package versions (#14490) 2023-04-01 21:08:32 +08:00
mssonicbld
b577902789
[ci/build]: Upgrade SONiC package versions (#14477) 2023-03-31 20:09:34 +08:00
mssonicbld
9b5829c15c
Pin mmh3 package version in sonic-slave-stretch docker (#14463) (#14469) 2023-03-31 03:09:45 +08:00
mssonicbld
f0d7cd3cc0
[ci/build]: Upgrade SONiC package versions (#14369) 2023-03-21 20:41:42 +08:00
mssonicbld
9c9232fa85
[ci/build]: Upgrade SONiC package versions (#14346) 2023-03-19 22:39:50 +08:00
mssonicbld
8e775fd809
[ci/build]: Upgrade SONiC package versions (#14302) 2023-03-18 05:06:14 +08:00
mssonicbld
4708058897
[ci/build]: Upgrade SONiC package versions (#14078) 2023-03-04 21:02:03 +08:00
mssonicbld
cb6a3c6d13
[ci/build]: Upgrade SONiC package versions (#13996) 2023-02-27 17:25:55 +08:00
mssonicbld
20c6cab866
[ci/build]: Upgrade SONiC package versions (#13993) 2023-02-25 22:54:52 +08:00
Liu Shilong
3ad9fcaa17
[ci] Fix docker hang issue and change template reference branch (#13894) (#13920)
Why I did it
Cherry pick PR(#13894)
Azure pipeline change.
Use common template to make it easy to change common steps. Fix docker hang issue.

How I did it
How to verify it
2023-02-23 14:04:26 +08:00
mssonicbld
c4942c9656
[build] Fix unexpected warnings: No names found, cannot describe anything. (#12963) (#13927) 2023-02-22 22:04:18 +08:00
mssonicbld
91033e110b
[ci/build]: Upgrade SONiC package versions (#13883) 2023-02-21 21:34:54 +08:00
Liu Shilong
b18751f721
[ci] Kill hanged docker build process to avoid build timeout issue. (#13726) (#13730)
Why I did it
Docker build has a low rate of hanging up.
It hangs on different steps. So, it looks like a bug in docker daemon.

How I did it
Start a daemon process to scan running time more than 1 hours, and kill the process.

How to verify it
2023-02-20 18:16:05 +08:00
mssonicbld
ddc6ae1d8b
[ci/build]: Upgrade SONiC package versions (#13878) 2023-02-18 20:06:12 +08:00
mssonicbld
57ddad3194
[ci/build]: Upgrade SONiC package versions (#13804) 2023-02-14 23:33:02 +08:00
mssonicbld
ab77eb5fce
[ci/build]: Upgrade SONiC package versions (#13782) 2023-02-11 21:42:56 +08:00
Liu Shilong
6741593e92 [build] Check if patches are applied before applying patches (#13386)
Why I did it
If make fails, we can't rerun the make process, because existing patches can't apply again.

How I did it
Check if patches are applied. if yes, don't apply patches again.

How to verify it
2023-02-02 22:32:43 +08:00
mssonicbld
f6cda03e84 [ci/build]: Upgrade SONiC package versions 2023-02-01 16:37:01 +08:00
selva
199661c216
[devices]: add support to Supermicro G3748 switches (#13420)
Why I did it
Enabled SONiC on Supermicro switch SSE G3748. This contains the code needed under "device" directory.

How I did it
As per the porting guide documentation posted in SONiC WiKi

How to verify it
Build SONiC with ARC=arm64 PLATFORM=marvell and download image from ONIE into Supermicro SSE G3748
2023-01-19 09:17:51 -08:00
Liu Shilong
5db68009ad
Fix sonic slave pipeline to set correct tag on sonic slave image. (#13177) (#13385) 2023-01-18 11:33:11 +08:00
mssonicbld
82f4a2628b
[ci/build]: Upgrade SONiC package versions (#13391) 2023-01-17 22:00:13 +08:00
mssonicbld
fa15a4504d
[ci/build]: Upgrade SONiC package versions (#13367) 2023-01-15 21:39:17 +08:00
mssonicbld
f2d4a1dae3
[ci/build]: Upgrade SONiC package versions (#13366) 2023-01-15 00:08:58 +08:00
Liu Shilong
b70bbbe318
[build] Fix sonic-host-services dependency deepdiff version issue (#13337)
Why I did it
sonic_host_services depends on deepdiff.
But latest deepdiff version has error.

How I did it
pin deepdiff to previous version.

How to verify it
2023-01-12 13:18:29 +08:00
xumia
fc0a64092a
[Ci] Remove the platform innovium from version auto upgrade pipeline (#13208)
Why I did it
[Ci] Remove the platform innovium from version auto upgrade pipeline

There is a build issue in the specific platform innovium, it blocks the upgrade job to run successfully, disable the version upgrade temporarily.

How I did it
Remove the upgrade job for innovium
2023-01-06 16:10:48 +08:00
mssonicbld
e9d5bb7952
[ci/build]: Upgrade SONiC package versions (#13201) 2022-12-30 06:44:21 +08:00
xumia
0e559e0c7a
[Build] Fix libyang build broken issue (#13162)
Why I did it
The libyang cannot be built with the latest version of cmake.
Example: https://dev.azure.com/mssonic/build/_build/results?buildId=181862&view=logs&j=993d6e22-aeec-5c03-fa19-35ecba587dd9&t=d0538dec-1681-5ff8-bd45-c0de13be9706

[ 96%] Building CXX object swig/python2/CMakeFiles/_yang2.dir/yangPYTHON_wrap.cxx.o
/sonic/src/libyang/libyang-1.0.73/build/swig/python2/yangPYTHON_wrap.cxx:3292:33: error: expected initializer before '.' token
 #  define SWIG_init    init_yang.so
                                 ^
/sonic/src/libyang/libyang-1.0.73/build/swig/python2/yangPYTHON_wrap.cxx:102537:1: note: in expansion of macro 'SWIG_init'
 SWIG_init(void) {
 ^~~~~~~~~
/sonic/src/libyang/libyang-1.0.73/build/swig/python2/yangPYTHON_wrap.cxx:101971:24: warning: 'swig_const_table' defined but not used [-Wunused-variable]
 static swig_const_info swig_const_table[] = {

See relative issue: #4315

How I did it
Not upgrade the cmake, change to use the dbus-python 1.2.18 which is compatible with cmake 3.13.4

How to verify it
See https://dev.azure.com/mssonic/build/_build/results?buildId=194756&view=results
2022-12-28 10:01:59 +08:00
mssonicbld
852d41ba95
[build][Bug]: Fix the command set_reproducible_mirrors not found issue (#10398) (#13173) 2022-12-26 15:55:18 +08:00
Liu Shilong
a3a704cf19
[build] Add retry when make SONiC image to improve success rate. (#12325) (#13131)
Why I did it
Makefile needs some dependencies from the Internet. It will fail for network related issue.
Retries will fix most of these issues.

How I did it
Add retries when running commands which maybe related with networking.

How to verify it
2022-12-23 18:51:43 +08:00
mssonicbld
64cc7c1b4f
[build] Fix issue between reproducible build and dood. (#11084) (#12845) (#13120) 2022-12-21 14:07:58 +08:00
xumia
35e3707aa2
[Build] Fix dbus-python installation issue in armhf (#12849)
Why I did it
Fix the python3 dbus-python installation issue in arm.

See https://dev.azure.com/mssonic/be1b070f-be15-4154-aade-b1d3bfb17054/_apis/build/builds/180980/logs/96

      
            CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
              CMake 3.15 or higher is required.  You are running version 3.13.4
How I did it
Install the cmake package from buster-backports

How to verify it
Succeeded:

docker run --rm -it 8380970b72ea bash
sudo apt-get install -y -t buster-backports cmake
sudo pip3 install dbus-python
Where the docker image 8380970b72ea is the buster slave image in armhf.

Failed:

docker run --rm -it 8380970b72ea bash
sudo pip3 install dbus-python
2022-11-29 16:57:27 +08:00
mssonicbld
4d71dafc16
[ci/build]: Upgrade SONiC package versions (#12574) 2022-11-02 08:55:43 +08:00
xumia
ed20a6dec6 [Build][Bug] Fix apt-get remove version not lock issue (#12193)
Why I did it
Fix apt-get remove/purge version not locked issue when the apt-get options not specified.

How I did it
Add a space character before and after the command line parameters.
2022-11-01 18:54:28 +08:00
mssonicbld
56c41cbede
[ci/build]: Upgrade SONiC package versions (#12561) 2022-11-01 09:06:45 +08:00
Liu Shilong
5417aab4ec
[202106][ci] Cherry-pick PRs relative to reproducible build option from master branch. (#12350)
* [ci] Update azp template variable for reproducible build. (#11419)

* [ci] Disable reproducible build in master branch official build (#11452)

* [ci] Update reproducible build related pipeline. (#11810)

* [ci] Fix bug involved by PR 11810 which affect official build pipeline (#11891)

Why I did it
Fix the official build not triggered correctly issue, caused by the azp template path not existing.

How I did it
Change the azp template path.
2022-10-25 16:33:25 +08:00
xumia
1a0ced68f8
[202106] Change submodule path from Azure to sonic-net (#12311)
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-13 23:30:54 +08:00
mssonicbld
148d38ed21
[ci/build]: Upgrade SONiC package versions (#12375) 2022-10-13 03:47:50 +08:00
mssonicbld
99133c5a7d
[actions] Add auto cherry-pick actions to release branch (#11496) (#12338)
* [actions] Add github actions to auto cherry-pick prs to release branches

* Add README, fix workflow

Co-authored-by: Liu Shilong <shilongliu@microsoft.com>
2022-10-10 17:24:27 +08:00
xumia
da545b23da
Fix dbus-run-session command not found issue when install dbus-python (#12009) (#12055)
Why I did it
Cherry-pick #12009, and fix code conflict.
Fix the dbus-pyhon installation failure when building docker-sonic-vs, caused by the command dbus-run-session not found.
The command "dbus-run-session" should be the new dependency introduced in dbus-python 1.3.2, the old version 1.2.18 does not have the issue.

How I did it
Install the dbus debian package which contains the command dbus-run-session.
It is not a blocking issue on release branches. The release branches with reproducible build feature can avoid such issue in official builds and PR builds, it only block the version upgrade (trying to upgrade from 1.2.18 to 1.3.2).
2022-09-26 20:43:11 +08:00
Liu Shilong
95df56b4ed
[ci] Update azp reference to support transfering organization from Azure to sonic-net (#11604) 2022-08-02 16:16:32 +08:00
Liu Shilong
1edac85362
[ci] Transfer organization from Azure to sonic-net for sonic-mgmt (#11559) (#11562)
Why I did it
Transfer organization from Azure to sonic-net for sonic-mgmt
2022-07-28 15:31:35 +08:00
Liu Shilong
bd51735a78
[ci] Fix test stage dependency issue. (#11386) (#11392)
Why I did it
When any of the test job failed in the test stage, the rerun will not work, the test stage will be skipped automaticall, so we do not have chance to rerun the test stage again, and the checks of the test will be always in failed status, block the PR to merge forever.

It should be caused by the condition in the Test stage, we should specify the status of the BuildVS stage.

How I did it
Fix stage dependency logic.
2022-07-11 19:03:38 +08:00
mssonicbld
2e5a24901f
[ci/build]: Upgrade SONiC package versions (#11373)
Upgrade SONiC Versions
2022-07-08 09:31:17 +08:00
xumia
0171c0e278
[Build] Add the missing debian security mirrors in slave images (#11305) (#11324)
Why I did it
The build below was broken, it was caused by one of the required debian mirror missing.
https://dev.azure.com/mssonic/build/_build/results?buildId=116719&view=logs&j=88ce9a53-729c-5fa9-7b6e-3d98f2488e3f&t=88f376cf-c35d-5783-0a48-9ad83a873284

 libpci-dev : Depends: libudev-dev (>= 196) but it is not going to be installed
 libsystemd-dev : Depends: libsystemd0 (= 232-25+deb9u14) but 232-25+deb9u13 is to be installed
How I did it
Add the missing mirrors for buster and stretch.
2022-07-05 09:23:16 +08:00
Liu Shilong
9fd9409590
[build] Add version files to docker image dependencies (#11193)
* [build] Add version files to docker image dependencies

* [ci] Support to skip vstest using include/exclude config file. (#11086)

example:
├── folderA
│  ├──  fileA (skip vstest)
│  ├──  fileB
│  └──  fileC
If we want to skip vstest when changing /folderA/fileA, and not skip vstest when changing fileB or fileC.

vstest-include:
^folderA/fileA

vstest-exclude:
^folderA
2022-06-22 14:13:08 +08:00
mssonicbld
8e331e077b
[ci/build]: Upgrade SONiC package versions (#10721)
Co-authored-by: mssonicbld <vsts@fv-az105-917.rmmgkgolfqletehdpj5nkpzfpa.ex.internal.cloudapp.net>
2022-06-19 12:46:22 +08:00
Shilong Liu
6ce393e3c0
[build] Add dependencies for sonic-config-engine to block bad PR. (#10770) (#11055)
Add dependencies device/* to sonic-config-engine
2022-06-17 15:44:53 +08:00
xumia
f9005e3dc0
[Build]: Support to use the base image version when a package version not specified (#10971) (#10975)
Why I did it
It is to fix issue: #10952
[Build]: Support to use the base image version when a package version not specified
2022-05-31 10:27:41 +08:00
Arun Saravanan Balachandran
6ebe5e6d50
[DellEMC S5248f] Remove duplicate ipmihelper.py (#10455)
Why I did it
To remove the ipmihelper.py in S5248f directory to prevent the image label being marked 'dirty', due to the file being replaced by the ipmihelper.py in common folder during build.

How I did it
Remove ipmihelper.py in S5248f directory.

How to verify it
Build a broadcom image and verify that the tracked files are not modified.

Which release branch to backport (provide reason below if selected)
 201811
 201911
 202006
 202012
 202106
 202111
Description for the changelog
DellEMC S5248f : Remove duplicate ipmihelper.py

Link to config_db schema for YANG module changes
A picture of a cute animal (not mandatory but encouraged)
2022-05-26 12:39:42 -07:00
Shilong Liu
a0ef7459f2
[ci] Add arm artifacts in common lib azure pipeline (#10891)
cherry-pick PR from master:
https://github.com/Azure/sonic-buildimage/pull/10817
2022-05-24 14:58:19 +08:00
Shilong Liu
76feaac0b6 [build] docker-sonic-mgmt replace USER by whoami (#9702) 2022-05-11 14:09:43 +08:00
Shilong Liu
0bbd384c9b Fix docker-sonic-mgmt reproducible related issue. (#9647)
Reproducible build script breaks docker-sonic-mgmt build.
2022-05-11 14:09:43 +08:00
Shilong Liu
7d5e7119f7 [ci] Support multi tags when pushing docker image (#10771) 2022-05-11 14:09:43 +08:00
mssonicbld
2b0bfe766f
[ci/build]: Upgrade SONiC package versions (#10661) 2022-04-30 19:06:09 +00:00
xumia
3e29919b3a
[Build]: Fix the buster slave not built issue when building configure (#10696)
Why I did it
[Build]: Fix the buster slave not built issue when building configure

When running build command "make configure", we can expect the buster slave will be built.
2022-04-28 16:13:21 +08:00
Shilong Liu
7a3e2c19b1
[submodule] Update submodule for sonic-mgmt-common (#10672) 2022-04-28 13:41:04 +08:00
xumia
32dbd3da04 [Build]: Fix host image debian package version issue (#10358)
Why I did it
Fix host image debian package version issue.
The package dependencies may have issue, when some of debian packages of the base image are upgraded. For example, libc is installed in base image, but if the mirror has new version, when running "apt-get upgrade", the package will be upgraded unexpected. To avoid such issue, need to add the versions when building the host image.

How I did it
The package versions of host-image should contain host-base-image.
2022-04-28 03:26:49 +00:00
xumia
e54cc71a16 Fix armhf version issue (#9382)
Why I did it
Fix some of the version files not used issue.
One of example version file version-py3-all-armhf, when building marvell-armhf, the version is used as expected, but it not use.
2022-04-28 03:26:40 +00:00
xumia
0cc75ce5f4
[Submodule]: update submodule for sonic-restapi (#10681)
Why I did it
Update submodule sonic-restapi
e83e0e8 Fix Ctype_char larger than address space issue in 32-bit armhf (#107)
2022-04-27 07:15:52 +08:00
Shilong Liu
56bccb6478
[ci] Add azure pipeline to build common libs. (#10367) (#10688)
Why I did it
To remove reference on Azure.sonic-buildimage artifacts.
Azure.sonic-buildimage has a higher failure rate.
2022-04-27 00:13:16 +08:00
xumia
f9f2235827
[Submodule]: Update submodule for sonic-telemetry (#10667)
Why I did it
Update sonic-telemetry submodules (to fix CVE-2021-3121 alert).

e56e9b4 Fix CVE-2021-3121 warning (#96)
bf1be4f [ci]: Support code diff coverage threshold 50% (#94)
64e516c Ported Marvell armhf build on x86 for debian buster to use cross-compilation instead of qemu emulation (#80)
e426388 [ci]: Support azp code coverage (#87)
0443e66 Remove DB Directory removal as part of make clean (#84)
085f29d Fix unhandled nil err check to prevent rpc causing a crash (#78)
2022-04-26 07:28:18 +08:00
xumia
cb449477e7
[Build] Upgrade pip3 package docker to 5.0.3 (#10523) (#10659)
* Upgrade pip3 package docker to 5.0.3 (#10523)

Why I did it
In sonic-utilities repo, it is required to install docker>=4.4.4
f70dc27827/setup.py (L187)

* Update the docker version to 5.0.3
2022-04-24 19:47:06 +08:00
mssonicbld
217514196b
[ci/build]: Upgrade SONiC package versions (#10657) 2022-04-23 13:39:52 +00:00
Shilong Liu
c929c08672
[ci] Fix PR checker archieve artifacts step (#9357) (#10651)
Why I did it
When a failed job retry. Publish artifact will fail for duplicated name
2022-04-23 13:57:35 +08:00
shlomibitton
d8fa3eb92f
Add a offset bound check during DHCPv6 header inspection to prevent segmentation fault issue (#10560)
Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
2022-04-19 09:07:19 -07:00
xumia
331bc53c6f [Build]: Support reproducible build for release branches (#9426)
[Build]: Support reproducible build for release branches #9426
2022-04-18 08:19:29 +08:00
Saikrishna Arcot
b069e0921b Check to see that the py2 and py3 version files exist before trying to sort them (#10325)
For Bullseye, Python 2 isn't present at all. This means that in certain
build cases (such as building something only for Bullseye), the version
file may not exist, and so the sort command would fail.

For most normal build commands, this probably won't be an issue, because
the SONiC build will start with Buster (which has both Python 2 and
Python 3 wheels built), and so the py2 and py3 files will be present
even during the Bullseye builds.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2022-04-18 08:19:29 +08:00
xumia
10b93d9281 [Build]: Fix pip version constraint conflict issue (#10525)
Why I did it
[Build]: Fix pip version constraint conflict issue
When a version is specified in the constraint file, if upgrading the version in build script, it will have conflict issue.

How I did it
If a specified version has specified in pip command line, then the version constraint will be skipped.
2022-04-18 08:19:29 +08:00
xumia
6b88f4b33d [Bug][Build]: fix the file not found issue caused by the relative pat… (#9443)
Fix the nodesource.list cannot read issue, it is cased by the full path not used.

```
2021-12-03T06:59:26.0019306Z Removing intermediate container 77cfe980cd36
2021-12-03T06:59:26.0020872Z  ---> 528fd40e60f6
2021-12-03T06:59:26.0021457Z Step 81/81 : RUN post_run_buildinfo
2021-12-03T06:59:26.0841136Z  ---> Running in d804bd7e1b06
2021-12-03T06:59:29.1626594Z DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
2021-12-03T06:59:34.2960105Z /usr/bin/sed: can't read nodesource.list: No such file or directory
2021-12-03T06:59:34.5094880Z The command '/bin/sh -c post_run_buildinfo' returned a non-zero code: 2
```

Co-authored-by: Ubuntu <xumia@xumia-vm1.jqzc3g5pdlluxln0vevsg3s20h.xx.internal.cloudapp.net>
2022-04-18 08:19:29 +08:00
xumia
72fea76ef7
Support to build armhf/arm64 platforms on arm based system (#7731) (#10577)
Why I did it
Support to build armhf/arm64 platforms on arm based system without qemu simulator.
When building the armhf/arm64 on arm based system, it is not necessary to use qemu simulator.

How I did it
Build armhf on armhf system, or build arm64 on arm64 system, by default, qemu simulator will not be used.
When building armhf on arm64, and you have enabled armhf docker, then it will build images without simulator automatically. It is based how the docker service is run.

Docker base image change:
For amd64, change from debian:to amd64/debian:
For arm64, change from multiarch/debian-debootstrap:arm64- to arm64v8/debian:
For armhf, change from multiarch/debian-debootstrap:armhf- to arm32v7/debian:
See https://github.com/docker-library/official-images#architectures-other-than-amd64
The mapping relations:
arm32v6 --- armel
arm32v7 --- armhf
arm64v8 --- arm64

Docker image armhf deprecated info: https://hub.docker.com/r/armhf/debian, using arm32v7 instead.
2022-04-15 18:00:14 +08:00
Shilong Liu
2058147cca
[ci] Fix PR validation issue involved by cherry-pick enabling ACR.
involved un-expectec lines.
2022-04-13 11:59:57 +08:00
xumia
56be714935
[Submodule]: update sonic-restapi (#10295)
[Submodule]: update sonic-restapi
bd97dfe Fix urllib3 CVE-2021-33503 issue (#104)
f159bfa Upgrade the containers to be based on Debian Buster (#103)
a1830c1 Fix OpenAPI spec to be readable by autorest (#101)
94805a3 Identify and report Vnet GUID for conflicting VNI (#99)
4832dfd Static route expiry if not specified as persistent (#98)
5cc4358 Add support for overlay ECMP (#96)
6822a46 [CI] Set diff cover threshold to 50% (#97)
dcc826a Add PR diff coverage (#95)
e842c5f Generate code coverage for Unit Tests (#94)
f9bbed3 Convert Unit Tests from unittest framework to pytest framework (#93)
e466ac2 Reject incorrect CIDR addresses while configuring routes (#91)
07cf59d [CI] Set up Azure pipeline (#89)
47476ac Upgrade Go version to 1.14 (#90)
ee887c7 Added flag to make go/pkg/ folder writable (removable) (#87)
6cfc8fe (origin/shilongliu/azp) Default Vrf static route support (#85)
d3e8b8e Add BFD config to subinterface and neighbor (#68)
8d4fd4a Fix WS-2018-0594 potential non-random UUIDs security issue (#78)
fad87fa Update API description for default vrf and ecmp routes (#82)

Some of them have been updated in 202012 branch, should be added in 202106 as well.
2022-04-08 17:42:46 -07:00
Shilong Liu
ac9c0b5269 [ci] Set default ACR in UpgrateVersion/PR/official pipeline. (#10341)
Why I did it
docker hub will limit the pull rate.
Use ACR instead to pull debian related docker image.

How I did it
Set DEFAULT_CONTAINER_REGISTRY in pipeline.
2022-04-08 13:09:58 +08:00
xumia
b1105af83c [Build]: support to collect version when purging debian package (#10287)
Why I did it
support to collect version when purging debian package
Support to collect version multiple times

How I did it
Add the collection action before purging.
2022-04-07 09:16:02 +08:00
xumia
b93080d246 [Build][Bug]: fix the warning message not printed as expected issue (#10278)
Fix the warning message not printed as expected issue
2022-04-07 09:16:02 +08:00
xumia
92f97bddb9 [Build]: Fix installing dpkg packages in parallel issue (#10175)
Why I did it
Fix the debian packages installing in parallel issue.
Add apt hook command to support apt to print no version control info.
2022-04-07 09:16:02 +08:00
xumia
2177a68b36 [Build]: Cleanup the reproducible mirrors when build complete (#9132)
Why I did it
The reproducible build mirrors are only used during the build, the mirrors can be removed after that.
2022-04-07 09:16:02 +08:00
xumia
0cecab27fa [Build]: Fix the version not found issue (#9331)
When we update the a sai package downing from a remote server, we need to update the version file as well currently, but the reproducible build feature is not enabled in master, it can only be detected when merging the code into the release branches, such as 202106, 202012, etc.
The reproducible feature is to reduce the build failure, not need to break the build when the version not specified. If version not specified, the best choice is to accept the version from remote server.

Co-authored-by: Ubuntu <xumia@xumia-vm1.jqzc3g5pdlluxln0vevsg3s20h.xx.internal.cloudapp.net>
2022-04-07 09:16:02 +08:00
mssonicbld
04e24c0f29
[ci/build]: Upgrade SONiC package versions (#10452)
Upgrade SONiC Versions #10452
2022-04-06 19:27:26 +08:00
xumia
d354cd84d6 [ci] Fix the generating version file failure issue caused by artifacts folder change (#7464) (#10451)
Fix the generating version file failure issue caused by artifacts folder change.
When changing to use the same template for PR build, official build and packages version upgrade, the artifacts folder adding a "target" folder, the version upgrade task should be changed accordingly.
2022-04-02 14:41:13 +00:00
xumia
a4b26ce298 Update azure-pipelines-UpgrateVersion.yml for Azure Pipelines
Remove duplicate resources define in template
2022-04-02 08:29:02 +08:00
xumia
ad21d1ca74 Support dpkg cache for marvell-armhf (#9381)
Why I did it
Support marvell-armhf dpkg cache
2022-04-02 00:14:51 +00:00
Shilong Liu
e28c30d4e4 [build] Fix issues found in reproducible build. (#10407) 2022-04-01 23:58:48 +00:00
Shilong Liu
1366e0bb63 [ci] Use template from master branch in UpgrateVersion/sonic-slave pipeline (#10380) 2022-04-01 23:58:29 +00:00
xumia
32c00fb014 [build][Bug]: Fix the command set_reproducible_mirrors not found issue (#10398)
Why I did it
Fix the command set_reproducible_mirrors not found issue during the build.
2022-03-31 06:24:44 +00:00
Shilong Liu
ab91b607f2
[ci] Fix remove sonic-slave-* docker image issue when building sonic-slave* (#10296) (#10381) 2022-03-30 16:08:52 +08:00
xumia
ca85c6be5e
[Unit Test]: Fix sonic config engine test not stable issue(#10147) (#10355)
Why I did it
Fix sonic config engine test not stable issue
2022-03-29 10:41:11 +08:00
Alexander Allen
b10833425c
[202106] [Mellanox] Fix DPB supported breakout modes (#10129)
Cherry pick of #10072

- Why I did it
Removing DPB breakout modes that require adjacent ports to be disabled as that is not supported by the current DPB infrastructure.

Correspondingly had to remove the hwsku.json file from any SKUs which utilized these removed modes such that the system will fall back to ports_config.ini and DPB will not be supported for those SKUs.

- How I did it
Modified the platform.json files of Mellanox devices.

- How to verify it
Execute show int break [Ethernet] on the affected platforms and ensure there are no modes present that would require an adjacent port to be disabled to function.
2022-03-27 09:15:23 +03:00
Oleksandr Ivantsiv
40265e8dde [sonic-config-engine]: Improve comparison between default and supported breakout modes. (#9278)
Closes #7958 

#### Why I did it
The previous implementation of sonic-cfggen did a simple comparison between default breakout mode in
hwsku.json and supported modes in platform.json. To set a different default speed in hwsku.json
it was required to add one more entry to supported modes in platfrom.json file:

1x10G[100G,50G] vs 1x100G[50G,10G]

The new implementation does more intelligent parsing and analysis of supported and default modes. It
allows changing default speed without adding a new entry to platform.json.

#### How I did it
Add more intelligent parsing and analysis of supported and default modes.

#### How to verify it
Run sonic-config-engine unit tests from sonic-config-engine/tests directory
2022-03-24 05:15:11 +00:00
Alexander Allen
b5849c0918 [pmon] Clean up supervisord chassis_db_init entry and fix startsecs (#10071)
Why I did it
Code review was still in progress when #9858 was merged and upon further testing I have arrived at a better solution.

How I did it
Modified supervisord configuration j2 template for pmon to require no minimum uptime for chassisd_db_init and to remove the redundant exit_codes directive

How to verify it
Boot switch and verify in syslog that there are no errors related to chassis_db_init
2022-03-24 05:14:38 +00:00
Sudharsan Dhamal Gopalarathnam
4da20e7ff9 [containerd]Fixing container commands when mode is local and state is disabled (#9986)
Why I did it
During warm-reboot and fast-reboot the below error logs appear
Feb 3 22:05:15.187408 r-lionfish-13 ERR container: docker cmd: kill for nat failed with 404 Client Error for http+docker://localhost/v1.41/containers/nat/json: Not Found ("No such container: nat")

The container command when called for local mode doesn't check if it is enabled before calling docker kill which throws the above errors.
b6ca76b482/scripts/fast-reboot (L699)

How I did it
Checking feature state if local mode and returning error exit code along with valid debug message.

How to verify it
Manually tested with warm-reboot and fast-reboot
Added UT to verify it.
2022-03-24 05:14:01 +00:00
xumia
43c32dfa5d
[Build]: Use one debian mirror config (#10274) (#10300)
Why I did it
Use one debian mirror config.
The empty config in https://github.com/Azure/sonic-buildimage/blob/master/files/image_config/apt/sources.list overrides the file https://github.com/Azure/sonic-buildimage/blob/master/files/apt/sources.list.amd64 (armhf/arm64), it does not make sense.
All the content in files/image_config/apt is no use, any one wants to add mirror config, please add in files/apt.

How I did it
Remove files/image_config/apt and the reference.
2022-03-23 22:42:52 +08:00
xumia
37aaed44bd [Build]: Support to set jobFilters (#10280)
[Build]: Support to set jobFilters
2022-03-21 02:28:54 +00:00
Samuel Angebault
01fdf5954b
[202106][Arista] Update driver submodules (#10279)
- add mechanism to power off linecard and fabrics on supervisor reboot (only lc by default)
- improve lc interface config script
- fix exception handling in logging
2022-03-20 17:32:09 -07:00
Shilong Liu
c14462c6a3
Add a config variable to override default container registry instead of dockerhub. (#10166) (#10261)
* Add variable to reset default docker registry
* fix bug in docker version control
2022-03-19 00:11:09 +08:00
Guohan Lu
fd8d80486d [ci]: build marvel armhf on sonicbld-armhf pool [Guohan Lu]
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2022-03-18 14:55:15 +00:00
Guohan Lu
2340071d4a [ci]: build centec arm64 to sonicbld-arm64 pool
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2022-03-15 12:35:50 +00:00
xumia
d75c569ef0 [Build][Ci]: Support to use the cisco sai packages built by azp (#10102)
Why I did it
Support to use the cisco sai packages built by azp
2022-03-08 02:18:58 +00:00
Marty Y. Lok
f94ce408c6 [chassis][supervisor]monit container-checker failed due to unexpected "database-chassis" docker running #9042 (#9043)
Why I did it
Fixed the monit container_checker fails due to unexpected "database-chassis" docker running on Supervisor card in the VOQ chassis. fixes #9042

How I did it
Added database-chassis to the always running docker list if platform is supervisor card.

How to verify it
Execute the CLI command "sudo monit status container_checker"


Signed-off-by: mlok <marty.lok@nokia.com>
2022-03-04 21:49:52 +00:00
wenyiz2021
05e566ed45 Update container_checker for multi-asic devices when state is 'always_enabled' (#10067)
* Update container_checker for multi-asic devices 

Update container_checker for multi-asic devices to add database containers in always_running_containers. 
Previous change was made for single-asic, and that database containers were not considered as feature when writing to state_db.

* Update container_checker

Update an indent
2022-03-04 21:48:53 +00:00
Samuel Angebault
5419e5de71 Add platform.json configs for all denali SKUs (#9717) 2022-03-01 20:17:56 +00:00
Junchao-Mellanox
bc9b39a2fe Stop PMON before swss during warm reboot (#10046)
- Why I did it
Stopping swss and syncd causes some driver module unloading. Those driver modules are depended by PMON. This could trigger ERROR logs in syslog.

- How I did it
Adjust warmboot shutdown order in make file

- How to verify it
Manual test
2022-03-01 20:13:09 +00:00
Junchao-Mellanox
74c49a7682 [system-health] Fix file handle leak (#10059)
- Why I did it
swsscommon.ConfigDBConnector does not automatically close connection when the instance is recycled by python. So, it should not create this instance each time calling check_services. It will cause error like Failed to read from file /var/run/hw-management/led/led_status_capability - OSError(24, 'Too many open files')

- How I did it
Only connect DB once in init

- How to verify it
Manual test
2022-03-01 20:12:03 +00:00
Alexander Allen
212cdfbe80 [pmon] Fix chassis_db_init exit not being expected (#9858)
- Why I did it
Error log was shown on switches during boot
pmon#supervisord 2021-12-22 04:27:16,709 INFO exited: chassis_db_init (exit status 0; not expected)

- How I did it
Add exit code zero as an expected exit code and also disable autorestart.

- How to verify it
Boot the switch and ensure the above log line does not appear.
2022-03-01 03:49:55 +00:00
Alexander Allen
127a93c201 [Mellanox] Add 2x40G support to MSN4700 platform (#9485)
- Why I did it
MSN4700 platform has 8 lanes per port and thus can support 2x40G with each lane running at 10G

- How I did it
Added 40G to 2x200G breakout mode in platform.json

- How to verify it
Run config int break Ethernet0 2x40G[200G,100G,50G,25G,10G,1G]
And verify the command runs successfully and the port speed was set to 40G with a 2x breakout.
2022-03-01 03:48:25 +00:00
Stephen Sun
84942c10d6 Fix typo and missing files in SN3800 and SN4600C's buffer templates (#9537)
Why I did it
Fix typo and missing files in SN3800 and SN4600C's buffer templates

How I did it
ingress_lossless_xoff_size => ingress_lossless_pool_xoff add missing files for SN4600C-D100C12S2

How to verify it
Deploy the fix and verify whether the device can be up.

Signed-off-by: Stephen Sun <stephens@nvidia.com>
2022-03-01 03:42:27 +00:00
noaOrMlnx
be7f31e6d2 [CoPP] Add always_enabled field (#9302)
*Add the "always_enabled" field to copp_cfg.j2 file, in order to allow traps without an entry in features table, to be installed automatically.
2022-03-01 03:40:40 +00:00
Mahesh Maddikayala
87d18eb6c3
[libsaibcm] Fix the expiry date on the libsaibcm debian packages. (#10090) 2022-02-28 08:52:11 -08:00
Shilong Liu
d05765cc06 [build] Increase vs platform kvm disk size (#10001)
Info: Attempting file://dev/vdb/onie-installer ...
Info: Attempting file://dev/vdb/onie-installer.bin ...
cp: write error: No space left on device
Failure: local_fs_run():/dev/vdb Unable to copy /tmp/tmp.CPY0ad/onie-installer.bin to tmpfs

vs image is failing. Increase kvm device space.
2022-02-25 10:26:46 -08:00
xumia
a3733384bf [Security]: Upgrade urllib3 to fix CVE-2021-33503
See https://security.archlinux.org/CVE-2021-33503
2022-02-25 09:13:48 +00:00
Mahesh Maddikayala
2153ea41a5
[libsaibcm] Update libsaibcm with PFC patches (#10066) 2022-02-23 14:24:10 -08:00
xumia
93a22d7df5 [Build]: Fix marvell sai package version parsing issue
Fix marvell sai package version parsing issue (#10009)
2022-02-19 04:23:29 +00:00
Nazarii Hnydyn
293ca0b870 [build]: Fix SAE to support debug flavor build. (#9435)
setup PACKAGE_NAME, PATH, MACHINE, VERSION info for debug docker

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
2022-02-09 14:20:22 +08:00
Saikrishna Arcot
aa69f6b94c [docker-mgmt-framework]: Don't overwrite /etc/passwd and /etc/group with symlinks (#9375)
Fixes #9376

Because /etc/passwd and /etc/group have been overwritten with symlinks
to /host_etc/passwd and /host_etc/group, the debug container build
fails. This is because the debug container is built without /etc being
mounted at /host_etc in the container (which does happen at runtime).
Because of that, /etc/passwd and /etc/group don't exist, which causes
some package installation errors when openssh-client tries to create a
group.

This is a partial revert of 1347f29178.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2022-02-08 13:14:41 +08:00
Shilong Liu
0e6eb338eb Fix rules/functions.generage_manifest. (#9340)
Why I did it
Fix a bug in sonic debug image build. That bug is imported in the following PR: #8920
2022-02-07 14:09:58 +08:00
Volodymyr Samotiy
97bd2bf82f
[Mellanox][202106] Update SAI to 1.20.2 and SDK/FW to 4.5.1208/2010.1218 (#9618)
- Why I did it
To include latest fixes.
1. On CMIS modules, after low power configuration, the firmware waited for the module state to be ModuleReady instead of ModuleLowPower causing delays.
2. When connecting SN4600C, 100GbE port with CWDM4 module (Gen 3.0), link up time is 30 seconds.

- How I did it
Updated SDK/SAI submodule and relevant makefiles with the required versions.

- How to verify it
Build an image and run tests from "sonic-mgmt".

Signed-off-by: Volodymyr Samotiy <volodymyrs@nvidia.com>
2022-01-26 10:59:39 +02:00
Shilong Liu
f5bef56d5e [CI] Fix Azure pipeline set -e not work. (#9282)
In azure pipeline template 'set -e' not works as expected.
2022-01-24 15:26:06 +08:00
Junchao-Mellanox
c0f0694236
[Mellanox] [202106] Optimize thermal policies (#9451)
- Why I did it
Optimize thermal control policies to simplify the logic and add more protection code in policies to make sure it works even if kernel algorithm does not work.

- How I did it
Reduce unused thermal policies
Add timely ASIC temperature check in thermal policy to make sure ASIC temperature and fan speed is coordinated
Minimum allowed fan speed now is calculated by max of the expected fan speed among all policies
Move some logic from fan.py to thermal.py to make it more readable

- How to verify it
1. Manual test
2. Regression
2022-01-19 11:43:55 +02:00
arlakshm
8ef7030f4f remove staticd.conf.j2 (#9182)
Why I did it
resolves #8979 and #9055

How I did it
Remove the file static.conf.j2,which adds the default route on eth0 from bgp docker

Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
2022-01-19 02:09:31 +00:00
Stephen Sun
c0df856847
Update sonic-swss-common (#9787)
d00a25bb [ci] refer 202106 branch resources rather than master branch. (#573)

Signed-off-by: Stephen Sun <stephens@nvidia.com>
2022-01-18 22:11:20 +02:00
Stepan Blyshchak
559ce14277
[nvidia] fail the build when hw-mgmt patches do not apply (#9565)
- Why I did it
To fix an issue that hw-mgmt patches were not applied. One patch was already in upstream hw-mgmt package thus applying it again caused an error and no other patches were applied. Also, I did it to improve the Makefile, so that the make will fail in case patches fail to apply.

- How I did it
Removed obsolete patch, made applying patches a hard failure in the build.

- How to verify it
Run the make and verify patches are applied.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2022-01-16 08:10:25 +02:00
Qi Luo
c4bc9933fe
Update sonic-swss submodule (#9609)
Includes below commits
```
38b616ba 2021-12-09 | [LGTM] lgtm to use 202106 branches of swss-common and sairedis (#2074) [Stephen Sun]
c68bad07 2021-12-07 | Fix random failure in PR/CI build. #2006 [Shilong Liu]
ba17675b 2021-08-23 | [ci]: fix artifacts download from swss-common and sairedis (#1882) [Guohan Lu]
```
2021-12-30 17:23:38 -08:00
Judy Joseph
1aa225cd0c Update sonic-utilities submodule
74d2a09 [portstat] check TX/RX utilization calculation correctness (#1840)
2021-12-22 09:09:09 -08:00
Stephen Sun
b479bcd941 [Mellanox] Adjust buffer parameters with 2km cable supported for 4600C non-generic SKUs (#9215)
- Why I did it
Also recalculated all parameters with the latest algorithm with per-speed peer response time taken into account

- How I did it
Detailed information of each SKU:

C64:
t0: 32 100G downlinks and 32 100G uplinks
t1: 56 100G downlinks and 8 100G uplinks with 2km-cable supported
D112C8: 112 50G downlinks and 8 100G uplinks.
D48C40: 48 50G downlinks, 32 100G downlinks, and 8 100G uplinks
D100C12S2: 4 100G downlinks, 2 10G downlinks, 100 50G downlinks, and 8 100G uplinks
2km cable is supported for C64 on t1 only

- How to verify it
Run regression test (QoS)

Signed-off-by: Stephen Sun <stephens@nvidia.com>
2021-12-22 09:06:33 -08:00
Stepan Blyshchak
4ebafdaf28 [Mellanox][SDK] Build SDK with PRM sniffer support (#9500)
- Why I did it
To have an ability to use PRM sniffer.

- How I did it
Enabled the option in configure flags.

- How to verify it
Built and ran on switch. Enabled the feature in runtime and checked the sniffer recording.
Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2021-12-22 09:05:49 -08:00
Vadym Hlushko
79d2a9a225
[Mellanox] [SN4410] [202106] Fixed capability files - port_config.ini, hwsku.json, platform.json (#9541)
- Why I did it
The capability files were incorrect in comparison to the marketing spec of the SN4410 platform.

- How I did it
Aligned the capability files according to the marketing spec.

- How to verify it
Did basic manual sanity checks:

1. Check if critical docker containers were UP
2. Check if interfaces were created and were UP
3. Check if interfaces created in the syncd docker container by executing – sx_api_ports_dump.py script
4. Check the logs from the start of the switch – everything was OK
5.Verified the port breakout

Signed-off-by: Vadym Hlushko <vadymh@nvidia.com>
2021-12-16 17:39:17 +02:00
Junchao-Mellanox
73a17d8876
[Mellanox] [202106] Fix issue: SFP might not be re-initialized after cable plug in (#9387)
- Why I did it
Fix issue: SFP might not be re-initialized after cable plug in. There could be case like:
1. The SFP object was initialized as QSFP type
2. User use adapter to connect a SFP to a QSFP port
3. The SFP object treat the SFP as QSFP and failed to process EEPROM

- How I did it
If a new SFP is plugged, always re-initialize the SFP

- How to verify it
Added unit test case
2021-12-14 16:27:26 +02:00
Junchao-Mellanox
3ae3eeda35
[Mellanox] Allow user to set LED to orange (#9259) (#9515)
Backport #9259 to 202106

- Why I did it
Nvidia platform API does not support set LED to orange.

- How I did it
Allow user to set LED to orange

- How to verify it
Manual test and unit testing
2021-12-14 13:33:23 +02:00
Stephen Sun
5c91f233ef
[Reclaim buffer][202106] Reclaim unused buffers by applying zero buffer profiles (#9062)
This is to backport community PR #8768 to 202106 branch

Why I did it
Support zero buffer profiles
Add buffer profiles and pool definition for zero buffer profiles
Support applying zero profiles on INACTIVE PORTS
Enable dynamic buffer manager to load zero pools and profiles from a JSON file

Signed-off-by: Stephen Sun stephens@nvidia.com

How I did it
Add buffer profiles and pool definition for zero buffer profiles

If the buffer model is static:
 - Apply normal buffer profiles to admin-up ports
 - Apply zero buffer profiles to admin-down ports
If the buffer model is dynamic:
 - Apply normal buffer profiles to all ports
 - buffer manager will take care when a port is shut down
 - Update buffers_config.j2 to support INACTIVE PORTS by extending the existing macros to generate the various buffer objects, including PGs, queues, ingress/egress profile lists

Originally, all the macros to generate the above buffer objects took active ports only as an argument
Now that buffer items need to be generated on inactive ports as well, an extra argument representing the inactive ports need to be added
To be backward compatible, a new series of macros are introduced to take both active and inactive ports as arguments
The original version (with active ports only) will be checked first. If it is not defined, then the extended version will be called
Only vendors who support zero profiles need to change their buffer templates
Enable buffer manager to load zero pools and profiles from a JSON file:

The JSON file is provided on a per-platform basis
It is copied from platform/<vendor> folder to /usr/share/sonic/temlates folder in compiling time and rendered when the swss container is being created.
To make code clean and reduce redundant code, extract common macros from buffer_defaults_t{0,1}.j2 of all SKUs to two common files:

One in Mellanox-SN2700-D48C8 for single ingress pool mode
The other in ACS-MSN2700 for double ingress pool mode
Those files of all other SKUs will be symbol link to the above files

Update sonic-cfggen test accordingly:
 - Adjust example output file of JSON template for unit test
 - Add unit test in for Mellanox's new buffer templates.

How to verify it
Regression test.
Unit test in sonic-cfggen
Run regression test and manually test.
2021-12-13 10:51:50 -08:00
Samuel Angebault
08c2c07fc0
[202106][Arista] Update arista platform library (#9483) 2021-12-09 18:29:59 -08:00
Arvindsrinivasan Lakshmi Narasimhan
e2b8e2d1da submodule update swss
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
2021-12-08 00:25:09 +00:00
Vivek Reddy
4856f98716 [Mellanox] [SKU] Fix the shared headroom for 4600C-C64 SKU (#8242)
Removed ingress_lossy_pool from the BUFFER_POOL list
Fx the the egress_lossless_pool_size value

Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
2021-12-08 00:23:07 +00:00
Volodymyr Samotiy
b22db5a52b
[Mellanox] [202106] Update SAI to v1.20.0.1 and SDK/FW to v4.5.1156/v2010.1152 (#9431)
- Why I did it
To include latest fixes.
SAI
* Reduce verbosity of warning message on shared memory already existing
* accuflow allocation support by key value

SDK
* Under various circumstances, Ethernet ports falsely showed that InfiniBand cables were connected.
* In SN4600C, at times, the link up time in both DAC and optics cables may, in the worst case, take up to 15 seconds.
* Using SN4600C with copper or optics loopback cables in NRZ speeds, link may raise in long link up times
* When ECMP has high amount of next-hops based on VLAN interfaces, in some rare cases, packets will get a wrong VLAN tag and will be dropped.
* When connecting Spectrum devices with optical transceivers that support RXLOS, remote side port down might cause the switch firmware to get stuck and cause unexpected switch behavior.
* Aggregation event is missing for WJH L2 drop reason 'Unicast egress port list is empty'.
* Tying the SCL and SDA of the optical modules to 3.3V causes errors.
* On SN4600, there was a delay of more than 10 seconds from the time a data packet is sent from CPU until it is transmitted through one of the switch ports.
* While using SN4600C system with Finisar FTLC1157RGPL 100GbE CWDM4 modules, intermittent link flaps across multiple ports may be observed.
* In Spectrum-2 and Spectrum-3 systems, link did not work in auto-negotiation when connected to Marvell PHY. KR mechanism has been enhanced to integrate with Marvell PHY. 
* The tunnel counter counts the drop packets now for Spectrum-2 and Spectrum-3 and consistent with Spectrum behavior and count the ECN dropped packets as well.
* When connecting SN3800 to Cisco-9000, fast-linkup flow will fail and will rise in the normal flow.
* Race condition in WJH library: when multiple threads load the LAG shared memory concurrently, the program may crash.
* Add WJH L2 drop reason 'Unicast egress port list is empty' as a new drop reason. 
* Fixed a memory leak in sx_api_port_sflow_statistics_get API. 
* During initialization flow, the command interface that is used by the minimal driver and SDK caused the collision in the firmware since the same buffer is used in the firmware for the two interfaces.

- How I did it
Updated SDK/SAI submodule and relevant makefiles with the required versions.

- How to verify it
Build an image and run tests from "sonic-mgmt".

Signed-off-by: Volodymyr Samotiy <volodymyrs@nvidia.com>
2021-12-06 21:54:14 +02:00
Mahesh Maddikayala
3f3dceb96a
[broadcom]: update bcm dnx gpl module pointer (#9442)
saibcm_modules_dnx submodule update contains a fix for kernel crash
2021-12-03 21:21:07 -08:00
Judy Joseph
70b24ad9c5 Update sonic-utilities submodule
9514857 [config reload][202106] Update command reference (#1944)
2021-12-01 19:21:45 -08:00
Judy Joseph
41a2d3e290 Update sonic-swss submodule
[8522f4f] Don't handle buffer pool watermark during warm reboot reconciling (#1987)
2021-12-01 11:13:38 -08:00
Junchao-Mellanox
f5c847bdbc
[system-health] [202106] No longer check critical process/service status via monit (#9366) 2021-12-01 10:26:06 -08:00
Junchao-Mellanox
e4ff4d2e3a [Mellanox] Fan speed should not be 100% when PSU is powered off (#9258)
- Why I did it
When PSU is powered off, the PSU is still on the switch and the air flow is still the same. In this case, it is not necessary to set FAN speed to 100%.

- How I did it
When PSU is powered of, don't treat it as absent.

- How to verify it
Adjust existing unit test case
Add new case in sonic-mgmt
2021-12-01 09:47:26 -08:00
Stephen Sun
fa0ae42e69 [Reclaim buffer] Common infrastructure update for reclaiming buffer (#9133)
- Why I did it
This is to update the common sonic-buildimage infra for reclaiming buffer.

- How I did it
Render zero_profiles.j2 to zero_profiles.json for vendors that support reclaiming buffer
The zero profiles will be referenced in PR [Reclaim buffer] Reclaim unused buffers by applying zero buffer profiles #8768 on Mellanox platforms and there will be test cases to verify the behavior there.
Rendering is done here for passing azure pipeline.
Load zero_profiles.json when the dynamic buffer manager starts
Generate inactive port list to reclaim buffer

Signed-off-by: Stephen Sun <stephens@nvidia.com>
2021-12-01 09:47:18 -08:00
shlomibitton
1ebe52847a
[DHCPv6 relay] [202106] Fix DHCPv6 design to support multiple VLANS (#9163)
- Why I did it
If multiple Vlans are configured to have DHCPv6 relay, only one relay instance is able to capture DHCP packets received from upstream, this is as a result of kernel design to operate this way (SO_REUSEPORT).
DHCPv6 transmit unicast packets to clients, only multicast packets can be captured on multiple application listening on the same UDP port.
This issue causing only one Vlan interface to get packets from servers.

- How I did it
Change the design to neglect Vlan isolation and run only one relay instance serving all Vlans with all configured DHCP servers.

- How to verify it
Run DHCPv6 relay test with 2 Vlans configured do have a DHCP relay.

Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
2021-11-18 19:40:48 +02:00
gechiang
e0209f745a
[202106]Disable ALPM distributed hitbit thread that is used for debug purpose only but interfered with Other functional operations (#9293)
This is to address an issue where it was observed that SAI operations sometime may take a very long to time complete (over 45ms). It was determined that the ALPM distributed thread was causing this issue.
The fix is to disable this debug thread that has no functional purpose.

Preliminary tests looks fine. BGP neighbors were all up with proper routes programmed
interfaces are all up
Manually ran the fib test cases on 7050CX3 (TD3), TD2, TH, TH2, and TH3 based platforms and
thy all passed.
Note: the testing was done over 20201230 image and are porting this change to master branch.
No need to port this to 20201230 branch as a separate PR was already done for that branch. (#9190)

this PR is created to port the changes made by (#9199) but could not be cherry picked directly to 202106 branch.
2021-11-17 20:58:25 -08:00
Arvindsrinivasan Lakshmi Narasimhan
84226bdc57 sonic-utilities submodule update
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
2021-11-18 01:27:29 +00:00
Arvindsrinivasan Lakshmi Narasimhan
d4ed9e7e62 Swss submodule update
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
2021-11-18 00:39:15 +00:00
Judy Joseph
ff4613035e Update sub-modules
sonic-snmpagent
7e46eb1 [201911][RFC1213]: Initialize lag oid map in reinit_data (#234)
aa98ded CPU Spike because of redundant and flooded keyspace notifis handled (#230)

sonic-swss
bc4e334 [Mux orch] Handle setting unknown mux state (#1984)
bd3630b [tunnel decap] Change tunnel orch order (#1977)
87a673a Fix the option missing in kernel config issue (#1973)
57967a1 [orchagent] Fix group name of port-buffer-drop in flexcounterorch.cpp (#1967)

sonic-utilities
181e8b0 Fix the option missing in kernel config issue (#1888)
21c0cc0 [watermarkstat] Fix for error in processing empty array from couters db (#1810)
7f15755 [chassis][supervisor][show][interfaces]show interfaces command warning on Supervisor card (#1771)
2021-11-14 15:57:36 -08:00
zzhiyuan
2b3cca6e86 [Arista] Fix 7060 flex HWSKU SFP ports and Ethernet8/1 (#9173)
* [Arista] Fix 7060 flex HWSKU SFP ports and Ethernet8/1

* [Arista] Fix polarity flips for Arista 7060 on non-leading intfs

Co-authored-by: Zhi Yuan (Carl) Zhao <zyzhao@arista.com>
2021-11-14 15:25:39 -08:00
Shilong Liu
606d64378f Add artifacts for failure build to debug. (#9213) 2021-11-14 15:25:03 -08:00
tjchadaga
7050792f63 Fix for additional intf flap during fast-reboot (#9166) 2021-11-14 15:19:43 -08:00
Neetha John
f6511086e5 [minigraph] Add tagged vlan member support for storage backend (#9045)
Signed-off-by: Neetha John <nejo@microsoft.com>

Why I did it
Storage T0's have all vlan members as tagged

How I did it
Since currently minigraph does not have a unique way to identify if a vlan member is tagged/untagged and to ensure other scenarios are not broken, the logic used is to just update the vlan member type as 'tagged' when we determine that it is a storage backend device. This change will apply only to storage backend T0's since storage backend T1's will not have vlan member information

How to verify it
Updated the storage backend T0 testcases to check for tagged vlan members
Added testcase to check if a T1 and backend T1 device generates an empty vlan member table
Existing vlan member testcases are good enough for checking if any regression has been caused for regular T0's
Build sonic_config_engine-1.0-py3-none-any.whl successfully
2021-11-14 15:17:02 -08:00
dflynn-Nokia
33fce6afd1 [Nokia ixs7215] Platform API fixes (#9025)
* [Nokia ixs7215] Platform API fixes

This commit delivers the following fixes
    - Fix bug preventing access to second PSU eeprom
    - Fix bug preventing updates to front panel PSU status led
    - Fix SFP reset test case failure

* Fix LGTM alert
2021-11-14 15:16:14 -08:00
dflynn-Nokia
030551ba27 [Nokia ixs7215] Add new platform capabilities to platform.json (#9032)
This commit more fully declares the HW capabilities of the Nokia-7215
platform. For example, support for the threshold values associated with each
thermal sensor is described. The intent here is to inform the sonic-mgmt
platform test cases of which HW features are supported.

This commit must align with PR# 4521 within the sonic-mgmt git repo which is
currently under review. Any changes to that PR will need to be reflected in
this commit.
2021-11-14 15:15:56 -08:00
Saikrishna Arcot
52e9909373 docker-dhcp-relay: Fix waiting for interfaces to get set up (#9034)
Fix the check used to wait for interfaces to come up. The group name in
the supervisor config files has changed from isc-dhcp-relay to
dhcp-relay.

Also, in the wait script, wait 10 additional seconds after the vlans,
port channels, and any interfaces are up. This is because dhcrelay
listens on all interfaces (in addition to port channels and vlans), and
to ensure that it stays in a clean state during runtime, wait some extra
time to make sure that those interfaces are created as well.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2021-11-14 15:15:34 -08:00
shlomibitton
2f95e36c6e [Mellanox] Fix split configuration for Mellanox SN3800-D112C8 SKU SAI profile for fast-reboot performance (#8897)
- Why I did it
Wrong SKU configuration will lead to longer init flow.
This will affect fast-reboot feature by increasing the traffic downtime.
Since MLNX met the required downtime period with this SKU this bug found with a delay.

- How I did it
Add the required split labels for ports.

- How to verify it
Run fast-reboot with this platform using SN3800-D112C8 SKU.
2021-11-09 06:41:21 -08:00
Judy Joseph
99724508fd Update sonic-swss sonic-utilities
swss
73caba3 Allow interface type value none (#1991)

utilities
32e530f Allow interface type value none (#1902)
53f066c Fix log_ssd_health hang issue (#1904)
2021-11-05 19:24:53 -07:00
Junchao-Mellanox
3a8807e72f Allow interface type value none (#9098)
This PR allow user to set none value to interface type. So there is a way to achieve the goal via CLI:

config interface type XXX none
config interface speed XXX 10000
config interface type XXX CR
2021-11-05 19:13:33 -07:00
Praveen Chaudhary
d627587377 [sonic-breakout_cfg.yang]: Remove pattern from sonic-breakout_cfg.yang. (#6801)
Changes:
-- Remove pattern from sonic-breakout_cfg.yang, it is redundant.
-- test changes.

Signed-off-by: Praveen Chaudhary <pchaudhary@linkedin.com>
2021-11-05 18:52:30 -07:00
Nazarii Hnydyn
5b74f5dccf [teamd]: Send USR1/USR2 only to subscribers. (#8856)
To fix teamd signal handling, without which Process 'tlm_teamd' exited unexpectedly
2021-11-05 18:52:25 -07:00
Volodymyr Samotiy
badce1cbf6
[202106] [Mellanox] Update hw-mgmt to v7.0010.3330 (#9164)
* Changed Debian package dependency in order to support both python or python3 packages
* Fix Python scripts to be compatible with python2.7/python3 versions
* hw-mgmt: attributes: Fix PSU power sensor attributes capability

Signed-off-by: Volodymyr Samotiy <volodymyrs@nvidia.com>
2021-11-05 18:42:09 -07:00
Judy Joseph
5f2d926ca9 Update sonic-utilities submodule
57de13b [config] fix interface IPv6 address removal. (#1819) (#1909)
2021-11-03 15:06:30 -07:00
Judy Joseph
9276189c78 Update sonic-swss submodule
67278be [teammgrd]: Handle LAGs cleanup gracefully on Warm/Fast reboot. (#1934)
2021-11-02 22:57:24 -07:00
Stepan Blyshchak
234b5b64e4 [dockers] change RPC, DBG dockers version: put RPG, DBG sign in build metadata part of the version (#8920)
- Why I did it
In case an app.ext requires a dependency syncd^1.0.0, the RPC version of syncd will not satisfy this constraint, since 1.0.0-rpc < 1.0.0. This is not correct to put 'rpc' as a prerelease identifier. Instead put 'rpc' as build metadata in the version: 1.0.0+rpc which satisfies the constraint ^1.0.0.

- How I did it
Changed the way how to version in RPC and DBG images are constructed.

- How to verify it
Install app.ext with syncd^1.0.0 dependency on a switch with RPC syncd docker.
Signed-off-by: Stepan Blyshchak <stepanb@nvidia.com>
2021-11-02 22:54:30 -07:00
Stepan Blyshchak
37282b13b9 [slave.mk] record the package versions by expanding the list of dependencies (#8730)
- Why I did it
docker-orchagent was missing libsairedis version label.

E.g. Currently only swsscommon is recorded in the labels:
admin@arc-switch1038:~$ docker inspect docker-orchagent | grep versions
                "com.azure.sonic.versions.libswsscommon": "1.0.0"
With this change libsairedis is also recorded:
admin@arc-switch1038:~$ docker inspect docker-orchagent | grep versions
                "com.azure.sonic.versions.libswsscommon": "1.0.0"
                "com.azure.sonic.versions.libsairedis": "1.0.0"
- How I did it
By expanding the list of dependencies.

- How to verify it
Build and verify the label for libsairedis exists in docker-orchagent.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2021-11-02 22:54:24 -07:00
Shilong Liu
206f7b66b5 Fix azp pipeline file which is involved by former PR (#8616) 2021-11-01 10:31:23 -07:00
Sudharsan Dhamal Gopalarathnam
bddc18c3a6
[202106][sonic_release]Add release file for 202106 (#9126)
Adding a release file for 202106. Without it 'release' in sonic_version.yml appears to be none. It should be 202106. This is required for QoS scripts in sonic-mgmt to pick a schema based on release branch

Signed-off-by: Sudharsan Dhamal Gopalarathnam <sudharsand@nvidia.com>
2021-11-01 08:22:41 -07:00
Junchao-Mellanox
48d412d49f
[Mellanox] Fix issue: PSU model/serial/revision info should be updated after replacing PSU (#9040) 2021-11-01 09:57:09 +05:30
Judy Joseph
ada705050d Update sonic-swss submodule
[vlanmgr]Fix for STATE_DB port check logic (#1980)

Update sonic-utilities submodule

434c2fb [sonic-package-manager] update FEATURE entries on upgrade (#1803)
d1ca400 [sonic-package-manager] code style fixes and enhancements (#1802)
2021-10-31 19:50:58 -07:00
Stepan Blyshchak
758518400f [Makefile.cache] fix an issue that non-direct dependencies are not accounted in component hash calculation (#8965)
#### Why I did it

Fixed an issue that changing SDK version leads to cache framework taking cached syncd RPC image rather then rebuilding syncd RPC based on new syncd with new SDK.

Investigation showed that cache framework calculates a component hash based on direct dependencies. Syncd RPC image hash consists of two parts: one is the flags of syncd RPC (platform, ENABLE_SYNCD_RPC) and syncd RPC direct dependencies makefiles. None of the syncd RPC direct dependencies are modified when SDK version changes, so hash is unchanged.

#### How I did it

To fix this issue, include the hash of dependencies into current component hash calculation, e.g.:

In calcultation of the hash ```docker-syncd-mlnx-rpc.gz-274dfed3f52f2effa9989fc-39344350436f9b06d28b470.tgz```, the hash of syncd is included: ```docker-syncd-mlnx.gz-48ee88ac54b201e0e107b15-7bbea320025177a2121e440.tgz``` in which the hash of SDK is included.

#### How to verify it

Build with cache enabled and check that changing SDK version leads to a different hash of syncd rpc image:

SDK version 4.5.1002:
```
docker-syncd-mlnx.gz-48ee88ac54b201e0e107b15-7bbea320025177a2121e440.tgz
docker-syncd-mlnx-rpc.gz-274dfed3f52f2effa9989fc-39344350436f9b06d28b470.tgz
```

SDK version 4.5.1002-005:
```
docker-syncd-mlnx.gz-18baf952e3e0eda7cda7c3c-e5668f4784390d5dffd55af.tgz
docker-syncd-mlnx-rpc.gz-4a6e59580eda110b5709449-552f76be135deaf750aeab2.tgz
```
2021-10-31 19:25:52 -07:00
Vivek Reddy
91628135e9
[hostcfgd] [202106] Fixed the brief blackout in hostcfgd using SubscriberStateTable (#9031)
#### Why I did it
Ported https://github.com/Azure/sonic-buildimage/pull/8861 to 202106 as it couldn't be cherry-pick directly
2021-10-29 08:55:59 -07:00
judyjoseph
b125f5d564
[202106] Advance the broadcom SAI to 5.0.0.11 (#9095)
* Advance the broadcom SAI to 5.0.0.11
* Update saibcm-modules-dnx to take in Knet MTU fix
2021-10-28 11:11:58 -07:00
Junchao-Mellanox
2a3738ead5
[Mellanox] Add a trigger to set LED to blink (#8995)
Depends on Mellanox hw-mgmt 7.0010.3300

Why I did it
Adjust LED logical according to hw-mgmt change.

How I did it
Add a trigger to set LED to blink.

How to verify it
Manual test
2021-10-28 10:01:40 -07:00
Volodymyr Samotiy
fa63c056d1
[submodule] Update sonic-utilities pointer (#9072)
- Why I did it
To include the following changes:
* b684149 [techsupport] [202106] Removed -i option for docker commands and Improved Error Reporting (#1843)

- How I did it
Updated sonic-utilities submodule pointer.

- How to verify it
Build an image and run sonic-mgmt tests.
2021-10-28 13:27:02 +03:00
Qi Luo
887aba37b6 [build] Use pip to install setup.py dependency instead of python setup.py install (#8997)
Fix a recent build error introduced by a pre-release redis-py. This is a general issue because `python setup.py install` (ie `easy_instal`) does not ignore pre-release versions. The fix is suggested by https://github.com/pypa/setuptools/issues/855#issuecomment-583803959
2021-10-27 22:18:58 -07:00
Stepan Blyshchak
a8235728f3 [swss.sh] fix an issue that dependent services are not read from a file (#8943)
This is due to the SERVICE variable declared after reading a file

#### Why I did it

To fix an issue that dhcp_relay does not restart with swss.

#### How I did it

Fixed in the swss.sh script

#### How to verify it

sudo systemctl restart swss
verify dhcp_relay restarts as well.
2021-10-26 22:44:56 -07:00
DavidZagury
a68a3a176e [Mellanox] Upgrade Mellanox firmware tools to 4.17.2-12 (#8978)
- Why I did it
Bug fix:
bad_param request due to missing parser rest command while running mlxlink

- How I did it
Advance to MFT tool version to 4.17.2-12.

- How to verify it
Manually tested on all mellanox platforms.
2021-10-26 08:58:50 -07:00
Alexander Allen
0d70e8f7e4
Update kernel pointer (#9054)
563666e Backport required mellanox kernel patches for hw-mgmt 3300 to kernel 4.19.152 (#240)
2021-10-26 13:33:07 +03:00
Alexander Allen
978584b3d1
[202106] [Mellanox] Upgrade hw-mgmt to V.7.0010.3300 (#9020)
- Why I did it
Upgrade to the latest version of hardware management in order to incorporate the latest bugfixes and drivers in the kernel.

- How I did it
Updated the version number and submodule for hw-mgmt.

- How to verify it
This has been verified on all Mellanox platforms through a combination of sonic-mgmt tests and other internal verification.
2021-10-26 13:32:28 +03:00
Judy Joseph
867daa8be6 Update sonic-utilities submodule
25f7c79 [sonic-package-manager] remove make_python_identifier (#1801)
84a7602 [sonic-package-manager] stop service explicitelly before uninstalling package (#1805)
2021-10-20 18:26:06 -07:00
Judy Joseph
599ff965ba Update sonic-swss submodule
88cfbc3 [Buffermgr]Graceful handling of buffer model change (#1956)
7f87a12 Orchagent validates mirror session queue parameter against maximum value from SAI (#1957)
2021-10-20 18:25:08 -07:00
Dmytro
0bd26909b2 [frrcfgd][bgpcfgd] Add portchannel support (#8911)
* To add portchannel support in frrcfgd and bgpcfgd
* Update is_zero_ip() to handle portchannel name
Signed-off-by: d-dashkov <Dmytro_Dashkov@Jabil.com>
2021-10-20 18:15:12 -07:00
Vadym Hlushko
315922746d [fan] Fixed dynamic minimum fan speed table for SN4410 (#8960)
Put new values to the dynamic minimum fan speed table for SN4410.
2021-10-20 18:14:29 -07:00
Alexander Allen
95fd2f7534 [mellanox] Remove validation for fw filenames with no extension (#8956)
Why I did it
Currently the mellanox platform API is validating the file extensions of firmware packages to be installed for basic sanity checking. However, ONIE packages do not have an extension and as such if there is a "." in the name it is taken to be an extension and then fails the sanity check.

How I did it
I removed the check which ensures that ONIE images don't have a file extension.

How to verify it
Name the ONIE updater file 2021.onie and attempt to install it via fwutil install fw 2021.onie --yes
2021-10-20 18:14:13 -07:00
Alexander Allen
3e8a612e11 [platform] [mellanox] Use correct API call to update firmware in auto_update_firmware (#8961)
Why I did it
The fwutil update all utility expects the auto_update_firmware method in the Platform API to execute the update_firmware() call and not the install_firmware() call.

How I did it
Changed the method in the mellanox platform API component implementation.

How to verify it
Run fwutil update all with a CPLD update on a Mellanox platform and verify that it properly updates the firmware using the MPFA file.
2021-10-20 18:14:03 -07:00
Saikrishna Arcot
dcd389f64c redis-dump-load: Pin the redis package to use 3.5.3 (#9001)
Redis 4.0.0b1 has been uploaded to pip as a prerelease version. This
version drops support for Python 2 and only supports Python 3. Because
setup.py is being run, it will use the latest version of a package and
not the latest stable version (which is still 3.5.3).

Therefore, pin the redis package to version 3.5.3, so that it will work
for both Python 2 and 3.

#### How to verify it

Make sure that redis-dump-load for Python 2 builds today.
2021-10-20 18:13:56 -07:00
shlomibitton
90fa9a2a61 Fix delay type from boot instead of unit activation (#8895)
Why I did it
With current code the delay will take place even if simple 'config reload' command executed and this is not desired.
This delay should be used only when fast-rebooting.

How I did it
Change the type of delay to OnBootSec instead of OnActiveSec.

How to verify it
Fast-reboot with this PR and observe the delay.
Run 'config-reload' command and observe no delay is running.
2021-10-20 18:13:52 -07:00
shlomibitton
60c9c0b379
[DHCPv6 Relay] [202106] Fix kernel memory allocation, log verbosity and dhcpmon bugs (#8975)
Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
2021-10-19 05:46:08 -07:00
Judy Joseph
58f082c19d Update sonic-utilites submodule
728130 [kdump] Remove automatic saving of kdump config in startup config (#1882)
2021-10-14 17:13:32 -07:00
Stepan Blyshchak
73473dc4c4 [sonic-cfggen] remove lazy_re workaround due to many optimizations done (#8226)
lazy_re had an issue when importing sonic-cfggen in another application that
uses re.search(). There is no much improvement of lazy_re today after many 
other good optimization work done for sonic-cfggen. It served as a quick 
temporary solution.

Some quick test for fast-reboot and warm-reboot done on top of 201911 branch:

Fast-reboot: from ASIC reset to ports in up state:
with lazy_re: 18 sec
without lazy_re: 18 sec

Warm-reboot: LAG restoration time:
with lazy_re: 73 sec
without lazy_re: 72 sec

So, there is no real optimization since the number of sonic-cfggen calls is greatly 
reduced in latest SONiC. This means it is time to revert this change.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2021-10-14 16:05:01 -07:00
Wirut Getbamrung
c5c53acf98 [Celestica/sonic_platform]: Fixed failed test cases in Haliburton platform testing (#8815)
* [device/celestica-e1031]: fix apis follow lastest spec
* [device/celestica-e1031]: fix lgtm (#261)
2021-10-14 15:30:07 -07:00
Raphael Tryster
58605cc7cc Increase min-links limit for portchannel from 128 to 1024. (#7265)
#### Why I did it

Restrict the min-links parameter in "config portchannel" to the range 1-1024.
Fixes Azure/sonic-buildimage#6781 in conjunction with https://github.com/Azure/sonic-buildimage/pull/1630.
Align YANG model with limits in libteam and sonic-utilties.

#### How I did it

PR 1630 in sonic-utilities prevents CLI user from entering a value outside the allowed range.  This PR does the following:

- Increases the maximum value of min-links from 128 to 1024.
- Provides validation in libteam, incorporating as a patch the code in https://git.kernel.org/pub/scm/linux/kernel/git/jpirko/libteam.git/commit/?id=69a7494bb77dc10bb27076add07b380dbd778592.
- Updates the Yang model upper limit from 128 to 1024 (was inconsistent with libteam value).
- Updates the Yang model lower limit from 1 to 0, since 0 is set as default in sonic-utilities which would fail its new range check otherwise.
- Added Yang tests for valid and invalid value.

#### How to verify it

config portchannel add PortChannel0004 --min-links 1024

Command should be accepted.

show interfaces portchannel

Output should show PortChannel0004, no errors on CLI.

config portchannel add PortChannel0005 --min-links 1025

Command should be rejected

show interfaces portchannel

Output should not show PortChannel0005 , no errors on CLI.

#### Which release branch to backport (provide reason below if selected)


#### Description for the changelog

Updates YANG model to allow up to 1024 min_links for portchannel.  Fixes Azure/sonic-buildimage#6781 in conjunction with https://github.com/Azure/sonic-buildimage/pull/1630.
2021-10-14 15:29:57 -07:00
Aravind Mani
e3cb49f859 DellEMC: Fix z9332f low power mode issue (#8693) 2021-10-14 15:29:46 -07:00
Sudharsan Dhamal Gopalarathnam
733d3a8e53 [DPB][Mellanox]Fixing DPB modes in Mellanox-SN2700-D40C8S8 (#8953)
#### Why I did it
Fixing https://github.com/Azure/sonic-buildimage/issues/8938
Fixing 1x10G DPB mode in Mellanox-SN2700-D40C8S8 SKU as it was causing sonic-cfggen to fail.


#### How I did it
Added correct mode format in hwksu.json in Mellanox-SN2700-D40C8S8  and updated platform.json for the new mode.


#### How to verify it
Using sonic-cfggen verify it works fine
2021-10-14 15:29:30 -07:00
Xichen96
ecc8dc8c70 [determine-reboot-cause] delay execution (#8935)
Since database.service has been moved to execute after rc-local.service,
and determine-reboot-cause.service rely on database.service, we have to
specify that in "After=".

Signed-off-by: Xichen Lin <xichenlin@microsoft.com>

Co-authored-by: Xichen Lin <xichenlin@microsoft.com>
2021-10-14 15:29:19 -07:00
Ying Xie
f2103da09c [copp] bind copp-config.service to sonic.target (#8969)
copp-config service needs to be started after sonic.target so that it could
render the copp-config with the latest information.

It also needs to be restarted when config reload or load_minigraph is invoked.

Signed-off-by: Ying Xie <ying.xie@microsoft.com>
2021-10-14 15:29:06 -07:00
xumia
2436f96c0a Fix failed to download cisco artifacts issue (#8942)
Why I did it
Fix the failure to download cisco artifacts issue
2021-10-14 15:28:44 -07:00
xumia
6e08bf2584 [ci]: Support azp for cisco 8000 (#8654)
Why I did it
Setup Azure pipeline for cisco 8000.
2021-10-14 15:28:40 -07:00
lguohan
a76dcdf130 [build]: add branch and release name in sonic_version.yml (#6356)
the branch refers the branch name that the commit is in,
for example master, 202012, 201911, ...
In case there is no branch, the name will be HEAD.

release is encoded in /etc/sonic/sonic_release file.
the file is only available for a release branch.
It is not available in master branch.

example for master branch
```
build_version: 'master.602-6efc0a88'
debian_version: '10.7'
kernel_version: '4.19.0-9-2-amd64'
asic_type: vs
commit_id: '6efc0a88'
branch: 'master'
release: 'none'
build_date: Tue Dec 29 06:54:02 UTC 2020
build_number: 602
built_by: johnar@jenkins-worker-23
```

example for 202012 release branch
```
build_version: '202012.602-6efc0a88'
debian_version: '10.7'
kernel_version: '4.19.0-9-2-amd64'
asic_type: vs
commit_id: '6efc0a88'
branch: '202012'
release: '202012'
build_date: Tue Dec 29 06:54:02 UTC 2020
build_number: 602
built_by: johnar@jenkins-worker-23
```

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2021-10-14 15:27:41 -07:00
Judy Joseph
2cc481ced1 Update sonic-utilities
d2baedb Remove exec from platform_reboot_plugin call to handle any hang issue. (#1879)
c54da70 [fstrim] limit smartctl execution time to 30 seconds (#1850)
cccf845 [multi-asic][cli][chassis-db] Avoid connecting to chassis db for cli commands executed from linecard (#1707)
2021-10-14 15:24:52 -07:00
Judy Joseph
5935eb32e8 Update sonic-swss
08b05db [pfcwd] Convert polling interval from ms to us in LUA scripts (#1908)
ebb1d6c [cfgmgr] Fix for STATE_DB Port check (#1936)
2021-10-14 15:03:39 -07:00
Judy Joseph
b3c578b687 Update sonic-snmpagent submodule
027dffe Fix: SonicV2Connector behavior change: get_all will return empty dict if (#226)
2021-10-14 14:55:12 -07:00
Judy Joseph
6a1184b475 Update sonic-platform-daemons 2021-10-14 14:50:24 -07:00
Volodymyr Samotiy
d3dad3f99c
[202106][Mellanox] Update SAI to v1.19.7.1 (#8930)
Signed-off-by: Volodymyr Samotiy <volodymyrs@nvidia.com>
2021-10-13 14:08:54 -07:00
Judy Joseph
a795223ef6 Update sonic-swss,sonic-utilities submodule
sonic-swss
29a0483 Cache routes for single nexthop for faster retrieval (#1922)

sonic-utilities
9bc6500 Modified the 'show ipv6 link-local-mode' command to display all interfaces by default (#1797)
2021-10-10 17:40:06 -07:00
Guohan Lu
4d2e8760c4 [ci]: increase the t0 kvm test limit to 5 hours
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2021-10-08 16:49:47 +08:00
Judy Joseph
076055d6ca Update sonic-swss submodule
[202106 6e895ad] Revert "[buffer orch] Bugfix: Don't query counter SAI_BUFFER_POOL_STAT_XOFF_ROOM_WATERMARK_BYTES on a pool where it is not supported (#1857)" (#1945)
2021-10-07 09:09:56 -07:00
Judy Joseph
7aa9fde3e0 Update sonic-sairedis submodule
3e8f83b [sairedis] Fail get/clear api on objects created in init view mode (#930)
2021-10-05 23:39:21 -07:00
Judy Joseph
0658a687a8 Update sonic-py-swsssdk submodule 2021-10-05 23:38:03 -07:00
byu343
1d1fa91b1f [arista] Add asic and phy configs for clearwater2ms (#8174)
* Add ASIC configs for clearwater2ms
* Add 100G gearbox configs for clearwater2ms
2021-10-04 19:28:20 -07:00
Junchao-Mellanox
821f521ae3 [Mellanox] Change thermal recover threshold from temp_trip_norm to temp_trip_high (#8792)
- Why I did it
Change thermal recover threshold from temp_trip_norm to temp_trip_high, so that thermal algorithm would set fan speed to minimum allowed earlier and save power.

- How I did it
Change thermal recover threshold from temp_trip_norm to temp_trip_high

- How to verify it
Manual test
2021-10-04 19:28:15 -07:00
Sudharsan Dhamal Gopalarathnam
10fea210ef Load global config in caclmgrd only in multi asic NPU (#8812)
How I did it
Added if multi npu check before invoking the load global config.

How to verify it
Restart caclmgrd after this change and check if no error log is thrown.
2021-10-04 19:28:08 -07:00
Ying Xie
c09984fdd8 [Nokia 7215] Rename alias column with etpN normination (#8879)
also add hwsku alias Nokia-M0-7215

Signed-off-by: Ying Xie <ying.xie@microsoft.com>
2021-10-04 19:27:59 -07:00
Sudharsan Dhamal Gopalarathnam
e09bb5b2f6 Handle feature flow when state is always_enabled (#8811)
Why I did it
When feature state is set to always_enabled hostcfgd throws error message
Sep 21 22:30:55.135377 r-leopard-32 ERR /hostcfgd: Unexpected state value 'always_enabled' for feature bgp
Sep 21 22:30:55.420268 r-leopard-32 ERR /hostcfgd: Unexpected state value 'always_enabled' for feature database
Sep 21 22:30:58.672714 r-leopard-32 ERR /hostcfgd: Unexpected state value 'always_enabled' for feature swss
This is due to feature == always_enabled not handled properly.

How I did it
Handled the scenario when feature is always enabled

How to verify it
Restart hostcfgd with feature state configured as always_enabled and check if there are no errors.
Added UT to cover the scenario.
2021-10-04 19:27:50 -07:00
Alexander Allen
8832792a28 Add Mellanox-SN4600C-D100C12S2 SKU (#8832)
*Add Mellanox-SN4600C-D100C12S2 SKU
2021-10-04 19:27:46 -07:00
Judy Joseph
13640ff820 Update sonic-sairedis
2f5588c Fix flex counters logic of converting poll interval to seconds from MS (#878)
8d57cfd [syncd][bcm] Start syncd by passing context configuration file (#858)
2021-10-04 19:25:52 -07:00
Judy Joseph
5e4613d079 Update sonic-snmpagent submodule
c66456d [multi-asic]: Udpate to use SonicDBConfig from swsscommon (#219)
2021-10-04 19:24:27 -07:00
Judy Joseph
62ca18c840 Update sonic-swss-common submodule 2021-10-03 19:02:54 -07:00
Judy Joseph
c23c28b0a5 Update sonic-swss, sonic-utilies submodules
sonic-swss:

bb69ca2 [portsorch] Avoid orchagent crash when set invalid interface types to port (#1906)
6e1bacc [pfcwd] Fix the polling interval time granularity (#1912)
564785b [teammgrd]: Improve LAGs cleanup on shutdown: send SIGTERM directly to PID. (#1841)
7ee8d26 [tlm teamd] Add retry mechanism before logging the ERR in get_dumps. (#1629)
7f57d3d [fgnhgorch] Enable packet flow when no FG ECMP neighbors are resolved (#1900)
08d009f Mux state order change (#1902)

sonic-utilities:

1bc0f07 Provide support to install platform extensions (#1578)
968c781 [config reload] Removed job-mode for sonic.target restart (#1820)
2021-09-26 23:00:40 -07:00
Kostiantyn Yarovyi
730f00a4e4 [show] add platform components in Newport, Montara, Mavericks for fix incomprehensible firmware Error print (#8690)
What I did:
     add platform components
 How I did it:
      In platform_components.json add chassis and empty component
How to verify it:
       Run show platform firmware updates
2021-09-26 21:37:01 -07:00
Vaibhav Hemant Dixit
65c9092266 Save DB dump after warm/fast reboot (#8803)
As a part of warmboot, redis database is dumped:
c97fe546e5/scripts/fast-reboot (L269)
However, this dump file is deleted, after it is loaded back into db post reboot.
The DB dump can be useful for debugging purpose, hence taking a backup of it can be useful.
Instead of deleting the dump, rename and keep the dump.
2021-09-26 21:36:47 -07:00
Aravind Mani
17ccd8babe DellEMC: Z9332f fix platform bugs (#8777)
* DellEMC: Z9332f fix platform bugs

* update sfp.py
2021-09-26 21:36:36 -07:00
dflynn-Nokia
25b44c0ca6 [Nokia ixs7215] Support show system-health (#8771)
* [Nokia ixs7215] Support show system-health
* [Nokia ixs7215] Fix LGTM alert
2021-09-26 21:36:26 -07:00
dflynn-Nokia
35312edebc [Nokia ixs7215] Add support for SFP eeprom type_abbrv_name attribute (#8772) 2021-09-26 21:36:14 -07:00
abdosi
8d2bf370d1 [baseimage]: Logrotate for wtmp and btmp files. (#8743)
Added logrotate file for wtmp and btmp to override default conf and set size cap as 100K as done in 
PR: #865. For buster this is control by separate file wtmp and btmp.

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2021-09-26 21:36:03 -07:00
vganesan-nokia
79ed384621 [multi-asic][cli][chassis-db] Avoid connecting to chassis db when cli commands are executed from linecards (#8065)
* [multi-asic][cli][chassis-db] Avoiding connecting to chassis db

Currently, for all the cli commands, we connect to all databases
mentioned in the database_config.json. The database_config.json also
includes the databases from chassis redis server from supervisor card.
It is unneccessary to connect to databases from chassis redis server
when cli commands are executed form linecard. But we need to allow
connection to chassis databases when the cli commands are executed from
supervisor card.

The changes in this PR fixes this problem. This PR requires that
asic.conf in supervisor card includes VOQ_SUPERVISOR with value 1 to
indentify the supervisor card. The connect_to_all_dbs_for_ns() is
changed to skip chassis databases form the list of collected databases
if the card is not supervisor card.
2021-09-26 21:35:39 -07:00
arlakshm
78c31722e9 [multi-asic]: remove load_sonic_global_db_config calls (#8173)
#### Why I did it
Remove the call to `SonicDBConfig.load_sonic_global_db_config()` in the multi asic functions.
The expection is the client calling this function will call `SonicDBConfig.load_sonic_global_db_config()`

This PR is dependent on the PR https://github.com/Azure/sonic-utilities/pull/1712 
#### How to verify it
compile sonic-utilities
2021-09-26 21:35:34 -07:00
Sudharsan Dhamal Gopalarathnam
4536f35f26
[mellanox] remove 2x40G and 4x40G breakout modes due to no hardware support (#8280) (#8710)
Cherry-pick of #8280
Mellanox platforms do not support 2x40G or 4x40G breakout modes.
2021-09-21 17:57:49 -07:00
Judy Joseph
5fe5793435 Update sonic-utilities submodule with commits,
a631f04 Add check_db_integrity script to setup.py (#1828)
ddf6793 Implement script null_route_helper (#1737)
2021-09-19 08:57:30 -07:00
Judy Joseph
d283549d2a Update sonic-swss, sonic-utilities submodules
sonic-swss commits

5fbd113 [Flex-counters] Fix the delay of flex counters flow to prevent infinite loop (#1899)
dc685b6 [portsorch] Add an extra check before setting oper speed to APPL_DB (#1885)
ceef728 Update port_rates & rif_rates lua scripts to convert poll_interval to MS (#1855)

sonic-utilities commits

3160753 [ci]: Support PR coverage (#1806)
3316fdb fix wrong code indent in sfputil (#1808)
c33e3a8 [config reload] Fix config reload failure due to sonic.target job cancellation (#1814)
4f7e107 [portconfig] Validate duplicate speed value and interface type value (#1745)
59817e2 [warm-reboot] Add new preboot health check: verify database integrity (#1785)
bf2ff3c [portstat, intfstat] added rates and utilization (#1750)
3bf962c [show][platform] Revise chassis info fallback to only fall back on pmon crash (#1751)
2021-09-14 10:19:55 -07:00
Sudharsan Dhamal Gopalarathnam
248d90b26b Removing execute permission from copp config file (#8680)
*Removed execute permissions from the systemd copp-config.service file. 
Without this we will get a warning: "Configuration file /lib/systemd/system/copp-config.service is marked executable. Please remove executable permission bits. Proceeding anyway."
2021-09-14 09:58:52 -07:00
Ying Xie
ff9274d2a0 [202012][fstrim] delay fstrim timer after sonic.target (#8737)
Why I did it
fstrim has dependency on pmon docker.

How I did it
start fstrim timer after sonic.target.

How to verify it
local test and PR test.

Signed-off-by: Ying Xie ying.xie@microsoft.com
2021-09-14 09:58:41 -07:00
Sudharsan Dhamal Gopalarathnam
d8841cb876 [DPB]Removing default admin status initialization in DPB flow while loading minigraph (#8711)
To Fix #8697 . The config load_minigraph initializes 'admin_status' to up when platform.json has DPB configs. This doesn't happen when using port_config.ini
The update minigraph has logic to initialize only the ports whose neighbors are defined or those belonging to portchannel
However, a change was introduced to have default admin status to be 'up' in portconfig.py when the minigraph was using platform.json

This will lead to sanity check failure in sonic-mgmt and thus no test cases could be run
2021-09-14 09:58:30 -07:00
dflynn-Nokia
e3cfc44354 [Nokia ixs7215] Miscellaneous platform API fixes (#8707)
* [Nokia ixs7215] Miscellaneous platform API fixes

This commit delivers the following fixes for the Nokia ixs7215 platform

- Fix bug in a fan API error path
- Add support for setting the fan drawer led
- Add support for getting/setting the front panel PSU status led
- Add support for getting the min/max observed temperature value

* [Nokia ixs7215] code review changes: temperature min/max values
2021-09-14 09:58:20 -07:00
Sudharsan Dhamal Gopalarathnam
43ce30b1ef [Mellanox] Remove 2x40G from SN3800 hwsku (#8712)
- Why I did it
Removed 2x40G for SN3800. This mode is not supported by hardware.

- How I did it
Removing it from hwsku.json and platform.json

- How to verify it
Load it in the device and check supported modes
2021-09-14 09:58:10 -07:00
Samuel Angebault
d410d26e26 [Arista] Fix Clearwater2 phy initialization when no configuration is provided (#8271)
Why I did it
Fix an issue on the Clearwater2 linecard.
When the linecard is started with a fresh image without configuration, phys would not be initialized.

How I did it
Added default_sku for Clearwater2 which prevents config-setup from failing to create a default config_db.json.
Added some extra logic in the phy-credo-init script to run the phy_config.sh of the hwsku pointed by default_sku if the DEVICE_METADATA.localhost.hwsku information is not populated in CONFIG_DB.

How to verify it
Booting an image with this change and without configuration will lead to the phys being initialized using the phy_config.sh from default_sku.
2021-09-14 09:36:55 -07:00
Nazarii Hnydyn
e3a827a14d [Mellanox] Advance hw-mgmt to V.7.0010.2346. (#8667)
Commits on Sep 01, 2021
hw-mgmt: attributes: Add PSU power sensor attributes d8fce39

Commits on Sep 02, 2021
Remove MFT package flint tool from hw-management dump generation. 53d06b2
hw-mgmt: debug: Add timeout to generate-dump.sh b661fa3 

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
2021-09-14 09:36:49 -07:00
Judy Joseph
1ca6dc9963 Submodule updates
sonic-swss

73f6f68 [Flex Counters] Delay flex counters even if tables are present in the DB (#1877)
5edb9e5 [buffer orch] Bugfix: Don't query counter SAI_BUFFER_POOL_STAT_XOFF_ROOM_WATERMARK_BYTES on a pool where it is not supported (#1857)
fce0c60 [crm] Fix for Issue Azure/sonic-buildimage#8036 (#1829)

sonic-utilities

2630ac1 [Fast-reboot] Set flex counters delay indicator to prevent flex counters enablement after fast-reboot (#1768)
606f1b1 [portstat pfcstat] Unify the packet number format in the output of portstat and pfcstat in all cases (#1755)
2c6a15e [ecnconfig] Fix exception seen during display and add unit tests (#1784)
9b1995e Fix logic in RIF counters print (#1732)

sonic-swss-comon

3e7b81f Add a new field for FLEX_COUNTER_TABLE to indicate delay for flex counters (#523)
2021-09-02 16:33:40 -07:00
Ann Pokora
e5e273d8a8 [yang]: sonic-yang-models updates for MPLS (#7881)
SONiC YANG model support in buildimage for MPLS:

sonic-yang-model support for MPLS enable/disable
sonic-yang-model support for MPLS CRM thresholds
2021-09-02 15:46:49 -07:00
Kebo Liu
17d0dc3a81 [Mellanox] remove sensor conf for SN4600 A0 platform due to EOL (#8629)
- Why I did it
SN4600 A0 platform was EOL, so there is no need to support it, sensor conf can be removed and we don't need to maintain 2 sensor conf files, only A1 platform is needed.

- How I did it
Remove get_sensors_conf_path which intends to load correct sensor conf for different(A0/A1) platforms.
Remove the sensor conf for A0 platform, rename previous sensor.conf.a1 to sensor.conf

- How to verify it
Run sensor test on the SN4600 platform.
2021-09-02 15:46:37 -07:00
richardyu
0f1d58a0c9 [SAIServer] sai server reads config from hwsku folder (#8625)
To enable saiserver docker on different platforms, it needs different configuration files. make the saiserver docker mount them in hwsku folder.

Co-authored-by: Ubuntu <richardyu@richardyu-ubuntu-vm0.trsxrdzozv2e1czsze2t05vqzh.ix.internal.cloudapp.net>
2021-09-02 15:46:23 -07:00
carl-nokia
75ef115e8e [Nokia ixs7215] sfp get_name test case fix (#8507)
Account for sfputil_helper indexing being 0 based

Co-authored-by: Carl Keene <keene@nokia.com>
2021-09-02 15:46:12 -07:00
shlomibitton
be5236b3b5 [Flex Counters] Reset flex counters delay flag on config DB when enable_counters script is called (#8500)
#### Why I did it
Reset flex counters delay flag on config DB when enable_counters script is called to allow enablement of flex counters in orchagent.

#### How I did it
Push to config DB 'false' value for delay indication when enable_counters script is called before enabling the counters.

#### How to verify it
Observe counters are created when enable_counters script is called.
2021-09-02 15:46:01 -07:00
Junchao-Mellanox
e925339a7e [Mellanox] Read PSU fan max/min speed per PSU (#8563)
#### Why I did it
New PSU could install different type of fan, so fan max/min speed should be read per PSU

#### How I did it
The existing implementation read PSU max/min fan speed from a common file, change it to read from per PSU file

#### How to verify it
Manual test
2021-09-02 15:45:26 -07:00
Aravind Mani
af98b9baf4 DellEMC: Z9332f fix LED issue (#8639) 2021-09-02 15:39:12 -07:00
Samuel Angebault
ae15bb953c [Arista] Fix flash size computation for Lodoga (#8622)
The Lodoga platform also matched crow which was hardcoding the flash
size to 3700. This change enables autodetect on Clearlake which in turns
allows autodetect for Lodoga.

The threshold was bumped from 3700 to 4000 because size computation can
differ slightly and report slightly above 3700.
2021-09-02 15:39:02 -07:00
Ying Xie
6b7fdd1bb8 [7050] define hwsku.json for Arista-7050QX-32S-S4Q31 to skip SFP checks for first 4 ports (#8624)
Why I did it
The first 4 ports on this dut are breakout ports. They might not always be connected in lab. Mark them as 'RJ45' to skip the SFP check since they are by default disabled.

How to verify it
run platform test_reboot.py

Signed-off-by: Ying Xie <ying.xie@microsoft.com>
2021-09-02 15:38:40 -07:00
Song Yuan
c9e01cf6ef [chassis] Set LAG Id range for 7800 chassis (#8052)
Configure LAG Id range in chassisdb.conf for 7800 chassis.
2021-09-02 15:38:28 -07:00
richardyu
1808d5894e [202012][saiserver docker]adds saiserver dependences (#8447)
Co-authored-by: richardyu-ms <richard.yu@microsoft.com>
2021-09-02 15:38:17 -07:00
Samuel Angebault
7ba0d3497f [Arista] Rely on automatic flash size detection for Lodoga (#8608)
Lodoga actually has a 8GB storage device.
LodogaSsd variant has a 30GB SSD drive.
However, in boot0 both were mishandled and assigned 4GB for legacy reasons.

Remove the hardcoding of the flash size and let boot0 autodetect the available space.
2021-09-02 15:38:04 -07:00
dflynn-Nokia
7a950cf49c [Nokia ixs7215] Add support for changing the console baud rate (#8595)
This commit adds support for changing the default console baud rate configured
within the U-Boot bootloader. That default baud rate is exposed via the value
of the U-Boot 'baudrate' environment variable. This commit removes logic that
hardcoded the console baud rate to 115200 and instead ensures that the U-Boot
'baudrate' variable is always used when constructing the Linux kernel boot
arguments used when booting Sonic.

A change is also made to rc.local to ensure that the specified baud rate is set
correctly in the serial getty service.
2021-09-02 15:37:54 -07:00
Shilong Liu
90e7f6b201 [build] Fix reproducible build issues (#8548)
* [build] Fix reproducible build issues
2021-09-02 15:37:42 -07:00
gechiang
8527e3fb18 BRCM Disable ACL Drop counted towards interface RX_DRP counters part II (#8596) 2021-09-02 15:37:17 -07:00
Samuel Angebault
6c6bfde24e
[202106][Arista] Update platform library submodules (#8643)
Update 202106 release with the Arista drivers from master.
This update is mostly targeted at chassis and is deemed stable.

Most notable chassis improvements:
 - fix psu reporting in platform api
 - powercycle fabrics on supervisor reboot
 - improve card powercycle reliability
 - fix led plugin when dealing with `Ethernet-Rec` and `Ethernet-IB`
 - fix system-health cli reporting
 - unset provisioning mode once the linecard has started
 - fix `show version` when running as `admin`
 - fix race between loading the eeprom module and sysfs file availablity
 - implement `get_all_asics` platform API
2021-09-01 23:23:11 -07:00
Judy Joseph
d7f5dded12 Revert "[bgpcfgd][voq] Fix for unit test failure in bgp config for voq switch (#8278)"
This reverts commit 2353c7decd.
2021-08-26 09:33:23 -07:00
Judy Joseph
dbcb55be66 Update sonic-swss submodule with
88a38f7 Ignore ALREADY_EXIST error in FDB creation (#1815)
b1c23f3 Change rif_rates.lua and port_rates.lua scripts to calculate rates correct (#1848)

Update sonic-utilities submodule with

cbc25d6 [config reload] Call systemctl reset-failed for snmp,telemetry,mgmt-framework services (#1773)
04dcd07 Improve config error handling on version_info (#1760)
e567a60 Load the database global_db. (#1752)
c15fb8f [sfputil] Gracefully handle improper 'specification_compliance' field (#1741)
39350f8 [dhcp_relay] Update CLI reference document and add a new API for ip address type (#1717)
18f13c6 [sonic-package-manager] switch from poetry-semver to semantic_version due to bugs found in poetry-semver (#1710)
b16724a [voq][chassis] VOQ cli show commands implementation (#1689)
9427cd6 [debug dump util] Match Infrastructure (#1666)
d9fb39b [route_check] Filter out VNET routes (#1612)
2021-08-25 22:52:58 -07:00
Judy Joseph
043e02e606 Update the sonic-linux-kernel submodule 2021-08-25 14:51:48 -07:00
byu343
4830ec99ae [Arista] Update phy-credo service for config load (#8005)
phy-credo.service will be restarted when running 'config reload'

Signed-off-by: Boyang Yu <byu@arista.com>
2021-08-25 14:41:36 -07:00
shlomibitton
edd6f4086c [dhcp_relay] Adapt config/show CLI commands to support DHCPv6 relay (#8211)
#### Why I did it
- Adapt config/show CLI commands to support DHCPv6 relay
- Support multiple dhcp servers assignment in one command
- Fix IP validation
- Adapt UT and add new UT cases

#### How I did it
- Modify config/show dhcp relay files
- Modify config/show UT files

#### How to verify it
This PR has a dependency on PR https://github.com/Azure/sonic-utilities/pull/1717
Build an image with the dependent PR and this PR
Use config/show DHCPv6 relay commands.
2021-08-25 12:45:03 -07:00
Christian Svensson
c7d4f5b8d8 [mgmt-framework]: Fix typo in mgmt_vars.j2 (#8475)
Signed-off-by: Christian Svensson <blue@cmd.nu>
2021-08-25 12:44:41 -07:00
vganesan-nokia
2353c7decd [bgpcfgd][voq] Fix for unit test failure in bgp config for voq switch (#8278)
The unit test failure was due to missing bgp graceful restart select
defer time configuration in voq_chassis.conf. Modified sample output
data file voq_chassis.conf to include this configuration.

Signed-off-by: vedganes <vedavinayagam.ganesan@nokia.com>
2021-08-25 12:44:23 -07:00
Vivek Reddy
b0f8633604 [Mellanox][master][SKU] sonic interface names are aligned to 4 instead of 8 for 4600/4600C platforms (#8155)
*Edited platform.json for 4600 & 4600C
*Edited hwsku.json and port_config.ini files for all the SKU's present under these platforms
Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
2021-08-25 12:44:06 -07:00
Vivek Reddy
9a711645da [Mellanox] [master] Added D48C40 SKU for 4600C platform (#8201)
*Added new SKU for SN4600C Platform: Mellanox-SN4600C-D48C40
Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
2021-08-25 12:43:47 -07:00
madhanmellanox
3057266ff6 Adding SKU Mellanox-SN3800-D100C12S2 (#8441)
* Adding SKU Mellanox-SN3800-D100C12S2

Co-authored-by: Madhan Babu <madhan@l-csi-0241l.mtl.labs.mlnx>
2021-08-25 12:43:16 -07:00
Kostiantyn Yarovyi
a83480f749 [Pcied] run by python 3
Why I did it
Pcied running by python 2.

How I did it
dropped python2 support and add python3 support for pcied in file docker-pmon.supervisord.conf.j2

How to verify it
docker exec pmon supervisorctl status
2021-08-25 12:38:14 -07:00
Alexander Allen
9a3e35ec83 [Mellanox] Upgrade Mellanox firmware tools to 4.17.0 (#8299)
- Why I did it
New release of MFT has the following changelog / RN
 Fixed an issue that resulted in getting MVPD read errors from the mlxfwmanager during fast reboot.
 Fixed mlxuptime sometimes generating a time less than previous due the wrong frequency calculation

- How I did it
Update makefile pointer to new version.

- How to verify it
Manually tested on all Mellanox platforms.
2021-08-25 12:37:36 -07:00
Volodymyr Samotiy
055d497799 [monit] Periodically monitor VNET route consistency (#8266)
*To run VNET route consistency check periodically.
*For any failure, the monit will raise alert based on return code.
Signed-off-by: Volodymyr Samotiy <volodymyrs@nvidia.com>
2021-08-25 12:37:19 -07:00
Alexander Allen
50dcc82ee0 [Mellanox] Add 2x100G and 4x50G breakout modes to MSN4410 platform (#8419)
- Why I did it
The MSN4410 platform was missing 2x100G and 4x50G supported breakout modes in platform.json

- How I did it
Added the aforementioned breakout modes to platform.json

- How to verify it
Run show interface breakout on a MSN4410 and verify that 2x100G and 4x50G are listed in the supported breakout modes for ports 1-24.
2021-08-25 12:36:31 -07:00
Samuel Angebault
8de67e0051 [Arista] Add VOQ information for Clearwater2 (#8508)
This change introduces 3 columns in the port_config.ini file.
These are coreId, corePortId and numVoq.
The ports for inband and recirc were also renamed properly.
2021-08-25 12:25:22 -07:00
Marty Y. Lok
f33b659aff Added Nokia IXR7250E support (#7809)
Why I did it
Support Nokia ixr7250E IMM and Supervisor cards

How I did it
Added modules x86_64-nokia_ixr7250e_sup-r0 and x86_64-nokia_ixr7250e_36x400g-r0 ../device/nokia directory.
Modified the platform/broadcom/one-image.mk to include NOKIA_IXR7250_PLATFORM_MODULE
Modified the platform/broadcom/rule.mk to include the platform-module-nokia.mk
2021-08-25 12:21:39 -07:00
abdosi
f9a2c096ab Enable sysctl fib_multipath_use_neigh (#8502)
Enable fib_multipath_use_neigh for v4
https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt

Why I did:
This is helpful if the neighbor are not directly connected then Kernel forward to unreachable neighbor option. With this option forwarding using neighbor state to be valid.
2021-08-25 12:21:20 -07:00
Stepan Blyshchak
9e9e2abdf7 [libteam][warm-reboot] fix issue in teamd warm-reboot that teamd starts (#8227)
with state of tdport from previous warm-reboot.

In case LAG was down before reboot, lacp->wr is not cleared.
In lacp_event_watch_port_flush_data we incremented nr_of_tdports and add
tdport to lacp->wr.state. In case lacp->wr.state already had this tdport
we do not set new state for tdport but appened a new item in
lacp->wr.state. In case we preformed warm-reboot and PortChannel member
was down, after reboot PortChannel member became up next warm-reboot
will initialize teamd with PortChannel member in down state.

Fix this issue by calling stop_wr_mode() when LAG was down. This was probably intended but missed.

#### Why I did it

To fix an issue seen in warm-reboot-sad test cases.

#### How I did it

I fixed it in SONiC libteam patch that adds warm-reboot support. Details in commit description.

#### How to verify it

Run warm-reboot-sad test on t0-56 topology.
2021-08-25 12:20:57 -07:00
Qi Luo
65c135a1ae Replace swsssdk with swsscommon in sonic-host-services (#8034)
#### Why I did it
swsssdk will be deprecated. Use swsscommon instead.

#### How to verify it
Unit test
2021-08-25 12:20:32 -07:00
minionatwork
1a41e76c45 [multi-asic] Fix for sonic-cfggen exception during platform string read (#8229)
Fix for sonic-cfggen exception during platform string read during fresh install and start of sonic in multi asic, /var/run/redisX/ is created after database docker is started.
2021-08-25 12:20:09 -07:00
Stephen Sun
288c49a085 Use predefined macro as vendor information (#8361)
#### Why I did it
Use a predefined variable to get vendor information when the swss docker container is created

#### How I did it
Use `{{ sonic_asic_platform }}` instead of `$SONIC_CFGGEN -y /etc/sonic/sonic_version.yml -v asic_type`

#### How to verify it
Manually test.
2021-08-25 12:19:09 -07:00
tomer-israel
69e32890e2 [Mellanox] fix syseeprom info values on mellanox simulator platforms msn4700 and msn4800 (#8387)
#### Why I did it
The values of the syseeprom were not valid

#### How I did it
I took the correct hexdump values from a real switch and created this hex file again

#### How to verify it
decode-syseeprom will display the new values
2021-08-25 12:18:37 -07:00
Ying Xie
34487eef5d [aboot] use ram partition for /var/log for devices with 3.7G disks (#8400)
Master/202012 image size grew quite a bit. 3.7G harddrive can no longer hold one image and safely upgrade to another image. Every bit of harddrive space is precious to save now.

Also sh syntax seemingly changed, [ condition ] && action was a legit syntax in 201911 branch but it is an error when condition not met with 202012 or later images. Change the syntax to if statement to avoid the issue.

Signed-off-by: Ying Xie ying.xie@microsoft.com
2021-08-25 12:18:19 -07:00
gechiang
c679ebf931 Reapply the fix to address setting MTU > 1500 causing portmgrd crash on BRCM platforms (#8472) 2021-08-25 12:17:56 -07:00
Kebo Liu
0108c7de58 [Mellanox] Upgrade hw-mgmt to 7.0100.2344 (#8463)
To pick up new PSU fan support from new hw-mgmt release

Signed-off-by: Kebo Liu <kebol@nvidia.com>
2021-08-25 12:17:36 -07:00
carl-nokia
aef7c85695 [Nokia ixs7215] sfputil support + component tests (#8445)
Deliver sfputil support for sfputil show eeprom and sfputil reset along with some component test case fixes

Co-authored-by: Carl Keene <keene@nokia.com>
2021-08-25 12:17:07 -07:00
Vladyslav Morokhovych
47496ec8a4 [swss] Fix arp_update script (#8412)
Fix #7968

Issue is detected on SONiC.20201231.11

In test_static_route.py::test_static_route_ecmp static routes are configured, but neighbors are not resolved after config reload even after 10 minutes.
It looks like the arp_update script is starting to ping when Vlan1000 is not fully configured.
When issue is reproduced, stuck ping6 process is observed in swss container :

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         180  0.1  0.0   6296  1272 pts/0    S    17:03   0:03 ping6 -I Vlan1000 -n -q -i 0 -c 1 -W 0 ff02::1
And when arp_update script successfully resolves neighbors, we observe sleep 300 instead of ping process
2021-08-25 12:16:42 -07:00
Shi Su
499ad9141b [FRR]: Upgrade FRR to frr-7.5.1-s1 tag (#8443)
Update FRR 7.5.1 head.
2021-08-25 12:16:19 -07:00
carl-nokia
61dfcae4e0 [Nokia] Add hwsku.json for the Nokia-7215 (#8372)
* add hwsku.json for the Nokia-7215
* added required default_brkout_mode to hwsku as its not optional
* remove tabs from the file so spacing consistent

Co-authored-by: Carl Keene <keene@nokia.com>
2021-08-25 12:16:01 -07:00
shlomibitton
cbb825cb4b [hostcfgd] Delay hostcfgd and aaastatsd for faster boot time (#7965)
#### Why I did it
hostcfgd is starting at the same time as 'create_switch' method is called on orchagent process.
This introduce a degradation on the function execution time which eventually cause the fast-boot flow and a boot scenarion in general to run slower (~6 seconds).
This change will delay the start time of this daemon.
The aaastatsd will delay as well since it has a dependency on hostcfgd, so it is required to delay both.
90 seconds determined as the maximum allowed downtime for control plane to come back up on fast-boot flow.

#### How I did it
Add two timers for hostcfgd and aaastatsd  services in order to delay the startup of these services.

#### How to verify it
Install an image with this change and observe the daemons start 90 seconds after the system boot.
2021-08-25 12:15:16 -07:00
jerseyang
418ee0cd38 enable the emc2305 fan controller and NCP power controller 30ms timeout mechanism (#8138)
Why I did it
fix the dx010 system eeprom unavailable issue

How I did it
enable the i2c slave 30ms timeout mechanism

How to verify it
i2cstress test in DX010 iSMT controller bus

Co-authored-by: nicwu-cel <nicwu@celestica.com>
2021-08-25 12:14:59 -07:00
carl-nokia
43fa47d486 [sonic-device-data]: add port_type to OPTIONAL_PORT_ATTRIBUTES (#8370)
enable automated test suites to selectively run relevant tests ( or not run tests ) based upon a new port_type identifier in hwsku.json

How I did it
Modified the valid optional fields in validity check for hwsku.json per recommendation from Joe in
https://github.com/Azure/sonic-mgmt/pull/2654/files

Co-authored-by: Carl Keene <keene@nokia.com>
2021-08-25 12:14:17 -07:00
dflynn-Nokia
fb072d84cb [Nokia ixs7215] Watchdog timer support (#8377) 2021-08-25 12:13:44 -07:00
Rajkumar-Marvell
31f4154787 [reboot-cause] Fixed determine-reboot-cause.service failure. (#8210)
Signed-off-by: Rajkumar Pennadam Ramamoorthy rpennadamram@marvell.com

Why I did it
Install sonic image from ONIE. Once system is up, execute "config reload" command.

Root cause is that "determine-reboot-cause.service" was in failed state.
root@sonic:/host/reboot-cause# systemctl list-units --failed
UNIT LOAD ACTIVE SUB DESCRIPTION
● determine-reboot-cause.service loaded failed failed Reboot cause determination service

How I did it
Fixed the issue by setting default reason to "REBOOT_CAUSE_UNKNOWN" instead of "None".

How to verify it
Check " determine-reboot-cause.service' loaded successfully post image installation from ONIE.
Verify "reboot-cause.txt" file is created and config reload succeeds.
2021-08-25 12:13:15 -07:00
Shilong Liu
9fb60721f8 Reproducible build add docker image debian* to white list. (#8330)
#### Why I did it
1. Add version control for debian* docker image to white list.
2. Always record docker image sha256 value, regardless of white list.
2021-08-25 12:12:42 -07:00
Kebo Liu
dd9a9ba4c3 [Mellanox] Add new sensor conf to support SN4410 A1 system (#8379)
#### Why I did it

New SN410 A1 system has a different sensor layout with A0 system, needs a new sensor conf file to support it.

#### How I did it

Since the SN4410 A1 system use exactly the same sensor layout as the SN4700 A1 system, so add a symbol link linking to the SN4700 A1 sensor conf file to reuse.

#### How to verify it

Run sensor test against the SN4410 A1 system;
Run platform related regression test against the SN4410 A1 system
2021-08-25 12:12:18 -07:00
tjchadaga
8b780d68a9 Fix TH3 Warm-reboot failure due to Tunnel termination SAI failure (#8395) 2021-08-25 12:12:00 -07:00
gechiang
280df2ee46 BRCM Disable ACL Drop counted towards interface RX_DRP counters (#8382)
* BRCM Disable ACL Drop counted towards interface RX_DRP counters
2021-08-25 12:11:23 -07:00
judyjoseph
6bbfafb045 [build]: Update the make cache mode for opennsl-module-dnx (#8391)
Fix warning shown during compilation

[ DPKG ] Cache is not enabled for opennsl-modules-dnx_5.0.0.4_amd64.deb package
2021-08-25 12:10:59 -07:00
Longxiang Lyu
9cc4b7b406 [swss][arp_update] Send ipv6 pings over vlan sub interfaces (#8363)
#### Why I did it
* `arp_update` fails to ping those neighbors over vlan sub interfaces.

#### How I did it
* modify `arp_update_vars.j2` to get vlan sub interfaces with ipv6 addresses assigned.
* modify `arp_update` to send ipv6 pings over those retrieved vlan sub interfaces.

Signed-off-by: Longxiang Lyu <lolv@microsoft.com>
2021-08-25 12:10:33 -07:00
Blueve
02bce90933 [ARM] Fix issue whre the ping6 tool is missing from orchagent docker (#8345)
Signed-off-by: Jing Kan jika@microsoft.com
2021-08-25 12:10:06 -07:00
Guohan Lu
52a59f827e [ci]: fix artifact download syntax error for vstest (#8547)
Signed-off-by: Guohan Lu <lguohan@gmail.com>
2021-08-21 14:31:49 -07:00
lguohan
b9d6eb0678 [openssh]: move build dep installation to sonic-slave-buster (#8381)
install build dep causes dpkg lock issue in parallel build

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2021-08-20 16:07:02 +08:00
Judy Joseph
1e81d10b9c sonic-swss and sonic-utilities submodule update
sonic-swss

e892dda Fix warmboot issue PR##8367 (#1866)
9c6023d Mclag enhacements support code changes. (#1331)

sonic-utilities

5465ea0 [MPLS][CLI] added config/show CLI for MPLS interface, MPLS CRM threshold config, updated CLI reference manual
3bac779  mclag enhancements as per HLD at Azure/SONIC#596 (#1138)
2021-08-19 23:15:33 -07:00
Praveen-Brcm
44a2cd8b1a MCLAG enhacements ICCPd initial code commit (#4819)
* MCLAG enhacements ICCPd initial code commit
* Resolving the merge conflicts with orighin
* L3 MCLAG Enhancements and Unique IP Changes.
* Addressed review comments

Co-authored-by: Tapash Das <tapash.das@broadcom.com>
2021-08-19 22:14:09 -07:00
richardyu
debe310c66 PTF adds unittest-xml-reporting (#8417)
Co-authored-by: richardyu-ms <richard.yu@microsoft.com>
2021-08-19 21:49:53 -07:00
Judy Joseph
c95a9d1db7 Update sonic-platform-common with following commits
1d3a810 [python coverage] fix result color bar (#202)
 3f7b359 Add a template function that returns list of asics on module (#185)
 abc2709 Fix decode error when parsing EEPROM fields (#199)
 789b41e Load interval from thermal_policy.json (#178)
 540ed1c Fix Xcvrd crash due to invalid key access in type_of_media_interface, host_electrical_interface, connector_dict (#206)
 716caf8 Unifying the platform api for get_pcie_aer_stats with PcieBase (#197)

Update sonic-utilities with following commit

 3f3974e [show priority-group drop counters] Add user info output when user want to check PG counters and polling are disabled (#1678)
 16606de Global and Interface commands for IPv6 Link local address enhancements (#1159)
2021-08-19 21:33:22 -07:00
Judy Joseph
cbca676c2b Update sonic-swss module with the following commits
0dcb2b6 Open record file in append mode (#1845)
03ce2ee [vnet/vxlan] Add support of multiple mappers for the VxLAN tunnel (#1843)
c5e90ab VOQ: Nexthop for remote VOQ LC should be created on inband OIF. (#1823)
834c5c8 Td2: Reclaim buffer from unused ports (#1830)
a5ad55c [Dynamic Buffer Calc] Bug fix: Don't create lossless buffer profile for active ports without speed configured (#1822)
f50368f [cfgmgr] Update Makefile.am to consume lib zmq (#1865)
2021-08-17 19:38:01 -07:00
Stepan Blyshchak
752117875c [sonic_debian_extension.j2] export DOCKER_HOST so that clients can use it to connect to dockerd (#8398)
Use DOCKER_HOST. Every client including docker command and python docker API uses this environment variable to connect to dockerd.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2021-08-14 17:51:51 -07:00
Guohan Lu
251c04c24f [build]: Fix docker pull on armhf platform
armhf build uses native dockerd

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2021-08-14 17:49:17 -07:00
Judy Joseph
e0f72470bf Update to sonic-swss-202106 branch, and incldue the following commit
97a108f Code changes to support IPv6 Link local enhancements (#1463)
2021-08-10 11:25:47 -07:00
lguohan
b65846ad00 [build]: add debug info for dpkg frontend lock (#8375)
print out the process that hold the dpkg frontend lock.

Signed-off-by: Guohan Lu <lguohan@gmail.com>
2021-08-08 20:42:18 -07:00
Neetha John
c6a3a58cf7 Revert "Revert "Update default cable len to 0m for TD2"" (#8354)
* Update default cable len to 0m for TD2 (#8298)
* Update sonic-cfggen tests with the correct cable len

Signed-off-by: Neetha John <nejo@microsoft.com>

As part of the buffer reclamation efforts for TD2, setting the default cable len to 0m which means unused ports will have a cable len of 0m.

Why I did it
To align with the changes in Azure/sonic-swss#1830

How to verify it
- With the default cable len set to 0m and the associated changes in swss, CABLE_LENGTH table had '0m' set for unused ports and accordingly more space was reserved for the shared pool
- Cfggen tests passed with the cable len update
2021-08-06 20:54:40 -07:00
Arun Saravanan Balachandran
a6b843c035 DellEMC: Add pcie.yaml for Z9332f (#8329)
Why I did it
To support "pcied" and "pcieutil" commands in DellEMC Z9332f.

How I did it
Add 'pcie.yaml' in device/dell/[PLATFORM]/ directory.

How to verify it
Execute "pcieutil check" command.
Logs: UT_logs.txt
2021-08-06 20:54:24 -07:00
Sujin Kang
c8db8d266a [pmon]: Enable Autorestart of the daemons in PMON for unexpected exit cases (#8326)
Remove the daemon list from the critical_process which prevent the PMON
from restarting when the individual daemon crashes.
2021-08-06 20:54:08 -07:00
jusherma
356c3d4e83 [build] Always use -j1 for libsnmp to avoid race condition (#8324)
I have been seeing intermittent (~40%) build failures with the same error described in PR https://github.com/Azure/sonic-buildimage/pull/6592, even with that fix present

```
/usr/bin/ld: mibgroup/ip-forward-mib/ipCidrRouteTable/.libs/ipCidrRouteTable_interface.o: file not recognized: file truncated
...
libtool:   error: 'mibgroup/ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface.lo' is not a valid libtool object
make[5]: *** [Makefile:1020: libnetsnmpmibs.la] Error 1
make[5]: *** Waiting for unfinished jobs....
```

#### How I did it

Use `-j1` for the libsnmp build regardless of the value of `$(MULTIARCH_QEMU_ENVIRON)`

#### How to verify it

Performed 10 builds of the libsnmp target (`target/debs/buster/libsnmp-base_5.7.3+dfsg-5_all.deb`) with and without this change. Without the change, hit the error 40% of the time. With the change did not see the error at all

Signed-off-by: Justin Sherman <jusherma@cisco.com>
2021-08-06 20:53:54 -07:00
DavidZagury
03da44aea6 [Mellanox][Pcie] Fix issue on pcied with an id that contains only decimal digits was treated as a decimal number (#8309)
A device that contains only decimal digits was mistreated as a decimal integer resulting in failure to find it in the id to bus map.
2021-08-06 20:53:41 -07:00
VenkatCisco
8093ab2024 Platform/cisco-8000 module for sonic-buildimage (#8172)
Why I did it
Update Makefile, so it does the following:
For a given platform, verify if platform/checkout/.ini exists and hence run the platform/checkout/template.j2. This allows platform code to be checked out during the 'make configure' stage.

How I did it
git clone git@github.com:Azure/sonic-buildimage.git
mkdir platform/cisco-8000

make init
make configure PLATFORM=cisco-8000
make all
2021-08-06 20:42:10 -07:00
Aravind Mani
402b0732ff Dell S6100: Monitor serial-getty service (#8304)
Why I did it
serial-getty service exited in Dell S6100 device randomly.

How I did it
Added serial-getty to monit services.

How to verify it
Stop serial-getty in ssh session and check whether the service restarts or not.
2021-08-06 20:38:59 -07:00
Aravind Mani
17b22a8fba DellEMC: Z9332f platform API changes (#8258)
Why I did it
platform test suite failed for few API's in DellEMC Z9332f platform.

How I did it
Modified the API's to return the expected values in the script.

How to verify it
Run platform test suite after making the changes.
2021-08-06 20:38:41 -07:00
Christian Svensson
e40948f98e [DellEmc] Fix port lanes for 10G ports on alternative S5232 SKUs (#8208)
Backport the fix (444cede11) that was made for the default SKU to the alternative SKUs.

Signed-off-by: Christian Svensson <blue@cmd.nu>
2021-08-06 20:38:25 -07:00
Stepan Blyshchak
652ab3f426 [hostcfgd] differentiate between UnitFileState and UnitFilePreset (#8169)
It can be that service is not enabled but UnitFilePreset=enabled (case
for Application Extension):

```
    Loaded: loaded (/lib/systemd/system/cpu-report.service; disabled; vendor preset: enabled)
```

This makes existing logic skip enabling the service.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2021-08-06 20:34:18 -07:00
Judy Joseph
546dab2b8b 9949c48 [vslib] implement query for SAI_DEBUG_COUNTER_TYPE enum values (#842)
e385212 [MPLS] Minor tweaks to VS for MPLS support for CRM polling of MPLS In-segments and NHs.
c163238 Add cisco-8000 checks to syncd_init_common (#839)
2021-08-06 20:28:24 -07:00
DavidZagury
6e5df43577 [sonic-platform-daemons] Update submodule (#8165)
To include:
> 66e7817 2021-07-13 [pcied] Fix pcied failure to load due to 'pcied NameError: name 'self' is not defined' (Azure/sonic-platform-daemons#198) 
> 3df6757 2021-07-08 [ci] fix result color bar in the code coverage report (Azure/sonic-platform-daemons#196)
2021-08-06 19:50:27 -07:00
vdahiya12
7855fa7d3e [sonic-platform-daemons] submodule update (#8076)
2d2749a [xcvrd] add debug logs for y_cable change events/probes (#195)
b2c6102 Collect asic info and store in CHASSIS_STATE_DB (#175)

Signed-off-by: vaibhav-dahiya <vdahiya@microsoft.com>
2021-08-06 19:50:24 -07:00
Junchao-Mellanox
47ca5fe382 [submodule] Update submodule pointer for swss (#8128)
#### Why I did it
Update submodule pointer for swss to include recent changes

4f1d726 [portsorch] fix errors when moving port from one lag to another. (#1797)
ae44701 [orchagent] Put port configuration to APPL_DB according to autoneg mode (#1769)
5295f91 Add failure handling for SAI get operations (#1768)
7c7c451 Revert recirc port change (#1813)
5528ebf Cleanup code (#1814)
2021-08-06 19:39:20 -07:00
shlomibitton
d1f246cbb0 Update sonic-swss submodule (#8057)
[flex-counters] Delay flex counters stats init for faster boot time (https://github.com/Azure/sonic-swss/pull/1803)
[mirror] Detach session dst ip from route orch LPM calculation regardless of session status at session CONFIG DB removal (https://github.com/Azure/sonic-swss/pull/1800)
[Dynamic Buffer Calc] Support dynamic buffer calculation on top of port auto negotiation (https://github.com/Azure/sonic-swss/pull/1762)
[neighorch] VOQ encap index change handling (https://github.com/Azure/sonic-swss/pull/1729)
[neighorch] Mac for voq neighbors in VS platforms (https://github.com/Azure/sonic-swss/pull/1724)
[acl mirror action] Mirror session ref count fix at acl rule attachment (https://github.com/Azure/sonic-swss/pull/1761)
2021-08-06 19:39:17 -07:00
Judy Joseph
eee50a1ccc Update sonic-utilities submodule
8b149a3 Load the  database global_db only once for show cli  (#1712)
cd0e560 [config][interface][speed] Fixed the config interface speed in multiasic issue (#1739)
b595ba6 [fast-reboot] revert the change of disabling counter polling before fast-reboot (#1744)
8518820 [minigraph] Donot enable PFC watchdog for MgmtTsToR (#1734)
2213774 [CLI][show][bgp] Fix the show ip bgp network command (#1733)
3526507 [configlet] Python3 compatible syntax for extracting a key from the dict (#1721)
5b56b97 [sonic_installer] don't print errors when installing an image not supporting app ext (#1719)
a581955 [LLDP] Fix lldpshow script to enable display multiple MAC addresses on the same remote physical interface (#1657)
2021-08-06 19:17:05 -07:00
VenkatCisco
1fd10401c0 [baseimage]: add j2cli to sonic_debian_extension.j2 (#8019)
j2cli provides access to jinja library. cisco platform.py requires j2cli to handle jinja template configuration files.
2021-08-06 17:32:44 -07:00
VenkatCisco
37c0638c9e [pmon]: add python3-jsonschema pmon (#8018)
jsonschema is an implementation of JSON Schema for Python .

Signed-off-by: Venkat Garigipati <venkatg@cisco.com>
2021-08-06 17:32:35 -07:00
Vivek Reddy
d9d4323707 autorestart inside restapi docker is disabled (#8006)
Fix issue with critical process in the restapi docker restarting immediately after getting killed
Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
2021-08-06 17:32:31 -07:00
Wirut Getbamrung
b0782fb17e [device/celestica]: Fix failed test cases of Haliburton platform API (#7579)
- Why I did it
To fix failed test cases of Haliburton platform APIs that found on platform_tests script
- How I did it
Add device/celestica/x86_64-cel_e1031-r0/platform.json
Update functions to support python3.7
Add more functions follow latest sonic_platform_base
Fix the bug
- How to verify it
Run platform_tests script

Signed-off-by: Wirut Getbamrung [wgetbumr@celestica.com]
2021-08-06 17:30:35 -07:00
Stepan Blyshchak
a10f1f22de [SONiC Application Extension] support warm/fast reboot for extension packages (#7286)
#### Why I did it

I made this change to support warm/fast reboot for SONiC extension packages as per HLD Azure/SONiC#682.

#### How I did it

I extended manifest.json.j2 with new warm/fast reboot related fields and also extended sonic_debian_extension.j2 script template to generate the shutdown order files for warm and fast reboot.
2021-08-06 17:29:12 -07:00
Stepan Blyshchak
790bdded96 [dhcp-relay] make DHCP relay an extension (#6531)
- Why I did it
Make DHCP relay docker an extension. DHCP relay now carries dhcp relay commands CLI plugin and has a complete manifest.
It is installed as extension if INCLUDE_DHCP_REALY is set to y.

DEPENDS on #5939

- How I did it
Modify DHCP relay docker makefile and dockerfile. Make changes to sonic_debian_extension.j2 to install sonic packages.
I moved DHCP related CLI tests from sonic-utilities to DHCP relay docker.
This PR introduces a way to write a plugin as part of docker image and run the tests from cli-plugin-tests directory under docker directory.
The test result is available in target/docker-dhcp-relay.gz.log:

[ REASON ] :      target/docker-dhcp-relay.gz does not exist   NON-EXISTENT PREREQUISITES: docker-start target/docker-config-engine-buster.gz-load target/python-wheels/sonic_utilities-1.2-py3-none-any.whl-in
stall target/debs/buster/python3-swsscommon_1.0.0_amd64.deb-install
[ FLAGS  FILE    ] : []
[ FLAGS  DEPENDS ] : []
[ FLAGS  DIFF    ] : []
============================= test session starts ==============================
platform linux -- Python 3.7.3, pytest-3.10.1, py-1.7.0, pluggy-0.8.0 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /sonic/dockers/docker-dhcp-relay/cli-plugin-tests, inifile:
plugins: cov-2.6.0
collecting ... collected 10 items

test_config_dhcp_relay.py::TestConfigVlanDhcpRelay::test_plugin_registration PASSED [ 10%]
test_config_dhcp_relay.py::TestConfigVlanDhcpRelay::test_config_vlan_add_dhcp_relay_with_nonexist_vlanid PASSED [ 20%]
test_config_dhcp_relay.py::TestConfigVlanDhcpRelay::test_config_vlan_add_dhcp_relay_with_invalid_vlanid PASSED [ 30%]
test_config_dhcp_relay.py::TestConfigVlanDhcpRelay::test_config_vlan_add_dhcp_relay_with_invalid_ip PASSED [ 40%]
test_config_dhcp_relay.py::TestConfigVlanDhcpRelay::test_config_vlan_add_dhcp_relay_with_exist_ip PASSED [ 50%]
test_config_dhcp_relay.py::TestConfigVlanDhcpRelay::test_config_vlan_add_del_dhcp_relay_dest PASSED [ 60%]
test_config_dhcp_relay.py::TestConfigVlanDhcpRelay::test_config_vlan_remove_nonexist_dhcp_relay_dest PASSED [ 70%]
test_config_dhcp_relay.py::TestConfigVlanDhcpRelay::test_config_vlan_remove_dhcp_relay_dest_with_nonexist_vlanid PASSED [ 80%]
test_show_dhcp_relay.py::TestVlanDhcpRelay::test_plugin_registration PASSED [ 90%]
test_show_dhcp_relay.py::TestVlanDhcpRelay::test_dhcp_relay_column_output PASSED [100%]

=============================== warnings summary ===============================
/usr/local/lib/python3.7/dist-packages/tabulate.py:7
  /usr/local/lib/python3.7/dist-packages/tabulate.py:7: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working
    from collections import namedtuple, Iterable

-- Docs: https://docs.pytest.org/en/latest/warnings.html
==================== 10 passed, 1 warnings in 0.35 seconds =====================
2021-08-06 17:28:55 -07:00
Akhilesh Samineni
323483cf9f FRR patches to support IPv6 Link local enhancements. (#5584)
As per HLD - Azure/SONiC#625

FRR Patches:

0009-Link-local-scope-was-not-set-while-binding-socket-for-bgp-ipv6-link-local-neighbors.patch
Files modified : bgpd_network.c and bgpd/bgp_zebra.c
Fix for : Link local scope was not set while binding socket with local address causing socket errors for bgp ipv6 link local neighbors.

0010-VRF-interface-lookup-was-still-done-in-the-default-vrf.patch
Files modified : staticd/static_zebra.c
Fix for : VRF interface lookup was still done in the default-vrf which was causing the interface lookup to fail. Due to this static-route pointing to link-local was not getting installed.

0011-Changes-to-send-ipv6-link-local-address-as-nexthop-to-fpmsyncd.patch
Files modified : zebra/zebra_fpm_netlink.c
Fix for : Made changes to send ipv6 address as nexthop to fpmsyncd.

Depends on:
Azure/sonic-utilities#1159
Azure/sonic-swss#1463

Signed-off-by: Akhilesh Samineni akhilesh.samineni@broadcom.com
2021-08-06 17:26:32 -07:00
judyjoseph
f67167ecaf [broadcom]: Broadcom SAI update to 5.0.0.6 (#8250)
Move SAI libraries for Broadcom for XGS and DNX families to 5.0.0.6

Included fixes 

```
CS00012195263 | [4.3][5.0][TD3]   Packets with broken IP headers received on VLAN interface are not dropped
CS00012192505 | [4.3] Re-encap   IPinIP decap packets
CS00012192502 | [3.7.5.2] Start   LED shell script execution on all DELL based platforms causing all ports   flapping on SAI 3.7.5.2
CS00012191363 | [4.3] Support   of memscan thread to detect TCAM parity error
CS00012190932 | [4.3]   SAI_PORT_PFC_X_RX_PKTS incremented incorrectly even when no PFC frames are   received on that priority
CS00012183901 | [4.3][WARMBOOT]   WARMReboot with active traffic causes port flap reported during warm reboot
CS00011382163 | [4.4] Support   warm-boot from 3.5 to 4.3
CS00011318937 | [4.3] MACSec   SAI Support for Jericho2c+
CS00011318926 | [4.3] Provide   SAI support for Jericho2c+
CS00012195263 | [4.3][5.0][TD3]   Packets with broken IP headers received on VLAN interface are not dropped
CS00012195261 | [4.3][5.0][TD3]VLAN   tagged IP packet received on untagged interface being routed instead of   dropped
CS00012183901 | [4.3][WARMBOOT]   WARMReboot with active traffic causes port flap reported during warm reboot
CS00012196056 | [4.3.3.8][WARMBOOT]   syncd[2584]: segfault at 5616ad6c3d80 ip 00007f61e0c6bc65 sp 00007fff0c5a7a90   error 4 in libsai.so.1.0[7f61e0a95000+3cd8000]
CS00012195262 | [4.3][5.0][TD3]   Malformed IP packet(missing IP header) received on a VLAN Interface is   flooded to other LVAN members instead of being dropped
CS00012195956 | [4.3.3.8]   [TD3]Syncd Crash at brcm_sai_tnl_mp_create_tunnel()

PR 4346163: Add support for AN/LT
```
2021-08-03 23:53:46 -07:00
mprabhu-nokia
2adf4e9026 [systemd] ASIC status based service bringup on VOQ chassis (#7477)
Changes to allow starting per asic services like swss and syncd only if the platform vendor codedetects the asic is detected and notified. The systemd services ordering we want is database->database@->pmon->swss@->syncd@->teamd@->lldp@
There is also a requirement that management, telemetry, snmp dockers can start even if all asic services are not up.

Why I did it
For VOQ chassis, the fabric cards will have 1-N asics. Also, there could be multiple removable fabric cards. On the supervisor, swss and syncd containers need to be started only if the fabric-card is in Online state and respective asics are detected by the kernel. Using systemd, the dependent services can be in inactive state.

How I did it
Introduce a mechanism where all ASIC dependent service wait on its state to be published via PMON to REDIS. Once the subscription is received, the service proceeds to create respective dockers.
For fixed platforms, systemd is unchanged i.e. the service bring up and docker creation happens in the start()/ExecStartPre routine of the .sh scripts.
For VOQ chassis platform on supervisor, the service bringup skips docker creation in the start() routine, but does it in the wait()/ExecStart routine of the .sh scrips.
Management dockers are decoupled from ASIC docker creation.
2021-08-03 23:52:51 -07:00
DavidZagury
aa92d480b3 [Mellanox][pcied] Ignore bus on pcie.yaml for Mellanox switches (#8063)
Why I did it
BIOS upgrade on rare cases cannot guarantee bus value remain the same on every BIOS release. Ignoring this field in order for pcied not to fail but still verify device id in a different way. The solution is future proof and will not require changes in code when new BIOS version is available

How I did it
Since bus is not a fixed value (it is determined by the bios version) we are ignoring this field, and instead checking if there is a device that match on all other fields that and in addition has a matching device id.

How to verify it
Verify no errors or failures in pcied on different BIOS version with the same code base.
2021-08-03 23:50:49 -07:00
vganesan-nokia
8c599882da [voq][minigraph] Add admin_status attribute for inband interface (#8050)
Why I did it
In the config_db.json generated by minigraph "admin_status" attribute is missing for the VOQ inband interface port in the PORT table.

How I did it
Changes done to add admin_status attribute for voq inband interface port, if it exists in the PORT table keys.
2021-08-03 23:49:00 -07:00
vganesan-nokia
2fe3d6231f [multiasic][voq][bgpconf] Fix for the issue of same BGP router id in all asics (#8049)
For multiasic, the back end asics use ip addresss of Loopback4096 for BGP router id. In VOQ multi-asic chassis there are no back end asics. All the asics are front end and the iBGP connections are established via Ethernet-IB of asics. Since these asics are not designated as BackEnd, the ip address of interface Loopback0 is used as BGP router id. Since the ip address of Loopback0 is same for all the asics in the line card, same router id is used for voq iBGP configurations and hence the iBGP connections are not established. Changes are done to fix this
2021-08-03 23:48:50 -07:00
Dror Prital
be4813183a Update SDK\FW to version 4.4.3222\2008.3224 (#8247)
*Update SDK\FW Version to 4.4.3222\2008.3224.

Signed-off-by: Dror Prital <drorp@nvidia.com>
2021-08-03 23:47:09 -07:00
Dror Prital
397904f972 [Mellanox] Update SAI to version 1.19.1 (#8245)
- Why I did it
Update SAI version to 1.19.1. The following was changed:
1. Update license
2. Do not remove and re-apply the same SDK mirror session on LAG
3. FEC fix to support all speeds
4. Improve PG counters performance
5. Fix number of switch priorities for port mirroring

Signed-off-by: Dror Prital <drorp@nvidia.com>
2021-08-03 23:45:48 -07:00
Vivek Reddy
69b008d111 Update SAI (#8143)
Fix saisdkdump + Fix port dropped pkts counters
Co-authored-by: Vivek Reddy Karri <vkarri@nvidia.com>
2021-08-03 23:45:36 -07:00
tomer-israel
94ee949de2 [PMON] [Mellanox] fix syseepromd issue on simx (#8131)
Avoid initializing sfp/thermal/components/fan/psu/leds on simx and create vpd_info file on hw_management when we use mellanox simulator platform

- Why I did it
this is a fix for issue in mellanox simulator platforms. the syseepromd failed on the pmon docker. also "decode-syseeprom" failed also

- How I did it
before initializing thermal/components/fan/psu/leds --> check if we are running on simx
creating the vpd_info on the hw_management folder.

- How to verify it
check if syseepromd process was loaded properly on the pmon docker.
decode-syseeprom is working well without errors/warnings
2021-08-03 23:39:19 -07:00
tomer-israel
c39ced537e [WARM-REBOOT] fix issue of watchdog on simx when executing warm-reboot command (#8132)
- Why I did it
to prevent python exception error when executing warm-reboot command on mellanox simulator platform

- How I did it
return None on the watchdog python script on cases that watchdog file is not exist

- How to verify it
warm-reboot is running well without the python error. error message will appear on log on these cases.
in order to avoid this error message we can simulate the watchdog on mellanox simulator platform
2021-08-03 23:38:37 -07:00
judyjoseph
fe24a4da2b Update XGS and DNX SAI to 5.0.0.4 and additional flags needed in saibcm-modules. (#8160)
Why I did it
Update XGS and DNX SAI to 5.0.0.4 and additional flags needed in saibcm-modules

The following CSP's are merged in 5.0.0.4

CS00012182148 [4.3] Rate Limit Parity error message to syncd/sonic.
CS00012178692 [4.3] ACL drops counted as interface drops
CS00012183901 [4.3][WARMBOOT] WARMReboot with active traffic causes port flap reported during warm reboot
CS00012070713 [SAI 4.3 , DNX, 8690] Everflow ACL creation fails - brcm_sai_dnx_create_acl_table API fails, with unknown attribute error.
CS00012023263 [4.4] TD3/TH2 : Support 4 lossless queues(2 SW PFCWD and 2 HW PFCWD)
CS00012019578 [4.4] Pre FEC bit-error rate (BER) - DNX and XGS (TD and TH 50/100G)

How I did it
Changes the various make files to include the new SAI release + update the opennsl-modules.
2021-08-03 23:37:58 -07:00
jusherma
fd564b05fa [build]: Allow build-time specification of alternative docker registries (#8134)
Why I did it
Allows users to host their own local docker registries and utilize them via the REGISTRY_SERVER and REGISTRY_PORT environmental variables

How I did it
Only set REGISTRY_SERVER and REGISTRY_PORT in rules/config if they are unset.

How to verify it
Export environmental variables REGISTRY_SERVER and REGISTRY_PORT to an alternative docker registry. Export the environmental variable ENABLE_DOCKER_BASE_PULL to y.
Ensure the required sonic-slave docker images are not present locally, but are available in the docker registry
Execute make init and make configure
Confirm that the appropriate docker images were pulled from the appropriate docker registry, and not built locally
2021-08-03 23:37:24 -07:00
Dror Prital
fee6a6292c [Mellanox] Update FW version to 2008.3218 (#8079)
Update FW version to 2008.3218, fixing the following issues:
- 50G/100G links that are operationally down before warm-reboot are not coming up after warm-reboot
- 50G/100G links with admin shut / no shut commands are not coming up after warm-reboot

Signed-off-by: Dror Prital <drorp@nvidia.com>
2021-08-03 23:36:07 -07:00
Dror Prital
e229ec10c4 [Mellanox] Update SAI and SDK\FW ver. 4.4.3216\2008.3216(#8055)
- Why I did it
* For SAI - Advance to adopt the following fixes:
1. Better handle not implement object type for resource availability
2. Fix ext dump when saidump is triggered from 2nd process (saidump utility) other than main adapter host (syncd in SONiC)

* For SDK\FW:
- Changes and new features:
1. Added support in SN4600C systems for new module Finisar ET7402-CWDM4 (100G CWDM4 QSFP28 1310nm SM 2KM).
2. Added support for new module MMS1W50-HM (2km transceiver FR4) for 200GbE
3. Improved performance of "per-port-buffer" counters
4. Added support for Kernel 5.10

- Bugs fixes:
On rare occasions (0.5%), in SN4600C systems, when using 100GbE NRZ mode and Fastboot flow, the link up time may take up to 10 seconds

Signed-off-by: Dror Prital <drorp@nvidia.com>
2021-08-03 23:35:31 -07:00
shlomibitton
56f9464497 [dhcp_relay] DHCP relay support for IPv6 (#7772)
Why I did it
Currently SONiC use the 'isc-dhcp-relay' package to allow DHCP relay functionality on IPv4 networks only.
This will allow the IPv6 functionality along the IPv4 type.

How I did it
Edit supervisord template to start DHCPv6 instances when configured to do so on Config DB.
Align cfg unit test to the new change.
Add DHCPv6 relay minigraph parsing support and a suitable t0 topology xml file for UT.

How to verify it
Configure DHCPv6 agents as described on the feature HLD: Azure/SONiC#765
Test it with real client/server with IPv6 or use the dedicated automatic test: Azure/sonic-mgmt#3565
Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>

* Split docker-dhcp-relay.supervisord.conf.j2 template into several files for easier code maintenance
2021-08-03 23:01:52 -07:00
shlomibitton
a54a3126f6 Add DHCPv6 to minigraph.py and improve unit test (#8125)
Why I did it
Allow deploying DHCPv6 servers following the implementation PR: #7772

How I did it
Add DHCPv6 to minigraph.py on sonic-cfggen tool and improve the unit test to cover this change.

How to verify it
Try to deploy a switch with DHCPv6 servers.

Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
2021-08-03 23:01:48 -07:00
shlomibitton
5cb4ddfff0 [dhcp_relay] Enhance DHCP monitor application to support DHCPv6 (#8060)
#### Why I did it

Enhance DHCP monitor application following the implementation PR: https://github.com/Azure/sonic-buildimage/pull/7772

#### How I did it

Add the support for monitoring DHCPv6 packets.

#### How to verify it

Install an image with this PR and the implementation PR.
2021-08-03 23:01:30 -07:00
shlomibitton
88e94d3957 [dhcp_relay] Disable dhcp_relay for ToRRouter switches type by the feature manager (#7789)
- Why I did it
Currently dhcp packets are disabled by the COPP manager for non ToRRouter type switches.
Even if the feature is enabled, DHCP packets wont hook to the CPU since the COPP manager will not trap this packets.
This change is to disable dhcp_relay by default for non ToRRouter switches from init_cfg.json.
With this approach, if the user want to enable the feature for non ToRRouter switches, manual enablement is required by the 'feature' configuration.
This is to keep the current approach for MSFT production issue with dhcp relay for non ToRRouter switched and allow the user to decide if to use it or not.

- How I did it
Configure dhcp_relay 'disabled' by default on init_cfg.json for non ToRRouter switches.
Remove the exclusion of dhcp packets on copp_cfg.json

- How to verify it
Enable dhcp_relay feature on a non ToRRouter switch.
Unit-tests modified so the default values on mocked CONFIG DB in 'test_vectors.py' for dhcp_relay will be 'disabled'.
This is by the change for 'init_cfg.json.j2'.
For ToRRouter the state will change from 'disabled' to 'enabled'.
Another test case added for a 'ToR' switch type, this is to test the state is 'enabled' if the user configured it to be so.
2021-08-03 23:01:24 -07:00
shlomibitton
0f3657fc02 [hostcfgd] Enhance hostcfgd to check feature state and run less system calls (#7987)
Why I did it
Currently hostcfgd is implemented in a way each feature which is enabled/disabled triggering execution of systemctl enable/unmask commands which eventually trigger 'systemctl daemon-reload' command.
Each call like this cost 0.6s and overall add a overhead of ~12 seconds of CPU time.
This change will verify the desired state of a feature and the current state of this feature on systemd and trigger a system call only when must.

How I did it
Check each feature status on systemd before executing a system call to enable and reload the systemctl daemon.

How to verify it
Build an image with this change and observe less system calls are executed.

Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
2021-08-03 23:01:11 -07:00
Shilong Liu
7916276330 Enable reproducible build in base docker image sonic-slave-* (#8116) 2021-07-13 13:16:01 -07:00
Shilong Liu
0d2b82d38c Bug fix for reproducible build (#8061) 2021-07-13 13:15:53 -07:00
Stepan Blyshchak
c200a2a464 [docker-teamd]: Increase teammgrd timeout to allow graceful shutdown. (#7662) (#8045)
NOTE: This is cherry-pick from 1911/2012 to master.

- Why I did it
To fix LAG IP configuration race

- How I did it
Extended timeout for teammgrd

- How to verify it
Add >80 router LAGs. Do config reload

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
2021-07-13 13:15:46 -07:00
Stepan Blyshchak
16a436c925 [sonic_debian_extension] fix packages.json generation and make the build fail when packages.json is not generated (#8044)
After https://github.com/Azure/sonic-buildimage/pull/7598 the packages.json generation is broken. This change fixes it make the whole build fail in case generation failed.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2021-07-13 13:15:40 -07:00
Shilong Liu
3bd48af7ac Reproducible build support docker image (#8039)
when build docker image, we need a base image. now base image is specified by tag. we can use sha256 to specify docker image.
2021-07-13 13:15:34 -07:00
Shi Su
ed95ec76fa [bgpcfgd] Remove unnecessary dependency for StaticRouteMgr (#8037)
Why I did it
Static route configuration should not depend on BGP_ASN. Remove the dependency on BGP_ASN for StaticRouteMgr.
Fix #8027

How I did it
Check if BGP_ASN field before configuring static route redistribution and wait until BGP_ASN is available to enable static route redistribution.

How to verify it
Add unit test to cover the scenario and verify the functionality on a virtual switch.
2021-07-13 13:12:46 -07:00
VenkatCisco
027b6d1dc5 Support L1 & L3 Config generation in SONiC (#7637)
Why I did it
This provides support for: PR #7074.

How I did it
Extend sonic-config-engine/config_samples.py to provide support for l1 & l3
2021-07-13 12:40:02 -07:00
anamehra
98281c58ca [multi-asic] Fixed systemd-sonic-generator for multi-asic (#7954)
Why I did it

systemd-sonic-generator limits multi-asic unit file instances to 10 (single digit instance number 0 - 10). This limitation needs to be removed to handle more than 10 asics.
MAX_NUM_TARGETS and MAX_NUM_INSTALL_LINES limits to 15 which is not sufficient for systems with more than 15 asics.
Inside get_unit_files(), strcmp produce incorrect results due to non null terminated string being compared.

 Added build UT support for systemd-sonic-generator
2021-07-13 12:39:03 -07:00
xumia
543c0b24f8
Support azure pipelines for 202106 branch (#8118)
Support azure pipelines for 202106 branch
2021-07-09 15:40:40 +08:00
DavidZagury
956d29b958 [sonic-utilities] Update submodule (#8072)
Updates:
888701b [Mellanox] Remove mstdump from Mellanoxs collect dump script ([Azure/sonic-utilities#1706])
4818360 [sonic-package-manager] support warm/fast reboot for extension packages ([Azure/sonic-utilities#1554])
793b847 [show priority-group drop counters] Remove backup with cached PG drop counters after 'config reload' ([Azure/sonic-utilities#1679])
24fe1ac [show][config] support for interface alias for muxcable commands ([Azure/sonic-utilities#1699])
2021-07-09 01:26:46 +00:00
859 changed files with 54228 additions and 10989 deletions

View File

@ -11,32 +11,86 @@ schedules:
displayName: Daily Build
branches:
include:
- 202012
- 20????
exclude:
- 200???
- 201???
- 202006
always: true
resources:
repositories:
- repository: buildimage
type: github
name: sonic-net/sonic-buildimage
ref: master
endpoint: sonic-net
pool: sonicbld
parameters:
- name: 'jobFilters'
type: object
default:
- vs
- barefoot
- broadcom
- centec
- centec-arm64
- generic
- marvell-armhf
- mellanox
stages:
- stage: Prepare
jobs:
- job: Prepare
steps:
- script: |
DEFAULT_MIRROR_URL_PREFIX=http://packages.trafficmanager.net
DEBIAN_TIMESTAMP=$(curl $DEFAULT_MIRROR_URL_PREFIX/snapshot/debian/latest/timestamp)
DEBIAN_SECURITY_TIMESTAMP=$(curl $DEFAULT_MIRROR_URL_PREFIX/snapshot/debian-security/latest/timestamp)
echo "DEBIAN_TIMESTAMP=$DEBIAN_TIMESTAMP, DEBIAN_SECURITY_TIMESTAMP=$DEBIAN_SECURITY_TIMESTAMP"
echo "##vso[task.setvariable variable=DEBIAN_TIMESTAMP;isOutput=true]$DEBIAN_TIMESTAMP"
echo "##vso[task.setvariable variable=DEBIAN_SECURITY_TIMESTAMP;isOutput=true]$DEBIAN_SECURITY_TIMESTAMP"
name: SetVersions
displayName: 'Set snapshot versions'
- stage: Build
dependsOn: Prepare
variables:
CACHE_MODE: none
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS='
- name: CACHE_MODE
value: none
- name: VERSION_CONTROL_OPTIONS
value: 'SONIC_VERSION_CONTROL_COMPONENTS='
- name: SKIP_CHECKOUT
value: true
- name: DEBIAN_TIMESTAMP
value: $[ stageDependencies.Prepare.Prepare.outputs['SetVersions.DEBIAN_TIMESTAMP'] ]
- name: DEBIAN_SECURITY_TIMESTAMP
value: $[ stageDependencies.Prepare.Prepare.outputs['SetVersions.DEBIAN_SECURITY_TIMESTAMP'] ]
- template: .azure-pipelines/template-variables.yml@buildimage
jobs:
- template: azure-pipelines-build.yml
parameters:
buildOptions: '${{ variables.VERSION_CONTROL_OPTIONS }} SONIC_BUILD_JOBS=$(nproc) ENABLE_IMAGE_SIGNATURE=y'
jobFilters: ${{ parameters.jobFilters }}
buildOptions: '${{ variables.VERSION_CONTROL_OPTIONS }} ENABLE_DOCKER_BASE_PULL=n SONIC_BUILD_JOBS=$(nproc) ENABLE_IMAGE_SIGNATURE=y'
preSteps:
- template: .azure-pipelines/template-clean-sonic-slave.yml@buildimage
- checkout: self
submodules: recursive
fetchDepth: 0
path: s
displayName: 'Checkout code'
- script: |
containers=$(docker container ls | grep "sonic-slave" | awk '{ print $1 }')
if [ ! -z "$containers" ]; then
docker container kill $containers || true
sleep 5
echo "DEBIAN_TIMESTAMP=$DEBIAN_TIMESTAMP, DEBIAN_SECURITY_TIMESTAMP=$DEBIAN_SECURITY_TIMESTAMP"
if [ "$MIRROR_SNAPSHOT" == y ]; then
mkdir -p target/versions/default/
echo "debian==$DEBIAN_TIMESTAMP" > target/versions/default/versions-mirror
echo "debian-security==$DEBIAN_SECURITY_TIMESTAMP" >> target/versions/default/versions-mirror
cat target/versions/default/versions-mirror
fi
images=$(docker images 'sonic-slave-*' -a -q)
if [ ! -z "$images" ]; then
docker rmi -f $images
fi
displayName: 'Cleanup sonic slave'
displayName: 'Set snapshot versions'
- stage: UpgradeVersions
jobs:
- job: UpgradeVersions
@ -60,14 +114,14 @@ stages:
default_platform=broadcom
artifacts=$(find $(Pipeline.Workspace) -maxdepth 1 -type d -name 'sonic-buildimage.*' | grep -v "sonic-buildimage.${default_platform}")
echo "artifacts$artifacts"
cp -r $(Pipeline.Workspace)/sonic-buildimage.${default_platform}/versions target/
cp -r $(Pipeline.Workspace)/sonic-buildimage.${default_platform}/target/versions target/
make freeze FREEZE_VERSION_OPTIONS=-r
find files/build/versions
ordered_artifacts=$(echo "$artifacts" | grep -v -E "arm64|armhf" && echo "$artifacts" | grep -E "arm64|armhf")
for artifact in $ordered_artifacts
do
rm -rf target/versions
cp -r $artifact/versions target/
cp -r $artifact/target/versions target/
OPTIONS="-a -d"
[[ "$artifact" == *arm64* || "$artifact" == *armhf* ]] && OPTIONS="-d"
make freeze FREEZE_VERSION_OPTIONS="$OPTIONS"

View File

@ -64,8 +64,8 @@ jobs:
platform_rpc: centec
- name: centec-arm64
pool: sonicbld_8c
timeoutInMinutes: 2160
pool: sonicbld-arm64
timeoutInMinutes: 2880
variables:
PLATFORM_ARCH: arm64
@ -78,8 +78,8 @@ jobs:
dbg_image: yes
- name: marvell-armhf
pool: sonicbld_8c
timeoutInMinutes: 2160
pool: sonicbld-armhf
timeoutInMinutes: 2880
variables:
PLATFORM_ARCH: armhf
@ -97,17 +97,20 @@ jobs:
platform_rpc: nephos
buildSteps:
- template: .azure-pipelines/template-skipvstest.yml@buildimage
- template: .azure-pipelines/template-daemon.yml@buildimage
- bash: |
set -ex
if [ $(GROUP_NAME) == vs ]; then
if [ $(dbg_image) == yes ]; then
make $BUILD_OPTIONS INSTALL_DEBUG_TOOLS=y target/sonic-vs.img.gz && mv target/sonic-vs.img.gz target/sonic-vs-dbg.img.gz
make $BUILD_OPTIONS INSTALL_DEBUG_TOOLS=y target/sonic-vs.img.gz
mv target/sonic-vs.img.gz target/sonic-vs-dbg.img.gz
fi
make $BUILD_OPTIONS target/docker-sonic-vs.gz target/sonic-vs.img.gz target/docker-ptf.gz
else
if [ $(dbg_image) == yes ]; then
make $BUILD_OPTIONS INSTALL_DEBUG_TOOLS=y target/sonic-$(GROUP_NAME).bin && \
mv target/sonic-$(GROUP_NAME).bin target/sonic-$(GROUP_NAME)-dbg.bin
make $BUILD_OPTIONS INSTALL_DEBUG_TOOLS=y target/sonic-$(GROUP_NAME).bin
mv target/sonic-$(GROUP_NAME).bin target/sonic-$(GROUP_NAME)-dbg.bin
fi
if [ $(swi_image) == yes ]; then
make $BUILD_OPTIONS ENABLE_IMAGE_SIGNATURE=y target/sonic-aboot-$(GROUP_NAME).swi
@ -125,3 +128,4 @@ jobs:
make $BUILD_OPTIONS target/sonic-$(GROUP_NAME).bin
fi
displayName: "Build sonic image"
- template: .azure-pipelines/check-dirty-version.yml@buildimage

View File

@ -25,17 +25,21 @@ jobs:
jobFilters: ${{ parameters.jobFilters }}
jobVariables: ${{ parameters.jobVariables }}
preSteps:
- template: cleanup.yml
- ${{ parameters. preSteps }}
- template: .azure-pipelines/cleanup.yml@buildimage
- ${{ parameters.preSteps }}
- script: |
if [ -n "$(CACHE_MODE)" ] && echo $(PLATFORM_AZP) | grep -E -q "^(vs|broadcom|mellanox)$"; then
[ -n "$OVERRIDE_BUILD_OPTIONS" ] && OVERRIDE_BUILD_OPTIONS=$(OVERRIDE_BUILD_OPTIONS)
BUILD_OPTIONS="$(BUILD_OPTIONS) $OVERRIDE_BUILD_OPTIONS"
if [ -n "$(CACHE_MODE)" ] && echo $(PLATFORM_AZP) | grep -E -q "^(vs|broadcom|mellanox|marvell-armhf)$"; then
CACHE_OPTIONS="SONIC_DPKG_CACHE_METHOD=$(CACHE_MODE) SONIC_DPKG_CACHE_SOURCE=/nfs/dpkg_cache/$(PLATFORM_AZP)"
BUILD_OPTIONS="$(BUILD_OPTIONS) $CACHE_OPTIONS"
echo "##vso[task.setvariable variable=BUILD_OPTIONS]$BUILD_OPTIONS"
BUILD_OPTIONS="$BUILD_OPTIONS $CACHE_OPTIONS"
fi
echo $BUILD_OPTIONS
echo "##vso[task.setvariable variable=BUILD_OPTIONS]$BUILD_OPTIONS"
displayName: "Set cache options"
- checkout: self
submodules: recursive
condition: eq(variables.SKIP_CHECKOUT, '')
displayName: 'Checkout code'
- script: |
BRANCH_NAME=$(Build.SourceBranchName)
@ -44,15 +48,20 @@ jobs:
sudo modprobe overlay
sudo apt-get install -y acl
sudo bash -c "echo 1 > /proc/sys/vm/compact_memory"
ENABLE_DOCKER_BASE_PULL=y make PLATFORM=$(PLATFORM_AZP) PLATFORM_ARCH=$(PLATFORM_ARCH) configure
ENABLE_DOCKER_BASE_PULL=y make PLATFORM=$(PLATFORM_AZP) PLATFORM_ARCH=$(PLATFORM_ARCH) $(BUILD_OPTIONS) configure
displayName: 'Make configure'
postSteps:
- script: cp target -r $(Build.ArtifactStagingDirectory)/
displayName: Copy Artifacts
condition: always()
- publish: $(Build.ArtifactStagingDirectory)
artifact: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)'
displayName: "Archive sonic image"
- publish: $(Build.ArtifactStagingDirectory)
condition: failed()
artifact: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)$(System.JobAttempt)'
displayName: "Archive failed sonic image"
- ${{ parameters.postSteps }}
- template: cleanup.yml
- template: .azure-pipelines/cleanup.yml@buildimage
jobGroups: ${{ parameters.jobGroups }}
buildSteps: ${{ parameters.buildSteps }}

View File

@ -0,0 +1,7 @@
variables:
${{ if eq(variables['Build.Reason'],'PullRequest') }}:
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=$([[ "$(System.PullRequest.TargetBranch)" =~ ^20[2-9][0-9]{3}$ ]] && echo deb,py2,py3,web,git,docker)'
${{ elseif ne(variables['Build.SourceBranchName'],'master') }}:
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web,git,docker'
${{ else }}:
VERSION_CONTROL_OPTIONS: ''

View File

@ -0,0 +1,19 @@
pr: none
trigger: none
schedules:
- cron: "0 0 * * *"
displayName: Daily build
branches:
include:
- master
- 202???
resources:
repositories:
- repository: buildimage
type: github
name: sonic-net/sonic-buildimage
ref: master
endpoint: sonic-net
jobs:
- template: .azure-pipelines/template-commonlib.yml@buildimage

View File

@ -1,5 +1,11 @@
steps:
- script: |
set -x
# kill daemon process
ps $(cat /tmp/azp_daemon_kill_docker_pid)
sudo kill $(cat /tmp/azp_daemon_kill_docker_pid)
rm /tmp/azp_daemon_kill_docker_pid
if sudo [ -f /var/run/march/docker.pid ] ; then
pid=`sudo cat /var/run/march/docker.pid` ; sudo kill $pid
fi
@ -11,4 +17,5 @@ steps:
pid=`sudo cat dockerfs/var/run/docker.pid` ; sudo kill $pid
fi
sudo rm -rf $(ls -A1)
condition: always()
displayName: "Clean Workspace"

View File

@ -0,0 +1,124 @@
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
# Build and push sonic-slave-[buster|jessie|stretch] images for amd64/armhf/arm64
resources:
repositories:
- repository: buildimage
type: github
name: sonic-net/sonic-buildimage
ref: master
endpoint: sonic-net
parameters:
- name: arch
type: string
values:
- amd64
- armhf
- arm64
- name: dist
type: string
values:
- bullseye
- buster
- stretch
- jessie
- name: registry_url
type: string
default: sonicdev-microsoft.azurecr.io
- name: registry_conn
type: string
default: sonicdev
- name: pool
type: string
default: sonicbld
values:
- sonicbld
- sonicbld-arm64
- sonicbld-armhf
jobs:
- job: Build_${{ parameters.dist }}_${{ parameters.arch }}
timeoutInMinutes: 360
pool: ${{ parameters.pool }}
steps:
- template: cleanup.yml
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
- template: template-clean-sonic-slave.yml
- ${{ else }}:
- template: .azure-pipelines/template-variables.yml@buildimage
- checkout: self
clean: true
submodules: recursive
- bash: |
set -ex
SLAVE_DIR=sonic-slave-${{ parameters.dist }}
if [ x${{ parameters.pool }} == x"sonicbld" ]; then
if [ x${{ parameters.arch }} == x"amd64" ]; then
SLAVE_BASE_IMAGE=${SLAVE_DIR}
SLAVE_BASE_IMAGE_UPLOAD=${SLAVE_DIR}
elif [ x${{ parameters.pool }} == x"sonicbld" ]; then
SLAVE_BASE_IMAGE=${SLAVE_DIR}-march-${{ parameters.arch }}
SLAVE_BASE_IMAGE_UPLOAD=${SLAVE_DIR}-march-${{ parameters.arch }}
fi
elif [[ x${{ parameters.pool }} == x"sonicbld-armhf" && x${{ parameters.arch }} == x"armhf" ]]; then
SLAVE_BASE_IMAGE=${SLAVE_DIR}
SLAVE_BASE_IMAGE_UPLOAD=${SLAVE_DIR}-armhf
elif [[ x${{ parameters.pool }} == x"sonicbld-arm64" && x${{ parameters.arch }} == x"arm64" ]]; then
SLAVE_BASE_IMAGE=${SLAVE_DIR}
SLAVE_BASE_IMAGE_UPLOAD=${SLAVE_DIR}-arm64
else
echo "do not support build ${{ parameters.arch }} on ${{ parameters.pool }}"
exit 1
fi
if [ x"$(Build.SourceBranchName)" == x"202012" ]; then
BUILD_OPTIONS = 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web,git,docker'
fi
tmpfile=$(mktemp)
echo ${{ parameters.arch }} > .arch
DOCKER_DATA_ROOT_FOR_MULTIARCH=/data/march/docker BLDENV=${{ parameters.dist }} $(BUILD_OPTIONS) make -f Makefile.work sonic-slave-build | tee $tmpfile
SLAVE_BASE_TAG=$(grep "^Checking sonic-slave-base image:" $tmpfile | awk -F ':' '{print $3}')
SLAVE_TAG=$(grep "^Checking sonic-slave image:" $tmpfile | awk -F ':' '{print $3}')
mkdir -p target
docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER/$SLAVE_BASE_IMAGE_UPLOAD:latest
docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER/$SLAVE_BASE_IMAGE_UPLOAD:$SLAVE_BASE_TAG
if [ "$SLAVE_BASE_IMAGE_UPLOAD" != "$SLAVE_DIR" ]; then
docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER/$SLAVE_DIR:latest-${{ parameters.arch }}
docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER/$SLAVE_DIR:$SLAVE_BASE_TAG
fi
set +x
echo "##vso[task.setvariable variable=VARIABLE_SLAVE_BASE_IMAGE]$SLAVE_BASE_IMAGE_UPLOAD"
echo "##vso[task.setvariable variable=VARIABLE_SLAVE_BASE_TAG]$SLAVE_BASE_TAG"
env:
REGISTRY_SERVER: ${{ parameters.registry_url }}
displayName: Build sonic-slave-${{ parameters.dist }}-${{ parameters.arch }}
- task: Docker@2
condition: ne(variables['Build.Reason'], 'PullRequest')
displayName: Upload image
inputs:
containerRegistry: ${{ parameters.registry_conn }}
repository: $(VARIABLE_SLAVE_BASE_IMAGE)
command: push
tags: |
$(VARIABLE_SLAVE_BASE_TAG)
latest
- ${{ if ne(parameters.arch, 'amd64') }}:
- task: Docker@2
condition: ne(variables['Build.Reason'], 'PullRequest')
displayName: Upload image ${{ parameters.dist }}
inputs:
containerRegistry: ${{ parameters.registry_conn }}
repository: "sonic-slave-${{ parameters.dist }}"
command: push
tags: |
$(VARIABLE_SLAVE_BASE_TAG)

View File

@ -3,25 +3,36 @@
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
# Build and push sonic-slave-[buster|jessie|stretch] images for amd64/armhf/arm64
resources:
repositories:
- repository: buildimage
type: github
name: sonic-net/sonic-buildimage
ref: master
endpoint: sonic-net
schedules:
- cron: "0 8 * * *"
- cron: "0 0 * * 0"
displayName: Weekly build
branches:
include:
- master
- 202012
- 202???
always: true
trigger: none
pr:
pr: none
trigger:
batch: true
branches:
include:
- master
- 202???
paths:
include:
- sonic-slave-jessie
- sonic-slave-stretch
- sonic-slave-buster
- sonic-slave-*
- files/build/versions
- Makefile
- Makefile.work
parameters:
- name: 'arches'
@ -33,6 +44,7 @@ parameters:
- name: 'dists'
type: object
default:
- bullseye
- buster
- stretch
- jessie
@ -44,64 +56,28 @@ parameters:
default: sonicdev
stages:
- stage: Build
- stage: Build_in_amd64
jobs:
- ${{ each dist in parameters.dists }}:
- ${{ if endswith(variables['Build.DefinitionName'], dist) }}:
- ${{ each arch in parameters.arches }}:
- job: Build_${{ dist }}_${{ arch }}
timeoutInMinutes: 360
pool: sonicbld
steps:
- template: cleanup.yml
- checkout: self
clean: true
submodules: recursive
- bash: |
set -ex
containers=$(docker container ls | grep "sonic-slave" | awk '{ print $1 }')
if [ ! -z "$containers" ]; then
docker container kill $containers || true
sleep 5
fi
images=$(docker images 'sonic-slave-*' -a -q)
if [ ! -z "$images" ]; then
docker rmi -f $images
fi
SLAVE_DIR=sonic-slave-${{ dist }}
if [ x${{ arch }} == x"amd64" ]; then
SLAVE_BASE_IMAGE=${SLAVE_DIR}
else
SLAVE_BASE_IMAGE=${SLAVE_DIR}-march-${{ arch }}
fi
tmpfile=$(mktemp)
echo ${{ arch }} > .arch
DOCKER_DATA_ROOT_FOR_MULTIARCH=/data/march/docker BLDENV=${{ dist }} make -f Makefile.work sonic-slave-build | tee $tmpfile
SLAVE_BASE_TAG=$(grep "^Checking sonic-slave-base image:" $tmpfile | awk -F ':' '{print $3}')
SLAVE_TAG=$(grep "^Checking sonic-slave image:" $tmpfile | awk -F ':' '{print $3}')
mkdir -p target
docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER/$SLAVE_BASE_IMAGE:latest
docker tag $SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG $REGISTRY_SERVER/$SLAVE_BASE_IMAGE:$SLAVE_BASE_TAG
set +x
echo "##vso[task.setvariable variable=VARIABLE_SLAVE_BASE_IMAGE]$SLAVE_BASE_IMAGE"
echo "##vso[task.setvariable variable=VARIABLE_SLAVE_BASE_TAG]$SLAVE_BASE_TAG"
env:
REGISTRY_SERVER: ${{ parameters.registry_url }}
displayName: Build sonic-slave-${{ dist }}-${{ arch }}
- task: Docker@2
displayName: Upload image
inputs:
containerRegistry: ${{ parameters.registry_conn }}
repository: $(VARIABLE_SLAVE_BASE_IMAGE)
command: push
tags: |
$(VARIABLE_SLAVE_BASE_TAG)
latest
- template: .azure-pipelines/docker-sonic-slave-template.yml@buildimage
parameters:
pool: sonicbld
arch: ${{ arch }}
dist: ${{ dist }}
${{ if ne(arch, 'amd64') }}:
march: _march_${{ arch }}
- stage: Build_native_arm
dependsOn: []
jobs:
- ${{ each dist in parameters.dists }}:
- ${{ if endswith(variables['Build.DefinitionName'], dist) }}:
- ${{ each arch in parameters.arches }}:
- ${{ if ne(arch, 'amd64') }}:
- template: .azure-pipelines/docker-sonic-slave-template.yml@buildimage
parameters:
pool: sonicbld-${{ arch }}
arch: ${{ arch }}
dist: ${{ dist }}
march: _${{ arch }}

View File

@ -18,7 +18,9 @@ stages:
- stage: Build
pool: sonicbld
variables:
CACHE_MODE: cache
- name: CACHE_MODE
value: cache
- template: azure-pipelines-repd-build-variables.yml
jobs:
- template: azure-pipelines-build.yml
parameters:

View File

@ -0,0 +1,94 @@
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
schedules:
- cron: "0 8 * * *"
displayName: Daily midnight build
branches:
include:
- master
- 202012
always: true
trigger: none
pr: none
resources:
repositories:
- repository: cisco-8000
type: github
name: Cisco-8000-sonic/platform-cisco-8000
endpoint: cisco-connection
variables:
- group: SONIC-AKV-STROAGE-1
- name: StorageSASKey
value: $(sonicstorage-SasToken)
stages:
- stage: Build
pool: sonic
variables:
CACHE_MODE: wcache
SKIP_CHECKOUT: true
TERM: ''
PACKAGE_URL: "https://sonicstorage.blob.core.windows.net/packages"
jobs:
- template: azure-pipelines-build.yml
parameters:
buildOptions: 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) ${{ variables.VERSION_CONTROL_OPTIONS }}'
preSteps:
- checkout: self
submodules: recursive
path: s
displayName: 'Checkout code'
- checkout: cisco-8000
submodules: recursive
path: s/platform/cisco-8000
displayName: 'Checkout cisco-8000'
- script: |
cisco_ref=$(cat platform/checkout/cisco-8000.ini | grep '^ref=' | cut -d= -f2)
echo "The cisco 8000 release version is $cisco_ref"
echo "##vso[task.setvariable variable=cisco.ref]$cisco_ref"
displayName: 'Export cisco release version'
- task: DownloadGitHubRelease@0
inputs:
connection: cisco-connection
userRepository: Cisco-8000-sonic/platform-cisco-8000
defaultVersionType: specificTag
version: $(cisco.ref)
itemPattern: 'artifactory-*.tar.gz'
downloadPath: '$(System.ArtifactsDirectory)'
- script: |
make PLATFORM=cisco-8000 platform/cisco-8000
tar xfz $(System.ArtifactsDirectory)/artifactory-*.tar.gz -C platform/cisco-8000
displayName: 'Setup cisco artifacts'
- script: |
set -ex
filename=$(find platform/cisco-8000/artifactory/sonic -name cisco-* -type f | head -n 1)
if [ -z "$filename" ]; then
echo "Cisco sai package not found" 1>&2
exit 1
fi
cd $(dirname $filename)
echo "PWD=$(pwd)"
ls -l *.deb
while read -r package; do
# Cisco version format: <VERSION>-sai-<sai-ver>-<distribution>-<COMMIT HASH>
# The <sai-ver> may contain several values in one build, the part is skipped when publishing to storage
# See https://github.com/Cisco-8000-sonic/sdk/blob/master/azure-pipelines.yml
# The $PACKAGE_URL is only accessible for AZP
version=$(echo $package | awk -F_ '{print $(NF-1)}' | cut -d- -f1,2,4,5)
package_url="$PACKAGE_URL/sai/ciscosai/master/$version/$package"
echo "Override package $package from $package_url"
wget "$package_url$StorageSASKey" -O "$package"
done < <(ls *.deb)
env:
StorageSASKey: $(StorageSASKey)
condition: ne(variables['Build.Reason'], 'PullRequest')
displayName: "Override cisco sai packages"
jobGroups:
- name: cisco-8000

View File

@ -9,6 +9,7 @@ schedules:
branches:
include:
- master
- 202106
- 202012
always: true
- cron: "0 4 * * *"
@ -18,16 +19,27 @@ schedules:
- 201911
- 201811
resources:
repositories:
- repository: buildimage
type: github
name: sonic-net/sonic-buildimage
ref: master
endpoint: sonic-net
trigger: none
pr: none
variables:
- template: .azure-pipelines/template-variables.yml@buildimage
stages:
- stage: Build
pool: sonicbld
variables:
CACHE_MODE: wcache
${{ if eq(variables['Build.SourceBranchName'], '202012') }}:
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web'
- name: CACHE_MODE
value: wcache
- template: .azure-pipelines/azure-pipelines-repd-build-variables.yml@buildimage
jobs:
- template: azure-pipelines-build.yml
parameters:

View File

@ -0,0 +1,10 @@
steps:
- script: |
set -x
containers=$(docker container ls -aq)
[ -n "$containers" ] && docker container rm -f $containers
docker images | grep "^<none>" | awk '{print$3}' | xargs -i docker rmi {}
images=$(docker images 'sonic-slave-*' -a -q)
[ -n "$images" ] && docker rmi -f $images
exit 0
displayName: 'Cleanup sonic slave'

View File

@ -0,0 +1,53 @@
parameters:
- name: archs
type: object
default:
- amd64
- armhf
- arm64
jobs:
- ${{ each arch in parameters.archs }}:
- job: Build_${{ arch }}
timeoutInMinutes: 120
${{ if eq(arch,'amd64') }}:
pool: sonicbld
${{ else }}:
pool: sonicbld-${{ arch }}
variables:
- template: template-variables.yml
steps:
- checkout: self
clean: true
submodules: recursive
- script: |
set -ex
branch=$(Build.SourceBranchName)
# replace all: '-' -> '_'
branch=${branch//-/_}
# replace all: 'a' -> 'A', DIST_MASTER is set in variable.
BRANCH=DIST_${branch^^}
# variable name is dynamic
bldenvs=${!BRANCH}
[ "$bldenvs" == "" ] && bldenvs="$(COMMON_LIB_BUILD_ENVS)"
for bldenv in $bldenvs
do
BLDENV=$bldenv make -f Makefile.work configure PLATFORM_ARCH=${{ arch }} PLATFORM=vs ENABLE_DOCKER_BASE_PULL=y
done
set +x
echo "##vso[task.setvariable variable=bldenvs;]$bldenvs"
displayName: Make configure
- script: |
set -ex
for bldenv in $(bldenvs)
do
SONIC_BUILD_JOBS=$(nproc) BLDENV=$bldenv make -f Makefile.work lib-packages ENABLE_DOCKER_BASE_PULL=y
done
mv target $(Build.ArtifactStagingDirectory)
displayName: Make common lib packages
- ${{ if eq(arch,'amd64') }}:
- publish: $(Build.ArtifactStagingDirectory)
artifact: common-lib
- ${{ else }}:
- publish: $(Build.ArtifactStagingDirectory)
artifact: common-lib.${{ arch }}

View File

@ -0,0 +1,24 @@
steps:
- bash: |
(
while true
do
sleep 120
now=$(date +%s)
pids=$(ps -C docker -o pid,etime,args | grep "docker build" | cut -d" " -f2)
for pid in $pids
do
start=$(date --date="$(ls -dl /proc/$pid --time-style full-iso | awk '{print$6,$7}')" +%s)
time_s=$(($now-$start))
if [[ $time_s -gt $(DOCKER_BUILD_TIMEOUT) ]]; then
echo =========== $(date +%F%T) $time_s &>> target/daemon.log
ps $pid &>> target/daemon.log
sudo kill $pid
fi
done
done
) &
daemon_pid=$!
ps $daemon_pid
echo $daemon_pid >> /tmp/azp_daemon_kill_docker_pid
displayName: start daemon to kill hang docker

View File

@ -0,0 +1,12 @@
steps:
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
- script: |
set -ex
tar_branch=origin/$(System.PullRequest.TargetBranch)
git diff $tar_branch..HEAD --name-only | grep -v -f .azure-pipelines/vstest-exclude && exit 0
git diff $tar_branch..HEAD --name-only | grep -f .azure-pipelines/vstest-include && exit 0
set +x
echo "Skip vstest jobs"
echo "##vso[task.setvariable variable=SKIP_VSTEST;isOutput=true]YES"
name: SetVar
displayName: "Check if vstest is needed."

View File

@ -0,0 +1,8 @@
variables:
DEFAULT_CONTAINER_REGISTRY: 'publicmirror.azurecr.io'
COMMON_LIB_BUILD_ENVS: 'bullseye'
SONIC_SLAVE_DOCKER_DRIVER: 'overlay2'
SONIC_BUILD_RETRY_COUNT: 3
SONIC_BUILD_RETRY_INTERVAL: 600
DOCKER_BUILDKIT: 0
DOCKER_BUILD_TIMEOUT: 3600

View File

@ -0,0 +1,3 @@
^platform
^.azure-pipelines
^files/build/versions

View File

@ -0,0 +1,2 @@
^platform/vs
^.azure-pipelines/run-test-template.yml

38
.github/workflows/README.md vendored Normal file
View File

@ -0,0 +1,38 @@
# Github actions README
This is an introduction about auto-cherry-pick workflow.
take 202205 branch for example:
1. pr_cherrypick_prestep:
```mermaid
graph
Start(Origin PR) --> A{merged?}
A -- NO --> STOP
A -- YES --> A1{Approved<br> for 202205<br> Branch?}
A1 -- NO --> STOP
A1 -- YES --> A2(pr_cherrypick_prestep)
B(pr_cherrypick_prestep)
B --> B1{cherry pick<br>conflict?}
B1 -- YES --> B2(Add tag:<br>Cherry Pick Confclit_202205) --> B3(Add comment:<br>refer author code conflict) --> STOP1(STOP)
B1 -- NO --> B4(Create New PR) -- success --> B5(New PR add tag:<br> automerge) --> B6(New PR add comment:<br>Origin PR link) --> B7(Origin PR add tag:<br>Created PR to 202205 Branch) --> B8(Origin PR add comment:<br>New PR link)
B4 -- fail --> STOP1
```
2. automerge:
```mermaid
graph
Start(PR azp finished successfully) --> A{author:<br>mssonicbld?}
A -- NO --> STOP
A -- YES --> B{tag:<br>automerge?} -- YES --> C(Merge PR)
B -- NO --> STOP
```
3. pr_cherrypick_poststep:
```mermaid
graph
A(PR is Merged) --> B{tag:<br>automerge?}
B -- YES --> B1{author:<br>mssonicbld?}
B1 -- YES --> B2{"title starts:<br>[action] [PR:123]"}
B2 -- YES --> C(Origin PR remove tag:<br> Created PR to 202205 Branch) --> D(Origin PR add tag:<br> Included in 202205 Branch)
B -- NO --> STOP
B1 -- NO --> STOP
B2 -- NO --> STOP
```

View File

@ -13,6 +13,8 @@ on:
- reopened
branches:
- '202012'
- '202[1-9][0-9][0-9]'
- '20[3-9][0-9][0-9][0-9]'
paths:
- 'files/build/versions/**'

View File

@ -0,0 +1,49 @@
name: PostCherryPick
on:
pull_request_target:
types:
- closed
branches:
- '20*'
jobs:
post_cherry_pick:
if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'automerge') && github.event.pull_request.head.user.login == 'mssonicbld' && startsWith(github.event.pull_request.title, '[action]')
runs-on: ubuntu-latest
steps:
- name: Debug
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo $GITHUB_CONTEXT | jq
- name: Checkout
uses: actions/checkout@v3
with:
persist-credentials: false
- name: Main
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
TOKEN: ${{ secrets.TOKEN }}
run: |
set -e
pr_url=$(echo $GITHUB_CONTEXT | jq -r ".event.pull_request._links.html.href")
pr_id=$(echo $GITHUB_CONTEXT | jq -r ".event.number")
base_ref=$(echo $GITHUB_CONTEXT | jq -r ".base_ref")
echo ${TOKEN} | gh auth login --with-token
title=$(echo $GITHUB_CONTEXT | jq -r ".event.pull_request.title")
origin_pr_id=$(echo $title | grep -Eo "\[action\] \[PR:[0-9]*\]" | grep -Eo "[0-9]*")
origin_pr_url=$(echo $pr_url | sed "s/$pr_id/$origin_pr_id/")
echo =============================
echo pr_url: $pr_url
echo pr_id: $pr_id
echo base_ref: $base_ref
echo title: $title
echo origin_pr_id: $origin_pr_id
echo origin_pr_url: $origin_pr_url
echo =============================
# Add label
if [[ "$origin_pr_id" == "" ]];then
echo "original PR didn't found."
exit 1
fi
gh pr edit $origin_pr_url --add-label "Included in ${base_ref} Branch"
gh pr edit $origin_pr_url --remove-label "Created PR to ${base_ref} Branch,Request for ${base_ref} Branch,Approved for ${base_ref} Branch"

View File

@ -0,0 +1,136 @@
name: PreCherryPick
on:
pull_request_target:
types:
- labeled
- closed
branches:
- master-test
jobs:
pre_cherry_pick:
if: github.event.pull_request.merged == true && ( (github.event.action == 'closed' && contains(join(github.event.pull_request.labels.*.name, ','), 'Approved for 20')) || (github.event.action == 'labeled' && startsWith(github.event.label.name, 'Approved for 20')) )
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
persist-credentials: false
- name: Debug
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo $GITHUB_CONTEXT | jq
- name: Main
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
TOKEN: ${{ secrets.TOKEN }}
run: |
set -e
sha=$(echo $GITHUB_CONTEXT | jq -r ".event.pull_request.merge_commit_sha")
pr_id=$(echo $GITHUB_CONTEXT | jq -r ".event.number")
pr_url=$(echo $GITHUB_CONTEXT | jq -r ".event.pull_request._links.html.href")
repository=$(echo $GITHUB_CONTEXT | jq -r ".repository")
labels=$(echo $GITHUB_CONTEXT | jq -r ".event.pull_request.labels[].name")
author=$(echo $GITHUB_CONTEXT | jq -r ".event.pull_request.base.user.login")
branches=$(git branch -a --list 'origin/20????' | awk -F/ '{print$3}' | grep -E "202[0-9]{3}")
if [[ $(echo $GITHUB_CONTEXT | jq -r ".event.action") == "labeled" ]];then
labels=$(echo $GITHUB_CONTEXT | jq -r ".event.label.name")
fi
title=$(echo $GITHUB_CONTEXT | jq -r ".event.pull_request.title")
echo =============================
echo SHA: $sha
echo PRID: $pr_id
echo pr_url: $pr_url
echo repository: $repository
echo branches: $branches
echo labels:
echo "$labels"
echo ${TOKEN} | gh auth login --with-token
echo author: $author
echo title: $title
echo =============================
git config user.name mssonicbld
git config user.email sonicbld@microsoft.com
git config credential.https://github.com.username mssonicbld
git remote add mssonicbld https://mssonicbld:${TOKEN}@github.com/mssonicbld/sonic-buildimage
git fetch mssonicbld
git remote -vv
cherry_pick(){
set -e
local create_pr=''
while read label
do
echo label: $label
if [[ "$label" == "Approved for $branch Branch" ]];then
create_pr=1
fi
if [[ "$label" == "Created PR to $branch Branch" ]];then
echo "already has tag: Created PR to $branch Branch, return"
return 0
fi
if [[ "$label" == "Included in $branch Branch" ]];then
echo "already has tag: Included in $branch Branch, return"
return 0
fi
if [[ "$label" == "Cherry Pick Conflict_$branch" ]];then
echo "already has tag: Cherry Pick Conflict_$branch, return"
return 0
fi
done <<< "$labels"
if [[ "$create_pr" != "1" ]];then
echo "Didn't find 'Approved for $branch Branch' tag."
return 0
fi
# Begin to cherry-pick PR
git cherry-pick --abort 2>/dev/null || true
git clean -xdff 2>/dev/null || true
git reset HEAD --hard || true
git checkout -b $branch --track origin/$branch
git status | grep "working tree clean"
if ! git cherry-pick $sha;then
echo 'cherry-pick failed.'
git cherry-pick --abort
git status | grep "working tree clean"
# Add label
gh pr edit $pr_url --add-label "Cherry Pick Conflict_$branch"
echo 'Add label "Cherry Pick Conflict_$branch" success'
gh pr comment $pr_url --body "@${author} PR conflicts with $branch branch"
echo 'Add commnet "@${author} PR conflicts with $branch branch"'
else
# Create PR to release branch
git push mssonicbld HEAD:$branch-${pr_id} -f
result=$(gh pr create -R ${repository} -H mssonicbld:$branch-${pr_id} -B $branch -t "[action] [PR:$pr_id] $title" -b '' 2>&1)
echo $result | grep "already exists" && { echo $result; return 0; }
echo $result | grep github.com || { echo $result; return 1; }
new_pr_rul=$(echo $result | grep github.com)
echo new_pr_rul: $new_pr_rul
# Add label to old PR
gh pr edit $pr_url --add-label "Created PR to $branch Branch"
echo Add label Created PR to $branch Branch
# Add comment to old PR
gh pr comment $pr_url --body "Cherry-pick PR to $branch: ${new_pr_rul}"
echo Add comment to old PR
# Add label to new PR
gh pr edit $new_pr_rul --add-label "automerge"
echo Add label automerge to new PR
# Add comment to new PR
gh pr comment $new_pr_rul --body "Original PR: ${pr_url}"
echo Add comment to new PR
fi
}
for branch in $branches
do
echo -------------------------------------------
echo Begin to parse Branch: $branch
cherry_pick
done

5
.gitignore vendored
View File

@ -74,6 +74,7 @@ platform/broadcom/sonic-platform-modules-dell/s6100/modules/dell_s6100_lpc.c
platform/broadcom/sonic-platform-modules-dell/z9100/modules/dell_ich.c
platform/broadcom/sonic-platform-modules-dell/z9100/modules/dell_mailbox.c
platform/broadcom/sonic-platform-modules-dell/z9264f/sonic_platform/ipmihelper.py
platform/cisco-8000
# buildinfo
files/build/buildinfo
@ -81,3 +82,7 @@ files/build/tmp
dockers/**/buildinfo
platform/**/buildinfo
sonic-slave*/**/buildinfo
# Debian mirror Sources
sources.list.*
!sources.list*.j2

39
.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,31 +18,31 @@
url = https://github.com/p4lang/p4-hlir
[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-arista"]
path = platform/broadcom/sonic-platform-modules-arista
url = https://github.com/aristanetworks/sonic
[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 "src/sonic-frr/frr"]
path = src/sonic-frr/frr
url = https://github.com/Azure/sonic-frr.git
url = https://github.com/sonic-net/sonic-frr.git
branch = frr/7.5
[submodule "platform/p4/p4-hlir/p4-hlir-v1.1"]
path = platform/p4/p4-hlir/p4-hlir-v1.1
@ -64,27 +64,30 @@
url = https://github.com/Mellanox/SAI-Implementation
[submodule "src/sonic-mgmt-framework"]
path = src/sonic-mgmt-framework
url = https://github.com/Azure/sonic-mgmt-framework
url = https://github.com/sonic-net/sonic-mgmt-framework
[submodule "src/sonic-telemetry"]
path = src/sonic-telemetry
url = https://github.com/Azure/sonic-telemetry
url = https://github.com/sonic-net/sonic-telemetry
[submodule "Switch-SDK-drivers"]
path = platform/mellanox/sdk-src/sx-kernel/Switch-SDK-drivers
url = https://github.com/Mellanox/Switch-SDK-drivers
[submodule "src/sonic-ztp"]
path = src/sonic-ztp
url = https://github.com/Azure/sonic-ztp
url = https://github.com/sonic-net/sonic-ztp
[submodule "src/sonic-restapi"]
path = src/sonic-restapi
url = https://github.com/Azure/sonic-restapi.git
url = https://github.com/sonic-net/sonic-restapi.git
branch = master
[submodule "src/sonic-mgmt-common"]
path = src/sonic-mgmt-common
url = https://github.com/Azure/sonic-mgmt-common.git
url = https://github.com/sonic-net/sonic-mgmt-common.git
[submodule "src/wpasupplicant/sonic-wpa-supplicant"]
path = src/wpasupplicant/sonic-wpa-supplicant
url = https://github.com/Azure/sonic-wpa-supplicant.git
url = https://github.com/sonic-net/sonic-wpa-supplicant.git
[submodule "platform/broadcom/saibcm-modules-dnx"]
path = platform/broadcom/saibcm-modules-dnx
url = https://github.com/Azure/saibcm-modules.git
url = https://github.com/sonic-net/saibcm-modules.git
branch = sdk-6.5.22-gpl-dnx
[submodule "platform/broadcom/sonic-platform-modules-nokia"]
path = platform/broadcom/sonic-platform-modules-nokia
url = https://github.com/nokia/sonic-platform.git

View File

@ -2,16 +2,39 @@
NOJESSIE ?= 1
NOSTRETCH ?= 0
NOBUSTER ?= 0
ifeq ($(NOJESSIE),0)
BUILD_JESSIE=1
endif
ifeq ($(NOSTRETCH),0)
BUILD_STRETCH=1
endif
ifeq ($(NOBUSTER),0)
BUILD_BUSTER=1
endif
ifeq ($(NOBULLSEYE),0)
BUILD_BULLSEYE=1
endif
PLATFORM_PATH := platform/$(if $(PLATFORM),$(PLATFORM),$(CONFIGURED_PLATFORM))
PLATFORM_CHECKOUT := platform/checkout
PLATFORM_CHECKOUT_FILE := $(PLATFORM_CHECKOUT)/$(PLATFORM).ini
PLATFORM_CHECKOUT_CMD := $(shell if [ -f $(PLATFORM_CHECKOUT_FILE) ]; then PLATFORM_PATH=$(PLATFORM_PATH) j2 $(PLATFORM_CHECKOUT)/template.j2 $(PLATFORM_CHECKOUT_FILE); fi)
MAKE_WITH_RETRY := ./scripts/run_with_retry $(MAKE)
%::
@echo "+++ --- Making $@ --- +++"
ifeq ($(NOJESSIE), 0)
EXTRA_DOCKER_TARGETS=$(notdir $@) make -f Makefile.work jessie
$(MAKE_WITH_RETRY) EXTRA_DOCKER_TARGETS=$(notdir $@) -f Makefile.work jessie
endif
ifeq ($(NOSTRETCH), 0)
EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=stretch make -f Makefile.work stretch
$(MAKE_WITH_RETRY) EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=stretch -f Makefile.work stretch
endif
BLDENV=buster make -f Makefile.work $@
$(MAKE_WITH_RETRY) BLDENV=buster -f Makefile.work $@
jessie:
@echo "+++ Making $@ +++"
@ -29,15 +52,28 @@ init:
@echo "+++ Making $@ +++"
make -f Makefile.work $@
clean configure reset showtag sonic-slave-build sonic-slave-bash :
#
# Function to invoke target $@ in Makefile.work with proper BLDENV
#
define make_work
@echo "+++ Making $@ +++"
ifeq ($(NOJESSIE), 0)
make -f Makefile.work $@
endif
ifeq ($(NOSTRETCH), 0)
BLDENV=stretch make -f Makefile.work $@
endif
BLDENV=buster make -f Makefile.work $@
$(if $(BUILD_JESSIE),make -f Makefile.work $@,)
$(if $(BUILD_STRETCH),BLDENV=stretch make -f Makefile.work $@,)
$(if $(BUILD_BUSTER),BLDENV=buster make -f Makefile.work $@,)
$(if $(BUILD_BULLSEYE),BLDENV=bullseye make -f Makefile.work $@,)
endef
.PHONY: $(PLATFORM_PATH)
$(PLATFORM_PATH):
@echo "+++ Cheking $@ +++"
$(PLATFORM_CHECKOUT_CMD)
configure : $(PLATFORM_PATH)
$(call make_work, $@)
clean reset showtag sonic-slave-build sonic-slave-bash :
$(call make_work, $@)
# Freeze the versions, see more detail options: scripts/versions_manager.py freeze -h
freeze:

View File

@ -182,7 +182,10 @@ define GET_MOD_DEP_SHA
$(eval $(1)_DEP_FILES_MISSING := $(filter-out $(wildcard $($(1)_DEP_MOD_SHA_FILES)),$($(1)_DEP_MOD_SHA_FILES)) )
$(if $($(1)_DEP_FILES_MISSING), $(warning "[ DPKG ] Dependecy file(s) are not found for $(1) : $($(1)_DEP_FILES_MISSING)))
$(eval $(1)_DEP_MOD_SHA := $(shell git hash-object $($(1)_DEP_MOD_SHA_FILES) \
# Include package dependencies hash values into package hash calculation
$(eval $(1)_DEP_PKGS_SHA := $(foreach dfile,$(1)_MOD_DEP_PKGS,$(dfile)_DEP_MOD_SHA $(dfile)_MOD_HASH))
$(eval $(1)_DEP_MOD_SHA := $(shell bash -c "git hash-object $($(1)_DEP_MOD_SHA_FILES) && echo $($(1)_DEP_PKGS_SHA)" \
| sha1sum | awk '{print substr($$1,0,23);}'))
endef
@ -555,6 +558,12 @@ define SHA_DEP_RULES
ALL_DEP_FILES_LIST += $(foreach pkg,$(2), $($(filter none,$($(1)_CACHE_MODE)), \
$(addsuffix .$(3),$(addprefix $(pkg)/, $(1))) \
$(addsuffix .$(3).sha,$(addprefix $(pkg)/, $(1)))))
$(foreach docker, $(filter $(SONIC_DOCKER_IMAGES), $(1)), \
$(eval $(docker)_DEP_FILES+=$(wildcard files/build/versions/default/*) \
$(wildcard files/build/versions/dockers/$(basename $(docker))/*)))
$(foreach docker, $(filter $(SONIC_DOCKER_DBG_IMAGES), $(1)), \
$(eval $(docker)_DEP_FILES+=$(wildcard files/build/versions/default/*) \
$(wildcard files/build/versions/dockers/$(patsubst %-$(DBG_IMAGE_MARK).gz,%,$(docker))/*)))
$(addsuffix .$(3),$(addprefix $(2)/, $(1))) : $(2)/%.$(3) : \
$(2)/%.flags $$$$($$$$*_DEP_FILES) $$$$(if $$$$($$$$*_SMDEP_FILES), $(2)/%.smdep)
@$$(eval $$*_DEP_FILES_MODIFIED := $$? )

View File

@ -47,12 +47,13 @@ SHELL = /bin/bash
USER := $(shell id -un)
PWD := $(shell pwd)
USER_LC := $(shell echo $(USER) | tr A-Z a-z)
DOCKER_MACHINE := $(shell docker run --rm debian:buster uname -m)
comma := ,
ifeq ($(shell uname -m), aarch64)
ifeq ($(DOCKER_MACHINE), aarch64)
COMPILE_HOST_ARCH := arm64
else ifeq ($(shell uname -m), armv7l)
else ifeq ($(shell echo $(DOCKER_MACHINE) | grep -qE "armv7l|armv8l" && echo y),y)
COMPILE_HOST_ARCH := armhf
else
COMPILE_HOST_ARCH := amd64
@ -108,6 +109,10 @@ rules/config.user:
include rules/config
-include rules/config.user
ifneq ($(DEFAULT_CONTAINER_REGISTRY),)
override DEFAULT_CONTAINER_REGISTRY := $(DEFAULT_CONTAINER_REGISTRY)/
endif
ifeq ($(ENABLE_DOCKER_BASE_PULL),)
override ENABLE_DOCKER_BASE_PULL = n
endif
@ -129,12 +134,13 @@ SLAVE_IMAGE = $(SLAVE_BASE_IMAGE)-$(USER_LC)
# Generate the version control build info
$(shell SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \
TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) PACKAGE_URL_PREFIX=$(PACKAGE_URL_PREFIX) \
MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) \
scripts/generate_buildinfo_config.sh)
# Generate the slave Dockerfile, and prepare build info for it
$(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) j2 $(SLAVE_DIR)/Dockerfile.j2 > $(SLAVE_DIR)/Dockerfile)
$(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) j2 $(SLAVE_DIR)/Dockerfile.j2 > $(SLAVE_DIR)/Dockerfile)
$(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) j2 $(SLAVE_DIR)/Dockerfile.user.j2 > $(SLAVE_DIR)/Dockerfile.user)
$(shell BUILD_SLAVE=y scripts/prepare_docker_buildinfo.sh $(SLAVE_BASE_IMAGE) $(SLAVE_DIR)/Dockerfile $(CONFIGURED_ARCH) "" $(BLDENV))
$(shell BUILD_SLAVE=y DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) scripts/prepare_docker_buildinfo.sh $(SLAVE_BASE_IMAGE) $(SLAVE_DIR)/Dockerfile $(CONFIGURED_ARCH) "" $(BLDENV))
# Add the versions in the tag, if the version change, need to rebuild the slave
SLAVE_BASE_TAG = $(shell cat $(SLAVE_DIR)/Dockerfile $(SLAVE_DIR)/buildinfo/versions/versions-* src/sonic-build-hooks/hooks/* | sha1sum | awk '{print substr($$1,0,11);}')
@ -268,21 +274,30 @@ SONIC_BUILD_INSTRUCTION := make \
HTTPS_PROXY=$(https_proxy) \
NO_PROXY=$(no_proxy) \
SONIC_INCLUDE_SYSTEM_TELEMETRY=$(INCLUDE_SYSTEM_TELEMETRY) \
INCLUDE_DHCP_RELAY=$(INCLUDE_DHCP_RELAY) \
SONIC_INCLUDE_RESTAPI=$(INCLUDE_RESTAPI) \
TELEMETRY_WRITABLE=$(TELEMETRY_WRITABLE) \
EXTRA_DOCKER_TARGETS=$(EXTRA_DOCKER_TARGETS) \
BUILD_LOG_TIMESTAMP=$(BUILD_LOG_TIMESTAMP) \
SONIC_ENABLE_IMAGE_SIGNATURE=$(ENABLE_IMAGE_SIGNATURE) \
SONIC_DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \
ENABLE_HOST_SERVICE_ON_START=$(ENABLE_HOST_SERVICE_ON_START) \
SLAVE_DIR=$(SLAVE_DIR) \
MIRROR_URLS=$(MIRROR_URLS) \
MIRROR_SECURITY_URLS=$(MIRROR_SECURITY_URLS) \
MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) \
$(SONIC_OVERRIDE_BUILD_VARS)
.PHONY: sonic-slave-build sonic-slave-bash init reset
.DEFAULT_GOAL := all
%::
ifneq (,$(filter $(CONFIGURED_ARCH), armhf arm64))
export MIRROR_URLS
export MIRROR_SECURITY_URLS
export SONIC_VERSION_CONTROL_COMPONENTS
%:: | sonic-build-hooks
ifeq ($(MULTIARCH_QEMU_ENVIRON), y)
@$(DOCKER_MULTIARCH_CHECK)
ifneq ($(BLDENV), )
@$(DOCKER_SERVICE_MULTIARCH_CHECK)
@ -291,8 +306,6 @@ endif
endif
@$(OVERLAY_MODULE_CHECK)
@pushd src/sonic-build-hooks; TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) make all; popd
@cp src/sonic-build-hooks/buildinfo/sonic-build-hooks* $(SLAVE_DIR)/buildinfo
@docker inspect --type image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) &> /dev/null || \
{ [ $(ENABLE_DOCKER_BASE_PULL) == y ] && { echo Image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) not found. Pulling...; } && \
$(DOCKER_BASE_PULL) && \
@ -317,6 +330,8 @@ endif
sonic-build-hooks:
@pushd src/sonic-build-hooks; TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) make all; popd
@cp src/sonic-build-hooks/buildinfo/sonic-build-hooks* $(SLAVE_DIR)/buildinfo
@[ "$(MULTIARCH_QEMU_ENVIRON)" == y ] && scripts/build_mirror_config.sh $(SLAVE_DIR) amd64 $(BLDENV)
@scripts/build_mirror_config.sh $(SLAVE_DIR) $(CONFIGURED_ARCH) $(BLDENV)
sonic-slave-base-build : sonic-build-hooks
@$(OVERLAY_MODULE_CHECK)
@ -357,7 +372,7 @@ reset :
if [ $$ans == y ]; then
echo "Resetting local repository. Please wait...";
$(DOCKER_RUN) $(SLAVE_IMAGE):$(SLAVE_TAG) sudo rm -rf fsroot;
if [[ "$(CONFIGURED_ARCH)" == "armhf" || "$(CONFIGURED_ARCH)" == "arm64" ]]; then
if [ "$(MULTIARCH_QEMU_ENVIRON)" == y ] && [[ "$(CONFIGURED_ARCH)" == "armhf" || "$(CONFIGURED_ARCH)" == "arm64" ]]; then
echo "Stopping march $(CONFIGURED_ARCH) docker"
sudo kill -9 `sudo cat /var/run/march/docker.pid` || true
sudo rm -f /var/run/march/docker.pid || true

View File

@ -7,6 +7,7 @@ trigger:
branches:
include:
- master
- 202106
- 202012
paths:
exclude:
@ -16,6 +17,7 @@ pr:
branches:
include:
- master
- 202106
- 202012
paths:
exclude:
@ -27,16 +29,25 @@ resources:
repositories:
- repository: sonic-mgmt
type: github
name: Azure/sonic-mgmt
endpoint: build
name: sonic-net/sonic-mgmt
endpoint: sonic-net
- repository: buildimage
type: github
name: sonic-net/sonic-buildimage
endpoint: sonic-net
ref: master
variables:
- template: .azure-pipelines/azure-pipelines-repd-build-variables.yml@buildimage
- template: .azure-pipelines/template-variables.yml@buildimage
stages:
- stage: Build
pool: sonicbld
variables:
CACHE_MODE: rcache
${{ if eq(variables['Build.SourceBranchName'], '202012') }}:
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web'
- template: .azure-pipelines/azure-pipelines-repd-build-variables.yml
- name: CACHE_MODE
value: rcache
jobs:
- template: .azure-pipelines/azure-pipelines-build.yml
parameters:
@ -49,6 +60,8 @@ stages:
- name: mellanox
- stage: Test
dependsOn: Build
condition: and(ne(stageDependencies.BuildVS.outputs['vs.SetVar.SKIP_VSTEST'], 'YES'), in(dependencies.BuildVS.result, 'Succeeded', 'SucceededWithIssues'))
variables:
- name: inventory
value: veos_vtb
@ -71,7 +84,7 @@ stages:
source: specific
project: build
pipeline: 9
artifacts: sonic-swss-common.amd64.ubuntu20_04
artifact: sonic-swss-common.amd64.ubuntu20_04
runVersion: 'latestFromBranch'
runBranch: 'refs/heads/master'
displayName: "Download sonic swss common deb packages"
@ -83,8 +96,8 @@ stages:
- script: |
set -x
sudo dpkg -i --force-confask,confnew ../sonic-swss-common.amd64.ubuntu20_04/libswsscommon_1.0.0_amd64.deb
sudo dpkg -i ../sonic-swss-common.amd64.ubuntu20_04/python3-swsscommon_1.0.0_amd64.deb
sudo dpkg -i --force-confask,confnew ../libswsscommon_1.0.0_amd64.deb
sudo dpkg -i ../python3-swsscommon_1.0.0_amd64.deb
sudo docker load -i ../target/docker-sonic-vs.gz
docker tag docker-sonic-vs:latest docker-sonic-vs:$(Build.BuildNumber)
username=$(id -un)
@ -106,7 +119,7 @@ stages:
- job:
pool: sonictest
displayName: "kvmtest-t0"
timeoutInMinutes: 240
timeoutInMinutes: 300
steps:
- template: .azure-pipelines/run-test-template.yml

View File

@ -104,6 +104,7 @@ sudo LANG=C chroot $FILESYSTEM_ROOT mount
[ -d $TRUSTED_GPG_DIR ] && [ ! -z "$(ls $TRUSTED_GPG_DIR)" ] && sudo cp $TRUSTED_GPG_DIR/* ${FILESYSTEM_ROOT}/etc/apt/trusted.gpg.d/
## Pointing apt to public apt mirrors and getting latest packages, needed for latest security updates
scripts/build_mirror_config.sh files/apt $CONFIGURED_ARCH $IMAGE_DISTRO
sudo cp files/apt/sources.list.$CONFIGURED_ARCH $FILESYSTEM_ROOT/etc/apt/sources.list
sudo cp files/apt/apt.conf.d/{81norecommends,apt-{clean,gzip-indexes,no-languages},no-check-valid-until} $FILESYSTEM_ROOT/etc/apt/apt.conf.d/
@ -435,11 +436,14 @@ sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'setup
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'wheel==0.35.1'
# docker Python API package is needed by Ansible docker module as well as some SONiC applications
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'docker==4.3.1'
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'docker==6.1.1'
# Install scapy
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'scapy==2.4.4'
# The option --no-build-isolation can be removed when upgrading PyYAML to 6.0.1
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'PyYAML==5.4.1' --no-build-isolation
## Note: keep pip installed for maintainance purpose
# Install GCC, needed for building/installing some Python packages
@ -473,11 +477,16 @@ fi
## Version file
sudo mkdir -p $FILESYSTEM_ROOT/etc/sonic
if [ -f files/image_config/sonic_release ]; then
sudo cp files/image_config/sonic_release $FILESYSTEM_ROOT/etc/sonic/
fi
export build_version="${SONIC_IMAGE_VERSION}"
export debian_version="$(cat $FILESYSTEM_ROOT/etc/debian_version)"
export kernel_version="${kversion}"
export asic_type="${sonic_asic_platform}"
export commit_id="$(git rev-parse --short HEAD)"
export branch="$(git rev-parse --abbrev-ref HEAD)"
export release="$(if [ -f $FILESYSTEM_ROOT/etc/sonic/sonic_release ]; then cat $FILESYSTEM_ROOT/etc/sonic/sonic_release; fi)"
export build_date="$(date -u)"
export build_number="${BUILD_NUMBER:-0}"
export built_by="$USER@$BUILD_HOSTNAME"

View File

@ -24,6 +24,12 @@ ipv6_lpm_128b_enable=1
l2_mem_entries=32768
l3_mem_entries=16384
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
# From old config file
os=unix
higig2_hdr_mode=1

View File

@ -1,4 +1,4 @@
{%- set default_cable = '300m' %}
{%- set default_cable = '0m' %}
{%- macro generate_port_lists(PORT_ALL) %}
{# Generate list of ports #}

View File

@ -1,4 +1,4 @@
{%- set default_cable = '300m' %}
{%- set default_cable = '0m' %}
{%- macro generate_port_lists(PORT_ALL) %}
{# Generate list of ports #}

View File

@ -24,6 +24,12 @@ ipv6_lpm_128b_enable=1
l2_mem_entries=32768
l3_mem_entries=16384
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
# From old config file
os=unix
higig2_hdr_mode=1

View File

@ -1,4 +1,4 @@
{%- set default_cable = '300m' %}
{%- set default_cable = '0m' %}
{%- macro generate_port_lists(PORT_ALL) %}
{# Generate list of ports #}

View File

@ -1,4 +1,4 @@
{%- set default_cable = '300m' %}
{%- set default_cable = '0m' %}
{%- macro generate_port_lists(PORT_ALL) %}
{# Generate list of ports #}

View File

@ -0,0 +1,144 @@
{
"interfaces": {
"Ethernet0": {
"default_brkout_mode": "1x10G",
"port_type": "RJ45"
},
"Ethernet1": {
"default_brkout_mode": "1x10G",
"port_type": "RJ45"
},
"Ethernet2": {
"default_brkout_mode": "1x10G",
"port_type": "RJ45"
},
"Ethernet3": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet4": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet8": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet12": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet16": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet20": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet24": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet28": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet32": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet36": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet40": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet44": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet48": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet52": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet56": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet60": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet64": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet68": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet72": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet76": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet80": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet84": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet88": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet92": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet96": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet100": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet104": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet108": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet112": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet116": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet120": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
},
"Ethernet124": {
"default_brkout_mode": "1x40G",
"port_type": "QSFP+"
}
}
}

View File

@ -4,6 +4,12 @@ ipv6_lpm_128b_enable=1
l2_mem_entries=32768
l3_mem_entries=16384
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
# From old config file
os=unix
higig2_hdr_mode=1

View File

@ -1,4 +1,4 @@
{%- set default_cable = '300m' %}
{%- set default_cable = '0m' %}
{%- macro generate_port_lists(PORT_ALL) %}
{# Generate list of ports #}

View File

@ -1,4 +1,4 @@
{%- set default_cable = '300m' %}
{%- set default_cable = '0m' %}
{%- macro generate_port_lists(PORT_ALL) %}
{# Generate list of ports #}

View File

@ -18,6 +18,12 @@ ipv6_lpm_128b_enable=1
l2_mem_entries=32768
l3_mem_entries=16384
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
# From old config file
os=unix
higig2_hdr_mode=1

View File

@ -1,4 +1,5 @@
sai_load_hw_config=/etc/bcm/flex/bcm56870_a0_issu/b870.6.4.1/
l3_alpm_hit_skip=1
sai_adjust_acl_drop_in_rx_drop=1
host_as_route_disable=1
use_all_splithorizon_groups=1

View File

@ -1,4 +1,5 @@
sai_load_hw_config=/etc/bcm/flex/bcm56870_a0_issu/b870.6.4.1/
l3_alpm_hit_skip=1
sai_adjust_acl_drop_in_rx_drop=1
host_as_route_disable=1
use_all_splithorizon_groups=1

View File

@ -1,5 +1,11 @@
# Arista 7060CX-32S
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
phy_an_allow_pll_change=1
arl_clean_timeout_usec=15000000
asf_mem_profile=2

View File

@ -1,5 +1,11 @@
# Arista 7060CX-32S
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
phy_an_allow_pll_change=1
arl_clean_timeout_usec=15000000
asf_mem_profile=2

View File

@ -1,5 +1,11 @@
# Arista 7060CX-32S
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
phy_an_allow_pll_change=1
arl_clean_timeout_usec=15000000
asf_mem_profile=2

View File

@ -1,5 +1,11 @@
# Arista 7060CX-32S
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
phy_an_allow_pll_change=1
arl_clean_timeout_usec=15000000
asf_mem_profile=2

View File

@ -1,5 +1,11 @@
# Arista 7060CX-32S
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
phy_an_allow_pll_change=1
arl_clean_timeout_usec=15000000
asf_mem_profile=2

View File

@ -1,5 +1,11 @@
# Arista 7060CX-32S
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
phy_an_allow_pll_change=1
arl_clean_timeout_usec=15000000
asf_mem_profile=2

View File

@ -96,11 +96,11 @@
"Ethernet124": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet125": {
"Ethernet128": {
"default_brkout_mode": "1x10G"
},
"Ethernet126": {
"Ethernet129": {
"default_brkout_mode": "1x10G"
}
}
}
}

View File

@ -31,5 +31,5 @@ Ethernet112 17,18,19,20 Ethernet29/1 29
Ethernet116 21,22,23,24 Ethernet30/1 30
Ethernet120 25,26,27,28 Ethernet31/1 31
Ethernet124 29,30,31,32 Ethernet32/1 32
Ethernet125 129 Ethernet33 33
Ethernet126 131 Ethernet34 34
Ethernet128 129 Ethernet33 33
Ethernet129 131 Ethernet34 34

View File

@ -802,7 +802,7 @@
]
}
},
"Ethernet125": {
"Ethernet128": {
"index": "33",
"lanes": "129",
"breakout_modes": {
@ -811,7 +811,7 @@
]
}
},
"Ethernet126": {
"Ethernet129": {
"index": "34",
"lanes": "131",
"breakout_modes": {

View File

@ -32,71 +32,263 @@ phy_an_c37_100.0=2
phy_an_c73=1
phy_an_fec=1
phy_xaui_rx_polarity_flip_1.0=0x1
phy_xaui_rx_polarity_flip_2.0=0x0
phy_xaui_rx_polarity_flip_3.0=0x0
phy_xaui_rx_polarity_flip_4.0=0x0
phy_xaui_rx_polarity_flip_5.0=0x5
phy_xaui_rx_polarity_flip_6.0=0x2
phy_xaui_rx_polarity_flip_7.0=0x1
phy_xaui_rx_polarity_flip_8.0=0x0
phy_xaui_rx_polarity_flip_9.0=0x1
phy_xaui_rx_polarity_flip_10.0=0x0
phy_xaui_rx_polarity_flip_11.0=0x0
phy_xaui_rx_polarity_flip_12.0=0x0
phy_xaui_rx_polarity_flip_13.0=0x7
phy_xaui_rx_polarity_flip_14.0=0x3
phy_xaui_rx_polarity_flip_15.0=0x1
phy_xaui_rx_polarity_flip_16.0=0x0
phy_xaui_rx_polarity_flip_17.0=0xc
phy_xaui_rx_polarity_flip_18.0=0x6
phy_xaui_rx_polarity_flip_19.0=0x3
phy_xaui_rx_polarity_flip_20.0=0x1
phy_xaui_rx_polarity_flip_21.0=0xf
phy_xaui_rx_polarity_flip_22.0=0x7
phy_xaui_rx_polarity_flip_23.0=0x3
phy_xaui_rx_polarity_flip_24.0=0x1
phy_xaui_rx_polarity_flip_25.0=0xc
phy_xaui_rx_polarity_flip_26.0=0x6
phy_xaui_rx_polarity_flip_27.0=0x3
phy_xaui_rx_polarity_flip_28.0=0x1
phy_xaui_rx_polarity_flip_29.0=0xf
phy_xaui_rx_polarity_flip_30.0=0x7
phy_xaui_rx_polarity_flip_31.0=0x3
phy_xaui_rx_polarity_flip_32.0=0x1
phy_xaui_rx_polarity_flip_34.0=0x0
phy_xaui_rx_polarity_flip_35.0=0x0
phy_xaui_rx_polarity_flip_36.0=0x0
phy_xaui_rx_polarity_flip_37.0=0x0
phy_xaui_rx_polarity_flip_38.0=0x7
phy_xaui_rx_polarity_flip_39.0=0x3
phy_xaui_rx_polarity_flip_40.0=0x1
phy_xaui_rx_polarity_flip_41.0=0x0
phy_xaui_rx_polarity_flip_42.0=0x4
phy_xaui_rx_polarity_flip_43.0=0x2
phy_xaui_rx_polarity_flip_44.0=0x1
phy_xaui_rx_polarity_flip_45.0=0x0
phy_xaui_rx_polarity_flip_46.0=0x7
phy_xaui_rx_polarity_flip_47.0=0x3
phy_xaui_rx_polarity_flip_48.0=0x1
phy_xaui_rx_polarity_flip_49.0=0x0
phy_xaui_rx_polarity_flip_50.0=0x4
phy_xaui_rx_polarity_flip_51.0=0x2
phy_xaui_rx_polarity_flip_52.0=0x1
phy_xaui_rx_polarity_flip_53.0=0x0
phy_xaui_rx_polarity_flip_54.0=0x6
phy_xaui_rx_polarity_flip_55.0=0x3
phy_xaui_rx_polarity_flip_56.0=0x1
phy_xaui_rx_polarity_flip_57.0=0x0
phy_xaui_rx_polarity_flip_58.0=0x1
phy_xaui_rx_polarity_flip_61.0=0x2
phy_xaui_rx_polarity_flip_59.0=0x0
phy_xaui_rx_polarity_flip_60.0=0x0
phy_xaui_rx_polarity_flip_61.0=0x0
phy_xaui_rx_polarity_flip_62.0=0x2
phy_xaui_rx_polarity_flip_63.0=0x1
phy_xaui_rx_polarity_flip_64.0=0x0
phy_xaui_rx_polarity_flip_65.0=0x0
phy_xaui_rx_polarity_flip_68.0=0xd
phy_xaui_rx_polarity_flip_69.0=0x6
phy_xaui_rx_polarity_flip_70.0=0x3
phy_xaui_rx_polarity_flip_71.0=0x1
phy_xaui_rx_polarity_flip_72.0=0x6
phy_xaui_rx_polarity_flip_73.0=0x3
phy_xaui_rx_polarity_flip_74.0=0x1
phy_xaui_rx_polarity_flip_75.0=0x0
phy_xaui_rx_polarity_flip_76.0=0x1
phy_xaui_rx_polarity_flip_77.0=0x0
phy_xaui_rx_polarity_flip_78.0=0x0
phy_xaui_rx_polarity_flip_79.0=0x0
phy_xaui_rx_polarity_flip_80.0=0x8
phy_xaui_rx_polarity_flip_81.0=0x4
phy_xaui_rx_polarity_flip_82.0=0x2
phy_xaui_rx_polarity_flip_83.0=0x1
phy_xaui_rx_polarity_flip_84.0=0x7
phy_xaui_rx_polarity_flip_85.0=0x3
phy_xaui_rx_polarity_flip_86.0=0x1
phy_xaui_rx_polarity_flip_87.0=0x0
phy_xaui_rx_polarity_flip_88.0=0xc
phy_xaui_rx_polarity_flip_89.0=0x6
phy_xaui_rx_polarity_flip_90.0=0x3
phy_xaui_rx_polarity_flip_91.0=0x1
phy_xaui_rx_polarity_flip_92.0=0x7
phy_xaui_rx_polarity_flip_93.0=0x3
phy_xaui_rx_polarity_flip_94.0=0x1
phy_xaui_rx_polarity_flip_95.0=0x0
phy_xaui_rx_polarity_flip_96.0=0x8
phy_xaui_rx_polarity_flip_97.0=0x4
phy_xaui_rx_polarity_flip_98.0=0x2
phy_xaui_rx_polarity_flip_99.0=0x1
phy_xaui_rx_polarity_flip_102.0=0xb
phy_xaui_rx_polarity_flip_103.0=0x5
phy_xaui_rx_polarity_flip_104.0=0x2
phy_xaui_rx_polarity_flip_105.0=0x1
phy_xaui_rx_polarity_flip_106.0=0xc
phy_xaui_rx_polarity_flip_107.0=0x6
phy_xaui_rx_polarity_flip_108.0=0x3
phy_xaui_rx_polarity_flip_109.0=0x1
phy_xaui_rx_polarity_flip_110.0=0x3
phy_xaui_rx_polarity_flip_111.0=0x1
phy_xaui_rx_polarity_flip_112.0=0x0
phy_xaui_rx_polarity_flip_113.0=0x0
phy_xaui_rx_polarity_flip_114.0=0xc
phy_xaui_rx_polarity_flip_115.0=0x6
phy_xaui_rx_polarity_flip_116.0=0x3
phy_xaui_rx_polarity_flip_117.0=0x1
phy_xaui_rx_polarity_flip_118.0=0xb
phy_xaui_rx_polarity_flip_119.0=0x5
phy_xaui_rx_polarity_flip_120.0=0x2
phy_xaui_rx_polarity_flip_121.0=0x1
phy_xaui_rx_polarity_flip_122.0=0x5
phy_xaui_rx_polarity_flip_123.0=0x2
phy_xaui_rx_polarity_flip_124.0=0x1
phy_xaui_rx_polarity_flip_125.0=0x0
phy_xaui_rx_polarity_flip_126.0=0x1
phy_xaui_rx_polarity_flip_127.0=0x0
phy_xaui_rx_polarity_flip_128.0=0x0
phy_xaui_rx_polarity_flip_129.0=0x0
phy_xaui_rx_polarity_flip_130.0=0x9
phy_xaui_rx_polarity_flip_131.0=0x4
phy_xaui_rx_polarity_flip_132.0=0x2
phy_xaui_rx_polarity_flip_133.0=0x1
phy_xaui_rx_polarity_flip_66.0=0x0
phy_xaui_rx_polarity_flip_100.0=0x0
phy_xaui_tx_polarity_flip_1.0=0x0
phy_xaui_tx_polarity_flip_2.0=0x0
phy_xaui_tx_polarity_flip_3.0=0x0
phy_xaui_tx_polarity_flip_4.0=0x0
phy_xaui_tx_polarity_flip_5.0=0xe
phy_xaui_tx_polarity_flip_6.0=0x7
phy_xaui_tx_polarity_flip_7.0=0x3
phy_xaui_tx_polarity_flip_8.0=0x1
phy_xaui_tx_polarity_flip_9.0=0x2
phy_xaui_tx_polarity_flip_10.0=0x1
phy_xaui_tx_polarity_flip_11.0=0x0
phy_xaui_tx_polarity_flip_12.0=0x0
phy_xaui_tx_polarity_flip_13.0=0xe
phy_xaui_tx_polarity_flip_14.0=0x7
phy_xaui_tx_polarity_flip_15.0=0x3
phy_xaui_tx_polarity_flip_16.0=0x1
phy_xaui_tx_polarity_flip_17.0=0xc
phy_xaui_tx_polarity_flip_18.0=0x6
phy_xaui_tx_polarity_flip_19.0=0x3
phy_xaui_tx_polarity_flip_20.0=0x1
phy_xaui_tx_polarity_flip_21.0=0xf
phy_xaui_tx_polarity_flip_22.0=0x7
phy_xaui_tx_polarity_flip_23.0=0x3
phy_xaui_tx_polarity_flip_24.0=0x1
phy_xaui_tx_polarity_flip_25.0=0xc
phy_xaui_tx_polarity_flip_26.0=0x6
phy_xaui_tx_polarity_flip_27.0=0x3
phy_xaui_tx_polarity_flip_28.0=0x1
phy_xaui_tx_polarity_flip_29.0=0xf
phy_xaui_tx_polarity_flip_30.0=0x7
phy_xaui_tx_polarity_flip_31.0=0x3
phy_xaui_tx_polarity_flip_32.0=0x1
phy_xaui_tx_polarity_flip_34.0=0x0
phy_xaui_tx_polarity_flip_35.0=0x0
phy_xaui_tx_polarity_flip_36.0=0x0
phy_xaui_tx_polarity_flip_37.0=0x0
phy_xaui_tx_polarity_flip_38.0=0xe
phy_xaui_tx_polarity_flip_39.0=0x7
phy_xaui_tx_polarity_flip_40.0=0x3
phy_xaui_tx_polarity_flip_41.0=0x1
phy_xaui_tx_polarity_flip_42.0=0x0
phy_xaui_tx_polarity_flip_43.0=0x0
phy_xaui_tx_polarity_flip_44.0=0x0
phy_xaui_tx_polarity_flip_45.0=0x0
phy_xaui_tx_polarity_flip_46.0=0xe
phy_xaui_tx_polarity_flip_47.0=0x7
phy_xaui_tx_polarity_flip_48.0=0x3
phy_xaui_tx_polarity_flip_49.0=0x1
phy_xaui_tx_polarity_flip_50.0=0xf
phy_xaui_tx_polarity_flip_51.0=0x7
phy_xaui_tx_polarity_flip_52.0=0x3
phy_xaui_tx_polarity_flip_53.0=0x1
phy_xaui_tx_polarity_flip_54.0=0xe
phy_xaui_tx_polarity_flip_55.0=0x7
phy_xaui_tx_polarity_flip_56.0=0x3
phy_xaui_tx_polarity_flip_57.0=0x1
phy_xaui_tx_polarity_flip_58.0=0x6
phy_xaui_tx_polarity_flip_61.0=0xb
phy_xaui_tx_polarity_flip_59.0=0x3
phy_xaui_tx_polarity_flip_60.0=0x1
phy_xaui_tx_polarity_flip_61.0=0x0
phy_xaui_tx_polarity_flip_62.0=0xb
phy_xaui_tx_polarity_flip_63.0=0x5
phy_xaui_tx_polarity_flip_64.0=0x2
phy_xaui_tx_polarity_flip_65.0=0x1
phy_xaui_tx_polarity_flip_68.0=0x9
phy_xaui_tx_polarity_flip_69.0=0x4
phy_xaui_tx_polarity_flip_70.0=0x2
phy_xaui_tx_polarity_flip_71.0=0x1
phy_xaui_tx_polarity_flip_72.0=0xb
phy_xaui_tx_polarity_flip_73.0=0x5
phy_xaui_tx_polarity_flip_74.0=0x2
phy_xaui_tx_polarity_flip_75.0=0x1
phy_xaui_tx_polarity_flip_76.0=0xd
phy_xaui_tx_polarity_flip_77.0=0x6
phy_xaui_tx_polarity_flip_78.0=0x3
phy_xaui_tx_polarity_flip_79.0=0x1
phy_xaui_tx_polarity_flip_80.0=0x9
phy_xaui_tx_polarity_flip_81.0=0x4
phy_xaui_tx_polarity_flip_82.0=0x2
phy_xaui_tx_polarity_flip_83.0=0x1
phy_xaui_tx_polarity_flip_84.0=0x6
phy_xaui_tx_polarity_flip_85.0=0x3
phy_xaui_tx_polarity_flip_86.0=0x1
phy_xaui_tx_polarity_flip_87.0=0x0
phy_xaui_tx_polarity_flip_88.0=0xc
phy_xaui_tx_polarity_flip_89.0=0x6
phy_xaui_tx_polarity_flip_90.0=0x3
phy_xaui_tx_polarity_flip_91.0=0x1
phy_xaui_tx_polarity_flip_92.0=0x9
phy_xaui_tx_polarity_flip_93.0=0x4
phy_xaui_tx_polarity_flip_94.0=0x2
phy_xaui_tx_polarity_flip_95.0=0x1
phy_xaui_tx_polarity_flip_96.0=0x9
phy_xaui_tx_polarity_flip_97.0=0x4
phy_xaui_tx_polarity_flip_98.0=0x2
phy_xaui_tx_polarity_flip_99.0=0x1
phy_xaui_tx_polarity_flip_102.0=0x6
phy_xaui_tx_polarity_flip_103.0=0x3
phy_xaui_tx_polarity_flip_104.0=0x1
phy_xaui_tx_polarity_flip_105.0=0x0
phy_xaui_tx_polarity_flip_106.0=0xb
phy_xaui_tx_polarity_flip_107.0=0x5
phy_xaui_tx_polarity_flip_108.0=0x2
phy_xaui_tx_polarity_flip_109.0=0x1
phy_xaui_tx_polarity_flip_110.0=0x6
phy_xaui_tx_polarity_flip_111.0=0x3
phy_xaui_tx_polarity_flip_112.0=0x1
phy_xaui_tx_polarity_flip_113.0=0x0
phy_xaui_tx_polarity_flip_114.0=0xb
phy_xaui_tx_polarity_flip_115.0=0x5
phy_xaui_tx_polarity_flip_116.0=0x2
phy_xaui_tx_polarity_flip_117.0=0x1
phy_xaui_tx_polarity_flip_118.0=0x6
phy_xaui_tx_polarity_flip_119.0=0x3
phy_xaui_tx_polarity_flip_120.0=0x1
phy_xaui_tx_polarity_flip_121.0=0x0
phy_xaui_tx_polarity_flip_122.0=0xf
phy_xaui_tx_polarity_flip_123.0=0x7
phy_xaui_tx_polarity_flip_124.0=0x3
phy_xaui_tx_polarity_flip_125.0=0x1
phy_xaui_tx_polarity_flip_126.0=0x6
phy_xaui_tx_polarity_flip_127.0=0x3
phy_xaui_tx_polarity_flip_128.0=0x1
phy_xaui_tx_polarity_flip_129.0=0x0
phy_xaui_tx_polarity_flip_130.0=0xc
phy_xaui_tx_polarity_flip_131.0=0x6
phy_xaui_tx_polarity_flip_132.0=0x3
phy_xaui_tx_polarity_flip_133.0=0x1
phy_xaui_tx_polarity_flip_66.0=0x0
phy_xaui_tx_polarity_flip_100.0=0x0
portmap_1.0=1:100
@ -245,7 +437,7 @@ xgxs_rx_lane_map_46.0=0x0321
xgxs_rx_lane_map_50.0=0x1230
xgxs_rx_lane_map_54.0=0x2301
xgxs_rx_lane_map_58.0=0x1230
xgxs_rx_lane_map_61.0=0x2103
xgxs_rx_lane_map_62.0=0x2103
xgxs_rx_lane_map_68.0=0x1230
xgxs_rx_lane_map_72.0=0x2301
xgxs_rx_lane_map_76.0=0x1230
@ -278,7 +470,7 @@ xgxs_tx_lane_map_46.0=0x0321
xgxs_tx_lane_map_50.0=0x0123
xgxs_tx_lane_map_54.0=0x1230
xgxs_tx_lane_map_58.0=0x2301
xgxs_tx_lane_map_61.0=0x1032
xgxs_tx_lane_map_62.0=0x1032
xgxs_tx_lane_map_68.0=0x0123
xgxs_tx_lane_map_72.0=0x1230
xgxs_tx_lane_map_76.0=0x2301

View File

@ -1,3 +1,7 @@
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
arl_clean_timeout_usec=15000000
asf_mem_profile.0=2
bcm_num_cos.0=8

View File

@ -1,3 +1,7 @@
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
arl_clean_timeout_usec=15000000
asf_mem_profile.0=2
bcm_num_cos.0=8

View File

@ -13,13 +13,14 @@
{%- if 'dualtor' in switch_subtype.lower() %}
{%- set IPinIP_sock = 'sai_tunnel_support=1
host_as_route_disable=1
sai_adjust_acl_drop_in_rx_drop=1
l3_ecmp_levels=2' -%}
{%- endif %}
{%- endif %}
{%- endif %}
{# The following is the common soc properties that used to be named "th2-a7260cx3-64-64x100G-t1.config.bcm" #}
l3_alpm_hit_skip=1
sai_adjust_acl_drop_in_rx_drop=1
PHY_AN_ALLOW_PLL_CHANGE=1
arl_clean_timeout_usec=15000000
asf_mem_profile=2

View File

@ -5,11 +5,12 @@
{%- if 'dualtor' in switch_subtype.lower() %}
{%- set IPinIP_sock = 'sai_tunnel_support=1
host_as_route_disable=1
sai_adjust_acl_drop_in_rx_drop=1
l3_ecmp_levels=2' -%}
{%- endif %}
{%- endif %}
{# The following is the common soc properties that used to be named "th2-a7260cx3-64-112x50G+8x100G.config.bcm" #}
l3_alpm_hit_skip=1
sai_adjust_acl_drop_in_rx_drop=1
PHY_AN_ALLOW_PLL_CHANGE=1
arl_clean_timeout_usec=15000000
asf_mem_profile=2

View File

@ -13,12 +13,13 @@
{%- if 'dualtor' in switch_subtype.lower() %}
{%- set IPinIP_sock = 'sai_tunnel_support=1
host_as_route_disable=1
sai_adjust_acl_drop_in_rx_drop=1
l3_ecmp_levels=2' -%}
{%- endif %}
{%- endif %}
{%- endif %}
{# The following is the common soc properties that used to be named "th2-a7260cx3-64-64x40G.config.bcm" #}
l3_alpm_hit_skip=1
sai_adjust_acl_drop_in_rx_drop=1
PHY_AN_ALLOW_PLL_CHANGE=1
arl_clean_timeout_usec=15000000
asf_mem_profile=2

View File

@ -1,2 +1,5 @@
start_chassis_db=1
chassis_db_address=127.100.1.1
lag_id_start=1
lag_id_end=128

View File

@ -0,0 +1,12 @@
{
"chassis": {
"name": "DCS-7800A-SUP1A",
"components": [],
"fans": [],
"fan_drawers": [],
"psus": [],
"thermals": [],
"sfps": []
},
"interfaces": {}
}

View File

@ -1,51 +1,51 @@
# name lanes alias index role speed
Ethernet0 6,7 Ethernet1/1 1 Ext 100000
Ethernet4 2,3 Ethernet2/1 2 Ext 100000
Ethernet8 4,5 Ethernet3/1 3 Ext 100000
Ethernet12 0,1 Ethernet4/1 4 Ext 100000
Ethernet16 14,15 Ethernet5/1 5 Ext 100000
Ethernet20 10,11 Ethernet6/1 6 Ext 100000
Ethernet24 12,13 Ethernet7/1 7 Ext 100000
Ethernet28 8,9 Ethernet8/1 8 Ext 100000
Ethernet32 22,23 Ethernet9/1 9 Ext 100000
Ethernet36 18,19 Ethernet10/1 10 Ext 100000
Ethernet40 20,21 Ethernet11/1 11 Ext 100000
Ethernet44 16,17 Ethernet12/1 12 Ext 100000
Ethernet48 30,31 Ethernet13/1 13 Ext 100000
Ethernet52 26,27 Ethernet14/1 14 Ext 100000
Ethernet56 28,29 Ethernet15/1 15 Ext 100000
Ethernet60 24,25 Ethernet16/1 16 Ext 100000
Ethernet64 38,39 Ethernet17/1 17 Ext 100000
Ethernet68 34,35 Ethernet18/1 18 Ext 100000
Ethernet72 36,37 Ethernet19/1 19 Ext 100000
Ethernet76 32,33 Ethernet20/1 20 Ext 100000
Ethernet80 46,47 Ethernet21/1 21 Ext 100000
Ethernet84 42,43 Ethernet22/1 22 Ext 100000
Ethernet88 44,45 Ethernet23/1 23 Ext 100000
Ethernet92 40,41 Ethernet24/1 24 Ext 100000
Ethernet96 94,95 Ethernet25/1 25 Ext 100000
Ethernet100 90,91 Ethernet26/1 26 Ext 100000
Ethernet104 92,93 Ethernet27/1 27 Ext 100000
Ethernet108 88,89 Ethernet28/1 28 Ext 100000
Ethernet112 86,87 Ethernet29/1 29 Ext 100000
Ethernet116 82,83 Ethernet30/1 30 Ext 100000
Ethernet120 84,85 Ethernet31/1 31 Ext 100000
Ethernet124 80,81 Ethernet32/1 32 Ext 100000
Ethernet128 78,79 Ethernet33/1 33 Ext 100000
Ethernet132 74,75 Ethernet34/1 34 Ext 100000
Ethernet136 76,77 Ethernet35/1 35 Ext 100000
Ethernet140 72,73 Ethernet36/1 36 Ext 100000
Ethernet144 70,71 Ethernet37/1 37 Ext 100000
Ethernet148 66,67 Ethernet38/1 38 Ext 100000
Ethernet152 68,69 Ethernet39/1 39 Ext 100000
Ethernet156 64,65 Ethernet40/1 40 Ext 100000
Ethernet160 62,63 Ethernet41/1 41 Ext 100000
Ethernet164 58,59 Ethernet42/1 42 Ext 100000
Ethernet168 60,61 Ethernet43/1 43 Ext 100000
Ethernet172 56,57 Ethernet44/1 44 Ext 100000
Ethernet176 54,55 Ethernet45/1 45 Ext 100000
Ethernet180 50,51 Ethernet46/1 46 Ext 100000
Ethernet184 52,53 Ethernet47/1 47 Ext 100000
Ethernet188 48,49 Ethernet48/1 48 Ext 100000
Recirc0 221 Recirc0/0 51 Rec 400000
Recirc1 222 Recirc0/1 52 Rec 400000
# name lanes alias index role speed coreId corePortId numVoq
Ethernet0 6,7 Ethernet1/1 1 Ext 100000 0 1 8
Ethernet4 2,3 Ethernet2/1 2 Ext 100000 0 2 8
Ethernet8 4,5 Ethernet3/1 3 Ext 100000 0 3 8
Ethernet12 0,1 Ethernet4/1 4 Ext 100000 0 4 8
Ethernet16 14,15 Ethernet5/1 5 Ext 100000 0 5 8
Ethernet20 10,11 Ethernet6/1 6 Ext 100000 0 6 8
Ethernet24 12,13 Ethernet7/1 7 Ext 100000 0 7 8
Ethernet28 8,9 Ethernet8/1 8 Ext 100000 0 8 8
Ethernet32 22,23 Ethernet9/1 9 Ext 100000 0 9 8
Ethernet36 18,19 Ethernet10/1 10 Ext 100000 0 10 8
Ethernet40 20,21 Ethernet11/1 11 Ext 100000 0 11 8
Ethernet44 16,17 Ethernet12/1 12 Ext 100000 0 12 8
Ethernet48 30,31 Ethernet13/1 13 Ext 100000 0 13 8
Ethernet52 26,27 Ethernet14/1 14 Ext 100000 0 14 8
Ethernet56 28,29 Ethernet15/1 15 Ext 100000 0 15 8
Ethernet60 24,25 Ethernet16/1 16 Ext 100000 0 16 8
Ethernet64 38,39 Ethernet17/1 17 Ext 100000 0 17 8
Ethernet68 34,35 Ethernet18/1 18 Ext 100000 0 18 8
Ethernet72 36,37 Ethernet19/1 19 Ext 100000 0 19 8
Ethernet76 32,33 Ethernet20/1 20 Ext 100000 0 20 8
Ethernet80 46,47 Ethernet21/1 21 Ext 100000 0 21 8
Ethernet84 42,43 Ethernet22/1 22 Ext 100000 0 22 8
Ethernet88 44,45 Ethernet23/1 23 Ext 100000 0 23 8
Ethernet92 40,41 Ethernet24/1 24 Ext 100000 0 24 8
Ethernet96 94,95 Ethernet25/1 25 Ext 100000 1 25 8
Ethernet100 90,91 Ethernet26/1 26 Ext 100000 1 26 8
Ethernet104 92,93 Ethernet27/1 27 Ext 100000 1 27 8
Ethernet108 88,89 Ethernet28/1 28 Ext 100000 1 28 8
Ethernet112 86,87 Ethernet29/1 29 Ext 100000 1 29 8
Ethernet116 82,83 Ethernet30/1 30 Ext 100000 1 30 8
Ethernet120 84,85 Ethernet31/1 31 Ext 100000 1 31 8
Ethernet124 80,81 Ethernet32/1 32 Ext 100000 1 32 8
Ethernet128 78,79 Ethernet33/1 33 Ext 100000 1 33 8
Ethernet132 74,75 Ethernet34/1 34 Ext 100000 1 34 8
Ethernet136 76,77 Ethernet35/1 35 Ext 100000 1 35 8
Ethernet140 72,73 Ethernet36/1 36 Ext 100000 1 36 8
Ethernet144 70,71 Ethernet37/1 37 Ext 100000 1 37 8
Ethernet148 66,67 Ethernet38/1 38 Ext 100000 1 38 8
Ethernet152 68,69 Ethernet39/1 39 Ext 100000 1 39 8
Ethernet156 64,65 Ethernet40/1 40 Ext 100000 1 40 8
Ethernet160 62,63 Ethernet41/1 41 Ext 100000 1 41 8
Ethernet164 58,59 Ethernet42/1 42 Ext 100000 1 42 8
Ethernet168 60,61 Ethernet43/1 43 Ext 100000 1 43 8
Ethernet172 56,57 Ethernet44/1 44 Ext 100000 1 44 8
Ethernet176 54,55 Ethernet45/1 45 Ext 100000 1 45 8
Ethernet180 50,51 Ethernet46/1 46 Ext 100000 1 46 8
Ethernet184 52,53 Ethernet47/1 47 Ext 100000 1 47 8
Ethernet188 48,49 Ethernet48/1 48 Ext 100000 1 48 8
Ethernet-Rec0 221 Recirc0/0 51 Rec 400000 0 221 8
Ethernet-IB0 222 Recirc0/1 52 Inb 400000 1 222 8

View File

@ -0,0 +1 @@
Arista-7800R3-48CQ2-C48 t1

View File

@ -0,0 +1,173 @@
{
"chassis": {
"name": "7800R3-48CQ2-LC",
"components": [],
"fans": [],
"fan_drawers": [],
"psus": [],
"thermals": [
{
"name": "Cpu temp sensor"
},
{
"name": "Center back"
},
{
"name": "Fap0 core0"
},
{
"name": "Fap0 core1"
},
{
"name": "PCIE"
}
],
"sfps": [
{
"name": "qsfp1"
},
{
"name": "qsfp2"
},
{
"name": "qsfp3"
},
{
"name": "qsfp4"
},
{
"name": "qsfp5"
},
{
"name": "qsfp6"
},
{
"name": "qsfp7"
},
{
"name": "qsfp8"
},
{
"name": "qsfp9"
},
{
"name": "qsfp10"
},
{
"name": "qsfp11"
},
{
"name": "qsfp12"
},
{
"name": "qsfp13"
},
{
"name": "qsfp14"
},
{
"name": "qsfp15"
},
{
"name": "qsfp16"
},
{
"name": "qsfp17"
},
{
"name": "qsfp18"
},
{
"name": "qsfp19"
},
{
"name": "qsfp20"
},
{
"name": "qsfp21"
},
{
"name": "qsfp22"
},
{
"name": "qsfp23"
},
{
"name": "qsfp24"
},
{
"name": "qsfp25"
},
{
"name": "qsfp26"
},
{
"name": "qsfp27"
},
{
"name": "qsfp28"
},
{
"name": "qsfp29"
},
{
"name": "qsfp30"
},
{
"name": "qsfp31"
},
{
"name": "qsfp32"
},
{
"name": "qsfp33"
},
{
"name": "qsfp34"
},
{
"name": "qsfp35"
},
{
"name": "qsfp36"
},
{
"name": "qsfp37"
},
{
"name": "qsfp38"
},
{
"name": "qsfp39"
},
{
"name": "qsfp40"
},
{
"name": "qsfp41"
},
{
"name": "qsfp42"
},
{
"name": "qsfp43"
},
{
"name": "qsfp44"
},
{
"name": "qsfp45"
},
{
"name": "qsfp46"
},
{
"name": "qsfp47"
},
{
"name": "qsfp48"
}
]
},
"interfaces": {}
}

View File

@ -0,0 +1,82 @@
{
"CONTEXTS": [
{
"guid" : 0,
"name" : "asic0",
"dbAsic" : "ASIC_DB",
"dbCounters" : "COUNTERS_DB",
"dbFlex": "FLEX_COUNTER_DB",
"dbState" : "STATE_DB",
"zmq_enable" : false,
"zmq_endpoint": "tcp://127.0.0.1:5555",
"zmq_ntf_endpoint": "tcp://127.0.0.1:5556",
"switches": [
{
"index" : 0,
"hwinfo" : ""
}
]
},
{
"guid" : 1,
"name" : "phys",
"dbAsic" : "GB_ASIC_DB",
"dbCounters" : "GB_COUNTERS_DB",
"dbFlex": "GB_FLEX_COUNTER_DB",
"dbState" : "STATE_DB",
"zmq_enable" : false,
"zmq_endpoint": "tcp://127.0.0.1:5565",
"zmq_ntf_endpoint": "tcp://127.0.0.1:5566",
"switches": [
{
"index" : 0,
"hwinfo" : "mdio0_0_0/0"
},
{
"index" : 1,
"hwinfo" : "mdio1_0_0/0"
},
{
"index" : 2,
"hwinfo" : "mdio2_0_0/0"
},
{
"index" : 3,
"hwinfo" : "mdio3_0_0/0"
},
{
"index" : 4,
"hwinfo" : "mdio4_0_0/0"
},
{
"index" : 5,
"hwinfo" : "mdio5_0_0/0"
},
{
"index" : 6,
"hwinfo" : "mdio6_0_0/0"
},
{
"index" : 7,
"hwinfo" : "mdio7_0_0/0"
},
{
"index" : 8,
"hwinfo" : "mdio8_0_0/0"
},
{
"index" : 9,
"hwinfo" : "mdio9_0_0/0"
},
{
"index" : 10,
"hwinfo" : "mdio10_0_0/0"
},
{
"index" : 11,
"hwinfo" : "mdio11_0_0/0"
}
]
}
]
}

View File

@ -0,0 +1,37 @@
<?xml version="1.0"?>
<root>
<name>CSDK-B52</name>
<phy_addr>0</phy_addr>
<mode>gearbox</mode>
<topology>2</topology>
<tx-taps>
<PAM4>2,-8,17,0,0</PAM4>
<NRZ>0,-8,17,0,0</NRZ>
</tx-taps>
<tx-taps-scale>0,0,1,0,0</tx-taps-scale>
<lane id="0" system-side="true" />
<lane id="1" system-side="true" />
<lane id="2" system-side="true" />
<lane id="3" system-side="true" />
<lane id="4" system-side="true" />
<lane id="5" system-side="true" />
<lane id="6" system-side="true" />
<lane id="7" system-side="true" />
<lane id="8" system-side="false" />
<lane id="9" system-side="false" />
<lane id="10" system-side="false" />
<lane id="11" system-side="false" />
<lane id="12" system-side="false" />
<lane id="13" system-side="false" />
<lane id="14" system-side="false" />
<lane id="15" system-side="false" />
<lane id="16" system-side="false" />
<lane id="17" system-side="false" />
<lane id="18" system-side="false" />
<lane id="19" system-side="false" />
<lane id="20" system-side="false" />
<lane id="21" system-side="false" />
<lane id="22" system-side="false" />
<lane id="23" system-side="false" />
</root>

View File

@ -0,0 +1,498 @@
{
"phys": [
{
"phy_id": 1,
"name": "phy1",
"address": "1",
"lib_name": "",
"firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin",
"config_file": "/usr/share/sonic/hwsku/phy1_config.json",
"sai_init_config_file": "",
"phy_access": "mdio",
"bus_id": 0,
"context_id": 1,
"hwinfo": "mdio0_0_0/0"
},
{
"phy_id": 2,
"name": "phy2",
"address": "2",
"lib_name": "",
"firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin",
"config_file": "/usr/share/sonic/hwsku/phy2_config.json",
"sai_init_config_file": "",
"phy_access": "mdio",
"bus_id": 0,
"context_id": 1,
"hwinfo": "mdio1_0_0/0"
},
{
"phy_id": 3,
"name": "phy3",
"address": "3",
"lib_name": "",
"firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin",
"config_file": "/usr/share/sonic/hwsku/phy3_config.json",
"sai_init_config_file": "",
"phy_access": "mdio",
"bus_id": 0,
"context_id": 1,
"hwinfo": "mdio2_0_0/0"
},
{
"phy_id": 4,
"name": "phy4",
"address": "4",
"lib_name": "",
"firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin",
"config_file": "/usr/share/sonic/hwsku/phy4_config.json",
"sai_init_config_file": "",
"phy_access": "mdio",
"bus_id": 0,
"context_id": 1,
"hwinfo": "mdio3_0_0/0"
},
{
"phy_id": 5,
"name": "phy5",
"address": "5",
"lib_name": "",
"firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin",
"config_file": "/usr/share/sonic/hwsku/phy5_config.json",
"sai_init_config_file": "",
"phy_access": "mdio",
"bus_id": 0,
"context_id": 1,
"hwinfo": "mdio4_0_0/0"
},
{
"phy_id": 6,
"name": "phy6",
"address": "6",
"lib_name": "",
"firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin",
"config_file": "/usr/share/sonic/hwsku/phy6_config.json",
"sai_init_config_file": "",
"phy_access": "mdio",
"bus_id": 0,
"context_id": 1,
"hwinfo": "mdio5_0_0/0"
},
{
"phy_id": 7,
"name": "phy7",
"address": "7",
"lib_name": "",
"firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin",
"config_file": "/usr/share/sonic/hwsku/phy7_config.json",
"sai_init_config_file": "",
"phy_access": "mdio",
"bus_id": 0,
"context_id": 1,
"hwinfo": "mdio6_0_0/0"
},
{
"phy_id": 8,
"name": "phy8",
"address": "8",
"lib_name": "",
"firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin",
"config_file": "/usr/share/sonic/hwsku/phy8_config.json",
"sai_init_config_file": "",
"phy_access": "mdio",
"bus_id": 0,
"context_id": 1,
"hwinfo": "mdio7_0_0/0"
},
{
"phy_id": 9,
"name": "phy9",
"address": "9",
"lib_name": "",
"firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin",
"config_file": "/usr/share/sonic/hwsku/phy9_config.json",
"sai_init_config_file": "",
"phy_access": "mdio",
"bus_id": 0,
"context_id": 1,
"hwinfo": "mdio8_0_0/0"
},
{
"phy_id": 10,
"name": "phy10",
"address": "10",
"lib_name": "",
"firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin",
"config_file": "/usr/share/sonic/hwsku/phy10_config.json",
"sai_init_config_file": "",
"phy_access": "mdio",
"bus_id": 0,
"context_id": 1,
"hwinfo": "mdio9_0_0/0"
},
{
"phy_id": 11,
"name": "phy11",
"address": "11",
"lib_name": "",
"firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin",
"config_file": "/usr/share/sonic/hwsku/phy11_config.json",
"sai_init_config_file": "",
"phy_access": "mdio",
"bus_id": 0,
"context_id": 1,
"hwinfo": "mdio10_0_0/0"
},
{
"phy_id": 12,
"name": "phy12",
"address": "12",
"lib_name": "",
"firmware_path": "/usr/etc/credo/firmware/owl.lz4.fw.1.92.1.bin",
"config_file": "/usr/share/sonic/hwsku/phy12_config.json",
"sai_init_config_file": "",
"phy_access": "mdio",
"bus_id": 0,
"context_id": 1,
"hwinfo": "mdio11_0_0/0"
}
],
"interfaces": [
{
"name": "Ethernet0",
"index": 1,
"phy_id": 1,
"system_lanes": [6,7],
"line_lanes": [8,9,10,11]
},
{
"name": "Ethernet4",
"index": 2,
"phy_id": 1,
"system_lanes": [2,3],
"line_lanes": [16,17,18,19]
},
{
"name": "Ethernet8",
"index": 3,
"phy_id": 1,
"system_lanes": [4,5],
"line_lanes": [20,21,22,23]
},
{
"name": "Ethernet12",
"index": 4,
"phy_id": 1,
"system_lanes": [0,1],
"line_lanes": [12,13,14,15]
},
{
"name": "Ethernet16",
"index": 5,
"phy_id": 2,
"system_lanes": [6,7],
"line_lanes": [8,9,10,11]
},
{
"name": "Ethernet20",
"index": 6,
"phy_id": 2,
"system_lanes": [2,3],
"line_lanes": [16,17,18,19]
},
{
"name": "Ethernet24",
"index": 7,
"phy_id": 2,
"system_lanes": [4,5],
"line_lanes": [20,21,22,23]
},
{
"name": "Ethernet28",
"index": 8,
"phy_id": 2,
"system_lanes": [0,1],
"line_lanes": [12,13,14,15]
},
{
"name": "Ethernet32",
"index": 9,
"phy_id": 3,
"system_lanes": [6,7],
"line_lanes": [8,9,10,11]
},
{
"name": "Ethernet36",
"index": 10,
"phy_id": 3,
"system_lanes": [2,3],
"line_lanes": [16,17,18,19]
},
{
"name": "Ethernet40",
"index": 11,
"phy_id": 3,
"system_lanes": [4,5],
"line_lanes": [20,21,22,23]
},
{
"name": "Ethernet44",
"index": 12,
"phy_id": 3,
"system_lanes": [0,1],
"line_lanes": [12,13,14,15]
},
{
"name": "Ethernet48",
"index": 13,
"phy_id": 4,
"system_lanes": [6,7],
"line_lanes": [8,9,10,11]
},
{
"name": "Ethernet52",
"index": 14,
"phy_id": 4,
"system_lanes": [2,3],
"line_lanes": [16,17,18,19]
},
{
"name": "Ethernet56",
"index": 15,
"phy_id": 4,
"system_lanes": [4,5],
"line_lanes": [20,21,22,23]
},
{
"name": "Ethernet60",
"index": 16,
"phy_id": 4,
"system_lanes": [0,1],
"line_lanes": [12,13,14,15]
},
{
"name": "Ethernet64",
"index": 17,
"phy_id": 5,
"system_lanes": [6,7],
"line_lanes": [8,9,10,11]
},
{
"name": "Ethernet68",
"index": 18,
"phy_id": 5,
"system_lanes": [2,3],
"line_lanes": [16,17,18,19]
},
{
"name": "Ethernet72",
"index": 19,
"phy_id": 5,
"system_lanes": [4,5],
"line_lanes": [20,21,22,23]
},
{
"name": "Ethernet76",
"index": 20,
"phy_id": 5,
"system_lanes": [0,1],
"line_lanes": [12,13,14,15]
},
{
"name": "Ethernet80",
"index": 21,
"phy_id": 6,
"system_lanes": [6,7],
"line_lanes": [8,9,10,11]
},
{
"name": "Ethernet84",
"index": 22,
"phy_id": 6,
"system_lanes": [2,3],
"line_lanes": [16,17,18,19]
},
{
"name": "Ethernet88",
"index": 23,
"phy_id": 6,
"system_lanes": [4,5],
"line_lanes": [20,21,22,23]
},
{
"name": "Ethernet92",
"index": 24,
"phy_id": 6,
"system_lanes": [0,1],
"line_lanes": [12,13,14,15]
},
{
"name": "Ethernet96",
"index": 25,
"phy_id": 7,
"system_lanes": [6,7],
"line_lanes": [8,9,10,11]
},
{
"name": "Ethernet100",
"index": 26,
"phy_id": 7,
"system_lanes": [2,3],
"line_lanes": [16,17,18,19]
},
{
"name": "Ethernet104",
"index": 27,
"phy_id": 7,
"system_lanes": [4,5],
"line_lanes": [20,21,22,23]
},
{
"name": "Ethernet108",
"index": 28,
"phy_id": 7,
"system_lanes": [0,1],
"line_lanes": [12,13,14,15]
},
{
"name": "Ethernet112",
"index": 29,
"phy_id": 8,
"system_lanes": [6,7],
"line_lanes": [8,9,10,11]
},
{
"name": "Ethernet116",
"index": 30,
"phy_id": 8,
"system_lanes": [2,3],
"line_lanes": [16,17,18,19]
},
{
"name": "Ethernet120",
"index": 31,
"phy_id": 8,
"system_lanes": [4,5],
"line_lanes": [20,21,22,23]
},
{
"name": "Ethernet124",
"index": 32,
"phy_id": 8,
"system_lanes": [0,1],
"line_lanes": [12,13,14,15]
},
{
"name": "Ethernet128",
"index": 33,
"phy_id": 9,
"system_lanes": [6,7],
"line_lanes": [8,9,10,11]
},
{
"name": "Ethernet132",
"index": 34,
"phy_id": 9,
"system_lanes": [2,3],
"line_lanes": [16,17,18,19]
},
{
"name": "Ethernet136",
"index": 35,
"phy_id": 9,
"system_lanes": [4,5],
"line_lanes": [20,21,22,23]
},
{
"name": "Ethernet140",
"index": 36,
"phy_id": 9,
"system_lanes": [0,1],
"line_lanes": [12,13,14,15]
},
{
"name": "Ethernet144",
"index": 37,
"phy_id": 10,
"system_lanes": [6,7],
"line_lanes": [8,9,10,11]
},
{
"name": "Ethernet148",
"index": 38,
"phy_id": 10,
"system_lanes": [2,3],
"line_lanes": [16,17,18,19]
},
{
"name": "Ethernet152",
"index": 39,
"phy_id": 10,
"system_lanes": [4,5],
"line_lanes": [20,21,22,23]
},
{
"name": "Ethernet156",
"index": 40,
"phy_id": 10,
"system_lanes": [0,1],
"line_lanes": [12,13,14,15]
},
{
"name": "Ethernet160",
"index": 41,
"phy_id": 11,
"system_lanes": [6,7],
"line_lanes": [8,9,10,11]
},
{
"name": "Ethernet164",
"index": 42,
"phy_id": 11,
"system_lanes": [2,3],
"line_lanes": [16,17,18,19]
},
{
"name": "Ethernet168",
"index": 43,
"phy_id": 11,
"system_lanes": [4,5],
"line_lanes": [20,21,22,23]
},
{
"name": "Ethernet172",
"index": 44,
"phy_id": 11,
"system_lanes": [0,1],
"line_lanes": [12,13,14,15]
},
{
"name": "Ethernet176",
"index": 45,
"phy_id": 12,
"system_lanes": [6,7],
"line_lanes": [8,9,10,11]
},
{
"name": "Ethernet180",
"index": 46,
"phy_id": 12,
"system_lanes": [2,3],
"line_lanes": [16,17,18,19]
},
{
"name": "Ethernet184",
"index": 47,
"phy_id": 12,
"system_lanes": [4,5],
"line_lanes": [20,21,22,23]
},
{
"name": "Ethernet188",
"index": 48,
"phy_id": 12,
"system_lanes": [0,1],
"line_lanes": [12,13,14,15]
}
]
}

View File

@ -0,0 +1 @@
../../x86_64-arista_7800r3_48cq2_lc/Arista-7800R3-48CQ2-C48/jr2-a7280cr3-32d4-40x100G.config.bcm

View File

@ -0,0 +1,101 @@
{
"lanes": [
{
"index": 200,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": ""
}
],
"ports": [
{
"index": 37,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 38,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 39,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 40,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
}
]
}

View File

@ -0,0 +1,101 @@
{
"lanes": [
{
"index": 200,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": ""
}
],
"ports": [
{
"index": 41,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 42,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 43,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 44,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
}
]
}

View File

@ -0,0 +1,101 @@
{
"lanes": [
{
"index": 200,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": ""
}
],
"ports": [
{
"index": 45,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 46,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 47,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 48,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
}
]
}

View File

@ -0,0 +1,101 @@
{
"lanes": [
{
"index": 200,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": ""
}
],
"ports": [
{
"index": 1,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 2,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 3,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 4,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
}
]
}

View File

@ -0,0 +1,101 @@
{
"lanes": [
{
"index": 200,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": ""
}
],
"ports": [
{
"index": 5,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 6,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 7,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 8,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
}
]
}

View File

@ -0,0 +1,101 @@
{
"lanes": [
{
"index": 200,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": ""
}
],
"ports": [
{
"index": 9,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 10,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 11,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 12,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
}
]
}

View File

@ -0,0 +1,101 @@
{
"lanes": [
{
"index": 200,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": ""
}
],
"ports": [
{
"index": 13,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 14,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 15,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 16,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
}
]
}

View File

@ -0,0 +1,101 @@
{
"lanes": [
{
"index": 200,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": ""
}
],
"ports": [
{
"index": 17,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 18,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 19,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 20,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
}
]
}

View File

@ -0,0 +1,101 @@
{
"lanes": [
{
"index": 200,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": ""
}
],
"ports": [
{
"index": 21,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 22,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 23,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 24,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
}
]
}

View File

@ -0,0 +1,101 @@
{
"lanes": [
{
"index": 200,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": ""
}
],
"ports": [
{
"index": 25,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 26,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 27,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 28,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
}
]
}

View File

@ -0,0 +1,101 @@
{
"lanes": [
{
"index": 200,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": ""
}
],
"ports": [
{
"index": 29,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 30,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 31,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 32,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
}
]
}

View File

@ -0,0 +1,101 @@
{
"lanes": [
{
"index": 200,
"local_lane_id": 0,
"system_side": true,
"tx_polarity": 0,
"rx_polarity": 0,
"line_tx_lanemap": 0,
"line_rx_lanemap": 0,
"line_to_system_lanemap": 0,
"mdio_addr": ""
}
],
"ports": [
{
"index": 33,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 34,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 35,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
},
{
"index": 36,
"mdio_addr": "",
"system_speed": 50000,
"system_fec": "rs",
"system_auto_neg": false,
"system_loopback": "none",
"system_training": false,
"line_speed": 25000,
"line_fec": "rs",
"line_auto_neg": false,
"line_loopback": "none",
"line_training": false,
"line_media_type": "fiber",
"line_intf_type": "none",
"line_adver_speed": [],
"line_adver_fec": [],
"line_adver_auto_neg": false,
"line_adver_asym_pause": false,
"line_adver_media_type": "fiber"
}
]
}

View File

@ -0,0 +1 @@
../../x86_64-arista_7800r3_48cq2_lc/Arista-7800R3-48CQ2-C48/port_config.ini

View File

@ -0,0 +1 @@
SAI_KEY_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/gearbox_100G_PAM4.xml

View File

@ -0,0 +1 @@
../../x86_64-arista_7800r3_48cq2_lc/Arista-7800R3-48CQ2-C48/sai.profile

View File

@ -0,0 +1 @@
../x86_64-arista_7800r3_48cq2_lc/chassisdb.conf

View File

@ -0,0 +1 @@
Arista-7800R3-48CQM2-C48 t1

View File

@ -0,0 +1 @@
platform=gbsyncd-credo

View File

@ -0,0 +1 @@
../x86_64-arista_7800r3_48cq2_lc/platform.json

View File

@ -3,6 +3,7 @@
"devices_to_ignore": [
"asic",
"psu.temperature",
"psu.voltage",
"PSU2 Fan",
"PSU1 Fan"
],

View File

@ -0,0 +1,8 @@
{
"chassis": {
"Newport": {
"component": {
}
}
}
}

View File

@ -0,0 +1,8 @@
{
"chassis": {
"Wedge100BF-32X-O-AC-F-BF": {
"component": {
}
}
}
}

View File

@ -0,0 +1,8 @@
{
"chassis": {
"Wedge100BF-65X-O-AC-F-BF": {
"component": {
}
}
}
}

View File

@ -1,3 +1,9 @@
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
portmap_1=1:100
portmap_2=5:100
portmap_3=9:100

View File

@ -1,3 +1,9 @@
# disables bcmALPMDH (ALPM distributed hitbit) thread. This thread is purely for debug purpose
l3_alpm_hit_skip=1
# Disable Counting ACL Drop towards interface RX_DRP counter
sai_adjust_acl_drop_in_rx_drop=1
bcm56340_4x10=1
bcm56340_config=1
dport_map_direct=0

View File

@ -0,0 +1,224 @@
{
"interfaces": {
"Ethernet0": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet1": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet2": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet3": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet4": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet5": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet6": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet7": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet8": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet9": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet10": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet11": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet12": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet13": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet14": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet15": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet16": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet17": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet18": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet19": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet20": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet21": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet22": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet23": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet24": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet25": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet26": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet27": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet28": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet29": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet30": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet31": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet32": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet33": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet34": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet35": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet36": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet37": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet38": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet39": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet40": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet41": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet42": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet43": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet44": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet45": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet46": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet47": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet48": {
"default_brkout_mode": "1x10G",
"port_type": "SFP+"
},
"Ethernet49": {
"default_brkout_mode": "1x10G",
"port_type": "SFP+"
},
"Ethernet50": {
"default_brkout_mode": "1x10G",
"port_type": "SFP+"
},
"Ethernet51": {
"default_brkout_mode": "1x10G",
"port_type": "SFP+"
},
"Ethernet52": {
"default_brkout_mode": "1x1G",
"port_type": "RJ45"
},
"Ethernet53": {
"default_brkout_mode": "1x21G",
"port_type": "RJ45"
},
"Ethernet54": {
"default_brkout_mode": "1x21G",
"port_type": "RJ45"
}
}
}

View File

@ -0,0 +1,262 @@
{
"chassis": {
"name": "Celestica-E1031-T48S4",
"components": [
{
"name": "SMC_CPLD"
},
{
"name": "MMC_CPLD"
},
{
"name": "BIOS"
}
],
"fans": [
{
"name": "FAN-1"
},
{
"name": "FAN-2"
},
{
"name": "FAN-3"
}
],
"fan_drawers": [
{
"name": "Drawer1",
"fans": [
{
"name": "FAN-1"
}
]
},
{
"name": "Drawer2",
"fans": [
{
"name": "FAN-2"
}
]
},
{
"name": "Drawer3",
"fans": [
{
"name": "FAN-3"
}
]
}
],
"psus": [
{
"name": "PSU-R",
"fans": [
{
"name": "PSU-1 FAN-1"
}
]
},
{
"name": "PSU-L",
"fans": [
{
"name": "PSU-2 FAN-1"
}
]
}
],
"thermals": [
{
"name": "Inlet ambient sensor (Rear to Front)"
},
{
"name": "Helix shutdown sensor (Rear to Front)"
},
{
"name": "Inlet ambient sensor (Front to Rear, right)"
},
{
"name": "Helix shutdown sensor (Front to Rear)"
},
{
"name": "Inlet ambient sensor (Front to Rear, left)"
},
{
"name": "CPU errata sensor (Front to Rear)"
},
{
"name": "CPU errata sensor (Rear to Front)"
}
],
"sfps": [
{
"name": "Ethernet0"
},
{
"name": "Ethernet1"
},
{
"name": "Ethernet2"
},
{
"name": "Ethernet3"
},
{
"name": "Ethernet4"
},
{
"name": "Ethernet5"
},
{
"name": "Ethernet6"
},
{
"name": "Ethernet7"
},
{
"name": "Ethernet8"
},
{
"name": "Ethernet9"
},
{
"name": "Ethernet10"
},
{
"name": "Ethernet11"
},
{
"name": "Ethernet12"
},
{
"name": "Ethernet13"
},
{
"name": "Ethernet14"
},
{
"name": "Ethernet15"
},
{
"name": "Ethernet16"
},
{
"name": "Ethernet17"
},
{
"name": "Ethernet18"
},
{
"name": "Ethernet19"
},
{
"name": "Ethernet20"
},
{
"name": "Ethernet21"
},
{
"name": "Ethernet22"
},
{
"name": "Ethernet23"
},
{
"name": "Ethernet24"
},
{
"name": "Ethernet25"
},
{
"name": "Ethernet26"
},
{
"name": "Ethernet27"
},
{
"name": "Ethernet28"
},
{
"name": "Ethernet29"
},
{
"name": "Ethernet30"
},
{
"name": "Ethernet31"
},
{
"name": "Ethernet32"
},
{
"name": "Ethernet33"
},
{
"name": "Ethernet34"
},
{
"name": "Ethernet35"
},
{
"name": "Ethernet36"
},
{
"name": "Ethernet37"
},
{
"name": "Ethernet38"
},
{
"name": "Ethernet39"
},
{
"name": "Ethernet40"
},
{
"name": "Ethernet41"
},
{
"name": "Ethernet42"
},
{
"name": "Ethernet43"
},
{
"name": "Ethernet44"
},
{
"name": "Ethernet45"
},
{
"name": "Ethernet46"
},
{
"name": "Ethernet47"
},
{
"name": "Ethernet48"
},
{
"name": "Ethernet49"
},
{
"name": "Ethernet50"
},
{
"name": "Ethernet51"
},
{
"name": "Ethernet52"
},
{
"name": "Ethernet53"
},
{
"name": "Ethernet54"
}
]
},
"interfaces": {}
}

View File

@ -0,0 +1,11 @@
{
"chassis": {
"Celestica-E1031-T48S4": {
"component": {
"BIOS": {},
"SMC_CPLD": {},
"MMC_CPLD": {}
}
}
}
}

View File

@ -11,63 +11,17 @@ class SfpUtil(SfpUtilBase):
"""Platform-specific SfpUtil class"""
PORT_START = 1
PORT_END = 52
PORT_END = 55
SFP_PORT_START = 49
SFP_PORT_END = 52
port_to_i2c_mapping = {
1: None,
2: None,
3: None,
4: None,
5: None,
6: None,
7: None,
8: None,
9: None,
10: None,
11: None,
12: None,
13: None,
14: None,
15: None,
16: None,
17: None,
18: None,
19: None,
20: None,
21: None,
22: None,
23: None,
24: None,
25: None,
26: None,
27: None,
28: None,
29: None,
30: None,
31: None,
32: None,
33: None,
34: None,
35: None,
36: None,
37: None,
38: None,
39: None,
40: None,
41: None,
42: None,
43: None,
44: None,
45: None,
46: None,
47: None,
48: None,
49: 15,
50: 14,
51: 17,
52: 16
}
_port_to_eeprom_mapping = {}
_sfp_port = list(range(49, PORT_END + 1))
_sfp_port = list(range(SFP_PORT_START, SFP_PORT_END + 1))
@property
def port_start(self):
@ -89,7 +43,7 @@ class SfpUtil(SfpUtilBase):
# Override port_to_eeprom_mapping for class initialization
eeprom_path = '/sys/bus/i2c/devices/i2c-{0}/{0}-0050/eeprom'
for x in range(self.PORT_START, self.PORT_END + 1):
port_eeprom_path = eeprom_path.format(self.port_to_i2c_mapping[x])
port_eeprom_path = eeprom_path.format(self.port_to_i2c_mapping[x]) if x in self._sfp_port else None
self.port_to_eeprom_mapping[x] = port_eeprom_path
SfpUtilBase.__init__(self)
@ -103,7 +57,7 @@ class SfpUtil(SfpUtilBase):
try:
with open(sfp_modabs_path, 'r') as port_status:
status = int(port_status.read(), 16)
status = (status >> (port_num - 49)) & 1
status = (status >> (port_num - self.SFP_PORT_START)) & 1
except IOError:
return False
@ -138,7 +92,8 @@ class SfpUtil(SfpUtilBase):
for port_num in self._sfp_port:
change = (changes >> (port_num - 49)) & 1
if change == 1:
port_dict[str(port_num)] = str(int(self.get_presence(port_num)))
port_dict[str(port_num)] = str(
int(self.get_presence(port_num)))
found_flag = 1
if not found_flag:

View File

@ -6,25 +6,26 @@
#
#############################################################################
try:
import sys
from sonic_platform_base.sonic_sfp.sfputilhelper import SfpUtilHelper
from sonic_platform_base.chassis_base import ChassisBase
from sonic_py_common import device_info
from .common import Common
from .event import SfpEvent
except ImportError as e:
raise ImportError(str(e) + "- required module not found")
NUM_FAN_TRAY = 3
NUM_FAN = 1
NUM_PSU = 2
NUM_THERMAL = 7
NUM_SFP = 52
NUM_SFP = 55
NUM_COMPONENT = 3
RESET_REGISTER = "0x112"
HOST_REBOOT_CAUSE_PATH = "/host/reboot-cause/previous-reboot-cause.txt"
PMON_REBOOT_CAUSE_PATH = "/usr/share/sonic/platform/api_files/reboot-cause/previous-reboot-cause.txt"
HOST_CHK_CMD = "docker > /dev/null 2>&1"
STATUS_LED_PATH = "/sys/devices/platform/e1031.smc/master_led"
class Chassis(ChassisBase):
@ -32,66 +33,63 @@ class Chassis(ChassisBase):
def __init__(self):
ChassisBase.__init__(self)
self._api_common = Common()
self.sfp_module_initialized = False
self._is_host = self._api_common.is_host()
self.__initialize_eeprom()
self.is_host = self._api_common.is_host()
self.__initialize_fan()
self.__initialize_psu()
self.__initialize_thermals()
self.__initialize_components()
if not self.is_host:
self.__initialize_fan()
self.__initialize_psu()
self.__initialize_thermals()
else:
self.__initialize_components()
self._reboot_cause_path = HOST_REBOOT_CAUSE_PATH if self.__is_host(
) else PMON_REBOOT_CAUSE_PATH
self.sfp_module_initialized = False
self._reboot_cause_path = HOST_REBOOT_CAUSE_PATH if self._is_host else PMON_REBOOT_CAUSE_PATH
def __initialize_sfp(self):
sfputil_helper = SfpUtilHelper()
port_config_file_path = device_info.get_path_to_port_config_file()
sfputil_helper.read_porttab_mappings(port_config_file_path, 0)
from sonic_platform.sfp import Sfp
from .sfp import Sfp
for index in range(0, NUM_SFP):
name_idx = 0 if index+1 == NUM_SFP else index+1
sfp = Sfp(index, sfputil_helper.logical[name_idx])
sfp = Sfp(index, sfputil_helper.logical[index])
self._sfp_list.append(sfp)
self.sfp_module_initialized = True
def __initialize_psu(self):
from sonic_platform.psu import Psu
from .psu import Psu
for index in range(0, NUM_PSU):
psu = Psu(index)
self._psu_list.append(psu)
def __initialize_fan(self):
from sonic_platform.fan import Fan
for fant_index in range(0, NUM_FAN_TRAY):
for fan_index in range(0, NUM_FAN):
fan = Fan(fant_index, fan_index)
self._fan_list.append(fan)
from .fan_drawer import FanDrawer
for i in range(NUM_FAN_TRAY):
fandrawer = FanDrawer(i)
self._fan_drawer_list.append(fandrawer)
self._fan_list += fandrawer.get_all_fans()
def __initialize_thermals(self):
from sonic_platform.thermal import Thermal
from .thermal import Thermal
airflow = self.__get_air_flow()
for index in range(0, NUM_THERMAL):
thermal = Thermal(index, airflow)
self._thermal_list.append(thermal)
def __initialize_eeprom(self):
from sonic_platform.eeprom import Tlv
from .eeprom import Tlv
self._eeprom = Tlv()
def __initialize_components(self):
from sonic_platform.component import Component
from .component import Component
for index in range(0, NUM_COMPONENT):
component = Component(index)
self._component_list.append(component)
def __get_air_flow(self):
air_flow_path = '/usr/share/sonic/device/{}/fan_airflow'.format(
self._api_common.platform) if self.is_host else '/usr/share/sonic/platform/fan_airflow'
self._api_common.get_platform()) if self._is_host else '/usr/share/sonic/platform/fan_airflow'
air_flow = self._api_common.read_txt_file(air_flow_path)
return air_flow or 'B2F'
@ -154,7 +152,6 @@ class Chassis(ChassisBase):
else:
reboot_cause = self.REBOOT_CAUSE_NON_HARDWARE
description = 'Unknown reason'
return (reboot_cause, description)
def get_watchdog(self):
@ -239,17 +236,10 @@ class Chassis(ChassisBase):
Returns:
An object dervied from SfpBase representing the specified sfp
"""
sfp = None
if not self.sfp_module_initialized:
self.__initialize_sfp()
try:
# The index will start from 1
sfp = self._sfp_list[index-1]
except IndexError:
sys.stderr.write("SFP index {} out of range (1-{})\n".format(
index, len(self._sfp_list)))
return sfp
return super(Chassis, self).get_sfp(index - 1)
##############################################################
################## ThermalManager methods ####################
@ -269,13 +259,13 @@ class Chassis(ChassisBase):
Returns:
string: The name of the device
"""
return self._api_common.hwsku
return self._api_common.get_hwsku()
def get_presence(self):
"""
Retrieves the presence of the PSU
Retrieves the presence of the Chassis
Returns:
bool: True if PSU is present, False if not
bool: True if Chassis is present, False if not
"""
return True
@ -303,3 +293,52 @@ class Chassis(ChassisBase):
"""
return True
def get_position_in_parent(self):
"""
Retrieves 1-based relative physical position in parent device. If the agent cannot determine the parent-relative position
for some reason, or if the associated value of entPhysicalContainedIn is '0', then the value '-1' is returned
Returns:
integer: The 1-based relative physical position in parent device or -1 if cannot determine the position
"""
return -1
def is_replaceable(self):
"""
Indicate whether this device is replaceable.
Returns:
bool: True if it is replaceable.
"""
return False
def set_status_led(self, color):
"""
Sets the state of the PSU status LED
Args:
color: A string representing the color with which to set the PSU status LED
Note: Only support green and off
Returns:
bool: True if status LED state is set successfully, False if not
"""
status_str = {
self.STATUS_LED_COLOR_GREEN: 'green',
self.STATUS_LED_COLOR_AMBER: 'amber',
self.STATUS_LED_COLOR_OFF: 'off'
}.get(color, 'off')
return self._api_common.write_txt_file(STATUS_LED_PATH, status_str)
def get_status_led(self):
"""
Gets the state of the PSU status LED
Returns:
A string, one of the predefined STATUS_LED_COLOR_* strings above
"""
status = self._api_common.read_txt_file(STATUS_LED_PATH)
status_str = {
'on': self.STATUS_LED_COLOR_GREEN,
'amber': self.STATUS_LED_COLOR_AMBER,
'off': self.STATUS_LED_COLOR_OFF
}.get(status, None)
return status_str

View File

@ -29,7 +29,18 @@ class Common:
def __init__(self, conf=None):
self._main_conf = conf
(self.platform, self.hwsku) = device_info.get_platform_and_hwsku()
self.platform = None
self.hwsku = None
def get_platform(self):
(self.platform, self.hwsku) = device_info.get_platform_and_hwsku(
) if not self.platform else (self.platform, self.hwsku)
return self.platform
def get_hwsku(self):
(self.platform, self.hwsku) = device_info.get_platform_and_hwsku(
) if not self.hwsku else (self.platform, self.hwsku)
return self.hwsku
def run_command(self, command):
status = False
@ -38,7 +49,7 @@ class Common:
p = subprocess.Popen(
command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
raw_data, err = p.communicate()
if err == '':
if p.returncode == 0:
status, output = True, raw_data.strip()
except Exception:
pass
@ -152,10 +163,28 @@ class Common:
status, output = self.run_command(cmd)
return output if status else None
def set_reg(self, path, reg_addr, value):
cmd = "echo {0} {1} > {2}".format(reg_addr, value, path)
status, output = self.run_command(cmd)
return output if status else None
def read_txt_file(self, path):
with open(path, 'r') as f:
output = f.readline()
return output.strip('\n')
try:
with open(path, 'r') as f:
output = f.readline()
return output.strip('\n')
except Exception:
pass
return ''
def read_one_line_file(self, file_path):
try:
with open(file_path, 'r') as fd:
data = fd.readline()
return data.strip()
except IOError:
pass
return ''
def write_txt_file(self, file_path, value):
try:

View File

@ -6,12 +6,12 @@
#
#############################################################################
import os.path
import shutil
import shlex
import subprocess
try:
import os.path
import shutil
import shlex
import subprocess
from sonic_platform_base.component_base import ComponentBase
except ImportError as e:
raise ImportError(str(e) + "- required module not found")
@ -119,6 +119,29 @@ class Component(ComponentBase):
return fw_version
def get_available_firmware_version(self, image_path):
"""
Retrieves the available firmware version of the component
Note: the firmware version will be read from image
Args:
image_path: A string, path to firmware image
Returns:
A string containing the available firmware version of the component
"""
return "N/A"
def get_firmware_update_notification(self, image_path):
"""
Retrieves a notification on what should be done in order to complete
the component firmware update
Args:
image_path: A string, path to firmware image
Returns:
A string containing the component firmware update notification if required.
By default 'None' value will be used, which indicates that no actions are required
"""
return "None"
def install_firmware(self, image_path):
"""
Install firmware to module
@ -139,5 +162,73 @@ class Component(ComponentBase):
install_command = "ispvm %s" % new_image_path
# elif self.name == "BIOS":
# install_command = "afulnx_64 %s /p /b /n /x /r" % image_path
return self.__run_command(install_command)
def update_firmware(self, image_path):
"""
Updates firmware of the component
This API performs firmware update: it assumes firmware installation and loading in a single call.
In case platform component requires some extra steps (apart from calling Low Level Utility)
to load the installed firmware (e.g, reboot, power cycle, etc.) - this will be done automatically by API
Args:
image_path: A string, path to firmware image
Raises:
RuntimeError: update failed
"""
return False
##############################################################
###################### Device methods ########################
##############################################################
def get_presence(self):
"""
Retrieves the presence of the FAN
Returns:
bool: True if FAN is present, False if not
"""
return True
def get_model(self):
"""
Retrieves the model number (or part number) of the device
Returns:
string: Model/part number of device
"""
return 'N/A'
def get_serial(self):
"""
Retrieves the serial number of the device
Returns:
string: Serial number of device
"""
return 'N/A'
def get_status(self):
"""
Retrieves the operational status of the device
Returns:
A boolean value, True if device is operating properly, False if not
"""
return True
def get_position_in_parent(self):
"""
Retrieves 1-based relative physical position in parent device.
If the agent cannot determine the parent-relative position
for some reason, or if the associated value of
entPhysicalContainedIn is'0', then the value '-1' is returned
Returns:
integer: The 1-based relative physical position in parent device
or -1 if cannot determine the position
"""
return -1
def is_replaceable(self):
"""
Indicate whether this device is replaceable.
Returns:
bool: True if it is replaceable.
"""
return False

View File

@ -17,13 +17,14 @@ try:
else:
from cStringIO import StringIO
from sonic_platform_base.sonic_eeprom import eeprom_dts
from sonic_platform_base.sonic_eeprom import eeprom_tlvinfo
from sonic_platform_base.sonic_eeprom.eeprom_base import EepromDecoder
except ImportError as e:
raise ImportError(str(e) + "- required module not found")
CACHE_ROOT = '/var/cache/sonic/decode-syseeprom'
CACHE_FILE = 'syseeprom_cache'
NULL = 'N/A'
class Tlv(eeprom_tlvinfo.TlvInfoDecoder):
@ -32,8 +33,8 @@ class Tlv(eeprom_tlvinfo.TlvInfoDecoder):
def __init__(self):
self._eeprom_path = "/sys/class/i2c-adapter/i2c-2/2-0050/eeprom"
self._eeprom = None
super(Tlv, self).__init__(self._eeprom_path, 0, '', True)
self._eeprom = self._load_eeprom()
def __parse_output(self, decode_output):
decode_output.replace('\0', '')
@ -50,7 +51,7 @@ class Tlv(eeprom_tlvinfo.TlvInfoDecoder):
value = match.group(3).rstrip('\0')
_eeprom_info_dict[idx] = value
except Exception:
except BaseException:
pass
return _eeprom_info_dict
@ -59,7 +60,7 @@ class Tlv(eeprom_tlvinfo.TlvInfoDecoder):
sys.stdout = StringIO()
try:
self.read_eeprom_db()
except Exception:
except BaseException:
decode_output = sys.stdout.getvalue()
sys.stdout = original_stdout
return self.__parse_output(decode_output)
@ -71,7 +72,7 @@ class Tlv(eeprom_tlvinfo.TlvInfoDecoder):
if not os.path.exists(CACHE_ROOT):
try:
os.makedirs(CACHE_ROOT)
except Exception:
except BaseException:
pass
#
@ -80,7 +81,7 @@ class Tlv(eeprom_tlvinfo.TlvInfoDecoder):
#
try:
self.set_cache_name(os.path.join(CACHE_ROOT, CACHE_FILE))
except Exception:
except BaseException:
pass
e = self.read_eeprom()
@ -89,7 +90,7 @@ class Tlv(eeprom_tlvinfo.TlvInfoDecoder):
try:
self.update_cache(e)
except Exception:
except BaseException:
pass
self.decode_eeprom(e)
@ -102,14 +103,98 @@ class Tlv(eeprom_tlvinfo.TlvInfoDecoder):
return self.__parse_output(decode_output)
def _valid_tlv(self, eeprom_data):
tlvinfo_type_codes_list = [
self._TLV_CODE_PRODUCT_NAME,
self._TLV_CODE_PART_NUMBER,
self._TLV_CODE_SERIAL_NUMBER,
self._TLV_CODE_MAC_BASE,
self._TLV_CODE_MANUF_DATE,
self._TLV_CODE_DEVICE_VERSION,
self._TLV_CODE_LABEL_REVISION,
self._TLV_CODE_PLATFORM_NAME,
self._TLV_CODE_ONIE_VERSION,
self._TLV_CODE_MAC_SIZE,
self._TLV_CODE_MANUF_NAME,
self._TLV_CODE_MANUF_COUNTRY,
self._TLV_CODE_VENDOR_NAME,
self._TLV_CODE_DIAG_VERSION,
self._TLV_CODE_SERVICE_TAG,
self._TLV_CODE_VENDOR_EXT,
self._TLV_CODE_CRC_32
]
for code in tlvinfo_type_codes_list:
code_str = "0x{:X}".format(code)
eeprom_data[code_str] = eeprom_data.get(code_str, NULL)
return eeprom_data
def get_eeprom(self):
return self._eeprom
def get_serial(self):
return self._eeprom.get('0x23', "Undefined.")
def get_mac(self):
return self._eeprom.get('0x24', "Undefined.")
self._eeprom = self._load_eeprom() if not self._eeprom else self._eeprom
return self._valid_tlv(self._eeprom)
def get_pn(self):
return self._eeprom.get('0x21', "Undefined.")
return self.get_eeprom()['0x22']
def get_serial(self):
return self.get_eeprom()['0x23']
def get_mac(self):
return self.get_eeprom()['0x24']
class DeviceEEPROM(eeprom_tlvinfo.TlvInfoDecoder):
def __init__(self, eeprom_path, device_format, start_offset):
# Decode device eeprom as per specified format
self.format = device_format
self.start_offset = start_offset
EepromDecoder.__init__(self, eeprom_path, self.format,
self.start_offset, '', True)
self._load_device_eeprom()
def _load_device_eeprom(self):
"""
Reads the Fan/PSU EEPROM and interprets as per the specified format
"""
self.serial_number = 'NA'
self.model_str = 'NA'
# device eeproms use proprietary format
try:
# Read Fan/PSU EEPROM as per the specified format.
self.eeprom_data = EepromDecoder.read_eeprom(self)
except Exception as e:
return
if self.eeprom_data[0] == 255:
return
(valid, data) = self._get_eeprom_field("Model")
if valid:
self.model_str = data.decode()
try:
(valid, data) = self._get_eeprom_field("Serial Number")
if valid:
self.serial_number = data.decode()
except Exception as e:
return
def _get_eeprom_field(self, field_name, decode=False):
"""
For a field name specified in the EEPROM format, returns the
presence of the field and the value for the same.
"""
field_start = 0
for field in self.format:
field_end = field_start + field[2]
if field[0] == field_name:
if decode:
return (True, self.eeprom_data[field_start:field_end].decode('ascii'))
else:
return (True, self.eeprom_data[field_start:field_end])
field_start = field_end
return (False, None)

View File

@ -1,7 +1,7 @@
try:
import time
import select
from .helper import APIHelper
from .common import Common
from sonic_py_common.logger import Logger
except ImportError as e:
raise ImportError(repr(e) + " - required module not found")
@ -16,12 +16,12 @@ class SfpEvent:
GPIO_SUS7 = '/sys/devices/platform/hlx-ich.0/sci_int_gpio_sus7'
def __init__(self, sfp_list):
self._api_helper = APIHelper()
self._api_common = Common()
self._sfp_list = sfp_list
self._logger = Logger()
# clear interrupt
self._api_helper.read_one_line_file(self.INT_PATH)
self._api_common.read_one_line_file(self.INT_PATH)
def get_sfp_event(self, timeout):
epoll = select.epoll()
@ -37,7 +37,7 @@ class SfpEvent:
events = epoll.poll(timeout=timeout_sec if timeout != 0 else -1)
if events:
# Read the QSFP ABS interrupt & status registers
port_changes = self._api_helper.read_one_line_file(
port_changes = self._api_common.read_one_line_file(
self.INT_PATH)
changes = int(port_changes, 16)
for sfp in self._sfp_list:
@ -48,7 +48,8 @@ class SfpEvent:
if change == 1:
time.sleep(self.DELAY)
port_status = sfp.get_presence()
port_dict[str(sfp.port_num)] = '1' if port_status else '0'
port_dict[str(sfp.port_num)
] = '1' if port_status else '0'
return port_dict
except Exception as e:

Some files were not shown because too many files have changed in this diff Show More