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

[Sonic-DASH] Dash Tunnel and FNIC changes #1911

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

Conversation

prsunny
Copy link
Contributor

@prsunny prsunny commented Feb 6, 2025

Updated to rev 2.4 for:

  1. Dash Tunnel behavior
  2. PA validation updates
  3. Switch attributes

@mssonicbld
Copy link
Collaborator

/azp run

Copy link

No pipelines are associated with this pull request.

@prsunny
Copy link
Contributor Author

prsunny commented Feb 6, 2025

@prsunny
Copy link
Contributor Author

prsunny commented Feb 6, 2025

@KrisNey-MSFT

@mssonicbld
Copy link
Collaborator

/azp run

Copy link

No pipelines are associated with this pull request.

@r12f r12f self-requested a review February 6, 2025 04:34
@@ -696,10 +711,17 @@ key = DASH_TUNNEL_TABLE:tunnel_name; tunnel name used for r
; field = value
endpoints = list of addresses for ecmp tunnel
encap_type = vxlan or nvgre
vni = vni value for encap
vni = vni value for encap, create only attribute
Copy link
Contributor

Choose a reason for hiding this comment

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

should we mention create only attribute for encap_type as well ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

addressed


For single endpoint, implmentation shall simply create a sai_dash_tunnel object with ```SAI_DASH_TUNNEL_ATTR_DIP=endpoint IP``` and ```SAI_DASH_TUNNEL_ATTR_MAX_MEMBER_SIZE=1```

For ECMP, implementation shall create ```sai_dash_tunnel_member``` and ```sai_dash_tunnel_next_hop``` with appropriate ```SAI_DASH_TUNNEL_ATTR_MAX_MEMBER_SIZE```
Copy link
Contributor

Choose a reason for hiding this comment

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

Please mention that though members can be updated, at any point the number of members cannot exceed the count provided at Dash tunnel create

Copy link
Contributor Author

Choose a reason for hiding this comment

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

addressed

@@ -89,6 +92,7 @@ At a high level the following should be supported:
- Telemetry and Monitoring
- Private Link
- Private Link NSG
- Express Route GW Bypass
Copy link
Contributor

Choose a reason for hiding this comment

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

can we have a config example for express route gw bypass ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Will add as a next iteration (another PR)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

added an example

@mssonicbld
Copy link
Collaborator

/azp run

Copy link

No pipelines are associated with this pull request.

@@ -482,6 +491,7 @@ DASH_ROUTING_APPLIANCE_TABLE:{{appliance_id}}:
"addresses": {{list of addresses}}
"encap_type": {{encap type}}
"vni": {{vni}}
"region_id": {{local region id}}
Copy link
Contributor

Choose a reason for hiding this comment

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

Region ID is already added to the APPLIANCE table. This is the wrong deprecated Routing Appliance table

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes. Prince, the routing appliance table is not the appliance table.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for catching. addressed

@@ -499,6 +510,8 @@ DASH_APPLIANCE_TABLE:{{appliance_id}}
"sip": {{ip_address}}
"vm_vni": {{vni}}
"local_region_id": {{region_id}}
"outbound_direction_lookup": {{dst_mac/src_mac}}
Copy link
Contributor

@mukeshmv mukeshmv Feb 7, 2025

Choose a reason for hiding this comment

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

do we still need this attribute if we have Floating NIC mode ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, if there is fnic mode disabled and need to change the lookup attribute. Basically, aligning with SAI model

Copy link
Contributor

@mukeshmv mukeshmv left a comment

Choose a reason for hiding this comment

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

couple more comments

"subtype": "Appliance",
"type": "SonicHost",
"subtype": "SmartSwitch",
"type": "SonicDpu",
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we swap the type and subtype?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is just aligning with sonic-buildimage and copied from existing definitions.

@@ -482,6 +491,7 @@ DASH_ROUTING_APPLIANCE_TABLE:{{appliance_id}}:
"addresses": {{list of addresses}}
"encap_type": {{encap type}}
"vni": {{vni}}
"region_id": {{local region id}}
Copy link
Contributor

Choose a reason for hiding this comment

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

Yes. Prince, the routing appliance table is not the appliance table.

@@ -499,6 +510,8 @@ DASH_APPLIANCE_TABLE:{{appliance_id}}
"sip": {{ip_address}}
"vm_vni": {{vni}}
"local_region_id": {{region_id}}
"outbound_direction_lookup": {{dst_mac/src_mac}}
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we have a vni table? The will be multiple VNIs needing this.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We don't have a VNI table currently.


For more scale numbers, please refer to the [doc](https://github.com/sonic-net/DASH/blob/main/documentation/express-route-service/express-route-gateway-bypass.md)
Expected max number of 4K PA_VALIDATION entries. For more scale numbers, please refer to the [doc](https://github.com/sonic-net/DASH/blob/main/documentation/express-route-service/express-route-gateway-bypass.md)
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe better to mention this in scaling requirements too, if missed.

Copy link
Contributor

Choose a reason for hiding this comment

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

Or simply move to there, in case inconsistent in future.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

added to scale section and removed from here

@mssonicbld
Copy link
Collaborator

/azp run

Copy link

No pipelines are associated with this pull request.

@@ -695,11 +707,18 @@ DASH_TUNNEL_TABLE:{{tunnel_name}}
key = DASH_TUNNEL_TABLE:tunnel_name; tunnel name used for referencing in mapping table
; field = value
endpoints = list of addresses for ecmp tunnel
encap_type = vxlan or nvgre
vni = vni value for encap
encap_type = vxlan or nvgre, create only attribute
Copy link
Contributor

Choose a reason for hiding this comment

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

For the encap_type can we add an explicit definishion of what is expected return packet?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

added a statement

@mssonicbld
Copy link
Collaborator

/azp run

Copy link

No pipelines are associated with this pull request.

@prsunny prsunny requested a review from mukeshmv February 12, 2025 03:17
@prsunny
Copy link
Contributor Author

prsunny commented Feb 12, 2025

@mzms, please review the expected dash config section for er gw

@mssonicbld
Copy link
Collaborator

/azp run

Copy link

No pipelines are associated with this pull request.

@@ -507,6 +519,8 @@ key = DASH_APPLIANCE_TABLE:id ; attributes specific for the
sip = source ip address, to be used in encap
vm_vni = VM VNI that is used for setting direction. Also used for inbound encap to VM
local_region_id = Region where this appliance is located
outbound_direction_lookup= dst_mac or src_mac; Default is src_mac. This attribute overrides to dst_mac

Choose a reason for hiding this comment

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

Is this optional or mandatory?

1. This packet shall be transformed IPv6 packet from PL endpoint
2. Outer SRC_PA:50.1.2.3, Outer DST_PA:10.250.20.19
3. Reverse transpositions applied (v6->v4)
4. Transformed packet tunneled to one of ER GW endpoint IP as configured in DASH_TUNNEL_TABLE
Copy link

@prabhataravind prabhataravind Feb 12, 2025

Choose a reason for hiding this comment

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

what is the behavior when there are multiple endpoints configured in DASH_TUNNEL_TABLE? Which endpoint is taken?

@@ -127,6 +131,7 @@ Following are the minimal scaling requirements
| Total active connections | 32M (Bidirectional) |
| Metering Buckets per ENI | 4000 |
| CPS | 3M |
| Max PA validation entries | 4k |
Copy link
Contributor

@mukeshmv mukeshmv Feb 12, 2025

Choose a reason for hiding this comment

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

Can we add DASH_TUNNEL / NEXTHOP / max MEMBERs per TUNNEL scale ?

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.

6 participants