Skip to content

local ARS#13

Open
VladimirKuk wants to merge 1011 commits into
masterfrom
mrvl-local-ARS
Open

local ARS#13
VladimirKuk wants to merge 1011 commits into
masterfrom
mrvl-local-ARS

Conversation

@VladimirKuk

Copy link
Copy Markdown

Raised PR for internal comments

@apannerselva
apannerselva force-pushed the mrvl-local-ARS branch 5 times, most recently from e99ae40 to 53f72b0 Compare November 6, 2025 01:40
@apannerselva
apannerselva force-pushed the mrvl-local-ARS branch 3 times, most recently from 24ddd56 to 0e6eecd Compare February 19, 2026 17:17
apannerselva pushed a commit that referenced this pull request May 6, 2026
…net#25643)

* [build] Add build timing report and dependency analysis tools

Add three scripts for build performance instrumentation:

- scripts/build-timing-report.sh: Parse per-package timing from build
  logs (HEADER/FOOTER timestamps), generate sorted duration table,
  phase breakdown, parallelism timeline, and CSV export.

- scripts/build-dep-graph.py: Parse rules/*.mk dependency graph,
  compute critical path, fan-out/fan-in bottleneck analysis, and
  generate DOT/JSON output for visualization.

- scripts/build-resource-monitor.sh: Sample CPU, memory, disk I/O,
  and Docker container count during builds for resource utilization
  analysis.

Add "make build-report" target to slave.mk that runs the timing
report and dependency analysis after a build completes.

Example output from a VS build on 24-core/30GB machine:
- 210 packages built in 53m wall time (173m CPU)
- Max concurrency: 5 (with SONIC_CONFIG_BUILD_JOBS=4)
- Critical path: 14 packages deep (libnl -> libswsscommon -> utilities)
- Top bottleneck: LIBSWSSCOMMON with 48 downstream dependents

Signed-off-by: Rustiqly <rustiqly@users.noreply.github.com>

* Address Copilot review: fix 17 bugs in build analysis scripts

- Use free -m with division instead of free -g to avoid rounding (#1)
- Add = and ?= to Makefile dependency regex patterns (#2, #7)
- CPU calculation now uses /proc/stat delta (two reads) (#3, sonic-net#14)
- Fix misleading 'critical path estimate' comment (#4)
- Fix parallelism timeline comment (60s not 10s) (#5)
- Include after-relationship packages in fan stats (#6)
- Guard disk I/O division by zero when INTERVAL<=1 (#8)
- Remove unused elapsed_line variable (#9)
- Remove redundant LIBSWSSCOMMON_DBG check (#10)
- Remove active_make_jobs from CSV header comment (#11)
- Wire up _RDEPENDS parsing to build reverse deps (#12)
- Remove unnecessary 'if v' filter on rdeps JSON (#13)
- Remove unused REPORT_FORMAT parameter (sonic-net#15)
- Add cycle detection to critical path algorithm (sonic-net#16)
- Add execute permission check for companion scripts (sonic-net#17)

Signed-off-by: Rustiqly <rustiqly@users.noreply.github.com>

---------

Signed-off-by: Rustiqly <rustiqly@users.noreply.github.com>
Co-authored-by: Rustiqly <rustiqly@users.noreply.github.com>
apannerselva pushed a commit that referenced this pull request May 6, 2026
…dating udevd rules (sonic-net#26343)

- Why I did it
On SONiC SmartSwitch platforms with DPUs, systemd-udevd crashes with SIGABRT on every reboot when DPU firmware initialization is slow. During the initramfs boot phase, a standalone systemd-udevd daemon is started to handle device discovery. If DPU firmware takes longer than the 60-second udevadm settle timeout (BlueField-3 DPUs can take 120 seconds each in the failure case when they are stuck), the initramfs cannot stop this udevd before switch_root. The stale process survives into the real system but is never chrooted into the overlayfs root, leaving it with a broken filesystem view. When dpu-udev-manager.sh writes udev rules, the stale udevd detects the change and crashes on an assertion in systemd's chase() path resolution (assert(path_is_absolute(p)) at chase.c:648), because dir_fd_is_root() returns false for a process whose root still points to the initramfs rootfs rather than the overlayfs.

This triggers a systemd issue : systemd/systemd#29559 which maintainers doesn't consider as a bug from systemd side. Raising this fix for our usecase.

Core was generated by `/usr/lib/systemd/systemd-udevd --daemon --resolve-names=never'.
Program terminated with signal SIGABRT, Aborted.
#0  0x00007f29fe7f695c in ?? () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007f29fe7f695c in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f29fe7a1cc2 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007f29fe78a4ac in abort () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007f29fea50c11 in ?? () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so
#4  0x00007f29feb94a8b in chase () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so
#5  0x00007f29feb956e2 in chase_and_opendir () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so
#6  0x00007f29feb9a609 in conf_files_list_strv () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so
#7  0x00007f29fea913e8 in config_get_stats_by_path () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so
#8  0x0000559f295519cf in ?? ()
#9  0x0000559f29553a77 in ?? ()
#10 0x00007f29fec36055 in ?? () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so
#11 0x00007f29fec3668d in sd_event_dispatch () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so
#12 0x00007f29fec394a8 in sd_event_run () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so
#13 0x00007f29fec396c7 in sd_event_loop () from /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so
sonic-net#14 0x0000559f29545820 in ?? ()
sonic-net#15 0x00007f29fe78bca8 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
sonic-net#16 0x00007f29fe78bd65 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
sonic-net#17 0x0000559f29545c51 in ?? ()

- How I did it
Added a kill_stale_udevd() function to dpu-udev-manager.sh that runs before writing the udev rules. It identifies the systemd-managed udevd PID via systemctl show, then kills any other systemd-udevd --daemon process that doesn't match -- these are leftover initramfs instances. If no stale process exists (e.g. DPUs are healthy and the initramfs udevd exited cleanly), the function is a no-op.

- How to verify it
Deploy the image on a SmartSwitch with DPUs in a state where firmware initialization times out (>60s per DPU) by stopping image installation before firmware install step
Reboot the switch
Verify no new systemd-udevd coredumps in /var/core/
Verify the stale process was killed: journalctl -b 0 | grep dpu-udev-manager should show killing stale initramfs udevd PID (systemd udevd is PID )
Verify systemd-udevd.service is healthy: systemctl status systemd-udevd should show active (running)
Verify DPU udev rules were written: cat /etc/udev/rules.d/92-midplane-intf.rules should contain the DPU interface naming rules

Signed-off-by: Hemanth Kumar Tirupati <tirupatihemanthkumar@gmail.com>
xq9mend and others added 19 commits May 29, 2026 17:05
…ic-net#27565)

Why I did it
SONiC does not set kernel.yama.ptrace_scope, so it inherits the kernel boot default of 0 (no restrictions). Setting it to 2 restricts ptrace attachment to processes with CAP_SYS_PTRACE, closing same-uid cross-session snooping and FD-theft vectors via pidfd_getfd(2). Operator tooling (sudo gdb, sudo strace) is unaffected.

Work item tracking
Microsoft ADO:
How I did it
Added kernel.yama.ptrace_scope=2 to files/image_config/sysctl/90-sonic.conf.
What: Switches platform/components/docker-gbsyncd-milleniob to build on the trixie config-engine base instead of bookworm — updates docker-gbsyncd-milleniob.mk to use DOCKER_CONFIG_ENGINE_TRIXIE and SONIC_TRIXIE_DOCKERS / SONIC_TRIXIE_DBG_DOCKERS, adds SSWSYNCD to the image dependencies, and drops the bundled files/dsserve copy from the Dockerfile (now provided via the sswsyncd debian package).

Why: Part of the platform-wide move from bookworm to trixie; the in-tree dsserve binary is being retired in favor of the one shipped by sswsyncd.

How: Replace BOOKWORM references with TRIXIE in the .mk, add $(SSWSYNCD) to _DEPENDS, and remove the COPY files/dsserve line in Dockerfile.j2 while leaving the chmod on the now-installed path.

Testing: Azure.sonic-buildimage CI green; reviewer approval from @saiarcot895.

Signed-off-by: govi-nokia <govindaraj.haridass@nokia.com>
…cally (sonic-net#27617)

#### Why I did it
platform/vpp
```
* 756648b - (HEAD -> master, origin/master, origin/HEAD) Add VPP patch 0010: opt-in inner-aware flow hash for IPinIP/GRE/NVGRE (sonic-net#234) (14 hours ago) [Jianquan Ye]
```
#### How I did it
#### How to verify it
#### Description for the changelog
…atically (sonic-net#27600)

#### Why I did it
src/sonic-utilities
```
* 45ba12ab - (HEAD -> master, origin/master, origin/HEAD) [DPU] Add optional DPU flow dump to techsupport collection (sonic-net#4525) (33 hours ago) [Vivek]
* 7164a654 - Dualtor neighbor flush inconsistent neighbors (sonic-net#4556) (34 hours ago) [Yawen]
```
#### How I did it
#### How to verify it
#### Description for the changelog
…ically (sonic-net#27618)

#### Why I did it
src/sonic-dash-ha
```
* 0e8e827 - (HEAD -> master, origin/master, origin/HEAD) Fix handling of health signals in NPU-driven HA (sonic-net#170) (8 hours ago) [Changrong Wu]
* 1813236 - [ci] Update PR checker pipeline dependencies. (sonic-net#173) (22 hours ago) [Liu Shilong]
```
#### How I did it
#### How to verify it
#### Description for the changelog
…D automatically (sonic-net#27619)

#### Why I did it
src/sonic-platform-daemons
```
* ee27a02 - (HEAD -> master, origin/master, origin/HEAD) [chassisd] Add testbed script for DPU reboot cause persistence (sonic-net#826) (2 hours ago) [Vasundhara Volam]
```
#### How I did it
#### How to verify it
#### Description for the changelog
…lly (sonic-net#27598)

#### Why I did it
src/sonic-swss
```
* 31509b2 - (HEAD -> master, origin/master, origin/HEAD) muxorch: fix shared-MAC neighbor recovery in updateFdb (sonic-net#4507) (11 hours ago) [Nikola Dancejic]
* f54b71e - hftelorch: minor improvements and cleanups for high frequency telemetry (sonic-net#4315) (11 hours ago) [Ze Gan]
* c89e8af - [countersyncd]: resolve object names by template id (sonic-net#4316) (11 hours ago) [Ze Gan]
* bdbf331 - [orchagent/dash]: Remove retry logic, add failure handling and exception safety (sonic-net#4566) (24 hours ago) [Lawrence Lee]
* 8f06cfd - Skip swss.rec updates for high volume dash child objects (sonic-net#4574) (30 hours ago) [prabhataravind]
* 5303266 - [azp] Download libyang3 in the PR build pipeline (sonic-net#4618) (31 hours ago) [Lawrence Lee]
* 8a9a11a - [countersyncd]: avoid blocking async actor loops (sonic-net#4319) (33 hours ago) [Ze Gan]
* 1069e8e - [countersyncd]: make main actor supervision explicit (sonic-net#4320) (33 hours ago) [Ze Gan]
```
#### How I did it
#### How to verify it
#### Description for the changelog
…omatically (sonic-net#27599)

#### Why I did it
src/sonic-swss-common
```
* 56a5f28 - (HEAD -> master, origin/master, origin/HEAD) LruDedup queue policy for Notification Consumer (17 hours ago) [senthil-nexthop]
* 3110aaa - swsscommon: expose batched ZmqProducerStateTable APIs to SWIG (sonic-net#1188) (26 hours ago) [Dawei Huang]
```
#### How I did it
#### How to verify it
#### Description for the changelog
…lly (sonic-net#27459)

#### Why I did it
src/sonic-gnmi
```
* 44e6d08 - (HEAD -> master, origin/master, origin/HEAD) Revert "Add DPU_COUNTERS_DB virtual path handling for DASH_METER and ENI coun…" (sonic-net#686) (32 hours ago) [yijingyan2]
* e7d80c6 - Add support for InterfaceCounter vpath (sonic-net#684) (2 days ago) [Feng-msft]
* 52484eb - Implements the frontend logic for gNSI Credentialz (sonic-net#672) (2 days ago) [niranjanivivek]
* 4a41db5 - Add additional allowlist tables (sonic-net#681) (2 days ago) [Leyza]
* 4a07685 - [gnoi] SetPackage: auto-resolve version from image when not provided (sonic-net#679) (3 days ago) [ryanzhu706]
* 3184ef7 - [gnoi] expand File.Put whitelist to /host/ + mkdir-p parent dirs (sonic-net#678) (8 days ago) [Dawei Huang]
* 4cd908e - Add DPU_COUNTERS_DB virtual path handling for DASH_METER and ENI counters (sonic-net#665) (10 days ago) [Lawrence Lee]
```
#### How I did it
#### How to verify it
#### Description for the changelog
…ic-net#27009)

* [Arista] Add 'sai_instru_stat_accum_enable=1' to Arista DNX SKUs

'sai_instru_stat_accum_enable=1' makes counters like credit-wd-del no
longer clear-on-read causing the output to accumulate in the output of
show queue counters as desired.

Signed-off-by: Nathan Wolfe <nwolfe@arista.com>

* Adding sai_instru_stat_accum_enable to permitted_list

Signed-off-by: Nathan Wolfe <nwolfe@arista.com>
…ically (sonic-net#27620)

#### Why I did it
src/sonic-redfish
```
* c11fe4e - (HEAD -> master, origin/master, origin/HEAD) Add Redfish API and gtest frameworks (#6) (33 hours ago) [Chinmoy Dey]
```
#### How I did it
#### How to verify it
#### Description for the changelog
…lly (sonic-net#27625)

#### Why I did it
src/sonic-gnmi
```
* d843728 - (HEAD -> master, origin/master, origin/HEAD) MixedDbClient: batch ZMQ Set/Del for multi-key gNMI updates (sonic-net#27250) (sonic-net#675) (81 minutes ago) [Dawei Huang]
```
#### How I did it
#### How to verify it
#### Description for the changelog
…lly (sonic-net#27626)

#### Why I did it
src/sonic-swss
```
* dcd97c9 - (HEAD -> master, origin/master, origin/copilot/research-initsaifailuretable, origin/HEAD) LruDedup queue policy for Notification Consumer (sonic-net#4586) (20 hours ago) [senthil-nexthop]
```
#### How I did it
#### How to verify it
#### Description for the changelog
- Why I did it
Support the SONiC CLIs to change/reset SED password for Mellanox platforms.

- How I did it
Install sedutil
Implement the relevant abstract methods in Mellanox SedMgmt(BaseSedMgmt).

- How to verify it
config sed change-password
config sed reset-password
…-1 (sonic-net#27605)

Signed-off-by: Pavan Naregundi <pnaregundi@marvell.com>
…ayout regression test (sonic-net#27529)

* DNS: Fix DNS_OPTIONS schema to allow ConfigDB/Redis serialization

The original DNS_OPTIONS YANG model declared search, ndots, timeout
and attempts as direct leafs/leaf-list of the DNS_OPTIONS container.
This is not a valid layout for ConfigDB: SONiC's Redis-backed schema
requires a two-level container structure where the outer container
maps to a table and the inner container maps to a row key.  With
DNS_OPTIONS as a single-level container there is no row identifier
to serialize against, so commits to config_db are rejected.

This was a mistake in my original implementation that went unnoticed
because the existing coverage is YANG-only.  The yang_model_tests
and the full-config serialization/deserialization test exercise YANG
validation and JSON round-tripping, but neither simulates ConfigDB's
table/row constraints.  As a result every test passed while
DNS_OPTIONS was in practice impossible to persist - the feature has
never actually been usable in a live system.

Because DNS_OPTIONS could not be serialized to ConfigDB, there cannot
be any existing consumer reading it from config_db, so this schema
change has no compatibility impact - there is nothing in the field to
break.

Wrap the existing leafs in an inner GLOBAL container so DNS_OPTIONS
becomes the table and GLOBAL becomes its single well-known row,
following the pattern used by other singleton tables in SONiC.  The
resolv.conf.j2 template, sample config, and YANG tests are updated to
match.

DNS_OPTIONS was first accepted in 202511, so 202511 is also broken
and needs this backported.

Signed-off-by: Brad House <bhouse@nexthop.ai>

* sonic-yang-models: add ConfigDB layout regression test

Guard against a recurrence of the DNS_OPTIONS schema mistake by walking
every sonic-* YANG model at test time and asserting that every ConfigDB
table container has a row layer - either a `list` (keyed rows) or an
inner `container` (named singleton row).

A table whose direct children are only leaf/leaf-list has no row key
for ConfigDB to serialize against and cannot be persisted to Redis,
even though the YANG model itself validates and the JSON
serialization/deserialization round-trip test passes.  This was the
exact gap that let the original DNS_OPTIONS schema ship broken.

The test reuses the existing yang_model pytest fixture and matches the
module-filtering logic in sonic_yang_ext._build_confDbYangMap so that
helper-only modules (typedefs, groupings) are skipped the same way the
real ConfigDB xlate path skips them.

Signed-off-by: Brad House <bhouse@nexthop.ai>
[master] Upgrade SONiC package Versions
…ly (sonic-net#27637)

#### Why I did it
src/sonic-stp
```
* 8afb9e3 - (HEAD -> master, origin/master, origin/HEAD) azure-pipelines: migrate libyang1 deb install to libyang3 (sonic-net#90) (54 minutes ago) [Brad House - Nexthop]
```
#### How I did it
#### How to verify it
#### Description for the changelog
chartsai-nvidia and others added 29 commits June 22, 2026 17:49
)

- Why I did it
The dhcpservd readiness checker (wait_for_dhcpservd.sh) is run twice during dhcp_server
init: it has startsecs=0 and exits in ~13ms, so the supervisord dependent-startup plugin
re-spawns it. The first run removed /tmp/dhcpservd_ready, so the second run found no flag
and timed out after 120s, logging a spurious ERR ... wait_for_dhcpservd: timed out ... after 120s.
kea-dhcp4 was already up, so the container was healthy — the timeout was just log noise.

- How I did it
wait_for_dhcpservd.sh: don't remove the flag, only check for it — making the checker
idempotent so a re-spawned run exits 0 immediately. Stale-flag cleanup stays in
docker_init.sh. kea gating and the [dhcp_server] fix race issue between kea and dhcpservd sonic-net#26569 SIGUSR1/SIGHUP fix are unchanged.

- How to verify it
After restart, docker exec dhcp_server supervisorctl status shows dhcpservd and
kea-dhcp4 RUNNING and dhcpservd-ready EXITED, and syslog no longer logs the 120s timeout.

Signed-off-by: Charles Tsai <chartsai@nvidia.com>
…sonic-net#27833)

- Why I did it
On the BlueField-3 COM DPU (arm64-nvda_bf-bf3comdpu), show system-health detail
reports Hardware: Not OK with Reasons: Failed to get PSU information, even though
psu is already listed in the platform's health-check ignore list.

This is a regression. Adding PDB support for system-health changed the PSU/PDB check so
that it only skips when both psu and pdb are present in devices_to_ignore;
previously psu alone was sufficient. The DPU has no PSU/PDB hardware and runs with
psud disabled, so the PSU_INFO table is empty and the checker falls through to
"Failed to get PSU information". The DPU config only listed ["psu", "fan"], so the
new combined condition was never satisfied and the PSU check was no longer skipped.

- How I did it
Added pdb to devices_to_ignore in
device/nvidia-bluefield/arm64-nvda_bf-bf3comdpu/system_health_monitoring_config.json
(["psu", "fan"] -> ["psu", "fan", "pdb"]) so the PSU/PDB hardware check is fully
skipped on the DPU, matching the current "ignore both psu and pdb" condition.

- How to verify it
On a BF3 COM DPU running the updated image:

Run show system-health detail.
Confirm Hardware: Status: OK (no Failed to get PSU information reason).
Confirm there is no PSU  Not OK  PSU entry in the "monitor list".
Confirm psu, fan, and pdb appear in the "ignore list".
Before the fix the monitor list showed PSU  Not OK  PSU and Hardware: Status: Not OK;
after the fix the PSU entry is listed as ignored and hardware status is OK.

Signed-off-by: Connor Roos <croos@nvidia.com>
…27849)

- Why I did it
SN6810_LD needs more log storage for normal operation and troubleshooting.
Without a platform-specific override, the installer uses the default VAR_LOG_SIZE=4096, which may be insufficient on this platform.
Aligns SN6810_LD with other Mellanox LD platforms that already use VAR_LOG_SIZE=8192.

- How I did it
Updated device/mellanox/x86_64-nvidia_sn6810_ld-r0/installer.conf.
Set VAR_LOG_SIZE=8192 so the installer passes varlog_size=8192 in the kernel command line at boot.
No changes to installer scripts or platform API code; the existing installer.conf override mechanism handles this.

- How to verify it
Build ONIE image for x86_64-nvidia_sn6810_ld-r0.
Install image on SN6810_LD hardware or SimX.
After boot, verify /var/log size: df -h /var/log shows about 8G.
Verify kernel cmdline: cat /proc/cmdline | grep varlog_size=8192.
Confirm log rotation and syslog work under normal load.

Signed-off-by: Junchao-Mellanox <junchao@nvidia.com>
Signed-off-by: Roy Wen <roy@nexthop.ai>
Co-authored-by: saravanan sellappa <saravanan@nexthop.ai>
…27824)

- Why I did it
To make the SKU functional, switch it to FW-control until SW-control adds uneven-split support. The
SW-controlled variant will be re-introduced as a follow-up PR once the support lands.

- How I did it
In device/mellanox/x86_64-nvidia_sn5640-r0/Mellanox-SN5640-C508O1X2/:

Removed the SW-control-only files (they were symlinks into the SN5600-V256 SKU and are not consulted under FW control):
media_settings.json
optics_si_settings.json
Replaced the sai.profile symlink (was pointing to ../Mellanox-SN5640-C512S2/sai.profile) with a SKU-local file that preserves all SN5640 SAI keys and omits SAI_INDEPENDENT_MODULE_MODE (default behavior is FW-controlled).
Replaced the pmon_daemon_control.json symlink (was pointing to the SN5600-V256 SW-control file) with a SKU-local file that sets skip_xcvrd_cmis_mgr=true, so xcvrd does not start the CMIS state machine for these modules.
No code changes — config-only, scoped to a single SKU directory.

- How to verify it
Install on an SN5640 with the C508O1X2 layout (504 × 8x100G + cage 64 4x100G+1x400G + 2 × 1x25G).
Confirm on the device:
cat /usr/share/sonic/device/x86_64-nvidia_sn5640-r0/Mellanox-SN5640-C508O1X2/sai.profile
shows SAI_INDEPENDENT_MODULE_MODE=0 or the key doesn't exist.
cat .../Mellanox-SN5640-C508O1X2/pmon_daemon_control.json shows
"skip_xcvrd_cmis_mgr": true.
media_settings.json and optics_si_settings.json are absent from the SKU directory.
Verify all 512 × 100G downlinks, the 4 × 100G + 1 × 400G uplinks on cage 64, and both service ports come up oper-up.
Run the platform sanity / port-link tests on the SKU.

Signed-off-by: Shauli Taragin <staragin@nvidia.com>
- Why I did it
To enable warm-reboot on SN5640 HWSKUs

- How I did it
Updated vendor specific configuration files

- How to verify it
Run warm-reboot test cases

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
…ically (sonic-net#28036)

#### Why I did it
src/sonic-dash-ha
```
* 5df5d64 - (HEAD -> master, origin/master, origin/HEAD) Change handling of HA_SET up/down (dp_channel) (sonic-net#178) (9 hours ago) [Changrong Wu]
```
#### How I did it
#### How to verify it
#### Description for the changelog
…atically (sonic-net#28037)

#### Why I did it
src/sonic-utilities
```
* ec69c337 - (HEAD -> master, origin/master, origin/HEAD) [EVPN-MH] Add CLI commands for EVPN VXLAN Multihoming configuration (sonic-net#4247) (11 hours ago) [Barry Friedman]
```
#### How I did it
#### How to verify it
#### Description for the changelog
…t#27941)

- Why I did it
The DPKG cache only refreshed a target's .dep/.dep.sha when its dependency-file contents changed. Build flags live in a separate .flags file, but .deb/docker targets depend on .dep, not .flags. So a flag-only change (e.g. ENABLE_ASAN) can leave .dep's timestamp untouched, which make will see as up-to-date and a stale cached artifact will be reused instead of rebuilding with ASan.

- How I did it
In SHA_DEP_RULES (Makefile.cache), when the dependency SHA is unchanged but a .flags file is in the modified prerequisites ($?), touch the .dep file. This bumps its timestamp (contents unchanged) so the recipe re-runs on any flag change and LOAD_CACHE picks the right entry.

- How to verify it
The .flags file always shows the new value, so check the build log instead. After a non-ASan build, rm -rf target/sonic-mellanox.bin and rebuild with ENABLE_ASAN=y:

grep "FLAGS DEPENDS" target/debs/trixie/swss_1.0.0_amd64.deb.log
grep -c fsanitize target/debs/trixie/swss_1.0.0_amd64.deb.log

Without the change the old version of swss will be included:
1 mellanox amd64 trixie n trixie

Including the change fixes the flag that it was built with and triggers a rebuild:

1 mellanox amd64 trixie y trixie

Which release branch to backport (provide reason below if selected)
 202511 -> Using this change to optimize ASAN builds

- Description for the changelog
Rebuild cached targets when only build flags change

Signed-off-by: Connor Roos <croos@nvidia.com>
Signed-off-by: Dakota Crozier <dakotac@arista.com>
…rabilities (sonic-net#28038)

Why I did it
S360 / Trivy container scanning flags the docker-ptf image's gnmic binary
(/usr/local/bin/gnmic) with HIGH golang.org/x/* CVEs. The gnmic build was
changed (sonic-net#27059) to build from a pinned upstream commit (653dc5dd), which
locks older modules — golang.org/x/crypto v0.50.0, x/net v0.53.0,
x/text v0.36.0, x/sys v0.43.0. Unlike the grpcurl build step in the same
Dockerfile, the gnmic step did not upgrade these, so the vulnerable
versions ship in the image.

Work item tracking
Microsoft ADO: 38538287
How I did it
In dockers/docker-ptf/Dockerfile.j2, added
go get golang.org/x/crypto@latest golang.org/x/net@latest golang.org/x/text@latest golang.org/x/sys@latest golang.org/x/oauth2@latest && go mod tidy
before go build in the gnmic RUN block, matching the existing grpcurl step.

How to verify it
Build target/docker-ptf.gz, load it, and scan:

trivy image docker-ptf:latest --scanners vuln --ignore-unfixed
usr/local/bin/gnmic should report 0 fixable vulns (x/* upgraded to latest).

Which release branch to backport (provide reason below if selected)
Tested branch (Please provide the tested image version)
docker-ptf built from this branch on latest master
Description for the changelog
[docker-ptf]: Upgrade gnmic golang.org/x/* dependencies to address HIGH CVEs
…-net#28016)

What: Changed get_name() in switch_host_module.py to return "SWITCH_HOST" instead of "SWITCH_HOST{module_index}".
Why: There will be only one SwitchHost Module in the Chassis object, so the module index appended to the name is unnecessary.
How: Removed the module_index suffix from the returned name string in the get_name() method.
Testing: All CI checks passed (Azure.sonic-buildimage builds across all platforms, CodeQL, Semgrep, DCO, EasyCLA all SUCCESS).

Signed-off-by: Chandrasekaran Swaminathan <chander@nexthop.ai>
What: Added "DefaultDependencies=no" to sonic-usb-network-udev-init.service and usb-network-init.service (nexthop aspeed platform).
Why: systemd reported an ordering cycle (networking.service <-> usb-network-init.service <-> sonic-usb-network-udev-init.service <-> basic.target), caused by the implicit DefaultDependencies=yes adding After=basic.target while networking is WantedBy basic.target.
How: These services must run before networking (which lives in basic.target), so disabling default dependencies breaks the implicit After=basic.target edge and resolves the cycle.
Testing: All CI checks passed (Azure.sonic-buildimage builds across all platforms, CodeQL, Semgrep, DCO, EasyCLA all SUCCESS). Verify: USB service up and running with no systemd cyclic dependency complaints.

Signed-off-by: Chandrasekaran Swaminathan <chander@nexthop.ai>
What: Changed CONSOLE_BAUD_RATE from 9600 to 115200 in device/nexthop/arm64-nexthop_b27-r0/switch_cpu_console.conf.
Why: The conf file from which the DB is initialized had an incorrect console speed value.
How: Set the baud rate to 115200 to match the hardware settings.
Testing: All CI checks passed including full Elastictest KVM suite (t0/t1/t2/dualtor/dpu/multi-asic), Azure builds across all platforms, CodeQL, Semgrep, DCO, EasyCLA all SUCCESS. Verify: console speed matches h/w settings.

Signed-off-by: Chandrasekaran Swaminathan <chander@nexthop.ai>
What: Moved the Switch-BMC persistent event-log directory/file creation (/host/bmc + /host/bmc/event.log) in files/image_config/platform/rc.local to run before firsttime_exit during first boot.
Why: Fixes sonic-net#27573 - the /host/bmc dir/file must exist on first boot; pmon runs as non-root so it cannot create it, causing permission-denied failures.
How: Relocated the switch_bmc=1 guarded mkdir/touch/chmod block ahead of firsttime_exit in rc.local (eMMC-backed /host so events survive reboots; /var/log tmpfs not used).
Testing: All CI checks passed incl. full Elastictest KVM suite (t0/t1/t2/dualtor/dpu/multi-asic) and all platform builds. prajjwal-arista validated the fix on retest; dir/file present on first and subsequent boots.

Signed-off-by: Judy Joseph <jujoseph@microsoft.com>
…h_sai_thrift import on Trixie/OS13 DUTs) (sonic-net#27947)

* [ci][docker-ptf] Bump docker-ptf base to Trixie (Debian 13 / py3.13)

docker-ptf was still built FROM debian:bookworm (python3.11) while SONiC
images moved to Debian 13 Trixie (python3.13). A Trixie image's
python-saithrift deb is built for py3.13, so its switch_sai_thrift egg
(saithrift-0.9-py3.13.egg) no longer matches the py3.11 egg path baked into
the PTF virtualenv easy-install.pth, breaking "import switch_sai_thrift" in
the qos saithrift tests (ReleaseAllPorts).

Align docker-ptf with the SONiC OS:
- FROM debian:bookworm -> debian:trixie
- libboost-atomic1.81.0 -> libboost-atomic1.88.0 (trixie)
- python3.11 -> python3.13 virtualenv/site-packages paths
- saithrift-0.9-py3.11.egg -> saithrift-0.9-py3.13.egg

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Liping Xu <108326363+lipxu@users.noreply.github.com>

* [ci][docker-ptf] Use ntpsec on Trixie (ntp/ntpdate removed in Debian 13)

Debian 13 (Trixie) dropped the legacy `ntp` and `ntpdate` packages. Install
`ntpsec` / `ntpsec-ntpdate` on the py3 (Trixie) PTF and keep `ntp`/`ntpdate`
only for the legacy mixed/buster image. Verified the full docker-ptf apt list
installs cleanly on debian:trixie.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Liping Xu <108326363+lipxu@users.noreply.github.com>

* docker-ptf: resolve saithrift egg path dynamically instead of moving base to Trixie

Revert the docker-ptf base back to debian:bookworm and instead fix the
original problem (switch_sai_thrift import failure on Trixie/OS13 DUTs)
at its source: the venv easy-install.pth pinned a specific saithrift egg
version (saithrift-0.9-py3.11.egg). When test_update_saithrift_ptf swaps
in a saithrift deb built for a different Python minor (py3.13 on Trixie),
the pinned path goes stale and switch_sai_thrift fails to import.

Replace the pinned path with an executable .pth line that globs for the
saithrift egg at interpreter startup, so whichever pyX.Y egg is installed
is found. saithrift is thrift-generated pure Python, so the egg loads
across py3.x without needing the ptf base to match the DUT image.

This avoids moving docker-ptf to Trixie, which pulled in bookworm-only
p4lang debs (p4lang-bmv2 -> libthrift-0.17.0, p4lang-pi -> libabsl20220623)
that are not installable on Trixie and broke the vs build target.

Signed-off-by: Liping Xu <108326363+lipxu@users.noreply.github.com>

* ci: re-trigger CI (stale aspeed_arm64 bmcweb build)

Signed-off-by: Liping Xu <108326363+lipxu@users.noreply.github.com>

---------

Signed-off-by: Liping Xu <108326363+lipxu@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ious dockerd 404 (sonic-net#27991)

* [memory_checker] Skip containers removed during listing to avoid spurious dockerd 404

Signed-off-by: Antonio Hui <antonio@nexthop.ai>

* Trigger CI

Signed-off-by: Antonio Hui <antonio@nexthop.ai>

---------

Signed-off-by: Antonio Hui <antonio@nexthop.ai>
…lly (sonic-net#28059)

#### Why I did it
src/sonic-gnmi
```
* f3a6e5b - (HEAD -> master, origin/master, origin/HEAD) Add v2r mapping for VoQ counters in VoQ Chassis (sonic-net#705) (10 hours ago) [Vineet Mittal]
```
#### How I did it
#### How to verify it
#### Description for the changelog
… automatically (sonic-net#28062)

#### Why I did it
src/sonic-platform-common
```
* b354f6f - (HEAD -> master, origin/master, origin/HEAD) Refactory XcvrApiFactory to use ModuleEepromLowerMemoryInfo directly (sonic-net#699) (2 hours ago) [Brian Gallagher]
```
#### How I did it
#### How to verify it
#### Description for the changelog
…atically (sonic-net#28063)

#### Why I did it
src/sonic-utilities
```
* d68cdd65 - (HEAD -> master, origin/master, origin/HEAD) Enhance FGNHG CLI to filter by and show vnet + prefix (sonic-net#4510) (3 hours ago) [Navdha Jindal]
* 33c1c482 - [GCU][MGGMT_INTERFACE] Fix the remove forced_mgmt_routes unexpected value (sonic-net#4423) (6 hours ago) [Marty Y. Lok]
* dd82c89b - Issue 24036: Add help for 'show ip route' subcommands (sonic-net#4123) (12 hours ago) [Anders Linn]
```
#### How I did it
#### How to verify it
#### Description for the changelog
…onic-net#27764)

* [pddf] cpldmux: Suppress routine channel switching logs by default

During normal operation, background daemons frequently call the default
select and deselect functions to switch MUX channels. The current implementation
prints channel status messages at KERN_INFO level on every invocation, leading
to high log volume in both dmesg and syslog.

To reduce log clutter, introduce a DEBUG macro and wrap these verbose
pddf_dbg() calls within #if DEBUG blocks. This ensures the information is
only captured when active driver debugging is required.

Signed-off-by: nonodark <ef67891@yahoo.com.tw>

* chore: trigger CI/CD

Signed-off-by: nonodark <ef67891@yahoo.com.tw>

* chore: trigger CI/CD

Signed-off-by: nonodark <ef67891@yahoo.com.tw>

* Refactor: remove routine channel-switching logs from hot paths entirely

Signed-off-by: nonodark <ef67891@yahoo.com.tw>

---------

Signed-off-by: nonodark <ef67891@yahoo.com.tw>
- Why I did it
Process crash of syncd should be reflected as control plane down to NPU. For that to happen, this must be marked as a critical process

- How I did it
Updated critical process configuration to include the syncd program, ensuring proper system monitoring and reliability for the NVIDIA BlueField platform.

- How to verify it
Ran test_ha_dpu_power_down.py test
Signed-off-by: Vivek Reddy <vkarri@nvidia.com>
…et#27420)

Signed-off-by: Ravi Minnikanti <rminnikanti@marvell.com>
…6 iptables management (sonic-net#27863)

Fixes sonic-net#28030

The Trixie image uses Docker 28.5.2, while the previous Bookworm environment used Docker 24.0.2. Docker 27+ changed IPv6 bridge/iptables behavior. As a result, dockerd now attempts IPv6 iptables programming during startup. On SmartSwitch first boot this can happen before the kernel netfilter path is fully ready, causing docker.service failure and cascading config/interface failures.

Add --ip6tables=false to restore the pre-upgrade behavior where Docker does not program IPv6 iptables rules.

#### Why I did it
Docker 28 (introduced during the Trixie upgrade) enables additional IPv6 iptables programming during daemon startup. On SmartSwitch first boot this can race with early platform/kernel initialization and cause docker.service startup failure.

#### How I did it
Added:

--ip6tables=false

to Docker daemon startup options in:

/etc/systemd/system/docker.service.d/docker.service.conf

This disables Docker IPv6 iptables rule programming during daemon startup.

#### How to verify it
Do sonic-to-sonic upgrade using sonic-installer install (.34 image)
reboot

Before change:

docker.service failed during first boot,
interfaces-config.service failed
eth0 management IP missing.

After change:

docker.service started successfully,
interfaces-config.service completed successfully,
management eth0 configuration applied correctly.


Signed-off-by: Ramesh Raghupathy <ram@cisco.com>
Change-Id: I20c42d1f234ab70c6379f3e315a29fc86a9dcbe6

Why I did it
This PR adds buffer template support for Micas M2-W6940 series switches.

Work item tracking
Microsoft ADO (number only):
How I did it
Added the following device-specific buffer configuration templates under device/micas/:
M2-W6940-128QC (x86_64-micas_m2-w6940-128qc-r0)
M2-W6940-64OC (x86_64-micas_m2-w6940-64oc-r0)
M2-W6940-128X1-FR4/M2-W6940-64X1-FR4 (x86_64-micas_m2-w6940-128x1-fr4-pure-pd-r0)
M2-W6940-128X1-FR4/M2-W6940-64X1-FR4 (x86_64-micas_m2-w6940-128x1-fr4-r0)

Change-Id: I20c42d1f234ab70c6379f3e315a29fc86a9dcbe6

Signed-off-by: Yifei Li <yifei@micasnetworks.com>
modify cpo bailly device, add rlm dom and laser info

Why I did it
modify cpo bailly device, add rlm dom and laser info

Work item tracking
Microsoft ADO (number only):
How I did it
modify cpo bailly device, add rlm dom and laser info

How to verify it
show interfaces transceiver eeprom -d Ethernet
show interfaces transceiver status Ethernet
The relevant commands can display the information related to CPO RLM.

Signed-off-by: Kroos <kroos@micasnetworks.com>
…onic-net#27470)

1) fixed 2 rare race conditions
2) optimized platform drivers
3) added a hwsku for 2 port config
4) fixed a hwmon temp sensor reading issue
5) updated thermal alg

Signed-off-by: hehuang <henry.1.huang@nokia.com>
Added support for local ARS (Adaptive Routing and Switching).

HLD: sonic-net/SONiC#1958

Signed-off-by: VladimirKuk <31180446+VladimirKuk@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.