Commit Graph

8137 Commits

Author SHA1 Message Date
Saikrishna Arcot
152354df48 Update Debian build script for Bookworm
Notable changes:
* Use j2cli from Debian repos instead of pip
* Use setuptools from Debian repos instead of pip
* Use wheel from Debian repos instead of pip
* Update grpcio and grpcio-tools python packages to match version in
  Bookworm
* Use m2crypto from Debian repos instead of pip

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-06 17:40:06 -08:00
Saikrishna Arcot
c54de85c89 Update sonic-host-services for changes in Python
This fixes 3 issues:
* Specify test dependencies under extra_requires
* Update the PAM configuration for Bookworm
* Break a cyclical dependency between sonic-host-services and
  sonic-buildimage by moving the contents of
  src/sonic-host-services-data into sonic-host-services submodule

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-06 17:40:06 -08:00
Saikrishna Arcot
0786f9d0bc Update sonic-utilities for changes in Python
This fixes 4 issues:
* Update tabulate to 0.9.0 and deepdiff to 6.2.2
* Specify test dependencies under extra_requires
* Add check_output parameter to the setup function due to the patch
* Fix error about having a mutable default for field headers in
  dataclass

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-06 17:40:06 -08:00
Saikrishna Arcot
1529ee74f5 Fix GCC 12 errors in sonic-swss-common
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-06 17:40:01 -08:00
Saikrishna Arcot
3a8dfb5074 Temporarily disable tests for sonic-utilities for Bookworm
There are odd failures in TestAclLoader and TestMuxcable. Skip running
tests for now.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-05 08:48:17 -08:00
Saikrishna Arcot
90bfb19844 Temporarily disable tests for sonic-config-engine for Bookworm
With the new test command, test_cfggen_from_yang.py is now being run,
whereas previously, it was never run. This results in new failures
appearing from changes that have occurred some time back.

Therefore, for now, disable tests for sonic-config-engine when building
for Bookworm.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-05 08:48:17 -08:00
Saikrishna Arcot
758c43a747 Loosen help text test for sonic-yang-mgmt
The help text printed for sonic-yang-mgmt has slight differences
depending on the package versions. Loosen this check to only check the
options themselves, rather than the surrounding text.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-05 08:48:17 -08:00
Saikrishna Arcot
cb6cb415b6 Update bitarray to 2.8.1 and pyyaml to 6.0 for sonic-config-engine
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-05 08:48:17 -08:00
Saikrishna Arcot
bdc717e010 Upgrade initramfs-tools to 0.142
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-05 08:48:17 -08:00
Saikrishna Arcot
ae59d9b8a8 Fix libnss-tacplus compilation
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-05 08:48:17 -08:00
Saikrishna Arcot
471fb86114 Upgrade kdump-tools
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-05 08:48:17 -08:00
Saikrishna Arcot
b401c909aa Migrate from ntp to ntpsec
Debian Bookworm no longer uses NTP, and instead uses NTPsec. Modify our
files to update/replace the NTPsec files instead.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-05 08:48:17 -08:00
Saikrishna Arcot
8517411792 For libyang, don't add an ordering dependency on frr for Bookworm
This ordering dependency causes FRR to get built for Bookworm, which we
don't need currently. Skip this by having it apply only to Bookworm.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-03 13:50:59 -07:00
Saikrishna Arcot
01af4e405c Mark many (but not all) of the dockers as Bullseye dockers
This tells the build infra that they need to be built as part of
Bullseye and not Bookworm.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-03 13:50:59 -07:00
Saikrishna Arcot
eb75f7252d Update openssh to 9.2p1-2+deb12u1 (the version in Debian Bookworm)
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
Co-authored-by: Aravind Mani <aravind.m1@dell.com>
2023-11-03 13:50:59 -07:00
Saikrishna Arcot
3d554d344d sonic-yang-models: Specify test dependencies under extra_requires
Newer versions of pip/setuptools don't support test_requires, and the
current standard is to specify any extra dependencies (such as those
required for testing) under extra_requires.

