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

Local ARS HLD #5

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open

Local ARS HLD #5

wants to merge 9 commits into from

Conversation

VladimirKuk
Copy link

initial version


**Existing Forwarding Decision Model**

Today, the routing protocol or SDN controller decides the reachability of a given destination and finds all possible paths. These paths may be equal cost or unequal cost. Decision to choose one of the paths from all available paths is done in the switch pipeline based on a computed hash. This path selection is static in nature based on the packet fields. Hash based selection doesn't take into account the dynamic state of the local or end-to-end path.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The decision to choose of one the paths...


Today, the routing protocol or SDN controller decides the reachability of a given destination and finds all possible paths. These paths may be equal cost or unequal cost. Decision to choose one of the paths from all available paths is done in the switch pipeline based on a computed hash. This path selection is static in nature based on the packet fields. Hash based selection doesn't take into account the dynamic state of the local or end-to-end path.

Control plane protocols exist for traffic engineering a path but involves a control plane decision that is very slow to react to changing traffic patterns in the network or state of interfaces.
Copy link
Collaborator

Choose a reason for hiding this comment

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

traffic engineering paths, but involves control plane decisions that are very slow...


Control plane protocols exist for traffic engineering a path but involves a control plane decision that is very slow to react to changing traffic patterns in the network or state of interfaces.

Adaptive Routing System (ARS) allows dynamically selection of the best available path for data packets based on real-time network conditions. This approach helps to mitigate congestion, optimize resource utilization, and improve overall network performance.
Copy link
Collaborator

Choose a reason for hiding this comment

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

allows dynamic selections of the best...


Adaptive Routing System (ARS) allows dynamically selection of the best available path for data packets based on real-time network conditions. This approach helps to mitigate congestion, optimize resource utilization, and improve overall network performance.

No standard exists, but there are industry consesus for general approach.
Copy link
Collaborator

Choose a reason for hiding this comment

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

is an industry consensus


No standard exists, but there are industry consesus for general approach.

Following illustrates common operation of ARS, in which two paths are considered - one shortest (minimal) and another (non-minimal), when forwarding trafficto the destination. When shortest path becomes congested, alternative will be used.
Copy link
Collaborator

Choose a reason for hiding this comment

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

  • The following illustrates the common operation of ARS
  • traffic to
  • the alternative

arsorch - it is an orchestration agent that handles the configuration requests from CONFIG_DB or APPL_DB. It is responsible for creating the SAI ARS profile and configuring SAI ARS object.

#### Orchdaemon
orchdaemon - it is the main orchestration agent, which handles all Redis DB's updates, then calls appropriate orchagent, the new arsorch should be registered inside an orchdaemon.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The orchdaemon

##### ARS_PORIFLE

```
container ARS_PORIFLE {
Copy link
Collaborator

Choose a reason for hiding this comment

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

ARS_PROFILE

container ARS_OBJECT {

list ARS_OBJECT_LIST {
key "profile_name ars_name";
Copy link
Collaborator

Choose a reason for hiding this comment

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

two keys?

##### ACL_RULE changes

```
container sonic-acl {
Copy link
Collaborator

Choose a reason for hiding this comment

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

remove all here except for the new leaf

length 1..255;
}
}
...
Copy link
Collaborator

Choose a reason for hiding this comment

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

remove extra "```"


| Revision | Date | Author | Change Description |
| -------- | ----------- | ---------------- | ------------------ |
| 1.0 | Dec 01 2024 | Vladimir Kuk | Initial proposal |

Choose a reason for hiding this comment

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

Please add Marvell somewhere to the revision.

}
```

#### Config DB Enhancements

Choose a reason for hiding this comment

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

Please fix formatting issues in "Config DB Enhancements"


### Warmboot and Fastboot Design Impact

Warmboot for SWSS container will be supported.

Choose a reason for hiding this comment

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

If there is no delay or impact on warmboot, that should be mentioned here.


### Restrictions/Limitations

Due to hw resources allocations, all ARS configuration must be done prior to routing configuration.???????????

Choose a reason for hiding this comment

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

Let's remove the ???????????
If this is an issue, let's move it to the "Open/Action items" section.

Signed-off-by: Vladimir Kuk <[email protected]>
Signed-off-by: Vladimir Kuk <[email protected]>
Signed-off-by: Vladimir Kuk <[email protected]>
@VladimirKuk VladimirKuk requested review from marvellgit and removed request for marvellgit January 5, 2025 08:19
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.

3 participants