Skip to content

Commit

Permalink
EVPN Multihoming
Browse files Browse the repository at this point in the history
Signed-off-by: JaiOCP <[email protected]>

Updated EVPN MH workflow document

Signed-off-by: Rajesh Sankaran <[email protected]>
  • Loading branch information
JaiOCP authored and srj102 committed Nov 13, 2024
1 parent a0aa5a3 commit 7df3274
Show file tree
Hide file tree
Showing 10 changed files with 743 additions and 2 deletions.
621 changes: 621 additions & 0 deletions doc/tunnel/SAI-Proposal-EVPN-Multihoming.md

Large diffs are not rendered by default.

Binary file added doc/tunnel/figures/sai_evpnmh_df.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/tunnel/figures/sai_evpnmh_failover.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/tunnel/figures/sai_evpnmh_singleactive.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/tunnel/figures/sai_evpnmh_splithorizon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/tunnel/figures/sai_evpnmh_unicast.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
73 changes: 73 additions & 0 deletions inc/saibridge.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,10 @@ typedef enum _sai_bridge_port_type_t
/** Bridge tunnel port */
SAI_BRIDGE_PORT_TYPE_TUNNEL,

/** Bridge nexthop group port */

/** Nexthop group should be of type bridge port */
SAI_BRIDGE_PORT_TYPE_BRIDGE_PORT_NEXT_HOP_GROUP,
} sai_bridge_port_type_t;

/**
Expand Down Expand Up @@ -281,6 +285,75 @@ typedef enum _sai_bridge_port_attr_t
*/
SAI_BRIDGE_PORT_ATTR_SELECTIVE_COUNTER_LIST,

/**
* @brief Associated nexthop group id
*
* @type sai_object_id_t
* @flags MANDATORY_ON_CREATE | CREATE_ONLY
* @objects SAI_OBJECT_TYPE_NEXT_HOP_GROUP
* @condition SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_BRIDGE_PORT_NEXT_HOP_GROUP
*/
SAI_BRIDGE_PORT_ATTR_BRIDGE_PORT_NEXT_HOP_GROUP_ID,

/**
* @brief Indicates if the bridge port is set to drop the broadcast, unknown unicast and multicast traffic
*
* When set to true, egress BUM traffic will be dropped
*
* @type bool
* @flags CREATE_AND_SET
* @default false
* @validonly SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_PORT or SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_SUB_PORT or SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_TUNNEL
*/
SAI_BRIDGE_PORT_ATTR_TUNNEL_TERM_BUM_TX_DROP,

/**
* @brief Indicates if the bridge port is set to drop the ingress traffic
*
* When set to true, all ingress traffic will be dropped
*
* @type bool
* @flags CREATE_AND_SET
* @default false
* @validonly SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_PORT or SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_SUB_PORT or SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_TUNNEL
*/
SAI_BRIDGE_PORT_ATTR_RX_DROP,

/**
* @brief Indicates if the bridge port is set to drop the egress traffic
*
* When set to true, all egress traffic will be dropped
*
* @type bool
* @flags CREATE_AND_SET
* @default false
* @validonly SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_PORT or SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_SUB_PORT or SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_TUNNEL
*/
SAI_BRIDGE_PORT_ATTR_TX_DROP,

/**
* @brief Associated protection bridge port nexthop group id
*
* The Protection nexthop group type should be SAI_NEXT_HOP_GROUP_TYPE_BRIDGE_PORT
*
* @type sai_object_id_t
* @flags CREATE_AND_SET
* @objects SAI_OBJECT_TYPE_NEXT_HOP_GROUP
* @allownull true
* @default SAI_NULL_OBJECT_ID
*/
SAI_BRIDGE_PORT_ATTR_BRIDGE_PORT_PROTECTION_NEXT_HOP_GROUP_ID,

/**
* @brief Trigger a switch-over to backup next hop group
*
* @type bool
* @flags CREATE_AND_SET
* @default false
* @validonly SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_PORT
*/
SAI_BRIDGE_PORT_ATTR_BRIDGE_PORT_SET_SWITCHOVER,

