You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| 2.4 | 02/05/2025 | Prince Sunny | Update DASH_TUNNEL, FNIC, minor clarifications |
56
+
55
57
56
58
# About this Manual
57
59
This document provides more detailed design of DASH APIs, DASH orchestration agent, Config and APP DB Schemas and other SONiC buildimage changes required to bring up SONiC image on an appliance card. General DASH HLD can be found at [dash_hld](https://github.com/sonic-net/DASH/tree/main/documentation/general/dash-high-level-design.md).
@@ -69,6 +71,7 @@ This document provides more detailed design of DASH APIs, DASH orchestration age
69
71
| vPORT | VM's NIC. Eni, Vnic, VPort are used interchangeably |
70
72
| ST | Service Tunnel |
71
73
| PL | Private Link |
74
+
| FNIC | Floating NIC |
72
75
73
76
# 1 Requirements Overview
74
77
@@ -89,6 +92,7 @@ At a high level the following should be supported:
89
92
- Telemetry and Monitoring
90
93
- Private Link
91
94
- Private Link NSG
95
+
- Express Route GW Bypass
92
96
93
97
Phase 2
94
98
- Service Tunnel
@@ -127,6 +131,11 @@ Following are the minimal scaling requirements
127
131
| Total active connections | 32M (Bidirectional) |
128
132
| Metering Buckets per ENI | 4000 |
129
133
| CPS | 3M |
134
+
| Max PA validation entries | 4k |
135
+
| Max TUNNEL entries | 4k |
136
+
| Max TUNNEL members per group | 128 |
137
+
| Max trusted VNIs per ENI | 16 |
138
+
| Max trusted VNIs | 1k Per Card |
130
139
131
140
\* Number of VNET is a software limit as VNET by itself does not take hardware resources. This shall be limited to number of VNI hardware can support
132
141
@@ -185,6 +194,7 @@ DASH Sonic implementation is targeted for appliance scenarios and must handles m
185
194
13. During a bulk operation, if any part/subset of API fails, implementation shall return *error* for the entire API. Sonic implementation shall validate the entire API as pre-checks before applying and return accordingly.
186
195
14. Implementation must have flexible memory allocation for ENI and not reserve max scale during initial create (e.g 100k routes). This is to allow oversubscription.
187
196
15. Implementation must not have silent failures for APIs. E.g accepting an API from controller, returning success and failing in the backend. This is orthogonal to the idempotency of APIs described above for ADD and Delete operations. Intent is to ensure SDN controller and Sonic implementation is in-sync
197
+
16. An ENI can be modeled as FNIC or regular VM at create time only.
188
198
189
199
## 1.7 ACL requirements
190
200
@@ -307,13 +317,13 @@ Reference Yang model for DASH Vnet is [here](https://github.com/sonic-net/sonic-
307
317
308
318
## 3.1 Config DB
309
319
310
-
### 3.1.1 DEVICE Metadata Table
320
+
### 3.1.1 DEVICE Metadata Table for SmartSwitch DPU.
@@ -379,9 +391,11 @@ admin_state = Enabled after all configurations are applied.
379
391
vnet = Vnet that ENI belongs to
380
392
pl_sip_encoding = Privatelink encoding for IPv6 SIP transformation; Format `field_value/full_mask` where both `field_value` and `full_mask` must be given as IPv6 addresses. See "3.6.3.2 PL IPv6 Address Transformation" for details.
381
393
pl_underlay_sip = Underlay SIP (ST GW VIP) to be used for all private link transformation for this ENI
382
-
v4_meter_policy_id = IPv4 meter policy ID
383
-
v6_meter_policy_id = IPv6 meter policy ID
384
-
disable_fast_path_icmp_flow_redirection = Disable handling fast path ICMP flow redirection packets
394
+
v4_meter_policy_id = IPv4 meter policy ID
395
+
v6_meter_policy_id = IPv6 meter policy ID
396
+
disable_fast_path_icmp_flow_redirection = Disable handling fast path ICMP flow redirection packets
397
+
mode = floating nic mode or vm mode. Default is 'vm_mode'
398
+
trusted_vni = list of trusted VNIs for this ENI, single value or "-" for range both inclusive. MSEE VNIs can added here temporarily.
385
399
```
386
400
387
401
### 3.2.4 TAG
@@ -474,7 +488,7 @@ encap_type = encap type depends on the action_type - {vxlan, nvgre
474
488
vni = vni value to be used as the key for encapsulation. Applicable if encap_type is specified.
475
489
```
476
490
477
-
### 3.2.7 ROUTING APPLIANCE
491
+
### 3.2.7 ROUTING APPLIANCE (DEPRECATED, Use DASH_TUNNEL)
key = DASH_ROUTE_RULE_TABLE:eni:vni:prefix ; ENI Inbound route table with VNI and optional SRC PA prefix
599
+
key = DASH_ROUTE_RULE_TABLE:eni:vni:prefix ; ENI Inbound route table with VNI and optional SRC PA prefix or prefix tag defined by DASH_PREFIX_TAG_TABLE
580
600
; field = value
581
601
action_type = routing_type ; reference to routing type, action can be decap or drop
582
602
priority = INT32 value ; priority of the rule, lower the value, higher the priority
key = DASH_PA_VALIDATION_TABLE:vni; ENI and VNI as key;
674
694
; field = value
675
-
addresses = list of addresses used for validating underlay source ip of incoming packets.
695
+
prefixes= list of prefixes used for validating underlay source ip of incoming packets.
676
696
```
677
697
678
-
DASH_PA_VALIDATION_TABLE is used only for PL outbound direction. PA address can be either IPV4 or IPV6.
679
-
680
-
Total PAs per MSEE would be 64 and if there are 64 MSEEs per region(based on 400G DPU), there would be 4K PA_VALIDATION entries.
681
-
682
-
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)
698
+
DASH_PA_VALIDATION_TABLE is used only for additional PA validation. PA prefix can be either IPV4 or IPV6. Used for fastpath or other explicit PA validation cases
key = DASH_TUNNEL_TABLE:tunnel_name; tunnel name used for referencing in mapping table
696
712
; field = value
697
713
endpoints = list of addresses for ecmp tunnel
698
-
encap_type = vxlan or nvgre
699
-
vni = vni value for encap
714
+
encap_type = vxlan or nvgre, create only attribute
715
+
vni = vni value for encap, create only attribute
700
716
metering_class_or = uint32
701
717
```
702
718
719
+
DASH_TUNNEL_TABLE shall have one or more endpoints. Encap type, VNI are create only attributes. A change on encap would require deleting and creating new tunnel objects.
720
+
One endpoint is treated as single nexthop and comma separated multiple endpoints shall be treated as ECMP nexthop. For return packet from the tunnel, expectation is to have the same encap type.
721
+
722
+
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```
723
+
724
+
For ECMP, implementation shall create ```sai_dash_tunnel_member``` and ```sai_dash_tunnel_next_hop``` with appropriate ```SAI_DASH_TUNNEL_ATTR_MAX_MEMBER_SIZE```. Since MAX_MEMBER_SIZE is set during creation, it is expected that adding new member will be a new DASH_TUNNEL object creation. However, implementation shall support removing members.
725
+
703
726
### 3.2.15 DASH orchagent (Overlay)
704
727
705
728
| APP_DB Table | Key | Field | SAI Attributes/*objects*| Comment |
@@ -988,6 +1011,8 @@ SONiC for DASH shall have a lite swss initialization without the heavy-lift of e
988
1011
|| SAI_SWITCH_ATTR_TYPE |
989
1012
|| SAI_SWITCH_ATTR_VXLAN_DEFAULT_PORT |
990
1013
|| SAI_SWITCH_ATTR_VXLAN_DEFAULT_ROUTER_MAC |
1014
+
|| SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT |
1015
+
|| SAI_SWITCH_TUNNEL_ATTR_VXLAN_UDP_SPORT_MASK |
991
1016
992
1017
### 3.3.5 Underlay Routing
993
1018
DASH Appliance shall establish BGP session with the connected Peer and advertise the prefixes (VIP PA). In turn, the Peer (e.g, Network device or SmartSwitches) shall advertise default route to appliance. With two Peers connected, the appliance shall have route with gateway towards both Peers and does ECMP routing. Orchagent install the route and resolves the neighbor (GW) mac and programs the underlay route/nexthop and neighbor.
@@ -1608,3 +1633,142 @@ The same principle applies to `overlay_dip_prefix` and the final overlay destina
0 commit comments