Update sonic-linux-kernel submodule to updated 202012 branch. This brings in the following commits....
```
e97f9fc [202012] Add upstreamed patches which backport support for registers for CPLD PNs (#275)
58abcdc Merge pull request #267 from Staphylo/202012-log-buf-len
3f16f4f Merge pull request #268 from Staphylo/202012-emmc-fixes
a120ae7 Apply kernel patches to fix emmc unreliability
5f4a3f3 Increase log_buf_len to 1M for all architecture
```
Signed-off-by: vaibhav-dahiya vdahiya@microsoft.com
This PR updates the following commits in sonic-platform-daemons
af39d75 [ycable] fix the logic to update cable_info values when ycable is not present; fix read side logic for ycable (#249)
Include fix of "Stop PMON before stopping BGP while doing warmboot/fastboot"
4f1400f [202012] Stop PMON before stopping BGP while doing warmboot/fastboot (Azure/sonic-utilities#2101)
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>
This PR updates the following commits in sonic-utilities
582d740 (HEAD -> 202012, origin/202012) [show] add support for hwstatus in show muxcable status (#1961) (#2105)
Signed-off-by: vaibhav-dahiya <vdahiya@microsoft.com>
Include following commits:
- d061e27 [tunnelmgrd]: Warm boot support (#2166)
- 73ced6e Remove port serdes object before removing port (#2152)
- 6ac0b9b [CoPP] Add always_enabled field to coppmgr logic (#2034) (#2147)
Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
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.
#### Why I did it
```
Update submodule sonic-restapi
bd97dfe Fix urllib3 CVE-2021-33503 issue (#104)
f159bfa Upgrade the containers to be based on Debian Buster (#103)
a1830c1 (origin/201911) Fix OpenAPI spec to be readable by autorest (#101)
```
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
This PR adds the following commits in sonic-platform-common
eb35c85[Credo][Ycable] Fix Credo firmware download API download_firmware flag (#269)
Signed-off-by: vaibhav-dahiya <vdahiya@microsoft.com>
Advance sonic-utilities submodule to include the following changes
98de850 [muxcable][show] enhance show mux status to show last switchover time Azure/sonic-utilities#2067
3da82d1 [show][muxcable] fix the sudo access error for show muxcable metrics Azure/sonic-utilities#2083
7acbadb [build] stop vstest in the Azure pipeline Azure/sonic-utilities#2098
3fed440 [show][config] add muxcable command line support for retrieve / reset ICMP packet loss data Azure/sonic-utilities#2094
aa21e3a [202012] [counterpoll] Display the correct default poll interval for watermark counters Azure/sonic-utilities#2091
Signed-off-by: Neetha John <nejo@microsoft.com>
60f5237 (HEAD, origin/202012) [multi-asic]: Udpate to use SonicDBConfig from swsscommon (#219)
5c0d941 [201911][RFC1213]: Initialize lag oid map in reinit_data (#234)
Signed-off-by: Suvarna Meenakshi <sumeenak@microsoft.com>
4dc2d0a (HEAD -> 202012, origin/202012) Clear all data from DB table when the daemon stops (#228)
1df28d7 [ycabled] increase UT coverage of ycabled daemon (#238)
Signed-off-by: vaibhav-dahiya <vdahiya@microsoft.com>
- 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
Why I did it
Desired the log message destination to be syslog and it misses the critical info.
How I did it
Non logical code changes only.
Logging update, just for one message only
a) The log message is directed to /var/log/syslog, instead of /var/log/auth.log
b) Include user alias in the message
How to verify it
Pick a user alias that has not logged into the switch yet
Add this alias to /etc/tacplus_user
Attempt to login as that user
Look for the error message in /var/log/syslog
e.g. "Feb 18 19:16:41.592191 sonic ERR sshd[5233]: auth fail: Password incorrect. user: user_xyz"
This brings in the following commit:
* 15e6f4b0a: Kernel config changes to support cisco platforms [madhava28]
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
Advance SWSS submodule to include the following commit:
*081dd0118 Handle dual ToR neighbor miss scenario (#2137)
Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
This PR updates the following commits in 202012
1f32e5c (HEAD -> 202012, origin/202012) [ycable][credo] Fix the is_link_active API for Credo Ycable (#260)
c249681 [Y-Cable][Credo] add theading locker to support thread-safe calling, add SKU check for download_firmware API. (#222)
Signed-off-by: vaibhav-dahiya <vdahiya@microsoft.com>
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>
Co-authored-by: Saikrishna Arcot <sarcot@microsoft.com>
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
In the multi asic platforms all the ASIC are advertising the same IPv6 /64 network from Loopback4096.
Therefore, the IPv6 loopback address of backend asic is not learnt on the frontend asic.
Change the bgpd.conf.main.conf.j2 template file to advertise the Loopback4096 ipv6 address as /128
How I did it
Advance swss submodule head to include:
c3fb52b 2022-02-04 | Fix for missing lossless PG profile on certain ports (sonic-swss-common update for Vnet tables #2133) (HEAD -> 202012, github/202012) [Ying Xie]
Signed-off-by: Ying Xie ying.xie@microsoft.com
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.
Why I did it
Cherry pick changes in #9197 to 202012 branch
Add bgpcfgd support to advertise routes.
How I did it
Make bgpcfgd subscribe to the ADVERTISE_NETWORK table in STATE_DB and configure route advertisement accordingly.
How to verify it
Added unit tests in bgpcfgd and verify on KVM about route advertisement.
[buffer orch] Bugfix: Don't query counter SAI_BUFFER_POOL_STAT_XOFF_ROOM_WATERMARK_BYTES on a pool where it is not supported (#1857) (#2106)
Signed-off-by: Volodymyr Samotiy <volodymyrs@nvidia.com>
This makes it possible to install the debug symbols if needed. Also install
the package into the debug version of sonic-dhcp-relay container.
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
Update submodule sonic-sairedis that contains the following commit:
Change the log severity leve from ERROR to NOTICE if getStatus is not supported by vendor (#908) (#991)
Commits:
02dea43 [202012] Add support for BFD notification (#990)
337fd97 Change sonic-buildimage.vs artifact source from CI build to official build. (#992)
490f442 Support for cisco-8000 platform for sonic-sairedis/syncd (#823)
Advanced submodule to pick up QSFP port mapping improvements:
[202012][sonic_sfp]: prefer Config DB port index mapping over platform.json/port_config.ini
Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
* Add thrift 0.13.0 (#8307)
#### Why I did it
To bump thrift version to 0.13.0, to fix some dependencies issues.
#### How I did it
As there are dependencies between thrift and saithrinft server (bf3630316c/test/saithrift) which is used by syncd-rpc to update thrift version, I also need to make changes in saithrinft server, and then SAI ref point should be updated in sairedis, and then sairedis ref point should be updated too. It is too many change, so I decided to add thrift 0.13.0 as separeate target to be able to work and test father changes in saithrinft and one when appropriate changes will be merged to SAI and ref points will be updated I will squash this and the old thrift target. I was not able to build thrift deb pkg by original rules, so I copied `debian `folder from the old version and tune it for newer one.
#### How to verify it
```
make init
make configure PLATFORM=vs
make target/debs/buster/libthrift_0.13.0_amd64.deb
```
```
* Correct the pkg name for thrift.0.13.0
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: Myron Sosyak <myronx.sosyak@intel.com>
Update submodule sonic-utilities that contains the following commits:
Revert "[202012] [generate_dump] allow to extend dump with plugin scripts (#1945)" (#1993)
[soft-reboot] Add support for platforms based on Device Tree (#1963)
[Reclaiming buffer][202012] Database migrator for reclaiming buffer (#1898)
[202012] [generate_dump] allow to extend dump with plugin scripts (#1945)
Signed-off-by: dprital <drorp@nvidia.com>
#### Why I did it
To pick up fixes from submodule sonic-sairedis which include the following fixes:
```
commit 1027eef3a331e84560827c7584ee8009baf434d5 (HEAD -> 202012, origin/202012)
Author: gechiang <62408185+gechiang@users.noreply.github.com>
Date: Wed Dec 8 03:13:34 2021 -0800
[202012] Prevent other notification event storms to keep enqueue unchecked and drained all memory that leads to crashing the switch router (#976)
commit 94455e50d3444dcd60093b7a39c7f427337a94d2
Author: VenkatCisco <77468614+VenkatCisco@users.noreply.github.com>
Date: Tue Jun 15 03:23:20 2021 -0700
Add cisco-8000 checks to syncd_init_common (#839)
commit 2df539483ed68519c3c9c6df958d3ed2f31dd629
Author: Kamil Cudnik <kcudnik@gmail.com>
Date: Mon Dec 6 20:50:23 2021 +0100
[lgtm] Add gmock libs to lgtm (#979)
```
#### Why I did it
Update sonic-swss-common
54879741 [202012][schema] Add vnet route tunnel and advertise network tables for state_db (Azure/sonic-swss-common#563)
a5394f9d Update for BFD, default route table (Azure/sonic-swss-common#550)
Update sonic-swss
fbbe5bcc [202012][pfc_detect] fix RedisReply errors (Azure/sonic-swss#2078)
5762b0c2 [Reclaim buffer][202012] Reclaim unused buffer for dynamic buffer model (Azure/sonic-swss#1985)
33e9bd19 [Document][202012] Supply the missing ingress/egress port profile list in document (Azure/sonic-swss#2066)
1b6ffba1 [Reclaiming buffer][202012] Support reclaiming buffer in traditional buffer model (Azure/sonic-swss#2063)
afb33f16 [202012] Update default route status to state DB (Azure/sonic-swss#2009) (Azure/sonic-swss#2067)
b9c44f75 Common code update for reclaiming buffer (backport community PR Azure/sonic-swss#1996 to 202106/202012) (Azure/sonic-swss#2061)
cf5182d8 [request parser] Allow request parser to parse multiple values
Why I did it
There are scenarios that End-of-RIB comes from a part of the peers arrives after reconciliation. In such scenarios, if the route selection deferral timer has the default value of 360 seconds, FRR would not set up routes and all routes would be removed after reconciliation. This PR reduces the route selection deferral timer so that at least routes to parts of the peers get restored at the point of reconciliation.
Fix#7488
How I did it
Reduce route selection deferral timer for bgp graceful restart to 15 seconds.
- Why I did it
Support zero buffer profiles
1. Add buffer profiles and pool definition for zero buffer profiles
2. Support applying zero profiles on INACTIVE PORTS
3. Enable dynamic buffer manager to load zero pools and profiles from a JSON file
- How I did it
Add buffer profiles and pool definition for zero buffer profiles
If the buffer model is static:
* Apply normal buffer profiles to admin-up ports
* Apply zero buffer profiles to admin-down ports
If the buffer model is dynamic:
* Apply normal buffer profiles to all ports
* buffer manager will take care when a port is shut down
Update buffers_config.j2 to support INACTIVE PORTS by extending the existing macros to generate the various buffer objects, including PGs, queues, ingress/egress profile lists
Originally, all the macros to generate the above buffer objects took active ports only as an argument.
Now that buffer items need to be generated on inactive ports as well, an extra argument representing the inactive ports need to be added.
To be backward compatible, a new series of macros are introduced to take both active and inactive ports as arguments
The original version (with active ports only) will be checked first. If it is not defined, then the extended version will be called.
Only vendors who support zero profiles need to change their buffer templates
Enable buffer manager to load zero pools and profiles from a JSON file:
The JSON file is provided on a per-platform basis
It is copied from platform/<vendor> folder to /usr/share/sonic/temlates folder in compiling time and rendered when the swss container is being created.
To make code clean and reduce redundant code, extract common macros from buffer_defaults_t{0,1}.j2 of all SKUs to two common files:
One in Mellanox-SN2700-D48C8 for single ingress pool mode
The other in ACS-MSN2700 for double ingress pool mode
Those files of all other SKUs will be symbol link to the above files
Update sonic-cfggen test accordingly:
* Adjust example output file of JSON template for unit test
* Add unit test in for Mellanox's new buffer templates.
- How to verify it
Regression test.
Unit test in sonic-cfggen
Run regression test and manually test.
Signed-off-by: stephens <stephens@nvidia.com>
#### Why I did it
Merged from master branch: https://github.com/Azure/sonic-buildimage/pull/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 [91mDEPRECATION: 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 [0m[91m/usr/bin/sed: can't read nodesource.list: No such file or directory
2021-12-03T06:59:34.5094880Z [0mThe command '/bin/sh -c post_run_buildinfo' returned a non-zero code: 2
```
6c6151b Fix unstable unit tests (state change handler wasn't invoked) (#8)
2f7dc0a support code diff coverage (#5)
83f0002 Force mux state switch to standby if triggered from Cli (#6)
signed-off-by: Jing Zhang zhangjing@microsoft.com
Contains the following commits
239cb5c [flex counter] Flex counter threads consume too much CPU resources (Azure/sonic-utilities#1925)
8a3b41a [load_minigraph] Delay pfcwd start until the buffer templates are rendered (Azure/sonic-utilities#1937)
Why I did it
resolves#8979 and #9055
How I did it
Remove the file static.conf.j2,which adds the default route on eth0 from bgp docker
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
Backport https://github.com/Azure/sonic-buildimage/pull/9068 to 202012
#### Why I did it
Command `monit summary -B` can no longer display the status for each critical process, system-health should not depend on it and need find a way to monitor the status of critical processes. The PR is to address that. monit is still used by system-health to do file system check as well as customize check.
#### How I did it
1. Get container names from FEATURE table
2. For each container, collect critical process names from file critical_processes
3. Use “docker exec -it <container_name> bash -c ‘supervisorctl status’” to get processes status inside container, parse the output and check if any critical processes exit
#### How to verify it
1. Add unit test case to cover it
2. Adjust sonic-mgmt cases to cover it
3. Manual test
Update sonic-sairedis submodule to get the below fixes:
7389704 [202012] Add ACL_TABLE object to break before make list (Azure/sonic-sairedis#971)
f334349 Fix hung issue when installing linux kernel modules (Azure/sonic-sairedis#969)
When we update the a sai package downing from a remote server, we need to update the version file as well currently, but the reproducible build feature is not enabled in master, it can only be detected when merging the code into the release branches, such as 202106, 202012, etc.
The reproducible feature is to reduce the build failure, not need to break the build when the version not specified. If version not specified, the best choice is to accept the version from remote server.
Co-authored-by: Ubuntu <xumia@xumia-vm1.jqzc3g5pdlluxln0vevsg3s20h.xx.internal.cloudapp.net>
#### Why I did it
With current code the delay will take place even if simple 'config reload' command executed and this is not desired.
This delay should be used only when fast-rebooting.
#### How I did it
Change the type of delay to OnBootSec instead of OnActiveSec.
#### How to verify it
Fast-reboot with this PR and observe the delay.
Run 'config-reload' command and observe no delay is running.
[cherry-pick PR #9123 ]
Why I did it
When sshd realizes that this login can't succeed due to internal device state
or configuration, instead of failing right there, it proceeds to prompt for
password, so as the user does not get any clue on where is the failure point.
Yet to ensure that this login does not proceed, sshd replaces user provided password
with a specific pattern of characters matching length of user provided password.
This pattern is "<BS><LF><CR><DEL>INCORRECT", which is bound to fail.
If user provided length is smaller/equal, the substring of pattern is overwritten.
If user provided length is greater, the pattern is repeated until length is exhausted.
But if the PAM-tacacs plugin would send this password to AAA, the user could get
locked out by AAA, for providing incorrect value.
How I did it
Hence this fix, matches obtained password against the pattern. If match, fail just before
reaching AAA server.
How to verify it
Make sure tacacs is properly configured.
Try logging in as, say "user-A"; ensure it succeeds
Pick another user, say user-B and ensure this user has not logged into this device before (look into /etc/passed & folders under /home)
Disable monit service (as that could fix the issue using disk_check.py)
Start TCP dump for all TACACS servers.
Simulate Read-only disk
Try logging in using user-B.
Verify it fails, after 3 attempts
Stop tcp dump.
TCP dump should show "authentication" for user-A only
6f198d0 (HEAD -> 202012, origin/202012) [Y-Cable][Broadcom] upgrade to support Broadcom Y-Cable API to release (#230)
1c3e422 SSD Health: Retrieve SSD health and temperature values from generic SSD info (#229)
Signed-off-by: vaibhav-dahiya <vdahiya@microsoft.com>
9dd3025 2021-05-11 | [Command-Reference.md] Document new SNMP show and config commands (#1600) [Travis Van Duyn]
be40767 2021-05-05 | [show][config] Add new snmp commands (#1347) [Travis Van Duyn]
Fix support for DHCPV6 Relay multi vlan functionality. Make sure the relayed packet is received at correct interface.
How I did it
Bind a socket to each vlan interface's global and link-local address.
Socket binded to global address is used for relaying data from client to server and receiving data from servers.
Socket binded to link-local address is used for relaying data received from server back to the client.
This PR deletes local-to-buildimage linkmgrd and creates new submodule
pointing to github repo of sonic-linkmgrd.
signed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
This is to address an issue where it was observed that SAI operations sometime make take a very long to time complete (over 45ms). It was determined that the ALPM distributed thread was causing this issue.
The fix is to disable this debug thread that has no functional purpose.
Preliminary tests looks fine. BGP neighbors were all up with proper routes programmed
interfaces are all up
Manually ran the fib test cases on 7050CX3 (TD3), TD2, TH, TH2, and TH3 based platforms and
thy all passed.
These changes are included in this PR:
07e1f79 [syncd] Add workaround for warm boot new objects (#959)
50fd353 Fix the option missing in kernel config issue (#956)
e77503c [syncd] Comparison logic workaround for empty buffer profile (#906) (#941)