-
Notifications
You must be signed in to change notification settings - Fork 480
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
EVPN Multi Home Support #2084
base: master
Are you sure you want to change the base?
EVPN Multi Home Support #2084
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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; | ||
|
||
/** | ||
|
@@ -181,7 +185,7 @@ typedef enum _sai_bridge_port_attr_t | |
* @type sai_object_id_t | ||
* @flags MANDATORY_ON_CREATE | CREATE_AND_SET | ||
* @objects SAI_OBJECT_TYPE_BRIDGE | ||
* @condition SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_SUB_PORT or SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_1D_ROUTER or SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_TUNNEL | ||
* @condition SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_SUB_PORT or SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_1D_ROUTER or SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_TUNNEL or SAI_BRIDGE_PORT_ATTR_TYPE == SAI_BRIDGE_PORT_TYPE_BRIDGE_PORT_NEXT_HOP_GROUP | ||
*/ | ||
SAI_BRIDGE_PORT_ATTR_BRIDGE_ID, | ||
|
||
|
@@ -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, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same as above comment, can we name it as SAI_BRIDGE_PORT_ATTR_NEXT_HOP_GROUP_ID ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same response as above. |
||
|
||
/** | ||
* @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, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Actually, instead of having the protectin at nexthop group level, having protection for each nexthop(NHG member) might helps. Assume, VTEP-5, had a nexthop group with members VTEP-{1,2,3,4}. what will be the backup members for this NHG. instead VTEP-1, can be protected with one member from VTEP-{2,3,4} and same way, VTEP-2 can be protected with one of the VTEP from VTEP-{1,3,4}. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Could you look at section 4.4 Fast Failover workflow and see if it clarifies ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No, it didn't explain how the backup members are constructed. SONIC HLD mentions that we can remove the, member from L2-NHG when VTEP advertises ES_ID Down notification, so that all FDBs learnt on the Ethernet segment will be updated with a single forwading update(NHG member delete). but for that we don't need backup protection next-hop group, simple member removal from Primary NHG, when VTEP advertises ES_ID down notification. Still not clear why the backup NHG is needed and how it will be constructed There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 4.4 has no VTEP-5 in the diagram. As mentioned in 4.4, This is the reason why the backup exists and is not for the scenario you mention. This is a different flow from 4.1 which you seem to be referring to. As to how the backup NHG is constructed and for more queries on the need for this usecase please raise this query in the SONiC EVPN-MH HLD PR. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks for the explaination, it addressed my query |
||
|
||
/** | ||
* @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 | ||
*/ | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can the comment be made explicit and state it as below to include both port and lag ?
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ack |
||
* | ||
* @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 | ||
*/ | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we have this named as SAI_BRIDGE_PORT_TYPE_NEXT_HOP_GROUP ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is specific to NHG of type bridgeport and hence this name.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JaiOCP Please comment if the extra BRIDGE_PORT in the name can be dropped ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rational for naming it like is to be explicit in intent that the NHG type is BRIDGE_PORT. Though the attributes are for bridge port object and it may seem redundant but the NHG are of many type and one used here is of type bridge port.
It would be good to clarify this in comments to avoid such confusion.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated comments.