SONiC 202211 Release Notes

This document captures the new features added and enhancements done on existing features/sub-features for the SONiC 202211 release.

Table of Contents

Branch and Image Location

Branch : https://github.com/Azure/sonic-buildimage/tree/202211
Image : https://sonic-build.azurewebsites.net/ui/sonic/pipelines (Example - Image for Broadcom based platforms is here)

Dependency Version

FeatureVersion
Linux kernel versionlinux_5.10.0-18-2-$(5.10.140)
SAI versionSAI v1.11.0
FRR8.2.2
LLDPD1.0.4-1
TeamD1.28-1
SNMPD5.9+dfsg-3+b1
Python3.9.2-1
syncd1.0.0
swss1.0.0
radvd2.17-2~bpo9+1
isc-dhcp4.4.1-2
sonic-telemetry1.1
redis-server/ redis-tools5.0.3-3~bpo9+2
Debian versionContinuous to use Bullseye (Debian version 11)

Note : The kernel version is migrated to the version that is mentioned in the first row in the above 'Dependency Version' table.

Security Updates

  1. Kernel upgraded from 5.10.103-1 to 5.10.140-1 for SONiC release.
    Change log: https://tracker.debian.org/media/packages/l/linux/changelog-5.10.140-1

  2. Docker upgraded from 20.10.17-debian-stretch. to 20.10.22-debian-stretch.
    Change log: https://docs.docker.com/engine/release-notes/#201022

Feature List

