This document captures the new features added and enhancements done on existing features/sub-features for the SONiC 202205 release.
- Branch and Image Location
- Dependency Version
- Security Updates
- Feature List
- Known Issues
- SAI APIs
- Contributors
Branch : https://github.com/Azure/sonic-buildimage/tree/202205
Image : https://sonic-build.azurewebsites.net/ui/sonic/pipelines (Example - Image for Broadcom based platforms is here)
Feature | Version |
---|---|
Linux kernel version | linux_5.10.0-12-2-$(5.10.103-1) |
SAI version | SAI v1.10.2 |
FRR | 8.2.2 |
LLDPD | 1.0.4-1 |
TeamD | 1.28-1 |
SNMPD | 5.9+dfsg-3+b1 |
Python | 3.9.2-1 |
syncd | 1.0.0 |
swss | 1.0.0 |
radvd | 2.17-2~bpo9+1 |
isc-dhcp | 4.4.1-2 |
sonic-telemetry | 0.1 |
redis-server/ redis-tools | 5.0.3-3~bpo9+2 |
Debian version | Continues 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.
-
Kernel upgraded from 5.10.46-4 to 5.10.103-1 for SONiC release.
Change log: https://tracker.debian.org/media/packages/l/linux/changelog-5.10.103-1 -
Docker upgraded from 20.10.7-debian-stretch. to 20.10.17-debian-stretch.
Change log: https://docs.docker.com/engine/release-notes/#201017
The feature implements Link manager and warm reboot support for active-active dual ToRs. Active-active dual ToR link manager is an evolution of active-standby dual ToR link manager. Both ToRs are expected to handle traffic in normal scenarios. For consistency, we will keep using the term "standby" to refer inactive links or ToRs.
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 1005, 64, 248, 5413 & 627
SONiC is not desinged to work in backward compatibility with older vendor SAI implementations. SAI headers that SONiC's synd daemon is compiled against are taken from OCP SAI repository. So is taken from sonic-buildimage vendor's directory. This leads to a conflict that sometimes SAI in sonic-sairedis repository is updated but vendor SAI in sonic-buildimage is not. This implementation sorts out this conflicts.
Refer below mentioned PR for more details.
Pull Requests : 935
This change implements the addition of current date attribute to the "show version" output that includes the current date and hour on the switch.
Refer below mentioned PR for more details.
Pull Requests : 2086
This enhancement impliments the changes to attach the PSU related thermal sensors in the PSU instance. This is acheieved by adding a common class pddf_fan_drawer.py. This class uses the PDDF JSON to fetch the platform specific data. previously, the fan_drawer support was missing in PDDF common platform APIs. This resulted in 'thermalctld' not working and 'show platform fan' and 'show platfomr temperature' commands not working. As _thermal_list array inside PSU class was not initialized.
Refer below mentioned PR for more details.
Pull Requests : 10213
This feature Will not require a new SAI API, but vendors will have to implement this API for using this functionality
Refer below mentioned PR's for more details.
Pull Requests : 2098
This feature implements SONIC QSFPDD CMIS support to provide an unified common SFP parser for the QSFPDD transceivers. Enhance the pmon#xcvrd for the QSFPDD application initialization sequence and enhance the pmon#xcvrd for the QSFPDD diagnostics loopback controls
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 876, 219 & 217
The scope of this feature is to develop APIs for both CMIS and C-CMIS to support 400G ZR modules on SONiC.
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 769, 1076
This feature adds more options to filter output in show mac and fdbshow command. Introduced options for filter by address and filter by type.Added one more option to display only count.And also introduced show command to display fdb aging time in the switch.
Refer below mentioned PR's for more details.
Pull Requests : 1982
This feature impliments the determistic approach for Interface link bring-up sequence for all interfaces types i.e. below sequence to be followed:
- Initialize and enable NPU Tx and Rx path
- For system with 'External' PHY: Initialize and enable PHY Tx and Rx on both line and host sides; ensure host side link is up
- Then only perform optics data path initialization/activation/Tx enable (for CMIS complaint optical modules) and Tx enable (for SFF complaint optical modules)
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 916, 254 & 2277
The current QoS map architecture allows for port-based selection of each QoS map. However, we are not able to override the port-based QoS map for tunnel traffic. This design proposes a method to remapping DSCP and TC for tunnel traffic.
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 950, 10176, 2087, 1451, 1023, 10417, 10444, 600, 2171, 2190, 10496, 10565 & 10936
This feature implements the PBH to use ACL engine which match NVGRE/VxLAN packets and calculates hash based on user-defined rules. Hashing is configured based on inner 5-tuple: IP proto, L4 dst/src port, IPv4/IPv6 dst/src. A custom hashing can be configured for Regular/FG ECMP and LAG.
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 909, 586, 2169, 2093 & 5263
Currently, techsupport is run by invoking show techsupport either by orchestration tools or manually. The techsupport dump also collects any core dump files available in the /var/core/ directory. However upon the techsupport invocation be made event-driven based on core dump generation, that would improve the debuggability which is implimented on this enhancement.
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 939, 2116 & 10433
The feature SONiC fast-reboot is to be able to restart and upgrade SONiC software with a data plane disruption less than 30 seconds and control plane less than 90 seconds.
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 980, 11594, 1100, 2286, 6348, 12026, 1121 & 2365
Upgrade FRR to version 8.2.2. Build libyang2 required by FRR.
Refer below mentioned PR's for more details.
Pull Requests : 10691
This implements the replacement of SubscriberStateTable with ConfigDBConnector. In the past hostcfgd was refactored to use SubscriberStateTable instead of ConfigDBConnector for subscribing to CONFIG_DB updates due to a "blackout" period between hostcfgd pulling the table data down and running the initialization and actually calling listen() on ConfigDBConnector which starts the update handler.
Refer below mentioned PR's for more details.
Pull Requests : 10618
This feature is intended to cover the general approach and method for providing a flexible collection of diagnostic information items. It also considers the basic mechanisms to be used for obtaining the various types of information to be aggregated. It does not address specific details for collection of all supported classes of information.
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 49, 86 & 7816
This feature updates PDDF utils and common platform APIs for Debian Bullseye
Refer below mentioned PR's for more details.
Pull Requests : 9585
The docker images to debian bullseye for this release are listed below.
· docker-base-buster
· docker-config-engine-buster
· docker-swss-layer-buster
· docker-database
· docker-fpm-frr
· docker-lldp
· docker-macsec
· docker-mux
· docker-orchagent
· docker-platform-monitor
· docker-router-advertiser
· docker-snmp
· docker-teamd
· docker-sonic-telemetry
· docker-pmon-<platform>
· docker-gbsyncd-credo
· docker-dhcp-relay
· docker-restapi
· docker-sonic-p4rt
· docker-pde
This impliments the upgrade on nvidia platform for containers such as syncd / saiserver / syncd-rpc and pmon to bullseye
Refer below mentioned PR's for more details.
Pull Requests : 10580
With the implementation of NVGRE/GRE feature, the following is supported:
- User should be able to create NVGRE tunnel (L2 over L3 tunnel)
- User should be able to create VLAN to VSID mapper entries for the NVGRE tunnel.
- Both VLAN and Bridge to VSID mappers should be supported by the NVGRE tunnel
- Only the decapsulation mappers supported
- YANG model should be created in order to auto-generate CLI by using the SONiC CLI Auto-generation tool.
- CLI for NVGRE tunnel
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 869, 1953, 9136, 549, 1915
The password hardening feature implements the requirements, architecture and configuration details of password hardening feature in switches Sonic OS based.
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 874, 2121, 5503, 10322 & 10323
This implements two new APIs will be introduced into the ProducerStateTable. There will be no change in the existing ProducerStateTable method implementations. There is also no change in the ConsumerStateTable implementation as it can already process batches. The entire change is backward compatible.
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 959, 588, 7 & 10566
This feature impliments the sonic-buildimage changes needed to support in platform for AS4630-pe, AS5835-X, AS7326, AS7816 switch models (currently broken in master).
Refer below mentioned PR's for more details.
Pull Requests : 10053
Currently in SONiC all ports queue and pg counters are created by default with the max possible amount of counters. This feature change this behavior to poll only configured counters provided by the config DB BUFFER_PG and BUFFER_QUEUE tables.It also improves performance by filtering unconfigured queue/pg counters on init.
Refer below mentioned PR's for more details.
Pull Requests : 2143, 2315 & 2199
With the implementation of NVGRE/GRE feature, the following is supported:
- Generic Counters shall be used as Flow Counters introduced by the feature
- Flow Counters for routes shall be configured using prefix patterns.
- Flow Counters shall be bound the matching routes regardless how these routes are added - manually (static) or via FRR
- Adding route entry shall be automatically bound to counter if counter is enabled and pattern matches
- Removing route entry shall be automatically unbound if the entry is previously bound
- To support default route, pattern "0.0.0.0" and "::" shall be treated as exact match instead of pattern match
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 908, 2094, 2031, 2069, 9814 & 5736
The SONiC Generic Update and Rollback feature is to standardize the way to do partial updates, to take checkpoints and finally to rollback the configurations for SONiC.
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 1536, 8187, 1599, 8632, 1794, 1762, 1831, 1864, 1856, 1901, 1885, 4485, 4716, 1923, 1934, 1919, 4736, 4775, 4725, 1929, 9295, 9535, 1969, 1973, 1977, 4814, 1981, 4839, 4834, 4835, 1988, 1983, 1987, 4875, 9659, 2003, 2006, 2015, 2020, 2028, 4896, 2008, 4915, 4987, 5005, 4580, 5021, 9877, 9880, 5046, 5047, 4811, 5092, 5028, 5002, 1998, 2044, 5061, 5254, 2092, 5234, 5268, 5257, 2104, 2103, 5116, 10248, 5391, 2120, 5398, 5480, 5506, 5509, 1991, 10699, 2145, 5647, 2174, 5692, 2171, 5689, 5892, 2212, 5645, 5469, 5816, 5847, 5843 & 2234
Pull Requests : These PRs were raised on 202111 release. However the feature was not fully qualified in 202111 release. :736, 1536, 1599, 1762, 1794, 1831, 1856, 1864, 1885, 1901, 1919, 1923, 1929, 1934, 1969, 1973, 1977, 1981, 1983, 1987, 1988, 2003, 2006, 2008, 2015, 2020 & 2028
In order to track all the changes related to this feature, refer both the above release PRs.
This enhances the update on SONiC Yang model to add support for Source MAC, Destination MAC, Ethertype pattern update, VLAN_ID, PCP, DEI fields for SONiC MAC ACL. Also mclag sonic yang and support for Kdump have been added. Changes done on sonic yang for BUM storm control as part of this enhancement.
Refer below mentioned PR's for more details.
Pull Requests : 7917, 7622, 7355 & 10786
Under the ToR (Tier0 device) there can be appliances (eg:Firewall/Software-Load Balancer) which maintain state of flows running through them. For better scaling/high-availaibility/fault-tolerance set of appliances are used and connected to differnt ToR's. Not all the flow state that are maintained by these appliances in a set are shared between them. Thus with flow state not being sync if the flow do not end up alawys on to same TOR/Appliance it can cause services (using that flow) degradation and also impact it's availability
To make sure given flow (identidied by 5 tuple) always end up on to same TOR/Appliance we need ECMP ordered support/feature on T1 (Leaf Router). With this feature enable even if flow land's on different T1's (which is common to happen as some link/device in the flow path goes/come to/from maintainence) ECMP memeber being ordered will use same nexthop (T0) and thus same appliace.
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 896, 9651, 2092 & 989
This feature supports configuration of Broadcast, Unknown-unicast and unknown-Multicast storm-control independently on physical interfaces. Also, supports threshold rate configuration in kilo bits per second (kbps) in the range of 0 kbps to 100,000,000 kbps (100Gbps).
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 441, 1306, 928, 346 & 565
SONiC only uses cryptographic modules validated by FIPS 140-3, Make SONiC compliant with FIPS 140-3. OpenSSL supports engine cryptographic modules in the form of engine objects, and provides a reference-counted mechanism to allow them to be dynamically loaded in and out of the running application. An engine object can implement one or all cryptographic algorithms.
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 955, 9573, 10729 & 2154
This feature implements a new python based System monitor framework is introduced to monitor all the essential system host services including docker wrapper services on an event based model and declare the system is ready. This framework gives provision for docker and host apps to notify its closest up status. CLIs are provided to fetch the current system status and also service running status and its app ready status along with failure reason if any.
Refer HLD document and below mentioned PR's for more details.
Pull Requests : 977, 10479 & 1851
This enhancement is for modification of code with new kernel 5.10 APIs. And modification of the Makefiles to use 'obj-m' instead of 'subdir-y'
Refer below mentioned PR's for more details.
Pull Requests : 9582
This enchaces all the SFP platform API classes which needed to use SFP refactoring framework. The platforms which use PDDF, derive their SFP API class from a common pddf_sfp.py. Hence pddf_sfp.py needs to comply with SFP refactoring.
Refer below mentioned PR's for more details.
Pull Requests : 10047
On the 202205 release image, a difference of 0.2 - 0.3 sec is observed (for slower CPU's) when running show cli's. This is reflected in most of the show cli's since many of them import device_info which is still using swsssdk in 202205 release. This is a known observation of this 202205 image.
This known issue, has been fixed in 202211 release through the PR#10099. As mentioned in the other PR#16595, the fix is not backported to 202205 branch and hence the issue will continue to exit in 202205 image.
Please find the list of API's classified along the newly added SAI features. For further details on SAI API please refer SAI_1.10.2 Release Notes
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 - Aviz, Broadcom, Cisco, Dell, Edgecore, Google, Intel, Marvell, Microsoft, Nvidia & Target.