Therefore, specify the testing dependencies under extra_requires. These
can be installed via pip using `pip install '.[testing]'`.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-03 13:50:59 -07:00
Saikrishna Arcot
b3e3c4cb2e sonic-yang-mgmt and sonic-yang-models: Update Python dependencies
Update tabulate to 0.9.0 and ijson to 3.2.3

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-03 13:50:59 -07:00
Saikrishna Arcot
cdc0237971 Update Python build commands for Bookworm
In Bookworm's version of setuptools, direct calls to setup.py are
deprecated and no longer guaranteed to work. One of the recommended
commands is to use the `build` python package to build packages, and
call it with `python -m build`. This, by default, builds the packages in
a virtualenv to ensure that only the specified dependencies in setup.py
are needed to build the package. This also extends to running tests,
where directly calling `setup.py test` may not work, and the recommended
alternatives are to either call `pytest` directly, or call `tox` or
`nox.` More details are available at [1].

For SONiC's use case, for building python packages, we cannot build all
Python packages in a virtualenv since there are dependencies that we
would have built earlier, and these packages are not pushed to pypi or
any package registry. (There may be a cleaner approach to this, though,
but I'm not aware of it.) For this reason, the `-n` flag is added to not
build the package in a virtualenv.

For testing, `pytest` is now called instead of `setup.py test`.

[1] https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-03 13:50:59 -07:00
Saikrishna Arcot
22a0e876cc Update sonic-linux-kernel to use 6.1.38
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-03 13:50:51 -07:00
Saikrishna Arcot
fef8e304b0 Update slave.mk to assume a Bookworm base image
Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-03 11:41:39 -07:00
Saikrishna Arcot
c1971ddb3a Add Bookworm slave container
Changes from Bullseye slave container:
* Python 2 is no longer available at all
* Python 3.11 (instead of Python 3.9)
* GCC 12 (instead of GCC 10)
* Python ipaddr package is no longer available
* OpenJDK 17 (instead of OpenJDK 11)
* Remove doxygen armhf manual compilation (no longer needed)
* Disable FIPS, as the FIPS binaries are currently not yet available
* Install Python setuptools through Debian instead of pip
* Install Python wheel through Debian instead of pip
* Install Python nose through Debian instead of pip
* Install Python j2cli through Debian instead of pip
* Install Python pexpect through Debian instead of pip
* Install Python parameterized through Debian instead of pip
* Install Python pyyaml through Debian instead of pip
* Install Python pyfakefs through Debian instead of pip
* Install Python m2crypto through Debian instead of pip
* Python pympler 1.0 (instead of 0.8)
* Install Python build (as a replacement to setup.py)

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-03 11:41:05 -07:00
Saikrishna Arcot
c244e366ae Disable FIPS for Bookworm
FIPS packages for Bookworm are not yet available. Disable FIPS until
those packages are ready.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-03 11:41:05 -07:00
Saikrishna Arcot
a3aa03d5dc Remove packages.trafficmanager.net/debian/debian/ from build mirrors
This repo has been deprecated, and will not have Bookworm packages
available. Remove it from the build mirror config script.

Snapshot packages are still available from this repo.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-03 11:41:04 -07:00
mssonicbld
e895f5bbd0
[submodule] Update submodule sonic-host-services to the latest HEAD automatically (#17083)
#### Why I did it
src/sonic-host-services
```
* beb8bbe - (HEAD -> master, origin/master, origin/HEAD) [DualToR][caclmgrd] Fix IPtables rules for multiple vlan interfaces for DualToR config (#82) (3 hours ago) [vdahiya12]
```
#### How I did it
#### How to verify it
#### Description for the changelog
2023-11-03 16:32:57 +08:00
SuvarnaMeenakshi
089c1153f9
[YANG]: Fix SNMP_AGENT_ADDRESS_CONFIG yang model (#17044)
fixes #16011

Why I did it
seeing below warning ,essage:
libyang[1]: Default value "" in the list key "port" is ignored. (/sonic-snmp:sonic-snmp/SNMP_AGENT_ADDRESS_CONFIG/SNMP_AGENT_ADDRESS_LIST)
libyang[1]: Default value "" in the list key "vrf_name" is ignored. (/sonic-snmp:sonic-snmp/SNMP_AGENT_ADDRESS_CONFIG/SNMP_AGENT_ADDRESS_LIST)

name of list is not <model_name>_LIST.

Work item tracking
Microsoft ADO 25646016:
How I did it
Remove default value provided to key in yang model to avoid seeing below error:
libyang[1]: Default value "" in the list key "port" is ignored. (/sonic-snmp:sonic-snmp/SNMP_AGENT_ADDRESS_CONFIG/SNMP_AGENT_ADDRESS_LIST)
libyang[1]: Default value "" in the list key "vrf_name" is ignored. (/sonic-snmp:sonic-snmp/SNMP_AGENT_ADDRESS_CONFIG/SNMP_AGENT_ADDRESS_LIST)

Modify the LIST name to have <model_name>_LIST as this was failing yang validation during unit-tests.

How to verify it
unit-tests passing.
Before fix

admin@vlab-01:~$ sudo sonic-package-manager list
libyang[1]: Default value "" in the list key "port" is ignored. (/sonic-snmp:sonic-snmp/SNMP_AGENT_ADDRESS_CONFIG/SNMP_AGENT_ADDRESS_LIST)
libyang[1]: Default value "" in the list key "vrf_name" is ignored. (/sonic-snmp:sonic-snmp/SNMP_AGENT_ADDRESS_CONFIG/SNMP_AGENT_ADDRESS_LIST)
Name            Repository                   Description                   Version    Status
--------------  ---------------------------  ----------------------------  ---------  ---------
database        docker-database              SONiC database package        1.0.0      Built-In
dhcp-relay      docker-dhcp-relay            N/A                           1.0.0      Installed
eventd          docker-eventd                SONiC eventd package          1.0.0      Built-In
fpm-frr         docker-fpm-frr               SONiC fpm-frr package         1.0.0      Built-In
gbsyncd         docker-gbsyncd-vs            SONiC gbsyncd package         1.0.0      Built-In
lldp            docker-lldp                  SONiC lldp package            1.0.0      Built-In
macsec          docker-macsec                N/A                           1.0.0      Installed
mgmt-framework  docker-sonic-mgmt-framework  SONiC mgmt-framework package  1.0.0      Built-In
mux             docker-mux                   SONiC mux package             1.0.0      Built-In
nat             docker-nat                   SONiC nat package             1.0.0      Built-In
pmon            docker-platform-monitor      SONiC pmon package            1.0.0      Built-In
radv            docker-router-advertiser     SONiC radv package            1.0.0      Built-In
sflow           docker-sflow                 SONiC sflow package           1.0.0      Built-In
snmp            docker-snmp                  SONiC snmp package            1.0.0      Built-In
swss            docker-orchagent             SONiC swss package            1.0.0      Built-In
syncd           docker-syncd-vs              SONiC syncd package           1.0.0      Built-In
teamd           docker-teamd                 SONiC teamd package           1.0.0      Built-In
telemetry       docker-sonic-telemetry       SONiC telemetry package       1.0.0      Built-In
After fix:

admin@vlab-01:~$ sudo sonic-package-manager list
Name            Repository                   Description                   Version    Status
--------------  ---------------------------  ----------------------------  ---------  ---------
database        docker-database              SONiC database package        1.0.0      Built-In
dhcp-relay      docker-dhcp-relay            N/A                           1.0.0      Installed
eventd          docker-eventd                SONiC eventd package          1.0.0      Built-In
fpm-frr         docker-fpm-frr               SONiC fpm-frr package         1.0.0      Built-In
gbsyncd         docker-gbsyncd-vs            SONiC gbsyncd package         1.0.0      Built-In
lldp            docker-lldp                  SONiC lldp package            1.0.0      Built-In
macsec          docker-macsec                N/A                           1.0.0      Installed
mgmt-framework  docker-sonic-mgmt-framework  SONiC mgmt-framework package  1.0.0      Built-In
mux             docker-mux                   SONiC mux package             1.0.0      Built-In
nat             docker-nat                   SONiC nat package             1.0.0      Built-In
pmon            docker-platform-monitor      SONiC pmon package            1.0.0      Built-In
radv            docker-router-advertiser     SONiC radv package            1.0.0      Built-In
sflow           docker-sflow                 SONiC sflow package           1.0.0      Built-In
snmp            docker-snmp                  SONiC snmp package            1.0.0      Built-In
swss            docker-orchagent             SONiC swss package            1.0.0      Built-In
syncd           docker-syncd-vs              SONiC syncd package           1.0.0      Built-In
teamd           docker-teamd                 SONiC teamd package           1.0.0      Built-In
telemetry       docker-sonic-telemetry       SONiC telemetry package       1.0.0      Built-In
2023-11-03 14:42:17 +08:00
Saikrishna Arcot
686678a407
Fix LAG going down after warm reboot with SONiC neighbors (#17040)
* Fix LAG going down after warm reboot with SONiC neighbors

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2023-11-02 22:05:09 -07:00
StormLiangMS
183ee7dfa0
enable fib suppress for leafrouter (#17072)
Why I did it
Enable the suppress fib feature by default.

Work item tracking
Microsoft ADO (25564723):
How I did it
In minigraph.py, to add the field suppress-fib-pending, and enable it for leafrouter.

How to verify it
Build / load image and check the config_db by show CLI.
admin@str-7260cx3-acs-2:~$ show suppress-fib-pending
Enabled

Need to modify the tests/bgp/test_bgp_suppress_fib.py in sonic-mgmt repo, to check the config before restore. Otherwise, after this test, it will turn off the suppress-fib-pending.
sonic-net/sonic-mgmt#10612
2023-11-03 10:28:10 +08:00
ShiyanWangMS
7013b05899
Add new docker-sonic-mgmt makefile flag: LEGACY_SONIC_MGMT_DOCKER (#17070)
Why I did it
This is part of Python3 migration project. This PR will add a new makefile flag: LEGACY_SONIC_MGMT_DOCKER
Now by default: LEGACY_SONIC_MGMT_DOCKER = y will build sonic-mgmt-docker with Python2 and Python3
If LEGACY_SONIC_MGMT_DOCKER = n will will sonic-mgmt-docker with Python3 only

Work item tracking
Microsoft ADO (number only): 25254349

How I did it
Add makefile flag: LEGACY_SONIC_MGMT_DOCKER

How to verify it
By default will build sonic-mgmt-docker with Python2 and Python3. No change compared to before.
Set LEGACY_SONIC_MGMT_DOCKER=n will build sonic-mgmt-docker with Python3 only
2023-11-03 09:04:01 +08:00
byu343
ed07dbad09
[knet]: Disable NETIF_F_HW_CSUM in KNET (#17080)
This is CSP CS00012280996.
The issue to fix is that the checksum was incorrect for all TCP packets leaving the system so that the BGP connection cannot be established. We found the issue on BCM56993, and it is possible to affect all platforms using linux_ngknet.
2023-11-02 16:17:06 -07:00
Yaqiang Zhu
274d320443
[dhcp_server] Add dhcprelayd for dhcp_server feature (#16947)
Add support in dhcp_relay container for dhcp_server_ipv4 feature. HLD: sonic-net/SONiC#1282
2023-11-02 08:09:01 -07:00
mssonicbld
c85c12bc75
[submodule] Update submodule sonic-swss-common to the latest HEAD automatically (#17068)
#### Why I did it
src/sonic-swss-common
```
* a57cf9e - (HEAD -> master, origin/master, origin/HEAD) Add batch support in ZmqProducerStateTable. (#803) (10 hours ago) [mint570]
```
#### How I did it
#### How to verify it
#### Description for the changelog
2023-11-02 16:32:43 +08:00
Nazarii Hnydyn
845bb80a3c
[ppi]: Enable global port late create for all Mellanox HWSKUs. (#16945)
HLD: sonic-net/SONiC#1084

To improve FAST reboot dataplane downtime

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
2023-11-01 21:50:14 -07:00
mssonicbld
d8f9f232e6
[submodule] Update submodule sonic-linux-kernel to the latest HEAD automatically (#17056)
#### Why I did it
src/sonic-linux-kernel
```
* a75a3df - (HEAD -> master, origin/master, origin/HEAD) arm64: Kconfig inclusions to fix PCI hang and MTD detection (#350) (3 hours ago) [Pavan Naregundi]
```
#### How I did it
#### How to verify it
#### Description for the changelog
2023-11-01 16:32:34 +08:00
mssonicbld
f61590d5e2
[submodule] Update submodule sonic-utilities to the latest HEAD automatically (#17057) 2023-11-01 14:54:43 +08:00
mssonicbld
3bacbc94ad
[submodule] Update submodule sonic-swss to the latest HEAD automatically (#17048)
#### Why I did it
src/sonic-swss
```
* 917c21e0 - (HEAD -> master, origin/master, origin/HEAD) Add more debug information when PFC WD is triggered (#2858) (10 hours ago) [Stephen Sun]
```
#### How I did it
#### How to verify it
#### Description for the changelog
2023-11-01 10:37:01 +08:00
Sudharsan Dhamal Gopalarathnam
ca15c6ff93
[eventd]: Disabling eventd tests (#17053)
Disabling eventd unit tests until #16996 is addressed
2023-10-31 15:51:48 -07:00
mssonicbld
bf1333bc2f
[submodule] Update submodule sonic-snmpagent to the latest HEAD automatically (#17047) 2023-10-31 14:43:20 +08:00
ShiyanWangMS
fe735e35c6
Upgrade Ansible to 6.7.0 and make Python3 as the default interpreter in sonic-mgmt-docker (#17021)
Why I did it
This PR is part of sonic-mgmt-docker Python3 migration project.

Work item tracking
Microsoft ADO (number only): 24397943

How I did it
Upgrade Ansible to 6.7.0
Make Python3 as the default interpreter. python is a soft link to python3. If you want to use python2, use the command python2 explicitly.
Upgrade some pip packages to higher version in order to meet security requirement.

How to verify it
Build a private sonic-mgmt-docker successfully.
Verify python is python3.
Verify python2 is working with 202012 and 202205 branch.
Verify python3 is working with master branch.
Verify with github PR test.
2023-10-31 09:44:55 +08:00
mssonicbld
a5ee9867da
[submodule] Update submodule sonic-sairedis to the latest HEAD automatically (#17038) 2023-10-29 14:50:57 +08:00
Dev Ojha
f844992369
Update sonic-device_neighbor_metadata.yang (#16974)
### Why I did it
We use `EdgeZoneAggregator` in `db_migrator`, but we don't support this pattern in sonic yang models. Hence, we update this in the sonic-yang model.

##### Work item tracking
- Microsoft ADO **(number only)**:  25574132

#### How I did it
Update the device pattern list.
2023-10-27 14:23:45 -07:00
Mai Bui
753fa0d26e
[docker-sflow] limit privileged flag for sflow container (#16973)
#### Why I did it
HLD implementation: Container Hardening (https://github.com/sonic-net/SONiC/pull/1364)
##### Work item tracking
- Microsoft ADO **(number only)**: 14807420
#### How I did it
Reduce linux capabilities in privileged flag

#### How to verify it
Run sflow sonic-mgmt tests
Check container's settings: Privileged is false and container only has default Linux caps, does not have extended caps.
```
admin@vlab-01:~$ docker inspect sflow | grep Privi
            "Privileged": false,


admin@vlab-01:~$ docker exec -it sflow bash
root@vlab-01:/# capsh --print
Current: cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap=ep
Bounding set =cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap
```
2023-10-27 11:30:30 -07:00
Saikrishna Arcot
b256396b48
sonic-eventd: Use json.hpp from nlohmann-json3-dev instead of swss-common (#16818)
#### Why I did it

This header file comes from an external package, and a very old version of the header file has been checked into swss-common. This will cause problems for the upcoming Bookworm upgrade.

##### Work item tracking
- Microsoft ADO **(number only)**: 25411155

#### How I did it

Change references to the header file to use the Debian package nlohmann-json-dev, instead of from swss-common.

### Tested branch (Please provide the tested image version)

- [ ] <!-- image version 1 -->
- [ ] VS image from pipeline build

Verified that eventd was running
2023-10-26 09:45:58 -07:00
Zhijian Li
1fd7746855
[minigraph-parser] Disable unsupported counters on management devices (#16937)
Why I did it
To avoid orchagent crash issue like sonic-net/sonic-swss#2935, disable unsupported counters on SONiC management devices.

Work item tracking
Microsoft ADO (number only): 25437720
How I did it
Update the minigraph parser to disable unsupported counters on management devices.

How to verify it
Verified by unittest.
Manually apply patch to DUT and do config load_minigraph
2023-10-26 08:05:06 -07:00
zitingguo-ms
2c0f4e57d7
Upgrade XGS saibcm-modules to 8.4 (#16246)
Why I did it
XGS saibcm-modules 8.4 is needed. #14471

Work item tracking
Microsoft ADO (number only): 24917414
How I did it
Copy files from xgs SDK 8.4 repo and modify makefiles to build the image.
Upgrade version to 8.4.0.2 in saibcm-modules.mk.

How to verify it
Build a private image and run full qualification with it: https://elastictest.org/scheduler/testplan/650419cb71f60aa92c456a2b
2023-10-26 18:58:34 +08:00
mssonicbld
04f31865de
[submodule] Update submodule sonic-sairedis to the latest HEAD automatically (#17019)
#### Why I did it
src/sonic-sairedis
```
* 7210b0c - (HEAD -> master, origin/master, origin/HEAD) [Link event damping] Add utility methods. (#1313) (20 hours ago) [Ashish Singh]
```
#### How I did it
#### How to verify it
#### Description for the changelog
2023-10-26 18:32:52 +08:00
Ze Gan
17a98ea772
[ci]: Add dpu topo (#16723)
Enable an Azp job for checking DPU scenario.

Signed-off-by: Ze Gan <ganze718@gmail.com>
2023-10-25 22:34:49 -07:00
Junhua Zhai
e66ae597f9
[gearbox] use credo sai v0.9.3 (#16860)
Update credo sai package to the latest v0.9.3, which fixes the issue aristanetworks/sonic#92.
2023-10-25 11:58:50 -07:00
prabhataravind
7e49530459
[copp]: Enable rate limiting for bgp, lacp, dhcp, lldp, macsec and udld (#14859)
Why I did it
It was observed that a flood of DHCP packets without rate-limiting can cause BGP flaps or lacp keepalive losses.
This change attempts to prevent or reduce such BGP flaps by enabling appropriate rate-limiting in SONiC for all traffic types.

Work item tracking
Microsoft ADO 17964421:

How I did it
Set a reasonable CIR/CBS value of 300 for queue4_group3 (dhcp, lldp, macsec) and 6000 for queue4_group1.
The value 300 was arrived at after testing with dhcp flooding using ptf (using multiple threads). Throttling at this rate was necessary to ensure that dhcp flooding does not cause BGP flaps.

How to verify it
Verified with this script running from ptf, that BGP flaps don't happen when CBS/CIR is set at 300 for queue4_group3.

 import threading
 from scapy.all import *
 
 def send_dhcp_discover(intf):
     dhcp_discover = Ether(dst='ff:ff:ff:ff:ff:ff',src=RandMAC()) \
                         /IP(src='1.1.1.1',dst='255.255.255.255') \
                         /UDP(sport=68,dport=67) \
                         /DHCP(options=[('message-type','discover'),('end')])
     sendp(dhcp_discover,count=100000,iface=intf)
 
 
 if __name__ == "__main__":
     t1 = threading.Thread(target=send_dhcp_discover, args=("eth1",))
     t2 = threading.Thread(target=send_dhcp_discover, args=("eth2",))
     t1.start()
     t2.start()
     t1.join()
     t2.join()

Verified on Arista-7260CX3-D108C8 running 202012 that the copp rule for queue4_group1 and queue4_group3 do NOT affect BGP packets. To verify this using PTF, the copp rules were modified to set the "CBS" and "CIR" for queue4_group1 and queue4_group3 at 600pps and 50k packets each of "BGP open" and "DHCP Discover" were simultaneously sent from the same PTF port to the DUT. It was verified using "show c cpu" that packets are hitting the cpu queue at 1200 pps (double the configured CIR/CBS for these packet types). This helped conclude that throttling rate is per trap (or packet type) and not per queue.

Verified with updated sonic-mgmt tests ([tests/copp]: Update copp mgmt tests to support new rate-limits sonic-mgmt#8199) on broadcom and mellanox platforms that these traffic types are rate-limited.

Signed-off-by: Prabhat Aravind <paravind@microsoft.com>
2023-10-25 10:49:24 -07:00
mssonicbld
10bdc0f130
[submodule] Update submodule sonic-sairedis to the latest HEAD automatically (#16999)
#### Why I did it
src/sonic-sairedis
```
* 1ef16ee - (HEAD -> master, origin/master, origin/HEAD) [Link event damping] Add generic concurrent queue for link event damping. (#1297) (11 hours ago) [Ashish Singh]
```
#### How I did it
#### How to verify it
#### Description for the changelog
2023-10-25 16:34:03 +08:00
mssonicbld
d3b4233813
[submodule] Update submodule sonic-swss to the latest HEAD automatically (#17000)
#### Why I did it
src/sonic-swss
```
* a9867e67 - (HEAD -> master, origin/master, origin/HEAD) Fix acl match ip_type_non_ipv4 and ip_type_non_ipv6. (#2842) (5 hours ago) [LTeng]
* dc8fd20f - [DASH] ACL tags implementation (#2915) (11 hours ago) [Oleksandr Ivantsiv]
```
#### How I did it
#### How to verify it
#### Description for the changelog
2023-10-25 16:33:59 +08:00