Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge remote-tracking branch 'upstream/master' into dash #2663

Merged
merged 29 commits into from
Feb 16, 2023

Conversation

oleksandrivantsiv
Copy link
Collaborator

What I did

  • Merge remote-tracking branch 'upstream/master' into dash
  • Fix compilation issue caused by missing include. After the merge from the master branch dashorch compilation stated to fail with "handleSaiRemoveStatus was not declared in this scope". The error is caused by the missing include of "saihelper.h" header file:
dash/dashvnetorch.cpp:130:45: error: 'handleSaiRemoveStatus' was not declared in this scope
  130 |         task_process_status handle_status = handleSaiRemoveStatus((sai_api_t) SAI_API_DASH_VNET, status);
      |                                             ^~~~~~~~~~~~~~~~~~~~~

Why I did it
Update the dash branch with the latest changes from the master branch.
How I verified it

  • Run bgp_facts test
  • Run dash vnet-to-vnet test

Details if related

arfeigin and others added 29 commits January 1, 2023 17:10
…reboot. (sonic-net#2548)

This PR should be merged together with sonic-net/sonic-utilities#2524 and is required to 202205 and 202211.
This PR implements [fastboot] Preserve CoPP table HLD to improve fastboot flow (sonic-net/SONiC#1107).

- What I did
Modified coppmgr mergeConfig logic to support preserving copp tables contents through reboot. Handle duplicates, overwrites, unsupported keys preserved and new keys. According to sonic-net/SONiC#1107

- Why I did it
To shorten dataplane downtime on fast-reboot.

- How I verified it
Manual tests (community fast-reboot test)
* Fix neighbor doesn't update all attribute
- What I did
Avoid aborting orchagent when setting TUNNEL attributes

- Why I did it
Do not abort orchagent if vendor SAI returns SAI_STATUS_ATTR_NOT_SUPPORTED_0
Currently, the logic is hit while setting TUNNEL|MuxTunnel0 table for DSCP remapping.
For some vendors SAI returns “SAI_STATUS_ATTR_NOT_SUPPORTED_0” in such case.
The fix is to avoid aborting orchagent if vendor SAI returns that return value and just to log error message.

Skip setting create-only attributes, including “ecn_mode” and “encap_ecn_mode”
This is because both SAI attributes are “create-only” according to the community SAI header definition, which means setting on either attribute is illegal.
It’s a common limitation for all vendors.
The fix is to skip such attributes when they are updated. Also, the logic in setTunnelAttribute to handle both attributes is removed since it’s dead code.

- How I verified it
Added new unit test to cover the new errors returned and avoiding the abort flow

Signed-off-by: Stephen Sun <stephens@nvidia.com>
…nic-net#2597)

* Only collect stdout of orchagent_restart_check in vstest
In some rare cases, kernel neighbor add notifications are received with Mac string as 'none'. Fixing this to prevent crash.
*Increase diff cov from 50 to 80%
…t#2567)

#### Why I did it
The switch_id parameter missing in on_switch_shutdown_request() method.

#### How I did it
Add missing parameter to on_switch_shutdown_request method.

#### How to verify it
Pass all UT and E2E test cases.

#### Which release branch to backport (provide reason below if selected)

<!--
- Note we only backport fixes to a release branch, *not* features!
- Please also provide a reason for the backporting below.
- e.g.
- [x] 202006
-->

- [ ] 201811
- [ ] 201911
- [ ] 202006
- [ ] 202012
- [ ] 202106
- [ ] 202111

#### Description for the changelog
Add ZMQ based ProducerStateTable and CustomerStateTable.

#### Link to config_db schema for YANG module changes
<!--
Provide a link to config_db schema for the table for which YANG model
is defined
Link should point to correct section on https://github.com/Azure/SONiC/wiki/Configuration.
-->

#### A picture of a cute animal (not mandatory but encouraged)
…et#2584)

* added support for monitoring, primary and adv_prefix and overlay_dmac.

Signed-off-by: siqbal1486 <shahzad.iqbal@microsoft.com>

Signed-off-by: siqbal1486 <shahzad.iqbal@microsoft.com>
* [routesync] Fix for stale dynamic neighbor

The changes are for fixing stale neighbor in the ASIC_DB and data path
when eBGP neighbors are shutdown and neighbors are flushed. The problem
is described in issue: sonic-net/sonic-buildimage#12442
The root cause of this issue is due to not deleing the route from the
ASIC_DB when the route's next hop is on eth0 or docker0 interface. The solution is
to delete the route entry from ASIC_DB instead of just returning when the route's
next hop is on the interface eth0 or docker0


This commit fixes the warm restart unit test failure. When the route with
only nh on eth0 or docker0 is removed and if the route is the default
route, orchagent sends "add" black hole route to the syncd. So the ASIC
DB gets n hset message. When this happens during warm restart, the unit
test identifies this as unwanted setting and the unit test fails. To fix
this issues, the route delete is sent only if the warm restart is not in
progress. This is done following the same warm restart handling approach
used for route delete in other palces.

Signed-off-by: vedganes <veda.ganesan@nokia.com>
* [MuxOrch] Enabling neighbor when adding in active state

What I did: called enable when adding a neighbor in active state

Why I did it: NH routes weren't being updated if they existed in standby
state before neighbor is added
* Changed hte BFD default detect multiplier to 10x
I removed TODO comments that are no longer relevant. To clean source code, non relevant comments should be cleared from source.
…_DB if multiple updates are received from RTNL (sonic-net#2619)

- What I did
Fix issue sonic-net/sonic-buildimage#13341 the issue that ARP entry is out of sync between kernel and APPL_DB
In AppRestartAssist::insertToMap, in case an entry has been updated more than once with the same value but different from the stored one, keep the state as NEW.

Eg.
Assume the entry's value that is restored from the warm reboot is V0, the following events received.

The first update with value V1 is received and handled by the if (found != appTableCacheMap[tableName].end()) branch,
* the state is set to NEW
* value is updated to V1
The second update with the same value V1 is received and handled by this branch
Originally, the state was set to SAME, which is wrong because V1 is different from the stored value V0
The correct logic should be: set the state to SAME only if the state is not NEW
This is a very rare case because most of times, the entry won't be updated multiple times

- Why I did it
To fix the issue.

- How I verified it
Mock test is added to cover the case.

Signed-off-by: Stephen Sun <stephens@nvidia.com>
* [refactor]Refactoring sai handle status
- What I did
Fix the following potential risks:

Uncaught exceptions in /src/nvos-swss/orchagent/main.cpp and /src/nvos-swss/portsyncd/portsyncd.cpp
Uninitialized scalar fields in /src/nvos-swss/orchagent/port.h
Unchecked return value in /src/nvos-swss/orchagent/portsorch.cpp
Pointer to local outside scope in /src/nvos-swss/orchagent/portsorch.cpp

- How I did it
Add "catch" to the uncaught exceptions
Add initialization value to the uninitialized fields
Add a check to the unchecked return value
Delete an unnecessary comma

- How I verified it
Inspection and sanity tests
Signed-off-by: Liran Artzi <lartzi@nvidia.com>
* added support for monitoring, primary and adv_prefix. changed filter_mac to overlay_dmac
* Data Structures and code to write APP_DB VNET_MONITOR table entries for custom monitoring of Vxlan tunnel endpoints.
add local discriminator to state DB for "show bfd summary/peer" to show it.
- What I did
Add new ACL key BTH_OPCODE and AETH_SYNDROME

- Why I did it
Add new ACL key BTH_OPCODE and AETH_SYNDROME

- How I verified it
Manual test
…#2607)

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

What I did
-Remove newly created ports from the default vlan on VOQ systems.
-Add a test to confirm we're executing removeDefaultVlanMembers when a new port is added on a VOQ system.

Why I did it
-When a port is created via create_port SAI call the port may be added to the default vlan, this is undesired.

How I verified it
-On a 7800R3AK-36DM2 linecard with multiple 400G ports I verified that the TX_TAG_ENABLE field in ETPPC_EDITING_PER_PORT_TABLE was not set for and ports. This confirms that no port is a member of any vlan
…ap entry (sonic-net#2642)

*Added check in remote VNI add to ensure vxlan tunnel map is created before adding the remote end point.
* [test_mux] add sleep in test_NH

What I did: added sleep after adding/removing neighbors in test_NH

Why I did it: resolve PR failures due to timing issues between
adding/deleting neighbors and them being present in the asic_db

Signed-off-by: Nikola Dancejic <ndancejic@microsoft.com>
Signed-off-by: Stephen Sun <stephens@nvidia.com>
*Added UT infra for Generic Hash feature
*Aligned PBH tests with Generic Hash UT infra
* [sai_failure_dump]Invoking dump during SAI failure
* [ResponsePublisher] add pipeline support

Why I did it

I did it to improve performance when sending many responses. Responses are buffered in redis client before beeing sent out to redis server, while orchagent has no more pending tasks to do, responses are flushed to redis.
After the merge from the master branch dashorch compilation started to fail
with "handleSaiRemoveStatus was not declared in this scope". The error is
caused by the missing include of "saihelper.h" header file.
@prsunny
Copy link
Collaborator

prsunny commented Feb 10, 2023

@oleksandrivantsiv , can you fix the build failure?

@oleksandrivantsiv
Copy link
Collaborator Author

@prsunny it depends on changes in sonic-sairedis repo. To solve the issue we need to update SAI and sonic-sairedis first

@liat-grozovik
Copy link
Collaborator

@prsunny @oleksandrivantsiv should we merge it regardless?

@oleksandrivantsiv
Copy link
Collaborator Author

@prsunny all checkers passed, can you please merge this PR?

@prsunny prsunny merged commit 5568807 into sonic-net:dash Feb 16, 2023
theasianpianist pushed a commit to theasianpianist/sonic-swss that referenced this pull request Jul 21, 2023
)

*Merge remote-tracking branch 'upstream/master' into dash (sonic-net#2663)
* Modify coppmgr mergeConfig to support preserving copp tables through reboot. (sonic-net#2548)
* Avoid aborting orchagent when setting TUNNEL attributes (sonic-net#2591)
* Handle Mac address 'none' (sonic-net#2593)
* Increase diff coverage to 80% (sonic-net#2599)
* Add missing parameter to on_switch_shutdown_request method. (sonic-net#2567)
* Add ZMQ based ProducerStateTable and CustomerStateTable.
* Revert "[voq][chassis]Add show fabric counters port/queue commands (sonic-net#2522)" (sonic-net#2611)
* Added new attributes for Vnet and Vxlan ecmp configurations. (sonic-net#2584)
* added support for monitoring, primary and adv_prefix and overlay_dmac.
* [routesync] Fix for stale dynamic neighbor (sonic-net#2553)
* [MuxOrch] Enabling neighbor when adding in active state (sonic-net#2601)
* Changed the BFD default detect multiplier to 10x (sonic-net#2614)
* Remove TODO comments that are no longer relevant (sonic-net#2622)
* Fix issue #13341 ARP entry can be out of sync between kernel and APPL_DB if multiple updates are received from RTNL (sonic-net#2619)
* [refactor]Refactoring sai handle status (sonic-net#2621)
* Vxlan tunnel endpoint custom monitoring APPL DB table. (sonic-net#2589)
* added support for monitoring, primary and adv_prefix. changed filter_mac to overlay_dmac
* Data Structures and code to write APP_DB VNET_MONITOR table entries for custom monitoring of Vxlan tunnel endpoints.
* [bfdorch] add local discriminator to state DB (sonic-net#2629)
* [acl] Add new ACL key BTH_OPCODE and AETH_SYNDROME  (sonic-net#2617)
* [voq][chassis] Remove created ports from the default vlan. (sonic-net#2607)
* [EVPN]Handling race condition when remote VNI arrives before tunnel map entry (sonic-net#2642)
*Added check in remote VNI add to ensure vxlan tunnel map is created before adding the remote end point.
* [test_mux] add sleep in test_NH (sonic-net#2648)
* [autoneg]Fixing adv interface types to be set when AN is disabled (sonic-net#2638)
* [hash]: Add UT infra. (sonic-net#2660)
*Added UT infra for Generic Hash feature
*Aligned PBH tests with Generic Hash UT infra
* [sai_failure_dump]Invoking dump during SAI failure (sonic-net#2644)
* [ResponsePublisher] add pipeline support  (sonic-net#2511)
* [dash] Fix compilation issue caused by missing include.
theasianpianist pushed a commit to theasianpianist/sonic-swss that referenced this pull request Jul 25, 2023
)

*Merge remote-tracking branch 'upstream/master' into dash (sonic-net#2663)
* Modify coppmgr mergeConfig to support preserving copp tables through reboot. (sonic-net#2548)
* Avoid aborting orchagent when setting TUNNEL attributes (sonic-net#2591)
* Handle Mac address 'none' (sonic-net#2593)
* Increase diff coverage to 80% (sonic-net#2599)
* Add missing parameter to on_switch_shutdown_request method. (sonic-net#2567)
* Add ZMQ based ProducerStateTable and CustomerStateTable.
* Revert "[voq][chassis]Add show fabric counters port/queue commands (sonic-net#2522)" (sonic-net#2611)
* Added new attributes for Vnet and Vxlan ecmp configurations. (sonic-net#2584)
* added support for monitoring, primary and adv_prefix and overlay_dmac.
* [routesync] Fix for stale dynamic neighbor (sonic-net#2553)
* [MuxOrch] Enabling neighbor when adding in active state (sonic-net#2601)
* Changed the BFD default detect multiplier to 10x (sonic-net#2614)
* Remove TODO comments that are no longer relevant (sonic-net#2622)
* Fix issue #13341 ARP entry can be out of sync between kernel and APPL_DB if multiple updates are received from RTNL (sonic-net#2619)
* [refactor]Refactoring sai handle status (sonic-net#2621)
* Vxlan tunnel endpoint custom monitoring APPL DB table. (sonic-net#2589)
* added support for monitoring, primary and adv_prefix. changed filter_mac to overlay_dmac
* Data Structures and code to write APP_DB VNET_MONITOR table entries for custom monitoring of Vxlan tunnel endpoints.
* [bfdorch] add local discriminator to state DB (sonic-net#2629)
* [acl] Add new ACL key BTH_OPCODE and AETH_SYNDROME  (sonic-net#2617)
* [voq][chassis] Remove created ports from the default vlan. (sonic-net#2607)
* [EVPN]Handling race condition when remote VNI arrives before tunnel map entry (sonic-net#2642)
*Added check in remote VNI add to ensure vxlan tunnel map is created before adding the remote end point.
* [test_mux] add sleep in test_NH (sonic-net#2648)
* [autoneg]Fixing adv interface types to be set when AN is disabled (sonic-net#2638)
* [hash]: Add UT infra. (sonic-net#2660)
*Added UT infra for Generic Hash feature
*Aligned PBH tests with Generic Hash UT infra
* [sai_failure_dump]Invoking dump during SAI failure (sonic-net#2644)
* [ResponsePublisher] add pipeline support  (sonic-net#2511)
* [dash] Fix compilation issue caused by missing include.
theasianpianist pushed a commit to theasianpianist/sonic-swss that referenced this pull request Jul 25, 2023
)

*Merge remote-tracking branch 'upstream/master' into dash (sonic-net#2663)
* Modify coppmgr mergeConfig to support preserving copp tables through reboot. (sonic-net#2548)
* Avoid aborting orchagent when setting TUNNEL attributes (sonic-net#2591)
* Handle Mac address 'none' (sonic-net#2593)
* Increase diff coverage to 80% (sonic-net#2599)
* Add missing parameter to on_switch_shutdown_request method. (sonic-net#2567)
* Add ZMQ based ProducerStateTable and CustomerStateTable.
* Revert "[voq][chassis]Add show fabric counters port/queue commands (sonic-net#2522)" (sonic-net#2611)
* Added new attributes for Vnet and Vxlan ecmp configurations. (sonic-net#2584)
* added support for monitoring, primary and adv_prefix and overlay_dmac.
* [routesync] Fix for stale dynamic neighbor (sonic-net#2553)
* [MuxOrch] Enabling neighbor when adding in active state (sonic-net#2601)
* Changed the BFD default detect multiplier to 10x (sonic-net#2614)
* Remove TODO comments that are no longer relevant (sonic-net#2622)
* Fix issue #13341 ARP entry can be out of sync between kernel and APPL_DB if multiple updates are received from RTNL (sonic-net#2619)
* [refactor]Refactoring sai handle status (sonic-net#2621)
* Vxlan tunnel endpoint custom monitoring APPL DB table. (sonic-net#2589)
* added support for monitoring, primary and adv_prefix. changed filter_mac to overlay_dmac
* Data Structures and code to write APP_DB VNET_MONITOR table entries for custom monitoring of Vxlan tunnel endpoints.
* [bfdorch] add local discriminator to state DB (sonic-net#2629)
* [acl] Add new ACL key BTH_OPCODE and AETH_SYNDROME  (sonic-net#2617)
* [voq][chassis] Remove created ports from the default vlan. (sonic-net#2607)
* [EVPN]Handling race condition when remote VNI arrives before tunnel map entry (sonic-net#2642)
*Added check in remote VNI add to ensure vxlan tunnel map is created before adding the remote end point.
* [test_mux] add sleep in test_NH (sonic-net#2648)
* [autoneg]Fixing adv interface types to be set when AN is disabled (sonic-net#2638)
* [hash]: Add UT infra. (sonic-net#2660)
*Added UT infra for Generic Hash feature
*Aligned PBH tests with Generic Hash UT infra
* [sai_failure_dump]Invoking dump during SAI failure (sonic-net#2644)
* [ResponsePublisher] add pipeline support  (sonic-net#2511)
* [dash] Fix compilation issue caused by missing include.
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.