diff --git a/src/app/zap-templates/zcl/data-model/chip/webrtc-provider-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/webrtc-provider-cluster.xml index 719ed4e26cb27e..2e0a3c85603a9f 100644 --- a/src/app/zap-templates/zcl/data-model/chip/webrtc-provider-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/webrtc-provider-cluster.xml @@ -18,7 +18,7 @@ limitations under the License. XML generated by Alchemy; DO NOT EDIT. Source: src/app_clusters/WebRTC_Provider.adoc Parameters: in-progress -Git: 0.7-summer-2025-5-g06c4d5596 +Git: 0.7-summer-2025-285-g2a2bd1961 --> @@ -54,16 +54,15 @@ Git: 0.7-summer-2025-5-g06c4d5596 - + - - - - - + + + + @@ -75,8 +74,11 @@ Git: 0.7-summer-2025-5-g06c4d5596 true true - CurrentSessions - + + CurrentSessions + + + Requests that the Provider initiates a new session with the Offer / Answer flow in a way that allows for options to be passed and work with devices needing the standby flow. @@ -96,7 +98,7 @@ Git: 0.7-summer-2025-5-g06c4d5596 - + This command allows an SDP Offer to be set and start a new session. @@ -117,21 +119,21 @@ Git: 0.7-summer-2025-5-g06c4d5596 - + This command SHALL be initiated from a Node in response to an Offer that was previously received from a remote peer. - + This command allows for string based https://rfc-editor.org/rfc/rfc8839#section-5.1 generated after the initial Offer / Answer exchange, via a JSEP https://datatracker.ietf.org/doc/html/rfc9429#section-4.1.20 event, a DOM https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceevent event, or other WebRTC compliant implementations, to be added to a session during the gathering phase. - + This command instructs the stream provider to end the WebRTC session. diff --git a/src/app/zap-templates/zcl/data-model/chip/webrtc-requestor-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/webrtc-requestor-cluster.xml index 13d0ef022ee207..61c45c7b85ed73 100644 --- a/src/app/zap-templates/zcl/data-model/chip/webrtc-requestor-cluster.xml +++ b/src/app/zap-templates/zcl/data-model/chip/webrtc-requestor-cluster.xml @@ -18,7 +18,7 @@ limitations under the License. XML generated by Alchemy; DO NOT EDIT. Source: src/app_clusters/WebRTC_Requestor.adoc Parameters: in-progress -Git: 0.7-summer-2025-5-g06c4d5596 +Git: 0.7-summer-2025-285-g2a2bd1961 --> @@ -31,7 +31,10 @@ Git: 0.7-summer-2025-5-g06c4d5596 true true - CurrentSessions + + CurrentSessions + + This command provides the stream requestor with WebRTC session details. @@ -59,7 +62,7 @@ Git: 0.7-summer-2025-5-g06c4d5596 This command notifies the stream requestor that the provider has ended the WebRTC session. - + diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter index d166b45a88a7ae..540cd038e5ba7c 100644 --- a/src/controller/data_model/controller-clusters.matter +++ b/src/controller/data_model/controller-clusters.matter @@ -10138,17 +10138,17 @@ provisional cluster WebRTCTransportProvider = 1363 { optional int16u caid = 4; } - struct WebRTCSessionStruct { + fabric_scoped struct WebRTCSessionStruct { int16u id = 1; node_id peerNodeID = 2; - fabric_idx peerFabricIndex = 3; - StreamUsageEnum streamUsage = 4; - nullable int16u videoStreamID = 5; - nullable int16u audioStreamID = 6; - WebRTCMetadataOptionsBitmap metadataOptions = 7; + StreamUsageEnum streamUsage = 3; + nullable int16u videoStreamID = 4; + nullable int16u audioStreamID = 5; + WebRTCMetadataOptionsBitmap metadataOptions = 6; + fabric_idx fabricIndex = 254; } - readonly attribute WebRTCSessionStruct currentSessions[] = 0; + readonly attribute access(read: manage) WebRTCSessionStruct currentSessions[] = 0; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; @@ -10205,15 +10205,15 @@ provisional cluster WebRTCTransportProvider = 1363 { } /** Requests that the Provider initiates a new session with the Offer / Answer flow in a way that allows for options to be passed and work with devices needing the standby flow. */ - command SolicitOffer(SolicitOfferRequest): SolicitOfferResponse = 1; + fabric command SolicitOffer(SolicitOfferRequest): SolicitOfferResponse = 1; /** This command allows an SDP Offer to be set and start a new session. */ - command ProvideOffer(ProvideOfferRequest): ProvideOfferResponse = 3; + fabric command ProvideOffer(ProvideOfferRequest): ProvideOfferResponse = 3; /** This command SHALL be initiated from a Node in response to an Offer that was previously received from a remote peer. */ - command ProvideAnswer(ProvideAnswerRequest): DefaultSuccess = 5; + fabric command ProvideAnswer(ProvideAnswerRequest): DefaultSuccess = 5; /** This command allows for string based https://rfc-editor.org/rfc/rfc8839#section-5.1 generated after the initial Offer / Answer exchange, via a JSEP https://datatracker.ietf.org/doc/html/rfc9429#section-4.1.20 event, a DOM https://www.w3.org/TR/webrtc/#dom-rtcpeerconnectioniceevent event, or other WebRTC compliant implementations, to be added to a session during the gathering phase. */ - command ProvideICECandidates(ProvideICECandidatesRequest): DefaultSuccess = 6; + fabric command ProvideICECandidates(ProvideICECandidatesRequest): DefaultSuccess = 6; /** This command instructs the stream provider to end the WebRTC session. */ - command EndSession(EndSessionRequest): DefaultSuccess = 7; + fabric command EndSession(EndSessionRequest): DefaultSuccess = 7; } /** The WebRTC transport requestor cluster provides a way for stream consumers (e.g. Matter Stream Viewer) to establish a WebRTC connection with a stream provider. */ @@ -10253,17 +10253,17 @@ provisional cluster WebRTCTransportRequestor = 1364 { optional int16u caid = 4; } - struct WebRTCSessionStruct { + fabric_scoped struct WebRTCSessionStruct { int16u id = 1; node_id peerNodeID = 2; - fabric_idx peerFabricIndex = 3; - StreamUsageEnum streamUsage = 4; - nullable int16u videoStreamID = 5; - nullable int16u audioStreamID = 6; - WebRTCMetadataOptionsBitmap metadataOptions = 7; + StreamUsageEnum streamUsage = 3; + nullable int16u videoStreamID = 4; + nullable int16u audioStreamID = 5; + WebRTCMetadataOptionsBitmap metadataOptions = 6; + fabric_idx fabricIndex = 254; } - readonly attribute WebRTCSessionStruct currentSessions[] = 0; + readonly attribute access(read: administer) WebRTCSessionStruct currentSessions[] = 0; readonly attribute command_id generatedCommandList[] = 65528; readonly attribute command_id acceptedCommandList[] = 65529; readonly attribute event_id eventList[] = 65530; diff --git a/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java b/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java index cb423ce525f915..b7d001a767b691 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java +++ b/src/controller/java/generated/java/chip/devicecontroller/ChipClusters.java @@ -63138,6 +63138,11 @@ public interface AttributeListAttributeCallback extends BaseAttributeCallback { public void readCurrentSessionsAttribute( CurrentSessionsAttributeCallback callback) { + readCurrentSessionsAttributeWithFabricFilter(callback, true); + } + + public void readCurrentSessionsAttributeWithFabricFilter( + CurrentSessionsAttributeCallback callback, boolean isFabricFiltered) { ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_SESSIONS_ATTRIBUTE_ID); readAttribute(new ReportCallbackImpl(callback, path) { @@ -63146,7 +63151,7 @@ public void onSuccess(byte[] tlv) { List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv); callback.onSuccess(value); } - }, CURRENT_SESSIONS_ATTRIBUTE_ID, true); + }, CURRENT_SESSIONS_ATTRIBUTE_ID, isFabricFiltered); } public void subscribeCurrentSessionsAttribute( @@ -63466,6 +63471,11 @@ public interface AttributeListAttributeCallback extends BaseAttributeCallback { public void readCurrentSessionsAttribute( CurrentSessionsAttributeCallback callback) { + readCurrentSessionsAttributeWithFabricFilter(callback, true); + } + + public void readCurrentSessionsAttributeWithFabricFilter( + CurrentSessionsAttributeCallback callback, boolean isFabricFiltered) { ChipAttributePath path = ChipAttributePath.newInstance(endpointId, clusterId, CURRENT_SESSIONS_ATTRIBUTE_ID); readAttribute(new ReportCallbackImpl(callback, path) { @@ -63474,7 +63484,7 @@ public void onSuccess(byte[] tlv) { List value = ChipTLVValueDecoder.decodeAttributeValue(path, tlv); callback.onSuccess(value); } - }, CURRENT_SESSIONS_ATTRIBUTE_ID, true); + }, CURRENT_SESSIONS_ATTRIBUTE_ID, isFabricFiltered); } public void subscribeCurrentSessionsAttribute( diff --git a/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java b/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java index 5614ac0f8fa5b6..92bf564e1413db 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java +++ b/src/controller/java/generated/java/chip/devicecontroller/ChipStructs.java @@ -14636,46 +14636,46 @@ public String toString() { public static class WebRTCTransportProviderClusterWebRTCSessionStruct { public Integer id; public Long peerNodeID; - public Integer peerFabricIndex; public Integer streamUsage; public @Nullable Integer videoStreamID; public @Nullable Integer audioStreamID; public Integer metadataOptions; + public Integer fabricIndex; private static final long ID_ID = 1L; private static final long PEER_NODE_ID_ID = 2L; - private static final long PEER_FABRIC_INDEX_ID = 3L; - private static final long STREAM_USAGE_ID = 4L; - private static final long VIDEO_STREAM_ID_ID = 5L; - private static final long AUDIO_STREAM_ID_ID = 6L; - private static final long METADATA_OPTIONS_ID = 7L; + private static final long STREAM_USAGE_ID = 3L; + private static final long VIDEO_STREAM_ID_ID = 4L; + private static final long AUDIO_STREAM_ID_ID = 5L; + private static final long METADATA_OPTIONS_ID = 6L; + private static final long FABRIC_INDEX_ID = 254L; public WebRTCTransportProviderClusterWebRTCSessionStruct( Integer id, Long peerNodeID, - Integer peerFabricIndex, Integer streamUsage, @Nullable Integer videoStreamID, @Nullable Integer audioStreamID, - Integer metadataOptions + Integer metadataOptions, + Integer fabricIndex ) { this.id = id; this.peerNodeID = peerNodeID; - this.peerFabricIndex = peerFabricIndex; this.streamUsage = streamUsage; this.videoStreamID = videoStreamID; this.audioStreamID = audioStreamID; this.metadataOptions = metadataOptions; + this.fabricIndex = fabricIndex; } public StructType encodeTlv() { ArrayList values = new ArrayList<>(); values.add(new StructElement(ID_ID, new UIntType(id))); values.add(new StructElement(PEER_NODE_ID_ID, new UIntType(peerNodeID))); - values.add(new StructElement(PEER_FABRIC_INDEX_ID, new UIntType(peerFabricIndex))); values.add(new StructElement(STREAM_USAGE_ID, new UIntType(streamUsage))); values.add(new StructElement(VIDEO_STREAM_ID_ID, videoStreamID != null ? new UIntType(videoStreamID) : new NullType())); values.add(new StructElement(AUDIO_STREAM_ID_ID, audioStreamID != null ? new UIntType(audioStreamID) : new NullType())); values.add(new StructElement(METADATA_OPTIONS_ID, new UIntType(metadataOptions))); + values.add(new StructElement(FABRIC_INDEX_ID, new UIntType(fabricIndex))); return new StructType(values); } @@ -14686,11 +14686,11 @@ public static WebRTCTransportProviderClusterWebRTCSessionStruct decodeTlv(BaseTL } Integer id = null; Long peerNodeID = null; - Integer peerFabricIndex = null; Integer streamUsage = null; @Nullable Integer videoStreamID = null; @Nullable Integer audioStreamID = null; Integer metadataOptions = null; + Integer fabricIndex = null; for (StructElement element: ((StructType)tlvValue).value()) { if (element.contextTagNum() == ID_ID) { if (element.value(BaseTLVType.class).type() == TLVType.UInt) { @@ -14702,11 +14702,6 @@ public static WebRTCTransportProviderClusterWebRTCSessionStruct decodeTlv(BaseTL UIntType castingValue = element.value(UIntType.class); peerNodeID = castingValue.value(Long.class); } - } else if (element.contextTagNum() == PEER_FABRIC_INDEX_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - peerFabricIndex = castingValue.value(Integer.class); - } } else if (element.contextTagNum() == STREAM_USAGE_ID) { if (element.value(BaseTLVType.class).type() == TLVType.UInt) { UIntType castingValue = element.value(UIntType.class); @@ -14727,16 +14722,21 @@ public static WebRTCTransportProviderClusterWebRTCSessionStruct decodeTlv(BaseTL UIntType castingValue = element.value(UIntType.class); metadataOptions = castingValue.value(Integer.class); } + } else if (element.contextTagNum() == FABRIC_INDEX_ID) { + if (element.value(BaseTLVType.class).type() == TLVType.UInt) { + UIntType castingValue = element.value(UIntType.class); + fabricIndex = castingValue.value(Integer.class); + } } } return new WebRTCTransportProviderClusterWebRTCSessionStruct( id, peerNodeID, - peerFabricIndex, streamUsage, videoStreamID, audioStreamID, - metadataOptions + metadataOptions, + fabricIndex ); } @@ -14750,9 +14750,6 @@ public String toString() { output.append("\tpeerNodeID: "); output.append(peerNodeID); output.append("\n"); - output.append("\tpeerFabricIndex: "); - output.append(peerFabricIndex); - output.append("\n"); output.append("\tstreamUsage: "); output.append(streamUsage); output.append("\n"); @@ -14765,6 +14762,9 @@ public String toString() { output.append("\tmetadataOptions: "); output.append(metadataOptions); output.append("\n"); + output.append("\tfabricIndex: "); + output.append(fabricIndex); + output.append("\n"); output.append("}\n"); return output.toString(); } @@ -14863,46 +14863,46 @@ public String toString() { public static class WebRTCTransportRequestorClusterWebRTCSessionStruct { public Integer id; public Long peerNodeID; - public Integer peerFabricIndex; public Integer streamUsage; public @Nullable Integer videoStreamID; public @Nullable Integer audioStreamID; public Integer metadataOptions; + public Integer fabricIndex; private static final long ID_ID = 1L; private static final long PEER_NODE_ID_ID = 2L; - private static final long PEER_FABRIC_INDEX_ID = 3L; - private static final long STREAM_USAGE_ID = 4L; - private static final long VIDEO_STREAM_ID_ID = 5L; - private static final long AUDIO_STREAM_ID_ID = 6L; - private static final long METADATA_OPTIONS_ID = 7L; + private static final long STREAM_USAGE_ID = 3L; + private static final long VIDEO_STREAM_ID_ID = 4L; + private static final long AUDIO_STREAM_ID_ID = 5L; + private static final long METADATA_OPTIONS_ID = 6L; + private static final long FABRIC_INDEX_ID = 254L; public WebRTCTransportRequestorClusterWebRTCSessionStruct( Integer id, Long peerNodeID, - Integer peerFabricIndex, Integer streamUsage, @Nullable Integer videoStreamID, @Nullable Integer audioStreamID, - Integer metadataOptions + Integer metadataOptions, + Integer fabricIndex ) { this.id = id; this.peerNodeID = peerNodeID; - this.peerFabricIndex = peerFabricIndex; this.streamUsage = streamUsage; this.videoStreamID = videoStreamID; this.audioStreamID = audioStreamID; this.metadataOptions = metadataOptions; + this.fabricIndex = fabricIndex; } public StructType encodeTlv() { ArrayList values = new ArrayList<>(); values.add(new StructElement(ID_ID, new UIntType(id))); values.add(new StructElement(PEER_NODE_ID_ID, new UIntType(peerNodeID))); - values.add(new StructElement(PEER_FABRIC_INDEX_ID, new UIntType(peerFabricIndex))); values.add(new StructElement(STREAM_USAGE_ID, new UIntType(streamUsage))); values.add(new StructElement(VIDEO_STREAM_ID_ID, videoStreamID != null ? new UIntType(videoStreamID) : new NullType())); values.add(new StructElement(AUDIO_STREAM_ID_ID, audioStreamID != null ? new UIntType(audioStreamID) : new NullType())); values.add(new StructElement(METADATA_OPTIONS_ID, new UIntType(metadataOptions))); + values.add(new StructElement(FABRIC_INDEX_ID, new UIntType(fabricIndex))); return new StructType(values); } @@ -14913,11 +14913,11 @@ public static WebRTCTransportRequestorClusterWebRTCSessionStruct decodeTlv(BaseT } Integer id = null; Long peerNodeID = null; - Integer peerFabricIndex = null; Integer streamUsage = null; @Nullable Integer videoStreamID = null; @Nullable Integer audioStreamID = null; Integer metadataOptions = null; + Integer fabricIndex = null; for (StructElement element: ((StructType)tlvValue).value()) { if (element.contextTagNum() == ID_ID) { if (element.value(BaseTLVType.class).type() == TLVType.UInt) { @@ -14929,11 +14929,6 @@ public static WebRTCTransportRequestorClusterWebRTCSessionStruct decodeTlv(BaseT UIntType castingValue = element.value(UIntType.class); peerNodeID = castingValue.value(Long.class); } - } else if (element.contextTagNum() == PEER_FABRIC_INDEX_ID) { - if (element.value(BaseTLVType.class).type() == TLVType.UInt) { - UIntType castingValue = element.value(UIntType.class); - peerFabricIndex = castingValue.value(Integer.class); - } } else if (element.contextTagNum() == STREAM_USAGE_ID) { if (element.value(BaseTLVType.class).type() == TLVType.UInt) { UIntType castingValue = element.value(UIntType.class); @@ -14954,16 +14949,21 @@ public static WebRTCTransportRequestorClusterWebRTCSessionStruct decodeTlv(BaseT UIntType castingValue = element.value(UIntType.class); metadataOptions = castingValue.value(Integer.class); } + } else if (element.contextTagNum() == FABRIC_INDEX_ID) { + if (element.value(BaseTLVType.class).type() == TLVType.UInt) { + UIntType castingValue = element.value(UIntType.class); + fabricIndex = castingValue.value(Integer.class); + } } } return new WebRTCTransportRequestorClusterWebRTCSessionStruct( id, peerNodeID, - peerFabricIndex, streamUsage, videoStreamID, audioStreamID, - metadataOptions + metadataOptions, + fabricIndex ); } @@ -14977,9 +14977,6 @@ public String toString() { output.append("\tpeerNodeID: "); output.append(peerNodeID); output.append("\n"); - output.append("\tpeerFabricIndex: "); - output.append(peerFabricIndex); - output.append("\n"); output.append("\tstreamUsage: "); output.append(streamUsage); output.append("\n"); @@ -14992,6 +14989,9 @@ public String toString() { output.append("\tmetadataOptions: "); output.append(metadataOptions); output.append("\n"); + output.append("\tfabricIndex: "); + output.append(fabricIndex); + output.append("\n"); output.append("}\n"); return output.toString(); } diff --git a/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WebRTCTransportProviderClusterWebRTCSessionStruct.kt b/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WebRTCTransportProviderClusterWebRTCSessionStruct.kt index 793d109046b6e0..2178e059bd66d4 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WebRTCTransportProviderClusterWebRTCSessionStruct.kt +++ b/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WebRTCTransportProviderClusterWebRTCSessionStruct.kt @@ -25,21 +25,21 @@ import matter.tlv.TlvWriter class WebRTCTransportProviderClusterWebRTCSessionStruct( val id: UInt, val peerNodeID: ULong, - val peerFabricIndex: UInt, val streamUsage: UInt, val videoStreamID: UInt?, val audioStreamID: UInt?, val metadataOptions: UInt, + val fabricIndex: UInt, ) { override fun toString(): String = buildString { append("WebRTCTransportProviderClusterWebRTCSessionStruct {\n") append("\tid : $id\n") append("\tpeerNodeID : $peerNodeID\n") - append("\tpeerFabricIndex : $peerFabricIndex\n") append("\tstreamUsage : $streamUsage\n") append("\tvideoStreamID : $videoStreamID\n") append("\taudioStreamID : $audioStreamID\n") append("\tmetadataOptions : $metadataOptions\n") + append("\tfabricIndex : $fabricIndex\n") append("}\n") } @@ -48,7 +48,6 @@ class WebRTCTransportProviderClusterWebRTCSessionStruct( startStructure(tlvTag) put(ContextSpecificTag(TAG_ID), id) put(ContextSpecificTag(TAG_PEER_NODE_ID), peerNodeID) - put(ContextSpecificTag(TAG_PEER_FABRIC_INDEX), peerFabricIndex) put(ContextSpecificTag(TAG_STREAM_USAGE), streamUsage) if (videoStreamID != null) { put(ContextSpecificTag(TAG_VIDEO_STREAM_ID), videoStreamID) @@ -61,6 +60,7 @@ class WebRTCTransportProviderClusterWebRTCSessionStruct( putNull(ContextSpecificTag(TAG_AUDIO_STREAM_ID)) } put(ContextSpecificTag(TAG_METADATA_OPTIONS), metadataOptions) + put(ContextSpecificTag(TAG_FABRIC_INDEX), fabricIndex) endStructure() } } @@ -68,11 +68,11 @@ class WebRTCTransportProviderClusterWebRTCSessionStruct( companion object { private const val TAG_ID = 1 private const val TAG_PEER_NODE_ID = 2 - private const val TAG_PEER_FABRIC_INDEX = 3 - private const val TAG_STREAM_USAGE = 4 - private const val TAG_VIDEO_STREAM_ID = 5 - private const val TAG_AUDIO_STREAM_ID = 6 - private const val TAG_METADATA_OPTIONS = 7 + private const val TAG_STREAM_USAGE = 3 + private const val TAG_VIDEO_STREAM_ID = 4 + private const val TAG_AUDIO_STREAM_ID = 5 + private const val TAG_METADATA_OPTIONS = 6 + private const val TAG_FABRIC_INDEX = 254 fun fromTlv( tlvTag: Tag, @@ -81,7 +81,6 @@ class WebRTCTransportProviderClusterWebRTCSessionStruct( tlvReader.enterStructure(tlvTag) val id = tlvReader.getUInt(ContextSpecificTag(TAG_ID)) val peerNodeID = tlvReader.getULong(ContextSpecificTag(TAG_PEER_NODE_ID)) - val peerFabricIndex = tlvReader.getUInt(ContextSpecificTag(TAG_PEER_FABRIC_INDEX)) val streamUsage = tlvReader.getUInt(ContextSpecificTag(TAG_STREAM_USAGE)) val videoStreamID = if (!tlvReader.isNull()) { @@ -98,17 +97,18 @@ class WebRTCTransportProviderClusterWebRTCSessionStruct( null } val metadataOptions = tlvReader.getUInt(ContextSpecificTag(TAG_METADATA_OPTIONS)) + val fabricIndex = tlvReader.getUInt(ContextSpecificTag(TAG_FABRIC_INDEX)) tlvReader.exitContainer() return WebRTCTransportProviderClusterWebRTCSessionStruct( id, peerNodeID, - peerFabricIndex, streamUsage, videoStreamID, audioStreamID, metadataOptions, + fabricIndex, ) } } diff --git a/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WebRTCTransportRequestorClusterWebRTCSessionStruct.kt b/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WebRTCTransportRequestorClusterWebRTCSessionStruct.kt index 23180bcc2f92a5..a9acb27572d794 100644 --- a/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WebRTCTransportRequestorClusterWebRTCSessionStruct.kt +++ b/src/controller/java/generated/java/chip/devicecontroller/cluster/structs/WebRTCTransportRequestorClusterWebRTCSessionStruct.kt @@ -25,21 +25,21 @@ import matter.tlv.TlvWriter class WebRTCTransportRequestorClusterWebRTCSessionStruct( val id: UInt, val peerNodeID: ULong, - val peerFabricIndex: UInt, val streamUsage: UInt, val videoStreamID: UInt?, val audioStreamID: UInt?, val metadataOptions: UInt, + val fabricIndex: UInt, ) { override fun toString(): String = buildString { append("WebRTCTransportRequestorClusterWebRTCSessionStruct {\n") append("\tid : $id\n") append("\tpeerNodeID : $peerNodeID\n") - append("\tpeerFabricIndex : $peerFabricIndex\n") append("\tstreamUsage : $streamUsage\n") append("\tvideoStreamID : $videoStreamID\n") append("\taudioStreamID : $audioStreamID\n") append("\tmetadataOptions : $metadataOptions\n") + append("\tfabricIndex : $fabricIndex\n") append("}\n") } @@ -48,7 +48,6 @@ class WebRTCTransportRequestorClusterWebRTCSessionStruct( startStructure(tlvTag) put(ContextSpecificTag(TAG_ID), id) put(ContextSpecificTag(TAG_PEER_NODE_ID), peerNodeID) - put(ContextSpecificTag(TAG_PEER_FABRIC_INDEX), peerFabricIndex) put(ContextSpecificTag(TAG_STREAM_USAGE), streamUsage) if (videoStreamID != null) { put(ContextSpecificTag(TAG_VIDEO_STREAM_ID), videoStreamID) @@ -61,6 +60,7 @@ class WebRTCTransportRequestorClusterWebRTCSessionStruct( putNull(ContextSpecificTag(TAG_AUDIO_STREAM_ID)) } put(ContextSpecificTag(TAG_METADATA_OPTIONS), metadataOptions) + put(ContextSpecificTag(TAG_FABRIC_INDEX), fabricIndex) endStructure() } } @@ -68,11 +68,11 @@ class WebRTCTransportRequestorClusterWebRTCSessionStruct( companion object { private const val TAG_ID = 1 private const val TAG_PEER_NODE_ID = 2 - private const val TAG_PEER_FABRIC_INDEX = 3 - private const val TAG_STREAM_USAGE = 4 - private const val TAG_VIDEO_STREAM_ID = 5 - private const val TAG_AUDIO_STREAM_ID = 6 - private const val TAG_METADATA_OPTIONS = 7 + private const val TAG_STREAM_USAGE = 3 + private const val TAG_VIDEO_STREAM_ID = 4 + private const val TAG_AUDIO_STREAM_ID = 5 + private const val TAG_METADATA_OPTIONS = 6 + private const val TAG_FABRIC_INDEX = 254 fun fromTlv( tlvTag: Tag, @@ -81,7 +81,6 @@ class WebRTCTransportRequestorClusterWebRTCSessionStruct( tlvReader.enterStructure(tlvTag) val id = tlvReader.getUInt(ContextSpecificTag(TAG_ID)) val peerNodeID = tlvReader.getULong(ContextSpecificTag(TAG_PEER_NODE_ID)) - val peerFabricIndex = tlvReader.getUInt(ContextSpecificTag(TAG_PEER_FABRIC_INDEX)) val streamUsage = tlvReader.getUInt(ContextSpecificTag(TAG_STREAM_USAGE)) val videoStreamID = if (!tlvReader.isNull()) { @@ -98,17 +97,18 @@ class WebRTCTransportRequestorClusterWebRTCSessionStruct( null } val metadataOptions = tlvReader.getUInt(ContextSpecificTag(TAG_METADATA_OPTIONS)) + val fabricIndex = tlvReader.getUInt(ContextSpecificTag(TAG_FABRIC_INDEX)) tlvReader.exitContainer() return WebRTCTransportRequestorClusterWebRTCSessionStruct( id, peerNodeID, - peerFabricIndex, streamUsage, videoStreamID, audioStreamID, metadataOptions, + fabricIndex, ) } } diff --git a/src/controller/java/generated/java/matter/controller/cluster/structs/WebRTCTransportProviderClusterWebRTCSessionStruct.kt b/src/controller/java/generated/java/matter/controller/cluster/structs/WebRTCTransportProviderClusterWebRTCSessionStruct.kt index ad0b1235cb3f55..f96c3dd64aebf7 100644 --- a/src/controller/java/generated/java/matter/controller/cluster/structs/WebRTCTransportProviderClusterWebRTCSessionStruct.kt +++ b/src/controller/java/generated/java/matter/controller/cluster/structs/WebRTCTransportProviderClusterWebRTCSessionStruct.kt @@ -25,21 +25,21 @@ import matter.tlv.TlvWriter class WebRTCTransportProviderClusterWebRTCSessionStruct( val id: UShort, val peerNodeID: ULong, - val peerFabricIndex: UByte, val streamUsage: UByte, val videoStreamID: UShort?, val audioStreamID: UShort?, val metadataOptions: UByte, + val fabricIndex: UByte, ) { override fun toString(): String = buildString { append("WebRTCTransportProviderClusterWebRTCSessionStruct {\n") append("\tid : $id\n") append("\tpeerNodeID : $peerNodeID\n") - append("\tpeerFabricIndex : $peerFabricIndex\n") append("\tstreamUsage : $streamUsage\n") append("\tvideoStreamID : $videoStreamID\n") append("\taudioStreamID : $audioStreamID\n") append("\tmetadataOptions : $metadataOptions\n") + append("\tfabricIndex : $fabricIndex\n") append("}\n") } @@ -48,7 +48,6 @@ class WebRTCTransportProviderClusterWebRTCSessionStruct( startStructure(tlvTag) put(ContextSpecificTag(TAG_ID), id) put(ContextSpecificTag(TAG_PEER_NODE_ID), peerNodeID) - put(ContextSpecificTag(TAG_PEER_FABRIC_INDEX), peerFabricIndex) put(ContextSpecificTag(TAG_STREAM_USAGE), streamUsage) if (videoStreamID != null) { put(ContextSpecificTag(TAG_VIDEO_STREAM_ID), videoStreamID) @@ -61,6 +60,7 @@ class WebRTCTransportProviderClusterWebRTCSessionStruct( putNull(ContextSpecificTag(TAG_AUDIO_STREAM_ID)) } put(ContextSpecificTag(TAG_METADATA_OPTIONS), metadataOptions) + put(ContextSpecificTag(TAG_FABRIC_INDEX), fabricIndex) endStructure() } } @@ -68,11 +68,11 @@ class WebRTCTransportProviderClusterWebRTCSessionStruct( companion object { private const val TAG_ID = 1 private const val TAG_PEER_NODE_ID = 2 - private const val TAG_PEER_FABRIC_INDEX = 3 - private const val TAG_STREAM_USAGE = 4 - private const val TAG_VIDEO_STREAM_ID = 5 - private const val TAG_AUDIO_STREAM_ID = 6 - private const val TAG_METADATA_OPTIONS = 7 + private const val TAG_STREAM_USAGE = 3 + private const val TAG_VIDEO_STREAM_ID = 4 + private const val TAG_AUDIO_STREAM_ID = 5 + private const val TAG_METADATA_OPTIONS = 6 + private const val TAG_FABRIC_INDEX = 254 fun fromTlv( tlvTag: Tag, @@ -81,7 +81,6 @@ class WebRTCTransportProviderClusterWebRTCSessionStruct( tlvReader.enterStructure(tlvTag) val id = tlvReader.getUShort(ContextSpecificTag(TAG_ID)) val peerNodeID = tlvReader.getULong(ContextSpecificTag(TAG_PEER_NODE_ID)) - val peerFabricIndex = tlvReader.getUByte(ContextSpecificTag(TAG_PEER_FABRIC_INDEX)) val streamUsage = tlvReader.getUByte(ContextSpecificTag(TAG_STREAM_USAGE)) val videoStreamID = if (!tlvReader.isNull()) { @@ -98,17 +97,18 @@ class WebRTCTransportProviderClusterWebRTCSessionStruct( null } val metadataOptions = tlvReader.getUByte(ContextSpecificTag(TAG_METADATA_OPTIONS)) + val fabricIndex = tlvReader.getUByte(ContextSpecificTag(TAG_FABRIC_INDEX)) tlvReader.exitContainer() return WebRTCTransportProviderClusterWebRTCSessionStruct( id, peerNodeID, - peerFabricIndex, streamUsage, videoStreamID, audioStreamID, metadataOptions, + fabricIndex, ) } } diff --git a/src/controller/java/generated/java/matter/controller/cluster/structs/WebRTCTransportRequestorClusterWebRTCSessionStruct.kt b/src/controller/java/generated/java/matter/controller/cluster/structs/WebRTCTransportRequestorClusterWebRTCSessionStruct.kt index 8bc16bf9e82efe..913eac003e63b4 100644 --- a/src/controller/java/generated/java/matter/controller/cluster/structs/WebRTCTransportRequestorClusterWebRTCSessionStruct.kt +++ b/src/controller/java/generated/java/matter/controller/cluster/structs/WebRTCTransportRequestorClusterWebRTCSessionStruct.kt @@ -25,21 +25,21 @@ import matter.tlv.TlvWriter class WebRTCTransportRequestorClusterWebRTCSessionStruct( val id: UShort, val peerNodeID: ULong, - val peerFabricIndex: UByte, val streamUsage: UByte, val videoStreamID: UShort?, val audioStreamID: UShort?, val metadataOptions: UByte, + val fabricIndex: UByte, ) { override fun toString(): String = buildString { append("WebRTCTransportRequestorClusterWebRTCSessionStruct {\n") append("\tid : $id\n") append("\tpeerNodeID : $peerNodeID\n") - append("\tpeerFabricIndex : $peerFabricIndex\n") append("\tstreamUsage : $streamUsage\n") append("\tvideoStreamID : $videoStreamID\n") append("\taudioStreamID : $audioStreamID\n") append("\tmetadataOptions : $metadataOptions\n") + append("\tfabricIndex : $fabricIndex\n") append("}\n") } @@ -48,7 +48,6 @@ class WebRTCTransportRequestorClusterWebRTCSessionStruct( startStructure(tlvTag) put(ContextSpecificTag(TAG_ID), id) put(ContextSpecificTag(TAG_PEER_NODE_ID), peerNodeID) - put(ContextSpecificTag(TAG_PEER_FABRIC_INDEX), peerFabricIndex) put(ContextSpecificTag(TAG_STREAM_USAGE), streamUsage) if (videoStreamID != null) { put(ContextSpecificTag(TAG_VIDEO_STREAM_ID), videoStreamID) @@ -61,6 +60,7 @@ class WebRTCTransportRequestorClusterWebRTCSessionStruct( putNull(ContextSpecificTag(TAG_AUDIO_STREAM_ID)) } put(ContextSpecificTag(TAG_METADATA_OPTIONS), metadataOptions) + put(ContextSpecificTag(TAG_FABRIC_INDEX), fabricIndex) endStructure() } } @@ -68,11 +68,11 @@ class WebRTCTransportRequestorClusterWebRTCSessionStruct( companion object { private const val TAG_ID = 1 private const val TAG_PEER_NODE_ID = 2 - private const val TAG_PEER_FABRIC_INDEX = 3 - private const val TAG_STREAM_USAGE = 4 - private const val TAG_VIDEO_STREAM_ID = 5 - private const val TAG_AUDIO_STREAM_ID = 6 - private const val TAG_METADATA_OPTIONS = 7 + private const val TAG_STREAM_USAGE = 3 + private const val TAG_VIDEO_STREAM_ID = 4 + private const val TAG_AUDIO_STREAM_ID = 5 + private const val TAG_METADATA_OPTIONS = 6 + private const val TAG_FABRIC_INDEX = 254 fun fromTlv( tlvTag: Tag, @@ -81,7 +81,6 @@ class WebRTCTransportRequestorClusterWebRTCSessionStruct( tlvReader.enterStructure(tlvTag) val id = tlvReader.getUShort(ContextSpecificTag(TAG_ID)) val peerNodeID = tlvReader.getULong(ContextSpecificTag(TAG_PEER_NODE_ID)) - val peerFabricIndex = tlvReader.getUByte(ContextSpecificTag(TAG_PEER_FABRIC_INDEX)) val streamUsage = tlvReader.getUByte(ContextSpecificTag(TAG_STREAM_USAGE)) val videoStreamID = if (!tlvReader.isNull()) { @@ -98,17 +97,18 @@ class WebRTCTransportRequestorClusterWebRTCSessionStruct( null } val metadataOptions = tlvReader.getUByte(ContextSpecificTag(TAG_METADATA_OPTIONS)) + val fabricIndex = tlvReader.getUByte(ContextSpecificTag(TAG_FABRIC_INDEX)) tlvReader.exitContainer() return WebRTCTransportRequestorClusterWebRTCSessionStruct( id, peerNodeID, - peerFabricIndex, streamUsage, videoStreamID, audioStreamID, metadataOptions, + fabricIndex, ) } } diff --git a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp index 588d3c6120b139..151185dced0295 100644 --- a/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp +++ b/src/controller/java/zap-generated/CHIPAttributeTLVValueDecoder.cpp @@ -42580,13 +42580,6 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_peerNodeIDClassName.c_str(), newElement_0_peerNodeIDCtorSignature.c_str(), jninewElement_0_peerNodeID, newElement_0_peerNodeID); - jobject newElement_0_peerFabricIndex; - std::string newElement_0_peerFabricIndexClassName = "java/lang/Integer"; - std::string newElement_0_peerFabricIndexCtorSignature = "(I)V"; - jint jninewElement_0_peerFabricIndex = static_cast(entry_0.peerFabricIndex); - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_peerFabricIndexClassName.c_str(), newElement_0_peerFabricIndexCtorSignature.c_str(), - jninewElement_0_peerFabricIndex, newElement_0_peerFabricIndex); jobject newElement_0_streamUsage; std::string newElement_0_streamUsageClassName = "java/lang/Integer"; std::string newElement_0_streamUsageCtorSignature = "(I)V"; @@ -42629,6 +42622,13 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR chip::JniReferences::GetInstance().CreateBoxedObject( newElement_0_metadataOptionsClassName.c_str(), newElement_0_metadataOptionsCtorSignature.c_str(), jninewElement_0_metadataOptions, newElement_0_metadataOptions); + jobject newElement_0_fabricIndex; + std::string newElement_0_fabricIndexClassName = "java/lang/Integer"; + std::string newElement_0_fabricIndexCtorSignature = "(I)V"; + jint jninewElement_0_fabricIndex = static_cast(entry_0.fabricIndex); + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_fabricIndexClassName.c_str(), + newElement_0_fabricIndexCtorSignature.c_str(), + jninewElement_0_fabricIndex, newElement_0_fabricIndex); { jclass webRTCSessionStructStructClass_1; @@ -42656,8 +42656,8 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR newElement_0 = env->NewObject(webRTCSessionStructStructClass_1, webRTCSessionStructStructCtor_1, newElement_0_id, - newElement_0_peerNodeID, newElement_0_peerFabricIndex, newElement_0_streamUsage, - newElement_0_videoStreamID, newElement_0_audioStreamID, newElement_0_metadataOptions); + newElement_0_peerNodeID, newElement_0_streamUsage, newElement_0_videoStreamID, + newElement_0_audioStreamID, newElement_0_metadataOptions, newElement_0_fabricIndex); } chip::JniReferences::GetInstance().AddToList(value, newElement_0); } @@ -42809,13 +42809,6 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_peerNodeIDClassName.c_str(), newElement_0_peerNodeIDCtorSignature.c_str(), jninewElement_0_peerNodeID, newElement_0_peerNodeID); - jobject newElement_0_peerFabricIndex; - std::string newElement_0_peerFabricIndexClassName = "java/lang/Integer"; - std::string newElement_0_peerFabricIndexCtorSignature = "(I)V"; - jint jninewElement_0_peerFabricIndex = static_cast(entry_0.peerFabricIndex); - chip::JniReferences::GetInstance().CreateBoxedObject( - newElement_0_peerFabricIndexClassName.c_str(), newElement_0_peerFabricIndexCtorSignature.c_str(), - jninewElement_0_peerFabricIndex, newElement_0_peerFabricIndex); jobject newElement_0_streamUsage; std::string newElement_0_streamUsageClassName = "java/lang/Integer"; std::string newElement_0_streamUsageCtorSignature = "(I)V"; @@ -42858,6 +42851,13 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR chip::JniReferences::GetInstance().CreateBoxedObject( newElement_0_metadataOptionsClassName.c_str(), newElement_0_metadataOptionsCtorSignature.c_str(), jninewElement_0_metadataOptions, newElement_0_metadataOptions); + jobject newElement_0_fabricIndex; + std::string newElement_0_fabricIndexClassName = "java/lang/Integer"; + std::string newElement_0_fabricIndexCtorSignature = "(I)V"; + jint jninewElement_0_fabricIndex = static_cast(entry_0.fabricIndex); + chip::JniReferences::GetInstance().CreateBoxedObject(newElement_0_fabricIndexClassName.c_str(), + newElement_0_fabricIndexCtorSignature.c_str(), + jninewElement_0_fabricIndex, newElement_0_fabricIndex); { jclass webRTCSessionStructStructClass_1; @@ -42885,8 +42885,8 @@ jobject DecodeAttributeValue(const app::ConcreteAttributePath & aPath, TLV::TLVR newElement_0 = env->NewObject(webRTCSessionStructStructClass_1, webRTCSessionStructStructCtor_1, newElement_0_id, - newElement_0_peerNodeID, newElement_0_peerFabricIndex, newElement_0_streamUsage, - newElement_0_videoStreamID, newElement_0_audioStreamID, newElement_0_metadataOptions); + newElement_0_peerNodeID, newElement_0_streamUsage, newElement_0_videoStreamID, + newElement_0_audioStreamID, newElement_0_metadataOptions, newElement_0_fabricIndex); } chip::JniReferences::GetInstance().AddToList(value, newElement_0); } diff --git a/src/controller/python/chip/clusters/Objects.py b/src/controller/python/chip/clusters/Objects.py index b5f3a3bd560926..ec406c980793fc 100644 --- a/src/controller/python/chip/clusters/Objects.py +++ b/src/controller/python/chip/clusters/Objects.py @@ -47347,20 +47347,20 @@ def descriptor(cls) -> ClusterObjectDescriptor: Fields=[ ClusterObjectFieldDescriptor(Label="id", Tag=1, Type=uint), ClusterObjectFieldDescriptor(Label="peerNodeID", Tag=2, Type=uint), - ClusterObjectFieldDescriptor(Label="peerFabricIndex", Tag=3, Type=uint), - ClusterObjectFieldDescriptor(Label="streamUsage", Tag=4, Type=WebRTCTransportProvider.Enums.StreamUsageEnum), - ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=5, Type=typing.Union[Nullable, uint]), - ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=6, Type=typing.Union[Nullable, uint]), - ClusterObjectFieldDescriptor(Label="metadataOptions", Tag=7, Type=uint), + ClusterObjectFieldDescriptor(Label="streamUsage", Tag=3, Type=WebRTCTransportProvider.Enums.StreamUsageEnum), + ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=4, Type=typing.Union[Nullable, uint]), + ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=5, Type=typing.Union[Nullable, uint]), + ClusterObjectFieldDescriptor(Label="metadataOptions", Tag=6, Type=uint), + ClusterObjectFieldDescriptor(Label="fabricIndex", Tag=254, Type=uint), ]) id: 'uint' = 0 peerNodeID: 'uint' = 0 - peerFabricIndex: 'uint' = 0 streamUsage: 'WebRTCTransportProvider.Enums.StreamUsageEnum' = 0 videoStreamID: 'typing.Union[Nullable, uint]' = NullValue audioStreamID: 'typing.Union[Nullable, uint]' = NullValue metadataOptions: 'uint' = 0 + fabricIndex: 'uint' = 0 class Commands: @dataclass @@ -47697,20 +47697,20 @@ def descriptor(cls) -> ClusterObjectDescriptor: Fields=[ ClusterObjectFieldDescriptor(Label="id", Tag=1, Type=uint), ClusterObjectFieldDescriptor(Label="peerNodeID", Tag=2, Type=uint), - ClusterObjectFieldDescriptor(Label="peerFabricIndex", Tag=3, Type=uint), - ClusterObjectFieldDescriptor(Label="streamUsage", Tag=4, Type=WebRTCTransportRequestor.Enums.StreamUsageEnum), - ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=5, Type=typing.Union[Nullable, uint]), - ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=6, Type=typing.Union[Nullable, uint]), - ClusterObjectFieldDescriptor(Label="metadataOptions", Tag=7, Type=uint), + ClusterObjectFieldDescriptor(Label="streamUsage", Tag=3, Type=WebRTCTransportRequestor.Enums.StreamUsageEnum), + ClusterObjectFieldDescriptor(Label="videoStreamID", Tag=4, Type=typing.Union[Nullable, uint]), + ClusterObjectFieldDescriptor(Label="audioStreamID", Tag=5, Type=typing.Union[Nullable, uint]), + ClusterObjectFieldDescriptor(Label="metadataOptions", Tag=6, Type=uint), + ClusterObjectFieldDescriptor(Label="fabricIndex", Tag=254, Type=uint), ]) id: 'uint' = 0 peerNodeID: 'uint' = 0 - peerFabricIndex: 'uint' = 0 streamUsage: 'WebRTCTransportRequestor.Enums.StreamUsageEnum' = 0 videoStreamID: 'typing.Union[Nullable, uint]' = NullValue audioStreamID: 'typing.Union[Nullable, uint]' = NullValue metadataOptions: 'uint' = 0 + fabricIndex: 'uint' = 0 class Commands: @dataclass diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm index baf2956fd5e3b5..ea4a928dd57560 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRAttributeTLVValueDecoder.mm @@ -17918,7 +17918,6 @@ static id _Nullable DecodeAttributeValueForWebRTCTransportProviderCluster(Attrib newElement_0 = [MTRWebRTCTransportProviderClusterWebRTCSessionStruct new]; newElement_0.id = [NSNumber numberWithUnsignedShort:entry_0.id]; newElement_0.peerNodeID = [NSNumber numberWithUnsignedLongLong:entry_0.peerNodeID]; - newElement_0.peerFabricIndex = [NSNumber numberWithUnsignedChar:entry_0.peerFabricIndex]; newElement_0.streamUsage = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamUsage)]; if (entry_0.videoStreamID.IsNull()) { newElement_0.videoStreamID = nil; @@ -17931,6 +17930,7 @@ static id _Nullable DecodeAttributeValueForWebRTCTransportProviderCluster(Attrib newElement_0.audioStreamID = [NSNumber numberWithUnsignedShort:entry_0.audioStreamID.Value()]; } newElement_0.metadataOptions = [NSNumber numberWithUnsignedChar:entry_0.metadataOptions.Raw()]; + newElement_0.fabricIndex = [NSNumber numberWithUnsignedChar:entry_0.fabricIndex]; [array_0 addObject:newElement_0]; } CHIP_ERROR err = iter_0.GetStatus(); @@ -17971,7 +17971,6 @@ static id _Nullable DecodeAttributeValueForWebRTCTransportRequestorCluster(Attri newElement_0 = [MTRWebRTCTransportRequestorClusterWebRTCSessionStruct new]; newElement_0.id = [NSNumber numberWithUnsignedShort:entry_0.id]; newElement_0.peerNodeID = [NSNumber numberWithUnsignedLongLong:entry_0.peerNodeID]; - newElement_0.peerFabricIndex = [NSNumber numberWithUnsignedChar:entry_0.peerFabricIndex]; newElement_0.streamUsage = [NSNumber numberWithUnsignedChar:chip::to_underlying(entry_0.streamUsage)]; if (entry_0.videoStreamID.IsNull()) { newElement_0.videoStreamID = nil; @@ -17984,6 +17983,7 @@ static id _Nullable DecodeAttributeValueForWebRTCTransportRequestorCluster(Attri newElement_0.audioStreamID = [NSNumber numberWithUnsignedShort:entry_0.audioStreamID.Value()]; } newElement_0.metadataOptions = [NSNumber numberWithUnsignedChar:entry_0.metadataOptions.Raw()]; + newElement_0.fabricIndex = [NSNumber numberWithUnsignedChar:entry_0.fabricIndex]; [array_0 addObject:newElement_0]; } CHIP_ERROR err = iter_0.GetStatus(); diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h index 929db36d9413b7..c6b38bb5b9f397 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h @@ -14814,7 +14814,7 @@ MTR_PROVISIONALLY_AVAILABLE */ - (void)endSessionWithParams:(MTRWebRTCTransportProviderClusterEndSessionParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE; -- (void)readAttributeCurrentSessionsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE; +- (void)readAttributeCurrentSessionsWithParams:(MTRReadParams * _Nullable)params completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE; - (void)subscribeAttributeCurrentSessionsWithParams:(MTRSubscribeParams *)params subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE; @@ -14900,7 +14900,7 @@ MTR_PROVISIONALLY_AVAILABLE */ - (void)endWithParams:(MTRWebRTCTransportRequestorClusterEndParams *)params completion:(MTRStatusCompletion)completion MTR_PROVISIONALLY_AVAILABLE; -- (void)readAttributeCurrentSessionsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE; +- (void)readAttributeCurrentSessionsWithParams:(MTRReadParams * _Nullable)params completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion MTR_PROVISIONALLY_AVAILABLE; - (void)subscribeAttributeCurrentSessionsWithParams:(MTRSubscribeParams *)params subscriptionEstablished:(MTRSubscriptionEstablishedHandler _Nullable)subscriptionEstablished reportHandler:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))reportHandler MTR_PROVISIONALLY_AVAILABLE; diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm index 4353b0c45d6963..711ca0827c223a 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.mm @@ -101450,13 +101450,13 @@ - (void)endSessionWithParams:(MTRWebRTCTransportProviderClusterEndSessionParams completion:responseHandler]; } -- (void)readAttributeCurrentSessionsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion +- (void)readAttributeCurrentSessionsWithParams:(MTRReadParams * _Nullable)params completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion { using TypeInfo = WebRTCTransportProvider::Attributes::CurrentSessions::TypeInfo; [self.device _readKnownAttributeWithEndpointID:self.endpointID clusterID:@(TypeInfo::GetClusterId()) attributeID:@(TypeInfo::GetAttributeId()) - params:nil + params:params queue:self.callbackQueue completion:completion]; } @@ -101767,13 +101767,13 @@ - (void)endWithParams:(MTRWebRTCTransportRequestorClusterEndParams *)params comp completion:responseHandler]; } -- (void)readAttributeCurrentSessionsWithCompletion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion +- (void)readAttributeCurrentSessionsWithParams:(MTRReadParams * _Nullable)params completion:(void (^)(NSArray * _Nullable value, NSError * _Nullable error))completion { using TypeInfo = WebRTCTransportRequestor::Attributes::CurrentSessions::TypeInfo; [self.device _readKnownAttributeWithEndpointID:self.endpointID clusterID:@(TypeInfo::GetClusterId()) attributeID:@(TypeInfo::GetAttributeId()) - params:nil + params:params queue:self.callbackQueue completion:completion]; } diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h index d79edaec9e3b16..f3d9d21ab1dbef 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h +++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.h @@ -2334,11 +2334,11 @@ MTR_PROVISIONALLY_AVAILABLE @interface MTRWebRTCTransportProviderClusterWebRTCSessionStruct : NSObject @property (nonatomic, copy) NSNumber * _Nonnull id MTR_PROVISIONALLY_AVAILABLE; @property (nonatomic, copy) NSNumber * _Nonnull peerNodeID MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nonnull peerFabricIndex MTR_PROVISIONALLY_AVAILABLE; @property (nonatomic, copy) NSNumber * _Nonnull streamUsage MTR_PROVISIONALLY_AVAILABLE; @property (nonatomic, copy) NSNumber * _Nullable videoStreamID MTR_PROVISIONALLY_AVAILABLE; @property (nonatomic, copy) NSNumber * _Nullable audioStreamID MTR_PROVISIONALLY_AVAILABLE; @property (nonatomic, copy) NSNumber * _Nonnull metadataOptions MTR_PROVISIONALLY_AVAILABLE; +@property (nonatomic, copy) NSNumber * _Nonnull fabricIndex MTR_PROVISIONALLY_AVAILABLE; @end MTR_PROVISIONALLY_AVAILABLE @@ -2353,11 +2353,11 @@ MTR_PROVISIONALLY_AVAILABLE @interface MTRWebRTCTransportRequestorClusterWebRTCSessionStruct : NSObject @property (nonatomic, copy) NSNumber * _Nonnull id MTR_PROVISIONALLY_AVAILABLE; @property (nonatomic, copy) NSNumber * _Nonnull peerNodeID MTR_PROVISIONALLY_AVAILABLE; -@property (nonatomic, copy) NSNumber * _Nonnull peerFabricIndex MTR_PROVISIONALLY_AVAILABLE; @property (nonatomic, copy) NSNumber * _Nonnull streamUsage MTR_PROVISIONALLY_AVAILABLE; @property (nonatomic, copy) NSNumber * _Nullable videoStreamID MTR_PROVISIONALLY_AVAILABLE; @property (nonatomic, copy) NSNumber * _Nullable audioStreamID MTR_PROVISIONALLY_AVAILABLE; @property (nonatomic, copy) NSNumber * _Nonnull metadataOptions MTR_PROVISIONALLY_AVAILABLE; +@property (nonatomic, copy) NSNumber * _Nonnull fabricIndex MTR_PROVISIONALLY_AVAILABLE; @end MTR_PROVISIONALLY_AVAILABLE diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm index b9a6b60e3ab770..bd5c444416becf 100644 --- a/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm +++ b/src/darwin/Framework/CHIP/zap-generated/MTRStructsObjc.mm @@ -9704,8 +9704,6 @@ - (instancetype)init _peerNodeID = @(0); - _peerFabricIndex = @(0); - _streamUsage = @(0); _videoStreamID = nil; @@ -9713,6 +9711,8 @@ - (instancetype)init _audioStreamID = nil; _metadataOptions = @(0); + + _fabricIndex = @(0); } return self; } @@ -9723,18 +9723,18 @@ - (id)copyWithZone:(NSZone * _Nullable)zone other.id = self.id; other.peerNodeID = self.peerNodeID; - other.peerFabricIndex = self.peerFabricIndex; other.streamUsage = self.streamUsage; other.videoStreamID = self.videoStreamID; other.audioStreamID = self.audioStreamID; other.metadataOptions = self.metadataOptions; + other.fabricIndex = self.fabricIndex; return other; } - (NSString *)description { - NSString * descriptionString = [NSString stringWithFormat:@"<%@: id:%@; peerNodeID:%@; peerFabricIndex:%@; streamUsage:%@; videoStreamID:%@; audioStreamID:%@; metadataOptions:%@; >", NSStringFromClass([self class]), _id, _peerNodeID, _peerFabricIndex, _streamUsage, _videoStreamID, _audioStreamID, _metadataOptions]; + NSString * descriptionString = [NSString stringWithFormat:@"<%@: id:%@; peerNodeID:%@; streamUsage:%@; videoStreamID:%@; audioStreamID:%@; metadataOptions:%@; fabricIndex:%@; >", NSStringFromClass([self class]), _id, _peerNodeID, _streamUsage, _videoStreamID, _audioStreamID, _metadataOptions, _fabricIndex]; return descriptionString; } @@ -9785,8 +9785,6 @@ - (instancetype)init _peerNodeID = @(0); - _peerFabricIndex = @(0); - _streamUsage = @(0); _videoStreamID = nil; @@ -9794,6 +9792,8 @@ - (instancetype)init _audioStreamID = nil; _metadataOptions = @(0); + + _fabricIndex = @(0); } return self; } @@ -9804,18 +9804,18 @@ - (id)copyWithZone:(NSZone * _Nullable)zone other.id = self.id; other.peerNodeID = self.peerNodeID; - other.peerFabricIndex = self.peerFabricIndex; other.streamUsage = self.streamUsage; other.videoStreamID = self.videoStreamID; other.audioStreamID = self.audioStreamID; other.metadataOptions = self.metadataOptions; + other.fabricIndex = self.fabricIndex; return other; } - (NSString *)description { - NSString * descriptionString = [NSString stringWithFormat:@"<%@: id:%@; peerNodeID:%@; peerFabricIndex:%@; streamUsage:%@; videoStreamID:%@; audioStreamID:%@; metadataOptions:%@; >", NSStringFromClass([self class]), _id, _peerNodeID, _peerFabricIndex, _streamUsage, _videoStreamID, _audioStreamID, _metadataOptions]; + NSString * descriptionString = [NSString stringWithFormat:@"<%@: id:%@; peerNodeID:%@; streamUsage:%@; videoStreamID:%@; audioStreamID:%@; metadataOptions:%@; fabricIndex:%@; >", NSStringFromClass([self class]), _id, _peerNodeID, _streamUsage, _videoStreamID, _audioStreamID, _metadataOptions, _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 5c3c082e5f4d9a..3b8e7ea7dacc3f 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 @@ -607,16 +607,32 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) } // namespace ViewportStruct namespace WebRTCSessionStruct { -CHIP_ERROR Type::Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const +CHIP_ERROR Type::EncodeForWrite(TLV::TLVWriter & aWriter, TLV::Tag aTag) const +{ + return DoEncode(aWriter, aTag, NullOptional); +} + +CHIP_ERROR Type::EncodeForRead(TLV::TLVWriter & aWriter, TLV::Tag aTag, FabricIndex aAccessingFabricIndex) const { + return DoEncode(aWriter, aTag, MakeOptional(aAccessingFabricIndex)); +} + +CHIP_ERROR Type::DoEncode(TLV::TLVWriter & aWriter, TLV::Tag aTag, const Optional & aAccessingFabricIndex) const +{ + DataModel::WrappedStructEncoder encoder{ aWriter, aTag }; + encoder.Encode(to_underlying(Fields::kId), id); encoder.Encode(to_underlying(Fields::kPeerNodeID), peerNodeID); - encoder.Encode(to_underlying(Fields::kPeerFabricIndex), peerFabricIndex); encoder.Encode(to_underlying(Fields::kStreamUsage), streamUsage); encoder.Encode(to_underlying(Fields::kVideoStreamID), videoStreamID); encoder.Encode(to_underlying(Fields::kAudioStreamID), audioStreamID); encoder.Encode(to_underlying(Fields::kMetadataOptions), metadataOptions); + if (aAccessingFabricIndex.HasValue()) + { + encoder.Encode(to_underlying(Fields::kFabricIndex), fabricIndex); + } + return encoder.Finalize(); } @@ -642,10 +658,6 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) { err = DataModel::Decode(reader, peerNodeID); } - else if (__context_tag == to_underlying(Fields::kPeerFabricIndex)) - { - err = DataModel::Decode(reader, peerFabricIndex); - } else if (__context_tag == to_underlying(Fields::kStreamUsage)) { err = DataModel::Decode(reader, streamUsage); @@ -662,6 +674,10 @@ CHIP_ERROR DecodableType::Decode(TLV::TLVReader & reader) { err = DataModel::Decode(reader, metadataOptions); } + else if (__context_tag == to_underlying(Fields::kFabricIndex)) + { + err = DataModel::Decode(reader, fabricIndex); + } else { } @@ -37302,6 +37318,16 @@ bool CommandIsFabricScoped(ClusterId aCluster, CommandId aCommand) case Clusters::WebRTCTransportProvider::Id: { switch (aCommand) { + case Clusters::WebRTCTransportProvider::Commands::SolicitOffer::Id: + return true; + case Clusters::WebRTCTransportProvider::Commands::ProvideOffer::Id: + return true; + case Clusters::WebRTCTransportProvider::Commands::ProvideAnswer::Id: + return true; + case Clusters::WebRTCTransportProvider::Commands::ProvideICECandidates::Id: + return true; + case Clusters::WebRTCTransportProvider::Commands::EndSession::Id: + return true; default: return false; } 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 09167426d29f51..1d47da551d1b4f 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 @@ -358,29 +358,37 @@ enum class Fields : uint8_t { kId = 1, kPeerNodeID = 2, - kPeerFabricIndex = 3, - kStreamUsage = 4, - kVideoStreamID = 5, - kAudioStreamID = 6, - kMetadataOptions = 7, + kStreamUsage = 3, + kVideoStreamID = 4, + kAudioStreamID = 5, + kMetadataOptions = 6, + kFabricIndex = 254, }; struct Type { public: - uint16_t id = static_cast(0); - chip::NodeId peerNodeID = static_cast(0); - chip::FabricIndex peerFabricIndex = static_cast(0); - StreamUsageEnum streamUsage = static_cast(0); + uint16_t id = static_cast(0); + chip::NodeId peerNodeID = static_cast(0); + StreamUsageEnum streamUsage = static_cast(0); DataModel::Nullable videoStreamID; DataModel::Nullable audioStreamID; chip::BitMask metadataOptions = static_cast>(0); + chip::FabricIndex fabricIndex = static_cast(0); CHIP_ERROR Decode(TLV::TLVReader & reader); - static constexpr bool kIsFabricScoped = false; + static constexpr bool kIsFabricScoped = true; - CHIP_ERROR Encode(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; + auto GetFabricIndex() const { return fabricIndex; } + + void SetFabricIndex(chip::FabricIndex fabricIndex_) { fabricIndex = fabricIndex_; } + + CHIP_ERROR EncodeForWrite(TLV::TLVWriter & aWriter, TLV::Tag aTag) const; + CHIP_ERROR EncodeForRead(TLV::TLVWriter & aWriter, TLV::Tag aTag, FabricIndex aAccessingFabricIndex) const; + +private: + CHIP_ERROR DoEncode(TLV::TLVWriter & aWriter, TLV::Tag aTag, const Optional & aAccessingFabricIndex) const; }; using DecodableType = Type; diff --git a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp index 4121c85cf30051..8dc2112e9f6ba2 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/ComplexArgumentParser.cpp @@ -593,8 +593,6 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("WebRTCSessionStruct.id", "id", value.isMember("id"))); ReturnErrorOnFailure( ComplexArgumentParser::EnsureMemberExist("WebRTCSessionStruct.peerNodeID", "peerNodeID", value.isMember("peerNodeID"))); - ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("WebRTCSessionStruct.peerFabricIndex", "peerFabricIndex", - value.isMember("peerFabricIndex"))); ReturnErrorOnFailure( ComplexArgumentParser::EnsureMemberExist("WebRTCSessionStruct.streamUsage", "streamUsage", value.isMember("streamUsage"))); ReturnErrorOnFailure(ComplexArgumentParser::EnsureMemberExist("WebRTCSessionStruct.videoStreamID", "videoStreamID", @@ -613,10 +611,6 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.peerNodeID, value["peerNodeID"])); valueCopy.removeMember("peerNodeID"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "peerFabricIndex"); - ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.peerFabricIndex, value["peerFabricIndex"])); - valueCopy.removeMember("peerFabricIndex"); - snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "streamUsage"); ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.streamUsage, value["streamUsage"])); valueCopy.removeMember("streamUsage"); @@ -633,6 +627,13 @@ CHIP_ERROR ComplexArgumentParser::Setup(const char * label, ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.metadataOptions, value["metadataOptions"])); valueCopy.removeMember("metadataOptions"); + if (value.isMember("fabricIndex")) + { + snprintf(labelWithMember, sizeof(labelWithMember), "%s.%s", label, "fabricIndex"); + ReturnErrorOnFailure(ComplexArgumentParser::Setup(labelWithMember, request.fabricIndex, value["fabricIndex"])); + } + valueCopy.removeMember("fabricIndex"); + return ComplexArgumentParser::EnsureNoMembersRemaining(label, valueCopy); } @@ -640,11 +641,11 @@ void ComplexArgumentParser::Finalize(chip::app::Clusters::detail::Structs::WebRT { ComplexArgumentParser::Finalize(request.id); ComplexArgumentParser::Finalize(request.peerNodeID); - ComplexArgumentParser::Finalize(request.peerFabricIndex); ComplexArgumentParser::Finalize(request.streamUsage); ComplexArgumentParser::Finalize(request.videoStreamID); ComplexArgumentParser::Finalize(request.audioStreamID); ComplexArgumentParser::Finalize(request.metadataOptions); + ComplexArgumentParser::Finalize(request.fabricIndex); } CHIP_ERROR ComplexArgumentParser::Setup(const char * label, diff --git a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp index cb33c79471bbcd..beb6a8bf16d7ca 100644 --- a/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp +++ b/zzz_generated/chip-tool/zap-generated/cluster/logging/DataModelLogger.cpp @@ -526,14 +526,6 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return err; } } - { - CHIP_ERROR err = LogValue("PeerFabricIndex", indent + 1, value.peerFabricIndex); - if (err != CHIP_NO_ERROR) - { - DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'PeerFabricIndex'"); - return err; - } - } { CHIP_ERROR err = LogValue("StreamUsage", indent + 1, value.streamUsage); if (err != CHIP_NO_ERROR) @@ -566,6 +558,14 @@ CHIP_ERROR DataModelLogger::LogValue(const char * label, size_t indent, return err; } } + { + CHIP_ERROR err = LogValue("FabricIndex", indent + 1, value.fabricIndex); + if (err != CHIP_NO_ERROR) + { + DataModelLogger::LogString(indent + 1, "Struct truncated due to invalid value for 'FabricIndex'"); + return err; + } + } DataModelLogger::LogString(indent, "}"); return CHIP_NO_ERROR; diff --git a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h index aa1be9936b043e..ff6139144a2d6c 100644 --- a/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h +++ b/zzz_generated/darwin-framework-tool/zap-generated/cluster/Commands.h @@ -157431,7 +157431,11 @@ class ReadWebRTCTransportProviderCurrentSessions : public ReadAttribute { dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL_WITH_AUTORELEASE_POOL); __auto_type * cluster = [[MTRBaseClusterWebRTCTransportProvider alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue]; - [cluster readAttributeCurrentSessionsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) { + __auto_type * params = [[MTRReadParams alloc] init]; + if (mFabricFiltered.HasValue()) { + params.filterByFabric = mFabricFiltered.Value(); + } + [cluster readAttributeCurrentSessionsWithParams:params completion:^(NSArray * _Nullable value, NSError * _Nullable error) { NSLog(@"WebRTCTransportProvider.CurrentSessions response %@", [value description]); if (error == nil) { RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value); @@ -158264,7 +158268,11 @@ class ReadWebRTCTransportRequestorCurrentSessions : public ReadAttribute { dispatch_queue_t callbackQueue = dispatch_queue_create("com.chip.command", DISPATCH_QUEUE_SERIAL_WITH_AUTORELEASE_POOL); __auto_type * cluster = [[MTRBaseClusterWebRTCTransportRequestor alloc] initWithDevice:device endpointID:@(endpointId) queue:callbackQueue]; - [cluster readAttributeCurrentSessionsWithCompletion:^(NSArray * _Nullable value, NSError * _Nullable error) { + __auto_type * params = [[MTRReadParams alloc] init]; + if (mFabricFiltered.HasValue()) { + params.filterByFabric = mFabricFiltered.Value(); + } + [cluster readAttributeCurrentSessionsWithParams:params completion:^(NSArray * _Nullable value, NSError * _Nullable error) { NSLog(@"WebRTCTransportRequestor.CurrentSessions response %@", [value description]); if (error == nil) { RemoteDataModelLogger::LogAttributeAsJSON(@(endpointId), @(clusterId), @(attributeId), value);