Commit Graph

403 Commits

Author SHA1 Message Date
Dev Ojha
8a4f42d883
[202012][Buffer] Added cable length config to buffer config template for EdgeZoneAggregator (#14539)
#### Why I did it
SONiC currently does not identify 'EdgeZoneAggregator' neighbor. As a result, the buffer profile attached to those interfaces uses the default cable length which could cause ingress packet drops due to insufficient headroom. Hence, there is a need to update the buffer templates to identify such neighbors and assign the same cable length as used by the T1.

Original PR for master: #14280 

#### How I did it
Modified the buffer template to identify EdgeZoneAggregator as a neighbor device type and assign it the same cable length as a T1/leaf router. 

#### How to verify it
Unit tests pass, and manually checked on a 7260 to see the changes take effect. 

#### Description for the changelog
[Buffer] Added cable length config to buffer config template for EdgeZoneAggregator
2023-04-10 11:58:34 -07:00
Neetha John
43aec133da
[202012] [qos] Update RDMA-CENTRIC lossy profile to use static threshold for Th devices (#14398)
Backport #14372 to 202012

Why I did it
For better accounting purposes, updating the ingress lossy traffic profile to use static threshold. This change is only intended for Th devices using RDMA-CENTRIC profiles

How I did it
Update the buffer templates for Th devices in RDMA-CENTRIC folder to use the correct threshold

Signed-off-by: Neetha John <nejo@microsoft.com>
2023-03-24 10:41:48 -07:00
xumia
2ca6ec484e
[202012][Security][CVE-2022-2309] Upgrade lxml from 4.6.5 to 4.9.1 (#14066)
Why I did it
Fix CVE-2022-2309, upgrade lxml from 4.6.3 to 4.9.1
2023-03-07 09:43:46 +00:00
Longxiang Lyu
6b4a278378
[dualtor] Let T0 delay 10 seconds before sending BGP updates (#13701)
Cherry-pick PR #12996 into 202012 branch.

Signed-off-by: Longxiang Lyu <lolv@microsoft.com>
2023-02-07 17:49:20 -08:00
Neetha John
642c7242f8 Update ECN settings for storage backend (#12855)
Signed-off-by: Neetha John <nejo@microsoft.com>

Why I did it
ECN parameters need to be updated for storage backend

How I did it
Included the check for storage backend devices to update qos configs

How to verify it
Verified that the new ecn settings are applied on storage backend device.
Verified that the old ecn settings are applied for storage frontend, non storage frontend/backend devices
2023-01-10 23:52:39 +00:00
abdosi
5d6f8f84f8
[bgp] Enable BGP Graceful Restart based on device role (#9486) (#12990)
What I did:
Updated Jinja Template to enable BGP Graceful Restart based on device role. By default it will be enable only if the device role type is TorRouter.

Why I did:-
By default FRR is configured in Graceful Helper mode. Graceful Restart is needed on T0/TorRouter only since the device can go for warm-reboot. For T1/LeafRouter it need to be in Helper mode only
2022-12-08 01:12:28 -08:00
bingwang-ms
47d7e5d0d2
[202012] Apply separated DSCP_TO_TC_MAP and TC_TO_QUEUE_MAP on dualtor (#12792)
* Apply separated DSCP_TO_TC_MAP and TC_TO_QUEUE_MAP on dualtor
2022-11-23 21:49:00 +08:00
Volodymyr Boiko
d2195aa722 [sonic-config-engine][portconfig] Do not parse JSON as Python AST (#10224)
#### Why I did it
To fix https://github.com/Azure/sonic-buildimage/issues/9643

#### How I did it
Instead of ast.literal_eval added python2 compat code for json strings unicode -> str convertion.

We need python2 compatibility since py2 sonic config engine (buster/sonic_config_engine-1.0-py2-none-any.whl target) is still included into the build (ENABLE_PY2_MODULES flag is set for buster). Once we abandon buster and python2, this compat and ast.literal_eval could be cleaned up all through the code base.

#### How to verify it
run steps from the linked issue
2022-11-23 10:43:05 +00:00
bingwang-ms
4f4f4cba21
[202012] Add lossy scheduler for queue 7 (#12600)
* Add lossy scheduler for queue 7
2022-11-10 10:25:03 +08:00
Vivek
0de604baa6 [DHCP_RELAY] Updated wait_for_intf.sh to wait for ipv6 global and link local addr (#12273)
- Why I did it
Fixes #11431

- How I did it
dhcp6relay binds to ipv6 addresses configured on these vlan interfaces
Thus check if they are ready before launching dhcp6relay

- How to verify it
Unit Tests
Tested on a live device

Signed-off-by: Vivek Reddy Karri <vkarri@nvidia.com>
2022-10-12 23:27:03 +00:00
Neetha John
1b99c605a6
[202012] [minigraph] Remove SLB and bgp monitor peers for storage backend (#12262)
Why I did it
This is to backport #12251 to 202012

Signed-off-by: Neetha John <nejo@microsoft.com>
2022-10-10 14:29:41 -07:00
bingwang-ms
ee7d9d1c45 Map TC6 to Queue 1 for regular traffic (#11904)
Why I did it
This PR is to update TC_TO_QUEUE_MAP|AZURE for SKU Arista-7050CX3-32S-D48C8 and Arista-7260CX3 T0.

The change is only to align the TC_TO_QUEUE_MAP for regular traffic and bounced traffic. It has no impact on business because we have no traffic being mapped to TC2 or TC6.

How I did it
Update TC_TO_QUEUE_MAP|AZURE , and test cases as well.

How to verify it
Verified by running test case test_j2files.py

/sonic/src/sonic-config-engine$ python3 setup.py test -s tests/test_j2files.py
running test
......
----------------------------------------------------------------------
Ran 29 tests in 25.390s

OK
2022-09-17 00:41:48 +00:00
kellyyeh
973fb9e494
[dhcp_relay] Add "vlan missing ip helper" dhcp relay unittest (#10654) (#11794) 2022-08-24 19:53:11 -07:00
bingwang-ms
84aca00847
[202012]Support different DSCP_TO_TC_MAP for T1 in dualtor deployment (#11580)
Why I did it
This PR is to backport #11569 into 202012 branch.
This PR is to apply different DSCP_TO_TC_MAP to downlink and uplink ports on T1 in dualtor deployment.
For T1 downlink ports (To T0)
The DSCP_TO_TC_MAP is not changed. DSCP2 and DSCP6 are mapped to TC2 and TC6 respectively.
For T1 uplink ports (To T1)
A new DSCP_TO_TC_MAP|AZURE_UPLINK is defined and applied. DSCP2 and DSCP6 are mapped to TC1 to avoid mixing up lossy and lossless traffic from T2.
The extra lossy PG2 and PG6 added in PR #11157 is reverted as well because no traffic from T2 is mapped to PG2 or PG6 now.

How I did it
Define a new map DSCP_TO_TC_MAP|AZURE_UPLINK for 7260 T1.

How to verify it
Verified by test case in test_j2files.py.
2022-08-01 08:59:45 -07:00
Stephen Sun
44ecff1154
Support queue 7 in dual ToR scenario (#11570)
Signed-off-by: Stephen Sun <stephens@nvidia.com>
2022-08-01 09:27:49 +08:00
bingwang-ms
c5eb031111
[202012] Add flag to control the generation of global level map (#11451)
Why I did it
This PR is to cherry-pick #11448 to 202012 branch after resolving conflicts.
There are conflicts in

files/build_templates/qos_config.j2
src/sonic-config-engine/tests/test_j2files.py
2022-07-15 09:44:45 -07:00
Neetha John
15cc046eda
[202012] Update MMU and ECN settings for Arista-7260CX3-D96C16 (#11427)
Signed-off-by: Neetha John <nejo@microsoft.com>

Why I did it
Missed this sku in the previous PR #11398

How I did it
Update the dynamic threshold to 0 and ECN settings as 2mb/10mb/5%

How to verify it
Updated unit tests to use the modified values for 7260 ecn settings.
2022-07-15 09:33:39 -07:00
Neetha John
4de610af15
[202012] Update 7260 MMU and ECN settings (#11398)
Signed-off-by: Neetha John <nejo@microsoft.com>

Why I did it
Improve throughput and latency for 7260 deployments

How I did it
Update the dynamic threshold to 0 and ECN settings as 2mb/10mb/5%

How to verify it
Updated unit tests to use the modified values for 7260 ecn settings.
2022-07-12 08:46:44 -07:00
Neetha John
c6f9664b2e
[202012] Minigraph parser changes to select mmu profiles based on SonicQosProfile attribute (#11383)
Signed-off-by: Neetha John <nejo@microsoft.com>

Why I did it
There is a need to select different mmu profiles based on deployment type

How I did it
There will be separate subfolders (RDMA-CENTRIC, TCP-CENTRIC, BALANCED) in each hwsku folder which contains deployment specific mmu and qos settings. SonicQosProfile attribute in the minigraph will be used to determine which settings to use. If that attribute is not present, the default settings that exist in the hwsku folder will be used
2022-07-12 08:45:55 -07:00
Neetha John
26ee4ae4a4 Add backend acl template (#11220)
Why I did it
Storage backend has all vlan members tagged. If untagged packets are received on those links, they are accounted as RX_DROPS which can lead to false alarms in monitoring tools. Using this acl to hide these drops.

How I did it
Created a acl template which will be loaded during minigraph load for backend. This template will allow tagged vlan packets and dropped untagged

How to verify it
Unit tests

Signed-off-by: Neetha John <nejo@microsoft.com>
2022-07-08 21:39:39 +00:00
Neetha John
6fe583ed1c
[202012] Minigraph parser changes for storage backend acl (#11267)
Signed-off-by: Neetha John <nejo@microsoft.com>

Backport #11221

Why I did it
For storage backend, certain rules will be applied to the DATAACL table to allow only vlan tagged packets and drop untagged packets.

How I did it
Create DATAACL table if the device is a storage backend device
To avoid ACL resource issues, remove EVERFLOW related tables if the device is a storage backend device

How to verify it
Added the following unit tests

verify that EVERFLOW acl tables is removed and DATAACL table is added for storage backend tor
verify that no DATAACL tables are created and EVERFLOW tables exist for storage backend leaf
2022-07-08 08:47:25 -07:00
vmittal-msft
6ada55439d Updated buffer profile settings for TD3 based HWSKUs (Arista-7050CX3-32S-C32, Arista-7050CX3-32S-D48C8) (#11202)
* Updated buffer profile settings for TD3 based HWSKUs (Arista-7050CX3-32S-C32, Arista-7050CX3-32S-D48C8)
2022-07-05 20:57:53 +00:00
Stephen Sun
fe6be5da92
[202012] Configure different map between uplink and downlink on t1 switch in dual ToR scenario (#11299)
- Why I did it
Configure different DSCP_TO_TC_MAP between uplink and downlink on T1 switch in dual ToR scenario
On T1 uplink, both DSCP 2/6 will be mapped to TC 1 for the purpose of avoiding such traffic occupying lossless buffers.
On T1 downlink, they will be mapped to TC 2/6 respectively. (unchanged)

- How I did it
For vendors who want to configure different DSCP_TO_TC_MAP between uplinks and downlinks on T1, they should
Define generate_dscp_to_tc_map macro in SKU's qos.json.j2 file
Define map AZURE for downlink and AZURE_UPLINK for uplink
Define jinja2 variable different_dscp_to_tc_map as True

Signed-off-by: Stephen Sun <stephens@nvidia.com>
2022-07-03 15:58:06 +03:00
Jing Kan
2b76288a24
[minigraph] Support parse IPv6 in device_desc.xml (#11095) (#11272)
Signed-off-by: Jing Kan jika@microsoft.com
2022-07-01 16:23:56 +08:00
Stephen Sun
307d0e2aca
[Mellanox][202012] Support Mellanox-SN4600C-C64 as T1 switch in dual-ToR scenario (#11032)
Why I did it
Support Mellanox-SN4600C-C64 as T1 switch in dual-ToR scenario

1. Support additional queue and PG in buffer templates, including both traditional and dynamic model
2. Support mapping DSCP 2/6 to lossless traffic in the QoS template.
3. Add macros to generate additional lossless PG in the dynamic model
4. Adjust the order in which the generic/dedicated (with additional lossless queues) macros are checked and called to generate buffer tables in common template buffers_config.j2
  - Buffer tables are rendered via using macros.
  - Both generic and dedicated macros are defined on our platform. Currently, the generic one is called as long as it is defined, which causes the generic one always being called on our platform. To avoid it, the dedicated macrio is checked and called first and then the generic ones.
5. Support MAP_PFC_PRIORITY_TO_PRIORITY_GROUP on ports with additional lossless queues.

On Mellanox-SN4600C-C64, buffer configuration for t1 is calculated as:
40 * 100G downlink ports with 4 lossless PGs/queues, 1 lossy PG, and 3 lossy queues
16 * 100G uplink ports with 2 lossless PGs/queues, 1 lossy PG, and 5 lossy queues

Signed-off-by: Stephen Sun stephens@nvidia.com

How to verify it
Run regression test.
2022-06-21 10:04:49 -07:00
bingwang-ms
6ddf5cd7dc
[202012] [cherry-pick] Generate switch level dscp_to_tc_map entry from qos_config template (#11132)
* Generate switch level dscp_to_tc_map

Signed-off-by: bingwang <wang.bing@microsoft.com>
2022-06-17 20:49:56 +08:00
Richard.Yu
27cfcf2c5d
[202012][Tunnel PFC][Fix bug] Fix bug and Tests for adding property 'sai_remap_prio_on_tnl_egress' (#11099)
* [202012][Tunnel PFC][Fix bug] Fix bug and Tests for adding property 'sai_remap_prio_on_tnl_egress'

manual cherry-pick from https://github.com/Azure/sonic-buildimage/pull/11027
Fix a bug in the template
Add tests for adding property 'sai_remap_prio_on_tnl_egress', this
property should only be added in dual tor environment.

* merge change after sync from 202012 and remove a mistaken changes in cherry-pick

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>
2022-06-14 18:50:18 -07:00
Neetha John
5ceb25e21b
[202012] [sonic-config-engine] Generate expected output with different cable len (#11082)
* Generate expected output with 300m cable len and compare against it

Signed-off-by: Neetha John <nejo@microsoft.com>

* Rewrite assert logic

Signed-off-by: Neetha John <nejo@microsoft.com>
2022-06-10 18:06:44 +08:00
bingwang-ms
adfe20b5f6
[202012] Automatically enable tunnel_qos_remap on T1 and T0 in DualToR deployment (#11056)
* Automatically enable tunnel_qos_remap on T1 and T0 in DualToR deployment

Signed-off-by: bingwang <wang.bing@microsoft.com>
2022-06-09 16:13:17 +08:00
Neetha John
881796f376
[202012] Adjust 7260 buffer sizes to accomodate extra lossless queues (#11050)
Backport changes from #11018

Signed-off-by: Neetha John <nejo@microsoft.com>

Why I did it
As part of PCBB changes, we need to enable 2 extra lossless queues. The changes in this PR are done to adjust only the reserved sizes on Th2 for the additional 2 lossless queues
Calculations are done based on 40 downlinks for T1 and 16 uplinks for dual ToR

How to verify it
Verified that the rendering works fine on Th2 dut
Unit tests have been updated to reflect the modified buffer sizes when pcbb is enabled. There are existing testcases that will test the original buffer sizes when pcbb is disabled. With these changes, was able to build sonic-config-engine wheel successfully
2022-06-06 18:13:16 -07:00
bingwang-ms
2faabf43eb
[202012] Automatically generate extra attributes for tunnel qos remapping (#11045)
* Automatically generate extra attributes for tunnel qos remapping

Signed-off-by: bingwang <wang.bing@microsoft.com>
2022-06-07 08:43:04 +08:00
bingwang-ms
e159998657
[202012][cherry-pick] Add two extra lossless queues for bounced back traffic (#10715)
* Add extra lossless queues

Signed-off-by: bingwang <bingwang@microsoft.com>
2022-06-04 19:25:02 +08:00
bingwang-ms
7ec6a60230
[cherry-pick] [202012] Update qos config to clear queues for bounced back traffic (#10608)
* Update qos config to clear queues for bounced back traffic

Signed-off-by: bingwang <wang.bing@microsoft.com>
2022-06-02 16:29:25 +08:00
bingwang-ms
c4e806fcf7
[202012][cherry-pick] Define SYSTEM_DEFAULTS table to control tunnel_qos_remap (#10930)
[202012][cherry-pick] Define `SYSTEM_DEFAULTS` table to control tunnel_qos_remap (#10930)

Signed-off-by: bingwang <bingwang@microsoft.com>
2022-05-30 17:52:43 +08:00
SuvarnaMeenakshi
ec9732aa3b
[202012][multi-asic][sonic-config-engine]: Get PORT table from namespace config db (#10475)
Why I did it
Cherry-pick of: #7632
portconfig.py gets PORT table from config_db if it is present. If not, port_config.ini files are parsed.
For multi-asic platform, if namespace is passed to get_port_config(), config_db connection was done to host namespace always and not to asic specific namespace.
Provides fix for: #7161

How I did it
Modify db connection function to connect to namespace config_db.

How to verify it
Unit-test passed.
Verified on multi-asic VS platform.
2022-05-27 16:28:33 -07:00
Neetha John
876d982bce [sonic-config-engine] Fix typo in hwsku name in sample graph (#10941)
Signed-off-by: Neetha John <nejo@microsoft.com>

Why I did it
There was a typo in hwsku specified as part of #10889

How I did it
Replaced with the correct hwsku

How to verify it
test_cfggen.py is passing
2022-05-27 17:00:55 +00:00
Neetha John
a76899b04f [sonic-config-engine] Change hwsku for sample graph in unit tests (#10889)
#### Why I did it
To ensure that some internal testcases do not break due to external changes

#### How to verify it
Ran test_cfggen.py with the changes and it passed
2022-05-25 22:57:01 +00:00
Qi Luo
be5eb80b14
[202012] Fix tagged VlanInterface if attached to multiple vlan as untagged member (#10589)
Backport https://github.com/Azure/sonic-buildimage/pull/8927 to 202012 branch
2022-05-09 14:07:02 -07:00
kellyyeh
6e17ef311a [dhcp_relay] Remove dhcp6mon (#10467) 2022-04-12 18:39:19 +00:00
Lior Avramov
07c170fa04
Remove quagga from SONiC (#10384)
Quagga is no longer being used in SONiC. Cherry-pick from master PR #7898

Co-authored-by: liora <liora@nvidia.com>
2022-03-30 13:57:34 -07:00
kellyyeh
adaec6337f
[radv] Support multiple ipv6 prefixes per vlan interface (#9934) (#10253)
Why I did it
Radvd.conf.j2 template creates two copies of the vlan interface when there are more than one ipv6 address assigned to a single vlan interface. Changed the format to add prefixes under the same vlan interface block.

How I did it
Modifies radvd.conf.j2 and added unit tests

How to verify it
Configure multiple ipv6 address to the same vlan, start radvd
Unit test will check if radvd.conf with multiple ipv6 addresses is formed correctly
2022-03-20 17:17:59 -07:00
Guohan Lu
194028a17b
[Unit Test]: Fix sonic config engine test not stable issue (#10148)
cherry-pick #10147 to 202012 branch.

Co-authored-by: xumia <59720581+xumia@users.noreply.github.com>
2022-03-03 16:00:16 -08:00
Aravind Mani
331db09f88 Dell S6100: Addition of 10G ports (#9988) 2022-02-23 22:46:20 +00:00
vmittal-msft
304ec5b0cd
Updated traffic scheduler settings for HWSKUs : DellEMC-Z9332f-O32 & DellEMC-Z9332f-M-O16C64 (#9927) 2022-02-15 16:15:20 -08:00
Jing Kan
5055c6df43 [sonic-config-engine]: Update minigraph parser to support enable DHCP server for BmcMgmtToRRouter (#9938)
Signed-off-by: Jing Kan jika@microsoft.com
2022-02-12 01:06:09 +00:00
arlakshm
14bbccc9d6 [multi-asic] fix network command for internal loopback (#7878)
Signed-off-by: Arvindsrinivasan Lakshmi Narasimhan <arlakshm@microsoft.com>
In the multi asic platforms all the ASIC are advertising the same IPv6 /64 network from Loopback4096.
Therefore, the IPv6 loopback address of backend asic is not learnt on the frontend asic.
Change the bgpd.conf.main.conf.j2 template file to advertise the Loopback4096 ipv6 address as /128
2022-02-09 19:27:46 +00:00
abdosi
17a8f42704 [muti-asic] Updated BGP community for Internal routes (#7617)
Following changes are done:

Internal routes are tagged with no-export instead of local-AS
Option to add User Define BGP community on top of no-export
2022-02-09 19:27:32 +00:00
judyjoseph
4ec5f8e850 Port the fix to get the PCI_id from asic.conf file from 201911 --> master branch (#7513)
Port the fix to get the pci_device ID from asic.conf file and update the "asic_id" field in DEVICE_METADATA with the pci_device_Id.

Ref: https://github.com/Azure/sonic-buildimage/pull/4705
2022-01-25 22:17:29 +00:00
Shi Su
60ac485f96 Reduce route selection deferral timer for bgp graceful restart (#7533)
Why I did it
There are scenarios that End-of-RIB comes from a part of the peers arrives after reconciliation. In such scenarios, if the route selection deferral timer has the default value of 360 seconds, FRR would not set up routes and all routes would be removed after reconciliation. This PR reduces the route selection deferral timer so that at least routes to parts of the peers get restored at the point of reconciliation.

Fix #7488

How I did it
Reduce route selection deferral timer for bgp graceful restart to 15 seconds.
2021-12-20 19:24:58 +00:00
Stephen Sun
acac848858
[Reclaim buffer][202012] Reclaim unused buffers by applying zero buffer profiles (#9063)
- Why I did it
Support zero buffer profiles

1. Add buffer profiles and pool definition for zero buffer profiles
2. Support applying zero profiles on INACTIVE PORTS
3. Enable dynamic buffer manager to load zero pools and profiles from a JSON file

- How I did it
Add buffer profiles and pool definition for zero buffer profiles

If the buffer model is static:
 * Apply normal buffer profiles to admin-up ports
 * Apply zero buffer profiles to admin-down ports
If the buffer model is dynamic:
 * Apply normal buffer profiles to all ports
 * buffer manager will take care when a port is shut down

Update buffers_config.j2 to support INACTIVE PORTS by extending the existing macros to generate the various buffer objects, including PGs, queues, ingress/egress profile lists

Originally, all the macros to generate the above buffer objects took active ports only as an argument.
Now that buffer items need to be generated on inactive ports as well, an extra argument representing the inactive ports need to be added.
To be backward compatible, a new series of macros are introduced to take both active and inactive ports as arguments
The original version (with active ports only) will be checked first. If it is not defined, then the extended version will be called.
Only vendors who support zero profiles need to change their buffer templates
Enable buffer manager to load zero pools and profiles from a JSON file:

The JSON file is provided on a per-platform basis
It is copied from platform/<vendor> folder to /usr/share/sonic/temlates folder in compiling time and rendered when the swss container is being created.
To make code clean and reduce redundant code, extract common macros from buffer_defaults_t{0,1}.j2 of all SKUs to two common files:
One in Mellanox-SN2700-D48C8 for single ingress pool mode
The other in ACS-MSN2700 for double ingress pool mode
Those files of all other SKUs will be symbol link to the above files

Update sonic-cfggen test accordingly:
 * Adjust example output file of JSON template for unit test
 * Add unit test in for Mellanox's new buffer templates.

- How to verify it
Regression test.
Unit test in sonic-cfggen
Run regression test and manually test.

Signed-off-by: stephens <stephens@nvidia.com>
2021-12-09 17:34:56 +02:00