Skip to content

Commit

Permalink
Add support for creating/modifying IPMC group with member list.
Browse files Browse the repository at this point in the history
Signed-off-by: Kishore Gummadidala <[email protected]>
  • Loading branch information
Kishore Gummadidala committed Dec 12, 2024
1 parent 2602b2a commit bf13691
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
29 changes: 29 additions & 0 deletions doc/IP-Multicast/MulticastWithMembers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
### IP Multicast Group with members

Allow IP Multicast Group to be created/modified by specifying the list of members

### Motivation

The existing IPMC workflow
* Create a IPMC group
* Add/remove members to this group

We describe a sample workflow
* A is added to the group
* B is added to the group
* The path to A goes down, so an alternate member A' is added
* Subsequently the primary path to A is restored, so A' needs to be swapped with A

We have two ways to acheive this.
* remove A' and then add A leading to a small window where no traffic is received by the receiver.
* add A and then remove A' leading to a small window wheret duplicate traffic is received.

We'd like to avoid both of these scenarios.

### Proposal

Specify the full current list of multicast group members at create and update time.

* Introduce an attribute specifying that the IPMC group members are specified upfront.
* Add a IPMC group attribute for the list of members

20 changes: 20 additions & 0 deletions inc/saiipmcgroup.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,26 @@ typedef enum _sai_ipmc_group_attr_t
*/
SAI_IPMC_GROUP_ATTR_IPMC_MEMBER_LIST,

/**
* @brief Flag indicating that the member list is specified at create time
*
* @type bool
* @flags CREATE_ONLY
* @default false
*/
SAI_IPMC_GROUP_ATTR_IPMC_GROUP_WITH_MEMBERS,

/**
* @brief IPMC output list
*
* @type sai_object_list_t
* @flags CREATE_AND_SET
* @objects SAI_OBJECT_TYPE_NEXT_HOP
* @default empty
* @validonly SAI_IPMC_GROUP_ATTR_IPMC_GROUP_WITH_MEMBERS == true
*/
SAI_IPMC_GROUP_ATTR_IPMC_OUTPUT_LIST,

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

0 comments on commit bf13691

Please sign in to comment.