/**
* @brief End of attributes
*/
Expand Down
7 changes: 5 additions & 2 deletions inc/sainexthop.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ typedef enum _sai_next_hop_type_t

/** IPMC next hop */
SAI_NEXT_HOP_TYPE_IPMC,

/** Next hop group is for bridge port */
SAI_NEXT_HOP_TYPE_BRIDGE_PORT,
} sai_next_hop_type_t;

/**
Expand All @@ -78,7 +81,7 @@ typedef enum _sai_next_hop_attr_t
*
* @type sai_ip_address_t
* @flags MANDATORY_ON_CREATE | CREATE_ONLY
* @condition SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_IP or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_MPLS or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_TUNNEL_ENCAP or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_IPMC
* @condition SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_IP or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_MPLS or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_TUNNEL_ENCAP or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_IPMC or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_BRIDGE_PORT
*/
SAI_NEXT_HOP_ATTR_IP,

Expand All @@ -98,7 +101,7 @@ typedef enum _sai_next_hop_attr_t
* @type sai_object_id_t
* @flags MANDATORY_ON_CREATE | CREATE_ONLY
* @objects SAI_OBJECT_TYPE_TUNNEL
* @condition SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_TUNNEL_ENCAP or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_SRV6_SIDLIST
* @condition SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_TUNNEL_ENCAP or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_SRV6_SIDLIST or SAI_NEXT_HOP_ATTR_TYPE == SAI_NEXT_HOP_TYPE_BRIDGE_PORT
*/
SAI_NEXT_HOP_ATTR_TUNNEL_ID,

Expand Down
3 changes: 3 additions & 0 deletions inc/sainexthopgroup.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@ typedef enum _sai_next_hop_group_type_t
/** Next hop group is ECMP, with members specified with the group */
SAI_NEXT_HOP_GROUP_TYPE_ECMP_WITH_MEMBERS,

/** Next hop group is for bridge port */
SAI_NEXT_HOP_GROUP_TYPE_BRIDGE_PORT,

/* Other types of next hop group to be defined in the future, e.g., WCMP */

} sai_next_hop_group_type_t;
Expand Down
41 changes: 41 additions & 0 deletions inc/saivlan.h
Original file line number Diff line number Diff line change
Expand Up @@ -474,6 +474,47 @@ typedef enum _sai_vlan_member_attr_t
*/
SAI_VLAN_MEMBER_ATTR_VLAN_TAGGING_MODE,

/**
* @brief Indicates if the bridge port is set to drop the Tunnel Terminated broadcast, unknown unicast and multicast traffic
*
* When set to true, egress BUM traffic will be dropped
* Valid only when the SAI_VLAN_MEMBER_ATTR_BRIDGE_PORT_ID is of type SAI_BRIDGE_PORT_TYPE_PORT.
* Valid only for .1Q bridge ports.
*
* @type bool
* @flags CREATE_AND_SET
* @default false
*/
SAI_VLAN_MEMBER_ATTR_TUNNEL_TERM_BUM_TX_DROP,

/**
* @brief Indicates if the vlan member is set to drop the ingress traffic
*
* When set to true, ingress traffic will be dropped
*
* Valid only when the SAI_VLAN_MEMBER_ATTR_BRIDGE_PORT_ID is of type SAI_BRIDGE_PORT_TYPE_PORT.
* Valid only for .1Q bridge ports.
*
* @type bool
* @flags CREATE_AND_SET
* @default false
*/
SAI_VLAN_MEMBER_ATTR_RX_DROP,

/**
* @brief Indicates if the vlan member is set to drop the egress traffic
*
* When set to true, egress traffic will be dropped
*
* Valid only when the SAI_VLAN_MEMBER_ATTR_BRIDGE_PORT_ID is of type SAI_BRIDGE_PORT_TYPE_PORT.
* Valid only for .1Q bridge ports.
*
* @type bool
* @flags CREATE_AND_SET
* @default false
*/
SAI_VLAN_MEMBER_ATTR_TX_DROP,

/**
* @brief End of attributes
*/
Expand Down

0 comments on commit 7df3274

Please sign in to comment.