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 0b35b596292b5b..6d461163f67e90 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
@@ -404,7 +404,7 @@ server cluster Descriptor = 29 {
}
server cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -438,11 +438,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -452,12 +452,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -465,7 +465,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -688,7 +688,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1570,13 +1570,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1668,13 +1668,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
@@ -3601,14 +3601,14 @@ server cluster TestCluster = 4294048773 {
double h = 7;
}
- struct TestFabricScoped {
- int8u fabricSensitiveInt8u = 1;
- optional int8u optionalFabricSensitiveInt8u = 2;
- nullable int8u nullableFabricSensitiveInt8u = 3;
- optional nullable int8u nullableOptionalFabricSensitiveInt8u = 4;
- char_string fabricSensitiveCharString = 5;
- SimpleStruct fabricSensitiveStruct = 6;
- int8u fabricSensitiveInt8uList[] = 7;
+ fabric_scoped struct TestFabricScoped {
+ fabric_sensitive int8u fabricSensitiveInt8u = 1;
+ optional fabric_sensitive int8u optionalFabricSensitiveInt8u = 2;
+ nullable fabric_sensitive int8u nullableFabricSensitiveInt8u = 3;
+ optional nullable fabric_sensitive int8u nullableOptionalFabricSensitiveInt8u = 4;
+ fabric_sensitive char_string fabricSensitiveCharString = 5;
+ fabric_sensitive SimpleStruct fabricSensitiveStruct = 6;
+ fabric_sensitive int8u fabricSensitiveInt8uList[] = 7;
fabric_idx fabricIndex = 254;
}
@@ -3637,7 +3637,7 @@ server cluster TestCluster = 4294048773 {
SimpleEnum arg6[] = 6;
}
- info event TestFabricScopedEvent = 2 {
+ fabric_sensitive info event TestFabricScopedEvent = 2 {
fabric_idx fabricIndex = 254;
}
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 870ea65eb0062f..11646ab736d960 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
@@ -354,7 +354,7 @@ server cluster Descriptor = 29 {
}
server cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -388,11 +388,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -402,7 +402,7 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -410,7 +410,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -623,7 +623,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1415,13 +1415,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1513,13 +1513,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
@@ -3025,14 +3025,14 @@ server cluster TestCluster = 4294048773 {
double h = 7;
}
- struct TestFabricScoped {
- int8u fabricSensitiveInt8u = 1;
- optional int8u optionalFabricSensitiveInt8u = 2;
- nullable int8u nullableFabricSensitiveInt8u = 3;
- optional nullable int8u nullableOptionalFabricSensitiveInt8u = 4;
- char_string fabricSensitiveCharString = 5;
- SimpleStruct fabricSensitiveStruct = 6;
- int8u fabricSensitiveInt8uList[] = 7;
+ fabric_scoped struct TestFabricScoped {
+ fabric_sensitive int8u fabricSensitiveInt8u = 1;
+ optional fabric_sensitive int8u optionalFabricSensitiveInt8u = 2;
+ nullable fabric_sensitive int8u nullableFabricSensitiveInt8u = 3;
+ optional nullable fabric_sensitive int8u nullableOptionalFabricSensitiveInt8u = 4;
+ fabric_sensitive char_string fabricSensitiveCharString = 5;
+ fabric_sensitive SimpleStruct fabricSensitiveStruct = 6;
+ fabric_sensitive int8u fabricSensitiveInt8uList[] = 7;
fabric_idx fabricIndex = 254;
}
@@ -3061,7 +3061,7 @@ server cluster TestCluster = 4294048773 {
SimpleEnum arg6[] = 6;
}
- info event TestFabricScopedEvent = 2 {
+ fabric_sensitive info event TestFabricScopedEvent = 2 {
fabric_idx fabricIndex = 254;
}
diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter
index 138789996e7852..df5f85e168e8ee 100644
--- a/examples/bridge-app/bridge-common/bridge-app.matter
+++ b/examples/bridge-app/bridge-common/bridge-app.matter
@@ -204,7 +204,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -241,11 +241,11 @@ client cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -255,12 +255,12 @@ client cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -268,7 +268,7 @@ client cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -309,11 +309,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -323,12 +323,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -336,7 +336,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -1260,13 +1260,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1361,13 +1361,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
index 3c465df356c2c2..25d88fb3de1ece 100644
--- a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
+++ b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
@@ -380,7 +380,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -416,11 +416,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -430,12 +430,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -443,7 +443,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -589,7 +589,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1228,13 +1228,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1326,13 +1326,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
index e7fdaaeefdd07c..e83b7e94a31fb6 100644
--- a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
+++ b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
@@ -125,7 +125,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -161,11 +161,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -175,12 +175,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -188,7 +188,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -334,7 +334,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1107,13 +1107,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1205,13 +1205,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
index c0275e21e72b66..a8e9510a847cc4 100644
--- a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
+++ b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
@@ -380,7 +380,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -416,11 +416,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -430,12 +430,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -443,7 +443,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -589,7 +589,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1362,13 +1362,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1460,13 +1460,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
index 6cbe7a36a7fba9..06ba4986623289 100644
--- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
+++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
@@ -347,7 +347,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -383,11 +383,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -397,12 +397,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -410,7 +410,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -556,7 +556,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1329,13 +1329,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1427,13 +1427,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
index 01f2502d71adf4..229406aeb02602 100644
--- a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
+++ b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
@@ -380,7 +380,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -416,11 +416,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -430,12 +430,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -443,7 +443,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -589,7 +589,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1362,13 +1362,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1460,13 +1460,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter
index 61ef9bfc36d9da..825ae1baf456b3 100644
--- a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter
+++ b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter
@@ -151,11 +151,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -165,12 +165,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -178,7 +178,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -333,7 +333,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1111,13 +1111,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1209,13 +1209,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
index daf54c98a7dcb0..dfafa83f0812dd 100644
--- a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
+++ b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
@@ -138,7 +138,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -174,11 +174,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -188,12 +188,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -201,7 +201,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -347,7 +347,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1120,13 +1120,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1218,13 +1218,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
index e5c2a0469bdd8d..893d7ca9117713 100644
--- a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
+++ b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
@@ -373,7 +373,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -409,11 +409,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -423,12 +423,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -436,7 +436,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -582,7 +582,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1355,13 +1355,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1453,13 +1453,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
index fcb6064dca42b2..58f9266c941c3b 100644
--- a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
+++ b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
@@ -138,7 +138,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -174,11 +174,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -188,12 +188,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -201,7 +201,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -347,7 +347,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1120,13 +1120,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1218,13 +1218,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
index c605e42d0de9ab..18726ffd72612e 100644
--- a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
+++ b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
@@ -138,7 +138,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -174,11 +174,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -188,12 +188,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -201,7 +201,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -347,7 +347,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1120,13 +1120,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1218,13 +1218,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
index 535763399d623f..9d14f8d93621dc 100644
--- a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
+++ b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
@@ -138,7 +138,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -174,11 +174,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -188,12 +188,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -201,7 +201,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -347,7 +347,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1120,13 +1120,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1218,13 +1218,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
index b757b5d62b7817..58d55449299eb0 100644
--- a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
+++ b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
@@ -380,7 +380,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -416,11 +416,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -430,12 +430,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -443,7 +443,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -589,7 +589,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1362,13 +1362,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1460,13 +1460,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
index 4d0ce7aee5a0e7..ccfb19fcf287c3 100644
--- a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
+++ b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
@@ -439,7 +439,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -475,11 +475,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -489,12 +489,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -502,7 +502,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -648,7 +648,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1421,13 +1421,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1519,13 +1519,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
index bdb631dbbdeacc..333f6ae131ee6b 100644
--- a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
+++ b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
@@ -286,7 +286,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -322,11 +322,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -336,12 +336,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -349,7 +349,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -495,7 +495,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1268,13 +1268,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1366,13 +1366,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
index 388979274fd065..400870cf857cbc 100644
--- a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
+++ b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
@@ -138,7 +138,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -174,11 +174,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -188,12 +188,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -201,7 +201,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -347,7 +347,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1120,13 +1120,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1218,13 +1218,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
index cbf27d1f709ba0..ff28ec01bb4f59 100644
--- a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
+++ b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
@@ -260,7 +260,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -296,11 +296,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -310,12 +310,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -323,7 +323,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -469,7 +469,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1242,13 +1242,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1340,13 +1340,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
index cebe916ff0ce95..d5773c3b156c58 100644
--- a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
+++ b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
@@ -138,7 +138,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -174,11 +174,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -188,12 +188,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -201,7 +201,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -347,7 +347,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1120,13 +1120,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1218,13 +1218,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
index c5708822cd4483..55ac0429788008 100644
--- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
+++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
@@ -236,7 +236,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -272,11 +272,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -286,12 +286,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -299,7 +299,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -445,7 +445,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1218,13 +1218,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1316,13 +1316,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
index 16721a189a8ff6..fe71c91059bb45 100644
--- a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
+++ b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
@@ -236,7 +236,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -272,11 +272,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -286,12 +286,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -299,7 +299,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -445,7 +445,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1218,13 +1218,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1316,13 +1316,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/dynamic-bridge-app/bridge-common/bridge-app.matter b/examples/dynamic-bridge-app/bridge-common/bridge-app.matter
index 138789996e7852..df5f85e168e8ee 100644
--- a/examples/dynamic-bridge-app/bridge-common/bridge-app.matter
+++ b/examples/dynamic-bridge-app/bridge-common/bridge-app.matter
@@ -204,7 +204,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -241,11 +241,11 @@ client cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -255,12 +255,12 @@ client cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -268,7 +268,7 @@ client cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -309,11 +309,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -323,12 +323,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -336,7 +336,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -1260,13 +1260,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1361,13 +1361,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
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 f99150bd192a5f..16ed6bc10db317 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
@@ -316,7 +316,7 @@ server cluster Descriptor = 29 {
}
server cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -350,11 +350,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -364,12 +364,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -377,7 +377,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -532,7 +532,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1312,13 +1312,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1410,13 +1410,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter
index 8cbb903d0374a0..d685bdd9abf0e8 100644
--- a/examples/lighting-app/lighting-common/lighting-app.matter
+++ b/examples/lighting-app/lighting-common/lighting-app.matter
@@ -301,11 +301,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -315,12 +315,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -328,7 +328,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -483,7 +483,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1258,13 +1258,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1356,13 +1356,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/lighting-app/nxp/zap/lighting-on-off.matter b/examples/lighting-app/nxp/zap/lighting-on-off.matter
index f3c1b5aba6a0b0..273c23cfa47a78 100644
--- a/examples/lighting-app/nxp/zap/lighting-on-off.matter
+++ b/examples/lighting-app/nxp/zap/lighting-on-off.matter
@@ -304,11 +304,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -318,7 +318,7 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -326,7 +326,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -472,7 +472,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1024,13 +1024,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1122,13 +1122,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter
index 6d1572d55b10f4..f04c84443ffdf5 100644
--- a/examples/lock-app/lock-common/lock-app.matter
+++ b/examples/lock-app/lock-common/lock-app.matter
@@ -123,11 +123,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -137,12 +137,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -150,7 +150,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -305,7 +305,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1121,13 +1121,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1219,13 +1219,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/log-source-app/log-source-common/log-source-app.matter b/examples/log-source-app/log-source-common/log-source-app.matter
index ce0e229acbc5aa..68b7a88546071f 100644
--- a/examples/log-source-app/log-source-common/log-source-app.matter
+++ b/examples/log-source-app/log-source-common/log-source-app.matter
@@ -22,11 +22,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -36,12 +36,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -49,7 +49,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -322,7 +322,7 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
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 54a87c9a38051e..440398ff636ee9 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
@@ -27,11 +27,11 @@ client cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -41,12 +41,12 @@ client cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -54,7 +54,7 @@ client cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -93,11 +93,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -107,12 +107,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -120,7 +120,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -627,13 +627,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -725,13 +725,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
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 24c8760480374e..db07bab0b0a735 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
@@ -206,11 +206,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -220,12 +220,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -233,7 +233,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -388,7 +388,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -809,13 +809,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -907,13 +907,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter
index 454dcf45dbf27f..c8c0dbced38e45 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -1269,7 +1269,7 @@ client cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1348,7 +1348,7 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter
index 454dcf45dbf27f..c8c0dbced38e45 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -1269,7 +1269,7 @@ client cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1348,7 +1348,7 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
diff --git a/examples/pump-app/pump-common/pump-app.matter b/examples/pump-app/pump-common/pump-app.matter
index 2f7fa625a50433..7531278b479891 100644
--- a/examples/pump-app/pump-common/pump-app.matter
+++ b/examples/pump-app/pump-common/pump-app.matter
@@ -195,7 +195,7 @@ server cluster Descriptor = 29 {
}
server cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -232,11 +232,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -246,12 +246,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -259,7 +259,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -415,7 +415,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -918,13 +918,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1019,13 +1019,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
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 f6b32a81f4484a..b9096238a10a54 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
@@ -99,7 +99,7 @@ server cluster Descriptor = 29 {
}
server cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -136,11 +136,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -150,12 +150,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -163,7 +163,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -319,7 +319,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -822,13 +822,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -923,13 +923,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter b/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter
index 0f4993b604ef4b..800d4acaf2325f 100644
--- a/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter
+++ b/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter
@@ -41,11 +41,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -55,12 +55,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -68,7 +68,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -657,13 +657,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -755,13 +755,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/thermostat/thermostat-common/thermostat.matter b/examples/thermostat/thermostat-common/thermostat.matter
index c40dde4600d649..9b104b990f3159 100644
--- a/examples/thermostat/thermostat-common/thermostat.matter
+++ b/examples/thermostat/thermostat-common/thermostat.matter
@@ -259,7 +259,7 @@ server cluster Descriptor = 29 {
}
server cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -293,11 +293,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -307,12 +307,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -320,7 +320,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -476,7 +476,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1216,13 +1216,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1314,13 +1314,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/tv-app/tv-common/tv-app.matter b/examples/tv-app/tv-common/tv-app.matter
index 0c023840dd67bf..f143582ea66435 100644
--- a/examples/tv-app/tv-common/tv-app.matter
+++ b/examples/tv-app/tv-common/tv-app.matter
@@ -162,7 +162,7 @@ server cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -176,7 +176,7 @@ client cluster Binding = 30 {
}
server cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -210,11 +210,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -224,12 +224,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -237,7 +237,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -1258,13 +1258,13 @@ client cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1358,13 +1358,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1456,13 +1456,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
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 c3164ada025632..976496d384ae7b 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
@@ -536,7 +536,7 @@ server cluster Descriptor = 29 {
}
server cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -570,11 +570,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -584,12 +584,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -597,7 +597,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -1470,13 +1470,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1568,13 +1568,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/examples/window-app/common/window-app.matter b/examples/window-app/common/window-app.matter
index 29c219b6b6a12f..59ec84ee40d482 100644
--- a/examples/window-app/common/window-app.matter
+++ b/examples/window-app/common/window-app.matter
@@ -262,11 +262,11 @@ server cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -276,12 +276,12 @@ server cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -289,7 +289,7 @@ server cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -449,7 +449,7 @@ server cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1260,13 +1260,13 @@ server cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1361,13 +1361,13 @@ server cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
diff --git a/scripts/idl/README.md b/scripts/idl/README.md
index 42a1a62ae54c5a..78ee9325ddf2e4 100644
--- a/scripts/idl/README.md
+++ b/scripts/idl/README.md
@@ -48,12 +48,14 @@ server cluster AccessControl = 31 {
kGroup = 3;
}
- struct AccessControlEntry {
+ // structures may be fabric scoped by tagging them as 'fabric_scoped'
+ // in a fabric scoped structure, fields may be 'fabric_sensitive'
+ fabric_scoped struct AccessControlEntry {
fabric_idx fabricIndex = 0;
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable INT64U subjects[] = 3; // fields in structures may be lists and
- nullable Target targets[] = 4; // they may have attributes: nullable
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive INT64U subjects[] = 3; // fields in structures may be lists and
+ nullable fabric_sensitive Target targets[] = 4; // they may have attributes: nullable
}
// request structures are regular structures that are used
@@ -94,10 +96,6 @@ server cluster AccessControl = 31 {
// These defaults can be modified to any of view/operate/manage/administer roles.
attribute access(read: manage, write: administer) int32u customAcl = 3;
- // Attributes may be fabric-scoped as well by tagging them as `fabric`.
- fabric readonly attribute int16u myFabricAttr = 22;
- fabric attribute(read: view, write: administer) int16u someFabricRWAttribute = 33;
-
// attributes may be read-only as well
readonly attribute int16u clusterRevision = 65533;
@@ -122,13 +120,13 @@ server cluster AccessControl = 31 {
command access(invoke: administer) Off(): DefaultSuccess = 4;
// command invocation can require timed invoke usage
- timed command RequiresTimedInvok(): DefaultSuccess = 5;
+ timed command access(invoke: administer) RevokeCommissioning(): DefaultSuccess = 2;
// commands may be fabric scoped
- fabric command RequiresTimedInvok(): DefaultSuccess = 6;
+ fabric command ViewGroup(ViewGroupRequest): ViewGroupResponse = 1;
// commands may have multiple attributes
- fabric timed command RequiresTimedInvok(): DefaultSuccess = 7;
+ fabric timed command RequiresTimedInvoke(): DefaultSuccess = 7;
}
// A client cluster represents something that is used by an app
diff --git a/scripts/idl/generators/bridge/__init__.py b/scripts/idl/generators/bridge/__init__.py
index 2b6f8e7b208250..5d0bace9faf431 100644
--- a/scripts/idl/generators/bridge/__init__.py
+++ b/scripts/idl/generators/bridge/__init__.py
@@ -18,11 +18,10 @@
import re
from idl.generators import CodeGenerator, GeneratorStorage
-from idl.matter_idl_types import (Idl, ClusterSide, Field, Attribute, Cluster,
- FieldAttribute, Command, DataType, Struct)
+from idl.matter_idl_types import (Idl, Field, Attribute, Cluster)
from idl import matter_idl_types
from idl.generators.types import (ParseDataType, BasicString, BasicInteger, FundamentalType,
- IdlType, IdlItemType, IdlEnumType, IdlBitmapType, TypeLookupContext)
+ IdlType, IdlEnumType, IdlBitmapType, TypeLookupContext)
from typing import Union, List, Set
diff --git a/scripts/idl/generators/java/__init__.py b/scripts/idl/generators/java/__init__.py
index 6b74579ea6167f..1c749f91cf4552 100644
--- a/scripts/idl/generators/java/__init__.py
+++ b/scripts/idl/generators/java/__init__.py
@@ -14,7 +14,7 @@
# limitations under the License.
from idl.generators import CodeGenerator, GeneratorStorage
-from idl.matter_idl_types import Idl, ClusterSide, Field, Attribute, Cluster, FieldAttribute, Command, DataType
+from idl.matter_idl_types import Idl, ClusterSide, Field, Attribute, Cluster, FieldQuality, Command, DataType
from idl import matter_idl_types
from idl.generators.types import ParseDataType, BasicString, BasicInteger, FundamentalType, IdlType, IdlEnumType, IdlBitmapType, TypeLookupContext
from typing import Union, List, Set
@@ -31,10 +31,10 @@ def FieldToGlobalName(field: Field, context: TypeLookupContext) -> Union[str, No
if field.is_list:
return None # lists are always specific per cluster
- if FieldAttribute.NULLABLE in field.attributes:
+ if FieldQuality.NULLABLE in field.qualities:
return None
- if FieldAttribute.OPTIONAL in field.attributes:
+ if FieldQuality.OPTIONAL in field.qualities:
return None
actual = ParseDataType(field.data_type, context)
diff --git a/scripts/idl/matter_grammar.lark b/scripts/idl/matter_grammar.lark
index eb7afe993e9e61..020283cfbdd807 100644
--- a/scripts/idl/matter_grammar.lark
+++ b/scripts/idl/matter_grammar.lark
@@ -1,4 +1,7 @@
-struct: "struct"i id "{" (struct_field ";")* "}"
+struct: struct_qualities "struct"i id "{" (struct_field ";")* "}"
+struct_quality: "fabric_scoped"i -> struct_fabric_scoped
+struct_qualities: struct_quality*
+
enum: "enum"i id ":" type "{" constant_entry* "}"
bitmap: "bitmap"i id ":" type "{" constant_entry* "}"
@@ -14,7 +17,10 @@ event_access: "access" "(" ("read" ":" access_privilege)? ")"
event_with_access: "event" event_access? id
-event: event_priority event_with_access "=" positive_integer "{" (struct_field ";")* "}"
+event: event_qualities event_priority event_with_access "=" positive_integer "{" (struct_field ";")* "}"
+
+event_quality: "fabric_sensitive" -> event_fabric_sensitive
+event_qualities: event_quality*
?event_priority: "critical"i -> critical_priority
| "info"i -> info_priority
@@ -26,27 +32,25 @@ attribute_access: "access"i "(" (attribute_access_entry ("," attribute_access_en
attribute_with_access: attribute_access? struct_field
-shared_tag: "fabric"i -> shared_tag_fabric
-shared_tags: shared_tag* -> shared_tags
-
-attribute: shared_tags attribute_tags "attribute"i attribute_with_access ";"
-attribute_tag: "readonly"i -> attr_readonly
- | "nosubscribe"i -> attr_nosubscribe
-attribute_tags: attribute_tag* -> attribute_tags
+attribute: attribute_qualities "attribute"i attribute_with_access ";"
+attribute_quality: "readonly"i -> attr_readonly
+ | "nosubscribe"i -> attr_nosubscribe
+attribute_qualities: attribute_quality* -> attribute_qualities
request_struct: "request"i struct
// Response structures must have a response id
response_struct: "response"i "struct"i id "=" positive_integer "{" (struct_field ";") * "}"
-command_attribute: "timed"i -> timed_command
-command_attributes: command_attribute*
+command_quality: "timed"i -> timed_command
+ | "fabric"i -> fabric_scoped_command
+command_qualities: command_quality*
command_access: "access"i "(" ("invoke"i ":" access_privilege)? ")"
command_with_access: "command"i command_access? id
-command: shared_tags command_attributes command_with_access "(" id? ")" ":" id "=" positive_integer ";"
+command: command_qualities command_with_access "(" id? ")" ":" id "=" positive_integer ";"
cluster: cluster_side "cluster"i id "=" positive_integer "{" (enum|bitmap|event|attribute|struct|request_struct|response_struct|command)* "}"
?cluster_side: "server"i -> server_cluster
@@ -79,6 +83,7 @@ struct_field: member_attribute* field
member_attribute: "optional"i -> optional
| "nullable"i -> nullable
+ | "fabric_sensitive"i -> fabric_sensitive
field: data_type id list_marker? "=" positive_integer
list_marker: "[" "]"
diff --git a/scripts/idl/matter_idl_parser.py b/scripts/idl/matter_idl_parser.py
index 643505c059bad5..a37dfb0a0e3586 100755
--- a/scripts/idl/matter_idl_parser.py
+++ b/scripts/idl/matter_idl_parser.py
@@ -16,10 +16,6 @@
from matter_idl_types import *
-class SharedTag(enum.Enum):
- FABRIC_SCOPED = enum.auto()
-
-
class AddServerClusterToEndpointTransform:
"""Provides an 'apply' method that can be run on endpoints
to add a server cluster to the given endpoint.
@@ -133,12 +129,6 @@ def data_type(self, tokens):
else:
raise Error("Unexpected size for data type")
- def shared_tag_fabric(self, _):
- return SharedTag.FABRIC_SCOPED
-
- def shared_tags(self, entries):
- return entries
-
@v_args(inline=True)
def constant_entry(self, id, number):
return ConstantEntry(name=id, code=number)
@@ -159,19 +149,28 @@ def field(self, args):
return Field(data_type=data_type, name=name, code=code, is_list=is_list)
def optional(self, _):
- return FieldAttribute.OPTIONAL
+ return FieldQuality.OPTIONAL
def nullable(self, _):
- return FieldAttribute.NULLABLE
+ return FieldQuality.NULLABLE
+
+ def fabric_sensitive(self, _):
+ return FieldQuality.FABRIC_SENSITIVE
def attr_readonly(self, _):
- return AttributeTag.READABLE
+ return AttributeQuality.READABLE
def attr_nosubscribe(self, _):
- return AttributeTag.NOSUBSCRIBE
+ return AttributeQuality.NOSUBSCRIBE
+
+ def attribute_qualities(self, qualities):
+ return qualities
+
+ def struct_fabric_scoped(self, _):
+ return StructQuality.FABRIC_SCOPED
- def attribute_tags(self, tags):
- return tags
+ def struct_qualities(self, qualities):
+ return qualities
def critical_priority(self, _):
return EventPriority.CRITICAL
@@ -182,18 +181,27 @@ def info_priority(self, _):
def debug_priority(self, _):
return EventPriority.DEBUG
+ def event_fabric_sensitive(self, _):
+ return EventQuality.FABRIC_SENSITIVE
+
+ def event_qualities(selt, qualities):
+ return set(qualities)
+
def timed_command(self, _):
- return CommandAttribute.TIMED_INVOKE
+ return CommandQuality.TIMED_INVOKE
- def command_attributes(self, attrs):
+ def fabric_scoped_command(self, _):
+ return CommandQuality.FABRIC_SCOPED
+
+ def command_qualities(self, attrs):
# List because attrs is a tuple
return set(list(attrs))
def struct_field(self, args):
# Last argument is the named_member, the rest
- # are attributes
+ # are qualities
field = args[-1]
- field.attributes = set(args[:-1])
+ field.qualities = set(args[:-1])
return field
def server_cluster(self, _):
@@ -218,22 +226,15 @@ def command_with_access(self, args):
return init_args
def command(self, args):
- # The command takes 5 arguments if no input argument, 6 if input
+ # The command takes 4 arguments if no input argument, 5 if input
# argument is provided
- if len(args) != 6:
- args.insert(3, None)
-
- attr = args[1] # direct command attributes
- for shared_attr in args[0]:
- if shared_attr == SharedTag.FABRIC_SCOPED:
- attr.add(CommandAttribute.FABRIC_SCOPED)
- else:
- raise Exception("Unknown shared tag: %r" % shared_attr)
+ if len(args) != 5:
+ args.insert(2, None)
return Command(
- attributes=attr,
- input_param=args[3], output_param=args[4], code=args[5],
- **args[2]
+ qualities=args[0],
+ input_param=args[2], output_param=args[3], code=args[4],
+ **args[1]
)
def event_access(self, privilege):
@@ -252,7 +253,7 @@ def event_with_access(self, args):
return init_args
def event(self, args):
- return Event(priority=args[0], code=args[2], fields=args[3:], **args[1])
+ return Event(qualities=args[0], priority=args[1], code=args[3], fields=args[4:], **args[2])
def view_privilege(self, args):
return AccessPrivilege.VIEW
@@ -315,29 +316,23 @@ def ESCAPED_STRING(self, s):
return s.value[1:-1].encode('utf-8').decode('unicode-escape')
@v_args(inline=True)
- def attribute(self, shared_tags, tags, definition_tuple):
+ def attribute(self, qualities, definition_tuple):
- tags = set(tags)
+ qualities = set(qualities)
(definition, acl) = definition_tuple
- for shared_attr in shared_tags:
- if shared_attr == SharedTag.FABRIC_SCOPED:
- tags.add(AttributeTag.FABRIC_SCOPED)
- else:
- raise Exception("Unknown shared tag: %r" % shared_attr)
-
# until we support write only (and need a bit of a reshuffle)
# if the 'attr_readonly == READABLE' is not in the list, we make things
# read/write
- if AttributeTag.READABLE not in tags:
- tags.add(AttributeTag.READABLE)
- tags.add(AttributeTag.WRITABLE)
+ if AttributeQuality.READABLE not in qualities:
+ qualities.add(AttributeQuality.READABLE)
+ qualities.add(AttributeQuality.WRITABLE)
- return Attribute(definition=definition, tags=tags, **acl)
+ return Attribute(definition=definition, qualities=qualities, **acl)
@v_args(inline=True)
- def struct(self, id, *fields):
- return Struct(name=id, fields=list(fields))
+ def struct(self, qualities, id, *fields):
+ return Struct(name=id, qualities=set(qualities), fields=list(fields))
@v_args(inline=True)
def request_struct(self, value):
diff --git a/scripts/idl/matter_idl_types.py b/scripts/idl/matter_idl_types.py
index ca2b4d955c0be4..99b06eb830ce3f 100644
--- a/scripts/idl/matter_idl_types.py
+++ b/scripts/idl/matter_idl_types.py
@@ -21,21 +21,25 @@ def __init__(self, meta: Meta = None, line: int = None, column: int = None):
self.column = column
-class FieldAttribute(enum.Enum):
+class StructQuality(enum.Enum):
+ FABRIC_SCOPED = enum.auto()
+
+
+class FieldQuality(enum.Enum):
OPTIONAL = enum.auto()
NULLABLE = enum.auto()
+ FABRIC_SENSITIVE = enum.auto()
-class CommandAttribute(enum.Enum):
+class CommandQuality(enum.Enum):
TIMED_INVOKE = enum.auto()
FABRIC_SCOPED = enum.auto()
-class AttributeTag(enum.Enum):
+class AttributeQuality(enum.Enum):
READABLE = enum.auto()
WRITABLE = enum.auto()
NOSUBSCRIBE = enum.auto()
- FABRIC_SCOPED = enum.auto()
class AttributeStorage(enum.Enum):
@@ -50,6 +54,10 @@ class EventPriority(enum.Enum):
CRITICAL = enum.auto()
+class EventQuality(enum.Enum):
+ FABRIC_SENSITIVE = enum.auto()
+
+
class ClusterSide(enum.Enum):
CLIENT = enum.auto()
SERVER = enum.auto()
@@ -91,36 +99,36 @@ class Field:
code: int
name: str
is_list: bool = False
- attributes: Set[FieldAttribute] = field(default_factory=set)
+ qualities: Set[FieldQuality] = field(default_factory=set)
@property
def is_optional(self):
- return FieldAttribute.OPTIONAL in self.attributes
+ return FieldQuality.OPTIONAL in self.qualities
@property
def is_nullable(self):
- return FieldAttribute.NULLABLE in self.attributes
+ return FieldQuality.NULLABLE in self.qualities
@dataclass
class Attribute:
definition: Field
- tags: Set[AttributeTag] = field(default_factory=set)
+ qualities: Set[AttributeQuality] = field(default_factory=set)
readacl: AccessPrivilege = AccessPrivilege.VIEW
writeacl: AccessPrivilege = AccessPrivilege.OPERATE
default: Optional[Union[str, int]] = None
@property
def is_readable(self):
- return AttributeTag.READABLE in self.tags
+ return AttributeQuality.READABLE in self.qualities
@property
def is_writable(self):
- return AttributeTag.WRITABLE in self.tags
+ return AttributeQuality.WRITABLE in self.qualities
@property
def is_subscribable(self):
- return AttributeTag.NOSUBSCRIBE not in self.tags
+ return AttributeQuality.NOSUBSCRIBE not in self.qualities
@dataclass
@@ -129,6 +137,7 @@ class Struct:
fields: List[Field]
tag: Optional[StructTag] = None
code: Optional[int] = None # for responses only
+ qualities: Set[StructQuality] = field(default_factory=set)
@dataclass
@@ -138,6 +147,11 @@ class Event:
code: int
fields: List[Field]
readacl: AccessPrivilege = AccessPrivilege.VIEW
+ qualities: Set[EventQuality] = field(default_factory=set)
+
+ @property
+ def is_fabric_sensitive(self):
+ return EventQuality.FABRIC_SENSITIVE in self.qualities
@dataclass
@@ -166,12 +180,12 @@ class Command:
code: int
input_param: Optional[str]
output_param: str
- attributes: Set[CommandAttribute] = field(default_factory=set)
+ qualities: Set[CommandQuality] = field(default_factory=set)
invokeacl: AccessPrivilege = AccessPrivilege.OPERATE
@property
def is_timed_invoke(self):
- return CommandAttribute.TIMED_INVOKE in self.attributes
+ return CommandQuality.TIMED_INVOKE in self.qualities
@dataclass
diff --git a/scripts/idl/test_matter_idl_parser.py b/scripts/idl/test_matter_idl_parser.py
index 6f4e9faa2fb41b..36d5c087ea58f4 100755
--- a/scripts/idl/test_matter_idl_parser.py
+++ b/scripts/idl/test_matter_idl_parser.py
@@ -79,12 +79,35 @@ def test_global_struct(self):
fields=[
Field(
data_type=DataType(name="CHAR_STRING"), code=1, name="astring", ),
- Field(data_type=DataType(name="CLUSTER_ID"), code=2, name="idlist", is_list=True, attributes=set(
- [FieldAttribute.OPTIONAL])),
- Field(data_type=DataType(name="int"), code=0x123, name="valueThatIsNullable", attributes=set(
- [FieldAttribute.NULLABLE])),
+ Field(data_type=DataType(name="CLUSTER_ID"), code=2, name="idlist", is_list=True, qualities=set(
+ [FieldQuality.OPTIONAL])),
+ Field(data_type=DataType(name="int"), code=0x123, name="valueThatIsNullable", qualities=set(
+ [FieldQuality.NULLABLE])),
Field(data_type=DataType(name="char_string", max_length=123),
- code=222, name="sized_string", attributes=set()),
+ code=222, name="sized_string", qualities=set()),
+ ])]
+ )
+ self.assertEqual(actual, expected)
+
+ def test_fabric_scoped_struct(self):
+ actual = parseText("""
+ fabric_scoped struct FabricStruct {
+ CHAR_STRING astring = 1;
+ optional CLUSTER_ID idlist[] = 2;
+ nullable fabric_sensitive int nullablesensitive = 0x123;
+ }
+ """)
+
+ expected = Idl(structs=[
+ Struct(name='FabricStruct',
+ qualities={StructQuality.FABRIC_SCOPED},
+ fields=[
+ Field(
+ data_type=DataType(name="CHAR_STRING"), code=1, name="astring", ),
+ Field(data_type=DataType(name="CLUSTER_ID"), code=2, name="idlist", is_list=True, qualities=set(
+ [FieldQuality.OPTIONAL])),
+ Field(data_type=DataType(name="int"), code=0x123, name="nullablesensitive", qualities=set(
+ [FieldQuality.NULLABLE, FieldQuality.FABRIC_SENSITIVE])),
])]
)
self.assertEqual(actual, expected)
@@ -96,7 +119,6 @@ def test_cluster_attribute(self):
attribute int32u rwAttr[] = 123;
readonly nosubscribe attribute int8s nosub[] = 0xaa;
readonly attribute nullable int8s isNullable = 0xab;
- fabric readonly attribute int8s fabric_attr = 0x1234;
}
""")
@@ -105,16 +127,14 @@ def test_cluster_attribute(self):
name="MyCluster",
code=0x321,
attributes=[
- Attribute(tags=set([AttributeTag.READABLE]), definition=Field(
+ Attribute(qualities=set([AttributeQuality.READABLE]), definition=Field(
data_type=DataType(name="int8u"), code=1, name="roAttr")),
- Attribute(tags=set([AttributeTag.READABLE, AttributeTag.WRITABLE]), definition=Field(
+ Attribute(qualities=set([AttributeQuality.READABLE, AttributeQuality.WRITABLE]), definition=Field(
data_type=DataType(name="int32u"), code=123, name="rwAttr", is_list=True)),
- Attribute(tags=set([AttributeTag.NOSUBSCRIBE, AttributeTag.READABLE]), definition=Field(
+ Attribute(qualities=set([AttributeQuality.NOSUBSCRIBE, AttributeQuality.READABLE]), definition=Field(
data_type=DataType(name="int8s"), code=0xAA, name="nosub", is_list=True)),
- Attribute(tags=set([AttributeTag.READABLE]), definition=Field(
- data_type=DataType(name="int8s"), code=0xAB, name="isNullable", attributes=set([FieldAttribute.NULLABLE]))),
- Attribute(tags=set([AttributeTag.READABLE, AttributeTag.FABRIC_SCOPED]), definition=Field(
- data_type=DataType(name="int8s"), code=0x1234, name="fabric_attr"))
+ Attribute(qualities=set([AttributeQuality.READABLE]), definition=Field(
+ data_type=DataType(name="int8s"), code=0xAB, name="isNullable", qualities=set([FieldQuality.NULLABLE]))),
]
)])
self.assertEqual(actual, expected)
@@ -132,9 +152,9 @@ def test_sized_attribute(self):
name="MyCluster",
code=1,
attributes=[
- Attribute(tags=set([AttributeTag.READABLE, AttributeTag.WRITABLE]), definition=Field(
+ Attribute(qualities=set([AttributeQuality.READABLE, AttributeQuality.WRITABLE]), definition=Field(
data_type=DataType(name="char_string", max_length=11), code=1, name="attr1")),
- Attribute(tags=set([AttributeTag.READABLE, AttributeTag.WRITABLE]), definition=Field(
+ Attribute(qualities=set([AttributeQuality.READABLE, AttributeQuality.WRITABLE]), definition=Field(
data_type=DataType(name="octet_string", max_length=33), code=2, name="attr2", is_list=True)),
]
)])
@@ -148,7 +168,6 @@ def test_attribute_access(self):
attribute access(read: manage) int8s attr3 = 3;
attribute access(write: administer) int8s attr4 = 4;
attribute access(read: operate, write: manage) int8s attr5 = 5;
- fabric attribute access(read: view, write: administer) int16u attr6 = 6;
}
""")
@@ -157,34 +176,29 @@ def test_attribute_access(self):
name="MyCluster",
code=1,
attributes=[
- Attribute(tags=set([AttributeTag.READABLE, AttributeTag.WRITABLE]), definition=Field(
+ Attribute(qualities=set([AttributeQuality.READABLE, AttributeQuality.WRITABLE]), definition=Field(
data_type=DataType(name="int8s"), code=1, name="attr1"),
readacl=AccessPrivilege.VIEW,
writeacl=AccessPrivilege.OPERATE
),
- Attribute(tags=set([AttributeTag.READABLE, AttributeTag.WRITABLE]), definition=Field(
+ Attribute(qualities=set([AttributeQuality.READABLE, AttributeQuality.WRITABLE]), definition=Field(
data_type=DataType(name="int8s"), code=2, name="attr2"),
readacl=AccessPrivilege.VIEW,
writeacl=AccessPrivilege.OPERATE
),
- Attribute(tags=set([AttributeTag.READABLE, AttributeTag.WRITABLE]), definition=Field(
+ Attribute(qualities=set([AttributeQuality.READABLE, AttributeQuality.WRITABLE]), definition=Field(
data_type=DataType(name="int8s"), code=3, name="attr3"),
readacl=AccessPrivilege.MANAGE
),
- Attribute(tags=set([AttributeTag.READABLE, AttributeTag.WRITABLE]), definition=Field(
+ Attribute(qualities=set([AttributeQuality.READABLE, AttributeQuality.WRITABLE]), definition=Field(
data_type=DataType(name="int8s"), code=4, name="attr4"),
writeacl=AccessPrivilege.ADMINISTER
),
- Attribute(tags=set([AttributeTag.READABLE, AttributeTag.WRITABLE]), definition=Field(
+ Attribute(qualities=set([AttributeQuality.READABLE, AttributeQuality.WRITABLE]), definition=Field(
data_type=DataType(name="int8s"), code=5, name="attr5"),
readacl=AccessPrivilege.OPERATE,
writeacl=AccessPrivilege.MANAGE
),
- Attribute(tags=set([AttributeTag.READABLE, AttributeTag.WRITABLE, AttributeTag.FABRIC_SCOPED]), definition=Field(
- data_type=DataType(name="int16u"), code=6, name="attr6"),
- readacl=AccessPrivilege.VIEW,
- writeacl=AccessPrivilege.ADMINISTER
- ),
]
)])
self.assertEqual(actual, expected)
@@ -220,13 +234,13 @@ def test_cluster_commands(self):
input_param="InParam", output_param="OutParam"),
Command(name="TimedCommand", code=0xab,
input_param="InParam", output_param="DefaultSuccess",
- attributes=set([CommandAttribute.TIMED_INVOKE])),
+ qualities=set([CommandQuality.TIMED_INVOKE])),
Command(name="FabricScopedCommand", code=0xac,
input_param="InParam", output_param="DefaultSuccess",
- attributes=set([CommandAttribute.FABRIC_SCOPED])),
+ qualities=set([CommandQuality.FABRIC_SCOPED])),
Command(name="FabricScopedTimedCommand", code=0xad,
input_param="InParam", output_param="DefaultSuccess",
- attributes=set([CommandAttribute.TIMED_INVOKE, CommandAttribute.FABRIC_SCOPED])),
+ qualities=set([CommandQuality.TIMED_INVOKE, CommandQuality.FABRIC_SCOPED])),
],
)])
self.assertEqual(actual, expected)
@@ -258,7 +272,7 @@ def test_cluster_command_access(self):
Command(name="TimedCommand", code=2,
input_param="InParam", output_param="OutParam",
invokeacl=AccessPrivilege.MANAGE,
- attributes=set([CommandAttribute.TIMED_INVOKE])),
+ qualities=set([CommandQuality.TIMED_INVOKE])),
Command(name="OutOnly", code=3,
input_param=None, output_param="OutParam",
invokeacl=AccessPrivilege.ADMINISTER,
@@ -359,6 +373,28 @@ def test_cluster_event_acl(self):
])])
self.assertEqual(actual, expected)
+ def test_fabric_sensitive_event(self):
+ actual = parseText("""
+ client cluster EventTester = 0x123 {
+ fabric_sensitive info event Hello = 1 {}
+ fabric_sensitive debug event access(read: manage) GoodBye = 2 {}
+ fabric_sensitive debug event access(read: administer) AdminEvent = 3 {}
+ }
+ """)
+ expected = Idl(clusters=[
+ Cluster(side=ClusterSide.CLIENT,
+ name="EventTester",
+ code=0x123,
+ events=[
+ Event(priority=EventPriority.INFO, readacl=AccessPrivilege.VIEW,
+ name="Hello", code=1, fields=[], qualities={EventQuality.FABRIC_SENSITIVE}),
+ Event(priority=EventPriority.DEBUG, readacl=AccessPrivilege.MANAGE,
+ name="GoodBye", code=2, fields=[], qualities={EventQuality.FABRIC_SENSITIVE}),
+ Event(priority=EventPriority.DEBUG, readacl=AccessPrivilege.ADMINISTER,
+ name="AdminEvent", code=3, fields=[], qualities={EventQuality.FABRIC_SENSITIVE}),
+ ])])
+ self.assertEqual(actual, expected)
+
def test_parsing_metadata_for_cluster(self):
actual = CreateParser(skip_meta=False).parse("""
server cluster A = 1 { /* Test comment */ }
diff --git a/scripts/idl/test_xml_parser.py b/scripts/idl/test_xml_parser.py
index 31c49c731d6ea5..ea380224cb512f 100755
--- a/scripts/idl/test_xml_parser.py
+++ b/scripts/idl/test_xml_parser.py
@@ -87,11 +87,11 @@ def testCluster(self):
code=0x1234,
attributes=[
Attribute(definition=Field(data_type=DataType(name='INT32U'), code=11, name='SomeIntAttribute',
- attributes={FieldAttribute.NULLABLE}), tags={AttributeTag.READABLE},
+ qualities={FieldQuality.NULLABLE}), qualities={AttributeQuality.READABLE},
readacl=AccessPrivilege.VIEW, writeacl=AccessPrivilege.OPERATE),
Attribute(definition=Field(data_type=DataType(name='INT8U'), code=22, name='AttributeWithAccess',
- attributes={FieldAttribute.OPTIONAL}),
- tags={AttributeTag.READABLE, AttributeTag.WRITABLE}, readacl=AccessPrivilege.OPERATE,
+ qualities={FieldQuality.OPTIONAL}),
+ qualities={AttributeQuality.READABLE, AttributeQuality.WRITABLE}, readacl=AccessPrivilege.OPERATE,
writeacl=AccessPrivilege.MANAGE)
],
structs=[
@@ -106,7 +106,7 @@ def testCluster(self):
Field(data_type=DataType(name='INT8U'), code=1,
name='dataPoint1'),
Field(data_type=DataType(name='INT8U'), code=2, name='dataPoint2',
- attributes={FieldAttribute.OPTIONAL})
+ qualities={FieldQuality.OPTIONAL})
],
tag=StructTag.RESPONSE, code=0x44)
],
@@ -146,6 +146,60 @@ def testBitmap(self):
Cluster(side=ClusterSide.CLIENT, name='Test2', code=2, bitmaps=[bitmap]),
]))
+ def testFabricScopedAndSensitive(self):
+ idl = XmlToIdl('''
+
+
+ Test Cluster
+ 0x0001
+
+
+ This is a test event
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ''')
+ self.assertEqual(idl,
+ Idl(clusters=[Cluster(side=ClusterSide.CLIENT,
+ name='TestCluster',
+ code=1,
+ events=[Event(priority=EventPriority.INFO,
+ name='FabricEvent',
+ code=0x1234,
+ fields=[Field(data_type=DataType(name='node_id'),
+ code=1,
+ name='AdminNodeID',
+ qualities={FieldQuality.NULLABLE})],
+ readacl=AccessPrivilege.ADMINISTER,
+ qualities={EventQuality.FABRIC_SENSITIVE})],
+ structs=[Struct(name='FabricStruct',
+ fields=[Field(data_type=DataType(name='int32u'),
+ code=1,
+ name='Field1',
+ qualities={FieldQuality.FABRIC_SENSITIVE}),
+ Field(data_type=DataType(name='int32u'),
+ code=3,
+ name='Field3',
+ qualities={FieldQuality.FABRIC_SENSITIVE}),
+ Field(data_type=DataType(name='int32u',
+ max_length=None),
+ code=10,
+ name='Field10')],
+ qualities={StructQuality.FABRIC_SCOPED})],
+ )]))
+
def testStruct(self):
idl = XmlToIdl('''
@@ -170,6 +224,7 @@ def testStruct(self):
''')
struct = Struct(
name='SomeStruct',
+ qualities={StructQuality.FABRIC_SCOPED},
fields=[
Field(data_type=DataType(name='int16u'), code=1, name='FirstMember'),
Field(data_type=DataType(name='int32u'), code=2, name='SecondMember')
@@ -186,9 +241,9 @@ def testStruct(self):
data_type=DataType(name='SomeStruct'),
code=123,
name='FabricAttribute',
- attributes={FieldAttribute.NULLABLE}
+ qualities={FieldQuality.NULLABLE}
),
- tags={AttributeTag.READABLE, AttributeTag.FABRIC_SCOPED},
+ qualities={AttributeQuality.READABLE},
readacl=AccessPrivilege.VIEW,
writeacl=AccessPrivilege.OPERATE)]), ]))
@@ -236,7 +291,7 @@ def testSkipsNotProcessedFields(self):
code=0,
name='Type',
),
- tags={AttributeTag.READABLE},
+ qualities={AttributeQuality.READABLE},
readacl=AccessPrivilege.VIEW,
writeacl=AccessPrivilege.OPERATE)]), ]))
diff --git a/scripts/idl/zapxml/handlers/handlers.py b/scripts/idl/zapxml/handlers/handlers.py
index a27f48970342f8..a0f0978df8a0f3 100644
--- a/scripts/idl/zapxml/handlers/handlers.py
+++ b/scripts/idl/zapxml/handlers/handlers.py
@@ -78,6 +78,9 @@ def __init__(self, context: Context, cluster: Cluster, attrs):
fields=[],
)
+ if attrs.get('isFabricSensitive', "false").lower() == 'true':
+ self._event.qualities.add(EventQuality.FABRIC_SENSITIVE)
+
def GetNextProcessor(self, name: str, attrs):
if name.lower() == 'field':
data_type = DataType(name=attrs['type'])
@@ -92,10 +95,10 @@ def GetNextProcessor(self, name: str, attrs):
)
if attrs.get('optional', "false").lower() == 'true':
- field.attributes.add(FieldAttribute.OPTIONAL)
+ field.qualities.add(FieldQuality.OPTIONAL)
if attrs.get('isNullable', "false").lower() == 'true':
- field.attributes.add(FieldAttribute.NULLABLE)
+ field.qualities.add(FieldQuality.NULLABLE)
self._event.fields.append(field)
return BaseHandler(self.context, handled=HandledDepth.SINGLE_TAG)
@@ -121,11 +124,12 @@ def __init__(self, context: Context, cluster: Cluster, attrs):
def GetNextProcessor(self, name: str, attrs):
if name.lower() == 'access':
+ # Modifier not currently used: fabric scoped exists on the structure itself.
if 'modifier' in attrs:
if attrs['modifier'] != 'fabric-scoped':
raise Exception("UNKNOWN MODIFIER: %s" % attrs['modifier'])
- self._attribute.tags.add(AttributeTag.FABRIC_SCOPED)
- else:
+
+ if ('role' in attrs) or ('privilege' in attrs):
role = AttrsToAccessPrivilege(attrs)
if attrs['op'] == 'read':
@@ -134,6 +138,7 @@ def GetNextProcessor(self, name: str, attrs):
self._attribute.writeacl = role
else:
logging.error("Unknown access: %r" % attrs['op'])
+
return BaseHandler(self.context, handled=HandledDepth.SINGLE_TAG)
elif name.lower() == 'description':
return AttributeDescriptionHandler(self.context, self._attribute)
@@ -168,7 +173,8 @@ def __init__(self, context: Context, attrs):
# - tag not set because not a request/response
# - code not set because not a response
- self._is_fabric_scoped = (attrs.get('isFabricScoped', "false").lower() == 'true')
+ if attrs.get('isFabricScoped', "false").lower() == 'true':
+ self._struct.qualities.add(StructQuality.FABRIC_SCOPED)
def GetNextProcessor(self, name: str, attrs):
if name.lower() == 'item':
@@ -176,9 +182,6 @@ def GetNextProcessor(self, name: str, attrs):
name=attrs['type']
)
- # TODO(#22938): IDL should keep track and use the
- # isFabricSensitive attribute here
-
if 'fieldId' in attrs:
self._field_index = ParseInt(attrs['fieldId'])
else:
@@ -197,10 +200,13 @@ def GetNextProcessor(self, name: str, attrs):
)
if attrs.get('optional', "false").lower() == 'true':
- field.attributes.add(FieldAttribute.OPTIONAL)
+ field.qualities.add(FieldQuality.OPTIONAL)
if attrs.get('isNullable', "false").lower() == 'true':
- field.attributes.add(FieldAttribute.NULLABLE)
+ field.qualities.add(FieldQuality.NULLABLE)
+
+ if attrs.get('isFabricSensitive', "false").lower() == 'true':
+ field.qualities.add(FieldQuality.FABRIC_SENSITIVE)
self._struct.fields.append(field)
return BaseHandler(self.context, handled=HandledDepth.SINGLE_TAG)
@@ -228,14 +234,6 @@ def FinalizeProcessing(self, idl: Idl):
else:
idl.structs.append(self._struct)
- # Secondary processing, for fabric scoped:
- # while ZAP XML maintains these at a struct level. Update attributes
- if self._is_fabric_scoped:
- for cluster in idl.clusters:
- for attribute in cluster.attributes:
- if self._struct.name == attribute.definition.data_type.name:
- attribute.tags.add(AttributeTag.FABRIC_SCOPED)
-
def EndProcessing(self):
self.context.AddIdlPostProcessor(self)
@@ -371,10 +369,10 @@ def __init__(self, context: Context, cluster: Cluster, attrs):
)
if attrs.get('isFabricScoped', 'false') == 'true':
- self._command.attributes.add(CommandAttribute.FABRIC_SCOPED)
+ self._command.qualities.add(CommandQuality.FABRIC_SCOPED)
if attrs.get('mustUseTimedInvoke', 'false') == 'true':
- self._command.attributes.add(CommandAttribute.TIMED_INVOKE)
+ self._command.qualities.add(CommandQuality.TIMED_INVOKE)
else:
self._struct.tag = StructTag.RESPONSE
@@ -396,10 +394,10 @@ def GetArgumentField(self, attrs):
)
if attrs.get('optional', "false").lower() == 'true':
- field.attributes.add(FieldAttribute.OPTIONAL)
+ field.qualities.add(FieldQuality.OPTIONAL)
if attrs.get('isNullable', "false").lower() == 'true':
- field.attributes.add(FieldAttribute.NULLABLE)
+ field.qualities.add(FieldQuality.NULLABLE)
return field
diff --git a/scripts/idl/zapxml/handlers/parsing.py b/scripts/idl/zapxml/handlers/parsing.py
index d5b45dc722a632..09deee57400d63 100644
--- a/scripts/idl/zapxml/handlers/parsing.py
+++ b/scripts/idl/zapxml/handlers/parsing.py
@@ -73,16 +73,16 @@ def AttrsToAttribute(attrs) -> Attribute:
attribute = Attribute(definition=field)
if attrs.get('optional', "false").lower() == 'true':
- attribute.definition.attributes.add(FieldAttribute.OPTIONAL)
+ attribute.definition.qualities.add(FieldQuality.OPTIONAL)
if attrs.get('isNullable', "false").lower() == 'true':
- attribute.definition.attributes.add(FieldAttribute.NULLABLE)
+ attribute.definition.qualities.add(FieldQuality.NULLABLE)
if attrs.get('readable', "true").lower() == 'true':
- attribute.tags.add(AttributeTag.READABLE)
+ attribute.qualities.add(AttributeQuality.READABLE)
if attrs.get('writable', "false").lower() == 'true':
- attribute.tags.add(AttributeTag.WRITABLE)
+ attribute.qualities.add(AttributeQuality.WRITABLE)
# TODO(#22937): NOSUBSCRIBE attribute tag is not available - could find no
# clear source to get this info.
diff --git a/src/app/zap-templates/partials/idl/structure_definition.zapt b/src/app/zap-templates/partials/idl/structure_definition.zapt
index 9d58faef6735be..453efe65d9cdbb 100644
--- a/src/app/zap-templates/partials/idl/structure_definition.zapt
+++ b/src/app/zap-templates/partials/idl/structure_definition.zapt
@@ -1,8 +1,6 @@
-{{! TODO: IDL consumers can't parse the square bracket syntax }}
-{{#if isFabricScoped_DISABLED_FOR_NOW}}
-{{indent extraIndent~}} [fabric_scoped_by=FabricIndex]
-{{/if}}
-{{indent extraIndent~}} struct {{name}} {
+{{indent extraIndent~}}
+{{#if isFabricScoped~}} fabric_scoped {{/if~}}
+struct {{name}} {
{{#zcl_struct_items}}
{{indent extraIndent~}} {{> idl_structure_member}}
{{/zcl_struct_items}}
diff --git a/src/app/zap-templates/partials/idl/structure_member.zapt b/src/app/zap-templates/partials/idl/structure_member.zapt
index 142c0ad8abadff..09e08fce64639d 100644
--- a/src/app/zap-templates/partials/idl/structure_member.zapt
+++ b/src/app/zap-templates/partials/idl/structure_member.zapt
@@ -1,5 +1,6 @@
{{~#if isOptional~}} optional {{/if~}}
{{~#if isNullable~}} nullable {{/if~}}
+{{~#if isFabricSensitive~}} fabric_sensitive {{/if~}}
{{type}}
{{~#unless isArray~}}
diff --git a/src/app/zap-templates/templates/app/MatterIDL.zapt b/src/app/zap-templates/templates/app/MatterIDL.zapt
index 12272b992122e1..f7d77fec087a1c 100644
--- a/src/app/zap-templates/templates/app/MatterIDL.zapt
+++ b/src/app/zap-templates/templates/app/MatterIDL.zapt
@@ -30,7 +30,7 @@
{{/chip_cluster_specific_structs}}
{{#zcl_events}}
- {{priority}} event {{!ensure space}}
+ {{#if isFabricSensitive}}fabric_sensitive {{/if~}} {{priority}} event {{!ensure space}}
{{~#chip_access_elements entity="event"~}}
{{~#first~}}access({{~/first~}}
{{~#not_first~}}, {{/not_first~}}
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index 60bd47c8466b9e..628c92ec9038a3 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -428,7 +428,7 @@ client cluster Descriptor = 29 {
}
client cluster Binding = 30 {
- struct TargetStruct {
+ fabric_scoped struct TargetStruct {
optional node_id node = 1;
optional group_id group = 2;
optional endpoint_no endpoint = 3;
@@ -465,11 +465,11 @@ client cluster AccessControl = 31 {
kAdminister = 5;
}
- struct AccessControlEntry {
- Privilege privilege = 1;
- AuthMode authMode = 2;
- nullable int64u subjects[] = 3;
- nullable Target targets[] = 4;
+ fabric_scoped struct AccessControlEntry {
+ fabric_sensitive Privilege privilege = 1;
+ fabric_sensitive AuthMode authMode = 2;
+ nullable fabric_sensitive int64u subjects[] = 3;
+ nullable fabric_sensitive Target targets[] = 4;
fabric_idx fabricIndex = 254;
}
@@ -479,12 +479,12 @@ client cluster AccessControl = 31 {
nullable devtype_id deviceType = 2;
}
- struct ExtensionEntry {
- octet_string<128> data = 1;
+ fabric_scoped struct ExtensionEntry {
+ fabric_sensitive octet_string<128> data = 1;
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlEntryChanged = 0 {
+ fabric_sensitive info event access(read: administer) AccessControlEntryChanged = 0 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -492,7 +492,7 @@ client cluster AccessControl = 31 {
fabric_idx fabricIndex = 254;
}
- info event access(read: administer) AccessControlExtensionChanged = 1 {
+ fabric_sensitive info event access(read: administer) AccessControlExtensionChanged = 1 {
nullable node_id adminNodeID = 1;
nullable INT16U adminPasscodeID = 2;
ChangeTypeEnum changeType = 3;
@@ -815,7 +815,7 @@ client cluster OtaSoftwareUpdateRequestor = 42 {
kDelayedOnUserConsent = 8;
}
- struct ProviderLocation {
+ fabric_scoped struct ProviderLocation {
node_id providerNodeID = 1;
endpoint_no endpoint = 2;
fabric_idx fabricIndex = 254;
@@ -1801,13 +1801,13 @@ client cluster OperationalCredentials = 62 {
kInvalidFabricIndex = 11;
}
- struct NOCStruct {
- octet_string noc = 1;
- nullable octet_string icac = 2;
+ fabric_scoped struct NOCStruct {
+ fabric_sensitive octet_string noc = 1;
+ nullable fabric_sensitive octet_string icac = 2;
fabric_idx fabricIndex = 254;
}
- struct FabricDescriptor {
+ fabric_scoped struct FabricDescriptor {
octet_string<65> rootPublicKey = 1;
vendor_id vendorId = 2;
fabric_id fabricId = 3;
@@ -1902,13 +1902,13 @@ client cluster GroupKeyManagement = 63 {
kCacheAndSync = 1;
}
- struct GroupKeyMapStruct {
+ fabric_scoped struct GroupKeyMapStruct {
group_id groupId = 1;
int16u groupKeySetID = 2;
fabric_idx fabricIndex = 254;
}
- struct GroupInfoMapStruct {
+ fabric_scoped struct GroupInfoMapStruct {
group_id groupId = 1;
endpoint_no endpoints[] = 2;
optional char_string<16> groupName = 3;
@@ -4161,14 +4161,14 @@ client cluster TestCluster = 4294048773 {
double h = 7;
}
- struct TestFabricScoped {
- int8u fabricSensitiveInt8u = 1;
- optional int8u optionalFabricSensitiveInt8u = 2;
- nullable int8u nullableFabricSensitiveInt8u = 3;
- optional nullable int8u nullableOptionalFabricSensitiveInt8u = 4;
- char_string fabricSensitiveCharString = 5;
- SimpleStruct fabricSensitiveStruct = 6;
- int8u fabricSensitiveInt8uList[] = 7;
+ fabric_scoped struct TestFabricScoped {
+ fabric_sensitive int8u fabricSensitiveInt8u = 1;
+ optional fabric_sensitive int8u optionalFabricSensitiveInt8u = 2;
+ nullable fabric_sensitive int8u nullableFabricSensitiveInt8u = 3;
+ optional nullable fabric_sensitive int8u nullableOptionalFabricSensitiveInt8u = 4;
+ fabric_sensitive char_string fabricSensitiveCharString = 5;
+ fabric_sensitive SimpleStruct fabricSensitiveStruct = 6;
+ fabric_sensitive int8u fabricSensitiveInt8uList[] = 7;
fabric_idx fabricIndex = 254;
}
@@ -4197,7 +4197,7 @@ client cluster TestCluster = 4294048773 {
SimpleEnum arg6[] = 6;
}
- info event TestFabricScopedEvent = 2 {
+ fabric_sensitive info event TestFabricScopedEvent = 2 {
fabric_idx fabricIndex = 254;
}