@@ -1969,6 +1969,116 @@ cluster IcdManagement = 70 {
19691969 command StayActiveRequest(StayActiveRequestRequest): StayActiveResponse = 3;
19701970}
19711971
1972+ /** The Groupcast cluster manages the content of the node-wide multicast Group membership that is part of the underlying interaction layer. */
1973+ provisional cluster Groupcast = 101 {
1974+ revision 1;
1975+
1976+ enum GroupcastTestResultEnum : enum8 {
1977+ kSuccess = 0;
1978+ kGeneralError = 1;
1979+ kMessageReplay = 2;
1980+ kFailedAuth = 3;
1981+ kNoAvailableKey = 4;
1982+ kSendFailure = 5;
1983+ }
1984+
1985+ enum GroupcastTestingEnum : enum8 {
1986+ kDisableTesting = 0;
1987+ kEnableListenerTesting = 1;
1988+ kEnableSenderTesting = 2;
1989+ }
1990+
1991+ enum MulticastAddrPolicyEnum : enum8 {
1992+ kIanaAddr = 0;
1993+ kPerGroup = 1;
1994+ }
1995+
1996+ bitmap Feature : bitmap32 {
1997+ kListener = 0x1;
1998+ kSender = 0x2;
1999+ kPerGroup = 0x4;
2000+ }
2001+
2002+ fabric_scoped struct MembershipStruct {
2003+ group_id groupID = 0;
2004+ optional endpoint_no endpoints[] = 1;
2005+ fabric_sensitive int16u keySetID = 2;
2006+ optional boolean hasAuxiliaryACL = 3;
2007+ MulticastAddrPolicyEnum mcastAddrPolicy = 4;
2008+ fabric_idx fabricIndex = 254;
2009+ }
2010+
2011+ provisional fabric_sensitive info event access(read: administer) GroupcastTesting = 0 {
2012+ optional octet_string sourceIpAddress = 0;
2013+ optional octet_string destinationIpAddress = 1;
2014+ optional group_id groupID = 2;
2015+ optional endpoint_no endpointID = 3;
2016+ optional cluster_id clusterID = 4;
2017+ optional int32u elementID = 5;
2018+ optional boolean accessAllowed = 6;
2019+ GroupcastTestResultEnum groupcastTestResult = 7;
2020+ fabric_idx fabricIndex = 254;
2021+ }
2022+
2023+ provisional readonly attribute MembershipStruct membership[] = 0;
2024+ provisional readonly attribute int16u maxMembershipCount = 1;
2025+ provisional readonly attribute int16u maxMcastAddrCount = 2;
2026+ provisional readonly attribute int16u usedMcastAddrCount = 3;
2027+ provisional readonly attribute fabric_idx fabricUnderTest = 4;
2028+ readonly attribute command_id generatedCommandList[] = 65528;
2029+ readonly attribute command_id acceptedCommandList[] = 65529;
2030+ readonly attribute attrib_id attributeList[] = 65531;
2031+ readonly attribute bitmap32 featureMap = 65532;
2032+ readonly attribute int16u clusterRevision = 65533;
2033+
2034+ request struct JoinGroupRequest {
2035+ group_id groupID = 0;
2036+ endpoint_no endpoints[] = 1;
2037+ int16u keySetID = 2;
2038+ optional octet_string<16> key = 3;
2039+ optional boolean useAuxiliaryACL = 4;
2040+ optional boolean replaceEndpoints = 5;
2041+ optional MulticastAddrPolicyEnum mcastAddrPolicy = 6;
2042+ }
2043+
2044+ request struct LeaveGroupRequest {
2045+ group_id groupID = 0;
2046+ optional endpoint_no endpoints[] = 1;
2047+ }
2048+
2049+ response struct LeaveGroupResponse = 2 {
2050+ group_id groupID = 0;
2051+ endpoint_no endpoints[] = 1;
2052+ }
2053+
2054+ request struct UpdateGroupKeyRequest {
2055+ group_id groupID = 0;
2056+ int16u keySetID = 1;
2057+ optional octet_string<16> key = 2;
2058+ }
2059+
2060+ request struct ConfigureAuxiliaryACLRequest {
2061+ group_id groupID = 0;
2062+ boolean useAuxiliaryACL = 1;
2063+ }
2064+
2065+ request struct GroupcastTestingRequest {
2066+ GroupcastTestingEnum testOperation = 0;
2067+ optional int16u durationSeconds = 1;
2068+ }
2069+
2070+ /** This command SHALL be used to instruct the server to join a multicast group. */
2071+ fabric command access(invoke: manage) JoinGroup(JoinGroupRequest): DefaultSuccess = 0;
2072+ /** This command SHALL allow a maintainer to request that the server withdraws itself or specific endpoints from a specific group or from all groups of this client's fabric. */
2073+ fabric command access(invoke: manage) LeaveGroup(LeaveGroupRequest): LeaveGroupResponse = 1;
2074+ /** This command SHALL allow a fabric administrator to update the OperationalGroupKey associated with the existing group identified by GroupID, which is already joined. */
2075+ fabric command access(invoke: manage) UpdateGroupKey(UpdateGroupKeyRequest): DefaultSuccess = 3;
2076+ /** This command SHALL allow an Administrator to enable or disable the generation of AuxiliaryACL entries in the Access Control Cluster based on the groups joined (see Groupcast Auxiliary ACL Handling). */
2077+ fabric command access(invoke: administer) ConfigureAuxiliaryACL(ConfigureAuxiliaryACLRequest): DefaultSuccess = 4;
2078+ /** This command SHALL allow an Administrator to configure test modes that allow validation of Groupcast communication. */
2079+ fabric command access(invoke: administer) GroupcastTesting(GroupcastTestingRequest): DefaultSuccess = 5;
2080+ }
2081+
19722082/** This cluster provides an interface for controlling a Closure. */
19732083cluster ClosureControl = 260 {
19742084 revision 2;
@@ -2566,6 +2676,26 @@ endpoint 0 {
25662676 callback attribute featureMap;
25672677 callback attribute clusterRevision;
25682678 }
2679+
2680+ server cluster Groupcast {
2681+ emits event GroupcastTesting;
2682+ callback attribute membership;
2683+ callback attribute maxMembershipCount;
2684+ callback attribute maxMcastAddrCount;
2685+ callback attribute usedMcastAddrCount;
2686+ callback attribute fabricUnderTest;
2687+ callback attribute generatedCommandList;
2688+ callback attribute acceptedCommandList;
2689+ callback attribute attributeList;
2690+ ram attribute featureMap default = 1;
2691+ callback attribute clusterRevision default = 1;
2692+
2693+ handle command JoinGroup;
2694+ handle command LeaveGroup;
2695+ handle command UpdateGroupKey;
2696+ handle command ConfigureAuxiliaryACL;
2697+ handle command GroupcastTesting;
2698+ }
25692699}
25702700endpoint 1 {
25712701 device type ma_closure = 560, version 1;
@@ -2654,6 +2784,8 @@ endpoint 2 {
26542784
26552785 handle command SetTarget;
26562786 handle command Step;
2787+ handle command GroupedSetTarget;
2788+ handle command GroupedStep;
26572789 }
26582790}
26592791endpoint 3 {
@@ -2692,6 +2824,8 @@ endpoint 3 {
26922824
26932825 handle command SetTarget;
26942826 handle command Step;
2827+ handle command GroupedSetTarget;
2828+ handle command GroupedStep;
26952829 }
26962830}
26972831
0 commit comments