diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter index c22343aef01b93..cf9b700e99b051 100644 --- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter +++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter @@ -2290,11 +2290,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -2317,6 +2326,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter index 5bc8ec3ab4475a..ecbb16a1439fb4 100644 --- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter +++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter @@ -1929,11 +1929,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1956,6 +1965,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter index 54b3350c3a3805..df00ac73896750 100644 --- a/examples/bridge-app/bridge-common/bridge-app.matter +++ b/examples/bridge-app/bridge-common/bridge-app.matter @@ -1541,11 +1541,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1568,6 +1577,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter index 4bff8df11f908b..1ec8ba5d0466a1 100644 --- a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter +++ b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter @@ -1426,11 +1426,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1453,6 +1462,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter b/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter index 8219da431bdf80..638bddbb8cad83 100644 --- a/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter +++ b/examples/chef/devices/rootnode_airpurifier_airqualitysensor_temperaturesensor_humiditysensor_thermostat_56de3d5f45.matter @@ -893,11 +893,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -920,6 +929,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_basicvideoplayer_0ff86e943b.matter b/examples/chef/devices/rootnode_basicvideoplayer_0ff86e943b.matter index 46a8708f546889..18db00ecc47d31 100644 --- a/examples/chef/devices/rootnode_basicvideoplayer_0ff86e943b.matter +++ b/examples/chef/devices/rootnode_basicvideoplayer_0ff86e943b.matter @@ -1126,11 +1126,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1153,6 +1162,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter index 01e315b2a165f5..4345a09115a593 100644 --- a/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter +++ b/examples/chef/devices/rootnode_colortemperaturelight_hbUnzYVeyn.matter @@ -1186,11 +1186,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1213,6 +1222,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter index 8d3d9e60304b56..2335fb518923ad 100644 --- a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter +++ b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter @@ -1140,11 +1140,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1167,6 +1176,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter index b8afaea3572f59..01fabfe5cdffd8 100644 --- a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter +++ b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter @@ -1290,11 +1290,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1317,6 +1326,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter index aeb594c5de3e2e..aa275f0162f78b 100644 --- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter +++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter @@ -1140,11 +1140,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1167,6 +1176,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter index 076ebe9ded9b6b..3396a4d3148792 100644 --- a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter +++ b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter @@ -1290,11 +1290,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1317,6 +1326,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter index d851670914addd..4d9e356f494c91 100644 --- a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter +++ b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter @@ -1127,11 +1127,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1154,6 +1163,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter index e2d092aadc74da..2505bacfca546f 100644 --- a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter +++ b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter @@ -1215,11 +1215,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1242,6 +1251,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter index 95067271e9bdbf..6709b46eb909d0 100644 --- a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter +++ b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter @@ -1284,11 +1284,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1311,6 +1320,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter index 51539608f77c93..cb1b12142697c7 100644 --- a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter +++ b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter @@ -1215,11 +1215,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1242,6 +1251,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter index 046c96f788b42c..86d182000eed08 100644 --- a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter +++ b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter @@ -1215,11 +1215,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1242,6 +1251,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter index 5f4df720ab7645..9dc4f193c83a22 100644 --- a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter +++ b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter @@ -1215,11 +1215,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1242,6 +1251,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter index cdc5ce1f05fc1f..1e5b88e4a2951f 100644 --- a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter +++ b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter @@ -1290,11 +1290,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1317,6 +1326,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter index aad75b19c1c549..9c7d93db33f9d4 100644 --- a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter +++ b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter @@ -1254,11 +1254,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1281,6 +1290,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter index 062beadb18923b..2b217c65918dc8 100644 --- a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter +++ b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter @@ -1189,11 +1189,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1216,6 +1225,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter index 348af0da8d066d..1fabd14bba18ba 100644 --- a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter +++ b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter @@ -1215,11 +1215,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1242,6 +1251,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_pump_a811bb33a0.matter b/examples/chef/devices/rootnode_pump_a811bb33a0.matter index 81c38d03d7d445..79ca0c6757315e 100644 --- a/examples/chef/devices/rootnode_pump_a811bb33a0.matter +++ b/examples/chef/devices/rootnode_pump_a811bb33a0.matter @@ -839,11 +839,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -866,6 +875,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter index 707711726b0578..36ff91ba9ff0f7 100644 --- a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter +++ b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter @@ -1284,11 +1284,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1311,6 +1320,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter index 11c8f04ded349e..f4da65a07a0350 100644 --- a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter +++ b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter @@ -1215,11 +1215,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1242,6 +1251,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter index 6d8d1131ec69b0..0c345d8f6845bc 100644 --- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter +++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter @@ -1140,11 +1140,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1167,6 +1176,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter index 445dc383e2fc42..076aa00d276f61 100644 --- a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter +++ b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter @@ -1140,11 +1140,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1167,6 +1176,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter b/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter index 15ebf07c2d6673..e87c480d33257c 100644 --- a/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter +++ b/examples/contact-sensor-app/contact-sensor-common/contact-sensor-app.matter @@ -1351,11 +1351,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1378,6 +1387,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/dishwasher-app/dishwasher-common/dishwasher-app.matter b/examples/dishwasher-app/dishwasher-common/dishwasher-app.matter index 51446e3cdc8f96..e676c67077d258 100644 --- a/examples/dishwasher-app/dishwasher-common/dishwasher-app.matter +++ b/examples/dishwasher-app/dishwasher-common/dishwasher-app.matter @@ -971,11 +971,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -998,6 +1007,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/light-switch-app/light-switch-common/light-switch-app.matter b/examples/light-switch-app/light-switch-common/light-switch-app.matter index 55bf0e75db0511..c192d6869f252a 100644 --- a/examples/light-switch-app/light-switch-common/light-switch-app.matter +++ b/examples/light-switch-app/light-switch-common/light-switch-app.matter @@ -1854,11 +1854,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1881,6 +1890,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/lighting-app/bouffalolab/data_model/lighting-app-thread.matter b/examples/lighting-app/bouffalolab/data_model/lighting-app-thread.matter index 7c7332cc0306b2..70ea01461c5479 100644 --- a/examples/lighting-app/bouffalolab/data_model/lighting-app-thread.matter +++ b/examples/lighting-app/bouffalolab/data_model/lighting-app-thread.matter @@ -1459,11 +1459,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1486,6 +1495,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/lighting-app/bouffalolab/data_model/lighting-app-wifi.matter b/examples/lighting-app/bouffalolab/data_model/lighting-app-wifi.matter index 67de97758bf6d0..c1c8278cd44c53 100644 --- a/examples/lighting-app/bouffalolab/data_model/lighting-app-wifi.matter +++ b/examples/lighting-app/bouffalolab/data_model/lighting-app-wifi.matter @@ -1369,11 +1369,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1396,6 +1405,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter index cc83b244b78f10..bfb0778421069d 100644 --- a/examples/lighting-app/lighting-common/lighting-app.matter +++ b/examples/lighting-app/lighting-common/lighting-app.matter @@ -1718,11 +1718,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1745,6 +1754,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/lighting-app/nxp/zap/lighting-on-off.matter b/examples/lighting-app/nxp/zap/lighting-on-off.matter index 6e3048786bdbc4..f82e8120f0cd08 100644 --- a/examples/lighting-app/nxp/zap/lighting-on-off.matter +++ b/examples/lighting-app/nxp/zap/lighting-on-off.matter @@ -1285,11 +1285,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1312,6 +1321,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/lighting-app/qpg/zap/light.matter b/examples/lighting-app/qpg/zap/light.matter index c568ff0c5d7ee0..36c891ca1c778c 100644 --- a/examples/lighting-app/qpg/zap/light.matter +++ b/examples/lighting-app/qpg/zap/light.matter @@ -1351,11 +1351,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1378,6 +1387,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/lighting-app/silabs/data_model/lighting-thread-app.matter b/examples/lighting-app/silabs/data_model/lighting-thread-app.matter index 1f9f2105f81af7..126a75ae5f860c 100644 --- a/examples/lighting-app/silabs/data_model/lighting-thread-app.matter +++ b/examples/lighting-app/silabs/data_model/lighting-thread-app.matter @@ -1811,11 +1811,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1838,6 +1847,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter b/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter index 1bc4ca085ac095..ea504c67688692 100644 --- a/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter +++ b/examples/lighting-app/silabs/data_model/lighting-wifi-app.matter @@ -1700,11 +1700,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1727,6 +1736,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter index 0e9be617da8907..4054175be80b23 100644 --- a/examples/lock-app/lock-common/lock-app.matter +++ b/examples/lock-app/lock-common/lock-app.matter @@ -1559,11 +1559,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1586,6 +1595,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/lock-app/nxp/zap/lock-app.matter b/examples/lock-app/nxp/zap/lock-app.matter index 397452eb07fa79..74340615df5f09 100644 --- a/examples/lock-app/nxp/zap/lock-app.matter +++ b/examples/lock-app/nxp/zap/lock-app.matter @@ -903,11 +903,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -930,6 +939,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/lock-app/qpg/zap/lock.matter b/examples/lock-app/qpg/zap/lock.matter index cb7ce687d9a89b..a1b6ab19fa9b3f 100644 --- a/examples/lock-app/qpg/zap/lock.matter +++ b/examples/lock-app/qpg/zap/lock.matter @@ -1184,11 +1184,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1211,6 +1220,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter b/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter index 18b9e1e99e5ed3..d134e363629e83 100644 --- a/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter +++ b/examples/ota-provider-app/ota-provider-common/ota-provider-app.matter @@ -884,11 +884,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -911,6 +920,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter index fe4652795026ba..641bd69931a178 100644 --- a/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter +++ b/examples/ota-requestor-app/ota-requestor-common/ota-requestor-app.matter @@ -1067,11 +1067,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1094,6 +1103,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/pump-app/pump-common/pump-app.matter b/examples/pump-app/pump-common/pump-app.matter index 5636ad24e581b8..03c6b17275c03e 100644 --- a/examples/pump-app/pump-common/pump-app.matter +++ b/examples/pump-app/pump-common/pump-app.matter @@ -1143,11 +1143,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1170,6 +1179,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/pump-app/silabs/data_model/pump-thread-app.matter b/examples/pump-app/silabs/data_model/pump-thread-app.matter index dae3db394fcbd9..e5f57ea83d08bb 100644 --- a/examples/pump-app/silabs/data_model/pump-thread-app.matter +++ b/examples/pump-app/silabs/data_model/pump-thread-app.matter @@ -1143,11 +1143,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1170,6 +1179,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/pump-app/silabs/data_model/pump-wifi-app.matter b/examples/pump-app/silabs/data_model/pump-wifi-app.matter index dae3db394fcbd9..e5f57ea83d08bb 100644 --- a/examples/pump-app/silabs/data_model/pump-wifi-app.matter +++ b/examples/pump-app/silabs/data_model/pump-wifi-app.matter @@ -1143,11 +1143,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1170,6 +1179,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter index 16c72d7d0341bd..a0430fdfa2db40 100644 --- a/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter +++ b/examples/pump-controller-app/pump-controller-common/pump-controller-app.matter @@ -1068,11 +1068,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1095,6 +1104,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.matter b/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.matter index 51dadb42c36cbe..c3eb6e6613ff2b 100644 --- a/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.matter +++ b/examples/resource-monitoring-app/resource-monitoring-common/resource-monitoring-app.matter @@ -1403,11 +1403,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1430,6 +1439,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter index 1956af2af19e1c..0de8f67a4b71f3 100644 --- a/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter +++ b/examples/smoke-co-alarm-app/smoke-co-alarm-common/smoke-co-alarm-app.matter @@ -1470,11 +1470,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1497,6 +1506,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter b/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter index 70f93bcd68ec64..8dbb0e65ff131e 100644 --- a/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter +++ b/examples/temperature-measurement-app/temperature-measurement-common/temperature-measurement.matter @@ -935,11 +935,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -962,6 +971,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/thermostat/thermostat-common/thermostat.matter b/examples/thermostat/thermostat-common/thermostat.matter index 49776bcef7069d..f09b19716574f8 100644 --- a/examples/thermostat/thermostat-common/thermostat.matter +++ b/examples/thermostat/thermostat-common/thermostat.matter @@ -1555,11 +1555,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1582,6 +1591,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/tv-app/tv-common/tv-app.matter b/examples/tv-app/tv-common/tv-app.matter index 38a9224dabe38f..9ca62bd44eb56b 100644 --- a/examples/tv-app/tv-common/tv-app.matter +++ b/examples/tv-app/tv-common/tv-app.matter @@ -1704,11 +1704,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1731,6 +1740,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter index 3c03e7fb70df31..0417fdeab48e9c 100644 --- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter +++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter @@ -1267,11 +1267,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1294,6 +1303,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter index 280eac184ac8c5..cddef5171522ff 100644 --- a/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter +++ b/examples/virtual-device-app/virtual-device-common/virtual-device-app.matter @@ -1493,11 +1493,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1520,6 +1529,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/examples/window-app/common/window-app.matter b/examples/window-app/common/window-app.matter index b6a03dc6d91d13..d54e92eb1e0b1a 100644 --- a/examples/window-app/common/window-app.matter +++ b/examples/window-app/common/window-app.matter @@ -1687,11 +1687,20 @@ server cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ server cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -1714,6 +1723,7 @@ server cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index f5434d4cd08ced..199c9efd627fea 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -2572,11 +2572,20 @@ client cluster OperationalCredentials = 62 { /** The Group Key Management Cluster is the mechanism by which group keys are managed. */ client cluster GroupKeyManagement = 63 { + enum GroupKeyMulticastPolicyEnum : ENUM8 { + kPerGroupID = 0; + kAllNodes = 1; + } + enum GroupKeySecurityPolicyEnum : ENUM8 { kTrustFirst = 0; kCacheAndSync = 1; } + bitmap Feature : BITMAP32 { + kCacheAndSync = 0x1; + } + fabric_scoped struct GroupInfoMapStruct { group_id groupId = 1; endpoint_no endpoints[] = 2; @@ -2599,6 +2608,7 @@ client cluster GroupKeyManagement = 63 { nullable epoch_us epochStartTime1 = 5; nullable octet_string<16> epochKey2 = 6; nullable epoch_us epochStartTime2 = 7; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = 8; } attribute access(write: manage) GroupKeyMapStruct groupKeyMap[] = 0; diff --git a/src/controller/java/zap-generated/CHIPInvokeCallbacks.cpp b/src/controller/java/zap-generated/CHIPInvokeCallbacks.cpp index 0a3e7d467a7c3c..a28174fbfa1fc8 100644 --- a/src/controller/java/zap-generated/CHIPInvokeCallbacks.cpp +++ b/src/controller/java/zap-generated/CHIPInvokeCallbacks.cpp @@ -2631,6 +2631,12 @@ void CHIPGroupKeyManagementClusterKeySetReadResponseCallback::CallbackFn( GroupKeySet_epochStartTime2ClassName.c_str(), GroupKeySet_epochStartTime2CtorSignature.c_str(), dataResponse.groupKeySet.epochStartTime2.Value(), GroupKeySet_epochStartTime2); } + jobject GroupKeySet_groupKeyMulticastPolicy; + std::string GroupKeySet_groupKeyMulticastPolicyClassName = "java/lang/Integer"; + std::string GroupKeySet_groupKeyMulticastPolicyCtorSignature = "(I)V"; + chip::JniReferences::GetInstance().CreateBoxedObject( + GroupKeySet_groupKeyMulticastPolicyClassName.c_str(), GroupKeySet_groupKeyMulticastPolicyCtorSignature.c_str(), + static_cast(dataResponse.groupKeySet.groupKeyMulticastPolicy), GroupKeySet_groupKeyMulticastPolicy); jclass groupKeySetStructStructClass_0; err = chip::JniReferences::GetInstance().GetClassRef( @@ -2640,19 +2646,19 @@ void CHIPGroupKeyManagementClusterKeySetReadResponseCallback::CallbackFn( ChipLogError(Zcl, "Could not find class ChipStructs$GroupKeyManagementClusterGroupKeySetStruct"); return; } - jmethodID groupKeySetStructStructCtor_0 = - env->GetMethodID(groupKeySetStructStructClass_0, "", - "(Ljava/lang/Integer;Ljava/lang/Integer;[BLjava/lang/Long;[BLjava/lang/Long;[BLjava/lang/Long;)V"); + jmethodID groupKeySetStructStructCtor_0 = env->GetMethodID( + groupKeySetStructStructClass_0, "", + "(Ljava/lang/Integer;Ljava/lang/Integer;[BLjava/lang/Long;[BLjava/lang/Long;[BLjava/lang/Long;Ljava/lang/Integer;)V"); if (groupKeySetStructStructCtor_0 == nullptr) { ChipLogError(Zcl, "Could not find ChipStructs$GroupKeyManagementClusterGroupKeySetStruct constructor"); return; } - GroupKeySet = - env->NewObject(groupKeySetStructStructClass_0, groupKeySetStructStructCtor_0, GroupKeySet_groupKeySetID, - GroupKeySet_groupKeySecurityPolicy, GroupKeySet_epochKey0, GroupKeySet_epochStartTime0, - GroupKeySet_epochKey1, GroupKeySet_epochStartTime1, GroupKeySet_epochKey2, GroupKeySet_epochStartTime2); + GroupKeySet = env->NewObject(groupKeySetStructStructClass_0, groupKeySetStructStructCtor_0, GroupKeySet_groupKeySetID, + GroupKeySet_groupKeySecurityPolicy, GroupKeySet_epochKey0, GroupKeySet_epochStartTime0, + GroupKeySet_epochKey1, GroupKeySet_epochStartTime1, GroupKeySet_epochKey2, + GroupKeySet_epochStartTime2, GroupKeySet_groupKeyMulticastPolicy); env->CallVoidMethod(javaCallbackRef, javaMethod, GroupKeySet); } diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipStructs.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipStructs.java index 6907c0912103af..3ce7a7ac9ef418 100644 --- a/src/controller/java/zap-generated/chip/devicecontroller/ChipStructs.java +++ b/src/controller/java/zap-generated/chip/devicecontroller/ChipStructs.java @@ -1434,6 +1434,7 @@ public static class GroupKeyManagementClusterGroupKeySetStruct { public @Nullable Long epochStartTime1; public @Nullable byte[] epochKey2; public @Nullable Long epochStartTime2; +public Integer groupKeyMulticastPolicy; public GroupKeyManagementClusterGroupKeySetStruct( Integer groupKeySetID @@ -1444,6 +1445,7 @@ public GroupKeyManagementClusterGroupKeySetStruct( , @Nullable Long epochStartTime1 , @Nullable byte[] epochKey2 , @Nullable Long epochStartTime2 + , Integer groupKeyMulticastPolicy ) { this.groupKeySetID = groupKeySetID; this.groupKeySecurityPolicy = groupKeySecurityPolicy; @@ -1453,6 +1455,7 @@ public GroupKeyManagementClusterGroupKeySetStruct( this.epochStartTime1 = epochStartTime1; this.epochKey2 = epochKey2; this.epochStartTime2 = epochStartTime2; + this.groupKeyMulticastPolicy = groupKeyMulticastPolicy; } @Override @@ -1483,6 +1486,9 @@ public String toString() { output.append("\tepochStartTime2: "); output.append(epochStartTime2); output.append("\n"); + output.append("\tgroupKeyMulticastPolicy: "); + output.append(groupKeyMulticastPolicy); + output.append("\n"); output.append("}\n"); return output.toString(); } diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py index 9d5670c8e8d930..b60b423cdc8dc7 100644 --- a/src/controller/python/chip/clusters/Objects.py +++ b/src/controller/python/chip/clusters/Objects.py @@ -13442,6 +13442,15 @@ def descriptor(cls) -> ClusterObjectDescriptor: clusterRevision: 'uint' = None class Enums: + class GroupKeyMulticastPolicyEnum(MatterIntEnum): + kPerGroupID = 0x00 + kAllNodes = 0x01 + # All received enum values that are not listed above will be mapped + # to kUnknownEnumValue. This is a helper enum value that should only + # be used by code to process how it handles receiving and unknown + # enum value. This specific should never be transmitted. + kUnknownEnumValue = 2, + class GroupKeySecurityPolicyEnum(MatterIntEnum): kTrustFirst = 0x00 kCacheAndSync = 0x01 @@ -13451,6 +13460,10 @@ class GroupKeySecurityPolicyEnum(MatterIntEnum): # enum value. This specific should never be transmitted. kUnknownEnumValue = 2, + class Bitmaps: + class Feature(IntFlag): + kCacheAndSync = 0x1 + class Structs: @dataclass class GroupInfoMapStruct(ClusterObject): @@ -13498,6 +13511,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: ClusterObjectFieldDescriptor(Label="epochStartTime1", Tag=5, Type=typing.Union[Nullable, uint]), ClusterObjectFieldDescriptor(Label="epochKey2", Tag=6, Type=typing.Union[Nullable, bytes]), ClusterObjectFieldDescriptor(Label="epochStartTime2", Tag=7, Type=typing.Union[Nullable, uint]), + ClusterObjectFieldDescriptor(Label="groupKeyMulticastPolicy", Tag=8, Type=GroupKeyManagement.Enums.GroupKeyMulticastPolicyEnum), ]) groupKeySetID: 'uint' = 0 @@ -13508,6 +13522,7 @@ def descriptor(cls) -> ClusterObjectDescriptor: epochStartTime1: 'typing.Union[Nullable, uint]' = NullValue epochKey2: 'typing.Union[Nullable, bytes]' = NullValue epochStartTime2: 'typing.Union[Nullable, uint]' = NullValue + groupKeyMulticastPolicy: 'GroupKeyManagement.Enums.GroupKeyMulticastPolicyEnum' = 0 class Commands: @dataclass diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h index ded2a0be84a606..60b150a14f0a5c 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h @@ -26427,11 +26427,20 @@ typedef NS_ENUM(uint8_t, MTROperationalCredentialsOperationalCertStatus) { } MTR_DEPRECATED("Please use MTROperationalCredentialsNodeOperationalCertStatus", ios(16.1, 16.4), macos(13.0, 13.3), watchos(9.1, 9.4), tvos(16.1, 16.4)); +typedef NS_ENUM(uint8_t, MTRGroupKeyManagementGroupKeyMulticastPolicy) { + MTRGroupKeyManagementGroupKeyMulticastPolicyPerGroupID MTR_NEWLY_AVAILABLE = 0x00, + MTRGroupKeyManagementGroupKeyMulticastPolicyAllNodes MTR_NEWLY_AVAILABLE = 0x01, +} MTR_NEWLY_AVAILABLE; + typedef NS_ENUM(uint8_t, MTRGroupKeyManagementGroupKeySecurityPolicy) { MTRGroupKeyManagementGroupKeySecurityPolicyTrustFirst API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) = 0x00, MTRGroupKeyManagementGroupKeySecurityPolicyCacheAndSync API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) = 0x01, } API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); +typedef NS_OPTIONS(uint32_t, MTRGroupKeyManagementFeature) { + MTRGroupKeyManagementFeatureCacheAndSync MTR_NEWLY_AVAILABLE = 0x1, +} MTR_NEWLY_AVAILABLE; + typedef NS_OPTIONS(uint32_t, MTRICDManagementFeature) { MTRICDManagementFeatureCheckInProtocolSupport MTR_PROVISIONALLY_AVAILABLE = 0x1, } MTR_PROVISIONALLY_AVAILABLE; diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm index 4123b1d90123c2..46d32d8e68de36 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm @@ -45219,6 +45219,9 @@ - (void)keySetWriteWithParams:(MTRGroupKeyManagementClusterKeySetWriteParams *)p auto & nonNullValue_1 = request.groupKeySet.epochStartTime2.SetNonNull(); nonNullValue_1 = params.groupKeySet.epochStartTime2.unsignedLongLongValue; } + request.groupKeySet.groupKeyMulticastPolicy + = static_cast>( + params.groupKeySet.groupKeyMulticastPolicy.unsignedCharValue); return MTRStartInvokeInteraction(typedBridge, request, exchangeManager, session, successCb, failureCb, self->_endpoint, timedInvokeTimeoutMs, invokeTimeout); diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.h b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.h index 0cc7f3684f1c80..b3caf9651b6180 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.h @@ -404,6 +404,10 @@ typedef void (*OperationalCredentialsClusterNodeOperationalCertStatusEnumAttribu void *, chip::app::Clusters::OperationalCredentials::NodeOperationalCertStatusEnum); typedef void (*NullableOperationalCredentialsClusterNodeOperationalCertStatusEnumAttributeCallback)( void *, const chip::app::DataModel::Nullable &); +typedef void (*GroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallback)( + void *, chip::app::Clusters::GroupKeyManagement::GroupKeyMulticastPolicyEnum); +typedef void (*NullableGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallback)( + void *, const chip::app::DataModel::Nullable &); typedef void (*GroupKeyManagementClusterGroupKeySecurityPolicyEnumAttributeCallback)( void *, chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicyEnum); typedef void (*NullableGroupKeyManagementClusterGroupKeySecurityPolicyEnumAttributeCallback)( @@ -24372,6 +24376,80 @@ class MTRNullableOperationalCredentialsClusterNodeOperationalCertStatusEnumAttri MTRSubscriptionEstablishedHandler mEstablishedHandler; }; +class MTRGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge + : public MTRCallbackBridge +{ +public: + MTRGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge(dispatch_queue_t queue, + ResponseHandler handler) : + MTRCallbackBridge(queue, handler, OnSuccessFn){}; + + MTRGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge(dispatch_queue_t queue, ResponseHandler handler, + MTRActionBlock action) : + MTRCallbackBridge(queue, handler, action, + OnSuccessFn){}; + + static void OnSuccessFn(void * context, chip::app::Clusters::GroupKeyManagement::GroupKeyMulticastPolicyEnum value); +}; + +class MTRGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackSubscriptionBridge + : public MTRGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge +{ +public: + MTRGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackSubscriptionBridge( + dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, + MTRSubscriptionEstablishedHandler establishedHandler) : + MTRGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge(queue, handler, action), + mEstablishedHandler(establishedHandler) + {} + + void OnSubscriptionEstablished(); + using MTRGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge::KeepAliveOnCallback; + using MTRGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge::OnDone; + +private: + MTRSubscriptionEstablishedHandler mEstablishedHandler; +}; + +class MTRNullableGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge + : public MTRCallbackBridge +{ +public: + MTRNullableGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge(dispatch_queue_t queue, + ResponseHandler handler) : + MTRCallbackBridge(queue, handler, + OnSuccessFn){}; + + MTRNullableGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge(dispatch_queue_t queue, + ResponseHandler handler, + MTRActionBlock action) : + MTRCallbackBridge(queue, handler, action, + OnSuccessFn){}; + + static void + OnSuccessFn(void * context, + const chip::app::DataModel::Nullable & value); +}; + +class MTRNullableGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackSubscriptionBridge + : public MTRNullableGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge +{ +public: + MTRNullableGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackSubscriptionBridge( + dispatch_queue_t queue, ResponseHandler handler, MTRActionBlock action, + MTRSubscriptionEstablishedHandler establishedHandler) : + MTRNullableGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge(queue, handler, action), + mEstablishedHandler(establishedHandler) + {} + + void OnSubscriptionEstablished(); + using MTRNullableGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge::KeepAliveOnCallback; + using MTRNullableGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge::OnDone; + +private: + MTRSubscriptionEstablishedHandler mEstablishedHandler; +}; + class MTRGroupKeyManagementClusterGroupKeySecurityPolicyEnumAttributeCallbackBridge : public MTRCallbackBridge { diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm index c6806421244642..415083577f67f5 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRCallbackBridge.mm @@ -23724,6 +23724,56 @@ } } +void MTRGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge::OnSuccessFn( + void * context, chip::app::Clusters::GroupKeyManagement::GroupKeyMulticastPolicyEnum value) +{ + NSNumber * _Nonnull objCValue; + objCValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(value)]; + DispatchSuccess(context, objCValue); +}; + +void MTRGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished() +{ + if (!mQueue) { + return; + } + + if (mEstablishedHandler != nil) { + dispatch_async(mQueue, mEstablishedHandler); + // On failure, mEstablishedHandler will be cleaned up by our destructor, + // but we can clean it up earlier on successful subscription + // establishment. + mEstablishedHandler = nil; + } +} + +void MTRNullableGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackBridge::OnSuccessFn(void * context, + const chip::app::DataModel::Nullable & value) +{ + NSNumber * _Nullable objCValue; + if (value.IsNull()) { + objCValue = nil; + } else { + objCValue = [NSNumber numberWithUnsignedChar:chip::to_underlying(value.Value())]; + } + DispatchSuccess(context, objCValue); +}; + +void MTRNullableGroupKeyManagementClusterGroupKeyMulticastPolicyEnumAttributeCallbackSubscriptionBridge::OnSubscriptionEstablished() +{ + if (!mQueue) { + return; + } + + if (mEstablishedHandler != nil) { + dispatch_async(mQueue, mEstablishedHandler); + // On failure, mEstablishedHandler will be cleaned up by our destructor, + // but we can clean it up earlier on successful subscription + // establishment. + mEstablishedHandler = nil; + } +} + void MTRGroupKeyManagementClusterGroupKeySecurityPolicyEnumAttributeCallbackBridge::OnSuccessFn( void * context, chip::app::Clusters::GroupKeyManagement::GroupKeySecurityPolicyEnum value) { diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm index f433d153adcafb..88a84f3cfcf123 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRClusters.mm @@ -12651,6 +12651,9 @@ - (void)keySetWriteWithParams:(MTRGroupKeyManagementClusterKeySetWriteParams *)p auto & nonNullValue_1 = request.groupKeySet.epochStartTime2.SetNonNull(); nonNullValue_1 = params.groupKeySet.epochStartTime2.unsignedLongLongValue; } + request.groupKeySet.groupKeyMulticastPolicy + = static_cast>( + params.groupKeySet.groupKeyMulticastPolicy.unsignedCharValue); return MTRStartInvokeInteraction(typedBridge, request, exchangeManager, session, successCb, failureCb, self->_endpoint, timedInvokeTimeoutMs, invokeTimeout); diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm index 23b319ffafaab0..fb6b17f59411c7 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRCommandPayloadsObjc.mm @@ -6455,6 +6455,8 @@ - (CHIP_ERROR)_setFieldsFromDecodableStruct: self.groupKeySet.epochStartTime2 = [NSNumber numberWithUnsignedLongLong:decodableStruct.groupKeySet.epochStartTime2.Value()]; } + self.groupKeySet.groupKeyMulticastPolicy = + [NSNumber numberWithUnsignedChar:chip::to_underlying(decodableStruct.groupKeySet.groupKeyMulticastPolicy)]; } return CHIP_NO_ERROR; } diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h index cb5ffe460ba0af..2240aca474e60a 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h @@ -985,6 +985,7 @@ API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) @property (nonatomic, copy) NSNumber * _Nullable epochStartTime1 API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); @property (nonatomic, copy) NSData * _Nullable epochKey2 API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); @property (nonatomic, copy) NSNumber * _Nullable epochStartTime2 API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)); +@property (nonatomic, copy) NSNumber * _Nonnull groupKeyMulticastPolicy MTR_NEWLY_AVAILABLE; @end API_AVAILABLE(ios(16.1), macos(13.0), watchos(9.1), tvos(16.1)) diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm index 3a2579b22f8cc9..7d0e350cc365b1 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm @@ -2818,6 +2818,8 @@ - (instancetype)init _epochKey2 = nil; _epochStartTime2 = nil; + + _groupKeyMulticastPolicy = @(0); } return self; } @@ -2834,18 +2836,19 @@ - (id)copyWithZone:(NSZone * _Nullable)zone other.epochStartTime1 = self.epochStartTime1; other.epochKey2 = self.epochKey2; other.epochStartTime2 = self.epochStartTime2; + other.groupKeyMulticastPolicy = self.groupKeyMulticastPolicy; return other; } - (NSString *)description { - NSString * descriptionString = - [NSString stringWithFormat:@"<%@: groupKeySetID:%@; groupKeySecurityPolicy:%@; epochKey0:%@; epochStartTime0:%@; " - @"epochKey1:%@; epochStartTime1:%@; epochKey2:%@; epochStartTime2:%@; >", - NSStringFromClass([self class]), _groupKeySetID, _groupKeySecurityPolicy, - [_epochKey0 base64EncodedStringWithOptions:0], _epochStartTime0, [_epochKey1 base64EncodedStringWithOptions:0], - _epochStartTime1, [_epochKey2 base64EncodedStringWithOptions:0], _epochStartTime2]; + NSString * descriptionString = [NSString + stringWithFormat:@"<%@: groupKeySetID:%@; groupKeySecurityPolicy:%@; epochKey0:%@; epochStartTime0:%@; epochKey1:%@; " + @"epochStartTime1:%@; epochKey2:%@; epochStartTime2:%@; groupKeyMulticastPolicy:%@; >", + NSStringFromClass([self class]), _groupKeySetID, _groupKeySecurityPolicy, [_epochKey0 base64EncodedStringWithOptions:0], + _epochStartTime0, [_epochKey1 base64EncodedStringWithOptions:0], _epochStartTime1, + [_epochKey2 base64EncodedStringWithOptions:0], _epochStartTime2, _groupKeyMulticastPolicy]; return descriptionString; } diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h index 4587208e0cc40c..3463b81b0563cd 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums-check.h @@ -1224,6 +1224,18 @@ static auto __attribute__((unused)) EnsureKnownEnumValue(OperationalCredentials: } } +static auto __attribute__((unused)) EnsureKnownEnumValue(GroupKeyManagement::GroupKeyMulticastPolicyEnum val) +{ + using EnumType = GroupKeyManagement::GroupKeyMulticastPolicyEnum; + switch (val) + { + case EnumType::kPerGroupID: + case EnumType::kAllNodes: + return val; + default: + return static_cast(2); + } +} static auto __attribute__((unused)) EnsureKnownEnumValue(GroupKeyManagement::GroupKeySecurityPolicyEnum val) { using EnumType = GroupKeyManagement::GroupKeySecurityPolicyEnum; diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h index 6cef8dce3faef4..8008ab77794d31 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h @@ -1433,6 +1433,18 @@ enum class NodeOperationalCertStatusEnum : uint8_t namespace GroupKeyManagement { +// Enum for GroupKeyMulticastPolicyEnum +enum class GroupKeyMulticastPolicyEnum : uint8_t +{ + kPerGroupID = 0x00, + kAllNodes = 0x01, + // All received enum values that are not listed above will be mapped + // to kUnknownEnumValue. This is a helper enum value that should only + // be used by code to process how it handles receiving and unknown + // enum value. This specific should never be transmitted. + kUnknownEnumValue = 2, +}; + // Enum for GroupKeySecurityPolicyEnum enum class GroupKeySecurityPolicyEnum : uint8_t { @@ -1444,6 +1456,12 @@ enum class GroupKeySecurityPolicyEnum : uint8_t // enum value. This specific should never be transmitted. kUnknownEnumValue = 2, }; + +// Bitmap for Feature +enum class Feature : uint32_t +{ + kCacheAndSync = 0x1, +}; } // namespace GroupKeyManagement namespace FixedLabel {} // namespace FixedLabel diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp index 8fac2b4581f03a..01319467869a08 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp @@ -10585,6 +10585,7 @@ CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kEpochStartTime1), epochStartTime1)); ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kEpochKey2), epochKey2)); ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kEpochStartTime2), epochStartTime2)); + ReturnErrorOnFailure(DataModel::Encode(aWriter, TLV::ContextTag(Fields::kGroupKeyMulticastPolicy), groupKeyMulticastPolicy)); ReturnErrorOnFailure(aWriter.EndContainer(outer)); return CHIP_NO_ERROR; } @@ -10628,6 +10629,9 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) case to_underlying(Fields::kEpochStartTime2): ReturnErrorOnFailure(DataModel::Decode(reader, epochStartTime2)); break; + case to_underlying(Fields::kGroupKeyMulticastPolicy): + ReturnErrorOnFailure(DataModel::Decode(reader, groupKeyMulticastPolicy)); + break; default: break; } diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h index be7ffc777ee112..86e5f9fd1f8975 100644 --- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h +++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h @@ -12977,14 +12977,15 @@ using DecodableType = Type; namespace GroupKeySetStruct { enum class Fields : uint8_t { - kGroupKeySetID = 0, - kGroupKeySecurityPolicy = 1, - kEpochKey0 = 2, - kEpochStartTime0 = 3, - kEpochKey1 = 4, - kEpochStartTime1 = 5, - kEpochKey2 = 6, - kEpochStartTime2 = 7, + kGroupKeySetID = 0, + kGroupKeySecurityPolicy = 1, + kEpochKey0 = 2, + kEpochStartTime0 = 3, + kEpochKey1 = 4, + kEpochStartTime1 = 5, + kEpochKey2 = 6, + kEpochStartTime2 = 7, + kGroupKeyMulticastPolicy = 8, }; struct Type @@ -12998,6 +12999,7 @@ struct Type DataModel::Nullable epochStartTime1; DataModel::Nullable epochKey2; DataModel::Nullable epochStartTime2; + GroupKeyMulticastPolicyEnum groupKeyMulticastPolicy = static_cast(0); CHIP_ERROR Decode(TLV::TLVReader & reader); diff --git a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp index c72ad1d6409a65..4456b08b538a53 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp @@ -1917,6 +1917,8 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochKey2", "epochKey2", value.isMember("epochKey2"))); ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("GroupKeySetStruct.epochStartTime2", "epochStartTime2", value.isMember("epochStartTime2"))); + ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist( + "GroupKeySetStruct.groupKeyMulticastPolicy", "groupKeyMulticastPolicy", value.isMember("groupKeyMulticastPolicy"))); char labelWithMember[kMaxLabelLength]; snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupKeySetID"); @@ -1952,6 +1954,11 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.epochStartTime2, value["epochStartTime2"])); valueCopy.removeMember("epochStartTime2"); + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "groupKeyMulticastPolicy"); + ReturnErrorOnFailure( + ComplexArgumentParser::Setup(labelWithMember, request.groupKeyMulticastPolicy, value["groupKeyMulticastPolicy"])); + valueCopy.removeMember("groupKeyMulticastPolicy"); + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } @@ -1965,6 +1972,7 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::GroupKeyManagement::St ComplexArgumentParser::Finalize(request.epochStartTime1); ComplexArgumentParser::Finalize(request.epochKey2); ComplexArgumentParser::Finalize(request.epochStartTime2); + ComplexArgumentParser::Finalize(request.groupKeyMulticastPolicy); } CHIP_ERROR ComplexArgumentParser::Setup(const char * label, diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp index a26f2ea8bf7c96..37fd26f4b294cf 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp @@ -1763,6 +1763,14 @@ DataModelLogger::LogValue(const char * label, size_t indent, return err; } } + { + CHIP_ERROR err = LogValue("GroupKeyMulticastPolicy", indent + 1, value.groupKeyMulticastPolicy); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'GroupKeyMulticastPolicy'"); + return err; + } + } DataModelLogger::LogString(indent, "}"); return CHIP_NO_ERROR; diff --git a/zzz_generated/chip-tool/zap-generated/test/Commands.h b/zzz_generated/chip-tool/zap-generated/test/Commands.h index 7caa48359ca68f..652e323d591db6 100644 --- a/zzz_generated/chip-tool/zap-generated/test/Commands.h +++ b/zzz_generated/chip-tool/zap-generated/test/Commands.h @@ -112289,6 +112289,8 @@ class TestGroupMessagingSuite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 1110002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -112324,6 +112326,8 @@ class TestGroupMessagingSuite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 2220002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -112558,6 +112562,8 @@ class TestGroupMessagingSuite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 1110002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityGamma, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -112593,6 +112599,8 @@ class TestGroupMessagingSuite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 2220002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityGamma, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -113129,6 +113137,8 @@ class TestGroupsClusterSuite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 1110002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -113504,6 +113514,7 @@ class TestGroupKeyManagementClusterSuite : public TestCommand VerifyOrReturn(CheckValueNonNull("groupKeySet.epochStartTime2", value.groupKeySet.epochStartTime2)); VerifyOrReturn( CheckValue("groupKeySet.epochStartTime2.Value()", value.groupKeySet.epochStartTime2.Value(), 1110002ULL)); + VerifyOrReturn(CheckValue("groupKeySet.groupKeyMulticastPolicy", value.groupKeySet.groupKeyMulticastPolicy, 0U)); } break; case 12: @@ -114008,6 +114019,7 @@ class TestGroupKeyManagementClusterSuite : public TestCommand VerifyOrReturn(CheckValueNonNull("groupKeySet.epochStartTime2", value.groupKeySet.epochStartTime2)); VerifyOrReturn( CheckValue("groupKeySet.epochStartTime2.Value()", value.groupKeySet.epochStartTime2.Value(), 2110002ULL)); + VerifyOrReturn(CheckValue("groupKeySet.groupKeyMulticastPolicy", value.groupKeySet.groupKeyMulticastPolicy, 0U)); } break; case 33: @@ -114029,6 +114041,7 @@ class TestGroupKeyManagementClusterSuite : public TestCommand VerifyOrReturn(CheckValueNonNull("groupKeySet.epochStartTime2", value.groupKeySet.epochStartTime2)); VerifyOrReturn( CheckValue("groupKeySet.epochStartTime2.Value()", value.groupKeySet.epochStartTime2.Value(), 2110002ULL)); + VerifyOrReturn(CheckValue("groupKeySet.groupKeyMulticastPolicy", value.groupKeySet.groupKeyMulticastPolicy, 0U)); } break; case 34: @@ -114252,6 +114265,8 @@ class TestGroupKeyManagementClusterSuite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 1110002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -114288,6 +114303,8 @@ class TestGroupKeyManagementClusterSuite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 2110002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -114324,6 +114341,8 @@ class TestGroupKeyManagementClusterSuite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 2110002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -114358,6 +114377,8 @@ class TestGroupKeyManagementClusterSuite : public TestCommand chip::ByteSpan(chip::Uint8::from_const_char(" !\042#$%&'()*+,-./garbage: not in length on purpose"), 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 2110002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityBeta, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -114392,6 +114413,8 @@ class TestGroupKeyManagementClusterSuite : public TestCommand chip::ByteSpan(chip::Uint8::from_const_char(" !\042#$%&'()*+,-./garbage: not in length on purpose"), 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 2110002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityBeta, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -114779,6 +114802,8 @@ class TestGroupKeyManagementClusterSuite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 1110002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -114815,6 +114840,8 @@ class TestGroupKeyManagementClusterSuite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 2110002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -114851,6 +114878,8 @@ class TestGroupKeyManagementClusterSuite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 2110002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -118621,6 +118650,8 @@ class TestGroupDemoConfigSuite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 1110002ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -144207,6 +144238,8 @@ class Test_TC_S_2_2Suite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 0ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -145193,6 +145226,8 @@ class Test_TC_S_2_3Suite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 0ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional @@ -145789,6 +145824,8 @@ class Test_TC_S_2_4Suite : public TestCommand 16); value.groupKeySet.epochStartTime2.SetNonNull(); value.groupKeySet.epochStartTime2.Value() = 0ULL; + value.groupKeySet.groupKeyMulticastPolicy = + static_cast(0); return SendCommand(kIdentityAlpha, GetEndpoint(0), GroupKeyManagement::Id, GroupKeyManagement::Commands::KeySetWrite::Id, value, chip::NullOptional diff --git a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h index 41350c5c812c7e..043fe45b416439 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h @@ -39517,6 +39517,8 @@ class GroupKeyManagementKeySetWrite : public ClusterCommand { } else { params.groupKeySet.epochStartTime2 = [NSNumber numberWithUnsignedLongLong:mRequest.groupKeySet.epochStartTime2.Value()]; } + params.groupKeySet.groupKeyMulticastPolicy = + [NSNumber numberWithUnsignedChar:chip::to_underlying(mRequest.groupKeySet.groupKeyMulticastPolicy)]; uint16_t repeatCount = mRepeatCount.ValueOr(1); uint16_t __block responsesNeeded = repeatCount; while (repeatCount--) { diff --git a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h index a7e81dca8316ac..e8a34d6e42d979 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/test/Commands.h @@ -174906,6 +174906,8 @@ class TestGroupsCluster : public TestCommandBridge { [[NSData alloc] initWithBytes:"\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = [NSNumber numberWithUnsignedLongLong:1110002ULL]; + ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeyMulticastPolicy = + [NSNumber numberWithUnsignedChar:0U]; [cluster keySetWriteWithParams:params completion:^(NSError * _Nullable err) { @@ -176210,6 +176212,8 @@ class TestGroupKeyManagementCluster : public TestCommandBridge { [[NSData alloc] initWithBytes:"\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = [NSNumber numberWithUnsignedLongLong:1110002ULL]; + ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeyMulticastPolicy = + [NSNumber numberWithUnsignedChar:0U]; [cluster keySetWriteWithParams:params completion:^(NSError * _Nullable err) { @@ -176250,6 +176254,8 @@ class TestGroupKeyManagementCluster : public TestCommandBridge { [[NSData alloc] initWithBytes:"\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = [NSNumber numberWithUnsignedLongLong:2110002ULL]; + ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeyMulticastPolicy = + [NSNumber numberWithUnsignedChar:0U]; [cluster keySetWriteWithParams:params completion:^(NSError * _Nullable err) { @@ -176290,6 +176296,8 @@ class TestGroupKeyManagementCluster : public TestCommandBridge { [[NSData alloc] initWithBytes:"\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = [NSNumber numberWithUnsignedLongLong:2110002ULL]; + ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeyMulticastPolicy = + [NSNumber numberWithUnsignedChar:0U]; [cluster keySetWriteWithParams:params completion:^(NSError * _Nullable err) { @@ -176330,6 +176338,8 @@ class TestGroupKeyManagementCluster : public TestCommandBridge { [[NSData alloc] initWithBytes:" !\042#$%&'()*+,-./" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = [NSNumber numberWithUnsignedLongLong:2110002ULL]; + ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeyMulticastPolicy = + [NSNumber numberWithUnsignedChar:0U]; [cluster keySetWriteWithParams:params completion:^(NSError * _Nullable err) { @@ -176370,6 +176380,8 @@ class TestGroupKeyManagementCluster : public TestCommandBridge { [[NSData alloc] initWithBytes:" !\042#$%&'()*+,-./" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = [NSNumber numberWithUnsignedLongLong:2110002ULL]; + ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeyMulticastPolicy = + [NSNumber numberWithUnsignedChar:0U]; [cluster keySetWriteWithParams:params completion:^(NSError * _Nullable err) { @@ -176426,6 +176438,8 @@ class TestGroupKeyManagementCluster : public TestCommandBridge { ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochStartTime2)); VerifyOrReturn(CheckValue("EpochStartTime2", ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochStartTime2, 1110002ULL)); + VerifyOrReturn(CheckValue("GroupKeyMulticastPolicy", + ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).groupKeyMulticastPolicy, 0U)); } NextTest(); @@ -177592,6 +177606,8 @@ class TestGroupKeyManagementCluster : public TestCommandBridge { ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochStartTime2)); VerifyOrReturn(CheckValue("EpochStartTime2", ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochStartTime2, 2110002ULL)); + VerifyOrReturn(CheckValue("GroupKeyMulticastPolicy", + ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).groupKeyMulticastPolicy, 0U)); } NextTest(); @@ -177643,6 +177659,8 @@ class TestGroupKeyManagementCluster : public TestCommandBridge { ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochStartTime2)); VerifyOrReturn(CheckValue("EpochStartTime2", ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).epochStartTime2, 2110002ULL)); + VerifyOrReturn(CheckValue("GroupKeyMulticastPolicy", + ((MTRGroupKeyManagementClusterGroupKeySetStruct *) actualValue).groupKeyMulticastPolicy, 0U)); } NextTest(); @@ -177880,6 +177898,8 @@ class TestGroupKeyManagementCluster : public TestCommandBridge { [[NSData alloc] initWithBytes:"\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = [NSNumber numberWithUnsignedLongLong:1110002ULL]; + ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeyMulticastPolicy = + [NSNumber numberWithUnsignedChar:0U]; [cluster keySetWriteWithParams:params completion:^(NSError * _Nullable err) { @@ -177920,6 +177940,8 @@ class TestGroupKeyManagementCluster : public TestCommandBridge { [[NSData alloc] initWithBytes:"\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = [NSNumber numberWithUnsignedLongLong:2110002ULL]; + ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeyMulticastPolicy = + [NSNumber numberWithUnsignedChar:0U]; [cluster keySetWriteWithParams:params completion:^(NSError * _Nullable err) { @@ -177960,6 +177982,8 @@ class TestGroupKeyManagementCluster : public TestCommandBridge { [[NSData alloc] initWithBytes:"\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377" length:16]; ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).epochStartTime2 = [NSNumber numberWithUnsignedLongLong:2110002ULL]; + ((MTRGroupKeyManagementClusterGroupKeySetStruct *) params.groupKeySet).groupKeyMulticastPolicy = + [NSNumber numberWithUnsignedChar:0U]; [cluster keySetWriteWithParams:params completion:^(NSError * _Nullable err) {