FeatureFeature DescriptionHLD PR / PR tracking
Add syslog message rate limit configuration per containerThis feature allows user to configure SystemLogRateLimitInterval and SystemLogRateLimitBurst for host, containers. There is no rate limiting configured on host side for now.1049, 22, 2454, 12488, 12490, 12489 &6627
Auto Neg EnhancementThis feature does not change the existing SONiC architecture. This feature introduces a few new CLI commands which will fit in sonic-utilities. And this feature also requires to change the configuration flow for port auto negotiation attributes which will be covered in orchagent.924, 1038, 2359, 614 & 2124
BRCM KNET sflow psample API compliance upgradeThis feature is an enhancement on BRCM KNET modules to support new psample definitions from sflow dropmon feature11709 & 10
Build Time Improvement - Version cache frameworkThis feature gives the Functionality and High level design of the build improvement in SONiC. This feature provides improvements in three essential areas. Multi user build
- Parallel build using Native docker mode.
- OverlayFS to virtualize the build root.
Build time Optimization
- Parallel make jobs - Passing dh '-parallel' flags to all the build targets.
- Binary image build optimization
- Use tmpfs and OverlayFS to speed up the build process.
Build caching
- Version cache - Package cache support for build componets that are downloaded from external world.
- Image cache support for installer image componets.
942, 10352, 12000, 12001 & 12005
Bullseye Docker Migration - FRR, PDE, BRCM Platform, ICCPDThis implements the migration from buster to bullseye.10864, 10836, 30, 11777 & 12097
Bulk countersThis feature implements the design specification for bulk counter feature on SONiC. SONiC flex counter infrastructure shall utilize bulk stats API to gain better performance. This feature discusses how to integrate these two new APIs to SONiC.1009 & 1094
General config CLI validation by YANG modelCurrently, SONiC config fields updates are validated ad-hoc, and much of the validation criteria are duplicated both in python (hard-coded validation specs) and in YANG models. In this release, the Refactor code is to utilize preexisting YANG models for config validation, instead of duplicating the validation specs in both YANG and in python.1072, 2147, 12497, 12504, 2190, 2420, 2430, 2452, 2481, 2498, 2526, 2604 & 2755
gNMI interface for configSONiC should provide a gNMI/gNOI server interface where the client can communicate with SONiC (server) through the interface using their respective gRPC libraries based on ConfigDB/ApplDB/StateDB/CountersDB schema or SONiC Yang schema. sonic-telemetry provides gNMI/gNOI server interface. And sonic-telemetry provides only telemetry via gRPC, and the gap is configuration. This feature update sonic-telemetry to support configuration.996, 7, 58, 59, 60, 1, 10948 & 12750
Incremental port configuration updateThis feature fix the two issues on portsyncd and portmgrd. portsyncd and portmgrd both handle PORT table changes in CONFIG_DB and write APPL_DB according to configuration change. portmgrd handles fields including "mtu", "admin_status" and "learn_mode", portsyncd handles all fields.985 & 2305
Link TrainingThis feature does not change the existing SONiC architecture, while it has to change the configuration flow for port link training which will be covered in orchagent.
This feature describes the design of following requirement:
- Allow user to configure link training
- Allow user to get the operational link training status
915, 10025, 1038, 2359, 614, 2071 &1434
Make syslog log level configuration persistentTo make the loglevel persistent to reboot, we will move the Logger's tables in LOGLEVEL DB to CONFIG DB. Since the Config DB is already persistent, the log level will also be persistent to reboot. The log level will be saved using the "config save" CLI command.1041, 687, 2370, 12067, 11996, 12657, 271, 56, 2507, 64 & 129
NPU MDIO Access Support and gbsyncd EnhancementThis feature describes the high level design of the gbsyncd mdio access function with the focus on using the mdio bus from the switch NPU. This function primarily consists of two new syncd classes, one new mdio access library, addition of SAI switch api and changes in switch NPU configuration. The function helps the gbsyncd and PAI library to access the mdio devices (External PHYs). One of the new syncd class also helps to dynamically load PAI library and MDIO access library at runtime so that only a single gbsyncd docker can work for different switch platforms with external PHY.1045, 11303, 1507 & 1080
OSFP Transceiver monitoringThis feature implements the refactor SFP code to remove code duplication and to be able to use the latest features available in new APIs.10317
PDDF QSFPs Low Power Mode SupportThis implements a change in modified pddf_sfp.py to include get/set APIs for lpmode in case of QSFP. As it was unable to get/set low power mode for QSFP28 and QSFP+11786
PINS Generic SAI ExtensionsThis feature implements, P4RT-APP and P4Orch are two new components introduced in the SONiC control plane to support PINS. P4RT-APP interfaces to a P4RT Client, reads messages from a client and produces data in APPL_DB. P4Orch subscribes to APPL_DB tables produced by P4RT-APP, translates data received from APPL_DB to respective SAI attributes and after successful cross object dependency resolution calls appropriate SAI APIs.1088, 704, 17 & 2506
PINS Runtime ConfigurationThe P4RT application is a new component being introduced into SONiC as part of the PINS proposal. P4RT is an API which allows a controller to push a forwarding pipeline configuration (compiled from a P4 program) and control different elements of that pipeline over a gRPC connection.826 & 10499
RJ-45This implementation is an enhancement on added support to the RJ45 port in SONiC1030, 10377, 11336, 11460, 2112, 2111, 2110, 247, 2249, 288 & 5927
Security California LawThe California Law feature implements the requirements, architecture and configuration details of California Law feature in switches SONIC OS based. Feature is designed to add California SB-327 conformance.1077, 12678 & 6863
Security Secure bootSecure Boot is a feature found in the startup software for your computer that's designed to ensure your computer starts safely and securely by preventing unauthorized software like malware from taking control of your Device at boot-up.1028, 12692, 298 & 2532
Setting RIF loopback action to dropIP interface loopback action is a feature that allows user to change the way router handles routed packets for which egress port equals to ingress port.
When loopback action is configured to drop, those packets will be dropped. Drppoed packets due to loopback action are counted in rif statistics.
When loopback action is configured to forward, those packets will be forwarded as the pipeline defined.
1006, 11012, 2192, 2307, 5956 & 5871
Simplified Switch System Integration Program (S3IP) sysfsThe S3IP sysfs specification defines a unified interface to access peripheral hardware on devices from different vendors, making it easier for SONiC to support different devices and platforms.1068, 12386, 12887, 12888, 12889, 12890, 12891, 12892, 12893, 12894, 12895 &12896
SONiC ECMP calculatorThe purpose of ECMP calculator is to calculate which IP interface ECMP will choose and return the physical interface packet will egress from. Packet is defined by a JSON file given as an argument to the tool. An equal cost multipath (ECMP) is formed when routing table contains multiple next hop addresses for the same destination IP address. ECMP will load balance the outbound traffic between the IP interfaces.1163, 12482, 12840, 2538, 13051, 13493 & 13814
SONIC YANG - VxLAN, SNMPThis feature lists the configuration commands schema applied in the SONiC eco system. All these commands find relevance in collecting system information, analysis and even for trouble shooting.7294, 10828, 10550
SRv6 uSID support in SONiC dataplane - uN, uAThis implements an enhanced orchagent to support uSID programming instructions in this IETF draft. Current SAI API definitions already support uSID instructions. No SAI API change required in scope of this document. Current version of routing protocols in SONiC does not support SRv6, it is not in the scope of this document to add such a support for FRR routing stack.1034 & 2335
Structured message by streaming telemetryThis implements the SONiC to stream events occurring in SONiC switch (e.g BGP flap, process not running, ...) in real time via gNMI subscription model. The events are defined using versioned YANG schema.11618, 11639, 11848, 11973, 12059, 12270, 12290, 12554, 12563, 12659, 12687, 2446, 13, 41, 43, 44, 45, 2449, 667 & 672
Systemd bootchart integrationThis document describes an integration of one of systemd tools called systemd-bootchart. This tool is a sampling based system profiler that is used to analyze boot up performance but not limited to and can be used to collect samples after the system is booted. The output produced by systemd-bootchart is an SVG image.1001 , 11047 & 2195
Syslog Source IP configurationSSIP is a feature which allows user to change UDP packet source IP address. Any configured address can be used for source IP mangling. This might be useful for security reasons.
SSIP also extends the existing syslog implementation with VRF device and server UDP port configuration support. The feature doesn't change the existing DB schema which makes it fully backward compatible.
1002, 10992, 11363, 10991, 2191, 5943 & 5904

SAI APIs

Please find the list of API's classified along the newly added SAI features. For further details on SAI API please refer SAI_1.11.0 Release Notes

Contributors

SONiC community would like to thank all the contributors from various companies and the individuals who has contributed for the release. Special thanks to the major contributors - Alibaba, Aviz network, Broadcom, Cisco, Dell, Google, Intel, Microsoft, Nvidia, Tencent.