Skip to content

Commit ee6f49b

Browse files
erohsikKishore Gummadidala
andauthored
Add support for creating/modifying IPMC group with member list. (opencomputeproject#2121)
Signed-off-by: Kishore Gummadidala <[email protected]> Co-authored-by: Kishore Gummadidala <[email protected]>
1 parent 15cf7a2 commit ee6f49b

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
### IP Multicast Group with members
2+
3+
Allow IP Multicast Group to be created/modified by specifying the list of members
4+
5+
### Motivation
6+
7+
The existing IPMC workflow
8+
* Create a IPMC group
9+
* Add/remove members to this group
10+
11+
We describe a sample workflow
12+
* A is added to the group
13+
* B is added to the group
14+
* The path to A goes down, so an alternate member A' is added
15+
* Subsequently the primary path to A is restored, so A' needs to be swapped with A
16+
17+
We have two ways to acheive this.
18+
* remove A' and then add A leading to a small window where no traffic is received by the receiver.
19+
* add A and then remove A' leading to a small window wheret duplicate traffic is received.
20+
21+
We'd like to avoid both of these scenarios.
22+
23+
### Proposal
24+
25+
Specify the full current list of multicast group members at create and update time.
26+
27+
* Introduce an attribute specifying that the IPMC group members are specified upfront.
28+
* Add a IPMC group attribute for the list of members
29+

inc/saiipmcgroup.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,26 @@ typedef enum _sai_ipmc_group_attr_t
6060
*/
6161
SAI_IPMC_GROUP_ATTR_IPMC_MEMBER_LIST,
6262

63+
/**
64+
* @brief Flag indicating that the member list is specified at create time
65+
*
66+
* @type bool
67+
* @flags CREATE_ONLY
68+
* @default false
69+
*/
70+
SAI_IPMC_GROUP_ATTR_IPMC_GROUP_WITH_MEMBERS,
71+
72+
/**
73+
* @brief IPMC output list
74+
*
75+
* @type sai_object_list_t
76+
* @flags CREATE_AND_SET
77+
* @objects SAI_OBJECT_TYPE_NEXT_HOP
78+
* @default empty
79+
* @validonly SAI_IPMC_GROUP_ATTR_IPMC_GROUP_WITH_MEMBERS == true
80+
*/
81+
SAI_IPMC_GROUP_ATTR_IPMC_OUTPUT_LIST,
82+
6383
/**
6484
* @brief End of attributes
6585
*/

0 commit comments

Comments
 (0)