|
32 | 32 | | ---- | --------- | ------------------------------------------------ | ------------------ | |
33 | 33 | | 0.1 | Sep 23' 2024 | Jai Kumar, Rajesh Sankaran | Initial draft | |
34 | 34 | | 0.2 | Oct 23' 2024 | Rajesh Sankaran | Changed DF, single active attributes | |
| 35 | +| 0.3 | May 18' 2026 | James Andrew | Added split-horizon support for P2MP tunnels | |
35 | 36 |
|
36 | 37 |
|
37 | 38 | # 1.0 Introduction |
@@ -199,12 +200,60 @@ typedef enum _sai_vlan_member_attr_t |
199 | 200 |
|
200 | 201 | ### 3.2.3 Split Horizon support |
201 | 202 |
|
202 | | - - Tunnels of peer mode SAI_TUNNEL_PEER_MODE_P2P are only considered here. |
203 | 203 | - The isolation group object of type SAI_ISOLATION_GROUP_TYPE_BRIDGE_PORT is used to achieve the split horizon functionality. |
204 | 204 | - There is no change to the Isolation group and group member definition. |
205 | | - - Bridgeport of type SAI_BRIDGE_PORT_TYPE_TUNNEL will have the isolation group attribute set. |
| 205 | + - For SAI_TUNNEL_PEER_MODE_P2P tunnels: |
| 206 | + - each tunnel is associated with a particular remote VTEP and has an |
| 207 | + associated bridge port of type SAI_BRIDGE_PORT_TYPE_TUNNEL. |
| 208 | + - This per-remote-VTEP bridge port of type SAI_BRIDGE_PORT_TYPE_TUNNEL will |
| 209 | + have the isolation group attribute set. |
| 210 | + - For SAI_TUNNEL_PEER_MODE_P2MP tunnels: |
| 211 | + - We introduce a new bridge port type SAI_BRIDGE_PORT_TYPE_TUNNEL_TERM_PEER |
| 212 | + with an associated attribute SAI_BRIDGE_PORT_ATTR_TUNNEL_TERM_PEER_IP. This |
| 213 | + bridge port represents decapsulated tunnel-terminated traffic from a |
| 214 | + specific remote VTEP. It is explicitly rx-only and cannot be used for |
| 215 | + encap/tx. |
| 216 | + - THis per-remote_VTEP bridge port of type |
| 217 | + SAI_BRIDGE_PORT_TYPE_TUNNEL_TERM_PEER will have the isolation group |
| 218 | + attribute set. |
206 | 219 | - The isolation group members will be the client side bridge ports of type SAI_BRIDGE_PORT_TYPE_PORT which share the ESI with the peering VTEPs. |
207 | 220 |
|
| 221 | + |
| 222 | +``` |
| 223 | +typedef enum _sai_bridge_port_type_t |
| 224 | +... |
| 225 | +
|
| 226 | + /** |
| 227 | + * @brief Bridge tunnel peer termination port |
| 228 | + * |
| 229 | + * Bridge port for traffic terminated from a specific tunnel peer. |
| 230 | + * Tunnel should use peer mode P2MP. |
| 231 | + */ |
| 232 | + SAI_BRIDGE_PORT_TYPE_TUNNEL_TERM_PEER, |
| 233 | +} sai_bridge_port_type_t; |
| 234 | +``` |
| 235 | + |
| 236 | +The Bridge-port of type SAI_BRIDGE_PORT_TYPE_TUNNEL_TERM_PEER should have SAI_BRIDGE_PORT_ATTR_TUNNEL_ID and SAI_BRIDGE_PORT_ATTR_TUNNEL_TERM_PEER_IP attributes set. |
| 237 | + |
| 238 | +``` |
| 239 | +typedef enum _sai_bridge_port_attr_t |
| 240 | +{ |
| 241 | +... |
| 242 | + /** |
| 243 | + * @brief Tunnel peer IP address |
| 244 | + * |
| 245 | + * Identifies the peer (remote tunnel endpoint) from which tunnel-terminated |
| 246 | + * traffic is received on this bridge port. |
| 247 | + * |
| 248 | + * @type sai_ip_address_t |
| 249 | + * @flags MANDATORY_ON_CREATE | CREATE_ONLY |
| 250 | + * @validonly SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_TUNNEL_TERM_PEER |
| 251 | + */ |
| 252 | + SAI_BRIDGE_PORT_ATTR_TUNNEL_TERM_PEER_IP, |
| 253 | +... |
| 254 | +} |
| 255 | +``` |
| 256 | + |
208 | 257 | ### 3.2.4 Fast Failover support |
209 | 258 |
|
210 | 259 | A new Bridge port attribute (for type SAI_BRIDGE_PORT_TYPE_PORT) is introduced to specify the protection nexthop group ID. |
@@ -486,13 +535,15 @@ At VTEP5 the following objects are created. |
486 | 535 |
|
487 | 536 | ## 4.2 Split Horizon workflow |
488 | 537 |
|
| 538 | + |
| 539 | +__Figure 2: Split Horizon Flow__ |
| 540 | + |
| 541 | +## 4.2.1 Tunnel peer mode type P2P |
| 542 | + |
489 | 543 | When Tunnel objects of peer mode type P2P are created, the isolation group objects can be re-used |
490 | 544 | to achieve the split horizon functionality and do not need the attributes being introduced as part of this |
491 | 545 | PR. It is being elaborated here for completeness. |
492 | 546 |
|
493 | | - |
494 | | -__Figure 2: Split Horizon Flow__ |
495 | | - |
496 | 547 | At VTEP1 the following SAI objects with sub types are created. |
497 | 548 |
|
498 | 549 | - SAI_OBJECT_TYPE_TUNNEL with peer mode as SAI_TUNNEL_PEER_MODE_P2P, tnl_oid_2-4 created for tunnels towards the peer multihoming VTEP2-4. |
@@ -537,9 +588,25 @@ __Figure 2: Split Horizon Flow__ |
537 | 588 | /* Repeat for all combinations */ |
538 | 589 | ............. |
539 | 590 | ............. |
540 | | - |
| 591 | +
|
541 | 592 | ``` |
542 | 593 |
|
| 594 | +## 4.2.2 Tunnel peer mode type P2MP |
| 595 | + |
| 596 | +When Tunnel objects of peer mode type P2MP are used, we use bridge ports of |
| 597 | +type SAI_BRIDGE_PORT_TYPE_TUNNEL_TERM_PEER with the |
| 598 | +SAI_BRIDGE_PORT_ATTR_TUNNEL_TERM_PEER_IP attribute to associate the isolation |
| 599 | +group object with tunnel-terminated packets from a particular remote VTEP. |
| 600 | + |
| 601 | +At VTEP1 the following SAI objects with sub types are created. |
| 602 | + |
| 603 | +- SAI_OBJECT_TYPE_TUNNEL with peer mode as SAI_TUNNEL_PEER_MODE_P2MP, tnl_oid. |
| 604 | +- SAI_OBJECT_TYPE_BRIDGE_PORT of type SAI_BRIDGE_PORT_TYPE_TUNNEL_TERM_PEER, bp_tnl_oid_2-4 corresponding to each remote VTEP, with SAI_BRIDGE_PORT_ATTR_REMOTE_TUNNEL_TERM_PEER_IP set to the IP of VTEPs2-4 respectively. All bridge ports bp_tnl_oid_2-4 set the SAI_BRIDGE_PORT_ATTR_TUNNEL_ID to the same P2MP tunnel tnl_oid. |
| 605 | +- SAI_OBJECT_TYPE_BRIDGE_PORT of type SAI_BRIDGE_PORT_TYPE_PORT, bp_lag_oid_1-2 corresponding to client side LAGs 1,2. |
| 606 | +- SAI_OBJECT_TYPE_ISOLATION_GROUP of type SAI_ISOLATION_GROUP_TYPE_BRIDGE_PORT, isogrp_oid_2-4 corresponding to bp_tnl_oid_2-4 as above. |
| 607 | +- bp_tnl_oid_2-4 have SAI_BRIDGE_PORT_ATTR_ISOLATION_GROUP set as isogrp_oid_2-4 respectively. |
| 608 | + |
| 609 | +The remainder of the flow is identical to [4.2.1 Tunnel peer mode type P2P](421-tunnel-peer-mode-type-p2p). |
543 | 610 |
|
544 | 611 | ## 4.3 DF workflow |
545 | 612 |
|
|
0 commit comments