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

[Dash-Sonic] Introduce route group, pa validation tables #520

Merged
merged 3 commits into from
Feb 28, 2024
Merged

Conversation

prsunny
Copy link
Collaborator

@prsunny prsunny commented Feb 21, 2024

  1. Add Route group table for grouping routes and binding to an ENI
  2. Introduce PA validation table for special validation for certain scenarios

documentation/general/dash-sonic-hld.md Outdated Show resolved Hide resolved

```
DASH_ROUTE_GROUP_TABLE:{{group_id}}
"guid": {{string}}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we still need the guid here? @sharmasushant

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

guid can be optional

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see a use for guid field, but I am okay to leave it there.

"DASH_ROUTE_TABLE:F4939FEFC47E:50.1.2.0/24": {
"DASH_ENI_ROUTE_TABLE:F4939FEFC47E": {
"group_id":"group_id_2"
},
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Different ENI ids for group_id_1, group_id_2 and group_id_3.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a reference example. it can be any group_id

@KrisNey-MSFT
Copy link
Collaborator

Currently the route table is modified w/routes belonging to an ENI (per ENI).
Controller calls each route update w/ENI key.
Group table & binding allows for atomic binding for an ENI (instead of updating 1 by 1)
(Not a subset of ENI routes).
Cx update their routes in the route table, and expect all or nothing to work. Adding 1 by 1 we can end up in a non-complete/inconsistent goal state.

What if libsai has no resources to support an atomic update?
The controller will need to wait to determine whether this is a successful operation or not.
If unsuccessful, old route table will persist.

Copy link
Collaborator

@sharmasushant sharmasushant left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@KrisNey-MSFT
Copy link
Collaborator

Are all comments resolved? IF Y, I can merge :)

@KrisNey-MSFT
Copy link
Collaborator

hi @r12f , @kperumalbfn , and @pranjal-git - would you mind reviewing for Prince please?
TY...

@r12f r12f merged commit 477ce2d into main Feb 28, 2024
4 checks passed
@r12f r12f deleted the prsunny-rtgroup branch February 28, 2024 19:42
theasianpianist added a commit to sonic-net/sonic-dash-api that referenced this pull request Aug 10, 2024
Align DASH API with newest HLD changes: sonic-net/DASH#520 and sonic-net/SONiC#1658

- Route group API changes
- Metering implementation changes
- PL/PL-NSG
- Deprecate/rename some fields for clarity
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.

5 participants