Why I did it
The command show environment has been broken on this platform for quite a while. These adjustments allow it to function again.
How I did it
I adjusted the platform_sensors.py file for the n3248te to appease the errors that it was generating from the Python interpreter.
How to verify it
Run sudo show environment on an unchanged n3248te to see that it generates an error right away about print statements being malformed. Then place this file at /usr/bin/platform_sensors.py in the pmon container and run the command again to see the correct output.
### Why I did it
An in-band syslog server will not receive any syslog if it is configured without a VRF specified, which is because `eth0` is always specified as the `device` of a syslog server and the syslog packets will be sent to `eth0` regardless of its destination IP address.
### How I did it
Pass the option "device" in rsyslog.conf only if when syslog server's source address is configured with a non-default VRF
#### How to verify it
Manually test:
1. Configuring a syslog server without VRF specified or with `default` as the VRF: no `device` passed in `rsyslog.conf`
2. Configuring a syslog server with non-default VRF: the configured VRF passed as `device` in `rsyslog.conf`
### Why I did it
Cache currently does not save the log of the deb. But it's useful to have the log to understand any cache related problems.
### How I did it
#### How to verify it
```
vkarri@s-build-sonic-01:/sonic-buildimage$ tar -tvf /sonic/sonic_caches/libnl-3-200_3.5.0-1_amd64.deb-adc83b19e793491b1c6ea0f-0ea77d65c49ae3a11dffbca.tgz
-rw-r--r-- vkarri/dip 496230 2024-01-12 19:49 target/debs/bookworm/libnl-3-200_3.5.0-1_amd64.deb.log
```
**DEPENDS ON: [[graceful reboot] Add the pre_reboot_hook script execution, add the watchdog arm before the reboot](https://github.com/sonic-net/sonic-utilities/pull/3203)**
#### Why I did it
Add support for the `graceful reboot` instead of the `sysfs power cycle` to avoid filesystem corruption
### How I did it
Rename the `platform_reboot` script to the `pre_reboot_hook`.
Remove the sysfs power cycle function, from now on the Debian reboot (`/sbin/reboot`) will be executed instead of the sysfs power cycle.
#### How to verify it
1. Start watching logs by using `show log -f` and `journalctl -p debug -f`
2. Execute the `reboot` command from the switch CLI
3. Check in logs that all systemd services terminated
#### Why I did it
src/wpasupplicant/sonic-wpa-supplicant
```
* 3c7fd8e10 - (HEAD -> master, origin/master, origin/HEAD) Make Openssl CMAC API (omac1_aes_vector) Availalable in Non FIPs Mode (#85) (2 hours ago) [wumiao_nokia]
```
#### How I did it
#### How to verify it
#### Description for the changelog
Why I did it
redis_chassis process fails to start in the database-chassis on the supervisor card.
How I did it
The redis and redis_chassis processes in supervisor.conf has been modified to start with 'redis' as user. The modification only added redis and redis group for database containers except database-chassis container. This commit adds code to the docker-database-init.sh to add redis and redis group for the database-chassis to address this issue.
How to verify it
Booting the image on Supervisor. And verify the database-chassis container should be in UP state, and the database-chassis.service is in active(running) state
admin@ixre-cpm-chassis15:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9691c6111e0f docker-fpm-frr:latest "/usr/bin/docker_ini?" 16 hours ago Up 16 hours bgp5
...
c7c7159d4e0c docker-database:latest "/usr/local/bin/dock?" 31 hours ago Up 16 hours database-chassis
admin@ixre-cpm-chassis15:~$ sudo systemctl status database-chassis
? database-chassis.service - database-chassis container
Loaded: loaded (/lib/systemd/system/database-chassis.service; enabled-runtime; preset: enabled)
Active: active (running) since Sun 2024-03-03 04:43:12 UTC; 16h ago
Process: 1640 ExecStartPre=/usr/bin/database.sh start chassisdb (code=exited, status=0/SUCCESS)
Main PID: 1938 (database.sh)
Tasks: 10 (limit: 38307)
Memory: 49.7M
CGroup: /system.slice/database-chassis.service
??1938 /bin/bash /usr/bin/database.sh wait chassisdb
??1940 docker wait database-chassis
Notice: journal has been rotated since unit was started, output may be incomplete.
admin@ixre-cpm-chassis15:~$
Signed-off-by: mlok <marty.lok@nokia.com>
Why I did it
Fix libgrpc++ bookworm debian installation issue. Fix#18033
How I did it
Modified the build_debian.sh to change the libgrpc++1 to libgrcp++1.51 for debian bookworm image build
How to verify it
After the image is built in the workspace, verify the libgrpc++.so.1.51 is installed in fsroot-broadcom-dnx/lib/x86_64-linux-gnu diretcory
~/data/master/sonic-buildimage/fsroot-broadcom-dnx/lib/x86_64-linux-gnu (master)$ ls libgrpc++.so.1.51
libgrpc++.so.1.51
~/data/master/sonic-buildimage/fsroot-broadcom-dnx/lib/x86_64-linux-gnu (master)$
Signed-off-by: mlok <marty.lok@nokia.com>
#### Why I did it
src/sonic-swss-common
```
* 8e24ced - (HEAD -> master, origin/master, origin/HEAD) Add SWIG GO wrapper for ConfigDBConnector. (#865) (13 hours ago) [Hua Liu]
```
#### How I did it
#### How to verify it
#### Description for the changelog
### Why I did it
Fix the issue [18418](https://github.com/sonic-net/sonic-buildimage/issues/18418), The YANG model to MACsec fallback cak/ckn is wrong. We should allow the fallback option is empty.
### How I did it
Add a condition to check whether the fallback is providered
#### How to verify it
Check Azp
Fixes "Missing container in list support in YANG Model https://github.com/sonic-net/sonic-buildimage/issues/16704"
Why I did it
Adds support for container in list
How I did it
Identify container in list's leaf and add its data.
Fixes "Update dhcpv6 option yang model" #16290
Why I did it
Adds support for single "choice" statement in container/list
How I did it
Check if choice data is dictionary (instead of list).
How to verify it
Reconstruction details in bug's description.
Tested branch (Please provide the tested image version)
202311
Description for the changelog
Adds support for container in list to yang parsing
Link to config_db schema for YANG module changes
https://github.com/sonic-net/sonic-buildimage/blob/master/src/sonic-yang-models/doc/Configuration.md#dhcp_relay
Signed-off-by: vkuk [vkuk@marvell.com]
#### Why I did it
src/sonic-mgmt-common
```
* 4f32923 - (HEAD -> master, origin/master, origin/HEAD) Fix subscriptions for lists with multiple keys. (9 hours ago) [Steve Licking]
```
#### How I did it
#### How to verify it
#### Description for the changelog
#### Why I did it
src/sonic-platform-common
```
* 2606cd5 - (HEAD -> master, origin/master, origin/HEAD) Add flag to read partial VDM (#397) (22 hours ago) [ChiouRung Haung]
```
#### How I did it
#### How to verify it
#### Description for the changelog
#### Why I did it
src/sonic-platform-daemons
```
* 2770fd2 - (HEAD -> master, origin/master, origin/HEAD) Disable periodic polling of port in DomInfoUpdateTask thread during CMIS init (#449) (5 hours ago) [mihirpat1]
* d513eca - Added support for file system based sensors implementation. (#438) (22 hours ago) [Mridul Bajpai]
```
#### How I did it
#### How to verify it
#### Description for the changelog
Fix TACACS local accounting disabled when debug flag disabled.
#### Why I did it
TACACS local accounting use trace() method to output local accounting log, following PR disable trace log when debug flag disabled,
https://github.com/sonic-net/sonic-buildimage/pull/16482
Because test case issue, this regression not found. the issue only exists on master branch.
### How I did it
Fix TACACS local accounting disabled when debug flag disabled.
#### How to verify it
Pass all UT.
Fix TACACS accounting UT to prevent regression.
### Tested branch (Please provide the tested image version)
- [] SONiC.master-16482.360728-2c8b4066f
#### Description for the changelog
Fix TACACS local accounting disabled when debug flag disabled.
* Fix debug package variables for syncd
PR #16072 renamed the debug package variables from `*_DBG` to
`*_DBGSYM`, since the package names had changed. However, the references
weren't updated. Since all the other debug packages (including ones that
are named `*-dbgsym`) use `*_DBG`, just use that here as well.
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
* Update sairedis.mk as well
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
---------
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
#### Why I did it
src/sonic-linux-kernel
```
* fdb3145 - (HEAD -> master, origin/master, origin/HEAD) [nvidia-bluefield] Add config inclusions for Nvidia Bluefield-3 DPU (#380) (4 days ago) [Oleksandr Ivantsiv]
```
#### How I did it
#### How to verify it
#### Description for the changelog
#### Why I did it
src/wpasupplicant/sonic-wpa-supplicant
```
* 13e6f1100 - (HEAD -> master, origin/master, origin/HEAD) Fix a memory leak introduced by last commit for high level EVP API #82 (64 minutes ago) [xumia]
|\
| failure_prs.log 225157a01 - Merge branch 'master' into master (3 days ago) [wumiao_nokia]
| |\
| |/
|/|
* | 413704a6c - Provide CMAC high level API replacement #81 (4 days ago) [xumia]
| failure_prs.log c7eafc778 - Fix a memory leak introduced by last commit for high level EVP API for CMAC (3 days ago) [wumiao_nokia]
|/
* 8521d4abb - Fix a port issue (6 days ago) [wumiao_nokia]
* 01a39044a - Provide CMAC high level API replacement (6 days ago) [wumiao_nokia]
```
#### How I did it
#### How to verify it
#### Description for the changelog
#### Why I did it
src/sonic-gnmi
```
* 3fa77c6 - (HEAD -> master, origin/master, origin/HEAD) Support multiple database for DPU (#188) (20 hours ago) [ganglv]
```
#### How I did it
#### How to verify it
#### Description for the changelog
#### Why I did it
src/sonic-swss-common
```
* e7917ac - (HEAD -> master, origin/master, origin/HEAD) Add new status code. (#828) (2 hours ago) [mint570]
```
#### How I did it
#### How to verify it
#### Description for the changelog
Why I did it
Bugfix for Python syntax error in sonic_platform/common.py.
A method of class need to have self as parameter.
Fixing below issue:
e1031:~$ show int st
Traceback (most recent call last):
File "/usr/local/bin/intfutil", line 836, in <module>
main()
File "/usr/local/bin/intfutil", line 819, in main
interface_stat.display_intf_status()
File "/usr/local/bin/intfutil", line 448, in display_intf_status
self.get_intf_status()
File "/usr/local/lib/python3.9/dist-packages/utilities_common/multi_asic.py", line 157, in wrapped_run_on_all_asics
func(self, *args, **kwargs)
File "/usr/local/bin/intfutil", line 529, in get_intf_status
self.portchannel_speed_dict = po_speed_dict(self.po_int_dict, self.db)
File "/usr/local/bin/intfutil", line 334, in po_speed_dict
optics_type = port_optics_get(appl_db, value[0], PORT_OPTICS_TYPE)
File "/usr/local/bin/intfutil", line 224, in port_optics_get
if is_rj45_port(intf_name):
File "/usr/local/lib/python3.9/dist-packages/utilities_common/platform_sfputil_helper.py", line 120, in is_rj45_port
platform_chassis = sonic_platform.platform.Platform().get_chassis()
File "/usr/local/lib/python3.9/dist-packages/sonic_platform/platform.py", line 21, in __init__
self._chassis = Chassis()
File "/usr/local/lib/python3.9/dist-packages/sonic_platform/chassis.py", line 37, in __init__
self._is_host = self._api_common.is_host()
TypeError: is_host() takes 0 positional arguments but 1 was given
Work item tracking
Microsoft ADO (number only): 27208152
How I did it
Add self parameter to function Common::is_host().
How to verify it
Verified on E1031 DUT with this patch.
* [Mellanox] Support DSCP remapping in Dual-ToR topo for SN4700-O8V48, update buffers for t0
Signed-off-by: Andriy Yurkiv <ayurkiv@nvidia.com>
* [Mellanox] Support DSCP remapping in Dual-ToR topo for SN4700-O8V48, update buffers for t0 (fixes after recalculation)
Signed-off-by: Andriy Yurkiv <ayurkiv@nvidia.com>
---------
Signed-off-by: Andriy Yurkiv <ayurkiv@nvidia.com>
### Why I did it
The existing test cases and test data for YANG model tests are defined in JSON files. The tests are limited and require a huge amount of copy-paste to provide good coverage.
For the features that have a lot of similar attributes that need to be covered with the tests, the JSON files can be quite big and hard to maintain (for example CRM).
The debuggability of the JSON tests is almost zero. Which makes implementation of the new test cases much harder than it should be. When the single test case fails it generates thousands of lines of output that make it hard to understand the issue. It is hard to find what failed, and what is the error message. It is impossible to re-run single test cases. Etc.
The Pytest provides an alternative way to implement the tests.
Both JSON tests and Pytests can co-exist. But it is suggested to use Pytest for the new tests.
The tests written in Pytest are compact, readable, and human-friendly.
They give more flexibility in the testing of corner cases allow to leverage Python and Pytest capabilities to generate configuration and data for better coverage.
### How I did it
Add an infrastructure that allows to write model tests in Python.
Conver CRM, DASH CRM, and SmartSwitch tests to Pytest.
#### How to verify it
Build the YANG model package.
#### Why I did it
src/sonic-gnmi
```
* d56712a - (HEAD -> master, origin/master, origin/HEAD) Update GNMI path schema (#197) (4 days ago) [ganglv]
* 758ec18 - Call flag.Parse() to parse global flags like -logtostderr (#198) (5 days ago) [Zain Budhwani]
* 736e3b4 - Add signal handler to stop gnmi server for when sigterm or sigquit is called (#189) (3 weeks ago) [Zain Budhwani]
* 5b59c57 - Fix sonic string in osversion/build (#190) (4 weeks ago) [Zain Budhwani]
* d8d15c7 - Enable unit tests and code coverage for telemetry.go (#186) (5 weeks ago) [Zain Budhwani]
```
#### How I did it
#### How to verify it
#### Description for the changelog
These changes provide for the automatic shutdown of NIF ports on LC when an ungraceful reboot scenario occurs. Reboot and panic notifier hooks are now registered so that callback occurs from the kernel and NIF ports are subsequently shut down.
Why I did it
To facilitate the timely movement of traffic away from a crashed LC when its peers recognize that the associated links have gone down.
How I did it
Linux kernel reboot and panic notifier hooks are used to register a callback routine that, when invoked, stuffs all present transceiver modules into reset.
How to verify it
Cause an ungraceful reboot (whether via /usr/sbin/reboot or by causing a kernel panic) and verify that all LC native NIF links are brought down at reboot/panic time (on the way down). It may be necessary to monitor the LC link peer(s) in order to verify in real-time.
#### Why I did it
src/linkmgrd
```
* dd61844 - (HEAD -> master, origin/master, origin/HEAD) [active-standby] reset mux probing backoff factor in link flaps (#245) (5 hours ago) [Jing Zhang]
```
#### How I did it
#### How to verify it
#### Description for the changelog
### Why I did it
Support dot (`.`) in the `additional_info` field in the PFC watchdog event in the yang model.
The `additional_info` field was introduced to represent diagnosis information when a PFC storm is detected, which can include fragments.
Signed-off-by: Stephen Sun <stephens@nvidia.com>
### How I did it
#### How to verify it
Unit test.
### Why I did it
Addresses https://github.com/sonic-net/sonic-buildimage/issues/17350
### How I did it
Instead of a 1 second delay, we poll to check that the thread is available and after each poll increment the delay. There were situations where if there was less memory available, fixed polling would not be effective for starting zmq capture service. Add an incremental delay such that eventd can wait longer to start up capture service if system is too busy or overloaded, but still keep a max duration/retry limit so that we do not wait forever.
#### How to verify it
UT
### Why I did it
Remove UpdateGraphService feature from sonic image. The goal is to simplify the bootup process.
### How I did it
Remove updategraph service and updategraph script.
Update all related services, replace updategraph.service with config-setup.service.
#### How to verify it
Build and install new image, load minigraph and check all the services.