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 423b2729d3b663..fda35a68d4b1af 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
@@ -565,6 +565,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
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 0c19fb115256af..c30b70e25dcd4e 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
@@ -508,6 +508,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter
index e3cf707e7f5a5e..a5fbabd602f4fa 100644
--- a/examples/bridge-app/bridge-common/bridge-app.matter
+++ b/examples/bridge-app/bridge-common/bridge-app.matter
@@ -449,6 +449,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
index e92672968a4a06..361192252cb5c7 100644
--- a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
+++ b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
@@ -456,6 +456,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
index 4e84e732f57bde..81e058e7e8d2c3 100644
--- a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
+++ b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
@@ -212,6 +212,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
index 5e0ea37afc471c..d77774f0c0eb89 100644
--- a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
+++ b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
@@ -456,6 +456,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
index 6792c9660a8701..2325a85cf9dacf 100644
--- a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
+++ b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
@@ -225,6 +225,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
index 4a05d9bc6bb37f..4e069de46948c6 100644
--- a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
+++ b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
@@ -449,6 +449,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
index 5c6811536f3735..aa8adb0aa64dd3 100644
--- a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
+++ b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
@@ -225,6 +225,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
index 61defb3cd4693e..311cac0984be9f 100644
--- a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
+++ b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
@@ -225,6 +225,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
index a396aacde855d6..489dadc658bd50 100644
--- a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
+++ b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
@@ -225,6 +225,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
index 82bef801de3fe3..0b868a8bfd38ff 100644
--- a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
+++ b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
@@ -456,6 +456,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
index 5fec94dc080cc9..cd132804e2a51c 100644
--- a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
+++ b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
@@ -526,6 +526,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
index 92474f5d1c20b8..7d350d6c5bb7e9 100644
--- a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
+++ b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
@@ -373,6 +373,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
index fc7f5f348f8437..c04075bea3062b 100644
--- a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
+++ b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
@@ -225,6 +225,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
index 0f9fb6156862b6..65868edda2930b 100644
--- a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
+++ b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
@@ -336,6 +336,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
index 2f46f5261ecc90..d52cf578b09f36 100644
--- a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
+++ b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
@@ -225,6 +225,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
index e662ad83da30dc..aee118742920b2 100644
--- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
+++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
@@ -323,6 +323,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
index 62fffed60474d2..aa8f1fb59e7a5f 100644
--- a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
+++ b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
@@ -323,6 +323,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/chip-tool/templates/logging/DataModelLogger-src.zapt b/examples/chip-tool/templates/logging/DataModelLogger-src.zapt
index 1b0092461cde15..474169320f0c29 100644
--- a/examples/chip-tool/templates/logging/DataModelLogger-src.zapt
+++ b/examples/chip-tool/templates/logging/DataModelLogger-src.zapt
@@ -135,26 +135,26 @@ CHIP_ERROR DataModelLogger::LogEvent(const chip::app::EventHeader & header, chip
ChipLogProgress(chipTool, "Endpoint: %u Cluster: " ChipLogFormatMEI " Event " ChipLogFormatMEI, header.mPath.mEndpointId,
ChipLogValueMEI(header.mPath.mClusterId), ChipLogValueMEI(header.mPath.mEventId));
- ChipLogProgress(chipTool, "\t Event number: %" PRIu64, header.mEventNumber);
+ ChipLogProgress(chipTool, " Event number: %" PRIu64, header.mEventNumber);
if (header.mPriorityLevel == chip::app::PriorityLevel::Info)
{
- ChipLogProgress(chipTool, "\t Priority: Info");
+ ChipLogProgress(chipTool, " Priority: Info");
}
else if (header.mPriorityLevel == chip::app::PriorityLevel::Critical)
{
- ChipLogProgress(chipTool, "\t Priority: Critical");
+ ChipLogProgress(chipTool, " Priority: Critical");
}
else if (header.mPriorityLevel == chip::app::PriorityLevel::Debug)
{
- ChipLogProgress(chipTool, "\t Priority: Debug");
+ ChipLogProgress(chipTool, " Priority: Debug");
}
else
{
- ChipLogProgress(chipTool, "\t Priority: Unknown");
+ ChipLogProgress(chipTool, " Priority: Unknown");
}
- ChipLogProgress(chipTool, "\t Timestamp: %" PRIu64, header.mTimestamp.mValue);
+ ChipLogProgress(chipTool, " Timestamp: %" PRIu64, header.mTimestamp.mValue);
switch (header.mPath.mClusterId)
{
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 85b9ddeefa32bd..9c6e1e942e3255 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
@@ -409,6 +409,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter
index 16b5a83dd68cf1..d1f7ed88a8aabc 100644
--- a/examples/lighting-app/lighting-common/lighting-app.matter
+++ b/examples/lighting-app/lighting-common/lighting-app.matter
@@ -349,6 +349,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/lock-app/lock-common/lock-app.matter b/examples/lock-app/lock-common/lock-app.matter
index 8f3fcfd2a1df4f..e6a40af1030aed 100644
--- a/examples/lock-app/lock-common/lock-app.matter
+++ b/examples/lock-app/lock-common/lock-app.matter
@@ -242,6 +242,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 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 6c0966d0acd0e6..8f068d296854e2 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
@@ -152,6 +152,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 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 46192991434ebb..9d512b513bb0e8 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
@@ -100,6 +100,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter
index a04c825fa58328..2c269228743fad 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -508,6 +508,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter
index a04c825fa58328..2c269228743fad 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -508,6 +508,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/pump-app/pump-common/pump-app.matter b/examples/pump-app/pump-common/pump-app.matter
index bf56559f5cb4f7..ede469f199509a 100644
--- a/examples/pump-app/pump-common/pump-app.matter
+++ b/examples/pump-app/pump-common/pump-app.matter
@@ -282,6 +282,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 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 28eae7cc109e4b..373e5959367ac1 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
@@ -197,6 +197,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter b/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter
index 32cadb0a1f2cf1..280889a8cb6dce 100644
--- a/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter
+++ b/examples/temperature-measurement-app/esp32/main/temperature-measurement.matter
@@ -100,6 +100,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/thermostat/thermostat-common/thermostat.matter b/examples/thermostat/thermostat-common/thermostat.matter
index d7c8994b4e1177..3d0537d2484fd2 100644
--- a/examples/thermostat/thermostat-common/thermostat.matter
+++ b/examples/thermostat/thermostat-common/thermostat.matter
@@ -352,6 +352,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/tv-app/tv-common/tv-app.matter b/examples/tv-app/tv-common/tv-app.matter
index 6788dd20cca3f4..286894782dd5dd 100644
--- a/examples/tv-app/tv-common/tv-app.matter
+++ b/examples/tv-app/tv-common/tv-app.matter
@@ -258,6 +258,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 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 3dbe063aa95494..a160229c8e302c 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
@@ -607,6 +607,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/examples/window-app/common/window-app.matter b/examples/window-app/common/window-app.matter
index 199c57678687c9..a8bdf55c622fa9 100644
--- a/examples/window-app/common/window-app.matter
+++ b/examples/window-app/common/window-app.matter
@@ -323,6 +323,7 @@ server cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/src/app/clusters/operational-credentials-server/operational-credentials-server.cpp b/src/app/clusters/operational-credentials-server/operational-credentials-server.cpp
index 7b78ce16ab832e..87355ea56a5ab7 100644
--- a/src/app/clusters/operational-credentials-server/operational-credentials-server.cpp
+++ b/src/app/clusters/operational-credentials-server/operational-credentials-server.cpp
@@ -354,6 +354,7 @@ class OpCredsFabricTableDelegate : public chip::FabricTable::Delegate
{
// If Basic cluster is implemented on this endpoint
Basic::Events::Leave::Type event;
+ event.fabricIndex = fabricIndex;
EventNumber eventNumber;
if (CHIP_NO_ERROR != LogEvent(event, endpoint, eventNumber))
diff --git a/src/app/zap-templates/zcl/data-model/chip/basic-information-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/basic-information-cluster.xml
index f6a1ed2b4917f7..b111eaab078639 100644
--- a/src/app/zap-templates/zcl/data-model/chip/basic-information-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/basic-information-cluster.xml
@@ -75,6 +75,7 @@ limitations under the License.
The Leave event SHOULD be emitted by a Node prior to permanently leaving the Fabric.
+
This event (when supported) SHALL be generated when there is a change in the Reachable attribute.
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index 4400662d22371b..df1cd5e1bdb01d 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -676,6 +676,7 @@ client cluster Basic = 40 {
}
info event Leave = 2 {
+ fabric_idx fabricIndex = 0;
}
info event ReachableChanged = 3 {
diff --git a/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp
index 71daf31d9f8617..c51197fc6dd9ae 100644
--- a/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp
+++ b/src/controller/java/zap-generated/CHIPEventTLVValueDecoder.cpp
@@ -653,6 +653,13 @@ jobject DecodeEventValue(const app::ConcreteEventPath & aPath, TLV::TLVReader &
{
return nullptr;
}
+ jobject value_fabricIndex;
+ std::string value_fabricIndexClassName = "java/lang/Integer";
+ std::string value_fabricIndexCtorSignature = "(I)V";
+ chip::JniReferences::GetInstance().CreateBoxedObject(value_fabricIndexClassName.c_str(),
+ value_fabricIndexCtorSignature.c_str(),
+ cppValue.fabricIndex, value_fabricIndex);
+
jclass leaveStructClass;
err = chip::JniReferences::GetInstance().GetClassRef(
env, "chip/devicecontroller/ChipEventStructs$BasicClusterLeaveEvent", leaveStructClass);
@@ -661,14 +668,14 @@ jobject DecodeEventValue(const app::ConcreteEventPath & aPath, TLV::TLVReader &
ChipLogError(Zcl, "Could not find class ChipEventStructs$BasicClusterLeaveEvent");
return nullptr;
}
- jmethodID leaveStructCtor = env->GetMethodID(leaveStructClass, "", "()V");
+ jmethodID leaveStructCtor = env->GetMethodID(leaveStructClass, "", "(Ljava/lang/Integer;)V");
if (leaveStructCtor == nullptr)
{
ChipLogError(Zcl, "Could not find ChipEventStructs$BasicClusterLeaveEvent constructor");
return nullptr;
}
- jobject value = env->NewObject(leaveStructClass, leaveStructCtor);
+ jobject value = env->NewObject(leaveStructClass, leaveStructCtor, value_fabricIndex);
return value;
}
diff --git a/src/controller/java/zap-generated/chip/devicecontroller/ChipEventStructs.java b/src/controller/java/zap-generated/chip/devicecontroller/ChipEventStructs.java
index 35c9fcf7626359..a6468550e3545b 100644
--- a/src/controller/java/zap-generated/chip/devicecontroller/ChipEventStructs.java
+++ b/src/controller/java/zap-generated/chip/devicecontroller/ChipEventStructs.java
@@ -210,13 +210,19 @@ public String toString() {
}
public static class BasicClusterLeaveEvent {
+ public Integer fabricIndex;
- public BasicClusterLeaveEvent() {}
+ public BasicClusterLeaveEvent(Integer fabricIndex) {
+ this.fabricIndex = fabricIndex;
+ }
@Override
public String toString() {
StringBuilder output = new StringBuilder();
output.append("BasicClusterLeaveEvent {\n");
+ output.append("\tfabricIndex: ");
+ output.append(fabricIndex);
+ output.append("\n");
output.append("}\n");
return output.toString();
}
diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py
index d2054cc4454748..709299ec06d185 100644
--- a/src/controller/python/chip/clusters/Objects.py
+++ b/src/controller/python/chip/clusters/Objects.py
@@ -4179,8 +4179,10 @@ def event_id(cls) -> int:
def descriptor(cls) -> ClusterObjectDescriptor:
return ClusterObjectDescriptor(
Fields = [
+ ClusterObjectFieldDescriptor(Label="fabricIndex", Tag=0, Type=uint),
])
+ fabricIndex: 'uint' = 0
@dataclass
class ReachableChanged(ClusterEvent):
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm
index 37267dd5dc387e..98dfb99f3a189f 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTREventTLVValueDecoder.mm
@@ -416,6 +416,12 @@ id MTRDecodeEventPayload(const ConcreteEventPath & aPath, TLV::TLVReader & aRead
MTRBasicClusterLeaveEvent * value = [MTRBasicClusterLeaveEvent new];
+ do {
+ NSNumber * _Nonnull memberValue;
+ memberValue = [NSNumber numberWithUnsignedChar:cppValue.fabricIndex];
+ value.fabricIndex = memberValue;
+ } while (0);
+
return value;
}
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h
index 828bdf0babb0c7..e2fefdf0e06b01 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h
@@ -141,6 +141,7 @@ NS_ASSUME_NONNULL_BEGIN
@end
@interface MTRBasicClusterLeaveEvent : NSObject
+@property (strong, nonatomic) NSNumber * _Nonnull fabricIndex;
@end
@interface MTRBasicClusterReachableChangedEvent : NSObject
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm
index a4e5b887e80bfa..67056218b84ee6 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm
@@ -402,13 +402,16 @@ @implementation MTRBasicClusterLeaveEvent
- (instancetype)init
{
if (self = [super init]) {
+
+ _fabricIndex = @(0);
}
return self;
}
- (NSString *)description
{
- NSString * descriptionString = [NSString stringWithFormat:@"<%@: >", NSStringFromClass([self class])];
+ NSString * descriptionString =
+ [NSString stringWithFormat:@"<%@: fabricIndex:%@; >", NSStringFromClass([self class]), _fabricIndex];
return descriptionString;
}
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp
index dcdb87c0bd91c4..a915098428963d 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.cpp
@@ -4106,6 +4106,7 @@ CHIP_ERROR Type::Encode(TLV::TLVWriter & writer, TLV::Tag tag) const
{
TLV::TLVType outer;
ReturnErrorOnFailure(writer.StartContainer(tag, TLV::kTLVType_Structure, outer));
+ ReturnErrorOnFailure(DataModel::Encode(writer, TLV::ContextTag(to_underlying(Fields::kFabricIndex)), fabricIndex));
ReturnErrorOnFailure(writer.EndContainer(outer));
return CHIP_NO_ERROR;
}
@@ -4124,6 +4125,9 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader)
}
switch (TLV::TagNumFromTag(reader.GetTag()))
{
+ case to_underlying(Fields::kFabricIndex):
+ ReturnErrorOnFailure(DataModel::Decode(reader, fabricIndex));
+ break;
default:
break;
}
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
index 23e672ef00be1c..1e894a9dfe53a1 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-objects.h
@@ -4812,6 +4812,7 @@ static constexpr PriorityLevel kPriorityLevel = PriorityLevel::Info;
enum class Fields
{
+ kFabricIndex = 0,
};
struct Type
@@ -4822,6 +4823,8 @@ struct Type
static constexpr ClusterId GetClusterId() { return Clusters::Basic::Id; }
static constexpr bool kIsFabricScoped = false;
+ chip::FabricIndex fabricIndex = static_cast(0);
+
CHIP_ERROR Encode(TLV::TLVWriter & writer, TLV::Tag tag) const;
};
@@ -4832,6 +4835,8 @@ struct DecodableType
static constexpr EventId GetEventId() { return Events::Leave::Id; }
static constexpr ClusterId GetClusterId() { return Clusters::Basic::Id; }
+ chip::FabricIndex fabricIndex = static_cast(0);
+
CHIP_ERROR Decode(TLV::TLVReader & reader);
};
} // namespace Leave
diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
index d1fa65531f150e..295dde68968614 100644
--- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
+++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp
@@ -2538,6 +2538,14 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Ba
CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, const Basic::Events::Leave::DecodableType & value)
{
DataModelLogger::LogString(label, indent, "{");
+ {
+ CHIP_ERROR err = DataModelLogger::LogValue("FabricIndex", indent + 1, value.fabricIndex);
+ if (err != CHIP_NO_ERROR)
+ {
+ DataModelLogger::LogString(indent + 1, "Event truncated due to invalid value for 'FabricIndex'");
+ return err;
+ }
+ }
DataModelLogger::LogString(indent, "}");
return CHIP_NO_ERROR;
@@ -10329,26 +10337,26 @@ CHIP_ERROR DataModelLogger::LogEvent(const chip::app::EventHeader & header, chip
ChipLogProgress(chipTool, "Endpoint: %u Cluster: " ChipLogFormatMEI " Event " ChipLogFormatMEI, header.mPath.mEndpointId,
ChipLogValueMEI(header.mPath.mClusterId), ChipLogValueMEI(header.mPath.mEventId));
- ChipLogProgress(chipTool, "\t Event number: %" PRIu64, header.mEventNumber);
+ ChipLogProgress(chipTool, " Event number: %" PRIu64, header.mEventNumber);
if (header.mPriorityLevel == chip::app::PriorityLevel::Info)
{
- ChipLogProgress(chipTool, "\t Priority: Info");
+ ChipLogProgress(chipTool, " Priority: Info");
}
else if (header.mPriorityLevel == chip::app::PriorityLevel::Critical)
{
- ChipLogProgress(chipTool, "\t Priority: Critical");
+ ChipLogProgress(chipTool, " Priority: Critical");
}
else if (header.mPriorityLevel == chip::app::PriorityLevel::Debug)
{
- ChipLogProgress(chipTool, "\t Priority: Debug");
+ ChipLogProgress(chipTool, " Priority: Debug");
}
else
{
- ChipLogProgress(chipTool, "\t Priority: Unknown");
+ ChipLogProgress(chipTool, " Priority: Unknown");
}
- ChipLogProgress(chipTool, "\t Timestamp: %" PRIu64, header.mTimestamp.mValue);
+ ChipLogProgress(chipTool, " Timestamp: %" PRIu64, header.mTimestamp.mValue);
switch (header.mPath.mClusterId)
{