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

Srv6 hld #795

Merged
merged 48 commits into from
Feb 16, 2022
Merged

Srv6 hld #795

merged 48 commits into from
Feb 16, 2022

Conversation

heidinet2007
Copy link
Contributor

@heidinet2007 heidinet2007 commented Jun 7, 2021

Why I did it

This document describes the Functionality and High-level design of the SRv6 feature.

Description for the changelog

Repo PR title State
sonic-buildimage CRM init config for SRV6 Nexthop and MY_SID resource GitHub issue/pull request detail
sonic-swss-common SRV6: Add APP_DB tables for SRV6 GitHub issue/pull request detail
sonic-swss [SRV6] Sonic-swss changes for SRV6 GitHub issue/pull request detail
sonic-utilities Add CRM CLIs for SRV6 nexthop and my_sid_entry GitHub issue/pull request detail
sonic-sairedis Sonic sairedis changes for SAI SRV6 and SAI refpoint update to v1.9.0 GitHub issue/pull request detail


![draw-configdb](images/drawing-configdb-frr3.png)

Before FRR is ready, we will use static configuration to set SIDs and apply policy for TE. It enables basic SRv6 operation and populates SRv6 into ASIC, allows SRv6 data plan forwarding. More complicated SRv6 policy can be enabled when SRv6 is fully supported in FRR and passed from FRR to fpmsyncd.
Copy link
Contributor

Choose a reason for hiding this comment

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

data plane - typo

Choose a reason for hiding this comment

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

fixed.

Copy link
Contributor

Choose a reason for hiding this comment

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

@goldenrye , its not addressed

Copy link
Collaborator

Choose a reason for hiding this comment

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

@goldenrye , its not addressed

Hi @prsunny, the changes shown in this conversation are outdated. Can you please check the latest commit here

https://github.com/Azure/SONiC/blob/9fc2a68b215452d658b6bdd5188092c1b6ee8b01/doc/srv6/srv6-hld-v19.md

we have fixed the typo. thanks~

Choose a reason for hiding this comment

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

Can you explain more on controller role in the picture? Do we have separation of the route management between controller and FRR? If both can operate on same route entry and controller is doing update. We need more explanation on how to coordination is handled between these two. e.g. removing route entries shared by controller and FRR..

Copy link
Collaborator

Choose a reason for hiding this comment

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

@caizhenghui-juniper Thanks for reviewing the HLD. For phase 1, the controller is supposed to avoid route conflicts with FRR. This can be achieved by using different VRFs or prefixes between routes from controller or FRR. For phase 2, all routes update need to go through FRR, who will take care of the route conflicts.




NextHopKey
Copy link
Contributor

Choose a reason for hiding this comment

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

Please capture this as a separate section for NH Key changes. Similar to heading SRV6Orchagent

Choose a reason for hiding this comment

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

done

seg_src = address ; New optional field. Source addrs for sid encap
```

## 2.3 Orchestration Agent Changes
Copy link
Contributor

Choose a reason for hiding this comment

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

Please have a section to capture examples of kernel routes and kernel interaction

Choose a reason for hiding this comment

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

done

Copy link
Contributor

Choose a reason for hiding this comment

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

I don't see this addressed. Did you miss any commit?




# 2 Feature Design
Copy link
Contributor

Choose a reason for hiding this comment

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

The details of srv6mgr modifying the ROUTE_TABLE is not clear. Please have it captured in detail and with flow diagram.

Choose a reason for hiding this comment

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

update in the HLD

Copy link
Contributor

Choose a reason for hiding this comment

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

In our previous discussion, it was decided to have controller to push routes to APP_DB directly thereby avoiding srv6mgr altogether. Also the config_db entries can be directly subscribed by srv6orch similar to fgnhgorch. Please address this

Choose a reason for hiding this comment

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

@prsunny Hi Prince, yes we are avoiding srv6mgr as this was stop gap until FRR integration which is planned for next release. Agree that hence srv6 mgr can be avoided and have controller push the routes to APP_DB. We have these changes reflected in the HLD now and also in the diagram. Thanks.

; New table
; holds local SID to behavior mapping, allow 1:1 or n:1 mapping

key = SRV6_LOCAL_SID:ipv6address
Copy link
Collaborator

@venkatmahalingam venkatmahalingam Jun 8, 2021

Choose a reason for hiding this comment

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

config-DB table should use '|' key seperator, please change it in all config-DB tables.

Choose a reason for hiding this comment

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

fixed

Copy link
Contributor

Choose a reason for hiding this comment

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

I do not see this addressed. Please fix for all tables in this section


Schema:

```
Copy link
Collaborator

Choose a reason for hiding this comment

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

Please create SONiC YANG PR for review if not done already.

Choose a reason for hiding this comment

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

provided in the latest HLD

Choose a reason for hiding this comment

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

@venkatmahalingam @prsunny Could you please take a look to review the SRv6 HLD. Thanks.

Kumaresh Perumal and others added 3 commits October 15, 2021 10:26
prsunny
prsunny previously approved these changes Oct 22, 2021
Copy link
Contributor

@prsunny prsunny left a comment

Choose a reason for hiding this comment

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

Approving from my side. I see that orchagent (routeorch<->srv6orch) interactions are not captured with flow diagrams. Will review the code for further clarity.

@prsunny
Copy link
Contributor

prsunny commented Oct 22, 2021

@venkatmahalingam , @caizhenghui-juniper , please sign-off

reshmaintel
reshmaintel previously approved these changes Oct 22, 2021
@prsunny
Copy link
Contributor

prsunny commented Oct 26, 2021

Please plan for sonic-mgmt test PR and update the description with link

Rename LOCAL_SID_TABLE to MY_SID_TABLE.
@kperumalbfn
Copy link
Contributor

Thanks @prsunny, will update the PR with sonic-mgmt tests PR. We will plan for the next Sonic release.

@kperumalbfn
Copy link
Contributor

@prsunny @venkatmahalingam @caizhenghui-juniper Updated the PR with name change of LOCAL_SID to MY_SID. Please approve and merge the HLD.

prsunny
prsunny previously approved these changes Oct 28, 2021
@@ -0,0 +1,598 @@
# Segment Routing over IPv6 (SRv6) HLD

Copy link
Collaborator

Choose a reason for hiding this comment

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

Please check LOCAL_SID to MY_SID replacements in the diagram as well, I see LOCAL_SID usage in the diagrams, please correct them.

Copy link
Collaborator

@venkatmahalingam venkatmahalingam left a comment

Choose a reason for hiding this comment

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

Please replace LOCAL_SID to MY_SID in all the diagrams as well.

@kperumalbfn
Copy link
Contributor

Please replace LOCAL_SID to MY_SID in all the diagrams as well.

Thanks @venkatmahalingam. Modified one diagram. Other one will be updated by @hzheng5

@kperumalbfn
Copy link
Contributor

@venkatmahalingam @prsunny All images are updated with the correct MY_SID name. Please approve and merge the HLD.

@prsunny prsunny merged commit 45c315b into sonic-net:master Feb 16, 2022
202111 Release HLD automation moved this from Reviewed to Done Feb 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

9 participants