Compare commits

...

452 Commits

Author SHA1 Message Date
Liu Shilong
4570365762
[202111] [build] Use public storage for public resources. (#18201)
* [build] Use public storage for public resources. (#18038)
2024-02-29 13:10:04 -08:00
Liu Shilong
f2a2906b66
Pin typing extension (#16513)
Why I did it
Fix UT failure caused by typing-extensions version update.

Work item tracking
Microsoft ADO (number only): 25123371
How I did it
How to verify it
2023-09-13 16:12:15 +08:00
xumia
8fd9ce758b
[Build][202111] Fix the PyYang python package installation issue (#15890) (#15905)
* [Build] Fix the PyYang python package installation issue (#15890)

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.

* Fix docker-platform-monitor python2 issue

* Fix wheel dependency issue
2023-07-22 09:25:38 +08:00
mssonicbld
3f50123cbf
[ci/build]: Upgrade SONiC package versions (#15622) 2023-06-25 22:45:45 +08:00
mssonicbld
700571c77e
[ci/build]: Upgrade SONiC package versions (#15616) 2023-06-24 22:22:24 +08:00
mssonicbld
fd244514ff
[Build] Remove the additional space character in the mirrors.list file (#13812) (#15475)
Why I did it
Fix all mirror is commented out in sources.list in slave image issue. It will have an issue when installing more packages in the slave container.

It will add additional space character after running add-apt-repository command.

For example:
The original config in /etc/apt/sources.list

#deb [arch=amd64] http://deb.debian.org/debian/ bullseye main contrib non-free
Run the following command:

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian bullseye stable"
Then the setting changed to: (added a new space character after #)

# deb [arch=amd64] http://deb.debian.org/debian/ bullseye main contrib non-free
How I did it
Fix the regex string to add the space pattern. After fixed, whether there is a space character or not, it will not be an issue.

How to verify it

Co-authored-by: xumia <59720581+xumia@users.noreply.github.com>
2023-06-19 17:10:33 +08:00
mssonicbld
a61044404b
[ci/build]: Upgrade SONiC package versions (#15529) 2023-06-18 22:52:06 +08:00
mssonicbld
7fda2dbb03
[ci/build]: Upgrade SONiC package versions (#15524) 2023-06-17 22:31:09 +08:00
mssonicbld
0bab1c8253
[ci/build]: Upgrade SONiC package versions (#15460) 2023-06-14 22:11:22 +08:00
mssonicbld
28b5f2862e
[ci/build]: Upgrade SONiC package versions (#15428) 2023-06-11 21:30:47 +08:00
mssonicbld
700df4fc7e
[ci/build]: Upgrade SONiC package versions (#15427) 2023-06-10 23:22:06 +08:00
Liu Shilong
e1291514db
[ci] Add OVERRIDE_BUILD_OPTIONS in image build template. (#15309) (#15340)
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:45 +08:00
mssonicbld
a4059c03aa
[ci/build]: Upgrade SONiC package versions (#15363) 2023-06-07 03:53:59 +08:00
mssonicbld
c5fb6bde30
[ci/build]: Upgrade SONiC package versions (#15330) 2023-06-04 23:55:53 +08:00
mssonicbld
2b75d62ea9
[ci/build]: Upgrade SONiC package versions (#15327) 2023-06-03 23:23:07 +08:00
mssonicbld
d2fca16f17 [ci/build]: Upgrade SONiC package versions 2023-06-01 00:35:57 +08:00
mssonicbld
18be3ba279 [ci/build]: Upgrade SONiC package versions 2023-05-29 00:34:07 +08:00
mssonicbld
f137a9c3b9
[ci/build]: Upgrade SONiC package versions (#15244) 2023-05-27 23:04:40 +08:00
mssonicbld
bbbd54b0cc
[ci/build]: Upgrade SONiC package versions (#15201) 2023-05-24 23:14:02 +08:00
xumia
39241decdd [Build] Fix the reproducible build variable display error in the slave container (#14543)
Why I did it
Enable the reproducible build for PR build for master branch

Fix the reproducible build variable display error in the slave container.
The below config is none, although the config is set and takes effect.

"SONIC_VERSION_CONTROL_COMPONENTS": "none"
How I did it
Passing the variable through the slave container command line.
The variable has been passed to the slave container and the other docker container by a config file, it is only used to display the value during the build.

How to verify it
See https://dev.azure.com/mssonic/build/_build/results?buildId=247960&view=logs&j=88ce9a53-729c-5fa9-7b6e-3d98f2488e3f&t=88f376cf-c35d-5783-0a48-9ad83a873284

"SONIC_VERSION_CONTROL_COMPONENTS": "deb,py2,py3,web,git,docker"
2023-05-23 18:16:41 +08:00
mssonicbld
6bbe2b63c5
[ci/build]: Upgrade SONiC package versions (#15175) 2023-05-22 00:27:52 +08:00
mssonicbld
01558db46a
[ci/build]: Upgrade SONiC package versions (#15166) 2023-05-20 23:31:55 +08:00
Cédric Ollivier
90a0cdc720 [build]: Force xz as compression type when building sonic-build-hooks debs (#12823)
Ubuntu 22.04 leverages Zstandard compression to dpkg by default.
Debian doesn't support it yet
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=892664

Fix #12822

Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
2023-05-19 18:32:13 +08:00
xumia
2e40fd4e11 [Build] Fix the mirror gpg key expired issue (#14206)
Why I did it
[Build] Fix the mirror gpg key expired issue
See vs build: https://dev.azure.com/mssonic/build/_build/results?buildId=231680&view=logs&j=cef3d8a9-152e-5193-620b-567dc18af272&t=cf595088-5c84-5cf1-9d7e-03331f31d795

How I did it
Add the apt option not to check the valid until, the option is set to the SONiC docker base image, docker ptf missing the option.

Acquire::Check-Valid-Until "false";
How to verify it
The build of docker-ptf is succeeded after fixed.

2023-03-11T17:26:35.1801999Z [ building ] [ target/docker-ptf.gz ] 
2023-03-11T17:38:10.1608536Z [ finished ] [ target/docker-ptf.gz ]
2023-05-19 18:32:08 +08:00
Konstantin Vasin
7a8717073e [Build] update python package docker in host image to 6.1.1 (#14993)
Fix #14974
Refs: https://github.com/docker/docker-py/pull/3116
2023-05-19 16:32:39 +08:00
Liu Shilong
6efb96c040
Clear /etc/resolv.conf before building image (#12592) (#15104)
Cherry pick PR#12592

Why I did it
nameserver and domain entries from build system fsroot gets into sonic image.

How I did it
Clear /etc/resolv.conf before building image

How to verify it
Built image with it and verified with install that /etc/resolv.conf is empty

Co-authored-by: Devesh Pathak <54966909+devpatha@users.noreply.github.com>
2023-05-18 14:47:17 -07:00
mssonicbld
7ec9a1f6f1
[ci/build]: Upgrade SONiC package versions (#14924) 2023-05-04 00:16:43 +08:00
mssonicbld
c4c7f497b2
[ci/build]: Upgrade SONiC package versions (#14890) 2023-04-29 22:58:32 +08:00
mssonicbld
220d87eb54
[ci/build]: Upgrade SONiC package versions (#14811) 2023-04-23 22:40:00 +08:00
mssonicbld
7ce9a7f3bb
[ci/build]: Upgrade SONiC package versions (#14802) 2023-04-22 23:59:41 +08:00
mssonicbld
98d6c46ce0
[ci/build]: Upgrade SONiC package versions (#14721) 2023-04-19 23:29:42 +08:00
mssonicbld
3a2c16c5dd [ci/build]: Upgrade SONiC package versions 2023-04-19 06:32:08 +08:00
xumia
40780c072e
[Build][202111] Support Debian snapshot mirror to improve build stability (#14664)
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 14:32:31 +08:00
mssonicbld
0e5a2b9b3e
[ci/build]: Upgrade SONiC package versions (#14682) 2023-04-16 23:16:36 +08:00
mssonicbld
cbb77909c1
[ci/build]: Upgrade SONiC package versions (#14675) 2023-04-16 01:23:12 +08:00
mssonicbld
cb21b2126e
Pin mmh3 package version in sonic-slave-stretch docker (#14463) (#14470)
Why I did it
mmh3's new version 3.1.0 breaks pipeline build.
bullseye/buster/jessie pined the version to 2.5.1

How I did it
Pin mmh3's version as other dists.

How to verify it

Co-authored-by: Liu Shilong <shilongliu@microsoft.com>
2023-04-14 18:42:14 +08:00
Ravi [Marvell]
c73b81eb95
Add platform files for Innovium platform (#12652)
Why I did it
Add platform files for critical processes and default qos config for Innovium platforms

How I did it
Added default files for critical processes and qos config

How to verify it
Tested with autorestart/test_container_autorestart.py::test_containers_autorestart

Signed-off-by: rck-innovium rck@innovium.com
2023-03-30 11:33:51 -07:00
Liu Shilong
969de02c62
[ci] Fix build issue for vs vhdx image. #14426
Why I did it
sonic-slave-stretch build failed for mmh3 version update to 3.10 on Mar 24.

How I did it
Enable reproducible build for vhdx image.

How to verify it
2023-03-29 16:13:01 +08:00
Liu Shilong
502fe49ae9 [ci] Fix build issue for vs vhdx image. #14427
Why I did it
sonic-slave-stretch build failed for mmh3 version update to 3.10 on Mar 24.

How I did it
Enable reproducible build for vhdx image.

How to verify it
2023-03-28 20:53:23 +08:00
mssonicbld
fb319b4b36
[ci/build]: Upgrade SONiC package versions (#14315) 2023-03-19 23:09:51 +08:00
mssonicbld
a86de8aee1 [ci/build]: Upgrade SONiC package versions 2023-03-18 09:51:33 +08:00
Liu Shilong
8b8b6bd2b7 [build] Fix unexpected warnings: No names found, cannot describe anything. (#12963)
Why I did it
In PR check pipelines, there are too many duplicated warnings:
fatal: No names found, cannot describe anything.
SONIC_IMAGE_VERSION will not change in one build. We don't need to calculate in every reference. We just need calculate one time, then record it.
In Makefile, '=' will calculate again and again when it is referred.

How I did it
Fix it in Makefile.

How to verify it
Check this PR's check pipeline result.
2023-03-10 18:37:35 +08:00
mssonicbld
19e86f9f60
[ci/build]: Upgrade SONiC package versions (#14082) 2023-03-05 10:04:08 +08:00
mssonicbld
a86cadf13c
[ci/build]: Upgrade SONiC package versions (#13944) 2023-02-27 02:09:19 +08:00
mssonicbld
5ae5c053fc [ci/build]: Upgrade SONiC package versions 2023-02-22 22:33:20 +08:00
Liu Shilong
041dc55eb5 [ci] Fix docker hang issue and change template reference branch (#13894)
Why I did it
Azure pipeline change.
Use common template to make it easy to change common steps.
Fix docker hang issue.

How I did it
2023-02-22 20:55:37 +08:00
Liu Shilong
9d20dda40a
[ci] Kill hanged docker build process to avoid build timeout issue. (#13726) (#13597)
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-22 13:15:53 +08:00
Liu Shilong
0798518244 [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-03 04:32:32 +08:00
jcaiMR
ed63f92b34
[202111] fix relay-reply dhcpv6 packet counter issue 2023-01-30 17:35:55 -08:00
Liu Shilong
f1f42c9a6a
Fix sonic slave pipeline to set correct tag on sonic slave image. (#13177) (#13384) 2023-01-18 11:32:19 +08:00
Liu Shilong
09aa92ef5b
[build] Fix sonic-host-services dependency deepdiff version issue (#13336)
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-16 11:09:24 +08:00
Liu Shilong
7ca8c9a50a [build] Fix issue between reproducible build and dood. (#11084) (#12845) 2023-01-07 00:43:17 +08:00
mssonicbld
5275cf79a4
[ci/build]: Upgrade SONiC package versions (#13149) 2022-12-29 01:49:40 +08:00
Liu Shilong
e858dc0f40
[build] Add retry when make SONiC image to improve success rate. (#12325) (#13129)
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:33 +08:00
mssonicbld
bbbc3f5c1c
[ci/build]: Upgrade SONiC package versions (#13096) 2022-12-19 00:39:24 +08:00
mssonicbld
6afa83a9a6
[ci/build]: Upgrade SONiC package versions (#13094) 2022-12-18 00:48:26 +08:00
mssonicbld
78900d83d2
[ci/build]: Upgrade SONiC package versions (#13019) 2022-12-12 01:40:02 +08:00
mssonicbld
1b1a534304
[ci/build]: Upgrade SONiC package versions (#12886) 2022-12-06 02:05:15 +08:00
mssonicbld
bc3781df8c
[ci/build]: Upgrade SONiC package versions (#12839) 2022-11-28 01:46:22 +08:00
mssonicbld
9f65069cfb
[ci/build]: Upgrade SONiC package versions (#12815) 2022-11-26 03:17:39 +08:00
xumia
d455db672a
Fix error handling when failing to install a deb package (#11846) (#12777)
Cherry-pick PR: #11846

Signed-off-by: Saikrishna Arcot sarcot@microsoft.com

Why I did it
The current error handling code for when a deb package fails to be
installed currently has a chain of commands linked together by && and
ends with exit 1. The assumption is that the commands would succeed,
and the last exit 1 would end it with a non-zero return code, thus
fully failing the target and causing the build to stop because of bash's
-e flag.

However, if one of the commands prior to exit 1 returns a non-zero
return code, then bash won't actually treat it as a terminating error.
From bash's man page:

-e      Exit immediately if a pipeline (which may consist of a single simple
	command), a list, or a compound command (see SHELL GRAMMAR above),
        exits with a non-zero status.  The shell does not exit if the
        command that fails is part of the  command  list  immediately
        following a while or until keyword, part of the test following the
        if or elif reserved words, part of any command executed in a && or
        || list except the command following the final && or ||, any
        command in a pipeline but the last, or if the command's return
        value is being inverted with !.  If a compound command other than a
        subshell returns a non-zero status because a command failed while
        -e was being ignored, the shell does not exit.
The part part of any command executed in a && or || list except the command following the final && or || says that if the failing command
is not the exit 1 that we have at the end, then bash doesn't treat it
as an error and exit immediately. Additionally, since this is a compound
command, but isn't in a subshell (subshell are marked by ( and ),
whereas { and } just tells bash to run the commands in the current
environment), bash doesn't exist. The result of this is that in the
deb-install target, if a package installation fails, it may be
infinitely stuck in that while-loop.

This was seen when the snmpd package upgrade happened, and
builds were failing to install the mismatching libsnmp-dev package,
the builds did not immediately terminate; instead, the installation
was retried again and again, suggesting it was stuck in some infinite
loop. The build jobs finally terminated only because of the timeout
specified for the jobs.

How I did it
There are two fixes for this: change to using a subshell, or use ;
instead of &&. Using a subshell would, I think, require exporting any
shell variables used in the subshell, so I chose to change the && to
;. In addition, at the start of the subshell, set +e is added in,
which removes the exit-on-error handling of bash. This makes sure that
all commands are run (the output of which may help for debugging) and
that it still exits with 1, which will then fully fail the target.

How to verify it
2022-11-24 09:37:15 +08:00
mssonicbld
a980784e91
[ci/build]: Upgrade SONiC package versions (#12693) 2022-11-21 01:26:43 +08:00
Ravindranath C K
66b6c212fc
[Innovium] Backport platform fixes from master (#12526)
Syncd container restart for Innovium:
   https://github.com/sonic-net/sonic-buildimage/pull/11497

 Innovium platform shell
   https://github.com/sonic-net/sonic-buildimage/pull/11845

Signed-off-by: rck-innovium rck@innovium.com
2022-11-04 11:29:05 -07:00
mssonicbld
10c12e12e4
[ci/build]: Upgrade SONiC package versions (#12586) 2022-11-03 02:39:43 +08:00
mssonicbld
7c13f90b59
[ci/build]: Upgrade SONiC package versions (#12552) 2022-10-31 01:24:53 +08:00
mssonicbld
17d9e21e76
[ci/build]: Upgrade SONiC package versions (#12548) 2022-10-29 02:39:20 +08:00
judyjoseph
ba3326088c
Update sonic-swss submodule with (#12521)
7f24448 [202111] cherrypick ACL fixes (#2298) and (#2351) (#2497)
2022-10-28 08:37:30 -07:00
mssonicbld
c500f5d476
[action] Use github code scan instead of LGTM. (#12402) (#12506) 2022-10-27 00:53:49 +08:00
xumia
01f8c0185b
[202111] Change submodule path from Azure to sonic-net (#12309)
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-26 16:29:12 +08:00
Liu Shilong
28751cec56 [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-26 08:22:31 +08:00
Liu Shilong
fc9dee41a2 [ci] Update reproducible build related pipeline. (#11810) 2022-10-26 08:22:31 +08:00
Liu Shilong
acfb23653e [ci] Disable reproducible build in master branch official build (#11452) 2022-10-26 08:22:31 +08:00
Liu Shilong
cb4ac4285d [ci] Update azp template variable for reproducible build. (#11419) 2022-10-26 08:22:31 +08:00
mssonicbld
45b403d71d
[ci/build]: Upgrade SONiC package versions (#12422) 2022-10-18 13:57:10 +08:00
mssonicbld
ac6c4870f2
Fix dhcp option buffer issue (#12033) (#12385)
Why I did it
Current isc-dhcp uses below code to remove DHCP option:
memmove(sp, op, op[1] + 2);
sp += op[1] + 2;

sp points to the option to be stripped, we can call it as option S.
op points to the option after options S, we can call it as option O.
DHCP option is a typical type-length-value structure, the first byte is type, the second byte is length, and remain parts are value.
In this case, option O length is bigger than option S, and more than 2 bytes, after the memmove, we will get this result:

Now Option S and Option O are overwritten, op[1] was the length of Option O, and it's modified after memmove.
But current implementation is still using op[1] as length to update sp (sp+=op[1]+2), so we get the wrong sp.

How I did it
Create patch from https://github.com/isc-projects/dhcp
The new impelementation use mlen to store the length of Option O before memmove, that's how it fixed the bug.
size_t mlen = op[1] + 2;
memmove(sp, op, mlen);
sp += mlen;

How to verify it
I have a PR for sonic-mgmt to cover this issue:
sonic-net/sonic-mgmt#6330

Signed-off-by: Gang Lv ganglv@microsoft.com

Signed-off-by: Gang Lv ganglv@microsoft.com
Co-authored-by: ganglv <88995770+ganglyu@users.noreply.github.com>
2022-10-16 11:18:37 +08:00
mssonicbld
1555ec30ee
[ci/build]: Upgrade SONiC package versions (#12390) 2022-10-14 16:08:25 +08:00
mssonicbld
63ed7b75cf
[Build][Bug] Fix apt-get remove version not lock issue (#12193) (#12352)
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.

Co-authored-by: xumia <59720581+xumia@users.noreply.github.com>
2022-10-13 10:09:19 +08:00
mssonicbld
66fa1920bb
[ci/build]: Upgrade SONiC package versions (#12283)
Upgrade SONiC Versions
2022-10-11 07:52:14 +08:00
mssonicbld
4d9788573c
[actions] Add auto cherry-pick actions to release branch (#11496) (#12337)
* [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:23 +08:00
mssonicbld
ec691aa9f4
[ci/build]: Upgrade SONiC package versions (#12247) 2022-10-03 03:59:36 +08:00
mssonicbld
92780af0ce
[ci/build]: Upgrade SONiC package versions (#12194) 2022-09-28 06:40:24 +08:00
xumia
f47872446b
Fix dbus-run-session command not found issue when install dbus-python (#12009) (#12054)
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).

How to verify it
2022-09-26 20:42:51 +08:00
mssonicbld
fc04f74dc9
[ci/build]: Upgrade SONiC package versions (#11971) 2022-09-06 03:36:22 +08:00
mssonicbld
aa6a7c3f4a
[ci/build]: Upgrade SONiC package versions (#11963) 2022-09-05 04:16:35 +08:00
mssonicbld
94ebd5cfbf
[ci/build]: Upgrade SONiC package versions (#11916) 2022-09-03 04:09:38 +08:00
Kebo Liu
949b426a2a
update Mellanox SDK/FW to 4.5.2318 2010.2318 (#11774)
- Why I did it
Update SDK/FW version - 4.5.2318/2010_2318 to pick up new fixes:
1. Cr space timeout on Hold and Release GW - at warm boot
2. SPC-1 Port in stuck PHY_UP after peer side rebooted
3. memory leak in sx_api_router_ecmp_update_set

- How I did it
update the make file with the new version number
update submodule Switch-SDK-drivers pointer

- How to verify it
run sonic regression

Signed-off-by: Kebo Liu <kebol@nvidia.com>
2022-08-29 11:08:22 +03:00
mssonicbld
0356a20a61
[ci/build]: Upgrade SONiC package versions (#11856) 2022-08-29 14:08:18 +08:00
RogerX87
ad7395323f
Add Wistron SW-TO3200K and 6512-32R platform support (#11818)
Signed-off-by: RogerX87 <RogerX87@gmail.com>

Signed-off-by: RogerX87 <RogerX87@gmail.com>
2022-08-26 09:19:13 -07:00
Kebo Liu
b8dc515185
[snmpd]: Update to 5.9+dfsg-4+deb11u1 to match Debian version (#11763) (#11844)
* [snmpd]: Update to 5.9+dfsg-4+deb11u1 to match Debian version

This brings in some security fixes.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
Co-authored-by: Saikrishna Arcot <sarcot@microsoft.com>
2022-08-25 09:01:43 -07:00
mssonicbld
003c8dfdef
[ci/build]: Upgrade SONiC package versions (#11719) 2022-08-15 05:47:39 +00:00
mssonicbld
1d3243221b
[ci/build]: Upgrade SONiC package versions (#11697) 2022-08-11 23:19:59 +00:00
Vivek
d14f1a63ca
[Mellanox] [202111] Add arch folder to SDK binary location (#11278) (#11598)
- Why I did it
This is for the eventual support of multiple architectures for the mellanox platform.

- How I did it
Change the location of the binaries in Switch-SDK-drivers so that the path specifies the target architecture in addition to the target distribution that the debians are built for.

This is the most straightforward way to separate binaries built against different architectures and selectively target them for installation in the mellanox SONiC image.

- How to verify it
Build SONiC for mellanox and verify it compiles successfully.
2022-08-11 08:28:49 +03:00
Liu Shilong
5506f1be8f
[actions] Fix automerge actions don't work issue. (#11675) 2022-08-10 15:50:33 +08:00
mssonicbld
d750fad2e9
[ci/build]: Upgrade SONiC package versions (#11440) 2022-08-07 16:52:48 +00:00
Liu Shilong
9d1ef336ff
[ci] Update azp reference to support transfering organization from Azure to sonic-net (#11603) 2022-08-02 16:15:33 +08:00
Liu Shilong
ffd289b1c1
[ci] Transfer organization from Azure to sonic-net for sonic-mgmt (#11559) (#11561)
Why I did it
Transfer organization from Azure to sonic-net for sonic-mgmt
2022-07-28 15:31:20 +08:00
xumia
6c9ace84ec
[Build] Fix the missing debian package for reproducible build issue (#11338)
Why I did it
Fix the missing debian package for reproducible build issue.

The gnupg2 should be added into the version file.
https://dev.azure.com/mssonic/build/_build/results?buildId=118139&view=logs&j=88ce9a53-729c-5fa9-7b6e-3d98f2488e3f&t=8d99be27-49d0-54d0-99b1-cfc0d47f0318

The following packages have unmet dependencies:
 gnupg2 : Depends: gnupg (>= 2.2.27-2+deb11u2) but 2.2.27-2+deb11u1 is to be installed
E: Unable to correct problems, you have held broken packages.

The issue was caused by the gnupg2 removed, and not detected.
sonic-buildimage/build_debian.sh

Line 250 in 4fb6cf0

 sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y remove software-properties-common gnupg2 python3-gi
2022-07-14 13:39:25 +08:00
mssonicbld
632d89a218
[ci/build]: Upgrade SONiC package versions (#11423)
Upgrade SONiC Versions
2022-07-13 07:09:27 +08:00
xumia
33c9d324a4
Upgrade openssh to 8.4p1-5+deb11u1 (#11409)
Why I did it
Fix the openssh build issue, upgrade from 8.4p1-5 to 8.4p1-5+deb11u1.

https://dev.azure.com/mssonic/build/_build/results?buildId=120209&view=logs&j=88ce9a53-729c-5fa9-7b6e-3d98f2488e3f&t=8d99be27-49d0-54d0-99b1-cfc0d47f0318

+ sudo dpkg --root=./fsroot-broadcom -i target/debs/bullseye/openssh-server_8.4p1-5_amd64.deb
dpkg: warning: downgrading openssh-server from 1:8.4p1-5+deb11u1 to 1:8.4p1-5
(Reading database ... 44818 files and directories currently installed.)
Preparing to unpack .../openssh-server_8.4p1-5_amd64.deb ...
Unpacking openssh-server (1:8.4p1-5) over (1:8.4p1-5+deb11u1) ...
dpkg: dependency problems prevent configuration of openssh-server:
 openssh-server depends on openssh-client (= 1:8.4p1-5); however:
  Version of openssh-client on system is 1:8.4p1-5+deb11u1.

dpkg: error processing package openssh-server (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 openssh-server
+ clean_sys

How I did it
Upgrade openssh from 8.4p1-5 to 8.4p1-5+deb11u1.

How to verify it
2022-07-11 22:32:16 +08:00
Liu Shilong
a8cdb62fc3
[ci] Fix test stage dependency issue. (#11386) (#11393)
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:05 +08:00
mssonicbld
2339907cf1
[ci/build]: Upgrade SONiC package versions (#11339) 2022-07-06 04:43:34 +00:00
mssonicbld
51327e6125
[ci/build]: Upgrade SONiC package versions (#11258)
Upgrade SONiC Versions
2022-07-04 20:18:21 +08:00
xumia
ae99f374fa
[Build] Add the missing debian security mirrors in slave images (#11305) (#11313)
Why I did it
Cherry-pick from #11305

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-04 12:57:21 +08:00
Kebo Liu
27839792d1
[202111] [Mellanox] Add retry when SFP object is not initialized correctly due to eeprom read failure (#11265)
- Why I did it
During platform API SFP object initialization, there are two steps, one is to read the xSFP type from EEPROM, and another is to parse the xSFP DOM support capability. There is the possibility that the xSFP EEPROM is not ready when it started to read, which will result in the SFP object does not have type and DOM capability correctly initialized, which will cause further issues. So need to add a mechanism to retry in this case.

- How I did it
Add flags to indicate whether the SFP object has been correctly initialized or not, set the flag when an error happened and after all relevant bytes from EEPROM are correctly read out and parsed, clear the flag.
Leverage the Python decorator to decorate the related functions, each time when the related function is called the decorator will check whether the SFP object has been correctly initialized or not, if not it will read the EEPROM and parse again.

- How to verify it
Run SFP-related platform tests to make sure no new issue is introduced.

Signed-off-by: Kebo Liu <kebol@nvidia.com>
2022-07-03 15:59:51 +03:00
Tony Titus
6ab339482f
[innovium] Update 202111 Innovium platforms (#10760)
Co-authored-by: Tony Titus <ttitus@innovium.com>

Why I did it
Update 202111 Innovium platform support

How to verify it
Build and PTF test
2022-06-30 15:12:38 -07:00
Liu Shilong
70e9fc3166
[build] Fix libssl version issue in bullseye. (#11286)
The following packages have unmet dependencies:
 libssl-dev : Depends: libssl1.1 (= 1.1.1n-0+deb11u3) but 1.1.1n-0+deb11u2 is to be installed
E: Unable to correct problems, you have held broken packages.
2022-06-30 23:52:38 +08:00
Hua Liu
9b4387ace9
[swsscommon] Add c++ version sonic-db-cli from sonic-swss-common (#10825) (#11262)
Fix sonic-db-cli high CPU usage on SONiC startup issue: https://github.com/Azure/sonic-buildimage/issues/10218
    ETA of this issue will be 2022/05/31

    Re-write sonic-cli with c++ in sonic-swss-common: https://github.com/Azure/sonic-swss-common/pull/607
    Modify swss-common rules and slave.mk to install c++ version sonic-db-cli.

    Pass all E2E test scenario.

<!--
- Note we only backport fixes to a release branch, *not* features!
- Please also provide a reason for the backporting below.
- e.g.
- [x] 202006
-->

- [ ] 201811
- [ ] 201911
- [ ] 202006
- [ ] 202012
- [ ] 202106
- [ ] 202111

    Build and install c++ version sonic-db-cli from swss-common.

<!--
Provide a link to config_db schema for the table for which YANG model
is defined
Link should point to correct section on https://github.com/Azure/SONiC/wiki/Configuration.
-->
2022-06-30 09:34:13 +08:00
Vivek R
e8daeacd3d
[202111] [submodule] Advance sonic-utilities pointer (#11239)
update sonic-utilities submodule

8ac2810 [202111] [generate dump] Move the Core/Log collection to the End of process Execution and removed default timeout  (#2225)
77891de [202111] Fix UT failed cause by change pycommon to use swsscommon (#2085) (#2231)
2022-06-24 05:40:59 -07:00
Sudharsan Dhamal Gopalarathnam
4a278fa881
[202111][submodule] Advance sonic-swss submodule (#11231)
Advance sonic-submodule to get the following fixes: 

ebdc242 Fix fbdorch to properly handle syncd FDB FLUSH Notif
8fd44da [ci] Don't publish gcov artifact when test failed
dcf6429 [ci] Change artifact reference pipeline to common lib pipeline.
387ed60 [ci] Use correct branch when downloading artifact.
169f597 [ci] Improve azp trigger settings to automaticlly support new release branch
2022-06-23 16:59:32 -07:00
Dror Prital
d3f007045c
[202111] [Mellanox] update SAI with a new fix for sonic 202111 (#11199)
- Why I did it

Update SAI pointer to include the following fix:
Fix size descriptor pool for rx/tx

- How I did it
Update SAI pointer to point on the new commit

- How to verify it
Run regression tests
2022-06-23 13:15:51 -07:00
Lior Avramov
fd67b535be Change severity of log messages for cases where docker container was stopped during service checker operation (#11188)
#### Why I did it
There might be a case where service checker periodic operation determined that specific container is running but when it tries to perform an operation on it, it was already closed by the user. This is a valid flow and we should not log an error message, informative warning is enough. 

#### How I did it
I reduce log severity.

#### How to verify it
I verified it manually.
2022-06-22 19:50:07 -07:00
Sudharsan Dhamal Gopalarathnam
5188fdee0c [lldp]Fix lldp spawned after reboot when disabled (#11080)
- Why I did it
When LLDP is disabled through feature command, it gets spawned after reboot.

- How I did it
In syncd.sh check if the service is enabled before spawning automatically during cold reboot.

- How to verify it
Disable lldp feature. Perform cold reboot and verify its not spawned.
2022-06-22 19:50:03 -07:00
mssonicbld
8d72c484f8
[ci/build]: Upgrade SONiC package versions (#11114)
Co-authored-by: mssonicbld <vsts@fv-az131-194.obwncbgs1wzu1bhwgvhcl5zkeg.jx.internal.cloudapp.net>
2022-06-21 13:55:06 +08:00
Shilong Liu
95a3cd56eb
Cherry-pick two PRs (#11194)
* [ci] Support to skip vstest using include/exclude config file. (#11086)
* [build] Add version files to docker image dependencies (#11179)
2022-06-21 13:27:16 +08:00
Judy Joseph
02d17834c8 Update submodules
sonic-swss

25fe915 [crmorch] Prevent exceededLogCounter from resetting when low and high values are equal (#2327)
1c3c5e0 [BFD]Retry create BFD with different source UDP port on failure (#2225)
d5775b1 Skip consistent fail tests (#2269)

sonicutilities

5800b73 Fix header for the output table following 'show ipv6 interface' command (#2219)
2022-06-20 08:25:58 -07:00
shlomibitton
20deb7985a [Mellanox] [pmon] Fix for PMON service not starting when restarting SWSS service after fast/warm reboot (#10901)
- Why I did it
Recent change to delay PMON service in case of fast/warm reboot introduce an issue when restarting only SWSS service after fast/warm reboot for Nvidia platform.
Since the timer is triggered only when the system boot, in a scenario when the system is after a fast/warm reboot and the user restart SWSS service, as part of syncd.sh script, PMON service will stop but the timer will not start again.

- How I did it
On syncd.sh script, in case of fast/warm indication, check if pmon.timer is running.
If it is running it means we are at the first boot and continue normally.
If it is not running, meaning the service was restarted, start the timer to keep the system behavior consistent.

- How to verify it
Run fast/warm reboot.
service swss restart.
Observe PMON service starting.

Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
2022-06-20 08:21:10 -07:00
Dror Prital
3dacfea43c
[202111][Mellanox] Update SAI version to 1.21.2.1 (#11151)
- Why I did it
Update SAI version to 1.21.2.1 in order to gain the following fixes:
1. Optimize descriptors apply time
2. BFD - notify SONiC for admin-down event
3. Don't disable used tunnel underlay interfaces

- How I did it
Update SAI pointer and update SAI version on make file

- How to verify it
Run regression tests
2022-06-19 14:00:32 +03:00
Judy Joseph
e0d9c02fc5 Update sonic-swss
b9c509d Fix test_warm_reboot issues blocking PR merge (#2309)
2022-06-14 08:50:21 -07:00
Aravind Mani
7bdf9986c9
[202111]DellEMC S5248f platform bug fixes (#11096)
* update files

* Update s5248f_platform.sh

Co-authored-by: Aravind Mani <aravind.m1@dell.com>
2022-06-13 09:31:38 -07:00
Judy Joseph
dc3d2c2263 Update submodules
sonic-utilities
e2dd672 [yang] remove mistakenly added parameter for 'get_module_name' (#2193)
2b12a39 Add check to not allow deleting PO if its member of vlan. (#2141)

sonic-platform-common

309d169 [ssd_generic] Fix innodisk health regex (#287)
2022-06-12 22:25:14 -07:00
xumia
f2c39cfd00
[Bug]: fix the version file name issue (#11073)
Why I did it
[Bug]: fix the version file name issue
The version file version-deb not found, it should be versions-deb
2022-06-09 08:25:09 +08:00
mssonicbld
94e8be646a
[ci/build]: Upgrade SONiC package versions (#10973)
Co-authored-by: mssonicbld <vsts@fv-az48-122.y11my21s2nfuzmiq0sccgy5und.cx.internal.cloudapp.net>
[ci/build]: Upgrade SONiC package versions (#10973)
2022-06-07 14:11:41 +08:00
Aravind Mani
eeac8ce969
[DellEMC]: S52xx platform bug fixes (#10981)
* S52xx bug fixes

* update sfp.py

Co-authored-by: Aravind Mani <aravind.m1@dell.com>
2022-06-06 09:14:32 -07:00
Aravind Mani
a8e1e479a6
[submodule update] sonic-platform-common submodule update (#11011)
Co-authored-by: Aravind Mani <aravind.m1@dell.com>
2022-06-06 09:11:43 -07:00
xumia
146b6328a1
[Build]: Fix the version files for armhf/arm64 not used issue (#11022)
Why I did it
[Build]: Fix the version files in host-base-image for armhf/arm64 not used issue
2022-06-06 19:36:38 +08:00
Myron Sosyak
ca284a1bf2
Fix syncd-rpc build (#10602) 2022-06-01 20:29:49 +08:00
xumia
03532c8ef9
[Build]: Support to use the base image version when a package version not specified (#10971) (#10974)
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:29 +08:00
xumia
5bf840d103 [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-05-30 09:49:53 -07:00
Vivek R
5bd7cf9931
[202111] Update sonic-utilities submodule (#10939)
Update submodule ptr for sonic-utilities to include

[202111] [portchannel] Added ACL/PBH binding checks to the port before getting added to portchannel (#2186)

Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
2022-05-27 09:28:23 -07:00
Judy Joseph
45b4f49eb2 Update sonic-swss, sonic-utilities
swss

081d47b Update netlink messages handler (#2233)
de7c3eb [IntfMgrd] Retry adding ipv6 prefix by setting disabled_ipv6 flag  (#2267)

utilities

2716ff2 [yang] extend ConfigMgmt constructor to pass YANG options (#2118)
9fbe2ef [debug dump] dump interface module added (#2070)
a86da2d Add sonic-delayed.target to Application Extension .timer file generator (#2176)
90611dd [portconfig] Allow to configure interface mtu for physical ports only
2022-05-25 16:36:48 -07:00
Neetha John
0d62aad665 [sonic-config-engine] Change hwsku for sample graph in unit tests (#10889)
#### Why I did it
To ensure that some internal testcases do not break due to external changes

#### How to verify it
Ran test_cfggen.py with the changes and it passed
2022-05-25 16:32:09 -07:00
Lawrence Lee
0a3211ddd2 [scapy]: Patch scapy 2.4.5 for sniffing on intfs (#10644)
Apply scapy fix (https://github.com/secdev/scapy/pull/3240) since it is not available in release yet

Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
2022-05-25 16:32:05 -07:00
xumia
7e5aed28bc [Ci]: Fix to trigger the publish pipeline in failure build issue (#10847)
Why I did it
It is not necessary to trigger the publish pipeline when build is failed.

How I did it
Remove the condition in the azp task, change to use template condition.
2022-05-25 16:32:00 -07:00
kellyyeh
980f6e9015 [dhcp6relay] Fix option parsing and add dhcpv6 client messages (#10819) 2022-05-25 16:31:55 -07:00
Shilong Liu
cd2c522a05
[build] Add dependencies for sonic-config-engine to block bad PR. (#10770) (#10796)
Add dependencies device/*
2022-05-24 14:58:55 +08:00
Shilong Liu
0a15f8177b
[ci] Add arm artifacts in common lib azure pipeline (#10890)
cherry-pick PR from master:
https://github.com/Azure/sonic-buildimage/pull/10817
2022-05-24 14:57:31 +08:00
mssonicbld
bb0c71246d
[ci/build]: Upgrade SONiC package versions (#10906) 2022-05-23 21:40:47 +00:00
Volodymyr Samotiy
1944f309de
[202111] [Mellanox] Update SAI to 1.21.1.1 and SDK/FW to 4.5.2262/xx.2010.2262 (#10881)
- Why I did it
To include latest fixes:
1. Warmboot | When trying to reconfigure the Flex Parser header and Flex transition parameters after ISSU, the switch will returned an error even if the configuration was identical to that done before performing the ISSU.
2. Link Up | When toggling many ports of the Spectrum devices while raising 10GbE link up and link maintenance is enabled, the switch may get stuck and may need to be rebooted.
3. Shared buffer | While moving from lossless to lossy while shared headroom was used, reduction of the shared headroom can only be done prior to pool type change and when shared headroom is not utilized.
4. Added support for Finisar DR4 (FTCD4523E2PCM) on Spectrum-2 and Spectrum-3 systems.

SAI
1. ECMP overlay support for IPv4 and IPv6
2. BFD offloading / 4K scale

SAI fixes
1. Reduce verbosity of print in case packet ingress on invalid port
2. Added support for Host table entry removal API to remove registration of a trap to a channel

- How I did it
Updated SAI & SDK submodules along with the relevant Makefiles

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

Signed-off-by: Volodymyr Samotiy <volodymyrs@nvidia.com>
2022-05-22 09:51:48 +03:00
Stephen Sun
2aa1c2f437
Fix issue: error message from system-health daemon is observed during system starting (#10843)
- Why I did it
Error message: "ERR healthd: Failed to read from file /var/run/hw-management/led/led_status_capability" is observed during system starting
The system-health daemon will wait for 5 minutes before it starts to run.
During this time, the only thing it does is to set the LED even before it starts.
However, the corresponding sysfs has not been ready at the time it is being read, which causes the error message.

- How I did it
Defer system-health daemon until hw-management service starts

- How to verify it
Run regression test

Signed-off-by: Stephen Sun <stephens@nvidia.com>
2022-05-21 10:13:49 +03:00
ganglv
f58fec5d95
[sonic-cfggen]: Fix broken UT (#10863)
Why I did it
UT for sonic-config-engine is broken.

How I did it
Remove yang validation.

How to verify it
Run UT for sonic-config-engine.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-05-18 16:44:50 +08:00
Judy Joseph
9eadb98341 Update the submodules
sonic-utilities
0225195 Accept 0 for queue and dscp (#2162)
282faf0 [show][vrf]Fixing show vrf to include vlan subinterface (#2158)
f3f1b11 Validate destination port is not LAG (#2053)

sonic-platform-common
0f6cccd [sonic_ssd] Nokia-7215: "show platform ssdhealth" not showing health percent (#279)
2022-05-15 23:26:43 -07:00
ganglv
6a9ef8c1de [sonic-cfggen]: Update UT to run yang validation (#9700)
Why I did it
Config db schema generated by minigraph should run yang validation.

How I did it
Modify run_script to add yang validation.

How to verify it
Run sonic-config-engine unit test.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-05-15 23:13:12 -07:00
xumia
77ae1e8198 [Ci] Support to trigger a pipeline to download and publish artifacts to storage (#10820)
Why I did it
Support to trigger a pipeline to download and publish artifacts to storage and container registry.
Support to specify the patterns which docker images to upload.

How I did it
Pass the pipeline information and the artifact information by pipeline parameters to the pipeline which will be triggered a new build. It is to decouple the artifacts generation and the publish logic, how and where the artifacts/docker images will be published, depends on the triggered pipeline.

How to verify it
2022-05-15 23:13:01 -07:00
Vivek R
d628430148 Removed platform specific reboot files for mellanox simx platforms (#10806)
- Why I did it
Platform_reboot files for simx doesn't do aything different apart from calling /sbin/reboot. which is anyway done in the /usr/local/bin/reboot script i.e. the parent script which calls the platform specific reboot scripts if present.

Moreover, /sbin/reboot invoked in the platform specific reboot script is a non-blocking call and thus it returns back to the original script (although /sbin/reboot does it job in the background) and we see messages like this.

Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
2022-05-15 23:12:55 -07:00
kellyyeh
d03ede7ba0 [dhcp_relay] Remove dhcp6mon (#10467) 2022-05-15 23:12:48 -07:00
Saikrishna Arcot
bad29e535b Fix calculation of $(1)_DEP_PKGS_SHA in Makefile.cache (#10764)
In Makefile.cache, for $(1)_DEP_PKGS_SHA, the intention is to include
the DEP_MOD_SHA and MOD_HASH of each of the current package's
dependencies. However, there's a level of dereferencing missing; instead
of grabbing the value of $(dfile)_DEP_MOD_SHA, it is literally using the
variable name $(dfile)_DEP_MOD_SHA. This means that the value of this
variable will not change when some dependency changes.

The impact of this is in transitive dependencies. For a specific
example, if there is some change in sairedis, then sairedis will be
rebuilt (because there's a change within that component), and swss will
be rebuilt (because it's a direct dependency), but
docker-swss-layer-buster will not get rebuilt, because only the direct
dependencies are effectively being checked, and those aren't changing.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2022-05-15 23:11:05 -07:00
Marty Y. Lok
b1c3ab73ca [VoQ][config] Multiasic Supervisor card fails to load config_db#.json in chassis when system is reboot (#10106)
Supervisor card fails to load config_db#.json in chassis when system reboot. 
This is an intermittent issue, fixes #10105
2022-05-15 23:11:01 -07:00
Sudharsan Dhamal Gopalarathnam
df660f20be [caclmgrd]Added logic to allow BFD port numbers (#10735)
* [caclmgrd]Added logic to allow BFD port numbers
2022-05-15 23:10:57 -07:00
Dror Prital
51d675c604
[202111][submodule] Update sonic-utilities submodule (#10816)
Revert "[scripts/fast-reboot] Shutdown remaining containers through systemd (Azure/sonic-utilities#2133)" (Azure/sonic-utilities#2166)
2022-05-15 14:01:41 +03:00
Shilong Liu
339e68e1dd
[ci] Support multi tags when pushing docker image (#10771) (#10789) 2022-05-11 14:08:50 +08:00
Junchao-Mellanox
d0e7d9a01d
[YANG] Fix issue: Non compliant leaf list in config_db schema (#10291) (#10768)
Fix issue: Non compliant leaf list in config_db schema: https://github.com/Azure/sonic-buildimage/issues/9801

The basic flow of DPB is like:
1.	Transfer config db json value to YANG json value, name it “yangIn”
2.	Validate “yangIn” by libyang
3.	Generate a YANG json value to represent the target configuration, name it “yangTarget”
4.	Do diff between “yangIn” and “yangTarget”
5.	Apply the diff to CONFIG DB json and save it back to DB

The fix:
•	For step #1, If value of a leaf-list field string type, transfer it to a list by splitting it with “,” the purpose here is to make step#2 happy. We also need to save <table_name>.<key>.<field_name> to a set named “leaf_list_with_string_value_set”.
•	For step#5, loop “leaf_list_with_string_value_set” and change those fields back to a string.

1. Manual test
2. Changed sample config DB and unit test passed

Conflicts:
	src/sonic-yang-mgmt/sonic_yang_ext.py
2022-05-09 07:41:27 -07:00
mssonicbld
a4283019cd
[ci/build]: Upgrade SONiC package versions (#10724) 2022-05-08 23:13:04 +00:00
Judy Joseph
375e20338a Update submodules sonic-snmpagent, sonic-swss
079f80a (HEAD -> 202111, origin/202111) Fix: if routestr does not exist, skip (#257)
8fd0fe1 Fix: not to use blocking get_all() after keys() (#255)
981107a Add VoQ Recirc interface (i.e., Ethernet-Rec) to interface maps for S… (#244)

f4ecfb6 (HEAD -> 202111, origin/202111) Removing Vnet with scope default (#2239)
2022-05-07 23:28:17 -07:00
Junchao-Mellanox
4dabc46d82 Fix race condition between networking service and interface-config service (#10573)
Why I did it
The PR is aimed to fix a bug that mgmt port eth0 may loss IP even if user configured static IP of eth0. This is not a always reproduceable issue, the reproducing flow is like:

Systemd starts networking service, which runs a dhcp based configuration and assigned an ip from dhcp.
Systemd starts interface-config service who depends on networking service
Interface-config service runs command “ifdown –force eth0”, check line. but networking service is still running so that this line failed with error: “error: Another instance of this program is already running.”. This error is printed by ifupdown2 lib who is the main process of networking service. So, ifdown actually does not work here, the ip of eth0 is not down.
Interface-config service updates /etc/networking/interface to static configuration.
Interface-config service runs command “systemctl restart networking”. This command kills the previous networking related processes (log: networking.service: Main process exited, code=killed, status=15/TERM), and try to reconfigure the ip address with static configuration. But it detects that the configured IP and the existing IP are the same, and it does not really configure the ip to kernel. Hence, the ip is still getting from dhcp. (this could be a bug of ifupdown2: previous ip is from dhcp, new ip is a static ip, it treats them as same instead of re-configuring the IP)
When the lease of the ip expires, the ip of eth0 is removed by kernel and the issue reproduces.
The issue is not always reproduceable because networking service usually runs fast so that it won't hit step#3.

How I did it
Check networking service state before running "ifdown –force eth0", wait for it done if it is activating.

How to verify it
Manual test.
2022-05-07 23:17:07 -07:00
kellyyeh
0a3217004c [dhcp6relay] Add dhcpv6 option check (#10486) 2022-05-07 23:17:03 -07:00
Aravind Mani
f907f19064 DellEMC: S6000,S6100 SFP refactor (#9016)
* DellEMC: S6000,S6100 SFP refactor
2022-05-07 23:16:57 -07:00
Lior Avramov
3d3eb1fb53 [LLDP] Enhance lldmgrd Redis events handling (#10593)
Why I did it
When lldpmgrd handled events of other tables besides PORT_TABLE, error message was printed to log.

How I did it
Handle event according to its file descriptor instead of looping all registered selectables for each coming event.

How to verify it
I verified same events are being handled by printing events key and operation, before and after the change.
Also, before the change, in init flow after config reload, when lldpmgrd handled events of other tables besides PORT_TABLE, error messages were printed to log, this issue is solved now.
2022-05-07 23:16:48 -07:00
kellyyeh
78031eb863 [dhcp6relay] Add retry mechanism for binding socket to interface ipv6 addresses (#10712) 2022-05-07 23:16:44 -07:00
shlomibitton
d3d6d0fb52 [Fastboot] Delay PMON service for better fastboot performance (#10567)
- Why I did it
Profiling the system state on init after fast-reboot during create_switch function execution, it is possible to see few python scripts running at the same time.
This parallel execution consume CPU time and the duration of create_switch is longer than it should be.
Following this finding, and the motivation to ensure these services will not interfere in the future, PMON is delayed in 90 seconds until the system finish the init flow after fastboot.

- How I did it
Add a timer for PMON service.
Exclude for MLNX platform the start trigger of PMON when SYNCD starts in case of fastboot.
Copy the timer file to the host bin image.

- How to verify it
Run fast-reboot on MLNX platform and observe faster create_switch execution time.
2022-05-07 23:16:41 -07:00
Andriy Yurkiv
1334c0447f [yang] add yang options for Context object (#10359)
#### Why I did it
Need to pass LY_CTX_DISABLE_SEARCHDIR_CWD to Context in order to disable automatically searching for schemas in current working directory (which is by default searched automatically)

#### How I did it
add additional attribute into YANG context

#### How to verify it
Create some invalid link on switch :
1) **ln -s /usr/abc xxx**
2) run **spm list**
--> There should not be these messages:
```
libyang[1]: Unable to get information about "xxx" file in "/tmp" when searching for (sub)modules (No such file or directory)
libyang[1]: Unable to get information about "xxx" file in "/tmp" when searching for (sub)modules (No such file or directory)
libyang[1]: Unable to get information about "xxx" file in "/tmp" when searching for (sub)modules (No such file or directory)
libyang[1]: Unable to get information about "xxx" file in "/tmp" when searching for (sub)modules (No such file or directory)
```
2022-05-07 23:16:37 -07:00
Judy Joseph
b3f42feeaf Update sonic-swss, sonic-utilities submodules
swss
f71c57e [ACL]Avoid incrementing crm count when ACL rule create fails (#2238)

utilities
8a93fde Allow fw update for other boot type against on the previous "none" boot fw update (#2040)
5837559 [show] fix get routing stack routine (#2137)
c888f29 [techsupport] improve robustness (#2117)
2022-05-01 23:20:41 -07:00
Shilong Liu
482f45e28f [build] docker-sonic-mgmt replace USER by whoami (#9702) 2022-05-01 23:16:26 -07:00
xumia
a55ba095db Fix the build target error when building sonic-rest-api (#10693)
Why I did it
Fix target target/debs/bullseye/sonic-rest-api_1.0.1_arm64.deb not existing issue, the correct target is target/debs/bullseye/sonic-rest-api_1.0.1_armhf.deb.
Fix issue: #9896

[ FAIL LOG START ] [ target/debs/stretch/sonic-rest-api_1.0.1_amd64.deb ]
[ REASON ] :      target/debs/stretch/sonic-rest-api_1.0.1_amd64.deb does not exist   NON-EXISTENT PREREQUISITES: 
[ FLAGS  FILE    ] : []
2022-05-01 23:16:22 -07:00
shlomibitton
94f271c667 [Fastboot] Delay LLDP service for better fastboot performance (#10568)
- Why I did it
Profiling the system state on init after fast-reboot during create_switch function execution, it is possible to see few python scripts running at the same time.
This parallel execution consume CPU time and the duration of create_switch is longer than it should be.
Following this finding, and the motivation to ensure these services will not interfere in the future, LLDP is delayed in 90 seconds until the system finish the init flow after fastboot.

- How I did it
Add a timer for LLDP service.
Copy the timer file to the host bin image.

- How to verify it
Run fast-reboot on MLNX platform and observe faster create_switch execution time.
This PR is dependent on PR: #10567
2022-05-01 23:16:18 -07:00
Saikrishna Arcot
f1ec7107cb Remove SSH host keys after installing the custom version of sshd (#10633)
* Remove SSH host keys after installing the custom version of sshd

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>

* Use an override for for sshd instead of overwriting the service file

Don't overwrite upstream's .service file, and instead use an override
file for making sure the host key(s) are generated.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2022-05-01 23:16:14 -07:00
mssonicbld
e2a2b30676
[ci/build]: Upgrade SONiC package versions (#10722) 2022-05-01 22:40:25 +00:00
mssonicbld
ff48ad4e9b
[ci/build]: Upgrade SONiC package versions (#10658) 2022-04-29 22:37:55 +00:00
Shilong Liu
0d8b769bae
[CG] Fix CG alert about underscore version. (#10706) 2022-04-29 13:40:13 +08:00
Shilong Liu
89d84704a9
[submodule] Update submodule for sonic-mgmt-common (#10671) 2022-04-28 13:40:59 +08:00
Stephen Sun
a68eaebe9d
[202111] [submodule] Advance sonic-platform-daemons pointer (#10673)
e46b243b Fix checkReplyType failed issue via recreating xcvr_table_helper on forking subprocess (#255) (#256)

Signed-off-by: Stephen Sun <stephens@nvidia.com>
2022-04-27 19:37:34 +03:00
Petro Bratash
8f0519b4b3
[BFN] Update configuration files (#10588) 2022-04-27 09:21:47 -07:00
xumia
e950fac740
[Submodule]: update submodule for sonic-restapi (#10682)
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:41 +08:00
Judy Joseph
7e18f4c4a1 Update sonic-swss submodule
fc29641 [pbh] [aclorch] Fixed a bug causes by updating the flow-counter value for the PBH rule (#2226)
6c38ef7 [QoS] Resolve an issue in the sequence where a referenced object removed and then the referencing object deleting and then re-adding (#2210)
2022-04-24 21:19:17 -07:00
Junchao-Mellanox
ccc8c58c9c [Mellanox] Adjust PSU voltage WA (#10619)
- Why I did it
InvalidPsuVolWA.run might raise exception if user power off PSU when it is running. This exception is not caught and will be raised to psud which causes psud failed to update PSU data to DB.

- How I did it
1. Change the log level when WA does not work. This could happen when user power off PSU, hence changing the log level from error to warning is better
2. Change the wait time from 5 to 1 to avoid introduce too much delay in psud. 1 second is usually enough per my test
3. Give a default return value for function get_voltage_low_threshold and get_voltage_high_threshold to avoid exception reach to psud

- How to verify it
Manual test.
Run sonic-mgmt regression
2022-04-24 21:14:04 -07:00
Shilong Liu
0dff46b6bc Fix docker-sonic-mgmt reproducible related issue. (#9647)
Reproducible build script breaks docker-sonic-mgmt build.
2022-04-24 21:13:55 -07:00
xumia
03f1b87e65 [Ci]: Support to sign image for cisco-8000 uefi secure boot (#10616)
Why I did it
[Ci]: Support to sign image for cisco-8000 uefi secure boot
2022-04-24 21:13:41 -07:00
Vadym Hlushko
c62251b658 [install.sh] Fixed the sed pattern to match the current image revision (#9813)
#### Why I did it
The test plan described in the `How to verify it` section caused an issue when 3 images (instead of 2) were present when executing `show boot` or `sonic-installer list` commands:
```
root@sonic:/home/admin# show boot
Current: SONiC-OS-master.0-dirty-20220118.165941
Next: SONiC-OS-master.0-dirty-20220118.165941
Available: 
SONiC-OS-master.0-dirty-20220118.165941
SONiC-OS-202012.201-a0376a6e5_Internal
SONiC-OS-202012.201-a0376a6e5_Internal_RPC
```
#### How I did it
Fixed the `sed` pattern to match the current image revision in the `install.sh` script.

#### How to verify it
Test plan:
1. Install the `imageA` by using ONIE
2. Install the `imageA-rpc` by using `sonic-installer`
3. Reboot the switch
4. Swap to the `imageA` - `sonic-installer set-default imageA`
5. Reboot the switch
6. Install  the `imageB` by using `sonic-installer`
7. Check an installed images - `show boot`
8. Reboot the switch
9. Check an installed images - `show boot`
2022-04-24 21:13:37 -07:00
Sachin Naik
749bbb6ea4 secureboot: Enable signing SONiC kernel (#10557)
Why I did it
To sign SONiC kernel image and allow secure boot based system to verify SONiC image before loading into the system.

How I did it
Pass following parameter to rules/config.user
Ex:
SONIC_ENABLE_SECUREBOOT_SIGNATURE := y
SIGNING_KEY := /path/to/key/private.key
SIGNING_CERT := /path/to/public/public.cert

How to verify it
Secure boot enabled system enrolled with right public key of the, image in the platform UEFI database will able to verify image before load.

Alternatively one can verify with offline sbsign tool as below.

export SBSIGN_KEY=/abc/bcd/xyz/
sbverify --cert $SBSIGN_KEY/public_cert.cert fsroot-platform-XYZ/boot/vmlinuz-5.10.0-8-2-amd64 mage

O/P:
Signature verification OK
2022-04-24 21:13:32 -07:00
Shilong Liu
4280a2365d
[CG-Fix-CVE-2021-44906] Patching on thrift.0.14.1 for package minimist (#10555) (#10650)
* [CG-Fix-CVE-2021-44906] Patching on thrift.0.14.1 for package minimist

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>

* add more information in patch

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>

* Update 0003-Remove-minimist-packages.patch

* change the thrift 0.14.1 to package download

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>

* use the series file for patching

* fix a code defect

Co-authored-by: Richard.Yu <richard.yu@microsoft.com>
2022-04-23 13:55:52 +08:00
mssonicbld
b7d77c7193
[ci/build]: Upgrade SONiC package versions (#10653) 2022-04-23 00:43:12 +00:00
ganglv
a4597396c2
[yang]: Update yang models to support 'cluster' (#10597)
Why I did it
Minigraph parser added a new field 'cluster' to device_metadata, and then yang validation is blocked.

How I did it
Add 'cluster' to device_metadata yang models.

How to verify it
Run UT for sonc-yang-models.
Use minigraph parser to generate ConfigDB schema and run yang validation.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-04-21 17:20:36 +08:00
ganglv
0526ff98f2
[yang] Update device_metadata to add dhcp_server (#10598)
Why I did it
dhcp_server is introduced, and need to update yang model.

How I did it
Update yang models and add unit test.

How to verify it
Run unit test for sonic-yang-models.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-04-21 08:39:35 +08:00
Samuel Angebault
df8eaa0544 [Arista] Fix arista-net initramfs hook
The interface renaming logic fails if one interface is missing.
Because of the `set -e` the whole initramfs hook would abort early on
error.
This change fixes the current behavior to make sure missing interfaces
are properly skipped and ensure existing interface are renamed.
2022-04-20 10:04:21 -07:00
Samuel Angebault
eaf9a0bde8 [Arista] rename management interface in initrd (#9856)
On some products the pci enumeration adds randomness into which nic gets
initialized first.
Because SONiC doesn't use deterministic interface naming but instead old
style interface naming, this leads to eth0 not always being the
management port.
To make sure eth0 is always the management port (SONiC expectation)
rename the interfaces in the initramfs for Arista products.
2022-04-20 10:04:21 -07:00
mssonicbld
ae6caab040
[ci/build]: Upgrade SONiC package versions (#10521)
Upgrade SONiC Versions
2022-04-20 12:19:56 +08:00
Judy Joseph
9f52080516 Update sonic-utilities submodule 2022-04-18 08:39:07 -07:00
Junchao-Mellanox
bdbb3d708d [Mellanox] Auto correct PSU voltage threshold (WA) (#10394)
- Why I did it
There is a hardware bug that PSU voltage threshold sysfs returns incorrect value. The workaround is to call "sensor -s" to refresh it.

- How I did it
Call "sensor -s" when the threshold value is not incorrect and PSU is "DELTA 1100"

- How to verify it
Unit test and Manual test
2022-04-17 23:11:35 -07:00
ganglv
bf34b17d20 [yang]: Add support for BmcMgmtToRRouter (#10488)
Why I did it
minigraph parser has introduced new type.

How I did it
Update yang models to support BmcMgmtToRRouter.

How to verify it
Run unit test for sonic-yang-models

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-04-17 23:11:24 -07:00
ganglv
1ad75641cb [sonic-cfggen]: Add port speed for UT (#10483)
Why I did it
Need to run yang validation for sonic-cfggen unit test, and many unit test does not provide speed for port table.

How I did it
Update minigraph xml.

How to verify it
Run sonic-cfggen unit test.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-04-17 23:11:21 -07:00
ganglv
03bbae39c0 [sonic-cfggen]: Update unit test to remove asn 0 (#10454)
Why I did it
ASN range is from 1 to 4294967295, need to remove invalid ASN.

How I did it
Update unit test and replace ASN 0.

How to verify it
Run unit test for sonic-config-engine.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-04-17 23:11:17 -07:00
ganglv
2404c201ba [sonic-cfggen] Fix invalid switch_type (#10383)
Why I did it
sonic-config-engine unit test is using invalid switch_type

How I did it
Update xml with correct switch_type

How to verify it
Run UT for sonic-config-engine

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-04-17 23:11:14 -07:00
ganglv
c3e1e2dce3 [sonic-cfggen]: Update UT to add port lanes (#10362)
Why I did it
Need to run yang validation for sonic-cfggen unit test, and many unit test does not provide lanes for port table.

How I did it
Update port config file.

How to verify it
Run sonic-cfggen unit test,
Use below PR to verify
#10228

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-04-17 23:11:08 -07:00
ganglv
d224315292 [sonic-cfggen]: Fix generated deployment_id (#10154)
Why I did it
Config db schema generated by minigraph can’t pass yang validation, deployment_id can’t be none for yang validation.

How I did it
Update minigraph.py, skip deployment_id with None value

How to verify it
Run UT for sonic-config-enginue.
Run command 'sonic-cfggen -m tests/multi_npu_data/sample-minigraph-noportchannel.xml -p tests/multi_npu_data/sample_port_config-3.ini -n asic3 --print-data'.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-04-17 23:11:05 -07:00
ganglv
9e7dbffca2 [YANG]: Update port Yang models to support multi-asic platform (#10113)
Why I did it
Multi-asic platform add aisc_port_name and role to PORT table, and port_index range is changed.

How I did it
Update sonic-port.yang, add asic_port_name and role, and remove range limitation.

How to verify it
Run UT for sonic-yang-models.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-04-17 23:11:01 -07:00
ganglv
1f29ae59ec [yang]: Add yang models for BGP_PEER_RANGE table (#10082)
Why I did it
end2end test is blocked by Yang model for BGP_PEER_RANGE.

How I did it
Add new yang models.

How to verify it
Run UT for sonc-yang-models.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-04-17 23:10:57 -07:00
ganglv
8412606da8 [yang]: AAA login pattern (#9805)
Signed-off-by: Gang Lv ganglv@microsoft.com

<!--
     Please make sure you've read and understood our contributing guidelines:
     https://github.com/Azure/SONiC/blob/gh-pages/CONTRIBUTING.md

     ** Make sure all your commits include a signature generated with `git commit -s` **

     If this is a bug fix, make sure your description includes "fixes #xxxx", or
     "closes #xxxx" or "resolves #xxxx"

     Please provide the following information:
-->

#### Why I did it
end2end test is blocked by Yang model for AAA login pattern.

#### How I did it
Add pattern to AAA yang models.

#### How to verify it
Run UT for sonc-yang-models.

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

<!--
- Note we only backport fixes to a release branch, *not* features!
- Please also provide a reason for the backporting below.
- e.g.
- [x] 202006
-->

- [ ] 201811
- [ ] 201911
- [ ] 202006
- [ ] 202012
- [ ] 202106

#### Description for the changelog
<!--
Write a short (one line) summary that describes the changes in this
pull request for inclusion in the changelog:
-->
Fix #9713 

#### A picture of a cute animal (not mandatory but encouraged)
2022-04-17 23:10:45 -07:00
Vivek R
f0cbd9de5c
update snmp-subagent submodule ptr (#10570)
004b9a4 [202111] Handle error seen on system where vlan interface map is not present (#252)
899cfdd [ci] add pr trigger for 202111 branch (#253)
2022-04-15 12:22:14 -07:00
Petro Bratash
1af932a98b
[BFN] [202111] Updated platform plugins (#10422)
* Ported platform from master

Signed-off-by: Petro Bratash <petrox.bratash@intel.com>

* [BFN] Updated x86_64-accton_as9516_32d-r0/platform.json

* [BFN] Refactoring and adding some functions of Thermal class (set and
get thresholds and etc.)

* [BFN] Fix exception when fwutil run without sudo

* Revert "[BFN] syncd-rpc build with thrift 0.14.1 (#9884)"

This reverts commit bec35267cb.

* [BFN] Updated SDK to 20220127_sai_1.9.1 (#9870)

Signed-off-by: Andriy Kokhan <andriyx.kokhan@intel.com>

* [BFN] updated SDE packages for BFN platforms (#10512)

Updated SDE packages for bfn platform

- introduced X6 profile
- fixes for drop counters
- fixes for platform part

Co-authored-by: Andriy Kokhan <AndriyX.Kokhan@intel.com>
Co-authored-by: roman_savchuk <romanx.savchuk@intel.com>
2022-04-14 10:09:37 -07:00
Judy Joseph
167b90f277 Update sonic-snmpagent
Modify path of python wheels to be installed. (#240)  64e77c66d08ea02f0d5e35af5f6a21cd840e44a7
2022-04-12 17:14:07 -07:00
Yang Wang
bb743fa156
[202111]Bump Thrift version from 0.13.0 to 0.14.1 and typo fixed (#10528)
* Bump Thrift version from 0.13.0 to 0.14.1 (#9881)

#### Why I did it
To bump the Thrift version to 0.14.1 
- To avoid [CVE-2020-13949](https://nvd.nist.gov/vuln/detail/CVE-2020-13949) 
- to fix some dependencies issues

#### How I did it
- rename `src/thrfit_0_13_0` to `src/thrift_2` to remove version number in the path. (`src/thrift` contains rules to build thrift 0.11.0  )
- Add thrift sources as submodule as there are no prepared debian packages for version >0.13.0 on [debian.org](https://packages.debian.org/search?searchon=sourcenames&keywords=thrift)
- Added patches with fixes for original thrift debian rules:(remove unneeded packages, fix multi job build)
#### How to verify it
```
BLDENV=buster make -f Makefile.work target/debs/buster/libthrift-dev_0.14.1_amd64.deb
```

* Correct thrift 0141 typo fix (#10199)

Correct libsaithrift dependency package name from
LIBTHRIFT_DEV_0_14_1 THRIFT_COMPILER_0_14_1 to
LIBTHRIFT_0_14_1_DEV THRIFT_0_14_1_COMPILER

How I did it
How to verify it
Test Done:

make BLDENV=buster SAITHRIFT_V2=y -f Makefile.work target/debs/buster/saiserverv2_0.9.4_amd64.deb

Co-authored-by: Myron Sosyak <myronx.sosyak@intel.com>
2022-04-12 16:21:24 +08:00
xumia
6f5126ef7e
[Build]: Upgrade pip3 package docker to 5.0.3 (#10524)
Why I did it
In sonic-utilities repo, it is required to install docker>=4.4.4
f70dc27827/setup.py (L187)
See #10523
2022-04-12 10:54:10 +08:00
Judy Joseph
5809e7cad4 Update submodule
89d0e92 (HEAD -> 202111, origin/202111) [scripts/fast-reboot] cleanup (#2132)
e0baa93 [config/config_mgmt.py]: Fix dpb issue with upper case mac in (#2066)
2022-04-10 23:32:29 -07:00
Judy Joseph
b49e04a29b Update submodule
dd0fb84 (HEAD -> 202111, origin/202111) [mirrororch]: Implement HW resources availability validation for SPAN/ERSPAN (#2187)
2022-04-10 23:30:47 -07:00
Judy Joseph
711b4f9c98 Update submodule
6745a11 (HEAD -> 202111, origin/202111) LLDPLocalSystemDataUpdater Exception Log Handled (#249)
2022-04-10 23:27:11 -07:00
Judy Joseph
a52af06251 Update src/sonic-platform-common
2135269 (HEAD -> 202111, origin/202111) [SSD]Enhance ssd_generic with more error handling to avoid python crash #271
393fbee [SSD Generic] Add support for parsing nvme ssd model, health and temperature (#265)
2022-04-10 23:24:57 -07:00
Judy Joseph
58fa1858cd Update sonic-platform-daemons
99aebb601fece23bc54a7597410ff7469a7faeb3 Fix platform daemon chassisd to handle auto restart on fail (#247)
2022-04-10 23:23:30 -07:00
Marty Y. Lok
d940402b07 Update Nokia sonic-platform submodule (#10437)
b67d479 Fixed the sfp refactor issue
827c5a6 Added nokia_cmd command nokia_common grpc support for power down/up SFM module
aeb7f56 Added the nokia cli commands for midplane
c57d083 Fix the get_my_module issue and the thermal_infos exception issue.
0536293 Change the output of "show chassis module status"
63212d7 Enhance the help display for nokia_cmd command
e8d2599 Fix the sonic_install_ndk_service script issue
d52bdcf Add command nokia_cmd show sfm-eeprom support

Signed-off-by: mlok <marty.lok@nokia.com>
2022-04-10 23:18:01 -07:00
xumia
b23eb1aea0 [Ci]: check if there is a sonic dirty version issue (#10445)
Why I did it
[Ci]: check if there is a sonic dirty version issue
If there is a dirty version issue in PR build, the build will be failed.
2022-04-10 23:17:58 -07:00
Stepan Blyshchak
f83d73ba29 [scapy] update scapy to 2.4.5 and patch it (#10457)
Why I did it
Running warm-reboot in a loop for 500 times leads to this error on 318-th iteration:

Apr  2 15:56:27.346747 sonic INFO swss#/supervisord: restore_neighbors Traceback (most recent call last):
Apr  2 15:56:27.346747 sonic INFO swss#/supervisord: restore_neighbors   File "/usr/bin/restore_neighbors.py", line 24, in <module>
Apr  2 15:56:27.346747 sonic INFO swss#/supervisord: restore_neighbors     from scapy.all import conf, in6_getnsma, inet_pton, inet_ntop, in6_getnsmac, get_if_hwaddr, Ether, ARP, IPv6, ICMPv6ND_NS, ICMPv6NDOptSrcLLAddr
Apr  2 15:56:27.346795 sonic INFO swss#/supervisord: restore_neighbors   File "/usr/local/lib/python3.7/dist-packages/scapy/all.py", line 25, in <module>
Apr  2 15:56:27.346956 sonic INFO swss#/supervisord: restore_neighbors     from scapy.route import *
Apr  2 15:56:27.346995 sonic INFO swss#/supervisord: restore_neighbors   File "/usr/local/lib/python3.7/dist-packages/scapy/route.py", line 205, in <module>
Apr  2 15:56:27.347089 sonic INFO swss#/supervisord: restore_neighbors     conf.iface = get_working_if()
Apr  2 15:56:27.347129 sonic INFO swss#/supervisord: restore_neighbors   File "/usr/local/lib/python3.7/dist-packages/scapy/arch/linux.py", line 128, in get_working_if
Apr  2 15:56:27.347213 sonic INFO swss#/supervisord: restore_neighbors     ifflags = struct.unpack("16xH14x", get_if(i, SIOCGIFFLAGS))[0]
Apr  2 15:56:27.347250 sonic INFO swss#/supervisord: restore_neighbors   File "/usr/local/lib/python3.7/dist-packages/scapy/arch/common.py", line 31, in get_if
Apr  2 15:56:27.347345 sonic INFO swss#/supervisord: restore_neighbors     return ioctl(sck, cmd, struct.pack("16s16x", iff.encode("utf8")))
Apr  2 15:56:27.347365 sonic INFO swss#/supervisord: restore_neighbors OSError: [Errno 19] No such device
The issue was reported to scapy devs secdev/scapy#3369, the fix is secdev/scapy#3371, however there is no released scapy version with this fix right now, thus decided to build scapy v2.4.5 from sources and apply the fix in a form of a patch.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2022-04-10 23:17:51 -07:00
saksarav-nokia
7d44032258 [Nokia][device] Updated the BCM config file to reduce the CPU usage (#10485)
Signed-off-by: Sakthivadivu Saravanaraj <sakthivadivu.saravanaraj@nokia.com>
2022-04-10 23:17:48 -07:00
Rajkumar-Marvell
0ace721718 [Marvell] Update armhf sai deb (#10403)
1) DHCP trap for IPV4 and IPV6
2) Interface ACL's (Ingress Everflow support)
3) 1G Autoneg support

Signed-off-by: Rajkumar Pennadam Ramamoorthy <rpennadamram@marvell.com>
2022-04-10 23:17:45 -07:00
Vivek R
4902c26bd8 [interfaces-config] "main exception: cannot find interfaces: eth0" error log avoided (#10463)
- Why I did it
Fixes #9628
During bootup, this error log is seen

Dec 22 04:26:29 sonic interfaces-config.sh[2546]: error: main exception: cannot find interfaces: eth0 (interface was probably never up ?)
This is of non-functional nature and doesn't affect the flow.

- How I did it
Dont take the ifdown if not needed

- How to verify it
Verified during reboot. Log did not appear and IP was acquired on eth0 as expected

Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
2022-04-10 23:17:30 -07:00
xumia
7c20568d43
[Unit Test]: Fix sonic config engine test not stable issue(#10147) (#10356)
Why I did it
Fix sonic config engine test not stable issue
2022-04-11 14:05:16 +08:00
Sudharsan Dhamal Gopalarathnam
7de0ea4e04
[yang][202111] Fixing Ethertype field regex in acl rule yang to accept decimal values (#10306)
Cherry-pick #10108

- Why I did it
Fixing issue #9991
The ACL RULE table field ETHER_TYPE can accept both hex as well as decimal values. However yang model didn't allow decimal values. Fixed it to allow decimal values (same pattern as in hex (1536-65535)

- How I did it
Updated yang model to handle decimal values

- How to verify it
Added UT to verify it.
2022-04-10 07:57:21 +03:00
xumia
e235513863
[Submodule]: update sonic-restapi (#10293)
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)
2022-04-08 17:45:23 -07:00
Kebo Liu
49045ba73c
[202111][Mellanox] Update hw-mgmt package to version V.7.0020.2004 (#10402)
This PR is to backport #10401 to 202111

- Why I did it
Take new hw-mgmt release to SONiC, including:
new features:

hw-mgmt: add to PSU FW upgrade tool command to show current FW version
hw-mgmt: add to PSU FW upgrade tool support for single-PSU-in-the-system FW upgrade
hw-mgmt: add attribute “/firmware” to show FW version of restricted upgradable PSUs only
hw-mgmt: Add NVME temperature reports attributes (_alarm/_crit/_min/_max)
bug fix:

psu: redundant i2c_addr attributes being created for psu 3 & 4 in system having only 2 psus.
hw-mgmt: in SPC1/2 i2c driver removal is too slow vs. ASIC reset causing non-functional log errors
PSU thresholds sysfs changed in 5.10 to “read only” preventing modification (modification required due PSU HW bug)
CPLD3 sysfs attribute missing after chip down/up flow
sysfs attributes missing when hw-mgmt is restarted (stop/start) within systemd
release notes can be found from link https://github.com/Mellanox/hw-mgmt/blob/V.7.0020.2004/debian/Release.txt

- How I did it
Update hw-mgmt make file with new version number
Update hw-mgmt submodule pointer

- How to verify it
Run platform regression on all Mellanox platform

Signed-off-by: Kebo Liu <kebol@nvidia.com>
2022-04-08 12:58:41 +03:00
mssonicbld
a90ca48e1e
[ci/build]: Upgrade SONiC package versions (#10476)
Why I did it
[ci/build]: Upgrade SONiC package versions
2022-04-08 07:28:32 +08:00
xumia
0acab757ec [Ci]: exclude innovium build and increase broadcom build timeout (#10482)
Why I did it
Exclude the innovium build in upgrading version build, currently, the builds are always failed, exclude the build temporarily.
Increase the broadcom build timeout.
2022-04-07 12:06:09 +00:00
xumia
2a97b1de44 [Build]: fix debian package not found issue (#10447)
Why I did it
[Build]: fix debian package not found issue
2022-04-06 05:53:53 +00:00
Shilong Liu
3522ac61fe [ci] Add azure pipeline to build common libs. (#10367)
Why I did it
To remove reference on Azure.sonic-buildimage artifacts.
Azure.sonic-buildimage has a higher failure rate.
2022-04-03 23:00:15 -07:00
xumia
5c526304ac [Security]: Enable hardening build options (#10369)
[Security]: Enable hardening build options
2022-04-03 23:00:12 -07:00
Marty Y. Lok
12c3940da2 [Nokia][device] Update the BCM config with Recycle ports info for Nokia IXR7250E platform (#10389)
Signed-off-by: mlok <marty.lok@nokia.com>
2022-04-03 23:00:07 -07:00
AmitKaushik7
6933485a92 Allow NULL Buffer Profile in buffer pg/queue yang files for Dynamic B… (#10353)
Why I did it
To address #10342 (Yang validation fails when Buffer profiles are configured with "NULL" values)
2022-04-03 23:00:01 -07:00
Junchao-Mellanox
b82f95cd6e [counter] Fix issue: non default counters will be delayed forever after fastboot (#10413)
- Why I did it
Fastboot will delay all counters in CONFIG DB, it relies on enable_counters.py to recover the delayed counters. However, enable_counters.py does not recover those non-default counters.

- How I did it
For non-default counters, if it is in CONFIG DB, put delay status to false after the waiting.

- How to verify it
Manual test
2022-04-03 22:59:56 -07:00
Judy Joseph
0302a86bd7 Update sonic-utilities
c5c105f (HEAD -> 202111, origin/202111) [PBH] Implement Edit Flows (#2093)
7050581 [techsupport] Handle minor fixes of TS Lock and update auto-TS (#2114)
3602f99 Fix issues in clear_qos (#2122)
4f96d3b Fixing get port speed when oper status is down (#2123)
2022-04-03 22:57:28 -07:00
Judy Joseph
16bb8777b7 Update sonic-swss
5bb99c7 Validate LAG has members before mirror session create (#2130)
ec6c8af [vxlan] Remove tunnel map objects on VNET tunnel removal (#2150)
7e7db19 [BFD]Registering BFD state change callback during session creation (#2202)
618fe07 [VNET]Fixing nexthop group delete during route change (#2198)
91b66df [portsorch]: Prevent LAG member configuration when port has active ACL binding (#2165)
29de9d0 Remove redundant and problematic code to skip "pool" field in buffer profile handling (#2197)
ded0b45 [PBH] Implement Edit Flows (#2169)
2ee0f49 [neighsyncd] increase neighsyncd timeout (#2209)
a0160c0 [QosOrch] The notifications cannot be drained in QosOrch in case the first one needs to retry (#2206)
2022-04-03 22:56:05 -07:00
xumia
c4f65f6f60 [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:39:58 +00:00
Shilong Liu
9008132871 [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-02 00:07:22 +00:00
Shilong Liu
a3aa8041b9 [build] Fix issues found in reproducible build. (#10407) 2022-04-02 00:01:41 +00:00
xumia
7ddad86a15
[Build]: Fix armhf 202111 build broken issue (#10423)
* [Marvell] Update armhf SAI deb version 1.9.1 (#9865)

Move marvell armhf SAI deb to 1.9.1 to address build failures.

Signed-off-by: Rajkumar Pennadam Ramamoorthy <rpennadamram@marvell.com>

* [Marvell] Update armhf driver/sai deb version (#10126)

Fixed Marvell SAI deb version naming issue reported in Marvell-switching/sonic-marvell-binaries#62

Signed-off-by: Rajkumar Pennadam Ramamoorthy <rpennadamram@marvell.com>

* [Build]: only install grpc in amd64 (#10212)

[Build]: only install grpc in amd64
Unblock marvell-armhf build.

Co-authored-by: Rajkumar-Marvell <54936542+rajkumar38@users.noreply.github.com>

Why I did it
Cherry-pick commits from master to 202111 to fix build broken issue.
See detail in the commits.
2022-04-01 22:25:11 +08:00
xumia
00c13b430f [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-04-01 01:25:16 +00:00
xumia
59af63f557 [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-03-30 09:29:19 +00:00
Shilong Liu
d6d12a0f80
[ci] Fix remove sonic-slave-* docker image issue when building sonic-slave* (#10296) (#10379) 2022-03-30 16:01:24 +08:00
Qi Luo
864e6078bc sonic-slave-buster pins the versions of Jinja2 and MarkupSafe in py3 (#10043)
#### Why I did it
Upstream breaking change, ref discussion https://github.com/pallets/markupsafe/issues/282
2022-03-29 15:58:41 -07:00
tjchadaga
5eea8e965e Update Broadcom SAI version to 6.1 (#10344) 2022-03-29 15:56:48 -07:00
tomer-israel
43b2e5eff4 Dynamic port configuration - solve lldp issues when adding/removing ports (#9386)
#### Why I did it
when adding and removing ports after init stage we saw two issues:

first:
In several cases, after removing a port, lldpmgr is continuing to try to add a port to lldp with lldpcli command. the execution of this command is continuing to fail since the port is not existing anymore.

second:
after adding a port, we sometimes see this warning messgae:
"Command failed 'lldpcli configure ports Ethernet18 lldp portidsubtype local etp5b': 2021-07-27T14:16:54 [WARN/lldpctl] cannot find port Ethernet18"

we added these changes in order to solve it.
#### How I did it
port create events are taken from app db only.
lldpcli command is executed only when linux port is up.

when delete port event is received we remove this command from  pending_cmds dictionary

#### How to verify it
manual tests and running lldp tests


#### Description for the changelog
Dynamic port configuration - solve lldp issues when adding/removing ports
2022-03-27 19:30:16 -07:00
pavannaregundi
fa1faaab54 [Marvell-armhf] Setting u-boot ftd_high to resolve kernel hung (#10204)
Why I did it
Kernel hang in during early boot is caused due overwriting of device tree with uncompressing kernel. Added the fdt_high which gives a safe offset from kernel location.

How I did it
Setting uboot environment variable fdt_high.

How to verify it
Successful boot of bullseye kernel on Marvell Armada 380/385.

Change-Id: I3e2521780f5ecdb3bdf6cbb6542250814ca11959
Signed-off-by: Pavan Naregundi <pnaregundi@marvell.com>
2022-03-27 19:30:13 -07:00
pavannaregundi
71a353c656 [Marvell-armhf] Fixing issues related to partition label (#10203)
Why I did it
Removing incorrect check in plt setup for fw_env config: This check was added before to compare 2 different types of disk. Now the check is redundant and check is not required as transition is complete.
2)Removing legacy_volume_label in create_partition: legacy_volume_label is not used in armhf install files. With legacy_volume_label initialized to NULL, current code will always return true for check, if demo_part exits.

How I did it
Change is about removing the redundant/incorrect code explained above.

How to verify it
uboot fw_printenv and fw_setenv is tested
onie-nos-install has be verified.

Signed-off-by: Pavan Naregundi <pnaregundi@marvell.com>
2022-03-27 19:30:09 -07:00
Saikrishna Arcot
409d5678c6 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-03-27 19:30:06 -07:00
xumia
202dfb601d [Build]: Enable marvell-armhf PR check (#10259)
Why I did it
[Build]: Enable marvell-armhf PR check
Improve the azp dependencies, make the Test stage only depended on BuildVS stage. The Test stage will be triggered once the BuildVS stage finished, reduce the waiting time.
2022-03-27 19:29:59 -07:00
Kebo Liu
4090d26d9d [Mellanox] update MFT version to 4.18.0-106 (#10304)
- Why I did it
With the previous MFT 4.18.1-16 there is a bug in mstdump tool accessing wrong address. it is confirmed this issue does not exist in official 4.18.0-106.

- How I did it
Update the MFT version to 4.18.0-106

- How to verify it
Run regression on Mellanox platforms
2022-03-27 19:29:56 -07:00
xumia
c23ed56c08 [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-03-27 19:29:52 -07:00
Volodymyr Boiko
43d726b5a1 [sonic-config-engine][portconfig] Do not parse JSON as Python AST (#10224)
#### Why I did it
To fix https://github.com/Azure/sonic-buildimage/issues/9643

#### How I did it
Instead of ast.literal_eval added python2 compat code for json strings unicode -> str convertion.

We need python2 compatibility since py2 sonic config engine (buster/sonic_config_engine-1.0-py2-none-any.whl target) is still included into the build (ENABLE_PY2_MODULES flag is set for buster). Once we abandon buster and python2, this compat and ast.literal_eval could be cleaned up all through the code base.

#### How to verify it
run steps from the linked issue
2022-03-27 19:29:48 -07:00
Marty Y. Lok
9c859a7674 [Nokia][IXR7250E]Update Nokia IXR7250E platform device data file (#10091)
Signed-off-by: mlok <marty.lok@nokia.com>
2022-03-27 19:29:44 -07:00
jingwenxie
8f15f2d574 [yang] support ACL ACCEPT action (#9784)
Why I did it
ACL have ACCEPT action indeed, but yang doesn't support it.

How I did it
Add 'ACCEPT' enum to sonic-types.yang.j2

How to verify it
Run the YANG model unit tests
2022-03-27 19:29:39 -07:00
Judy Joseph
d2f92eb3e0 Update sonic-utilities
6562ad3 (HEAD -> 202111, origin/202111) [sfpshow][recycle_port] sfpshow script needs to skip recycle ports (#2109)
f184a61 Update `config mirror_session` CLI to support heximal gre type value (#2095)
2022-03-27 19:27:13 -07:00
Judy Joseph
9a39913aab Update sonic-swss
17315fc (HEAD -> 202111, origin/202111) [Vxlanmgr] vnet netdev cleanup during config reload fix (#2191)
f820af3 [aclorch] Do not fail ACL rule remove flow if rule already deleted (#2183)
2022-03-27 19:24:43 -07:00
Judy Joseph
a1cf8a52dd Update sonic-py-swssdk
03936ea (HEAD -> 202111, origin/202111) define index for recirc port (#118)
d48f750 [port_util] Fix issue: port_util.get_vlan_interface_oid_map should not raise exception when DB has not RIF data (#117)
2022-03-27 19:22:34 -07:00
FuzailBrcm
b3478972ca [pddf]: Update PDDF utils and common platform APIs for Debian Bullseye (#9585)
- Why I did it
PDDF utils were python2 compliant and they needed to be migrated to Python3 (as per Bullseye)
PDDF common platform APIs file name changed as the name was already in use
Indentation issues
Dead/redundant code needed to be removed

- How I did it
Made files Python3 compliant
Indentation corrected
Redundant code removed

- How to verify it
AS7326 Accton platform uses PDDF. PDDF utils were run on this platform to verify.
2022-03-25 23:09:25 +00:00
Samuel Angebault
e10504592a
[202111][Arista] Update driver submodules (#9495)
cherry-pick of #9393 for 202111

 - Use SfpOptoeBase by default to leverage new `sonic_xcvr` refactor
 - Add support for `Woodleaf` product
 - Move `libsfp-eeprom.so` to a different `.deb` package
 - Add new logrotate configuration for arista logs
 - Improve logging mechanism for the drivers (IO loglevel, fix syslog duplicates)
 - Initialize chassis cards in parallel
 - Refactor of `get_change_event` to fix interrupts treated as presence change
2022-03-23 21:19:13 +05:30
xumia
d5354df3d8 [Build]: Fix armhf mirrors not existing issue (#10312)
Why I did it
[Build]: Fix armhf mirrors not existing issue
The mirror endpoint debian-archive.trafficmanager.net does not support armhf, change to use deb.debian.org and security.debian.org.
2022-03-22 07:28:21 +00:00
guxianghong
64f5b98caa
[centec][build] Fix docker-syncd-centec-rpc build fail (#9612) (#9964)
Why I did it
Fix docker-syncd-centec-rpc build fail. Detail fail log can be derived from https://dev.azure.com/mssonic/be1b070f-be15-4154-aade-b1d3bfb17054/_apis/build/builds/71157/logs/9.

How I did it
Merge PR #9612 from master branch.

How to verify it
make ENABLE_SYNCD_RPC=y target/docker-syncd-centec-rpc.gz
make ENABLE_SYNCD_RPC=y target/docker-saiserver-centec.gz
2022-03-21 09:56:59 -07:00
xumia
4fccda4ab9 [Build]: Use one debian mirror config (#10274)
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-21 08:56:24 +00:00
Yang Wang
6239897d25
Correct the pkg name for thrift.0.13.0 (#9688) (#10292)
Correct thrift.0.13.0 dependent package name.
In previous code, the buildout target was named as PYTHON3_THRIFT_0_13_0
But when add the prackage to LIBTHRIFT_0_13_0, it typo as PYTHON_THRIFT_0_13_0

Co-authored-by: Yang Wang<yangwang1@microsoft.com>
2022-03-21 11:18:07 +08:00
xumia
a9d9258d40 [Build]: Support to set jobFilters (#10280)
[Build]: Support to set jobFilters
2022-03-21 02:28:14 +00:00
Judy Joseph
365d456aaf Update sonic-utilities
9968d60 (HEAD -> 202111, origin/202111) [sonic-package-manager] do not mod_config for whole config db when setting init_cfg (#2055)
4b3d53f [generate_dump] exclude mft and mlx folders from /etc (#2072)
51d92ae Validation check correction while adding a member to PortChannel (#2078)
6a43306 [techsupport] Added a lock to avoid running techsupport in parallel (#2065)
44cfdd9 Try get port operational speed from STATE DB (#2030)
45ea623 Fix sonic-installer failure due to missing import
2022-03-20 15:46:09 -07:00
Junchao-Mellanox
2773d29220 [Mellanox] Fix issue: psu might use wrong voltage sysfs which causes invalid voltage value (#10231)
- Why I did it
Fix issue: psu might use wrong voltage sysfs which causes invalid voltage value. The flow is like:

1. User power off a PSU
2. All sysfs files related to this PSU are removed
3. User did a reboot/config reload
4. PSU will use wrong sysfs as voltage node

- How I did it
Always try find an existing sysfs.

- How to verify it
Manual test
2022-03-20 15:27:00 -07:00
bingwang-ms
ef9df9edb5 [yang] Update YANG model for mirror session to support decimal value for GRE type (#10140)
#### Why I did it
PR  https://github.com/Azure/sonic-utilities/pull/1825 added validation for the input of `config mirror session add`, and only decimal value is accepted.
An issue https://github.com/Azure/sonic-buildimage/issues/10096 was raised to suggest accepting HEX value as well, and the suggestion makes sense to me.

To accept HEX value for GRE type, and keep backward compatibility as well, I updated the YANG model to support both decimal and hexadecimal input for GRE type.

#### How I did it
Update the regex for GRE type.

#### How to verify it
Verified by UT
```
platform linux -- Python 3.9.2, pytest-6.0.2, py-1.10.0, pluggy-0.13.0
rootdir: /sonic/src/sonic-yang-models
plugins: pyfakefs-4.5.4, cov-2.10.1
collected 3 items                                                                                                                                                                                     

tests/test_sonic_yang_models.py ..                                                                                                                                                              [ 66%]
tests/yang_model_tests/test_yang_model.py .                                                                                                                                                     [100%]

========================================================================================== 3 passed in 2.53s ==========================================================================================
```

#### Description for the changelog
Update YANG model for mirror session to support decimal value for GRE type.
2022-03-20 15:26:57 -07:00
Arun Saravanan Balachandran
e1051da81a DellEMC: Z9332f - Component API Fixes (#10187) 2022-03-20 15:26:30 -07:00
xumia
cab6ac6e19 [Build]: Fix /proc not mounted issue (#10164)
[Build]: Fix /proc not mounted issue
2022-03-20 15:26:27 -07:00
Stepan Blyshchak
f506751d28 [teamd.sh] kill teamd docker on warm shutdown for faster shutdown (#10219)
This can save 6 sec for teamd LAG restoration - the time between:

```
Mar  9 13:51:10.467757 r-panther-13 WARNING teamd#teamd_PortChannel1[28]: Got SIGUSR1.
Mar  9 13:52:33.310707 r-panther-13 INFO teamd#teamd_PortChannel1[27]: carrier changed to UP
```

- Why I did it
Optimize warm boot. Specifically reduce the time needed for LAG restoration.

- How I did it
Kill teamd docker after graceful shutdown of teamd processes.

- How to verify it
Run warm reboot.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2022-03-20 15:26:23 -07:00
xumia
d5bf0923d1 [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-03-20 15:26:18 -07:00
Marty Y. Lok
f5226c7679 [Nokia][VoQ] The role of the Inband port should be "Inb" and recycle port (#9950)
Signed-off-by: mlok <marty.lok@nokia.com>
2022-03-20 15:26:13 -07:00
xumia
9999b9cf63 [build]: Fix marvell-armhf build hung issue (#10156) (#10229)
Why I did it
The marvel-armhf build is hung, it does not exit after waiting for a long time.
It is caused by the process /etc/entropy.py which is started by the postinst script in target/debs/buster/sonic-platform-nokia-7215_1.0_armhf.deb
2022-03-20 15:26:09 -07:00
Saikrishna Arcot
26079ac8f9 Specify the filesystem type when mounting to /host (#10169)
When mounting the partition that contains `/host` during initramfs, the
mount binary available there (coming from busybox) tries each filesystem
in `/proc/filesystems` and sees which one succeeds. During this time,
there may be some error messages logged into dmesg because some of the
incorrect filesystems failed to mount the partition.

Specify the filesystem type explicitly so that initramfs knows it's that
type, and we know what filesystem will always get used there.

Fixes #9998

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2022-03-20 15:26:06 -07:00
Stepan Blyshchak
cec403eec2 [hostcfgd] record feature state in STATE DB (#9842)
- Why I did it
To implement blocking feature state change.

- How I did it
Record the actual feature state in STATE DB from hostcfg.

- How to verify it
UT + verification by running on the switch and checking STATE DB.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2022-03-20 15:26:02 -07:00
xumia
7b84abc4d0 [Submodule]: Update submodule for sonic-telemetry (#10124)
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)
2022-03-20 15:25:58 -07:00
pavannaregundi
8650684523 Adding libubootenv-tool into bullseye image (#10146)
Why I did it
uboot env get and set commands fw_printenv/fw_setenv are not available in bullseye sonic image. Some platforms using them where failing. Ex: sonic-installer commands in marvell-armhf.

In case of buster, u-boot-tools was providing these commands.

How I did it
Added libubootenv-tool which provides these tools along with other uboot tools in build_debian.sh.

How to verify it
root@localhost:# fw_printenv serverip
serverip=10.4.50.39
root@localhost:# fw_setenv serverip 10.4.50.38
root@localhost:~# fw_printenv serverip
serverip=10.4.50.38

Change-Id: I558f8737f41d83d3e8527ce340391ae8f978b6d8
Signed-off-by: Pavan Naregundi <pnaregundi@marvell.com>
2022-03-20 15:25:53 -07:00
xumia
8ba35d3ba2 [Build]: Fix the bin image generated from raw image issue (#10083)
Why I did it
It is to fix the issue #10048
When building .raw image, for instance, target/sonic-broadcom.raw, it will generate a .bin image, target/sonic-broadcom.bin, as the intermediate file. The intermediate file is a build target which may contains different dependencies with the raw one.
2022-03-20 15:25:47 -07:00
Judy Joseph
62283df8cb Update sonic-swss
6a6b711 (HEAD -> 202111, origin/202111) Fix issue: sometimes PFC WD unable to create zero buffer pool (#2164)
459aee0 Use abort instead of exit in case calling SAI API failure (#2170)
e767137 Fix issue config qos reload causing orchagent aborted via tracking dependencies among QoS tables (#2116)
2022-03-20 14:50:08 -07:00
Judy Joseph
0adb44df50 Update sonic-platform-daemons
Modular chassis: Psud set master led on first run (#206)
2022-03-20 14:47:04 -07:00
Judy Joseph
f9ca376ead Update sonic-swss-common
[ConfigDBPipeConnector]: Added set_entry API (#586)
2022-03-20 14:40:23 -07:00
Shilong Liu
54f80a6127
Add a config variable to override default container registry instead of dockerhub. (#10166) (#10260)
* Add variable to reset default docker registry
* fix bug in docker version control
2022-03-19 00:09:42 +08:00
Yang Wang
ab7d6516d4
[Cherry-pick] Add ptf docker for PTF-SAI testing (#10249)
Why I did it
To enable PTF-SAI testing on 202111 branch, cherry-pick necessary PR from master

How I did it
Based on the current ptf docker create a new docker for sai-ptf(saiv2)
upgrade related package
use the latest ptf and install it

How to verify it
Tested on DUT

* [PTF-SAIv2]Add ptf docker for sai-ptf (saiv2) (#9729)

* [PTF-SAIv2]Add ptf dockre for sai-ptf (saiv2)

Base on current ptf docker create a new docker for sai-ptf(saiv2)
upgrade related package
use the latest ptf and install it

test done:
NOJESSIE=1 NOSTRETCH=1 NOBULLSEYE=1 ENABLE_SYNCD_RPC=y make target/docker-ptf-sai.gz
BLDENV=buster make -f Makefile.work target/docker-ptf-sai.gz

* upgrade the thrift to 014

* install xmlrunner python3 version (#10086)

Co-authored-by: Yang Wang <yangwang1@microsoft.com>
2022-03-17 10:34:44 +08:00
Yang Wang
6ce6b6d789
update sairedis submodule (#10200)
Why I did it
Move SAI submodule v1.9 pointer to the latest
2022-03-11 08:56:25 +08:00
Yang Wang
e8edbc21ca
[SAIServerV2] Build SAI Serverv2 docker (#9509) (#10188)
Support saiserver v2 with python3 and thrift 0.13.0

add variables to support the saiserverv2
build different thrift in saithrift depends on saiserver version
build differernt versions of saiserver
make the saiserver and saiserver docker with version number

test done:
build two different versions of sasiserver in local build environment

add saiserver to buster

Co-authored-by: Yang Wang <yangwang1@microsoft.comwq>
2022-03-10 14:12:36 +08:00
Yang Wang
66b865a83d
Generate sai.profile from j2 tempalte when saiserver start (#10022) (#10190)
Generate the sai.profile base on the brcm j2 file if the sai.profile
is not existing in the dut mounted folder.
Change the supervisor service configuration accordingly.

Testing done:
Add the script and config in dut
saiservice server can start automatically with [systemctl start saiserver]

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>

Co-authored-by: yangwang <yangwang@microsoft.com>
2022-03-10 14:11:38 +08:00
Alexander Allen
714797af3a
[202111] [Mellanox] Fix DPB supported breakout modes (#10128)
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-08 10:03:46 +02:00
xumia
79805fc73c [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:19:53 +00:00
Judy Joseph
babd131e72 Update sonic-utilities
f19762b (HEAD -> 202111, origin/202111) Display the correct default poll interval for watermark counters (#2082)
2022-03-07 09:59:08 -08:00
Judy Joseph
32189d23ce Update sonic-swss submodule
91d7558 (HEAD -> 202111, origin/202111) Allow IPv4 link-local nexthops (#1903)
ceb5161 Fix for 2053, Fix IPv6 BGP multipath-relax peer-type. (#2062)
b3b279a [crm] Use sai_object_type_get_availability() API to get counters (#2098)
28955f4 Try get port operational speed from STATE DB (#2119)
2022-03-07 09:43:05 -08:00
Marty Y. Lok
76ee6448b5 [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-07 09:21:32 -08:00
wenyiz2021
043fcfd099 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-07 09:21:28 -08:00
Alexander Allen
8165b24ce2 [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-07 09:21:23 -08:00
Aravind Mani
0ab166a823 [sonic-cfggen]: Fix sonic-cfggen build failures for armhf (#10132)
Why I did it
amrhf build fails while building sonic-config-engine whl package
https://dev.azure.com/mssonic/be1b070f-be15-4154-aade-b1d3bfb17054/_apis/build/builds/77089/logs/9

The reason for the failure is due to the fact that there is a new line generated at the top of the file in buffer config test cases while building for broadcom based platform and this issue is not seen in Marvell based platforms.

How I did it
Removed the new line for all the buffer test cases as there is no need to add it and accordingly changed the buffer_config.j2 where the new line is generated.
2022-03-07 09:21:17 -08:00
gechiang
a187686c17 [BRCMSAI 6.0.0.13-1] Fix Cancun file directory at new location causing TD3 platform boot issue (#9922) 2022-03-07 09:21:12 -08:00
Sudharsan Dhamal Gopalarathnam
3b6bd5bffb [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-07 09:21:07 -08:00
Saikrishna Arcot
c437cad4f0 [build_debian.sh]: Fix /var/log having 0750 permissions instead of 0755 (#10031)
PR #9481 changed auditd's log directory to be /var/log instead of
/var/log/audit, because SONiC mounts a disk image at /var/log during
runtime, and so the /var/log/audit directory might not exist (since it
would've been created during package installation, mounting another
partition at /var/log will hide it). However, for security reasons,
auditd changes the log directory to have 0750 permissions, so that not
everyone knows about the audit logs or read them.

To fix this, revert the change to auditd's log directory, and tell
systemd to create the audit log directory at runtime if it doesn't
exist. Because the disk image gets mounted during initramfs (before
systemd starts), systemd will make sure that the /var/log/audit
directory will exist.

Fixes #9548 and #10015

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2022-03-07 09:21:03 -08:00
Alexander Allen
53be3f7623 [Mellanox] Add patch to hw-mgmt to prevent loading of non-existent kernel modules (#10073)
- Why I did it
The latest upgrade of Mellanox hw-mgmt V7.0020.1300 introduced a couple new kernel modules for new Mellanox platforms that have yet to be upstreamed to the linux kernel.

As these new platforms do not have SONiC support we elected not to upstream these new drivers to sonic-linux-kernel but hw-mgmt expects them to exist which is causing a non-functional error on switch boot.

Feb 15 00:09:55.374130 r-leopard-simx-74 ERR systemd-modules-load[269]: Failed to find module 'emc2305'
Feb 15 00:09:55.374141 r-leopard-simx-74 ERR systemd-modules-load[269]: Failed to find module 'ads1015'
To resolve this we can patch hw-mgmt to no longer attempt to load these modules by default.

- How I did it
Added a SONiC patch to Mellanox hw-mgmt in order to remove the unused kernel modules which were not upstreamed to sonic-linux-kernel

- How to verify it
Boot switch and verify there are no error logs regarding kernel modules failing to load.
2022-03-07 09:20:58 -08:00
Judy Joseph
04b3af36c6 Update sonic-swss
commit 6e5ed1c0c1920e429fa07cded6867dfcb098a705 [chassis][syncd][sai] Adjusting response timeout during syncd init (#2159)
2022-03-01 09:13:42 -08:00
Junchao-Mellanox
cabcb78024 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-02-27 20:45:51 -08:00
saksarav-nokia
78371d99a1 [Nokia][platform]Modify BCM config & platform_reboot for Nokia-IXR7250E-36x400G (#9990)
Signed-off-by: Sakthivadivu Saravanaraj <sakthivadivu.saravanaraj@nokia.com>
2022-02-27 20:45:48 -08:00
Junchao-Mellanox
ba4da1597a [Mellanox] Fix issue: thermal zone threshold value 0 causes fan speed stuck at 100% (#10057)
- Why I did it
In SONiC thermal control algorithm, it compares thermal zone temperature with thermal zone threshold. Previously, a thermal zone with no thermal sensor can still get its threshold. However, a recently driver patch changes this behavior: a thermal zone with no thermal sensor will return 0 for threshold. We need to ignore such thermal zone.

- How I did it
Ignore thermal zones whose temperature is 0.

- How to verify it
Added unit test case and Manual test
2022-02-27 20:45:45 -08:00
Junchao-Mellanox
00940941b2 [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-02-27 20:45:41 -08:00
arlakshm
b58a42a8d4 [chassis][bgp] create v4 and v6 peer group for VoQ internal neighbors (#9693)
Why I did it
In the recent minigraph changes we add separate BGP session configuration for V4 and V6 internal VoQ neighbors.
This PR is adding different Peer groups for V4 and V6 neighbors

How I did it
Add VOQ_CHASSIS_V4_PEER and VOQ_CHASSIS_V6_PEER groups
Add extra Unit tests

How to verify it

Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
2022-02-27 20:45:37 -08:00
Judy Joseph
c6774ad683 update sonic-sairedis
5331ecd [vslib]: Fix MACsec bug in SCI and XPN (#1003)
ac04509 Fix build issues on gcc-10 (#999)
1b8ce97 [pipeline] Download swss common artifact in a separated directory (#995)
7a2e096 Change sonic-buildimage.vs artifact source from CI build to official build. (#992)
d5866a3 [vslib]: fix create MACsec SA error (#986)
f36f7ce Added Support for enum query capability of Nexthop Group Type. (#989)
323b89b Support for MACsec statistics (#892)
26a8a12 Prevent other notification event storms to keep enqueue unchecked and drained all memory that leads to crashing the switch router (#968)
0cb253a Fix object availability conversion (#974)
2022-02-27 20:41:15 -08:00
Saikrishna Arcot
5b7e55dfac
Package debugging and hardening for dhcpmon and dhcp6relay (#9862) (#10063)
Enable dbgsym package for dhcpmon.

Allow CFLAGS and LDFLAGS from environment variables to be used
in the dhcp6relay build. This makes sure that the -O2 flag from
dpkg-buildflags gets used.

Finally, enable all hardening flags in dpkg-buildflags for
dhcp6relay and dhcpmon. The change from the default set of flags is that
during linking, immediate binding of symbols is done instead of lazy
binding.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2022-02-25 11:09:15 -08:00
xumia
5d19c74f1f [Security]: Upgrade urllib3 to fix CVE-2021-33503
See https://security.archlinux.org/CVE-2021-33503
2022-02-25 09:15:08 +00:00
Judy Joseph
38967a4ebd Update sonic-swss, sonic-utilites submodules
sonic-swss

1aa40f7 Remove port serdes object before removing port (#2152)
876d690 [doc] Updating Policer config in Configuration manual (#2144)

sonic-utilities
dfed952 show_platfom_info not run for simx (#2042)
71fdee7 [aclshow] fix aclshow when clear is called before counters are populated (#2037)
a48a027 [sonic-package-manager] implement blocking feature state change (#2035)
c51871d [ci] Fix python dependencies reference path. (#2060)
2022-02-21 23:53:01 -08:00
kellyyeh
5d4031918b [radv] Support multiple ipv6 prefixes per vlan interface (#9934)
Why I did it
Radvd.conf.j2 template creates two copies of the vlan interface when there are more than one ipv6 address assigned to a single vlan interface. Changed the format to add prefixes under the same vlan interface block.

How I did it
Modifies radvd.conf.j2 and added unit tests

How to verify it
Configure multiple ipv6 address to the same vlan, start radvd
Unit test will check if radvd.conf with multiple ipv6 addresses is formed correctly
2022-02-21 23:48:22 -08:00
Stepan Blyshchak
e5e1b70966 [rsyslog.j2] fix typo in VAR_LOG_SIZE_KB (#9954)
This issue causes negative threshold value and thus deleting log files even when there is enough space.

This issue causes negative threshold value and thus deleting log files even when there is enough space.

- Why I did it
To fix an issue when log files get deleted even if there is enough space.

- How I did it
Fixed an typo.

- How to verify it
Run the portion of the script that calculates threshold, see that the threshold is calculated correctly.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2022-02-21 23:48:19 -08:00
kellyyeh
a0bb7a0485 [dhcp_relay] Check payload size to prevent buffer overflow in dhcpv6 option (#9740) 2022-02-21 23:48:15 -08:00
Ying Xie
53a8d99baa [dhcp6relay] a couple memory access protections (#9851)
Why I did it
the strcpy and buffer allocation is not safe, it corrupts 1 byte on the stack. Depending on the memory layout, it may or may not cause issue immediately.
message type is not validated before updating the counter. Which could cause segment fault.

How I did it
Remove the unsafe strcpy, use config->interface.c_str() instead.
Check message type before updating counters.

How to verify it
The issue (1) caused segment fault on a specific platform. The fix was validated there. Issue (2) was precautionary. Added log in case it triggers.
2022-02-21 23:48:06 -08:00
kellyyeh
4df0aa348c [dhcp6relay] Support relaying Relay-Forward message (#9887) 2022-02-21 23:48:02 -08:00
Dror Prital
a6eb72cbf1 [Mellanox] Upgrade ASIC FW tool to 4.18.1-16 (#9981)
- Why I did it
Update MFT to version 4.18.1-16 for bugs fixes and new SN2201 support

- How I did it
Advance to MFT tool version to 4.18.1-16

- How to verify it
Manually tested on all Mellanox platforms (ASIC FW Upgrade, link debug tools, CPLD upgrade, etc.)
2022-02-21 23:47:58 -08:00
Alexander Allen
1f566bf98e [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-02-21 23:47:54 -08:00
Sudharsan Dhamal Gopalarathnam
48bf7526fe [yang]YANG model for policer table (#9948)
#### Why I did it
Added yang model for policer table
Fixes https://github.com/Azure/sonic-buildimage/issues/9742 and https://github.com/Azure/sonic-buildimage/issues/9743
#### How I did it
Creating yang model for policer

#### How to verify it
Added UT to verify the yang model

The configuration schema for policer is added in the pull request https://github.com/Azure/sonic-swss/pull/2144
2022-02-21 23:47:50 -08:00
xumia
dce0e7270c [Build]: Fix marvell sai package version parsing issue
Fix marvell sai package version parsing issue (#10009)
2022-02-19 04:25:08 +00:00
Sudharsan Dhamal Gopalarathnam
da5899b748
[yang] Adding not-provisioned to type field in DEVICE_METADATA table (#9951) (#9993)
Cherry-pick of https://github.com/Azure/sonic-buildimage/pull/9951 into 202111 branch
#### Why I did it
Fixing the issue https://github.com/Azure/sonic-buildimage/issues/9915


#### How I did it
Added 'not-provisioned' as a supported value for type field in DEVICE_METADATA type. This value is set during initial ZTP bring up

#### How to verify it
Added UT to verify it.
2022-02-16 15:20:39 -08:00
Judy Joseph
063256f7b3 Merge branch '202111' of https://github.com/Azure/sonic-buildimage into 202111 2022-02-15 11:34:59 -08:00
Judy Joseph
e6adf71c20 Update sonic-platform-daemons
cb3ddf5 [pmon][xcvrd] xcvrd process show backtrace on the internal port. Port PR233 (#236)
5b4c9e1 Fix python wheels path downloaded from vs official build. (#244)
2022-02-15 11:34:30 -08:00
Dror Prital
30b69ed621
[202111] Add sonic_release file in order to have "release 202111" on sonic_version.yml (#9985)
- Why I did it
Fix Issue 9972: Incorrect information about release version in sonic_version.yml

- How I did it
Add "sonic_release" file to /sonic-buildimage/files/image_config/

- How to verify it
Install the image and run: cat /etc/sonic/sonic_version.yml
Verify the following item on sonic_version.yml file: release: '202111'
2022-02-15 10:46:42 +02:00
byu343
9b5bb887c8 Support multi-asic on macsec container (#9921)
This change enables the support of running multiple macsec containers, each for one ASIC.
2022-02-13 22:46:33 -08:00
Judy Joseph
472f2ff772 Update sonic-platform-common submodule 2022-02-13 18:10:19 -08:00
Judy Joseph
97c2b2ff4b Update sonic-swss submodule 2022-02-13 18:09:30 -08:00
Junchao-Mellanox
b37470d45e [Mellanox] Fix issue: SN4600C has 4 CPU core temperature sensors (#9930)
- Why I did it
platform.json of 4600C only has 2 CPU core thermal sensors, but there are 4 actually

- How I did it
Added thermal sensors for CPU core 2 and core 3.

- How to verify it
Build.
2022-02-13 18:04:40 -08:00
Kebo Liu
8c5db31627 fix MSN4410 chassis name in platform_components.json (#9939)
- Why I did it
The chassis name in MSN4410 platform_components.json is not correct

- How I did it
Fix the chassis name

- How to verify it
Run relevant platform API test

Signed-off-by: Kebo Liu <kebol@nvidia.com>
2022-02-13 18:04:37 -08:00
Marty Y. Lok
af300f5e04 Update Nokia sonic-platform submodule (#9963)
ded0344 Return both 'vendor_rev' and 'hardware_rev' keys from get_transceiver_info to support both earlier and later versions of xcvrd
b3442cc Change log_error to log_info when transceiver module is transitioned
3d3a73c Fix problem introduced with new SFP caching paradigm
2915746 Add script to reboot all IMMs
17ad221 Fix the position_in_parent for the psu entity
207e731 No longer force read pages at SFP init time
b387921 Fixed the voltage and power with rounding to 2 digit decimals

Signed-off-by: mlok <marty.lok@nokia.com>
2022-02-13 18:04:32 -08:00
saksarav-nokia
977cb98479 [Nokia][platform] Modified the bcm config file for Nokia-IXR7250E-36x400G (#9622)
Why I did it
Updated the BCM config recommended by Broadcom for Nokia-IXR7250E-36x400G

How I did it
Updated the BCM config file

How to verify it
Verified running the image with this BCM config in Nokia-IXR7250E-36x400G and ensured that the syncd container was stable, ports were up and passing the traffic.

Signed-off-by: Sakthivadivu Saravanaraj <sakthivadivu.saravanaraj@nokia.com>
2022-02-13 18:04:28 -08:00
xumia
bf74a68cb9 [Build]: Fix hundreds of thousands lines of logs printed in marvell-armhf (#9980)
[Build]: Fix hundreds of thousands lines of logs printed in marvell-armhf
It is caused by the bad format of the marvell sai package mrvllibsai_armhf_1.7.1-6.deb, increasing the waiting time to reduce the logs, and reduce the waste of the CPU.
2022-02-13 18:04:23 -08:00
Andriy Yurkiv
b29a3a0d4c [Mellanox][vxlan] remove old static config for VXLAN src port range feature (#9956)
- Why I did it
Need to remove old static configs from sai.profile files.
New implementation: Azure/sonic-swss#1959
New configuration: #9658

- How I did it
Remove SAI_VXLAN_SRCPORT_RANGE_ENABLE=1 lines from files per HWSKU

- How to verify it
When static config is removed following test will fail (src port will be in range 0-255)

py.test vxlan/test_vnet_vxlan.py --inventory "../ansible/inventory, ../ansible/veos" --host-pattern (testbed)-t0 --module-path ../ansible/library/ --testbed (testbed)-t0 --testbed_file ../ansible/testbed.csv --allow_recover --assert plain --log-cli-level info --show-capture=no -ra --showlocals --disable_loganalyzer --skip_sanity --upper_bound_udp_port 65535 --lower_bound_udp_port 64128
2022-02-13 18:04:19 -08:00
Stephen Sun
192409a7db Fix issue: module id got from get_change_event is wrong (#9961)
Signed-off-by: Stephen Sun <stephens@nvidia.com>
2022-02-13 18:04:13 -08:00
Travis Van Duyn
05791708f1 updated jinja template for snmp contact python2 vs python3 issue (#9949) 2022-02-13 18:04:09 -08:00
Andriy Yurkiv
84a986bc27 [Mellanox][VXLAN] add params to vxlan.json file in order to configure VXLAN src port range feature (#9658)
- Why I did it
Remove obsolete parameter that enables static VXLAN src port range
provide functionality no generate json config file according to appropriate parameter in config_db
Done for
SN3800:
• Mellanox-SN3800-D28C50
• Mellanox-SN3800-C64
• Mellanox-SN3800-D28C49S1 (New 10G SKU)

SN2700:
• Mellanox-SN2700-D48C8

- How I did it
Remove SAI_VXLAN_SRCPORT_RANGE_ENABLE=1 from appropriate sai.profile files
Created vxlan.json file and added few params that depends on DEVICE_METADATA.localhost.vxlan_port_range

- How to verify it
File /etc/swss/config.d/vxlan.json should be generated inside swss docker when it restart
[
    {
        "SWITCH_TABLE:switch": {
            "vxlan_src": "0xFF00",
            "vxlan_mask": "8"
        },
        "OP": "SET"
    }
]
Signed-off-by: Andriy Yurkiv <ayurkiv@nvidia.com>
2022-02-13 18:01:06 -08:00
Alexander Allen
825fc9e2dd [Mellanox] Update mellanox hw-mgmt submodule and versions to V.7.0020.1300 (#9860)
- Why I did it
New version of mellanox platform management code available adding support for new platforms and fixing bugs.

- How I did it
1. Updated the submodule
2. Updated makefile version references
3. Regenerated SONiC patches
2022-02-13 18:01:02 -08:00
saksarav-nokia
86bd652009 [Nokia][platform] Modified Nokia device data to support midplane (#9914)
Added midplane_subnet in chassisdb.conf for interfaces-config.sh to create midplane interface in multi-asic namespaces.

Signed-off-by: Sakthivadivu Saravanaraj <sakthivadivu.saravanaraj@nokia.com>
2022-02-13 18:00:58 -08:00
Prince George
fa0de261aa Close console session due to user inactivity (#9890)
Signed-off-by: Prince George <prgeor@microsoft.com>
2022-02-13 18:00:54 -08:00
abdosi
c4254b53f0 Updated Internal BGP Templates for chassis packet (#9674)
Fixes: https://github.com/Azure/sonic-buildimage/issues/9610
2022-02-13 18:00:50 -08:00
Ashok Daparthi-Dell
741d047982 [yang] Fix for sonic-scheduler.yang name pattern (#9873)
#### Why I did it

PR9611 - sonic-scheduler.yang pattern issue

#### How I did it
Modified the scheduler name pattern string to accept any string 

#### How to verify it

Sonic yang tests
2022-02-13 18:00:43 -08:00
Alexander Allen
6b6b40c046 [pmon] Move smartctl from pmon to host (#9607)
Why I did it
Need to be able to run smartctl when pmon docker is not running.

How I did it
Removed the pmon dependency for pmon as well as the command wrapper and added it to the debian-extension.

How to verify it
Stop pmon
Run smartctl from the host and verify it runs without error
2022-02-13 17:54:58 -08:00
Alexander Allen
9264db4635
[submodule] Update linux-kernel submodule pointer (#9973)
Updates include the following changes in order to support new Mellanox platforms and drivers (Azure/sonic-linux-kernel#259)

10ef390 Update kconfig to support / enable newly backported mellanox patches.
6a949e1 Add backported patches for Mellanox hw-mgmt V.7.0020.1300
e1913f7 Rename and reformat patch headers
2022-02-13 17:12:21 +02:00
Judy Joseph
f08866b668 Update sonic-swss submodule
05c2c2e [voq] Neighbor entry impose encap index attribute deprecated (#2069)
2022-02-06 22:54:35 -08:00
Judy Joseph
9b4d80115a Update sonic-utilities submodule 2022-01-30 23:03:16 -08:00
Judy Joseph
29ccb603ae Update sonic-swss submodule 2022-01-30 23:02:18 -08:00
Mohamed Ghoneim
b704c6cc9a [yang] Adding sonic-bgp-monitor to setup.py (#9877)
#### Why I did it
Include sonic-bgp-monitor to setup.py so it gets included in /usr/local/yang-models when installing the package

#### How I did it

#### How to verify it
install the package

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

<!--
- Note we only backport fixes to a release branch, *not* features!
- Please also provide a reason for the backporting below.
- e.g.
- [x] 202006
-->

- [ ] 201811
- [ ] 201911
- [ ] 202006
- [ ] 202012
- [ ] 202106

#### Description for the changelog
<!--
Write a short (one line) summary that describes the changes in this
pull request for inclusion in the changelog:
-->


#### A picture of a cute animal (not mandatory but encouraged)
2022-01-30 22:49:50 -08:00
Junchao-Mellanox
9070c441e8 Fix issue: 'sx_port_mapping_t' object has no attribute 'slot_id' (#9835)
- Why I did it
Fix issue: 'sx_port_mapping_t' object has no attribute 'slot_id'. sx_port_mapping_t only has attribute slot.

- How I did it
Change slot_id to slot.

- How to verify it
Manual test
2022-01-30 22:49:27 -08:00
Junchao-Mellanox
74df1494d0 [Mellanox] Fix select timeout in sfp event (#9795)
- Why I did it
Python select.select accept a optional timeout value in seconds, however, the value passes to it is a value in millisecond.

- How I did it
Transfer the value to millisecond.

- How to verify it
Manual test
2022-01-30 22:49:24 -08:00
Shi Su
a5afa2c15e Add openbfdd to ptf docker (#9488)
Why I did it
To enable test support for BFD-related features, the PTF docker needs to have the proper support for BFD. This PR aims to add BFD support in ptf docker.

How I did it
Clone and build OpenBFDD for PTF docker.

How to verify it
Build locally and verify BFD is supported.
2022-01-30 22:49:20 -08:00
Dror Prital
7351112a52 [Mellanox] Update SDK/FW to 4.5.1208/2010.1218 and SAI version to 1.20.2.5 (#9619)
- Why I did it
To include latest SDK 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.

and to include SAI fixes \ changes:
1. Reduce verbosity for resource check vendor data not found
2. Fix metadata validation, check default value on conditions check
3. Add 100MB, 10MB to 2201 system
4. L3 VXLAN overlay ECMP
5. VXLAN srcport API implementation
6. Fix scheduler profile null (default values) when set on sub group scheduler group
7. Fix ACL binding restoration when port leaves a LAG
8. Fix route logic for set next hop/action and reference counter for ECMP overlay

- How I did it
1. Updated SDK/FW submodule and relevant makefiles with the required versions.
2. Update SAI submodule and relevant makefile with the required version.

- How to verify it
Build an image and run tests from "sonic-mgmt".
2022-01-30 22:49:06 -08:00
Samuel Angebault
fac0b11ebb Add platform.json configs for all denali SKUs (#9717) 2022-01-30 22:49:00 -08:00
Alexander Allen
e8418fd2da [Mellanox] Modified Platform API to support all firmware updates in single boot (#9608)
Why I did it
Requirements from Microsoft for fwutil update all state that all firmwares which support this upgrade flow must support upgrade within a single boot cycle. This conflicted with a number of Mellanox upgrade flows which have been revised to safely meet this requirement.

How I did it
Added --no-power-cycle flags to SSD and ONIE firmware scripts
Modified Platform API to call firmware upgrade flows with this new flag during fwutil update all
Added a script to our reboot plugin to handle installing firmwares in the correct order with prior to reboot
How to verify it
Populate platform_components.json with firmware for CPLD / BIOS / ONIE / SSD
Execute fwutil update all fw --boot cold
CPLD will burn / ONIE and BIOS images will stage / SSD will schedule for reboot
Reboot the switch
SSD will install / CPLD will refresh / switch will power cycle into ONIE
ONIE installer will upgrade ONIE and BIOS / switch will reboot back into SONiC
In SONiC run fwutil show status to check that all firmware upgrades were successful
2022-01-30 22:48:54 -08:00
Stepan Blyshchak
fcdb3f2f59
[202111][sonic-yang] fix the feature state type (#9587) (#9778)
- Why I did it
The feature state can be a jinja template, like in this file - https://github.com/Azure/sonic-buildimage/blob/master/files/build_templates/init_cfg.json.j2#L39.
Without this change it is not possible to validate a configuration file.

- How I did it
Relaxes the constraint on feature state. Feature state leaf can be any string.

- How to verify it
Run UT.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2022-01-28 05:52:27 +02:00
judyjoseph
e4239f8bde Update Broadcom SAI to version 6.0.0.13 (#9789)
Why I did it
Update Broadcom SAI to version 6.0.0.13, SDK 6.5.24, saibcm-modules to 6.5.24.gpl

How I did it
Brcm SAI 6.0 EA with fixes for CS00012203367, CS00012219613, CS00012213974, CS00012218290, CS00012217169, CS00012211718, CS00012213944, CS00012215529, CS00012218100, CS00012214196, CS00012212681, CS00012205138, CS00012208537, CS00012185316, CS00012208524, CS00012203367, CS00012197364.
2022-01-24 20:39:52 -08:00
byu343
05138d10e2 [phy-credo] Update package for bullseye (#9829)
This is to fix the issue of phy-credo package in bullseye.
2022-01-24 20:39:46 -08:00
Judy Joseph
82e0659dde Update sonic-utilities
51a9fbf [debug dump] Missing Dict Key handled in the MatchOptimizer (#2014)
ac8fdd3 [Auto Techsupport] Added Event Driven TS to Command Reference  (#1985)
458a0c2 [fdbshow] Adding more options for fdbshow and show mac (#1982)
2022-01-22 22:53:03 -08:00
Judy Joseph
0fb6c33bfc Update src/sonic-swss
ad65bd3 Fix the unsafe usage of strncpy in portsorch.cpp (#2110)
2022-01-22 22:52:30 -08:00
Judy Joseph
2c440dba43 Update sonic-platform-daemons
c98aba3 [psud] Fix PSU log issue (#235)
60e9682 [ledd] prevent led crash on recirc port event (#232)
2022-01-22 22:51:32 -08:00
Judy Joseph
41baeef63c Update sonic-platform-common
937cf1a [ssd] Allow individual vendor parsers to handle errors (#252)
2022-01-22 22:50:29 -08:00
liuh-80
60e730990e [TACACS] fix src\tacacs\bash_tacplus\debian\rules file mode to 755 because it will be change to 755 by debian build and cause dirty image version. (#9821)
#### Why I did it
    src\tacacs\bash_tacplus\debian\rules file mode is 644, and debian build will change it to 755, which will cause image version contains 'dirty'

#### How I did it
    Change src\tacacs\bash_tacplus\debian\rules file mode to 755

#### How to verify it
    Check the image version not contains dirty

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

- [ ] 201811
- [ ] 201911
- [ ] 202006
- [ ] 202012
- [ ] 202106
- [*] 202111

#### Description for the changelog
    Change src\tacacs\bash_tacplus\debian\rules file mode to 755

#### A picture of a cute animal (not mandatory but encouraged)
2022-01-22 22:42:37 -08:00
jingwenxie
766c768521 [broadcom-dnx] Fix dnx image and dnx platform mismatch issue #9786
Why I did it
sonic-broadcom-dnx.bin should be able to installed on DNX supported platform, whereas it doesn't.

How I did it
Changed CONFIGUTED_PLATFORM to TARGET_MACHINE to distinguish broadcom and broadcom-dnx

How to verify it
tar sonic-broadcom-dnx.bin and verify its platforms_asic contians dnx platforms
Also verify on image with other asic, no regression.
2022-01-22 22:42:34 -08:00
dflynn-Nokia
e94ef351f4 [firsttime boot] suppress error message on platforms not supporting kdump (#9521)
Why I did it
Eliminate benign firsttime boot error reported when running on platforms that do not support kdump.

How I did it
Change rc.local to check for presence of the file /etc/default/kdump-tools before referencing it.

How to verify it
Install a new image on an armhf or arm64 platform and check for a failed reference to /etc/default/kdump-tools on firsttime boot.
2022-01-22 22:42:30 -08:00
Shyam
dad9a73004 Added gbsyncd infra for multi-ASIC, multi-PHY mode (#9722)
- External PHY is managed via gearbox (gbsybcd docker container) in SONiC
  - Enhanced 'External PHY management' from SONiC's single-ASIC environment to multi-ASIC
  - Enhanced gbsyncd docker container from single Namespace to multi-Namspace mode
  - Added gbsyncd.service.j2 on per_namespace basis.
  - Each namepace/ASIC now to have its unique gbsyncd<ASIC#> docker container with its
    own Gearbox table, redis-DB

Signed-off-by: Shyam Kumar <shyakuma@cisco.com>
2022-01-22 22:42:26 -08:00
Jon Goldberg
cfbcc60a59 [Nokia] Update IXRE platform (#9756) 2022-01-22 22:42:23 -08:00
ganglv
dcbcb9d0b3 [sonic-cfggen]: Feature should use 'state' to replace 'status' (#9796)
Why I did it
ConfigDB schema generated by minigraph parser can't pass yang validation.

How I did it
Modify minigraph.py, and use 'state' to replace 'status'.

How to verify it
Run UT for sonic-config-engine.
Use minigraph parser to generate ConfigDB schema, and run yang validation.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-01-22 22:42:19 -08:00
ganglv
17707c3a26 [yang]: Add Yang models for BGP monitor (#9752)
Why I did it
end2end test is blocked by Yang model for BGP monitor.

How I did it
Create new yang files for BGP monitor, and add UT.

How to verify it
Follow the steps in #9711.
Run UT for sonic-yang-models.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-01-22 22:42:16 -08:00
ganglv
e8368e6545 [yang]: Update AAA yang models (#9724)
#### Why I did it
AAA yang model is not up to date.

#### How I did it
Add fallback and trace field, and replace boolean_type

#### How to verify it
Run UT for sonic_yang_models.
Follow the steps from #9710
2022-01-22 22:42:13 -08:00
ganglv
234c4aa317 [sonic-cfggen]: Add bgp asn for yang validation (#9640)
Why I did it
Config db schema generated by minigraph can’t pass yang validation, bgp_asn must not be None.

How I did it
Update sampe-voq-graph.xml to add bgp_asn.

How to verify it
Build sonic-config-engine.
Run command 'sonic-cfggen -m tests/sample-voq-graph.xml -p tests/voq-sample-port-config.ini --print-data', and check bgp_asn.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-01-22 22:42:04 -08:00
Christian Svensson
3b149e3b6f [Celestica/Seastone2] Load interface LEDs (#9769)
Tested on a Celestica Seastone2 DX030 switch

Testing scenarios:
- Various QSFP ports in both normal and breakout config.
- 100G and 40G link speed show different colors.
- SFP1 port works.

Signed-off-by: Christian Svensson <blue@cmd.nu>
2022-01-22 22:40:46 -08:00
Kebo Liu
e455fb4ec9 [Mellanox] update system_health_monitoring_config for MSN4410/MSN4600/MSN4700 (#9728)
- Why I did it
For MSN4410/MSN4600/MSN4700 now they can support fetching PSU voltage threshold, no need to skip the psu voltage check in system health monitoring, so update the system health monitoring configuration file for these platforms.

- How I did it
remove skip PSU change config from the system_health_monitoring_config.json file

- How to verify it
Build image run on these platforms, system health monitoring will not report error against PSU voltage

Signed-off-by: Kebo Liu <kebol@nvidia.com>
2022-01-22 22:40:43 -08:00
Junchao-Mellanox
2759a42551 [Mellanox] Optimize thermal control policies (#9452)
- 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-22 22:40:38 -08:00
Aravind Mani
1e65be333d [DPB] Fix verbose mode issue (#9772) 2022-01-22 22:40:34 -08:00
Alexander Allen
858e653000 [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-01-22 22:40:26 -08:00
nkelapur
907629ed22 Fix IPv4 routes with IPv6 link local next hops installed in FPM (#8740)
* Description: Currently IPv4 routes with IPv6 link local next hops are
not properly installed in FPM.
Reason is the netlink decoding truncates the ipv6 LL address to 4 byte
ipv4 address.

Ex : fe80:: is directly converted to ipv4 and it results in 254.128.0.0
as next hop for below routes

show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR, f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup

B>* 2.1.0.0/16 [200/0] via fe80::268a:7ff:fed0:d40, Ethernet0, weight 1,
02:22:26
B>* 5.1.0.0/16 [200/0] via fe80::268a:7ff:fed0:d40, Ethernet0, weight 1,
02:22:26
B>* 10.1.0.2/32 [200/0] via fe80::268a:7ff:fed0:d40, Ethernet0, weight
1, 02:22:26

Hence this fix converts the ipv6-LL address to ipv4-LL (169.254.0.1)
address before sending it to FPM. This is inline with how these types of
routes are currently programmed into kernel.

Signed-off-by: Nikhil Kelapure <nikhil.kelapure@broadcom.com>
2022-01-22 22:40:22 -08:00
Stepan Blyshchak
ea421c14d7 [sonic-yang] fix the feature state type (#9587)
- Why I did it
The feature state can be a jinja template, like in this file - https://github.com/Azure/sonic-buildimage/blob/master/files/build_templates/init_cfg.json.j2#L39.
Without this change it is not possible to validate a configuration file.

- How I did it
Relaxes the constraint on feature state. Feature state leaf can be any string.

- How to verify it
Run UT.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2022-01-22 22:40:16 -08:00
Anish Narsian
20f39ba0a4 [Yang] Add resource_type and downstream_subrole to yang model (#9696)
#### Why I did it
As a fix for https://github.com/Azure/sonic-buildimage/issues/9574

#### How I did it
Enhance yang model for networking-metadata

#### How to verify it
Unit testing
2022-01-22 22:40:09 -08:00
Lawrence Lee
69a381affc [YANG]: Add support for dual ToR attributes (#9698)
Fixes #9561
Fixes #9570 
Fixes #9563
Partial fix for #9556 

#### Why I did it
- Attributes for dual ToR configs lack YANG model support

#### How I did it
- Extend YANG tests to cover dual ToR use cases
- Extend YANG model to cover dual ToR use cases
- Reduce the default log level to warning so only test failures are printed

#### How to verify it
- Run the YANG model unit tests
2022-01-22 22:39:58 -08:00
Shilong Liu
a452892d41 Update multiarch related command. (#9755)
* Update multiarch related command.
2022-01-16 22:46:21 -08:00
Junchao-Mellanox
ba28f10b25 Fix build issue: cannot import name FW_AUTO_ERR_UKNOWN- required module not found (#9764) 2022-01-16 22:46:11 -08:00
Viktor Ekmark
eb48a8ce14 [Celestica Seastone2] Build correct platform files (#9660)
* fix workdir for seastone2

Signed-off-by: Viktor Ekmark <viktor@ekmark.se>

* seastone2: Add I2C SFP definition for SFP1

Signed-off-by: Christian Svensson <blue@cmd.nu>

* [device/cel_seastone_2] sfputil logic for SFP1

Earlier logic resulted in the name of SFP1 being SFP33 which is not
correct. The cannonical source is seastone2_fpga module and it calls it
SFP1, so ensure the logic does as well.

Signed-off-by: Christian Svensson <blue@cmd.nu>

* [device/cel_seastone_2] sysfs paths for SFP1

Various changes that plumbs the correct port presence and DOM decoding
for the SFP1 port.

Signed-off-by: Christian Svensson <blue@cmd.nu>

Co-authored-by: Christian Svensson <blue@cmd.nu>
2022-01-16 22:45:58 -08:00
shlomibitton
88342f9613 Fix import error for DHCP relay CLI (#9691)
Signed-off-by: Shlomi Bitton <shlomibi@nvidia.com>
2022-01-16 22:45:48 -08:00
SuvarnaMeenakshi
74959dcb45 [docker-snmp]: Modify log level of snmpd (#9734)
#### Why I did it
resolves https://github.com/Azure/sonic-buildimage/issues/8779
snmpd writes the below error message in syslog :
snmp#snmpd[27]: truncating integer value > 32 bits
This message is written in syslog when the hrSystemUptime(1.3.6.1.2.1.25.1.1.0 / system uptime) or sysUpTime(1.3.6.1.2.1.1.3 network management portion or snmpd uptime) is queried when either of these counters overflow beyond 32 bit value. This happens the device uptime or snmpd uptime is more than 497 days.

#### How I did it
Reference: https://access.redhat.com/solutions/367093 and https://linux.die.net/man/1/snmpcmd

To avoid seeing this message if the counter grows, the snmpd error log level is changed to display  LOG_EMERG, LOG_ALERT, LOG_CRIT, and LOG_DEBUG.

Without this change, LOG_ERR and LOG_WARNING would also be logged in syslog.

#### How to verify it
On a device which is up for more than 497 days, modify supervisord.conf  with the change and restart snmp.
Query 1.3.6.1.2.1.1.3 and verify that log message is not seen.
2022-01-16 22:45:18 -08:00
Sudharsan Dhamal Gopalarathnam
1524d6569d [rsyslog]Setting log file size to 16Mb (#9504)
Why I did it
The existing log file size in sonic is 1 Mb. Over a period of time this leads to huge number of log files which becomes difficult for monitoring applications to handle.
Instead of large number of small files, the size of the log file is not set to 16 Mb which reduces the number of files over a period of time.

How I did it
Changed the size parameter and related macros in logrotate config for rsyslog

How to verify it
Execute logrotate manually and verify the limit when the file gets rotated.

Signed-off-by: Sudharsan Dhamal Gopalarathnam <sudharsand@nvidia.com>
2022-01-16 22:45:08 -08:00
Kebo Liu
2348f17d64 [Mellanox] Add sensors conf for MSN4600C A1 platform (#9706)
- Why I did it
Add sensor conf for MSN4600C A1 platform

- How I did it
Add a new sensor conf file and relevant scripts to support two different versions of the platform

- How to verify it
Run "sensors" cmd to check the output on the A1 platform to see whether it's as expected.
Signed-off-by: Kebo Liu <kebol@nvidia.com>
2022-01-16 22:44:56 -08:00
Qi Luo
199ba9f99d [minigraph] do not use NULL:NULL explicitly in json (#9703)
#### Why I did it
It should be handled by `ConfigDBConnector.typed_to_raw()`.

This is a bug for `sonic-cfggen -m --print-data` only
```
    "PORTCHANNEL_MEMBER": {
        "PortChannel0001|Ethernet112": {
            "NULL": "NULL"
        },
        "PortChannel0002|Ethernet116": {
            "NULL": "NULL"
        },
        "PortChannel0003|Ethernet120": {
            "NULL": "NULL"
        },
        "PortChannel0004|Ethernet124": {
            "NULL": "NULL"
        }
    },
```
But not appears in `sonic-cfgen -d --print-data`.
```
    "PORTCHANNEL_MEMBER": {
        "PortChannel0001|Ethernet112": {},
        "PortChannel0002|Ethernet116": {},
        "PortChannel0003|Ethernet120": {},
        "PortChannel0004|Ethernet124": {}
    },
```
Tested in a T0 KVM.
2022-01-16 22:44:48 -08:00
abdosi
beaeda87f5 [minigraph] Enhanced parser to parse interface name for static route nexthop (#9707)
What I did:-

Enhanced minigraph parser to parse interface name associated with static route nexthop

Why I did:-

One of the use case to support interface name is Chassis Packet. For Chassis Packet we have Static Routes configured to route traffic across line-card. If the FRR programs static route without the interface name then in case if the ip interface that is associated with the nexthop goes down FRR resolves static route nexthop over the default route as we have FRR config ip nht-resolve-via-default which causes undesired behavior. Having interface name with Static Route prevents recursive lookup on default route.

How I verify:

Updated unit-test cases
Manual verification
2022-01-16 22:44:41 -08:00
Judy Joseph
4ccde917c1 Update sonic-utilities
dd71848 [GCU] Show default option for '--format' (#2003)
f296e76 [GCU] Disallowing DeleteInsteadOfReplaceMoveExtender from generating delete whole config move (#2006)
731d643 [flow counter] Fix issue: should not compare str with int (#2001)
e628f01 Support CLI for buffer queue configuration (#1965)
585fd40 Fix show ip bgp nei command rw required issue (#2011)
2022-01-16 22:43:24 -08:00
Judy Joseph
382efce11a sonic-swss submodule update
a6d35de Handling Invalid CRM configuration gracefully (#2109)
d6559e6 [Mellanox] '_8lane' not added to Mellanox 5xxx models with 800G (#2090)
45551b2 [vnetorch] Advertise vnet tunnel routes (#2058)
ed58d2f Add initial value for weight in overlay nexthops (#2096)
2022-01-16 22:37:47 -08:00
Judy Joseph
5e61090758 Update sonic-platform-common
576f835 [component] Fix typo for FW_AUTO_ERR_UNKNOWN #254
5985388 Add recycle port to the physical ignore list (#251)
2022-01-16 22:28:06 -08:00
Sudharsan Dhamal Gopalarathnam
a41e0ecb89
[sonic-ztp][202111] Submodule update (#9590)
Update ztp sub module to include the below fixes:
f7dd3c5 [sonic-ztp]Fixing build failure after bullseye integration (#30)
9218e16 Replace swsssdk.ConfigDBConnector and SonicV2Connector with swsscommon(#28)

Signed-off-by: Sudharsan Dhamal Gopalarathnam <sudharsand@nvidia.com>
2022-01-16 15:01:22 +02:00
Judy Joseph
3d3b8222cd Update sonic-utilities
51712aa [build-failure-fix][GCU] Sort referrer paths alphabetically (#2015)
2022-01-14 22:53:35 -08:00
Mykola Gerasymenko
3d82e6cf67
[DPB][YANG] Fix cases when boolean is used in different literal cases (#9654)
* Add boolean as typedef to sonic-types
* Fix boolean in sonic-feature yang model
* Fix boolean in sonic-flex_counter yang model

#### Why I did it
It was request to cherry-pick fix from master (#9418) to 202111 branch to fix issue when boolean is used in different literal cases.

#### How I did it
Added boolean to sonic-types as typedef with different literal cases.

#### How to verify it
Run the command config interface breakout <interface_name> <breakout_mode>
2022-01-10 14:46:04 -08:00
xumia
3c8d0a6e51 [Bug][Build]: Fix the mlnx-platform-api dpkg cache config error (#9705)
Failed to build the mellanox image when dpkg enabled, it has impact on PR checks.
2022-01-09 12:47:55 -08:00
Judy Joseph
ad7d827a5e Update sonic-utilities submodule
4236bc4 [config reload] Fixing config reload when timer based delayed services are disabled (#1967)
d2514e4 [GCU] Different apply-patch runs should produce same sorted steps (#1988)
2878adb [GCU] Using simulated config instead of target config when validating replace operation in NoDependencyMoveValidator (#1987)
fb8ca98 [GCU] Loading yang-models only once (#1981)
f88ee92 [GCU] Copying config_db before callding sonic_yang.loadData (#1983)
9ed0e91 [GCU] Implementing DryRun by printing patch-sorter steps/imitating config_db (#1973)
b36b5e3 [GCU] Moving PatchSorter unit-test to json file to make it easier to read/maintain (#1977)
c0fa28b [generic-config-updater] Improving CreateOnly validator and marking /LOOPBACK_INTERFACE/LOOPBACK#/vrf_name as create-only (#1969)
0559d04 [generic-config-updater] Adding non-strict mode (#1929)
b07f477 [debug dump util] FDB debug dump util changes (#1968)
6d8757a [warm/fast-reboot] Fix kexec portion to support platforms based on Device Tree (#1966)
cc1409e [Auto Techsupport] Event driven Techsupport Bug Fixes (#1986)
6c48bd5 Fix wrong help message for cable length setting (#1978)
c0bbbe3 [breakout] Fix the check  when port is not present in BREAKOUT_CFG table (#1765)
5bb8cad [doc][DPB] Update DPB related interface breakout command Info (#1438)
e6fd990 [config] Fix 'config reload -l' command to get filename by default (#1611)
bd8f7bb Update swss_ready check to check per namespace swss service (#1974)
5439f94 [soft-reboot] Add support for platforms based on Device Tree (#1963)
7c5810a [config] Add portchannel support  for static route  (#1857)
7cb6a1b preserve old order for config reload (#1964)
20bddbd [Auto-Techsupport] Issues related to Multiple Cores crashing handled (#1948)
2022-01-08 16:56:55 -08:00
anamehra
7c3dcfe0a7 Cache connection handles to prevent duplicate (#9636)
On a multi-asic Supervisor card, running commands like
'show interface counter' opens a confid_db connection per
namespace per interface which results in many duplicate connections
exceeding the allowed open file handles. This causes the command to fail.

Caching the connections to prevent duplicate handles.
2022-01-08 16:43:46 -08:00
ganglv
5026e22333 [sonic-cfggen]: Fix missing vlan interface (#9639)
Why I did it
Config db schema generated by minigraph can’t pass yang validation, there's no Vlan31 in 'VLAN' table.

How I did it
Update test minigraph to add vlan interface.

How to verify it
Build sonic-yang-models.
Run command 'sonic-cfggen -m tests/fg-ecmp-sample-minigraph.xml -p tests/mellanox-sample-port-config.ini --print-data', and run yang validation.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-01-08 16:43:28 -08:00
ganglv
664f6d43cd [sonic-cfggen]: Fix syslog_server output (#9616)
Why I did it
'SYSLOG_SERVER': {'': {}, '10.0.10.5': {}, '10.0.10.6': {}},
Config db schema generated by minigraph can’t pass yang validation, server address can't be empty.

How I did it
Update test minigraph to remove wrong configuration.

How to verify it
Build sonic-config-engine.
Run command 'sonic-cfggen -m xxx.xml --print-data', and SYSLOG_SERVERS table.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-01-08 16:43:20 -08:00
ganglv
ac232a9e95 [sonic-cfggen]: Remove wrong portchannel members (#9614)
Why I did it
Config db schema generated by minigraph can’t pass yang validation, portchannel_member has invalid port.

How I did it
Update test minigraph to remove invalid port channel.

How to verify it
Build sonic-config-engine.
Run command 'sonic-cfggen -m xxx.xml --print-data', and check port channel member.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-01-08 16:43:10 -08:00
ganglv
11ecaedc1e [sonic-cfggen]: Update test minigraph to fix interface (#9601)
Why I did it
Config db schema generated from test minigraph can't pass yang validation.

How I did it
Update test minigraph to fix interface

How to verify it
Build sonic-config-engine.
Run command 'sonic-cfggen -m xxx.xml --print-data', and check interface table and port table.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-01-08 16:43:01 -08:00
ganglv
c1bef313e2 [sonic-cfggen]: Update test minigraph to add deployment_id (#9593)
Why I did it
Config db schema generated from test minigraph can't pass yang validation.

How I did it
Update minigraph xml to add DeploymentId.

How to verify it
Build sonic-config-engine.
Run command 'sonic-cfggen -m xxx.xml --print-data', and check deployment_id field.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-01-08 16:42:53 -08:00
ganglv
c875cc65f5 [yang]: Support VLAN alias (#9615)
Why I did it
Config db schema generated by minigraph can’t pass yang validation, and there's no 'alias' field in yang model.
Minigraph parser supports 'alias' field for VLAN.

How I did it
Add 'alias' field to sonic-vlan.yang

How to verify it
Build sonic-yang-models.
Run command 'sonic-cfggen -m xxx.xml --print-data', and run yang validation.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-01-08 16:42:27 -08:00
Neetha John
3c20bd8441 [yang] Add missing device types to the device_metadata yang (#9464)
Signed-off-by: Neetha John <nejo@microsoft.com>

Bring back the changes in #9226 that were reverted. Unable to do a revert-revert.

Why I did it
Few device types were missing in the DEVICE_METADATA type field

How I did it
Added missing device types to the device metadata yang
2022-01-08 16:38:19 -08:00
MaratGubaiev
7988264519 [yang] sonic-bgp-cmn/admin_status fixed (#9429)
#### Why I did it
fixing https://github.com/Azure/sonic-buildimage/issues/9350 "[yang-models] BGP neighbor admin_status should be up/down"
2022-01-08 16:38:10 -08:00
ganglyu
98524aef7c [yang]: update Yang models for cloudtype and region (#9425)
Why I did it
#9122
DEVICE_METADATA does not have cloudtype and region.

How I did it
Add cloudtype and region to DEVICE_METADATA.

How to verify it
Follow the steps in #9122.
Build sonic-yang-model.

Signed-off-by: Gang Lv ganglv@microsoft.com
2022-01-08 16:38:02 -08:00
arlakshm
a42dc6fc41 [yang] syslog yang model (#9265)
Why I did it
Add yang model for syslog server

How I did it
Add new file sonic-syslog.yang and new files for tests

How to verify it
Compile target/python-wheels/sonic_yang_mgmt-1.0-py3-none-any.whl

Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan arlakshm@microsoft.com
2022-01-08 16:37:53 -08:00
Mohamed Ghoneim
9cbdac6ede [sonic-yang-mgmt] Adding flag to disable/enable log printing (#9659)
#### Why I did it
Fixes https://github.com/Azure/sonic-utilities/issues/1871

From [generic-config-updater](https://github.com/Azure/sonic-utilities/tree/master/generic_config_updater) we call `sonic-yang-mgmt` multiple times in order to check a certain change to ConfigDb is valid or not. It is expected for some changes to be invalid, so always printing errors from `sonic-yang-mgmt` makes the output hard to read.

In this PR, we are adding a way to control if logs should be printed or not.

#### How I did it
- Added `print_log_enabled` flag to sonic_yang ctor
- Converted all `print` statements to `sysLog(..., doPrint=True)`

#### How to verify it
unit-test passing means the change did not break logs.

#### Info about libyang logging
libyang provides an extensive logging logic which can support a lot of scenarios:
- ly_log_level: setting logging level
  - LY_LLERR
  - LY_LLWRN
  - ... 
- ly_set_log_clb: setting log callback to customize the default behavior which is printing the msgs
- ly_log_options: setting logging options 
  - LY_LOLOG: If callback is set use it, otherwise just print. If flag is not set, do nothing.
  - ...

For more info refer to:
- https://netopeer.liberouter.org/doc/libyang/devel/html/group__logopts.html#gaff80501597ed76344a679be2b90a1d0a
- https://netopeer.liberouter.org/doc/libyang/devel/html/group__log.html#gac88b78694dfe9efe0450a69603f7eceb


#### What's next?
Consume the new flag `print_log_enabled` in [generic-config-updater](https://github.com/Azure/sonic-utilities/tree/master/generic_config_updater) to reduce the logging clutter. 

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

<!--
- Note we only backport fixes to a release branch, *not* features!
- Please also provide a reason for the backporting below.
- e.g.
- [x] 202006
-->

- [ ] 201811
- [ ] 201911
- [ ] 202006
- [ ] 202012
- [ ] 202106

#### Description for the changelog
<!--
Write a short (one line) summary that describes the changes in this
pull request for inclusion in the changelog:
-->


#### A picture of a cute animal (not mandatory but encouraged)
2022-01-08 16:37:40 -08:00
Mohamed Ghoneim
013413d9ce [yang-model] Using 'leafref' instead of 'must' for loopback (#9535)
#### Why I did it
Fix issue https://github.com/Azure/sonic-utilities/issues/1962

The problem is current implementation of [sonic-yang-mgmt::find_data_dependencies](f2774b635d/src/sonic-yang-mgmt/sonic_yang.py (L518)) does not get referrers if they are using `must` statement, it has to use `leafref`.

For now we can convert `must` to `leafref` if possible. In the future we will investigate get referrers by `must` statements as well https://github.com/Azure/sonic-buildimage/issues/9534

#### How I did it
Instead of `must` use `leafref`

#### How to verify it
unit-test

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

- [ ] 201811
- [ ] 201911
- [ ] 202006
- [ ] 202012
- [ ] 202106
2022-01-08 16:37:32 -08:00
Mohamed Ghoneim
3af0f6ab0c [yang-models] Validating 'services' exist if ACL type is 'CTRLPLANE' (#9295)
#### Why I did it
Fixing issue #9294

#### How I did it
Updating ACL yang model

#### How to verify it

Validating issue with `config patch-apply` is fixed.

- Start a KVM
- Add file `add-ctrl-plane-tbl.json-patch ` with content:
```json
[
    {
     "op": "add",
     "path": "/ACL_TABLE/ACTRLPLANETABLE",
     "value": {
      "policy_desc": "ACTRLPLANETABLE",
      "services": [
       "SSH"
      ],
      "stage": "ingress",
      "type": "CTRLPLANE"
     }
    }
]
```
- Run `sudo config apply-patch add-ctrl-plane-tbl.json-patch`


Before:
```
Patch Applier: The patch was sorted into 4 changes:
Patch Applier:   * [{"op": "add", "path": "/ACL_TABLE/ACTRLPLANETABLE", "value": {"type": "CTRLPLANE"}}]
Patch Applier:   * [{"op": "add", "path": "/ACL_TABLE/ACTRLPLANETABLE/policy_desc", "value": "ACTRLPLANETABLE"}]
Patch Applier:   * [{"op": "add", "path": "/ACL_TABLE/ACTRLPLANETABLE/services", "value": ["SSH"]}]
Patch Applier:   * [{"op": "add", "path": "/ACL_TABLE/ACTRLPLANETABLE/stage", "value": "ingress"}]
```

After:
```
Patch Applier: The patch was sorted into 1 change:
Patch Applier:   * [{"op": "add", "path": "/ACL_TABLE/ACTRLPLANETABLE", "value": {"policy_desc": "ACTRLPLANETABLE", "services": ["SSH"], "stage": "ingress", "type": "CTRLPLANE"}}]
```

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

<!--
- Note we only backport fixes to a release branch, *not* features!
- Please also provide a reason for the backporting below.
- e.g.
- [x] 202006
-->

- [ ] 201811
- [ ] 201911
- [ ] 202006
- [ ] 202012
- [ ] 202106

#### Description for the changelog
<!--
Write a short (one line) summary that describes the changes in this
pull request for inclusion in the changelog:
-->


#### A picture of a cute animal (not mandatory but encouraged)
2022-01-08 16:37:21 -08:00
Lior Avramov
be065ff1cb [Mellanox] Include CPU board and switch board sensors only on SN2201 system (#9644)
Why I did it
Recently additional sensors that were needed only for specific system added to all systems and caused errors.

How I did it
* Include CPU board and switch board sensors only on SN2201 system
* Fix issue in test_chassis_thermal, now it skips non existing thermals.

How to verify it
Run show platform temperature

Signed-off-by: liora <liora@nvidia.com>
2022-01-08 16:37:10 -08:00
Arun Saravanan Balachandran
3c5438de0b DellEMC: S6000, S6100, Z9332f - Update platform.json (#9459)
Why I did it
To include newer Fan LED, thermal capabilities fields in platform.json of DellEMC S6000, S6100, Z9332f platforms.

How I did it
Add the capabilities fields in each platform's respective platform.json.

How to verify it
Ran sonic-mgmt platform api test cases that use capabilities fields and verified that the results are as expected.
2022-01-08 16:36:58 -08:00
Aravind Mani
6c82346c3d [DellEMC] DMA errors are seen when loading bullseye kernel (#9641)
Following errors are seen continuously on SMBus controller when loading bullseye kernel.

[ 273.643046] DMAR: [DMA Write] Request device [00:12.0] PASID ffffffff fault addr 0 [fault reason 05] PTE Write access is not set
[ 273.785784] DMAR: DRHD: handling fault status reg 2
[ 273.844072] DMAR: [DMA Write] Request device [00:12.0] PASID ffffffff fault addr 0 [fault reason 05] PTE Write access is not set
[ 273.986804] DMAR: DRHD: handling fault status reg 2
[ 274.045101] DMAR: [DMA Write] Request device [00:12.0] PASID ffffffff fault addr 0 [fault reason 05] PTE Write access is not set
[ 274.187789] DMAR: DRHD: handling fault status reg 2

root@sonic:~# lspci -s 00:12.0 -vv
00:12.0 System peripheral: Intel Corporation Atom Processor C3000 Series SMBus Contoller - Host (rev 11)

Issue was not seen in buster. 

Modified platform specific installer.conf to turn off io_mmu
2022-01-08 16:36:06 -08:00
Raphael Tryster
dd8fd57bb5 [Mellanox] Add support of SN5600 platform on top of Nvidia ASIC simulation (#9392)
- Why I did it
Add new Spectrum-4 system support SN5600 on top of Nvidia ASIC simulator.

- How I did it
Add all relevant system and simulator SKU.
Updated syseeprom.hex and related directories to reflect Nvidia SN5600 brand name.

- How to verify it
Tested init flow, basic show commands, up interfaces, traffic test.

Signed-off-by: Raphael Tryster <raphaelt@nvidia.com>
2022-01-08 16:35:56 -08:00
Stephen Sun
4ce56e3e29 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-01-08 16:35:47 -08:00
Saikrishna Arcot
9790621198 Arm64 fixes and optimizations (#9274)
* [arm64]: Fix registration of the qemu interpreters

The current code doesn't properly run the container that registers the
qemu interpreters. It checks to see if the container is "known" by
Docker, but that doesn't indicate whether it's been run or not.
Therefore, just always register the qemu interpreters in the kernel, to
make sure the binary that's in the slave images that we build is used.

* [build]: Reduce the number of python calls

Modify the BLDENV and PROJECT_ROOT variables in slave.mk to be
immediate execution instead of lazy execution. Neither of these
variables should be changing for the duration of the build in each slave
container, so just run it once instead of every time they're referenced.

When running `make configure` for broadcom arm64 (where all of the slave
images are already built) on an amd64 host, this reduces the time spent
in each slave container from 4.5-5 minutes to 2 minutes.

* [sonic-slave]: Upgrade the qemu used for Bullseye arm64 to 6.1.0

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2022-01-08 16:35:39 -08:00
Junchao-Mellanox
b6fad1b67d [Mellanox] Rename platform x86_64-mlnx_msn4800 to x86_64-nvidia_sn4800 (#9512)
- Why I did it
Rename platform x86_64-mlnx_msn4800 to x86_64-nvidia_msn4800

- How I did it
Rename platform folder as well as all code that reference the platform name

- How to verify it
Manual test
2022-01-08 16:35:30 -08:00
xumia
c4e8955e69 [Bug][Build]: Fix the package url not found when package name encoded issue (#9683)
When the package name with special characters, such as +, the package name may be encoded as %2b, the package url will not be found when reproducible build enabled.
2022-01-07 13:38:36 +00:00
xumia
61807ac301 [brcm]: Simplify the broadcom sai packages reference (#9151)
For broadcom sai, we only need to upgrade the version, not necessary the token part in the url.

Co-authored-by: Ubuntu <xumia@xumia-vm1.jqzc3g5pdlluxln0vevsg3s20h.xx.internal.cloudapp.net>
2022-01-06 16:06:15 -08:00
Aravind Mani
e147eb9529 DellEMC: Change Platform LP mode API (#9391)
As part of SFP refactoring, LP mode is implemented for CMIS devices.
CMIS devices has to invoke common API instead of HW pin.
2022-01-06 16:06:10 -08:00
Stephen Sun
6d22c1fda6
[sonic-swss] Submodule update (#9397) (#9685)
691c37b7 [Route bulk] Fix bugs in case a SET operation follows a DEL operation in the same bulk (Azure/sonic-swss#2086)
a4c80c3d patch for issue Azure/sonic-swss#1971 - enable Rx Drop handling for cisco-8000 (Azure/sonic-swss#2041)
71751d10 [macsec] Support setting IPG by gearbox_config.json (Azure/sonic-swss#2051)
5d5c1692 [bulk mode] Fix bulk conflict when in case there are both remove and set operations (Azure/sonic-swss#2071)
8bbdbd2b Fix SRV6 NHOP CRM object type (Azure/sonic-swss#2072)
ef5b35f3 [vstest] VS test failure fix after fabric port orch PR merge (Azure/sonic-swss#1811)
89ea5385 Supply the missing ingress/egress port profile list in document (Azure/sonic-swss#2064)
81234373 [pfc_detect] fix RedisReply errors (Azure/sonic-swss#2040)
b38f527a [swss][CRM][MPLS] MPLS CRM Nexthop - switch back to using SAI OBJECT rather than SWITCH OBJECT
ae061e55 create debug_shell_enable config to enable debug shell (Azure/sonic-swss#2060)
45e446d9 [cbf] Fix max FC value (Azure/sonic-swss#2049)
b1b5b297 Initial p4orch pytest code. (Azure/sonic-swss#2054)
d352d5a9 Update default route status to state DB (Azure/sonic-swss#2009)
24a64d65 Orchagent: Integrate P4Orch (Azure/sonic-swss#2029)
15a3b6ca Delete the IPv6 link-local Neighbor when ipv6 link-local mode is disabled (Azure/sonic-swss#1897)
ed783e1f [orchagent] Add trap flow counter support (Azure/sonic-swss#1951)
e9b05a31 [vnetorch] ECMP for vnet tunnel routes with endpoint health monitor (Azure/sonic-swss#1955)
bcb7d61a P4Orch: inital add of source (Azure/sonic-swss#1997)
f6f6f867 [mclaglink] fix acl out ports (Azure/sonic-swss#2026)
fd887bf8 [Reclaim buffer] Reclaim unused buffer for dynamic buffer model (Azure/sonic-swss#1910)
92589789 [orchagent, cfgmgr] Add response publisher and state recording (Azure/sonic-swss#1992)
3d862a72 Fixing subport vs test script for subport under VNET (Azure/sonic-swss#2048)
fb0a5fd8 Don't handle buffer pool watermark during warm reboot reconciling (Azure/sonic-swss#1987)
16d4bcdb Routed subinterface enhancements (Azure/sonic-swss#1907)
9639db78 [vstest/subintf] Add vs test to validate sub interface ingress to a vnet (Azure/sonic-swss#1642)

Signed-off-by: Stephen Sun stephens@nvidia.com
2022-01-06 09:47:08 -08:00
xumia
8ad4a0f792 [Build]: Fix gmock not found issue in debian stretch slave container (#9669)
Fix the gmock not found issue in debian stretch slave container.
Some of platforms, such as naphos, innovium, have such issue.
2022-01-05 12:26:15 +00:00
xumia
d7f442942b [Bug][Build]: Fix azp trigger branches error (#9668)
The character "?" is not supported in azp template trigger branches, only support *.
2022-01-05 12:26:15 +00:00
xumia
6fd332791e
[Build]: Add debian host base image version to support the reproducible build (#9672)
[Build]: Add debian host base image version to support the reproducible build
2022-01-05 17:27:09 +08:00
Judy Joseph
3cbfb08689 Update sonic-utilities submodule
c48c363 Revert "[sonic-package-manager] support sonic-cli-gen and packages with YANG model (#1650)" (#1972)
2022-01-04 18:36:45 -08:00
rupesh-k
90b74d5280 SONiC Yang model support for Mirror (#7877)
#### Why I did it
Created SONiC Yang model for Mirror.
Tables: MIRROR_SESSION

#### How I did it

Defined Yang models for COPP based on Guideline doc:
https://github.com/Azure/SONiC/blob/master/doc/mgmt/SONiC_YANG_Model_Guidelines.md
and
https://github.com/Azure/sonic-utilities/blob/master/doc/Command-Reference.md

#### How to verify it
'''
============================= test session starts ==============================
platform linux -- Python 3.7.3, pytest-3.10.1, py-1.7.0, pluggy-0.8.0
rootdir: /sonic/src/sonic-yang-models, inifile:
plugins: cov-2.6.0
collected 3 items

tests/test_sonic_yang_models.py ..                                       [ 66%]
tests/yang_model_tests/test_yang_model.py .                              [100%]

=============================== warnings summary ===============================

module: sonic-mirror-session
  +--rw sonic-mirror-session
     +--rw MIRROR_SESSION
        +--rw MIRROR_SESSION_LIST* [name]
           +--rw name         string
           +--rw type?        string
           +--rw src_ip?      inet:ipv4-address
           +--rw dst_ip?      inet:ipv4-address
           +--rw gre_type?    string
           +--rw dscp?        uint8
           +--rw ttl?         uint8
           +--rw queue?       uint8
           +--rw dst_port?    -> /port:sonic-port/PORT/PORT_LIST/name
           +--rw src_port?    union
           +--rw direction?   string

'''
2021-12-26 20:58:37 -08:00
Abhishek
6f406b91ba [yang] SONiC MAC ACL Yang model update to add support for Source MAC, Destination MAC, Ethertype pattern update, VLAN_ID, PCP, DEI fields (#7917)
#### Why I did it
Currently only IP ACL and related model is defined. Support for MAC ACL is missing. Added support for it.

#### How I did it
ACL_RULE table is added with new MAC ACL related fields namely Source MAC, Destination MAC, Ethertype (Pattern updated to match any valid Ethertypes), VLAN, PCP, DEI

#### How to verify it
Yang model tests are attached.
2021-12-26 20:58:33 -08:00
Junchao-Mellanox
d683688d41 [Mellanox] Add a trigger to set LED to blink (#8764)
Depends on #9358

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-12-26 20:58:30 -08:00
arlakshm
4e7550e2bd [yang] add set_owner to feature yang (#9075)
#### Why I did it
Add the configuration for the set_owner in the `feature` yang model

#### How I did it
Add new leaf `set_pwner` to the `feature` yang model

#### How to verify it
compile `sonic_yang_mgmt-1.0-py3-none-any.whl`
2021-12-26 20:58:27 -08:00
Arun Saravanan Balachandran
a56ecd711d [DellEMC] S6100 - iTCO watchdog support and reboot cause determination changes (#9149)
Why I did it
To support iTCO watchdog using watchdog APIs.
How I did it
Implemented a new watchdog class WatchdogTCO for interfacing with iTCO watchdog.
Updated reboot cause determination logic.
How to verify it
Verified that the watchdog APIs' return values are as expected.
Logs: UT_logs.txt
2021-12-26 20:58:23 -08:00
Marty Y. Lok
3f7e77e210 Update submodule sonic-pmon for Nokia platform (#9210)
Update Nokia platform sonic-pmon submoduel to the latest with the following commits

c41c823 Fix transceiver module dynamic insertion/removal operations
21a1df6 Fixed pcied process FATAl issue
7fc1fd4 Fix midplane status nokia_cmd
a14ee1c Override get_module() api in chassis
8a457fc SON-326: Watchdog logger changes and file scrubbing
7250eb1 SON-410: Fix missing eeprom access routine
7a70c42 Allow only reboot of self card for OC API test
6ab5d96 Fixed the flake8 compliant issues
807de95 APIs to set thermal threshold to return false
9b38265 SON-382: platform-dump with common techsupport
3f83a67 Add model, base_mac, system_eeprom and serial number support in moduel.py
848d311 SFP: Add get_error_description and fix return status for set_lpmode
1fcb5de PSU check presence of psu instance for APIs
7c68da3 Fixed the eagle and hornet card description
0c01d07 Module support for reboot API
2021-12-26 20:58:20 -08:00
Stephen Sun
646a886a11 [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-26 20:58:16 -08:00
xumia
1aff549573 [Build]: Fix docker images built multiple times issue (#9253)
The same docker image is built multiple times after upgrading to bullseye, the build time is increased to about 15 hours from 6 hours.
See log: https://dev.azure.com/mssonic/be1b070f-be15-4154-aade-b1d3bfb17054/_apis/build/builds/50390/logs/9
Line 1437: 2021-11-11T11:15:02.7094923Z [ building ] [ target/docker-sonic-telemetry.gz ]
Line 1446: 2021-11-11T11:37:41.1073304Z [ finished ] [ target/docker-sonic-telemetry.gz ]
Line 1459: 2021-11-11T11:38:20.6293007Z [ building ] [ target/docker-sonic-telemetry.gz-load ]
Line 1462: 2021-11-11T11:38:28.1250201Z [ finished ] [ target/docker-sonic-telemetry.gz-load ]
Line 2906: 2021-11-11T18:57:42.8207365Z [ building ] [ target/docker-sonic-telemetry.gz ]
Line 2917: 2021-11-11T19:43:47.1860961Z [ finished ] [ target/docker-sonic-telemetry.gz ]
Line 3997: 2021-11-11T22:49:35.0196252Z [ building ] [ target/docker-sonic-telemetry.gz ]
Line 4002: 2021-11-11T23:14:00.4127728Z [ finished ] [ target/docker-sonic-telemetry.gz ]

How I did it
Place the python wheels in another folder relative to the build distribution.

Co-authored-by: Ubuntu <xumia@xumia-vm1.jqzc3g5pdlluxln0vevsg3s20h.xx.internal.cloudapp.net>
2021-12-26 20:58:12 -08:00
Junchao-Mellanox
2b82af5847 [Mellanox] Allow user to set LED to orange (#9259)
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
Added unit test
Manual test
2021-12-26 20:58:08 -08:00
Mykola Gerasymenko
ec46a23bc6 [DPB][YANG] Add POLL_INTERVAL in flex_counter yang model (#9276)
#### Why I did it
DPB falls due to missing POLL_INTERVAL in sonic-flex_counter yang model.

#### How I did it
Added POLL_INTERVAL leaf to ACL container in sonic-flex_counter yang model.

#### How to verify it
Run the command config interface breakout <interface> <breakout_mode>

**NOTE:**
To verify this fix, a PR ([add set_owner to feature yang](https://github.com/Azure/sonic-buildimage/pull/9075)) that fix another bug in SONiC should be merged to master.
2021-12-26 20:58:00 -08:00
Oleksandr Ivantsiv
546818f414 [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
2021-12-26 20:57:56 -08:00
Lior Avramov
2c6af8432b [Mellanox] Add support for SN2201 platform (#9333)
- Why I did it
Add support for SN2201 platform

- How I did it
Add required content for SN2201 platform
Note: still missing kernel driver support for this system. Once all is upstream will be updated as well.

- How to verify it
Install and basic sanity tests including traffic.

Signed-off-by: liora liora@nvidia.com
2021-12-26 20:57:52 -08:00
Alexander Allen
82832375c2 [Mellanox] Add copyright headers to Mellanox-SN4600C-D100C12S2 SKU (#9345)
Missing NVIDIA copyright header from some files.
2021-12-26 20:57:47 -08:00
LuiSzee
1e17d9c5b2 [centec] support v682-48y8c and v682-48x8c (#9349)
Why I did it
Adding platform support for centec v682-48y8c and v682-48x8c.
V682-48y8c switch has 48 SFP+ (1G/10G/25G) ports, 8 QSFP28 (40G/100G) ports on CENTEC TsingMa.MX.
V682-48y8c is different from V682-48y8c_d in that:

transceiver is managed by cpu smbus rather than TsingMa.MX i2c bus.
port led is managed by mcu inside TsingMa.MX.
fan, psu, sensors, leds are managed by cpu smbus other than the cpu board vendor's close sourse driver.
V682-48x8c switch has 48 SFP+ (1G/10G) ports, 8 QSFP28 (40G/100G) ports on CENTEC TsingMa.MX.
CPU used in v682-48y8c and v682-48x8c is Intel(R) Xeon(R) CPU D-1527.

How I did it
Modify related code in platform and device directory.
Upgrade centec sai to v1.9.
upgrade python to python3 and kernel version to 5.0 for V682-48y8c_d.
How to verify it
Build centec amd64 sonic image, verify platform functions (port, sfp, led etc) on centec v682-48y8c and v682-48x8c board.

Co-authored-by: shil <shil@centecnetworks.com>
2021-12-26 20:57:12 -08:00
Shilong Liu
a1e9150e3c [build] Remove dulplicated DOCKER_SYNCD_BASE target. (#9378) 2021-12-26 20:56:04 -08:00
kellyyeh
d6583d2067 [radv] Run radv on MgmtToRRouter (#9424)
* Allow radv to run on mgmt tor and EPMS
2021-12-26 20:55:55 -08:00
xumia
84681956e4 [Build]: Support reproducible build for release branches (#9426)
[Build]: Support reproducible build for release branches #9426
2021-12-26 20:55:51 -08:00
Stephen Sun
11571cdbf3 [Unit test] Fix sonic config engine unit test failure (#9454)
- Why I did it
Fix sonic-config-engine unit test failure

- How I did it
 * Do not use pytest fixture in the test since it is not compatible with unittest framework which is used by all of the rest test cases.
 * Supply 2 missing files

- How to verify it
Run unit test or compile the module (when the unit test will run automatically)

Signed-off-by: Stephen Sun <stephens@nvidia.com>
2021-12-26 20:55:46 -08:00
Aravind Mani
b290b9d10b [Submodule]Update sonic-platform-common submodule (#9466) 2021-12-26 20:55:42 -08:00
Samuel Angebault
65228e39e9 [sonic-py-common] Add recirc_prefix definition (#9471)
This interface type is used for recirculation on chassis.
The definition is required to prevent this interface from being
considered a physical interface in sonic-platform-common and
sonic-platform-daemon
2021-12-26 20:55:39 -08:00
Volodymyr Samotiy
0094bd311a [Mellanox] Update SAI to v1.20.1.1 and SDK/FW to v4.5.1158/v2010.1154 (#9474)
- Why I did it
To include latest fixes.

SAI
1. Reclaim buffers for port which is admin down
2. Support for Spectrum-4 os Nvidia ASIC simulation
3. Support for SN2201
4. Fix host interface table entry, one channel per trap (fix sflow double registration)
5. 2 new queue counters - ecn marked packets + shared current occupancy
6. Fix storm policer unknown unicast
7. Add key/value for accuflow counters
8. Add MAC move
9. Add mirror congestion mode attribute

SDK
1. Under various circumstances, Ethernet ports falsely showed that InfiniBand cables were connected.
2. In SN4600C, at times, the link up time in both DAC and optics cables may, in the worst case, take up to 15 seconds.
3. Using SN4600C with copper or optics loopback cables in NRZ speeds, link may raise in long link up times
4. 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.
5. 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.
6. Aggregation event is missing for WJH L2 drop reason 'Unicast egress port list is empty'.
7. Tying the SCL and SDA of the optical modules to 3.3V causes errors.
8. 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.
9. While using SN4600C system with Finisar FTLC1157RGPL 100GbE CWDM4 modules, intermittent link flaps across multiple ports may be observed.
10. 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.
11. 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.
12. When connecting SN3800 to Cisco-9000, fast-linkup flow will fail and will rise in the normal flow.
13. Race condition in WJH library: when multiple threads load the LAG shared memory concurrently, the program may crash.
14. Add WJH L2 drop reason 'Unicast egress port list is empty' as a new drop reason.
15. Fixed a memory leak in sx_api_port_sflow_statistics_get API.
16. 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.
17. Fix route issue on Kernel 5.10

- 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-26 20:55:34 -08:00
liuh-80
4e22831fb1 [TACACS] Fix auditd can't load tacplus plugin issue. (#9481)
<!--
     Please make sure you've read and understood our contributing guidelines:
     https://github.com/Azure/SONiC/blob/gh-pages/CONTRIBUTING.md

     ** Make sure all your commits include a signature generated with `git commit -s` **

     If this is a bug fix, make sure your description includes "fixes #xxxx", or
     "closes #xxxx" or "resolves #xxxx"

     Please provide the following information:
-->

#### Why I did it
1. Fix auditd log file path, because known issue: https://github.com/Azure/sonic-buildimage/issues/9548

2. When SONiC change to based on bullseye, auditd version upgrade from 2.8.4 to 3.0.2, and in auditd 3.0.2 the plugin file path changed to /etc/audit/plugins.d, however the upstream auditisp-tacplus project not follow-up this change, it still install plugin config file to /etc/audit/audisp.d. so the plugin can't be launch correctly, the code change in src/tacacs/audisp/patches/0001-Porting-to-sonic.patch fix this issue.
#### How I did it
        Fix tacacs plugin config file path.
        Create /var/log/audit folder for auditd.

#### How to verify it
        Pass all UT, also run per-command acccounting UT to validate plugin loaded.

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

<!--
- Note we only backport fixes to a release branch, *not* features!
- Please also provide a reason for the backporting below.
- e.g.
- [x] 202006
-->

- [ ] 201811
- [ ] 201911
- [ ] 202006
- [ ] 202012
- [ ] 202106

#### Description for the changelog
<!--
Write a short (one line) summary that describes the changes in this
pull request for inclusion in the changelog:
-->
        Fix tacacs plugin config file path.
        Create /var/log/audit folder for auditd.

#### A picture of a cute animal (not mandatory but encouraged)
2021-12-26 20:55:30 -08:00
abdosi
f001104b25 [bgp] Enable BGP Graceful Restart based on device role (#9486)
What I did:
Updated Jinja Template to enable BGP Graceful Restart based on device role. By default it will be enable only if the device role type is TorRouter.

Why I did:-
By default FRR is configured in Graceful Helper mode. Graceful Restart is needed on T0/TorRouter only since the device can go for warm-reboot. For T1/LeafRouter it need to be in Helper mode only
2021-12-26 20:55:26 -08:00
Stepan Blyshchak
c03008e27c [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-26 20:55:21 -08:00
Marty Y. Lok
4783268902 [multiasic][database]database.sh failed to create the database for namespace (#9502)
Why I did it
database.sh failed to create the database for namespace in multiasic platform.
The latest code Docker version 20.10.x, command "docker create" no longer takes optional "NET=" with empty value. Syntax error show with current docker create command in database.sh. Issue #9503

How I did it
Modify the docker_image_ctl.j2 to set default network setting NET="bridge" instead of empty for namespace database.
2021-12-26 20:55:17 -08:00
Qi Luo
c2b60bda71 Revert "CRM init config for SRV6 Nexthop and MY_SID resource (#9238)" (#9506)
This reverts commit 8187d473af.
2021-12-26 20:54:56 -08:00
ganglv
92cfbb270a [yang]: Add constraint for pfcwd (#9513)
#### Why I did it
POLL_INTERVAL cannot be set if any of the detection/restoration times in this table is less than the POLL_INTERVAL.

#### How I did it
Add "must" constraint to make sure detection/restoration times are greater than POLL_INTERVAL.

#### How to verify it
Use apply-patch command to update POLL_INTERVAL.
Build sonic-yang-model.
2021-12-26 20:54:39 -08:00
Qi Luo
72f3cb0aab [sonic-slave]: Upgrade python lxml library version to 4.6.5 (#9529)
Bumps lxml from 4.6.5.
2021-12-26 20:54:09 -08:00
Vadym Hlushko
678b936a64 [Mellanox] [SN4410] Fixed capability files - port_config.ini, hwsku.json, platform.json (#9538)
- 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
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-26 20:53:39 -08:00
Stepan Blyshchak
c8de6140de [Mellanox] fix hw-mgmt patches (#9539)
- 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>
2021-12-26 20:53:23 -08:00
Stepan Blyshchak
cc9ecace26 [slave.mk] fix error: recursive variable references itself. (#9385)
- Why I did it
To fix the above error when running make slave.mk with PLATFORM=vs.

- How I did it
Instead of:
export BUILD_MULTIASIC_KVM=$(BUILD_MULTIASIC_KVM)
do just the export:
export BUILD_MULTIASIC_KVM

BUILD_MULTIASIC_KVM is already defined to be either empty, or from rules/config or from the environment - from Makefile.work. No need to dereference the variable in the export statement.

- How to verify it
PLATFORM=vs make -f slave.mk list # verify no error and BUILD_MULTIASIC_KVM is empty in the output
PLATFORM=vs BUILD_MULTIASIC_KVM=y make -f slave.mk list # verify no error and BUILD_MULTIASIC_KVM is set to y in the output

Signed-off-by: Stepan Blyshchak <stepanb@nvidia.com>
2021-12-08 21:31:19 +00:00
xumia
5314ae0ec5 [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>
2021-12-08 21:29:50 +00:00
xumia
0da287ab60 [Build]: Fix tmpfs space not enough issue when building vs image (#9438)
Fix no space left on device issue in tmpfs.
2021-12-01T06:30:40.1651742Z cp: write error: No space left on device
2021-12-01T06:30:40.1652225Z Failure: local_fs_run():/dev/vdb Unable to copy /tmp/tmp.gl4Sgp/onie-installer.bin to tmpfs
2021-12-08 21:29:22 +00:00
abdosi
e34c2e4a22 Updated BGP Template for Chassis/Multi-asic (#9291)
Updated BGP Template for the case:
    
   1. For Packet Chassis do not advertise Loopback4096 address into BGP as there is Static Route for same. 
       Having this route in BGP causes two level of recursion in Zebra and cause assert in Zebra 
       when there are many nexthop involved
 
   2. Advertise only P2P Connected IP's into BGP (External Peers). For Packet chassis we have backend IP Interface subnet and if 
        they get advertised into BGP then it also causes recursion
2021-12-08 21:27:31 +00:00
Brian O'Connor
6bffcb9e71 [PINS] Build P4RT container for PINS (#9083)
- Add INCLUDE_PINS to config to enable/disable container
- Add Docker files and supporting resources
- Add sonic-pins submodule and associated make files

Submission containing materials of a third party:
    Copyright Google LLC; Licensed under Apache 2.0

#### Why I did it

Adds P4RT container to SONiC for PINS

The P4RT app is covered by this HLD:
https://github.com/pins/SONiC/blob/master/doc/pins/p4rt_app_hld.md

#### How I did it

Followed the pattern and templates used for other SONiC applications

#### How to verify it

Build SONiC with INCLUDE_P4RT set to "y".
Verify that the resulting build has a container called "p4rt" running.
You can verify that the service is up by running the following command on the SONiC switch:
```bash
sudo netstat -lpnt | grep p4rt
```
You should see the service listening on TCP port 9559.

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

None

#### Description for the changelog

Build P4RT container for PINS
2021-12-08 20:59:23 +00:00
Abhishek Dosi
181e7b3b6e [Submodule update] sonic-snmpagent
6f2d8d2110967d813053bcfcd8b34c42c5d0cda2 (HEAD -> 202111, origin/202111) [Voq][Inband] Support the Ethernet-IB port (#228

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2021-12-08 20:54:50 +00:00
Abhishek Dosi
501a2336ed [Submodule Update] sonic-utilities
f81043b1f9ff02196629655f4735b33afd7f0ae1 (HEAD -> 202111, origin/202111) [port2alias]: Fix to get right number of return values (#1906)
bbbf65943ec46e9330eadaed8bcdf1612cb8bd55 [CLI][show bgp] On chassis don't show internal BGP sessions by default (#1927)
e12de7e7bf6cff3ec127f261bf88e4d29776d27b [port] Fix port speed set (#1952)
cae7af752d484956d7fe40e4c3a849ddad460976 Fix invalid output of syslog IPv6 servers (#1933)
6009341ddf790094166be5f0a81b4c114f00220b Routed subinterface enhancements (#1821)
6ab9d67ca6550c592b97afb513804be474f84eb0 Enhance sfputil for CMIS QSFP (#1949)
76cc67ba4f81c69b20efb3341808037c9db8f703 [debug dump] Refactoring Modules and Unit Tests (#1943)
cff58a8171423e4012bc8caf9748996a1e98b7e2 Add command reference for trap flow counters (#1876)
71cf3ee43524d56ad57dd90b937cfbf4bf63ba6a [Reclaim buffer] [Mellanox] Db migrator support reclaiming reserved buffer for unused ports (#1822)
e699b49fb722e6d6fe5a1d2dacd2d39eb085c1e4 Add show command for BFD sessions (#1942)
bb6c5774c843dbfad5f1ba00ee76dae7720902d1 [warm-reboot] Fix failures of warm reboot on disconnect of ssh session (#1529)
2e8bbb308477862a76d2327fcf696875e8f08650 Add trap flow counter support (#1868)
58407c1386ef13772a9a9320a795e380f162ab2c [load_minigraph] Delay pfcwd start until the buffer templates are rendered (#1937)
eb388e0584ba1fe8d8dba58f1c5a148036ffe047 [sonic-package-manager] support sonic-cli-gen and packages with YANG model (#1650)
2371d84e7d281bdb9988b5a1a012498dbbfb89ec generic_config_updater: Filename changed & VLAN validator added (#1919)
7c0718dfaf23289d4ecc3ada9332e465c9a4e56b [config reload] Update command reference (#1941)

Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
2021-12-08 20:43:42 +00:00
Prince George
45afaa9048 [submodule-update] Updating sonic-platform-common submodule (#9412)
c2aac75 [SFP-Refactor] Fix LP mode API issue (#247)
dba17c8 Firmware upgrade CLI support for QSFP-DD transceivers (#244)
cd69212 [SFP-Refactor] Implement CMIS Low Power mode (#237)
9cea07f Fix RegGroupField decode (#245)
6ae1909 Add CMIS QSFP support (#246)
c1f317d Gracefully handle CMIS APIs for passive modules (#238)
ec7335d fix for firmware functions  (#243)
cf2ebe9 Fix RegBitField decode/encode (#242)
ef4f2c6 Fix SFP_CABLE_TECH_FIELD (#240)
e118644 remove time counting message in functions because function running time could be difficult to predict in unit tests (#241)

Signed-off-by: Prince George <prgeor@microsoft.com>
2021-12-08 20:28:55 +00:00
Shilong Liu
09d9ce4cf0
Enable azp in 202111 branch (#9427)
* [ci] Enable official/PR build on azure pipeline.
2021-12-07 15:21:53 +08:00
Nazarii Hnydyn
1e3219fb32 [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>
2021-12-02 21:28:02 -08:00
1355 changed files with 108586 additions and 29566 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

@ -50,6 +50,7 @@ jobs:
swi_image: yes
- name: broadcom
timeoutInMinutes: 1440
variables:
dbg_image: yes
swi_image: yes
@ -97,6 +98,8 @@ 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
@ -107,7 +110,7 @@ jobs:
make $BUILD_OPTIONS target/docker-sonic-vs.gz target/sonic-vs.img.gz target/docker-ptf.gz
if [ $(Build.Reason) != 'PullRequest' ];then
gzip -kd target/sonic-vs.img.gz
SONIC_RUN_CMDS="qemu-img convert target/sonic-vs.img -O vhdx -o subformat=dynamic target/sonic-vs.vhdx" make sonic-slave-run
SONIC_RUN_CMDS="qemu-img convert target/sonic-vs.img -O vhdx -o subformat=dynamic target/sonic-vs.vhdx" make $BUILD_OPTIONS sonic-slave-run
rm target/sonic-vs.img
fi
else
@ -131,3 +134,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

@ -0,0 +1,33 @@
parameters:
- name: connectionName
type: string
default: sonic-dev-connection
- name: kevaultName
type: string
default: sonic-kv
- name: certificateName
type: string
default: sonic-secure-boot
steps:
- task: AzureKeyVault@2
inputs:
connectedServiceName: ${{ parameters.connectionName }}
keyVaultName: ${{ parameters.kevaultName }}
secretsFilter: ${{ parameters.certificateName }}
- script: |
set -e
TMP_FILE=$(mktemp)
echo "$CERTIFICATE" | base64 -d > $TMP_FILE
sudo mkdir -p /etc/certificates
mkdir -p $(Build.StagingDirectory)/target
# Save the public key
openssl pkcs12 -in $TMP_FILE -clcerts --nokeys -nodes -passin pass: | sed -z -e "s/.*\(-----BEGIN CERTIFICATE\)/\1/" > $(SIGNING_CERT)
# Save the private key
openssl pkcs12 -in $TMP_FILE -nocerts -nodes -passin pass: | sed -z -e "s/.*\(-----BEGIN PRIVATE KEY\)/\1/" | sudo tee $(SIGNING_KEY) 1>/dev/null
ls -lt $(SIGNING_CERT) $(SIGNING_KEY)
rm $TMP_FILE
env:
CERTIFICATE: $(${{ parameters.certificateName }})
displayName: "Save certificate"

View File

@ -25,14 +25,17 @@ jobs:
jobFilters: ${{ parameters.jobFilters }}
jobVariables: ${{ parameters.jobVariables }}
preSteps:
- template: cleanup.yml
- 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
@ -48,7 +51,7 @@ jobs:
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)/
- script: mv target $(Build.ArtifactStagingDirectory)/
displayName: Copy Artifacts
condition: always()
- publish: $(Build.ArtifactStagingDirectory)
@ -58,7 +61,12 @@ jobs:
condition: failed()
artifact: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)$(System.JobAttempt)'
displayName: "Archive failed sonic image"
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
- template: trigger-publish-artifacts-build.yml
parameters:
artifactName: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)'
publishPrefix: '$(Build.DefinitionName)/$(Build.SourceBranchName)/$(GROUP_NAME)'
- ${{ parameters.postSteps }}
- template: cleanup.yml
- template: .azure-pipelines/cleanup.yml@buildimage
jobGroups: ${{ parameters.jobGroups }}
buildSteps: ${{ parameters.buildSteps }}

View File

@ -0,0 +1,2 @@
variables:
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web,git,docker'

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

@ -0,0 +1,16 @@
steps:
- script: |
. functions.sh
SONIC_VERSION=$(sonic_get_version)
echo "SONIC_VERSION=$SONIC_VERSION"
if [[ "$SONIC_VERSION" == *dirty* ]]; then
# Print the detail dirty info
git status --untracked-files=no -s --ignore-submodules
# Exit with error, if it is a PR build
if [ "$(Build.Reason)" == "PullRequest" ]; then
echo "Build failed for the dirty version: $SONIC_VERSION" 1>&2
exit 1
fi
fi
displayName: "Check the dirty version"

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

@ -3,6 +3,13 @@
# 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
@ -38,6 +45,10 @@ jobs:
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
@ -68,16 +79,6 @@ jobs:
BUILD_OPTIONS = 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web,git,docker'
fi
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
tmpfile=$(mktemp)
echo ${{ parameters.arch }} > .arch

View File

@ -3,26 +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-bullseye
- sonic-slave-*
- files/build/versions
- Makefile
- Makefile.work
parameters:
- name: 'arches'
@ -46,13 +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 }}:
- template: docker-sonic-slave-template.yml
- 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:
@ -35,3 +37,8 @@ stages:
variables:
docker_syncd_rpc_image: yes
platform_rpc: mlnx
- name: marvell-armhf
pool: sonicbld-armhf
timeoutInMinutes: 1200
variables:
PLATFORM_ARCH: armhf

View File

@ -22,6 +22,18 @@ resources:
name: Cisco-8000-sonic/platform-cisco-8000
endpoint: cisco-connection
variables:
- group: SONIC-AKV-STROAGE-1
- name: StorageSASKey
value: $(sonicstorage-SasToken)
- name: SONIC_ENABLE_SECUREBOOT_SIGNATURE
value: y
- name: SIGNING_KEY
value: /etc/certificates/sonic-secure-boot-private.pem
- name: SIGNING_CERT
value: $(Build.StagingDirectory)/target/sonic-secure-boot-public.pem
stages:
- stage: Build
pool: sonic
@ -29,12 +41,14 @@ stages:
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:
- template: azure-pipelines-download-certificate.yml
- checkout: self
submodules: recursive
path: s
@ -60,5 +74,34 @@ stages:
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"
- script: |
echo "SONIC_ENABLE_SECUREBOOT_SIGNATURE := y" >> rules/config.user
echo "SIGNING_KEY := $(SIGNING_KEY)" >> rules/config.user
echo "SIGNING_CERT := $(SIGNING_CERT)" >> rules/config.user
displayName: "Enable secure boot signature"
jobGroups:
- name: cisco-8000

View File

@ -18,9 +18,9 @@ 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'
- template: azure-pipelines-repd-build-variables.yml
- name: CACHE_MODE
value: wcache
jobs:
- template: azure-pipelines-build.yml
parameters:

View File

@ -9,7 +9,7 @@ schedules:
branches:
include:
- master
- 202012
- 202111
always: true
- cron: "0 4 * * *"
displayName: nightly build for release
@ -18,16 +18,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,62 @@
# The steps to trigger the pipeline to publish the artifacts
parameters:
- name: artifactName
type: string
default: ""
- name: publishPrefix
type: string
default: "$(Build.DefinitionName)/$(Build.SourceBranchName)"
steps:
- script: |
. functions.sh
sonic_version=$(sonic_get_version)
latest_tag=$(git describe --tags --abbrev=0)
docker_tags="$sonic_version $(Build.SourceBranchName)"
if [ "$(Build.SourceBranchName)" == "master" ]; then
docker_tags="$docker_tags latest"
fi
echo "##vso[task.setvariable variable=sonic_version]$sonic_version"
echo "##vso[task.setvariable variable=latest_tag]$latest_tag"
echo "##vso[task.setvariable variable=docker_tags]$docker_tags"
displayName: 'Set trigger build variables'
- task: TriggerBuild@4
inputs:
definitionIsInCurrentTeamProject: false
teamProject: internal
tfsServer: $(System.CollectionUri)
buildDefinition: 'publish-artifacts'
queueBuildForUserThatTriggeredBuild: true
ignoreSslCertificateErrors: false
useSameSourceVersion: false
useCustomSourceVersion: false
useSameBranch: false
waitForQueuedBuildsToFinish: false
storeInEnvironmentVariable: true
authenticationMethod: 'Personal Access Token'
password: '$(system.accesstoken)'
enableBuildInQueueCondition: false
dependentOnSuccessfulBuildCondition: false
dependentOnFailedBuildCondition: false
checkbuildsoncurrentbranch: false
failTaskIfConditionsAreNotFulfilled: false
buildParameters: ''
templateParameters: |
pipelineContext: {"buildId":"$(Build.BuildId)",
"pipelineId":"$(System.DefinitionId)",
"project": "$(System.TeamProject)",
"branchName":"$(Build.SourceBranchName)"},
artifactContext: {"artifactName":"${{ parameters.artifactName }}",
"artifactPatterns":"**/*.bin\n
**/*.swi\n
**/*.raw\n
**/*.img.gz\n
**/*-rpc.gz\n
**/python-saithrift*.deb"},
publishContext: {"publishPrefix":"${{ parameters.publishPrefix }}",
"keepArtifactName":false,
"dockerImagePatterns":"target/*-rpc.gz",
"dockerTags":"$(docker_tags)",
"version":"$(sonic_version)",
"latestTag":"$(latest_tag)"}

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

4
.github/codeql/codeql-config.yml vendored Normal file
View File

@ -0,0 +1,4 @@
name: "CodeQL config"
queries:
- uses: security-and-quality
- uses: security-extended

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

@ -15,7 +15,7 @@ jobs:
- name: automerge
uses: 'pascalgn/automerge-action@v0.13.1'
env:
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
GITHUB_TOKEN: '${{ secrets.TOKEN }}'
MERGE_LABELS: 'automerge'
MERGE_METHOD: 'squash'
MERGE_FILTER_AUTHOR: 'mssonicbld'

43
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@ -0,0 +1,43 @@
# For more infomation, please visit: https://github.com/github/codeql-action
name: "CodeQL"
on:
push:
branches:
- 'master'
- '202[0-9][0-9][0-9]'
pull_request:
branches:
- 'master'
- '202[0-9][0-9][0-9]'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'python' ]
steps:
- name: Checkout repository
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
config-file: ./.github/codeql/codeql-config.yml
languages: ${{ matrix.language }}
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{matrix.language}}"

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

3
.gitignore vendored
View File

@ -93,3 +93,6 @@ htmlcov/
.vscode/
.idea/
# Debian mirror Sources
sources.list.*
!sources.list*.j2

46
.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,34 +18,34 @@
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-platform-pde"]
path = src/sonic-platform-pde
url = https://github.com/Azure/sonic-platform-pdk-pde
url = https://github.com/sonic-net/sonic-platform-pdk-pde
[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
@ -62,38 +62,44 @@
[submodule "src/redis-dump-load"]
path = src/redis-dump-load
url = https://github.com/p/redis-dump-load.git
[submodule "src/scapy"]
path = src/scapy
url = https://github.com/secdev/scapy.git
[submodule "platform/mellanox/mlnx-sai/SAI-Implementation"]
path = platform/mellanox/mlnx-sai/SAI-Implementation
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
[submodule "src/linkmgrd"]
path = src/linkmgrd
url = https://github.com/Azure/sonic-linkmgrd.git
url = https://github.com/sonic-net/sonic-linkmgrd.git
[submodule "src/sonic-p4rt/sonic-pins"]
path = src/sonic-p4rt/sonic-pins
url = https://github.com/sonic-net/sonic-pins.git

View File

@ -25,20 +25,21 @@ 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
ifeq ($(NOBUSTER), 0)
EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=buster make -f Makefile.work buster
$(MAKE_WITH_RETRY) EXTRA_DOCKER_TARGETS=$(notdir $@) BLDENV=buster -f Makefile.work buster
endif
ifeq ($(NOBULLSEYE), 0)
BLDENV=bullseye make -f Makefile.work $@
$(MAKE_WITH_RETRY) BLDENV=bullseye -f Makefile.work $@
endif
jessie:

View File

@ -68,6 +68,7 @@
# Run the 'touch cache.skip.common' command in the base directory to exclude the common files from caching
SONIC_COMMON_FILES_LIST := $(if $(wildcard cache.skip.common),, .platform slave.mk rules/functions Makefile.cache)
SONIC_COMMON_FLAGS_LIST := $(CONFIGURED_PLATFORM) \
$(BLDENV) \
$(SONIC_DEBUGGING_ON) \
$(SONIC_PROFILING_ON) $(SONIC_ENABLE_SYNCD_RPC)
SONIC_COMMON_DPKG_LIST := debian/control debian/changelog debian/rules \
@ -184,7 +185,7 @@ define GET_MOD_DEP_SHA
$(if $($(1)_DEP_FILES_MISSING), $(warning "[ DPKG ] Dependecy file(s) are not found for $(1) : $($(1)_DEP_FILES_MISSING)))
# 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_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);}'))
@ -559,6 +560,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

@ -115,6 +115,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
@ -136,12 +140,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);}')
@ -184,9 +189,22 @@ ifneq ($(SONIC_DPKG_CACHE_SOURCE),)
DOCKER_RUN += -v "$(SONIC_DPKG_CACHE_SOURCE):/dpkg_cache:rw"
endif
ifeq ($(SONIC_ENABLE_SECUREBOOT_SIGNATURE), y)
ifneq ($(SIGNING_KEY),)
DOCKER_SIGNING_SOURCE := $(shell dirname $(SIGNING_KEY))
DOCKER_RUN += -v "$(DOCKER_SIGNING_SOURCE):$(DOCKER_SIGNING_SOURCE):ro"
endif
ifneq ($(SIGNING_CERT),)
DOCKER_SIGNING_SOURCE := $(shell dirname $(SIGNING_CERT))
DOCKER_RUN += -v "$(DOCKER_SIGNING_SOURCE):$(DOCKER_SIGNING_SOURCE):ro"
endif
endif
ifeq ($(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD), y)
ifneq ($(MULTIARCH_QEMU_ENVIRON), y)
DOCKER_RUN += -v /var/run/docker.sock:/var/run/docker.sock
endif
endif
ifeq ($(MULTIARCH_QEMU_ENVIRON), y)
ifeq ($(DOCKER_DATA_ROOT_FOR_MULTIARCH),)
@ -206,7 +224,7 @@ endif
#Override Native config to prevent docker service
SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD=y
DOCKER_MULTIARCH_CHECK := docker inspect --type image multiarch/qemu-user-static:register &> /dev/null || (echo "multiarch docker not found ..."; docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes)
DOCKER_MULTIARCH_CHECK := docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes
DOCKER_SERVICE_SAFE_KILLER := (MARCH_PID=`ps -eo pid,cmd | grep "[0-9] dockerd.*march" | awk '{print $$1}'`; echo "Killing march docker $$MARCH_PID"; [ -z "$$MARCH_PID" ] || sudo kill -9 "$$MARCH_PID";)
DOCKER_SERVICE_MULTIARCH_CHECK := ($(DOCKER_SERVICE_SAFE_KILLER); sudo rm -fr /var/run/march/; (echo "Starting docker march service..."; sudo $(SONIC_NATIVE_DOCKERD_FOR_MUTLIARCH) &) &>/dev/null ; sleep 2; sudo $(SONIC_USERFACL_DOCKERD_FOR_MUTLIARCH);)
@ -263,6 +281,7 @@ SONIC_BUILD_INSTRUCTION := make \
SONIC_ENABLE_PFCWD_ON_START=$(ENABLE_PFCWD_ON_START) \
SONIC_ENABLE_SYNCD_RPC=$(ENABLE_SYNCD_RPC) \
SONIC_INSTALL_DEBUG_TOOLS=$(INSTALL_DEBUG_TOOLS) \
SONIC_SAITHRIFT_V2=$(SAITHRIFT_V2) \
MDEBUG=$(MDEBUG) \
PASSWORD=$(PASSWORD) \
USERNAME=$(USERNAME) \
@ -283,17 +302,27 @@ SONIC_BUILD_INSTRUCTION := make \
EXTRA_DOCKER_TARGETS=$(EXTRA_DOCKER_TARGETS) \
BUILD_LOG_TIMESTAMP=$(BUILD_LOG_TIMESTAMP) \
SONIC_ENABLE_IMAGE_SIGNATURE=$(ENABLE_IMAGE_SIGNATURE) \
SONIC_ENABLE_SECUREBOOT_SIGNATURE=$(SONIC_ENABLE_SECUREBOOT_SIGNATURE) \
SONIC_DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) \
ENABLE_HOST_SERVICE_ON_START=$(ENABLE_HOST_SERVICE_ON_START) \
SLAVE_DIR=$(SLAVE_DIR) \
ENABLE_AUTO_TECH_SUPPORT=$(ENABLE_AUTO_TECH_SUPPORT) \
BUILD_MULTIASIC_KVM=$(BUILD_MULTIASIC_KVM) \
MIRROR_URLS=$(MIRROR_URLS) \
MIRROR_SECURITY_URLS=$(MIRROR_SECURITY_URLS) \
MIRROR_SNAPSHOT=$(MIRROR_SNAPSHOT) \
SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \
$(SONIC_OVERRIDE_BUILD_VARS)
.PHONY: sonic-slave-build sonic-slave-bash init reset
.DEFAULT_GOAL := all
%::
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), )
@ -303,8 +332,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) && \
@ -329,8 +356,13 @@ 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
ifeq ($(MULTIARCH_QEMU_ENVIRON), y)
@$(DOCKER_MULTIARCH_CHECK)
endif
@$(OVERLAY_MODULE_CHECK)
@echo Checking sonic-slave-base image: $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG)
@docker inspect --type image $(SLAVE_BASE_IMAGE):$(SLAVE_BASE_TAG) &> /dev/null || \

View File

@ -16,7 +16,7 @@ pr:
branches:
include:
- master
- 202012
- 202111
- bullseye
paths:
exclude:
@ -28,28 +28,51 @@ 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
- name: CACHE_MODE
value: rcache
stages:
- stage: Build
- stage: BuildVS
pool: sonicbld
variables:
CACHE_MODE: rcache
${{ if eq(variables['Build.SourceBranchName'], '202012') }}:
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web,git,docker'
jobs:
- template: .azure-pipelines/azure-pipelines-build.yml
parameters:
buildOptions: 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) ${{ variables.VERSION_CONTROL_OPTIONS }}'
jobGroups:
- name: vs
- stage: Build
pool: sonicbld
dependsOn: []
jobs:
- template: .azure-pipelines/azure-pipelines-build.yml
parameters:
buildOptions: 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) ${{ variables.VERSION_CONTROL_OPTIONS }}'
jobGroups:
- name: broadcom
variables:
swi_image: yes
- name: mellanox
- name: marvell-armhf
pool: sonicbld-armhf
timeoutInMinutes: 1200
variables:
PLATFORM_ARCH: armhf
- stage: Test
dependsOn: BuildVS
condition: and(ne(stageDependencies.BuildVS.outputs['vs.SetVar.SKIP_VSTEST'], 'YES'), in(dependencies.BuildVS.result, 'Succeeded', 'SucceededWithIssues'))
variables:
- name: inventory
value: veos_vtb

View File

@ -67,6 +67,9 @@ mkdir -p $FILESYSTEM_ROOT/$PLATFORM_DIR
mkdir -p $FILESYSTEM_ROOT/$PLATFORM_DIR/x86_64-grub
touch $FILESYSTEM_ROOT/$PLATFORM_DIR/firsttime
## ensure proc is mounted
sudo mount proc /proc -t proc || true
## make / as a mountpoint in chroot env, needed by dockerd
pushd $FILESYSTEM_ROOT
sudo mount --bind . .
@ -104,6 +107,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/
@ -140,6 +144,23 @@ if [[ $CONFIGURED_ARCH == amd64 ]]; then
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install dmidecode hdparm
fi
## Sign the Linux kernel
if [ "$SONIC_ENABLE_SECUREBOOT_SIGNATURE" = "y" ]; then
if [ ! -f $SIGNING_KEY ]; then
echo "Error: SONiC linux kernel signing key missing"
exit 1
fi
if [ ! -f $SIGNING_CERT ]; then
echo "Error: SONiC linux kernel signing certificate missing"
exit 1
fi
echo '[INFO] Signing SONiC linux kernel image'
K=$FILESYSTEM_ROOT/boot/vmlinuz-${LINUX_KERNEL_VERSION}-amd64
sbsign --key $SIGNING_KEY --cert $SIGNING_CERT --output /tmp/${K##*/} ${K}
sudo cp -f /tmp/${K##*/} ${K}
fi
## Update initramfs for booting with squashfs+overlay
cat files/initramfs-tools/modules | sudo tee -a $FILESYSTEM_ROOT/etc/initramfs-tools/modules > /dev/null
@ -190,7 +211,7 @@ if [ -f platform/$CONFIGURED_PLATFORM/modules ]; then
fi
## Add mtd and uboot firmware tools package
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install u-boot-tools mtd-utils device-tree-compiler
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install u-boot-tools libubootenv-tool mtd-utils device-tree-compiler
## Install docker
echo '[INFO] Install docker'
@ -327,6 +348,14 @@ sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y in
jq \
auditd
# Have systemd create the auditd log directory
sudo mkdir -p ${FILESYSTEM_ROOT}/etc/systemd/system/auditd.service.d
sudo tee ${FILESYSTEM_ROOT}/etc/systemd/system/auditd.service.d/log-directory.conf >/dev/null <<EOF
[Service]
LogsDirectory=audit
LogsDirectoryMode=0750
EOF
if [[ $CONFIGURED_ARCH == amd64 ]]; then
## Pre-install the fundamental packages for amd64 (x86)
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install \
@ -372,7 +401,8 @@ sudo sed -i 's/LOAD_KEXEC=true/LOAD_KEXEC=false/' $FILESYSTEM_ROOT/etc/default/k
## Remove sshd host keys, and will regenerate on first sshd start
sudo rm -f $FILESYSTEM_ROOT/etc/ssh/ssh_host_*_key*
sudo cp files/sshd/host-ssh-keygen.sh $FILESYSTEM_ROOT/usr/local/bin/
sudo cp -f files/sshd/sshd.service $FILESYSTEM_ROOT/lib/systemd/system/ssh.service
sudo mkdir $FILESYSTEM_ROOT/etc/systemd/system/ssh.service.d
sudo cp files/sshd/override.conf $FILESYSTEM_ROOT/etc/systemd/system/ssh.service.d/override.conf
# Config sshd
# 1. Set 'UseDNS' to 'no'
# 2. Configure sshd to close all SSH connetions after 15 minutes of inactivity
@ -435,11 +465,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
@ -582,6 +615,7 @@ sudo rm -f $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS
sudo du -hsx $FILESYSTEM_ROOT
sudo mkdir -p $FILESYSTEM_ROOT/var/lib/docker
scripts/collect_host_image_version_files.sh $TARGET_PATH $FILESYSTEM_ROOT
sudo cp files/image_config/resolv-config/resolv.conf $FILESYSTEM_ROOT/etc/resolv.conf
sudo mksquashfs $FILESYSTEM_ROOT $FILESYSTEM_SQUASHFS -e boot -e var/lib/docker -e $PLATFORM_DIR
# Ensure admin gid is 1000

View File

@ -68,6 +68,8 @@ generate_kvm_image()
generate_onie_installer_image()
{
output_file=$OUTPUT_ONIE_IMAGE
[ -n "$1" ] && output_file=$1
# Copy platform-specific ONIE installer config files where onie-mk-demo.sh expects them
rm -rf ./installer/x86_64/platforms/
mkdir -p ./installer/x86_64/platforms/
@ -83,7 +85,7 @@ generate_onie_installer_image()
## Generate an ONIE installer image
## Note: Don't leave blank between lines. It is single line command.
./onie-mk-demo.sh $TARGET_PLATFORM $TARGET_MACHINE $TARGET_PLATFORM-$TARGET_MACHINE-$ONIEIMAGE_VERSION \
installer platform/$TARGET_MACHINE/platform.conf $OUTPUT_ONIE_IMAGE OS $IMAGE_VERSION $ONIE_IMAGE_PART_SIZE \
installer platform/$TARGET_MACHINE/platform.conf $output_file OS $IMAGE_VERSION $ONIE_IMAGE_PART_SIZE \
$ONIE_INSTALLER_PAYLOAD
}
@ -97,7 +99,7 @@ generate_device_list()
for d in `find -L ./device -maxdepth 2 -mindepth 2 -type d`; do
if [ -f $d/platform_asic ]; then
if [ "$CONFIGURED_PLATFORM" = "generic" ] || grep -Fxq "$CONFIGURED_PLATFORM" $d/platform_asic; then
if [ "$TARGET_MACHINE" = "generic" ] || grep -Fxq "$TARGET_MACHINE" $d/platform_asic; then
echo "${d##*/}" >> "$platforms_asic";
fi;
fi;
@ -119,12 +121,13 @@ if [ "$IMAGE_TYPE" = "onie" ]; then
elif [ "$IMAGE_TYPE" = "raw" ]; then
echo "Build RAW image"
tmp_output_onie_image=${OUTPUT_ONIE_IMAGE}.tmp
mkdir -p `dirname $OUTPUT_RAW_IMAGE`
sudo rm -f $OUTPUT_RAW_IMAGE
generate_device_list "./installer/$TARGET_PLATFORM/platforms_asic"
generate_onie_installer_image
generate_onie_installer_image "$tmp_output_onie_image"
echo "Creating SONiC raw partition : $OUTPUT_RAW_IMAGE of size $RAW_IMAGE_DISK_SIZE MB"
fallocate -l "$RAW_IMAGE_DISK_SIZE"M $OUTPUT_RAW_IMAGE
@ -135,8 +138,9 @@ elif [ "$IMAGE_TYPE" = "raw" ]; then
## Generate a partition dump that can be used to 'dd' in-lieu of using the onie-nos-installer
## Run the installer
## The 'build' install mode of the installer is used to generate this dump.
sudo chmod a+x $OUTPUT_ONIE_IMAGE
sudo ./$OUTPUT_ONIE_IMAGE
sudo chmod a+x $tmp_output_onie_image
sudo ./$tmp_output_onie_image
rm $tmp_output_onie_image
[ -r $OUTPUT_RAW_IMAGE ] || {
echo "Error : $OUTPUT_RAW_IMAGE not generated!"

View File

@ -1,4 +1,4 @@
sai_load_hw_config=/etc/bcm/flex/bcm56870_a0_issu/b870.6.4.1/
sai_load_hw_config=/etc/bcm/flex/bcm56870_a0_premium_issu/b870.6.4.1/
#polarity/lanemap is using TH2 style.
core_clock_frequency=1525
dpp_clock_ratio=2:3

View File

@ -1,4 +1,4 @@
sai_load_hw_config=/etc/bcm/flex/bcm56870_a0_issu/b870.6.4.1/
sai_load_hw_config=/etc/bcm/flex/bcm56870_a0_premium_issu/b870.6.4.1/
#polarity/lanemap is using TH2 style.
core_clock_frequency=1525
dpp_clock_ratio=2:3

View File

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

View File

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

View File

@ -395,7 +395,7 @@ port_phy_addr=0xff
robust_hash_disable_egress_vlan=1
robust_hash_disable_mpls=1
robust_hash_disable_vlan=1
sai_load_hw_config=/etc/bcm/flex/bcm56870_a0_issu/b870.6.4.1/
sai_load_hw_config=/etc/bcm/flex/bcm56870_a0_premium_issu/b870.6.4.1/
sai_tunnel_support=1
serdes_core_rx_polarity_flip_physical{1}=0x8
serdes_core_rx_polarity_flip_physical{5}=0x2

View File

@ -1,33 +0,0 @@
{
"chip_list": [
{
"id": "asic-0",
"chip_family": "Tofino",
"instance": 0,
"pcie_sysfs_prefix": "/sys/devices/pci0000:00/0000:00:1c.4/0000:07:00.0",
"pcie_domain": 0,
"pcie_bus": 7,
"pcie_fn": 0,
"pcie_dev": 0,
"pcie_int_mode": 1,
"sds_fw_path": "share/tofino_sds_fw/avago/firmware"
}
],
"instance": 0,
"p4_program_list": [
{
"id": "pgm-0",
"instance": 0,
"path": "switch",
"program-name": "switch",
"pd": "lib/tofinopd/switch/libpd.so",
"pd-thrift": "lib/tofinopd/switch/libpdthrift.so",
"table-config": "share/tofinopd/switch/context.json",
"tofino-bin": "share/tofinopd/switch/tofino.bin",
"switchapi": "lib/libswitchapi.so",
"sai": "lib/libsai.so",
"switchapi_port_add": false,
"non_default_port_ppgs": 5
}
]
}

View File

@ -1,16 +1,8 @@
{
"instance": 0,
"chip_list": [
{
"id": "asic-0",
"chip_family": "Tofino",
"instance": 0,
"pcie_sysfs_prefix": "/sys/devices/pci0000:00/0000:00:03.0/0000:05:00.0",
"pcie_domain": 0,
"pcie_bus": 5,
"pcie_fn": 0,
"pcie_dev": 0,
"pcie_int_mode": 1,
"sds_fw_path": "share/tofino_sds_fw/avago/firmware"
}
],
@ -27,7 +19,6 @@
}
],
"program-name": "switch",
"sai": "lib/libsai.so",
"bfrt-config": "share/switch/bf-rt.json",
"model_json_path" : "share/switch/aug_model.json",
"switchapi_port_add": false,
@ -35,5 +26,13 @@
}
]
}
],
"switch_options": [
{
"device-id": 0,
"model_json_path": "share/switch/aug_model.json",
"non_default_port_ppgs": 5,
"switchapi_port_add": false
}
]
}

View File

@ -1,33 +0,0 @@
{
"chip_list": [
{
"id": "asic-0",
"chip_family": "Tofino",
"instance": 0,
"pcie_sysfs_prefix": "/sys/devices/pci0000:00/0000:00:1c.4/0000:07:00.0",
"pcie_domain": 0,
"pcie_bus": 7,
"pcie_fn": 0,
"pcie_dev": 0,
"pcie_int_mode": 1,
"sds_fw_path": "share/tofino_sds_fw/avago/firmware"
}
],
"instance": 0,
"p4_program_list": [
{
"id": "pgm-0",
"instance": 0,
"path": "switch",
"program-name": "switch",
"pd": "lib/tofinopd/switch/libpd.so",
"pd-thrift": "lib/tofinopd/switch/libpdthrift.so",
"table-config": "share/tofinopd/switch/context.json",
"tofino-bin": "share/tofinopd/switch/tofino.bin",
"switchapi": "lib/libswitchapi.so",
"sai": "lib/libsai.so",
"switchapi_port_add": false,
"non_default_port_ppgs": 5
}
]
}

View File

@ -1,16 +1,8 @@
{
"instance": 0,
"chip_list": [
{
"id": "asic-0",
"chip_family": "Tofino",
"instance": 0,
"pcie_sysfs_prefix": "/sys/devices/pci0000:00/0000:00:03.0/0000:05:00.0",
"pcie_domain": 0,
"pcie_bus": 5,
"pcie_fn": 0,
"pcie_dev": 0,
"pcie_int_mode": 1,
"sds_fw_path": "share/tofino_sds_fw/avago/firmware"
}
],
@ -27,7 +19,6 @@
}
],
"program-name": "switch",
"sai": "lib/libsai.so",
"bfrt-config": "share/switch/bf-rt.json",
"model_json_path" : "share/switch/aug_model.json",
"switchapi_port_add": false,
@ -35,5 +26,13 @@
}
]
}
],
"switch_options": [
{
"device-id": 0,
"model_json_path": "share/switch/aug_model.json",
"non_default_port_ppgs": 5,
"switchapi_port_add": false
}
]
}

View File

@ -1,33 +0,0 @@
{
"chip_list": [
{
"id": "asic-0",
"chip_family": "Tofino",
"instance": 0,
"pcie_sysfs_prefix": "/sys/devices/pci0000:00/0000:00:1c.4/0000:07:00.0",
"pcie_domain": 0,
"pcie_bus": 7,
"pcie_fn": 0,
"pcie_dev": 0,
"pcie_int_mode": 1,
"sds_fw_path": "share/tofino_sds_fw/avago/firmware"
}
],
"instance": 0,
"p4_program_list": [
{
"id": "pgm-0",
"instance": 0,
"path": "switch",
"program-name": "switch",
"pd": "lib/tofinopd/switch/libpd.so",
"pd-thrift": "lib/tofinopd/switch/libpdthrift.so",
"table-config": "share/tofinopd/switch/context.json",
"tofino-bin": "share/tofinopd/switch/tofino.bin",
"switchapi": "lib/libswitchapi.so",
"sai": "lib/libsai.so",
"switchapi_port_add": false,
"non_default_port_ppgs": 5
}
]
}

View File

@ -1,16 +1,8 @@
{
"instance": 0,
"chip_list": [
{
"id": "asic-0",
"chip_family": "Tofino",
"instance": 0,
"pcie_sysfs_prefix": "/sys/devices/pci0000:00/0000:00:03.0/0000:05:00.0",
"pcie_domain": 0,
"pcie_bus": 5,
"pcie_fn": 0,
"pcie_dev": 0,
"pcie_int_mode": 1,
"sds_fw_path": "share/tofino_sds_fw/avago/firmware"
}
],
@ -27,7 +19,6 @@
}
],
"program-name": "switch",
"sai": "lib/libsai.so",
"bfrt-config": "share/switch/bf-rt.json",
"model_json_path" : "share/switch/aug_model.json",
"switchapi_port_add": false,
@ -35,5 +26,13 @@
}
]
}
],
"switch_options": [
{
"device-id": 0,
"model_json_path": "share/switch/aug_model.json",
"non_default_port_ppgs": 5,
"switchapi_port_add": false
}
]
}

View File

@ -1,33 +0,0 @@
{
"chip_list": [
{
"id": "asic-0",
"chip_family": "Tofino",
"instance": 0,
"pcie_sysfs_prefix": "/sys/devices/pci0000:00/0000:00:1c.4/0000:07:00.0",
"pcie_domain": 0,
"pcie_bus": 7,
"pcie_fn": 0,
"pcie_dev": 0,
"pcie_int_mode": 1,
"sds_fw_path": "share/tofino_sds_fw/avago/firmware"
}
],
"instance": 0,
"p4_program_list": [
{
"id": "pgm-0",
"instance": 0,
"path": "switch",
"program-name": "switch",
"pd": "lib/tofinopd/switch/libpd.so",
"pd-thrift": "lib/tofinopd/switch/libpdthrift.so",
"table-config": "share/tofinopd/switch/context.json",
"tofino-bin": "share/tofinopd/switch/tofino.bin",
"switchapi": "lib/libswitchapi.so",
"sai": "lib/libsai.so",
"switchapi_port_add": false,
"non_default_port_ppgs": 5
}
]
}

View File

@ -1,16 +1,8 @@
{
"instance": 0,
"chip_list": [
{
"id": "asic-0",
"chip_family": "Tofino",
"instance": 0,
"pcie_sysfs_prefix": "/sys/devices/pci0000:00/0000:00:03.0/0000:05:00.0",
"pcie_domain": 0,
"pcie_bus": 5,
"pcie_fn": 0,
"pcie_dev": 0,
"pcie_int_mode": 1,
"sds_fw_path": "share/tofino_sds_fw/avago/firmware"
}
],
@ -27,7 +19,6 @@
}
],
"program-name": "switch",
"sai": "lib/libsai.so",
"bfrt-config": "share/switch/bf-rt.json",
"model_json_path" : "share/switch/aug_model.json",
"switchapi_port_add": false,
@ -35,5 +26,13 @@
}
]
}
],
"switch_options": [
{
"device-id": 0,
"model_json_path": "share/switch/aug_model.json",
"non_default_port_ppgs": 5,
"switchapi_port_add": false
}
]
}

View File

@ -25,28 +25,16 @@
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet32": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet34": {
"default_brkout_mode": "2x50G[25G,10G]"
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet36": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet38": {
"default_brkout_mode": "2x50G[25G,10G]"
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet40": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet42": {
"default_brkout_mode": "2x50G[25G,10G]"
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet44": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet46": {
"default_brkout_mode": "2x50G[25G,10G]"
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet48": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
@ -91,16 +79,10 @@
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet104": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet106": {
"default_brkout_mode": "2x50G[25G,10G]"
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet108": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet110": {
"default_brkout_mode": "2x50G[25G,10G]"
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet112": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
@ -151,28 +133,16 @@
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet176": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet178": {
"default_brkout_mode": "2x50G[25G,10G]"
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet180": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet182": {
"default_brkout_mode": "2x50G[25G,10G]"
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet184": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet186": {
"default_brkout_mode": "2x50G[25G,10G]"
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet188": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet190": {
"default_brkout_mode": "2x50G[25G,10G]"
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet192": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
@ -211,22 +181,22 @@
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet240": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet242": {
"default_brkout_mode": "2x50G[25G,10G]"
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet244": {
"default_brkout_mode": "2x50G[25G,10G]"
},
"Ethernet246": {
"default_brkout_mode": "2x50G[25G,10G]"
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet248": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet252": {
"default_brkout_mode": "1x100G[50G,40G,25G,10G]"
},
"Ethernet256": {
"default_brkout_mode": "1x10G"
},
"Ethernet257": {
"default_brkout_mode": "1x10G"
}
}
}
}

View File

@ -0,0 +1 @@
Arista-7170B-64C t1

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
barefoot

View File

@ -0,0 +1 @@
../x86_64-arista_common/platform_reboot

View File

@ -0,0 +1 @@
../x86_64-arista_common/plugins

View File

@ -0,0 +1 @@
../x86_64-arista_common/pmon_daemon_control.json

View File

@ -0,0 +1 @@
../x86_64-arista_common/system_health_monitoring_config.json

View File

@ -0,0 +1 @@
../x86_64-arista_common/thermal_policy.json

View File

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

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 @@
../x86_64-arista_7800r3_48cq2_lc/platform.json

View File

@ -1,17 +1,9 @@
{
"instance": 0,
"chip_list": [
{
"id": "asic-0",
"chip_family": "Tofino2",
"instance": 0,
"pcie_sysfs_prefix": "/sys/devices/pci0000:00/0000:00:03.0/0000:05:00.0",
"pcie_domain": 0,
"pcie_bus": 5,
"pcie_fn": 0,
"pcie_dev": 0,
"pcie_int_mode": 1,
"sds_fw_path": "share/tofino_sds_fw/avago/firmware"
"sds_fw_path": "share/tofino_sds_fw/avago/firmware",
"instance": 0
}
],
"p4_devices": [
@ -20,21 +12,28 @@
"agent0": "lib/platform/x86_64-accton_as9516bf_32d-r0/libpltfm_mgr.so",
"p4_programs": [
{
"program-name": "switch",
"bfrt-config": "share/switch/bf-rt.json",
"p4_pipelines": [
{
"p4_pipeline_name": "pipe",
"config": "share/switch/pipe/tofino2.bin",
"context": "share/switch/pipe/context.json"
}
],
"program-name": "switch",
"sai": "lib/libsai.so",
"bfrt-config": "share/switch/bf-rt.json",
],
"model_json_path" : "share/switch/aug_model.json",
"switchapi_port_add": false,
"non_default_port_ppgs": 5
}
]
}
],
"switch_options": [
{
"device-id": 0,
"model_json_path": "share/switch/aug_model.json",
"non_default_port_ppgs": 5,
"switchapi_port_add": false
}
]
}

View File

@ -1,69 +1,190 @@
{
"chassis": {
"name": "Newport",
"fans": [
"components": [
{
"name": "counter-rotating-fan-1"
"name": "BIOS"
},
{
"name": "counter-rotating-fan-2"
},
{
"name": "counter-rotating-fan-3"
},
{
"name": "counter-rotating-fan-4"
},
{
"name": "counter-rotating-fan-5"
},
{
"name": "counter-rotating-fan-6"
"name": "BMC"
}
],
"fan_drawers":[
"thermal_manager": false,
"fans": [
{
"name": "fantray",
"num_fans" : 6,
"name": "counter-rotating-fan-1",
"status_led": {
"controllable": false
},
"speed": {
"controllable": false
}
},
{
"name": "counter-rotating-fan-2",
"status_led": {
"controllable": false
},
"speed": {
"controllable": false
}
},
{
"name": "counter-rotating-fan-3",
"status_led": {
"controllable": false
},
"speed": {
"controllable": false
}
},
{
"name": "counter-rotating-fan-4",
"status_led": {
"controllable": false
},
"speed": {
"controllable": false
}
},
{
"name": "counter-rotating-fan-5",
"status_led": {
"controllable": false
},
"speed": {
"controllable": false
}
},
{
"name": "counter-rotating-fan-6",
"status_led": {
"controllable": false
},
"speed": {
"controllable": false
}
}
],
"fan_drawers": [
{
"name": "fantray-1",
"status_led": {
"controllable": false
},
"fans": [
{
"name": "counter-rotating-fan-1"
"name": "counter-rotating-fan-1",
"status_led": {
"controllable": false
},
"speed": {
"controllable": false
}
},
{
"name": "counter-rotating-fan-2"
"name": "counter-rotating-fan-2",
"status_led": {
"controllable": false
},
"speed": {
"controllable": false
}
},
{
"name": "counter-rotating-fan-3"
"name": "counter-rotating-fan-3",
"status_led": {
"controllable": false
},
"speed": {
"controllable": false
}
},
{
"name": "counter-rotating-fan-4"
"name": "counter-rotating-fan-4",
"status_led": {
"controllable": false
},
"speed": {
"controllable": false
}
},
{
"name": "counter-rotating-fan-5"
"name": "counter-rotating-fan-5",
"status_led": {
"controllable": false
},
"speed": {
"controllable": false
}
},
{
"name": "counter-rotating-fan-6"
"name": "counter-rotating-fan-6",
"status_led": {
"controllable": false
},
"speed": {
"controllable": false
}
}
]
}
],
"psus": [
{
"name": "psu-1"
"name": "psu-1",
"temperature": false
},
{
"name": "psu-2"
"name": "psu-2",
"temperature": false
}
],
"thermals": [
{
"name": "tmp75-i2c-3-4b:switch-temp"
"name": "com_e_driver-i2c-4-33:cpu-temp"
},
{
"name": "com_e_driver-i2c-4-33:memory-temp"
},
{
"name": "com_e_driver-i2c-4-33:cpu-temp"
"name": "psu_driver-i2c-7-59:psu2-temp1"
},
{
"name": "psu_driver-i2c-7-59:psu2-temp2"
},
{
"name": "psu_driver-i2c-7-59:psu2-temp3"
},
{
"name": "psu_driver-i2c-7-5a:psu1-temp1"
},
{
"name": "psu_driver-i2c-7-5a:psu1-temp2"
},
{
"name": "psu_driver-i2c-7-5a:psu1-temp3"
},
{
"name": "tmp75-i2c-3-48:chip-temp"
},
{
"name": "tmp75-i2c-3-49:exhaust2-temp"
},
{
"name": "tmp75-i2c-3-4a:exhaust-temp"
},
{
"name": "tmp75-i2c-3-4b:intake-temp"
},
{
"name": "tmp75-i2c-3-4c:tofino-temp"
},
{
"name": "tmp75-i2c-3-4d:intake2-temp"
},
{
"name": "coretemp-isa-0000:package-id-0"
},
{
"name": "coretemp-isa-0000:core-0"
@ -76,128 +197,104 @@
},
{
"name": "coretemp-isa-0000:core-3"
},
{
"name": "coretemp-isa-0000:package-id-0"
},
{
"name": "psu_driver-i2c-7-5a:psu1-temp1"
},
{
"name": "psu_driver-i2c-7-5a:psu1-temp2"
},
{
"name": "psu_driver-i2c-7-5a:psu1-temp3"
},
{
"name": "tmp75-i2c-3-4a:inlet-left-temp"
},
{
"name": "tmp75-i2c-3-4c:inlet-right-temp"
},
{
"name": "tmp75-i2c-3-4d:temp1"
},
{
"name": "tmp75-i2c-3-48:outlet-middle-temp"
},
{
"name": "tmp75-i2c-3-49:inlet-middle-temp"
}
],
"sfps": [
{
"name": "Ethernet0"
"name": "sfp1"
},
{
"name": "Ethernet8"
"name": "sfp2"
},
{
"name": "Ethernet16"
"name": "sfp3"
},
{
"name": "Ethernet32"
"name": "sfp4"
},
{
"name": "Ethernet40"
"name": "sfp5"
},
{
"name": "Ethernet48"
"name": "sfp6"
},
{
"name": "Ethernet56"
"name": "sfp7"
},
{
"name": "Ethernet64"
"name": "sfp8"
},
{
"name": "Ethernet72"
"name": "sfp9"
},
{
"name": "Ethernet80"
"name": "sfp10"
},
{
"name": "Ethernet88"
"name": "sfp11"
},
{
"name": "Ethernet96"
"name": "sfp12"
},
{
"name": "Ethernet104"
"name": "sfp13"
},
{
"name": "Ethernet112"
"name": "sfp14"
},
{
"name": "Ethernet120"
"name": "sfp15"
},
{
"name": "Ethernet128"
"name": "sfp16"
},
{
"name": "Ethernet136"
"name": "sfp17"
},
{
"name": "Ethernet144"
"name": "sfp18"
},
{
"name": "Ethernet152"
"name": "sfp19"
},
{
"name": "Ethernet160"
"name": "sfp20"
},
{
"name": "Ethernet168"
"name": "sfp21"
},
{
"name": "Ethernet176"
"name": "sfp22"
},
{
"name": "Ethernet184"
"name": "sfp23"
},
{
"name": "Ethernet192"
"name": "sfp24"
},
{
"name": "Ethernet200"
"name": "sfp25"
},
{
"name": "Ethernet208"
"name": "sfp26"
},
{
"name": "Ethernet216"
"name": "sfp27"
},
{
"name": "Ethernet224"
"name": "sfp28"
},
{
"name": "Ethernet232"
"name": "sfp29"
},
{
"name": "Ethernet240"
"name": "sfp30"
},
{
"name": "Ethernet248"
"name": "sfp31"
},
{
"name": "sfp32"
}
]
},
@ -207,7 +304,7 @@
"lanes": "0,1,2,3,4,5,6,7",
"breakout_modes": {
"1x400G[200G]": ["Ethernet0"],
"2x200G[100G,40G]": ["Ethernet0, Ethernet4"],
"2x200G[100G,40G]": ["Ethernet0", "Ethernet4"],
"4x100G[50G]": ["Ethernet0", "Ethernet2", "Ethernet4", "Ethernet6"],
"8x50G[25G,10G]": ["Ethernet0", "Ethernet1", "Ethernet2", "Ethernet3", "Ethernet4", "Ethernet5", "Ethernet6", "Ethernet7"],
"1x200G[100G,40G](4)+4x50G[25G,10G](4)": ["Ethernet0", "Ethernet4", "Ethernet5", "Ethernet6", "Ethernet7"],
@ -587,4 +684,4 @@
}
}
}
}
}

View File

@ -1,8 +1,10 @@
{
"chassis": {
"Newport": {
"component": {
}
}
}
{
"chassis": {
"Newport": {
"component": {
"BIOS": { },
"BMC": { }
}
}
}
}

View File

@ -4,6 +4,6 @@
"skip_thermalctld": false,
"skip_ledd": true,
"skip_xcvrd": false,
"skip_psud": true,
"skip_psud": false,
"skip_syseepromd": false
}

View File

@ -0,0 +1,11 @@
{
"services_to_ignore": [],
"devices_to_ignore": [],
"user_defined_checkers": [],
"polling_interval": 60,
"led_color": {
"fault": "amber",
"normal": "green",
"booting": "orange_blink"
}
}

View File

@ -0,0 +1,61 @@
{
"thermals": [
{
"com_e_driver-i2c-4-33:cpu-temp" : [99.0, 89.0, 11.0, 1.0]
},
{
"com_e_driver-i2c-4-33:memory-temp" : [85.0, 75.0, 11.0, 1.0]
},
{
"tmp75-i2c-3-48:chip-temp" : [90.0, 80.0, 11.0, 1.0]
},
{
"tmp75-i2c-3-49:exhaust2-temp" : [80.0, 70.0, 11.0, 1.0]
},
{
"tmp75-i2c-3-4a:exhaust-temp" : [60.0, 50.0, 11.0, 1.0]
},
{
"tmp75-i2c-3-4b:intake-temp" : [60.0, 50.0, 11.0, 1.0]
},
{
"tmp75-i2c-3-4c:tofino-temp" : [99.0, 89.0, 11.0, 1.0]
},
{
"tmp75-i2c-3-4d:intake2-temp" : [60.0, 50.0, 11.0, 1.0]
},
{
"coretemp-isa-0000:package-id-0" : [80.0, 70.0, 11.0, 1.0]
},
{
"coretemp-isa-0000:core-0" : [99.0, 89.0, 11.0, 1.0]
},
{
"coretemp-isa-0000:core-1" : [99.0, 89.0, 11.0, 1.0]
},
{
"coretemp-isa-0000:core-2" : [99.0, 89.0, 11.0, 1.0]
},
{
"coretemp-isa-0000:core-3" : [99.0, 89.0, 11.0, 1.0]
},
{
"psu_driver-i2c-7-59:psu2-temp1" : [60.0, 50.0, 11.0, 1.0]
},
{
"psu_driver-i2c-7-59:psu2-temp2" : [60.0, 50.0, 11.0, 1.0]
},
{
"psu_driver-i2c-7-59:psu2-temp3" : [60.0, 50.0, 11.0, 1.0]
},
{
"psu_driver-i2c-7-5a:psu1-temp1" : [60.0, 50.0, 11.0, 1.0]
},
{
"psu_driver-i2c-7-5a:psu1-temp2" : [60.0, 50.0, 11.0, 1.0]
},
{
"psu_driver-i2c-7-5a:psu1-temp3" : [60.0, 50.0, 11.0, 1.0]
}
]
}

View File

@ -1,34 +0,0 @@
{
"chip_list": [
{
"id": "asic-0",
"chip_family": "Tofino",
"instance": 0,
"pcie_sysfs_prefix": "/sys/devices/pci0000:00/0000:00:03.0/0000:05:00.0",
"pcie_domain": 0,
"pcie_bus": 5,
"pcie_fn": 0,
"pcie_dev": 0,
"pcie_int_mode": 1,
"sds_fw_path": "share/tofino_sds_fw/avago/firmware"
}
],
"instance": 0,
"p4_program_list": [
{
"id": "pgm-0",
"instance": 0,
"path": "switch",
"program-name": "switch",
"pd": "lib/tofinopd/switch/libpd.so",
"pd-thrift": "lib/tofinopd/switch/libpdthrift.so",
"table-config": "share/tofinopd/switch/context.json",
"tofino-bin": "share/tofinopd/switch/tofino.bin",
"switchapi": "lib/libswitchapi.so",
"sai": "lib/libsai.so",
"agent0": "lib/platform/x86_64-accton_wedge100bf_32x-r0/libpltfm_mgr.so",
"switchapi_port_add": false,
"non_default_port_ppgs": 5
}
]
}

View File

@ -1,17 +1,9 @@
{
"instance": 0,
"chip_list": [
{
"id": "asic-0",
"chip_family": "Tofino",
"instance": 0,
"pcie_sysfs_prefix": "/sys/devices/pci0000:00/0000:00:03.0/0000:05:00.0",
"pcie_domain": 0,
"pcie_bus": 5,
"pcie_fn": 0,
"pcie_dev": 0,
"pcie_int_mode": 1,
"sds_fw_path": "share/tofino_sds_fw/avago/firmware"
"sds_fw_path": "share/tofino_sds_fw/avago/firmware",
"instance": 0
}
],
"p4_devices": [
@ -28,7 +20,6 @@
}
],
"program-name": "switch",
"sai": "lib/libsai.so",
"bfrt-config": "share/switch/bf-rt.json",
"model_json_path" : "share/switch/aug_model.json",
"switchapi_port_add": false,
@ -36,5 +27,13 @@
}
]
}
],
"switch_options": [
{
"device-id": 0,
"model_json_path": "share/switch/aug_model.json",
"non_default_port_ppgs": 5,
"switchapi_port_add": false
}
]
}

View File

@ -1,6 +1,14 @@
{
"chassis": {
"name": "Wedge100BF-32X-O-AC-F-BF",
"components": [
{
"name": "BIOS"
},
{
"name": "BMC"
}
],
"fans": [
{
"name": "counter-rotating-fan-1"
@ -18,10 +26,9 @@
"name": "counter-rotating-fan-5"
}
],
"fan_drawers":[
"fan_drawers": [
{
"name": "fantray",
"num_fans" : 5,
"name": "fantray-1",
"fans": [
{
"name": "counter-rotating-fan-1"
@ -50,38 +57,41 @@
}
],
"thermals": [
{
"name": "com_e_driver-i2c-4-33:memory-temp"
},
{
"name": "com_e_driver-i2c-4-33:cpu-temp"
},
{
"name": "pfe1100-i2c-7-59:temp1"
"name": "com_e_driver-i2c-4-33:memory-temp"
},
{
"name": "pfe1100-i2c-7-59:temp2"
"name": "psu_driver-i2c-7-59:psu2-temp1"
},
{
"name": "pfe1100-i2c-7-5a:temp1"
"name": "psu_driver-i2c-7-59:psu2-temp2"
},
{
"name": "pfe1100-i2c-7-5a:temp2"
"name": "psu_driver-i2c-7-5a:psu1-temp1"
},
{
"name": "tmp75-i2c-3-48:outlet-middle-temp"
"name": "psu_driver-i2c-7-5a:psu1-temp2"
},
{
"name": "tmp75-i2c-3-49:inlet-middle-temp"
"name": "tmp75-i2c-3-48:chip-temp"
},
{
"name": "tmp75-i2c-3-4a:inlet-left-temp"
"name": "tmp75-i2c-3-49:exhaust2-temp"
},
{
"name": "tmp75-i2c-3-4b:switch-temp"
"name": "tmp75-i2c-3-4a:exhaust-temp"
},
{
"name": "tmp75-i2c-3-4c:inlet-right-temp"
"name": "tmp75-i2c-3-4b:intake-temp"
},
{
"name": "tmp75-i2c-3-4c:tofino-temp"
},
{
"name": "tmp75-i2c-3-4d:intake2-temp"
},
{
"name": "tmp75-i2c-8-48:outlet-right-temp"
@ -89,6 +99,9 @@
{
"name": "tmp75-i2c-8-49:outlet-left-temp"
},
{
"name": "pch_haswell-virtual-0:temp1"
},
{
"name": "coretemp-isa-0000:package-id-0"
},
@ -103,107 +116,104 @@
},
{
"name": "coretemp-isa-0000:core-3"
},
{
"name": "pch_haswell-virtual-0:temp1"
}
],
"sfps": [
{
"name": "Ethernet0"
"name": "sfp1"
},
{
"name": "Ethernet4"
"name": "sfp2"
},
{
"name": "Ethernet8"
"name": "sfp3"
},
{
"name": "Ethernet12"
"name": "sfp4"
},
{
"name": "Ethernet16"
"name": "sfp5"
},
{
"name": "Ethernet20"
"name": "sfp6"
},
{
"name": "Ethernet24"
"name": "sfp7"
},
{
"name": "Ethernet28"
"name": "sfp8"
},
{
"name": "Ethernet32"
"name": "sfp9"
},
{
"name": "Ethernet36"
"name": "sfp10"
},
{
"name": "Ethernet40"
"name": "sfp11"
},
{
"name": "Ethernet44"
"name": "sfp12"
},
{
"name": "Ethernet48"
"name": "sfp13"
},
{
"name": "Ethernet52"
"name": "sfp14"
},
{
"name": "Ethernet56"
"name": "sfp15"
},
{
"name": "Ethernet60"
"name": "sfp16"
},
{
"name": "Ethernet64"
"name": "sfp17"
},
{
"name": "Ethernet68"
"name": "sfp18"
},
{
"name": "Ethernet72"
"name": "sfp19"
},
{
"name": "Ethernet76"
"name": "sfp20"
},
{
"name": "Ethernet80"
"name": "sfp21"
},
{
"name": "Ethernet84"
"name": "sfp22"
},
{
"name": "Ethernet88"
"name": "sfp23"
},
{
"name": "Ethernet92"
"name": "sfp24"
},
{
"name": "Ethernet96"
"name": "sfp25"
},
{
"name": "Ethernet100"
"name": "sfp26"
},
{
"name": "Ethernet104"
"name": "sfp27"
},
{
"name": "Ethernet108"
"name": "sfp28"
},
{
"name": "Ethernet112"
"name": "sfp29"
},
{
"name": "Ethernet116"
"name": "sfp30"
},
{
"name": "Ethernet120"
"name": "sfp31"
},
{
"name": "Ethernet124"
"name": "sfp32"
}
]
},

View File

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

View File

@ -0,0 +1,11 @@
{
"services_to_ignore": [],
"devices_to_ignore": [],
"user_defined_checkers": [],
"polling_interval": 60,
"led_color": {
"fault": "amber",
"normal": "green",
"booting": "orange_blink"
}
}

View File

@ -0,0 +1,64 @@
{
"thermals": [
{
"com_e_driver-i2c-4-33:cpu-temp" : [99.0, 89.0, 11.0, 1.0]
},
{
"com_e_driver-i2c-4-33:memory-temp" : [85.0, 75.0, 11.0, 1.0]
},
{
"psu_driver-i2c-7-59:psu2-temp1" : [50.0, 40.0, 11.0, 1.0]
},
{
"psu_driver-i2c-7-59:psu2-temp2" : [90.0, 80.0, 11.0, 1.0]
},
{
"psu_driver-i2c-7-5a:psu1-temp1" : [50.0, 40.0, 11.0, 1.0]
},
{
"psu_driver-i2c-7-5a:psu1-temp2" : [90.0, 80.0, 11.0, 1.0]
},
{
"tmp75-i2c-3-48:chip-temp" : [90.0, 80.0, 11.0, 1.0]
},
{
"tmp75-i2c-3-49:exhaust2-temp" : [80.0, 70.0, 11.0, 1.0]
},
{
"tmp75-i2c-3-4a:exhaust-temp" : [60.0, 50.0, 11.0, 1.0]
},
{
"tmp75-i2c-3-4b:intake-temp" : [60.0, 50.0, 11.0, 1.0]
},
{
"tmp75-i2c-3-4c:tofino-temp" : [99.0, 89.0, 11.0, 1.0]
},
{
"tmp75-i2c-3-4d:intake2-temp" : [60.0, 50.0, 11.0, 1.0]
},
{
"tmp75-i2c-8-48:outlet-right-temp" : [60.0, 50.0, 11.0, 1.0]
},
{
"tmp75-i2c-8-49:outlet-left-temp" : [60.0, 50.0, 11.0, 1.0]
},
{
"pch_haswell-virtual-0:temp1" : [60.0, 50.0, 11.0, 1.0]
},
{
"coretemp-isa-0000:package-id-0" : [80.0, 70.0, 11.0, 1.0]
},
{
"coretemp-isa-0000:core-0" : [99.0, 89.0, 11.0, 1.0]
},
{
"coretemp-isa-0000:core-1" : [99.0, 89.0, 11.0, 1.0]
},
{
"coretemp-isa-0000:core-2" : [99.0, 89.0, 11.0, 1.0]
},
{
"coretemp-isa-0000:core-3" : [99.0, 89.0, 11.0, 1.0]
}
]
}

View File

@ -1,34 +0,0 @@
{
"chip_list": [
{
"id": "asic-0",
"chip_family": "Tofino",
"instance": 0,
"pcie_sysfs_prefix": "/sys/devices/pci0000:00/0000:00:03.0/0000:05:00.0",
"pcie_domain": 0,
"pcie_bus": 5,
"pcie_fn": 0,
"pcie_dev": 0,
"pcie_int_mode": 1,
"sds_fw_path": "share/tofino_sds_fw/avago/firmware"
}
],
"instance": 0,
"p4_program_list": [
{
"id": "pgm-0",
"instance": 0,
"path": "switch",
"program-name": "switch",
"pd": "lib/tofinopd/switch/libpd.so",
"pd-thrift": "lib/tofinopd/switch/libpdthrift.so",
"table-config": "share/tofinopd/switch/context.json",
"tofino-bin": "share/tofinopd/switch/tofino.bin",
"switchapi": "lib/libswitchapi.so",
"sai": "lib/libsai.so",
"agent0": "lib/platform/x86_64-accton_wedge100bf_65x-r0/libpltfm_mgr.so",
"switchapi_port_add": false,
"non_default_port_ppgs": 5
}
]
}

View File

@ -1,17 +1,9 @@
{
"instance": 0,
"chip_list": [
{
"id": "asic-0",
"chip_family": "Tofino",
"instance": 0,
"pcie_sysfs_prefix": "/sys/devices/pci0000:00/0000:00:03.0/0000:05:00.0",
"pcie_domain": 0,
"pcie_bus": 5,
"pcie_fn": 0,
"pcie_dev": 0,
"pcie_int_mode": 1,
"sds_fw_path": "share/tofino_sds_fw/avago/firmware"
"sds_fw_path": "share/tofino_sds_fw/avago/firmware",
"instance": 0
}
],
"p4_devices": [
@ -28,7 +20,6 @@
}
],
"program-name": "switch",
"sai": "lib/libsai.so",
"bfrt-config": "share/switch/bf-rt.json",
"model_json_path" : "share/switch/aug_model.json",
"switchapi_port_add": false,
@ -36,5 +27,13 @@
}
]
}
],
"switch_options": [
{
"device-id": 0,
"model_json_path": "share/switch/aug_model.json",
"non_default_port_ppgs": 5,
"switchapi_port_add": false
}
]
}

View File

@ -1,4 +1,89 @@
{
"chassis": {
"name": "Mavericks",
"fans": [
{
"name": "counter-rotating-fan-1"
},
{
"name": "counter-rotating-fan-2"
},
{
"name": "counter-rotating-fan-3"
},
{
"name": "counter-rotating-fan-4"
},
{
"name": "counter-rotating-fan-5"
},
{
"name": "counter-rotating-fan-6"
},
{
"name": "counter-rotating-fan-7"
},
{
"name": "counter-rotating-fan-8"
},
{
"name": "counter-rotating-fan-9"
},
{
"name": "counter-rotating-fan-10"
}
],
"fan_drawers": [
{
"name": "fantray-1",
"fans": [
{
"name": "counter-rotating-fan-1"
},
{
"name": "counter-rotating-fan-2"
},
{
"name": "counter-rotating-fan-3"
},
{
"name": "counter-rotating-fan-4"
},
{
"name": "counter-rotating-fan-5"
}
]
},
{
"name": "fantray-2",
"fans": [
{
"name": "counter-rotating-fan-6"
},
{
"name": "counter-rotating-fan-7"
},
{
"name": "counter-rotating-fan-8"
},
{
"name": "counter-rotating-fan-9"
},
{
"name": "counter-rotating-fan-10"
}
]
}
]
},
"psus": [
{
"name": "psu-1"
},
{
"name": "psu-2"
}
],
"interfaces": {
"Ethernet0": {
"index": "1,1,1,1",

View File

@ -0,0 +1,11 @@
{
"services_to_ignore": [],
"devices_to_ignore": [],
"user_defined_checkers": [],
"polling_interval": 60,
"led_color": {
"fault": "amber",
"normal": "green",
"booting": "orange_blink"
}
}

View File

@ -1,6 +1,5 @@
{# Default values which will be used if no actual configura available #}
{% set default_cable = '300m' %}
{% set default_ports_num = 64 -%}
{% set default_cable = '40m' %}
{# Port configuration to cable length look-up table #}
{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #}
@ -12,44 +11,53 @@
}
%}
{%- macro cable_length(port_name) -%}
{%- set cable_len = [] -%}
{%- for local_port in DEVICE_NEIGHBOR -%}
{%- if local_port == port_name -%}
{%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%}
{%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%}
{%- set neighbor_role = neighbor.type -%}
{%- macro cable_length(port_name) %}
{%- set cable_len = [] %}
{%- for local_port in DEVICE_NEIGHBOR %}
{%- if local_port == port_name %}
{%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %}
{%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %}
{%- set neighbor_role = neighbor.type %}
{%- set roles1 = switch_role + '_' + neighbor_role %}
{%- set roles2 = neighbor_role + '_' + switch_role -%}
{%- set roles1 = roles1 | lower -%}
{%- set roles2 = roles2 | lower -%}
{%- if roles1 in ports2cable -%}
{%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%}
{%- elif roles2 in ports2cable -%}
{%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%}
{%- endif -%}
{%- endif -%}
{%- endif -%}
{%- endfor -%}
{%- set roles2 = neighbor_role + '_' + switch_role %}
{%- set roles1 = roles1 | lower %}
{%- set roles2 = roles2 | lower %}
{%- if roles1 in ports2cable %}
{%- if cable_len.append(ports2cable[roles1]) %}{% endif %}
{%- elif roles2 in ports2cable %}
{%- if cable_len.append(ports2cable[roles2]) %}{% endif %}
{%- endif %}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- if cable_len -%}
{{ cable_len.0 }}
{%- else -%}
{{ default_cable }}
{%- endif -%}
{% endmacro %}
{%- else %}
{%- if switch_role.lower() == 'torrouter' %}
{%- for local_port in VLAN_MEMBER %}
{%- if local_port[1] == port_name %}
{%- set roles3 = switch_role + '_' + 'server' %}
{%- set roles3 = roles3 | lower %}
{%- if roles3 in ports2cable %}
{%- if cable_len.append(ports2cable[roles3]) %}{% endif %}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- if cable_len -%}
{{ cable_len.0 }}
{%- else -%}
{{ default_cable }}
{%- endif %}
{%- else -%}
{{ default_cable }}
{%- endif %}
{%- endif %}
{%- endmacro %}
{%- if DEVICE_METADATA is defined %}
{%- set switch_role = DEVICE_METADATA['localhost']['type'] %}
{%- endif -%}
{# Generate list of ports if not defined #}
{% if PORT is not defined %}
{% set PORT = [] %}
{% for port_idx in range(0,default_ports_num) %}
{% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %}
{% endfor %}
{% endif -%}
{% set port_names_list = [] %}
{% for port in PORT %}
{%- if port_names_list.append(port) %}{% endif %}
@ -57,6 +65,15 @@
{% set port_names = port_names_list | join(',') -%}
{
"CABLE_LENGTH": {
"AZURE": {
{% for port in PORT %}
{% set cable = cable_length(port) -%}
"{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %}
{% endfor %}
}
},
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "47218432",
@ -64,57 +81,81 @@
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"lossy_pool": {
"size": "18874368",
"type": "egress",
"mode": "dynamic",
"xoff": "0"
},
"egress_lossless_pool": {
"size": "66092800",
"type": "egress"
}
},
"BUFFER_PROFILE": {
"ingress_lossless_profile": {
"pool":"ingress_lossless_pool",
"xoff":"1433600",
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
"xoff":"38816",
"size":"1518",
"dynamic_th":"-4",
"xon_offset":"6272"
},
"ingress_lossy_profile": {
"pool":"ingress_lossless_pool",
"size":"0",
"static_th":"9721600"
"dynamic_th":"1",
"xon_offset":"9408"
},
"egress_lossless_profile": {
"pool":"egress_lossy_pool",
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
"size":"0",
"static_th":"9721600"
"static_th":"9497600"
},
"ingress_lossy_profile": {
"pool":"[BUFFER_POOL|lossy_pool]",
"size":"0",
"static_th":"9497600"
},
"egress_lossy_profile": {
"pool":"egress_lossy_pool",
"pool":"[BUFFER_POOL|lossy_pool]",
"size":"1518",
"dynamic_th":"3"
"dynamic_th":"2"
}
},
"BUFFER_PG": {
"{{ port_names }}|0-3": {
"profile" : "egress_lossless_profile"
},
"{{ port_names }}|4-5": {
"profile" : "ingress_lossless_profile"
},
"{{ port_names }}|6-7": {
"profile" : "egress_lossless_profile"
}
{% for port in port_names_list %}
"{{ port }}|3-4": {
"profile" : "[BUFFER_PROFILE|ingress_lossless_profile]"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|1-2": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|5-7": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
}{% if not loop.last %},{% endif %}
{% endfor %}
},
"BUFFER_QUEUE": {
"{{ port_names }}|4-5": {
"profile" : "ingress_lossy_profile"
{% for port in port_names_list %}
"{{ port }}|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"{{ port_names }}|0-3": {
"profile" : "egress_lossy_profile"
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"{{ port_names }}|6-7": {
"profile" : "egress_lossy_profile"
}
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|5-7": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
}{% if not loop.last %},{% endif %}
{% endfor %}
}
}

View File

@ -0,0 +1,42 @@
{% set port_names_list = [] %}
{% for port in PORT %}
{%- if port_names_list.append(port) %}{% endif %}
{% endfor %}
{% set port_names = port_names_list | join(',') -%}
{
"BUFFER_POOL": {
"lossy_pool": {
"size": "56985600",
"type": "egress",
"mode": "dynamic",
"xoff": "0"
}
},
"BUFFER_PROFILE": {
"ingress_lossy_profile": {
"pool":"[BUFFER_POOL|lossy_pool]",
"size":"0",
"static_th":"9497600"
},
"egress_lossy_profile": {
"pool":"[BUFFER_POOL|lossy_pool]",
"size":"1518",
"dynamic_th":"2"
}
},
"BUFFER_PG": {
{% for port in port_names_list %}
"{{ port }}|0-7": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
}{% if not loop.last %},{% endif %}
{% endfor %}
},
"BUFFER_QUEUE": {
{% for port in port_names_list %}
"{{ port }}|0-7": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
}{% if not loop.last %},{% endif %}
{% endfor %}
}
}

View File

@ -0,0 +1,161 @@
{# Default values which will be used if no actual configura available #}
{% set default_cable = '40m' %}
{# Port configuration to cable length look-up table #}
{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #}
{# Roles described in the minigraph #}
{% set ports2cable = {
'torrouter_server' : '5m',
'leafrouter_torrouter' : '40m',
'spinerouter_leafrouter' : '300m'
}
%}
{%- macro cable_length(port_name) %}
{%- set cable_len = [] %}
{%- for local_port in DEVICE_NEIGHBOR %}
{%- if local_port == port_name %}
{%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %}
{%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %}
{%- set neighbor_role = neighbor.type %}
{%- set roles1 = switch_role + '_' + neighbor_role %}
{%- set roles2 = neighbor_role + '_' + switch_role %}
{%- set roles1 = roles1 | lower %}
{%- set roles2 = roles2 | lower %}
{%- if roles1 in ports2cable %}
{%- if cable_len.append(ports2cable[roles1]) %}{% endif %}
{%- elif roles2 in ports2cable %}
{%- if cable_len.append(ports2cable[roles2]) %}{% endif %}
{%- endif %}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- if cable_len -%}
{{ cable_len.0 }}
{%- else %}
{%- if switch_role.lower() == 'torrouter' %}
{%- for local_port in VLAN_MEMBER %}
{%- if local_port[1] == port_name %}
{%- set roles3 = switch_role + '_' + 'server' %}
{%- set roles3 = roles3 | lower %}
{%- if roles3 in ports2cable %}
{%- if cable_len.append(ports2cable[roles3]) %}{% endif %}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- if cable_len -%}
{{ cable_len.0 }}
{%- else -%}
{{ default_cable }}
{%- endif %}
{%- else -%}
{{ default_cable }}
{%- endif %}
{%- endif %}
{%- endmacro %}
{%- if DEVICE_METADATA is defined %}
{%- set switch_role = DEVICE_METADATA['localhost']['type'] %}
{%- endif -%}
{% set port_names_list = [] %}
{% for port in PORT %}
{%- if port_names_list.append(port) %}{% endif %}
{% endfor %}
{% set port_names = port_names_list | join(',') -%}
{
"CABLE_LENGTH": {
"AZURE": {
{% for port in PORT %}
{% set cable = cable_length(port) -%}
"{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %}
{% endfor %}
}
},
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"lossy_pool": {
"size": "18874368",
"type": "egress",
"mode": "dynamic",
"xoff": "0"
},
"egress_lossless_pool": {
"size": "66092800",
"type": "egress"
}
},
"BUFFER_PROFILE": {
"ingress_lossless_profile": {
"pool":"ingress_lossless_pool",
"xoff":"38816",
"size":"1518",
"dynamic_th":"1",
"xon_offset":"9408"
},
"egress_lossless_profile": {
"pool":"ingress_lossless_pool",
"size":"0",
"static_th":"9497600"
},
"ingress_lossy_profile": {
"pool":"lossy_pool",
"size":"0",
"static_th":"9497600"
},
"egress_lossy_profile": {
"pool":"lossy_pool",
"size":"1518",
"dynamic_th":"2"
}
},
"BUFFER_PG": {
{% for port in port_names_list %}
"{{ port }}|3-4": {
"profile" : "ingress_lossless_profile"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|0": {
"profile" : "ingress_lossy_profile"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|1-2": {
"profile" : "ingress_lossy_profile"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|5-7": {
"profile" : "ingress_lossy_profile"
}{% if not loop.last %},{% endif %}
{% endfor %}
},
"BUFFER_QUEUE": {
{% for port in port_names_list %}
"{{ port }}|3-4": {
"profile" : "egress_lossless_profile"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|0-2": {
"profile" : "egress_lossy_profile"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|5-7": {
"profile" : "egress_lossy_profile"
}{% if not loop.last %},{% endif %}
{% endfor %}
}
}

View File

@ -4,12 +4,20 @@ ifcs:
nodes:
- node_id: "0"
options:
sd_low_power_mode_global_default: "true"
sku: "innovium.77700_B"
netdev:
- auto_create: "no"
multi_interface: "yes"
buffer_management_mode: "api_driven"
wred_cr_ip_proto_list: "17"
cr_assignment_mode: "1"
max_lossless_tc: "2"
pcie_attn: "14"
pcie_post: "18"
pcie_pre1: "0"
ilpm_enable: "1"
forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E"
txring:
- txring_id: "0"
desc_count: "1024"
@ -57,452 +65,452 @@ nodes:
sysport: "128"
type: "cpu"
- fec: "KRFEC"
id: "1"
id: "249"
lanes: "0:4"
serdes_group: "31"
speed: "100G"
sysport: "1"
sysport: "249"
type: "eth"
- fec: "KRFEC"
id: "2"
id: "253"
lanes: "4:4"
serdes_group: "31"
speed: "100G"
sysport: "2"
sysport: "253"
type: "eth"
- fec: "KRFEC"
id: "3"
id: "245"
lanes: "4:4"
serdes_group: "30"
speed: "100G"
sysport: "3"
sysport: "245"
type: "eth"
- fec: "KRFEC"
id: "4"
id: "241"
lanes: "0:4"
serdes_group: "30"
speed: "100G"
sysport: "4"
sysport: "241"
type: "eth"
- fec: "KRFEC"
id: "5"
id: "233"
lanes: "0:4"
serdes_group: "29"
speed: "100G"
sysport: "5"
sysport: "233"
type: "eth"
- fec: "KRFEC"
id: "6"
id: "237"
lanes: "4:4"
serdes_group: "29"
speed: "100G"
sysport: "6"
sysport: "237"
type: "eth"
- fec: "KRFEC"
id: "7"
id: "229"
lanes: "4:4"
serdes_group: "28"
speed: "100G"
sysport: "7"
sysport: "229"
type: "eth"
- fec: "KRFEC"
id: "8"
id: "225"
lanes: "0:4"
serdes_group: "28"
speed: "100G"
sysport: "8"
sysport: "225"
type: "eth"
- fec: "KRFEC"
id: "9"
id: "217"
lanes: "0:4"
serdes_group: "27"
speed: "100G"
sysport: "9"
sysport: "217"
type: "eth"
- fec: "KRFEC"
id: "10"
id: "221"
lanes: "4:4"
serdes_group: "27"
speed: "100G"
sysport: "10"
sysport: "221"
type: "eth"
- fec: "KRFEC"
id: "11"
id: "213"
lanes: "4:4"
serdes_group: "26"
speed: "100G"
sysport: "11"
sysport: "213"
type: "eth"
- fec: "KRFEC"
id: "12"
id: "209"
lanes: "0:4"
serdes_group: "26"
speed: "100G"
sysport: "12"
sysport: "209"
type: "eth"
- fec: "KRFEC"
id: "13"
id: "201"
lanes: "0:4"
serdes_group: "25"
speed: "100G"
sysport: "13"
sysport: "201"
type: "eth"
- fec: "KRFEC"
id: "14"
id: "205"
lanes: "4:4"
serdes_group: "25"
speed: "100G"
sysport: "14"
sysport: "205"
type: "eth"
- fec: "KRFEC"
id: "15"
id: "197"
lanes: "4:4"
serdes_group: "24"
speed: "100G"
sysport: "15"
sysport: "197"
type: "eth"
- fec: "KRFEC"
id: "16"
id: "193"
lanes: "0:4"
serdes_group: "24"
speed: "100G"
sysport: "16"
sysport: "193"
type: "eth"
- fec: "KRFEC"
id: "17"
id: "185"
lanes: "0:4"
serdes_group: "23"
speed: "100G"
sysport: "17"
sysport: "185"
type: "eth"
- fec: "KRFEC"
id: "18"
id: "189"
lanes: "4:4"
serdes_group: "23"
speed: "100G"
sysport: "18"
sysport: "189"
type: "eth"
- fec: "KRFEC"
id: "19"
id: "181"
lanes: "4:4"
serdes_group: "22"
speed: "100G"
sysport: "19"
sysport: "181"
type: "eth"
- fec: "KRFEC"
id: "20"
id: "177"
lanes: "0:4"
serdes_group: "22"
speed: "100G"
sysport: "20"
sysport: "177"
type: "eth"
- fec: "KRFEC"
id: "21"
id: "169"
lanes: "0:4"
serdes_group: "21"
speed: "100G"
sysport: "21"
sysport: "169"
type: "eth"
- fec: "KRFEC"
id: "22"
id: "173"
lanes: "4:4"
serdes_group: "21"
speed: "100G"
sysport: "22"
sysport: "173"
type: "eth"
- fec: "KRFEC"
id: "23"
id: "165"
lanes: "4:4"
serdes_group: "20"
speed: "100G"
sysport: "23"
sysport: "165"
type: "eth"
- fec: "KRFEC"
id: "24"
id: "161"
lanes: "0:4"
serdes_group: "20"
speed: "100G"
sysport: "24"
sysport: "161"
type: "eth"
- fec: "KRFEC"
id: "25"
id: "153"
lanes: "0:4"
serdes_group: "19"
speed: "100G"
sysport: "25"
sysport: "153"
type: "eth"
- fec: "KRFEC"
id: "26"
id: "157"
lanes: "4:4"
serdes_group: "19"
speed: "100G"
sysport: "26"
sysport: "157"
type: "eth"
- fec: "KRFEC"
id: "27"
id: "149"
lanes: "4:4"
serdes_group: "18"
speed: "100G"
sysport: "27"
sysport: "149"
type: "eth"
- fec: "KRFEC"
id: "28"
id: "145"
lanes: "0:4"
serdes_group: "18"
speed: "100G"
sysport: "28"
sysport: "145"
type: "eth"
- fec: "KRFEC"
id: "29"
id: "137"
lanes: "0:4"
serdes_group: "17"
speed: "100G"
sysport: "29"
sysport: "137"
type: "eth"
- fec: "KRFEC"
id: "30"
id: "141"
lanes: "4:4"
serdes_group: "17"
speed: "100G"
sysport: "30"
sysport: "141"
type: "eth"
- fec: "KRFEC"
id: "31"
id: "133"
lanes: "4:4"
serdes_group: "16"
speed: "100G"
sysport: "31"
sysport: "133"
type: "eth"
- fec: "KRFEC"
id: "32"
id: "129"
lanes: "0:4"
serdes_group: "16"
speed: "100G"
sysport: "32"
sysport: "129"
type: "eth"
- fec: "KRFEC"
id: "33"
id: "121"
lanes: "0:4"
serdes_group: "15"
speed: "100G"
sysport: "33"
sysport: "121"
type: "eth"
- fec: "KRFEC"
id: "34"
id: "125"
lanes: "4:4"
serdes_group: "15"
speed: "100G"
sysport: "34"
sysport: "125"
type: "eth"
- fec: "KRFEC"
id: "35"
id: "117"
lanes: "4:4"
serdes_group: "14"
speed: "100G"
sysport: "35"
sysport: "117"
type: "eth"
- fec: "KRFEC"
id: "36"
id: "113"
lanes: "0:4"
serdes_group: "14"
speed: "100G"
sysport: "36"
sysport: "113"
type: "eth"
- fec: "KRFEC"
id: "37"
id: "105"
lanes: "0:4"
serdes_group: "13"
speed: "100G"
sysport: "37"
sysport: "105"
type: "eth"
- fec: "KRFEC"
id: "38"
id: "109"
lanes: "4:4"
serdes_group: "13"
speed: "100G"
sysport: "38"
sysport: "109"
type: "eth"
- fec: "KRFEC"
id: "39"
id: "101"
lanes: "4:4"
serdes_group: "12"
speed: "100G"
sysport: "39"
sysport: "101"
type: "eth"
- fec: "KRFEC"
id: "40"
id: "97"
lanes: "0:4"
serdes_group: "12"
speed: "100G"
sysport: "40"
sysport: "97"
type: "eth"
- fec: "KRFEC"
id: "41"
id: "89"
lanes: "0:4"
serdes_group: "11"
speed: "100G"
sysport: "41"
sysport: "89"
type: "eth"
- fec: "KRFEC"
id: "42"
id: "93"
lanes: "4:4"
serdes_group: "11"
speed: "100G"
sysport: "42"
sysport: "93"
type: "eth"
- fec: "KRFEC"
id: "43"
id: "85"
lanes: "4:4"
serdes_group: "10"
speed: "100G"
sysport: "43"
sysport: "85"
type: "eth"
- fec: "KRFEC"
id: "44"
id: "81"
lanes: "0:4"
serdes_group: "10"
speed: "100G"
sysport: "44"
sysport: "81"
type: "eth"
- fec: "KRFEC"
id: "45"
id: "73"
lanes: "0:4"
serdes_group: "9"
speed: "100G"
sysport: "45"
sysport: "73"
type: "eth"
- fec: "KRFEC"
id: "46"
id: "77"
lanes: "4:4"
serdes_group: "9"
speed: "100G"
sysport: "46"
sysport: "77"
type: "eth"
- fec: "KRFEC"
id: "47"
id: "69"
lanes: "4:4"
serdes_group: "8"
speed: "100G"
sysport: "47"
sysport: "69"
type: "eth"
- fec: "KRFEC"
id: "48"
id: "65"
lanes: "0:4"
serdes_group: "8"
speed: "100G"
sysport: "48"
type: "eth"
- fec: "KRFEC"
id: "49"
lanes: "0:4"
serdes_group: "7"
speed: "100G"
sysport: "49"
type: "eth"
- fec: "KRFEC"
id: "50"
lanes: "4:4"
serdes_group: "7"
speed: "100G"
sysport: "50"
type: "eth"
- fec: "KRFEC"
id: "51"
lanes: "4:4"
serdes_group: "6"
speed: "100G"
sysport: "51"
type: "eth"
- fec: "KRFEC"
id: "52"
lanes: "0:4"
serdes_group: "6"
speed: "100G"
sysport: "52"
type: "eth"
- fec: "KRFEC"
id: "53"
lanes: "0:4"
serdes_group: "5"
speed: "100G"
sysport: "53"
type: "eth"
- fec: "KRFEC"
id: "54"
lanes: "4:4"
serdes_group: "5"
speed: "100G"
sysport: "54"
type: "eth"
- fec: "KRFEC"
id: "55"
lanes: "4:4"
serdes_group: "4"
speed: "100G"
sysport: "55"
type: "eth"
- fec: "KRFEC"
id: "56"
lanes: "0:4"
serdes_group: "4"
speed: "100G"
sysport: "56"
sysport: "65"
type: "eth"
- fec: "KRFEC"
id: "57"
lanes: "0:4"
serdes_group: "3"
serdes_group: "7"
speed: "100G"
sysport: "57"
type: "eth"
- fec: "KRFEC"
id: "58"
lanes: "4:4"
serdes_group: "3"
speed: "100G"
sysport: "58"
type: "eth"
- fec: "KRFEC"
id: "59"
lanes: "4:4"
serdes_group: "2"
speed: "100G"
sysport: "59"
type: "eth"
- fec: "KRFEC"
id: "60"
lanes: "0:4"
serdes_group: "2"
speed: "100G"
sysport: "60"
type: "eth"
- fec: "KRFEC"
id: "61"
lanes: "0:4"
serdes_group: "1"
lanes: "4:4"
serdes_group: "7"
speed: "100G"
sysport: "61"
type: "eth"
- fec: "KRFEC"
id: "62"
id: "53"
lanes: "4:4"
serdes_group: "6"
speed: "100G"
sysport: "53"
type: "eth"
- fec: "KRFEC"
id: "49"
lanes: "0:4"
serdes_group: "6"
speed: "100G"
sysport: "49"
type: "eth"
- fec: "KRFEC"
id: "41"
lanes: "0:4"
serdes_group: "5"
speed: "100G"
sysport: "41"
type: "eth"
- fec: "KRFEC"
id: "45"
lanes: "4:4"
serdes_group: "5"
speed: "100G"
sysport: "45"
type: "eth"
- fec: "KRFEC"
id: "37"
lanes: "4:4"
serdes_group: "4"
speed: "100G"
sysport: "37"
type: "eth"
- fec: "KRFEC"
id: "33"
lanes: "0:4"
serdes_group: "4"
speed: "100G"
sysport: "33"
type: "eth"
- fec: "KRFEC"
id: "25"
lanes: "0:4"
serdes_group: "3"
speed: "100G"
sysport: "25"
type: "eth"
- fec: "KRFEC"
id: "29"
lanes: "4:4"
serdes_group: "3"
speed: "100G"
sysport: "29"
type: "eth"
- fec: "KRFEC"
id: "21"
lanes: "4:4"
serdes_group: "2"
speed: "100G"
sysport: "21"
type: "eth"
- fec: "KRFEC"
id: "17"
lanes: "0:4"
serdes_group: "2"
speed: "100G"
sysport: "17"
type: "eth"
- fec: "KRFEC"
id: "9"
lanes: "0:4"
serdes_group: "1"
speed: "100G"
sysport: "9"
type: "eth"
- fec: "KRFEC"
id: "13"
lanes: "4:4"
serdes_group: "1"
speed: "100G"
sysport: "62"
sysport: "13"
type: "eth"
- fec: "KRFEC"
id: "63"
id: "5"
lanes: "4:4"
serdes_group: "0"
speed: "100G"
sysport: "63"
sysport: "5"
type: "eth"
- fec: "KRFEC"
id: "64"
id: "1"
lanes: "0:4"
serdes_group: "0"
speed: "100G"
sysport: "64"
sysport: "1"
type: "eth"
isg:
- id: "0"

View File

@ -5,6 +5,7 @@ device_id: 0x1b58
# Hardware constraint information
hardware:
num_ibs: 6
ib_active: 0,1,2,3,4,5
ports_per_ib: 32, 32, 32, 32, 20, 20
recirc_port_num: 32, 32, 32, 32, 32, 32

View File

@ -0,0 +1,8 @@
IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_64x100G_midstone200i.yaml"
IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_B"
IFCS_INNO_CLI_PORT : "9999"
IFCS_TARGET : "device"
INNOVIUM_DIR : "/innovium"
PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes:$INNOVIUM_DIR/ifcs_cmds:$INNOVIUM_DIR/testutil"
IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml"
IVM_SAI_PARAM_A0008: "32"

View File

@ -0,0 +1,9 @@
ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880"
ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218"
ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98"
ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960"
ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920"
ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938"
ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478"
ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98"
ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126"

View File

@ -0,0 +1,22 @@
# PG lossless profiles.
# speed cable size xon xoff threshold xon_offset
25000 5m 1518 0 15680 1 9408
50000 5m 1518 0 21248 1 9408
100000 5m 1518 0 34624 1 9408
200000 5m 1518 0 62368 1 9408
400000 5m 1518 0 117536 1 9408
25000 40m 1518 0 16928 1 9408
50000 40m 1518 0 23392 1 9408
100000 40m 1518 0 38816 1 9408
200000 40m 1518 0 71904 1 9408
400000 40m 1518 0 135520 1 9408
25000 100m 1518 0 18848 1 9408
50000 100m 1518 0 27264 1 9408
100000 100m 1518 0 46496 1 9408
200000 100m 1518 0 87168 1 9408
400000 100m 1518 0 166688 1 9408
25000 300m 1518 0 25184 1 9408
50000 300m 1518 0 40128 1 9408
100000 300m 1518 0 72384 1 9408
200000 300m 1518 0 138112 1 9408
400000 300m 1518 0 268640 1 9408

View File

@ -1,65 +1,65 @@
# name lanes speed index mtu
Ethernet0 249,250,251,252 100000 1 9126
Ethernet4 253,254,255,256 100000 2 9126
Ethernet8 245,246,247,248 100000 3 9126
Ethernet12 241,242,243,244 100000 4 9126
Ethernet16 233,234,235,236 100000 5 9126
Ethernet20 237,238,239,240 100000 6 9126
Ethernet24 229,230,231,232 100000 7 9126
Ethernet28 225,226,227,228 100000 8 9126
Ethernet32 217,218,219,220 100000 9 9126
Ethernet36 221,222,223,224 100000 10 9126
Ethernet40 213,214,215,216 100000 11 9126
Ethernet44 209,210,211,212 100000 12 9126
Ethernet48 201,202,203,204 100000 13 9126
Ethernet52 205,206,207,208 100000 14 9126
Ethernet56 197,198,199,200 100000 15 9126
Ethernet60 193,194,195,196 100000 16 9126
Ethernet64 185,186,187,188 100000 17 9126
Ethernet68 189,190,191,192 100000 18 9126
Ethernet72 181,182,183,184 100000 19 9126
Ethernet76 177,178,179,180 100000 20 9126
Ethernet80 169,170,171,172 100000 21 9126
Ethernet84 173,174,175,176 100000 22 9126
Ethernet88 165,166,167,168 100000 23 9126
Ethernet92 161,162,163,164 100000 24 9126
Ethernet96 153,154,155,156 100000 25 9126
Ethernet100 157,158,159,160 100000 26 9126
Ethernet104 149,150,151,152 100000 27 9126
Ethernet108 145,146,147,148 100000 28 9126
Ethernet112 137,138,139,140 100000 29 9126
Ethernet116 141,142,143,144 100000 30 9126
Ethernet120 133,134,135,136 100000 31 9126
Ethernet124 129,130,131,132 100000 32 9126
Ethernet128 121,122,123,124 100000 33 9126
Ethernet132 125,126,127,128 100000 34 9126
Ethernet136 117,118,119,120 100000 35 9126
Ethernet140 113,114,115,116 100000 36 9126
Ethernet144 105,106,107,108 100000 37 9126
Ethernet148 109,110,111,112 100000 38 9126
Ethernet152 101,102,103,104 100000 39 9126
Ethernet156 97,98,99,100 100000 40 9126
Ethernet160 89,90,91,92 100000 41 9126
Ethernet164 93,94,95,96 100000 42 9126
Ethernet168 85,86,87,88 100000 43 9126
Ethernet172 81,82,83,84 100000 44 9126
Ethernet176 73,74,75,76 100000 45 9126
Ethernet180 77,78,79,80 100000 46 9126
Ethernet184 69,70,71,72 100000 47 9126
Ethernet188 65,66,67,68 100000 48 9126
Ethernet192 57,58,59,60 100000 49 9126
Ethernet196 61,62,63,64 100000 50 9126
Ethernet200 53,54,55,56 100000 51 9126
Ethernet204 49,50,51,52 100000 52 9126
Ethernet208 41,42,43,44 100000 53 9126
Ethernet212 45,46,47,48 100000 54 9126
Ethernet216 37,38,39,40 100000 55 9126
Ethernet220 33,34,35,36 100000 56 9126
Ethernet224 25,26,27,28 100000 57 9126
Ethernet228 29,30,31,32 100000 58 9126
Ethernet232 21,22,23,24 100000 59 9126
Ethernet236 17,18,19,20 100000 60 9126
Ethernet240 9,10,11,12 100000 61 9126
Ethernet244 13,14,15,16 100000 62 9126
Ethernet248 5,6,7,8 100000 63 9126
Ethernet252 1,2,3,4 100000 64 9126
Ethernet0 249,250,251,252 100000 0 9126
Ethernet4 253,254,255,256 100000 1 9126
Ethernet8 245,246,247,248 100000 2 9126
Ethernet12 241,242,243,244 100000 3 9126
Ethernet16 233,234,235,236 100000 4 9126
Ethernet20 237,238,239,240 100000 5 9126
Ethernet24 229,230,231,232 100000 6 9126
Ethernet28 225,226,227,228 100000 7 9126
Ethernet32 217,218,219,220 100000 8 9126
Ethernet36 221,222,223,224 100000 9 9126
Ethernet40 213,214,215,216 100000 10 9126
Ethernet44 209,210,211,212 100000 11 9126
Ethernet48 201,202,203,204 100000 12 9126
Ethernet52 205,206,207,208 100000 13 9126
Ethernet56 197,198,199,200 100000 14 9126
Ethernet60 193,194,195,196 100000 15 9126
Ethernet64 185,186,187,188 100000 16 9126
Ethernet68 189,190,191,192 100000 17 9126
Ethernet72 181,182,183,184 100000 18 9126
Ethernet76 177,178,179,180 100000 19 9126
Ethernet80 169,170,171,172 100000 20 9126
Ethernet84 173,174,175,176 100000 21 9126
Ethernet88 165,166,167,168 100000 22 9126
Ethernet92 161,162,163,164 100000 23 9126
Ethernet96 153,154,155,156 100000 24 9126
Ethernet100 157,158,159,160 100000 25 9126
Ethernet104 149,150,151,152 100000 26 9126
Ethernet108 145,146,147,148 100000 27 9126
Ethernet112 137,138,139,140 100000 28 9126
Ethernet116 141,142,143,144 100000 29 9126
Ethernet120 133,134,135,136 100000 30 9126
Ethernet124 129,130,131,132 100000 31 9126
Ethernet128 121,122,123,124 100000 32 9126
Ethernet132 125,126,127,128 100000 33 9126
Ethernet136 117,118,119,120 100000 34 9126
Ethernet140 113,114,115,116 100000 35 9126
Ethernet144 105,106,107,108 100000 36 9126
Ethernet148 109,110,111,112 100000 37 9126
Ethernet152 101,102,103,104 100000 38 9126
Ethernet156 97,98,99,100 100000 39 9126
Ethernet160 89,90,91,92 100000 40 9126
Ethernet164 93,94,95,96 100000 41 9126
Ethernet168 85,86,87,88 100000 42 9126
Ethernet172 81,82,83,84 100000 43 9126
Ethernet176 73,74,75,76 100000 44 9126
Ethernet180 77,78,79,80 100000 45 9126
Ethernet184 69,70,71,72 100000 46 9126
Ethernet188 65,66,67,68 100000 47 9126
Ethernet192 57,58,59,60 100000 48 9126
Ethernet196 61,62,63,64 100000 49 9126
Ethernet200 53,54,55,56 100000 50 9126
Ethernet204 49,50,51,52 100000 51 9126
Ethernet208 41,42,43,44 100000 52 9126
Ethernet212 45,46,47,48 100000 53 9126
Ethernet216 37,38,39,40 100000 54 9126
Ethernet220 33,34,35,36 100000 55 9126
Ethernet224 25,26,27,28 100000 56 9126
Ethernet228 29,30,31,32 100000 57 9126
Ethernet232 21,22,23,24 100000 58 9126
Ethernet236 17,18,19,20 100000 59 9126
Ethernet240 9,10,11,12 100000 60 9126
Ethernet244 13,14,15,16 100000 61 9126
Ethernet248 5,6,7,8 100000 62 9126
Ethernet252 1,2,3,4 100000 63 9126

View File

@ -1,14 +1,3 @@
{# Default values which will be used if no actual configura available #}
{% set default_ports_num = 64 -%}
{# Generate list of ports if not defined #}
{% if PORT is not defined %}
{% set PORT = [] %}
{% for port_idx in range(0,default_ports_num) %}
{% if PORT.append("Ethernet%d" % (port_idx*4)) %}{% endif %}
{% endfor %}
{% endif -%}
{% set port_names_list = [] %}
{% for port in PORT %}
{%- if port_names_list.append(port) %}{% endif %}
@ -19,102 +8,122 @@
{
"TC_TO_QUEUE_MAP":{
"AZURE":{
"1":"1",
"0":"0",
"3":"3",
"1":"1",
"2":"2",
"5":"5",
"3":"3",
"4":"4",
"7":"7",
"6":"6"
"5":"5",
"6":"6",
"7":"7"
}
},
"TC_TO_PRIORITY_GROUP_MAP": {
"AZURE": {
"1": "0",
"0": "0",
"3": "0",
"1": "0",
"2": "0",
"4": "1",
"5": "2",
"3": "3",
"4": "4",
"5": "0",
"6": "0",
"7": "0"
}
},
"DSCP_TO_TC_MAP": {
"AZURE": {
"0":"0",
"1":"0",
"2":"0",
"3":"0",
"4":"4",
"5":"5",
"6":"0",
"7":"0",
"8":"1",
"9":"0",
"10":"0",
"11":"0",
"12":"0",
"13":"0",
"14":"0",
"15":"0",
"16":"0",
"17":"0",
"18":"0",
"19":"0",
"20":"0",
"21":"0",
"22":"0",
"23":"0",
"24":"0",
"25":"0",
"26":"0",
"27":"0",
"28":"0",
"29":"0",
"30":"0",
"31":"0",
"32":"0",
"33":"0",
"34":"0",
"35":"0",
"36":"0",
"37":"0",
"38":"0",
"39":"0",
"40":"0",
"41":"0",
"42":"0",
"43":"0",
"44":"0",
"45":"0",
"46":"0",
"47":"0",
"48":"0",
"49":"0",
"50":"0",
"51":"0",
"52":"0",
"53":"0",
"54":"0",
"55":"0",
"56":"0",
"57":"0",
"58":"0",
"59":"0",
"60":"0",
"61":"0",
"62":"0",
"63":"0"
"0" : "1",
"1" : "1",
"2" : "1",
"3" : "3",
"4" : "4",
"5" : "2",
"6" : "1",
"7" : "1",
"8" : "0",
"9" : "1",
"10": "1",
"11": "1",
"12": "1",
"13": "1",
"14": "1",
"15": "1",
"16": "1",
"17": "1",
"18": "1",
"19": "1",
"20": "1",
"21": "1",
"22": "1",
"23": "1",
"24": "1",
"25": "1",
"26": "1",
"27": "1",
"28": "1",
"29": "1",
"30": "1",
"31": "1",
"32": "1",
"33": "1",
"34": "1",
"35": "1",
"36": "1",
"37": "1",
"38": "1",
"39": "1",
"40": "1",
"41": "1",
"42": "1",
"43": "1",
"44": "1",
"45": "1",
"46": "5",
"47": "1",
"48": "6",
"49": "1",
"50": "1",
"51": "1",
"52": "1",
"53": "1",
"54": "1",
"55": "1",
"56": "1",
"57": "1",
"58": "1",
"59": "1",
"60": "1",
"61": "1",
"62": "1",
"63": "1"
}
},
"PORT_QOS_MAP": {
"{{ port_names }}": {
"tc_to_pg_map": "AZURE",
"tc_to_queue_map": "AZURE",
"dscp_to_tc_map": "AZURE",
"pfc_enable": "4,5"
{% for port in port_names_list %}
"{{ port }}": {
"tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"tc_to_queue_map": "[TC_TO_QUEUE_MAP|AZURE]",
"dscp_to_tc_map": "[DSCP_TO_TC_MAP|AZURE]",
"pfc_enable": "3,4"
}{% if not loop.last %},{% endif %}
{% endfor %}
},
"WRED_PROFILE": {
"AZURE_LOSSLESS" : {
"wred_green_enable" : "true",
"wred_yellow_enable" : "true",
"wred_red_enable" : "true",
"ecn" : "ecn_all",
"green_max_threshold" : "2097152",
"green_min_threshold" : "1048576",
"yellow_max_threshold" : "2097152",
"yellow_min_threshold" : "1048576",
"red_max_threshold" : "2097152",
"red_min_threshold" : "1048576",
"green_drop_probability" : "5",
"yellow_drop_probability": "5",
"red_drop_probability" : "5"
}
}
}

View File

@ -0,0 +1,121 @@
{% set port_names_list = [] %}
{% for port in PORT %}
{%- if port_names_list.append(port) %}{% endif %}
{% endfor %}
{% set port_names = port_names_list | join(',') -%}
{
"TC_TO_QUEUE_MAP":{
"AZURE":{
"0":"0",
"1":"1",
"2":"2",
"3":"3",
"4":"4",
"5":"5",
"6":"6",
"7":"7"
}
},
"TC_TO_PRIORITY_GROUP_MAP": {
"AZURE": {
"0": "0",
"1": "0",
"2": "0",
"3": "1",
"4": "2",
"5": "0",
"6": "0",
"7": "0"
}
},
"DSCP_TO_TC_MAP": {
"AZURE": {
"0":"0",
"1":"0",
"2":"0",
"3":"0",
"4":"0",
"5":"0",
"6":"0",
"7":"0",
"8":"0",
"9":"0",
"10":"0",
"11":"0",
"12":"0",
"13":"0",
"14":"0",
"15":"0",
"16":"0",
"17":"0",
"18":"0",
"19":"0",
"20":"0",
"21":"0",
"22":"0",
"23":"0",
"24":"0",
"25":"0",
"26":"0",
"27":"0",
"28":"0",
"29":"0",
"30":"0",
"31":"0",
"32":"0",
"33":"0",
"34":"0",
"35":"0",
"36":"0",
"37":"0",
"38":"0",
"39":"0",
"40":"0",
"41":"0",
"42":"0",
"43":"0",
"44":"0",
"45":"0",
"46":"0",
"47":"0",
"48":"0",
"49":"0",
"50":"0",
"51":"0",
"52":"0",
"53":"0",
"54":"0",
"55":"0",
"56":"0",
"57":"0",
"58":"0",
"59":"0",
"60":"0",
"61":"0",
"62":"0",
"63":"0"
}
},
"PORT_QOS_MAP": {
{% for port in port_names_list %}
"{{ port }}": {
"tc_to_pg_map": "[TC_TO_PRIORITY_GROUP_MAP|AZURE]",
"tc_to_queue_map": "[TC_TO_QUEUE_MAP|AZURE]",
"dscp_to_tc_map": "[DSCP_TO_TC_MAP|AZURE]"
}{% if not loop.last %},{% endif %}
{% endfor %}
},
"SCHEDULER": {
"scheduler.7": {
"type": "STRICT"
}
},
"QUEUE": {
"{{ port_names }}|7": {
"scheduler": "[SCHEDULER|scheduler.7]"
}
}
}

View File

@ -0,0 +1,129 @@
{% set port_names_list = [] %}
{% for port in PORT %}
{%- if port_names_list.append(port) %}{% endif %}
{% endfor %}
{% set port_names = port_names_list | join(',') -%}
{
"TC_TO_QUEUE_MAP":{
"AZURE":{
"0":"0",
"1":"1",
"2":"2",
"3":"3",
"4":"4",
"5":"5",
"6":"6",
"7":"7"
}
},
"TC_TO_PRIORITY_GROUP_MAP": {
"AZURE": {
"0": "0",
"1": "0",
"2": "0",
"3": "3",
"4": "4",
"5": "0",
"6": "0",
"7": "0"
}
},
"DSCP_TO_TC_MAP": {
"AZURE": {
"0" : "1",
"1" : "1",
"2" : "1",
"3" : "3",
"4" : "4",
"5" : "2",
"6" : "1",
"7" : "1",
"8" : "0",
"9" : "1",
"10": "1",
"11": "1",
"12": "1",
"13": "1",
"14": "1",
"15": "1",
"16": "1",
"17": "1",
"18": "1",
"19": "1",
"20": "1",
"21": "1",
"22": "1",
"23": "1",
"24": "1",
"25": "1",
"26": "1",
"27": "1",
"28": "1",
"29": "1",
"30": "1",
"31": "1",
"32": "1",
"33": "1",
"34": "1",
"35": "1",
"36": "1",
"37": "1",
"38": "1",
"39": "1",
"40": "1",
"41": "1",
"42": "1",
"43": "1",
"44": "1",
"45": "1",
"46": "5",
"47": "1",
"48": "6",
"49": "1",
"50": "1",
"51": "1",
"52": "1",
"53": "1",
"54": "1",
"55": "1",
"56": "1",
"57": "1",
"58": "1",
"59": "1",
"60": "1",
"61": "1",
"62": "1",
"63": "1"
}
},
"PORT_QOS_MAP": {
{% for port in port_names_list %}
"{{ port }}": {
"tc_to_pg_map": "AZURE",
"tc_to_queue_map": "AZURE",
"dscp_to_tc_map": "AZURE",
"pfc_enable": "3,4"
}{% if not loop.last %},{% endif %}
{% endfor %}
},
"WRED_PROFILE": {
"AZURE_LOSSLESS" : {
"wred_green_enable" : "true",
"wred_yellow_enable" : "true",
"wred_red_enable" : "true",
"ecn" : "ecn_all",
"green_max_threshold" : "2097152",
"green_min_threshold" : "1048576",
"yellow_max_threshold" : "2097152",
"yellow_min_threshold" : "1048576",
"red_max_threshold" : "2097152",
"red_min_threshold" : "1048576",
"green_drop_probability" : "5",
"yellow_drop_probability": "5",
"red_drop_probability" : "5"
}
}
}

View File

@ -1 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/inno.config.yaml
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/ivm.sai.config.yaml

View File

@ -1,6 +1,5 @@
{# Default values which will be used if no actual configura available #}
{% set default_cable = '300m' %}
{% set default_ports_num = 128 -%}
{% set default_cable = '40m' %}
{# Port configuration to cable length look-up table #}
{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #}
@ -12,44 +11,53 @@
}
%}
{%- macro cable_length(port_name) -%}
{%- set cable_len = [] -%}
{%- for local_port in DEVICE_NEIGHBOR -%}
{%- if local_port == port_name -%}
{%- if DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%}
{%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] -%}
{%- set neighbor_role = neighbor.type -%}
{%- macro cable_length(port_name) %}
{%- set cable_len = [] %}
{%- for local_port in DEVICE_NEIGHBOR %}
{%- if local_port == port_name %}
{%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %}
{%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %}
{%- set neighbor_role = neighbor.type %}
{%- set roles1 = switch_role + '_' + neighbor_role %}
{%- set roles2 = neighbor_role + '_' + switch_role -%}
{%- set roles1 = roles1 | lower -%}
{%- set roles2 = roles2 | lower -%}
{%- if roles1 in ports2cable -%}
{%- if cable_len.append(ports2cable[roles1]) -%}{%- endif -%}
{%- elif roles2 in ports2cable -%}
{%- if cable_len.append(ports2cable[roles2]) -%}{%- endif -%}
{%- endif -%}
{%- endif -%}
{%- endif -%}
{%- endfor -%}
{%- set roles2 = neighbor_role + '_' + switch_role %}
{%- set roles1 = roles1 | lower %}
{%- set roles2 = roles2 | lower %}
{%- if roles1 in ports2cable %}
{%- if cable_len.append(ports2cable[roles1]) %}{% endif %}
{%- elif roles2 in ports2cable %}
{%- if cable_len.append(ports2cable[roles2]) %}{% endif %}
{%- endif %}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- if cable_len -%}
{{ cable_len.0 }}
{%- else -%}
{{ default_cable }}
{%- endif -%}
{% endmacro %}
{%- else %}
{%- if switch_role.lower() == 'torrouter' %}
{%- for local_port in VLAN_MEMBER %}
{%- if local_port[1] == port_name %}
{%- set roles3 = switch_role + '_' + 'server' %}
{%- set roles3 = roles3 | lower %}
{%- if roles3 in ports2cable %}
{%- if cable_len.append(ports2cable[roles3]) %}{% endif %}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- if cable_len -%}
{{ cable_len.0 }}
{%- else -%}
{{ default_cable }}
{%- endif %}
{%- else -%}
{{ default_cable }}
{%- endif %}
{%- endif %}
{%- endmacro %}
{%- if DEVICE_METADATA is defined %}
{%- set switch_role = DEVICE_METADATA['localhost']['type'] %}
{%- endif -%}
{# Generate list of ports if not defined #}
{% if PORT is not defined %}
{% set PORT = [] %}
{% for port_idx in range(0,default_ports_num) %}
{% if PORT.append("Ethernet%d" % (port_idx*2)) %}{% endif %}
{% endfor %}
{% endif -%}
{% set port_names_list = [] %}
{% for port in PORT %}
{%- if port_names_list.append(port) %}{% endif %}
@ -57,6 +65,15 @@
{% set port_names = port_names_list | join(',') -%}
{
"CABLE_LENGTH": {
"AZURE": {
{% for port in PORT %}
{% set cable = cable_length(port) -%}
"{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %}
{% endfor %}
}
},
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "47218432",
@ -64,57 +81,81 @@
"mode": "dynamic",
"xoff": "17708800"
},
"egress_lossy_pool": {
"lossy_pool": {
"size": "18874368",
"type": "egress",
"mode": "dynamic",
"xoff": "0"
},
"egress_lossless_pool": {
"size": "66092800",
"type": "egress"
}
},
"BUFFER_PROFILE": {
"ingress_lossless_profile": {
"pool":"ingress_lossless_pool",
"xoff":"1433600",
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
"xoff":"38816",
"size":"1518",
"dynamic_th":"-4",
"xon_offset":"6272"
},
"ingress_lossy_profile": {
"pool":"ingress_lossless_pool",
"size":"0",
"static_th":"9721600"
"dynamic_th":"1",
"xon_offset":"9408"
},
"egress_lossless_profile": {
"pool":"egress_lossy_pool",
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
"size":"0",
"static_th":"9721600"
"static_th":"9497600"
},
"ingress_lossy_profile": {
"pool":"[BUFFER_POOL|lossy_pool]",
"size":"0",
"static_th":"9497600"
},
"egress_lossy_profile": {
"pool":"egress_lossy_pool",
"pool":"[BUFFER_POOL|lossy_pool]",
"size":"1518",
"dynamic_th":"3"
"dynamic_th":"2"
}
},
"BUFFER_PG": {
"{{ port_names }}|0-3": {
"profile" : "egress_lossless_profile"
},
"{{ port_names }}|4-5": {
"profile" : "ingress_lossless_profile"
},
"{{ port_names }}|6-7": {
"profile" : "egress_lossless_profile"
}
{% for port in port_names_list %}
"{{ port }}|3-4": {
"profile" : "[BUFFER_PROFILE|ingress_lossless_profile]"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|1-2": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|5-7": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
}{% if not loop.last %},{% endif %}
{% endfor %}
},
"BUFFER_QUEUE": {
"{{ port_names }}|4-5": {
"profile" : "ingress_lossy_profile"
{% for port in port_names_list %}
"{{ port }}|3-4": {
"profile" : "[BUFFER_PROFILE|egress_lossless_profile]"
},
"{{ port_names }}|0-3": {
"profile" : "egress_lossy_profile"
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|0-2": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
},
"{{ port_names }}|6-7": {
"profile" : "egress_lossy_profile"
}
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|5-7": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
}{% if not loop.last %},{% endif %}
{% endfor %}
}
}

View File

@ -0,0 +1,42 @@
{% set port_names_list = [] %}
{% for port in PORT %}
{%- if port_names_list.append(port) %}{% endif %}
{% endfor %}
{% set port_names = port_names_list | join(',') -%}
{
"BUFFER_POOL": {
"lossy_pool": {
"size": "56985600",
"type": "egress",
"mode": "dynamic",
"xoff": "0"
}
},
"BUFFER_PROFILE": {
"ingress_lossy_profile": {
"pool":"[BUFFER_POOL|lossy_pool]",
"size":"0",
"static_th":"9497600"
},
"egress_lossy_profile": {
"pool":"[BUFFER_POOL|lossy_pool]",
"size":"1518",
"dynamic_th":"2"
}
},
"BUFFER_PG": {
{% for port in port_names_list %}
"{{ port }}|0-7": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
}{% if not loop.last %},{% endif %}
{% endfor %}
},
"BUFFER_QUEUE": {
{% for port in port_names_list %}
"{{ port }}|0-7": {
"profile" : "[BUFFER_PROFILE|egress_lossy_profile]"
}{% if not loop.last %},{% endif %}
{% endfor %}
}
}

View File

@ -0,0 +1,161 @@
{# Default values which will be used if no actual configura available #}
{% set default_cable = '40m' %}
{# Port configuration to cable length look-up table #}
{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #}
{# Roles described in the minigraph #}
{% set ports2cable = {
'torrouter_server' : '5m',
'leafrouter_torrouter' : '40m',
'spinerouter_leafrouter' : '300m'
}
%}
{%- macro cable_length(port_name) %}
{%- set cable_len = [] %}
{%- for local_port in DEVICE_NEIGHBOR %}
{%- if local_port == port_name %}
{%- if DEVICE_NEIGHBOR_METADATA is defined and DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %}
{%- set neighbor = DEVICE_NEIGHBOR_METADATA[DEVICE_NEIGHBOR[local_port].name] %}
{%- set neighbor_role = neighbor.type %}
{%- set roles1 = switch_role + '_' + neighbor_role %}
{%- set roles2 = neighbor_role + '_' + switch_role %}
{%- set roles1 = roles1 | lower %}
{%- set roles2 = roles2 | lower %}
{%- if roles1 in ports2cable %}
{%- if cable_len.append(ports2cable[roles1]) %}{% endif %}
{%- elif roles2 in ports2cable %}
{%- if cable_len.append(ports2cable[roles2]) %}{% endif %}
{%- endif %}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- if cable_len -%}
{{ cable_len.0 }}
{%- else %}
{%- if switch_role.lower() == 'torrouter' %}
{%- for local_port in VLAN_MEMBER %}
{%- if local_port[1] == port_name %}
{%- set roles3 = switch_role + '_' + 'server' %}
{%- set roles3 = roles3 | lower %}
{%- if roles3 in ports2cable %}
{%- if cable_len.append(ports2cable[roles3]) %}{% endif %}
{%- endif %}
{%- endif %}
{%- endfor %}
{%- if cable_len -%}
{{ cable_len.0 }}
{%- else -%}
{{ default_cable }}
{%- endif %}
{%- else -%}
{{ default_cable }}
{%- endif %}
{%- endif %}
{%- endmacro %}
{%- if DEVICE_METADATA is defined %}
{%- set switch_role = DEVICE_METADATA['localhost']['type'] %}
{%- endif -%}
{% set port_names_list = [] %}
{% for port in PORT %}
{%- if port_names_list.append(port) %}{% endif %}
{% endfor %}
{% set port_names = port_names_list | join(',') -%}
{
"CABLE_LENGTH": {
"AZURE": {
{% for port in PORT %}
{% set cable = cable_length(port) -%}
"{{ port }}": "{{ cable }}"{%- if not loop.last -%},{% endif %}
{% endfor %}
}
},
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "47218432",
"type": "ingress",
"mode": "dynamic",
"xoff": "17708800"
},
"lossy_pool": {
"size": "18874368",
"type": "egress",
"mode": "dynamic",
"xoff": "0"
},
"egress_lossless_pool": {
"size": "66092800",
"type": "egress"
}
},
"BUFFER_PROFILE": {
"ingress_lossless_profile": {
"pool":"ingress_lossless_pool",
"xoff":"38816",
"size":"1518",
"dynamic_th":"1",
"xon_offset":"9408"
},
"egress_lossless_profile": {
"pool":"ingress_lossless_pool",
"size":"0",
"static_th":"9497600"
},
"ingress_lossy_profile": {
"pool":"lossy_pool",
"size":"0",
"static_th":"9497600"
},
"egress_lossy_profile": {
"pool":"lossy_pool",
"size":"1518",
"dynamic_th":"2"
}
},
"BUFFER_PG": {
{% for port in port_names_list %}
"{{ port }}|3-4": {
"profile" : "ingress_lossless_profile"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|0": {
"profile" : "ingress_lossy_profile"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|1-2": {
"profile" : "ingress_lossy_profile"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|5-7": {
"profile" : "ingress_lossy_profile"
}{% if not loop.last %},{% endif %}
{% endfor %}
},
"BUFFER_QUEUE": {
{% for port in port_names_list %}
"{{ port }}|3-4": {
"profile" : "egress_lossless_profile"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|0-2": {
"profile" : "egress_lossy_profile"
},
{% endfor %}
{% for port in port_names_list %}
"{{ port }}|5-7": {
"profile" : "egress_lossy_profile"
}{% if not loop.last %},{% endif %}
{% endfor %}
}
}

View File

@ -4,12 +4,17 @@ ifcs:
nodes:
- node_id: "0"
options:
sd_low_power_mode_global_default: "true"
sku: "configs/sku/innovium.77700_B"
netdev:
- auto_create: "no"
multi_interface: "yes"
buffer_management_mode: "api_driven"
wred_cr_ip_proto_list: "17"
cr_assignment_mode: "1"
max_lossless_tc: "2"
ilpm_enable: "1"
forward_profile: "IFCS_FORWARD_PROFILE_ID_PROFILE_E"
txring:
- txring_id: "0"
desc_count: "1024"
@ -951,20 +956,6 @@ nodes:
speed: "100G"
sysport: "3"
type: "eth"
- fec: "NONE"
id: "257"
lanes: "0:1"
serdes_group: "32"
speed: "10G"
sysport: "257"
type: "mgmt 0"
- fec: "NONE"
id: "258"
lanes: "1:1"
serdes_group: "32"
speed: "10G"
sysport: "258"
type: "mgmt 1"
isg:
- id: "0"
lane_swap: "01234567"

View File

@ -5,6 +5,7 @@ device_id: 0x1b58
# Hardware constraint information
hardware:
num_ibs: 6
ib_active: 0,1,2,3,4,5
ports_per_ib: 32, 32, 32, 32, 20, 20
recirc_port_num: 32, 32, 32, 32, 32, 32

View File

@ -0,0 +1,8 @@
IFCS_INIT_FILE : "/usr/share/sonic/hwsku/config_128x100G_midstone200i.yaml"
IFCS_SKU_FILE : "/usr/share/sonic/hwsku/innovium.77700_B"
IFCS_INNO_CLI_PORT : "9999"
IFCS_TARGET : "device"
INNOVIUM_DIR : "/innovium"
PYTHONPATH : "$INNOVIUM_DIR:$INNOVIUM_DIR/cmds:$INNOVIUM_DIR/scripts:$INNOVIUM_DIR/test/:$INNOVIUM_DIR/test/utils:$INNOVIUM_DIR/utils:$INNOVIUM_DIR/pyctypes:$INNOVIUM_DIR/ifcs_cmds:$INNOVIUM_DIR/testutil"
IVM_SAI_DATAPATH_CONFIG_FILE: "/usr/share/sonic/hwsku/ivm.sai.datapath.config.yaml"
IVM_SAI_PARAM_A0008: "32"

View File

@ -0,0 +1,9 @@
ISAI_PARAM_P0_0_LS : "4608 4608 4608 4608 2880 2880"
ISAI_PARAM_P0_1_LS : "2226 1946 1946 1890 1218 1218"
ISAI_PARAM_P0_1_ALS : "434 154 154 98 98 98"
ISAI_PARAM_P1_0_LS : "1536 1536 1536 1536 960 960"
ISAI_PARAM_P1_0_LL : "3072 3072 3072 3072 1920 1920"
ISAI_PARAM_P1_1_LS : "1778 1498 1498 1442 938 938"
ISAI_PARAM_P1_1_LL : "2478 2478 2478 2478 2478 2478"
ISAI_PARAM_P1_1_ALS : "434 154 154 98 98 98"
ISAI_PARAM_P1_1_ALL : "126 126 126 126 126 126"

View File

@ -0,0 +1,22 @@
# PG lossless profiles.
# speed cable size xon xoff threshold xon_offset
25000 5m 1518 0 15680 1 9408
50000 5m 1518 0 21248 1 9408
100000 5m 1518 0 34624 1 9408
200000 5m 1518 0 62368 1 9408
400000 5m 1518 0 117536 1 9408
25000 40m 1518 0 16928 1 9408
50000 40m 1518 0 23392 1 9408
100000 40m 1518 0 38816 1 9408
200000 40m 1518 0 71904 1 9408
400000 40m 1518 0 135520 1 9408
25000 100m 1518 0 18848 1 9408
50000 100m 1518 0 27264 1 9408
100000 100m 1518 0 46496 1 9408
200000 100m 1518 0 87168 1 9408
400000 100m 1518 0 166688 1 9408
25000 300m 1518 0 25184 1 9408
50000 300m 1518 0 40128 1 9408
100000 300m 1518 0 72384 1 9408
200000 300m 1518 0 138112 1 9408
400000 300m 1518 0 268640 1 9408

View File

@ -1,131 +1,129 @@
# name lanes speed index mtu
Ethernet0 249,250 100000 0 9126
Ethernet2 251,252 100000 0 9126
Ethernet4 253,254 100000 1 9126
Ethernet6 255,256 100000 1 9126
Ethernet8 245,246 100000 2 9126
Ethernet10 247,248 100000 2 9126
Ethernet12 241,242 100000 3 9126
Ethernet14 243,244 100000 3 9126
Ethernet16 233,234 100000 4 9126
Ethernet18 235,236 100000 4 9126
Ethernet20 237,238 100000 5 9126
Ethernet22 239,240 100000 5 9126
Ethernet24 229,230 100000 6 9126
Ethernet26 231,232 100000 6 9126
Ethernet28 225,226 100000 7 9126
Ethernet30 227,228 100000 7 9126
Ethernet32 217,218 100000 8 9126
Ethernet34 219,220 100000 8 9126
Ethernet36 221,222 100000 9 9126
Ethernet38 223,224 100000 9 9126
Ethernet40 213,214 100000 10 9126
Ethernet42 215,216 100000 10 9126
Ethernet44 209,210 100000 11 9126
Ethernet46 211,212 100000 11 9126
Ethernet48 201,202 100000 12 9126
Ethernet50 203,204 100000 12 9126
Ethernet52 205,206 100000 13 9126
Ethernet54 207,208 100000 13 9126
Ethernet56 197,198 100000 14 9126
Ethernet58 199,200 100000 14 9126
Ethernet60 193,194 100000 15 9126
Ethernet62 195,196 100000 15 9126
Ethernet64 185,186 100000 16 9126
Ethernet66 187,188 100000 16 9126
Ethernet68 189,190 100000 17 9126
Ethernet70 191,192 100000 17 9126
Ethernet72 181,182 100000 18 9126
Ethernet74 183,184 100000 18 9126
Ethernet76 177,178 100000 19 9126
Ethernet78 179,180 100000 19 9126
Ethernet80 169,170 100000 20 9126
Ethernet82 171,172 100000 20 9126
Ethernet84 173,174 100000 21 9126
Ethernet86 175,176 100000 21 9126
Ethernet88 165,166 100000 22 9126
Ethernet90 167,168 100000 22 9126
Ethernet92 161,162 100000 23 9126
Ethernet94 163,164 100000 23 9126
Ethernet96 153,154 100000 24 9126
Ethernet98 155,156 100000 24 9126
Ethernet100 157,158 100000 25 9126
Ethernet102 159,160 100000 25 9126
Ethernet104 149,150 100000 26 9126
Ethernet106 151,152 100000 26 9126
Ethernet108 145,146 100000 27 9126
Ethernet110 147,148 100000 27 9126
Ethernet112 137,138 100000 28 9126
Ethernet114 139,140 100000 28 9126
Ethernet116 141,142 100000 29 9126
Ethernet118 143,144 100000 29 9126
Ethernet120 133,134 100000 30 9126
Ethernet122 135,136 100000 30 9126
Ethernet124 129,130 100000 31 9126
Ethernet126 131,132 100000 31 9126
Ethernet128 121,122 100000 32 9126
Ethernet130 123,124 100000 32 9126
Ethernet132 125,126 100000 33 9126
Ethernet134 127,128 100000 33 9126
Ethernet136 117,118 100000 34 9126
Ethernet138 119,120 100000 34 9126
Ethernet140 113,114 100000 35 9126
Ethernet142 115,116 100000 35 9126
Ethernet144 105,106 100000 36 9126
Ethernet146 107,108 100000 36 9126
Ethernet148 109,110 100000 37 9126
Ethernet150 111,112 100000 37 9126
Ethernet152 101,102 100000 38 9126
Ethernet154 103,104 100000 38 9126
Ethernet156 97,98 100000 39 9126
Ethernet158 99,100 100000 39 9126
Ethernet160 89,90 100000 40 9126
Ethernet162 91,92 100000 40 9126
Ethernet164 93,94 100000 41 9126
Ethernet166 95,96 100000 41 9126
Ethernet168 85,86 100000 42 9126
Ethernet170 87,88 100000 42 9126
Ethernet172 81,82 100000 43 9126
Ethernet174 83,84 100000 43 9126
Ethernet176 73,74 100000 44 9126
Ethernet178 75,76 100000 44 9126
Ethernet180 77,78 100000 45 9126
Ethernet182 79,80 100000 45 9126
Ethernet184 69,70 100000 46 9126
Ethernet186 71,72 100000 46 9126
Ethernet188 65,66 100000 47 9126
Ethernet190 67,68 100000 47 9126
Ethernet192 57,58 100000 48 9126
Ethernet194 59,60 100000 48 9126
Ethernet196 61,62 100000 49 9126
Ethernet198 63,64 100000 49 9126
Ethernet200 53,54 100000 50 9126
Ethernet202 55,56 100000 50 9126
Ethernet204 49,50 100000 51 9126
Ethernet206 51,52 100000 51 9126
Ethernet208 41,42 100000 52 9126
Ethernet210 43,44 100000 52 9126
Ethernet212 45,46 100000 53 9126
Ethernet214 47,48 100000 53 9126
Ethernet216 37,38 100000 54 9126
Ethernet218 39,40 100000 54 9126
Ethernet220 33,34 100000 55 9126
Ethernet222 35,36 100000 55 9126
Ethernet224 25,26 100000 56 9126
Ethernet226 27,28 100000 56 9126
Ethernet228 29,30 100000 57 9126
Ethernet230 31,32 100000 57 9126
Ethernet232 21,22 100000 58 9126
Ethernet234 23,24 100000 58 9126
Ethernet236 17,18 100000 59 9126
Ethernet238 19,20 100000 59 9126
Ethernet240 9,10 100000 60 9126
Ethernet242 11,12 100000 60 9126
Ethernet244 13,14 100000 61 9126
Ethernet246 15,16 100000 61 9126
Ethernet248 5,6 100000 62 9126
Ethernet250 7,8 100000 62 9126
Ethernet252 1,2 100000 63 9126
Ethernet254 3,4 100000 63 9126
Ethernet256 257 10000 64 9126
Ethernet257 258 10000 65 9126
# name lanes alias speed index mtu
Ethernet0 249,250 Eth1/1 100000 0 9126
Ethernet2 251,252 Eth1/2 100000 0 9126
Ethernet4 253,254 Eth2/1 100000 1 9126
Ethernet6 255,256 Eth2/2 100000 1 9126
Ethernet8 245,246 Eth3/1 100000 2 9126
Ethernet10 247,248 Eth3/2 100000 2 9126
Ethernet12 241,242 Eth4/1 100000 3 9126
Ethernet14 243,244 Eth4/2 100000 3 9126
Ethernet16 233,234 Eth5/1 100000 4 9126
Ethernet18 235,236 Eth5/2 100000 4 9126
Ethernet20 237,238 Eth6/1 100000 5 9126
Ethernet22 239,240 Eth6/2 100000 5 9126
Ethernet24 229,230 Eth7/1 100000 6 9126
Ethernet26 231,232 Eth7/2 100000 6 9126
Ethernet28 225,226 Eth8/1 100000 7 9126
Ethernet30 227,228 Eth8/2 100000 7 9126
Ethernet32 217,218 Eth9/1 100000 8 9126
Ethernet34 219,220 Eth9/2 100000 8 9126
Ethernet36 221,222 Eth10/1 100000 9 9126
Ethernet38 223,224 Eth10/2 100000 9 9126
Ethernet40 213,214 Eth11/1 100000 10 9126
Ethernet42 215,216 Eth11/2 100000 10 9126
Ethernet44 209,210 Eth12/1 100000 11 9126
Ethernet46 211,212 Eth12/2 100000 11 9126
Ethernet48 201,202 Eth13/1 100000 12 9126
Ethernet50 203,204 Eth13/2 100000 12 9126
Ethernet52 205,206 Eth14/1 100000 13 9126
Ethernet54 207,208 Eth14/2 100000 13 9126
Ethernet56 197,198 Eth15/1 100000 14 9126
Ethernet58 199,200 Eth15/2 100000 14 9126
Ethernet60 193,194 Eth16/1 100000 15 9126
Ethernet62 195,196 Eth16/2 100000 15 9126
Ethernet64 185,186 Eth17/1 100000 16 9126
Ethernet66 187,188 Eth17/2 100000 16 9126
Ethernet68 189,190 Eth18/1 100000 17 9126
Ethernet70 191,192 Eth18/2 100000 17 9126
Ethernet72 181,182 Eth19/1 100000 18 9126
Ethernet74 183,184 Eth19/2 100000 18 9126
Ethernet76 177,178 Eth20/1 100000 19 9126
Ethernet78 179,180 Eth20/2 100000 19 9126
Ethernet80 169,170 Eth21/1 100000 20 9126
Ethernet82 171,172 Eth21/2 100000 20 9126
Ethernet84 173,174 Eth22/1 100000 21 9126
Ethernet86 175,176 Eth22/2 100000 21 9126
Ethernet88 165,166 Eth23/1 100000 22 9126
Ethernet90 167,168 Eth23/2 100000 22 9126
Ethernet92 161,162 Eth24/1 100000 23 9126
Ethernet94 163,164 Eth24/2 100000 23 9126
Ethernet96 153,154 Eth25/1 100000 24 9126
Ethernet98 155,156 Eth25/2 100000 24 9126
Ethernet100 157,158 Eth26/1 100000 25 9126
Ethernet102 159,160 Eth26/2 100000 25 9126
Ethernet104 149,150 Eth27/1 100000 26 9126
Ethernet106 151,152 Eth27/2 100000 26 9126
Ethernet108 145,146 Eth28/1 100000 27 9126
Ethernet110 147,148 Eth28/2 100000 27 9126
Ethernet112 137,138 Eth29/1 100000 28 9126
Ethernet114 139,140 Eth29/2 100000 28 9126
Ethernet116 141,142 Eth30/1 100000 29 9126
Ethernet118 143,144 Eth30/2 100000 29 9126
Ethernet120 133,134 Eth31/1 100000 30 9126
Ethernet122 135,136 Eth31/2 100000 30 9126
Ethernet124 129,130 Eth32/1 100000 31 9126
Ethernet126 131,132 Eth32/2 100000 31 9126
Ethernet128 121,122 Eth33/1 100000 32 9126
Ethernet130 123,124 Eth33/2 100000 32 9126
Ethernet132 125,126 Eth34/1 100000 33 9126
Ethernet134 127,128 Eth34/2 100000 33 9126
Ethernet136 117,118 Eth35/1 100000 34 9126
Ethernet138 119,120 Eth35/2 100000 34 9126
Ethernet140 113,114 Eth36/1 100000 35 9126
Ethernet142 115,116 Eth36/2 100000 35 9126
Ethernet144 105,106 Eth37/1 100000 36 9126
Ethernet146 107,108 Eth37/2 100000 36 9126
Ethernet148 109,110 Eth38/1 100000 37 9126
Ethernet150 111,112 Eth38/2 100000 37 9126
Ethernet152 101,102 Eth39/1 100000 38 9126
Ethernet154 103,104 Eth39/2 100000 38 9126
Ethernet156 97,98 Eth40/1 100000 39 9126
Ethernet158 99,100 Eth40/2 100000 39 9126
Ethernet160 89,90 Eth41/1 100000 40 9126
Ethernet162 91,92 Eth41/2 100000 40 9126
Ethernet164 93,94 Eth42/1 100000 41 9126
Ethernet166 95,96 Eth42/2 100000 41 9126
Ethernet168 85,86 Eth43/1 100000 42 9126
Ethernet170 87,88 Eth43/2 100000 42 9126
Ethernet172 81,82 Eth44/1 100000 43 9126
Ethernet174 83,84 Eth44/2 100000 43 9126
Ethernet176 73,74 Eth45/1 100000 44 9126
Ethernet178 75,76 Eth45/2 100000 44 9126
Ethernet180 77,78 Eth46/1 100000 45 9126
Ethernet182 79,80 Eth46/2 100000 45 9126
Ethernet184 69,70 Eth47/1 100000 46 9126
Ethernet186 71,72 Eth47/2 100000 46 9126
Ethernet188 65,66 Eth48/1 100000 47 9126
Ethernet190 67,68 Eth48/2 100000 47 9126
Ethernet192 57,58 Eth49/1 100000 48 9126
Ethernet194 59,60 Eth49/2 100000 48 9126
Ethernet196 61,62 Eth50/1 100000 49 9126
Ethernet198 63,64 Eth50/2 100000 49 9126
Ethernet200 53,54 Eth51/1 100000 50 9126
Ethernet202 55,56 Eth51/2 100000 50 9126
Ethernet204 49,50 Eth52/1 100000 51 9126
Ethernet206 51,52 Eth52/2 100000 51 9126
Ethernet208 41,42 Eth53/1 100000 52 9126
Ethernet210 43,44 Eth53/2 100000 52 9126
Ethernet212 45,46 Eth54/1 100000 53 9126
Ethernet214 47,48 Eth54/2 100000 53 9126
Ethernet216 37,38 Eth55/1 100000 54 9126
Ethernet218 39,40 Eth55/2 100000 54 9126
Ethernet220 33,34 Eth56/1 100000 55 9126
Ethernet222 35,36 Eth56/2 100000 55 9126
Ethernet224 25,26 Eth57/1 100000 56 9126
Ethernet226 27,28 Eth57/2 100000 56 9126
Ethernet228 29,30 Eth58/1 100000 57 9126
Ethernet230 31,32 Eth58/2 100000 57 9126
Ethernet232 21,22 Eth59/1 100000 58 9126
Ethernet234 23,24 Eth59/2 100000 58 9126
Ethernet236 17,18 Eth60/1 100000 59 9126
Ethernet238 19,20 Eth60/2 100000 59 9126
Ethernet240 9,10 Eth61/1 100000 60 9126
Ethernet242 11,12 Eth61/2 100000 60 9126
Ethernet244 13,14 Eth62/1 100000 61 9126
Ethernet246 15,16 Eth62/2 100000 61 9126
Ethernet248 5,6 Eth63/1 100000 62 9126
Ethernet250 7,8 Eth63/2 100000 62 9126
Ethernet252 1,2 Eth64/1 100000 63 9126
Ethernet254 3,4 Eth64/2 100000 63 9126

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