@matter/protocol 0.15.0-alpha.0-20250625-4a4b1be1b → 0.15.0-alpha.0-20250626-fc3a84ce9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cluster/client/ClusterClient.d.ts.map +1 -1
- package/dist/cjs/cluster/client/ClusterClient.js +7 -1
- package/dist/cjs/cluster/client/ClusterClient.js.map +1 -1
- package/dist/cjs/cluster/client/ClusterClientTypes.d.ts +10 -0
- package/dist/cjs/cluster/client/ClusterClientTypes.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionClient.d.ts +8 -1
- package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionClient.js +15 -10
- package/dist/cjs/interaction/InteractionClient.js.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.d.ts +0 -1
- package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.js +0 -3
- package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
- package/dist/cjs/interaction/SubscriptionClient.d.ts +1 -1
- package/dist/cjs/interaction/SubscriptionClient.d.ts.map +1 -1
- package/dist/cjs/interaction/SubscriptionClient.js +1 -1
- package/dist/cjs/peer/ControllerCommissioner.d.ts +3 -2
- package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerCommissioner.js +6 -5
- package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.js +81 -52
- package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
- package/dist/cjs/peer/PeerSet.d.ts +4 -3
- package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
- package/dist/cjs/peer/PeerSet.js +9 -8
- package/dist/cjs/peer/PeerSet.js.map +1 -1
- package/dist/cjs/protocol/ChannelManager.d.ts +2 -2
- package/dist/cjs/protocol/ChannelManager.d.ts.map +1 -1
- package/dist/cjs/protocol/ChannelManager.js +4 -4
- package/dist/cjs/protocol/ChannelManager.js.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.d.ts +5 -24
- package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.js +12 -55
- package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
- package/dist/cjs/protocol/ExchangeProvider.d.ts +10 -6
- package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeProvider.js +12 -1
- package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
- package/dist/cjs/protocol/MessageChannel.d.ts +52 -0
- package/dist/cjs/protocol/MessageChannel.d.ts.map +1 -0
- package/dist/cjs/protocol/MessageChannel.js +130 -0
- package/dist/cjs/protocol/MessageChannel.js.map +6 -0
- package/dist/cjs/protocol/MessageExchange.d.ts +5 -5
- package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageExchange.js +34 -78
- package/dist/cjs/protocol/MessageExchange.js.map +1 -1
- package/dist/cjs/protocol/index.d.ts +1 -0
- package/dist/cjs/protocol/index.d.ts.map +1 -1
- package/dist/cjs/protocol/index.js +1 -0
- package/dist/cjs/protocol/index.js.map +1 -1
- package/dist/esm/cluster/client/ClusterClient.d.ts.map +1 -1
- package/dist/esm/cluster/client/ClusterClient.js +7 -1
- package/dist/esm/cluster/client/ClusterClient.js.map +1 -1
- package/dist/esm/cluster/client/ClusterClientTypes.d.ts +10 -0
- package/dist/esm/cluster/client/ClusterClientTypes.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionClient.d.ts +8 -1
- package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionClient.js +15 -10
- package/dist/esm/interaction/InteractionClient.js.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.d.ts +0 -1
- package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.js +0 -3
- package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
- package/dist/esm/interaction/SubscriptionClient.d.ts +1 -1
- package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
- package/dist/esm/interaction/SubscriptionClient.js +1 -1
- package/dist/esm/peer/ControllerCommissioner.d.ts +3 -2
- package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
- package/dist/esm/peer/ControllerCommissioner.js +4 -3
- package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.js +81 -52
- package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
- package/dist/esm/peer/PeerSet.d.ts +4 -3
- package/dist/esm/peer/PeerSet.d.ts.map +1 -1
- package/dist/esm/peer/PeerSet.js +5 -4
- package/dist/esm/peer/PeerSet.js.map +1 -1
- package/dist/esm/protocol/ChannelManager.d.ts +2 -2
- package/dist/esm/protocol/ChannelManager.d.ts.map +1 -1
- package/dist/esm/protocol/ChannelManager.js +2 -2
- package/dist/esm/protocol/ChannelManager.js.map +1 -1
- package/dist/esm/protocol/ExchangeManager.d.ts +5 -24
- package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeManager.js +13 -56
- package/dist/esm/protocol/ExchangeManager.js.map +1 -1
- package/dist/esm/protocol/ExchangeProvider.d.ts +10 -6
- package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeProvider.js +12 -1
- package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
- package/dist/esm/protocol/MessageChannel.d.ts +52 -0
- package/dist/esm/protocol/MessageChannel.d.ts.map +1 -0
- package/dist/esm/protocol/MessageChannel.js +110 -0
- package/dist/esm/protocol/MessageChannel.js.map +6 -0
- package/dist/esm/protocol/MessageExchange.d.ts +5 -5
- package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/esm/protocol/MessageExchange.js +39 -83
- package/dist/esm/protocol/MessageExchange.js.map +1 -1
- package/dist/esm/protocol/index.d.ts +1 -0
- package/dist/esm/protocol/index.d.ts.map +1 -1
- package/dist/esm/protocol/index.js +1 -0
- package/dist/esm/protocol/index.js.map +1 -1
- package/package.json +6 -6
- package/src/cluster/client/ClusterClient.ts +8 -1
- package/src/cluster/client/ClusterClientTypes.ts +12 -0
- package/src/interaction/InteractionClient.ts +29 -16
- package/src/interaction/InteractionMessenger.ts +0 -4
- package/src/interaction/SubscriptionClient.ts +2 -2
- package/src/peer/ControllerCommissioner.ts +4 -3
- package/src/peer/ControllerCommissioningFlow.ts +96 -57
- package/src/peer/PeerSet.ts +5 -4
- package/src/protocol/ChannelManager.ts +3 -3
- package/src/protocol/ExchangeManager.ts +18 -67
- package/src/protocol/ExchangeProvider.ts +20 -6
- package/src/protocol/MessageChannel.ts +163 -0
- package/src/protocol/MessageExchange.ts +40 -119
- package/src/protocol/index.ts +1 -0
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { MessageCodec, SessionType } from "#codec/MessageCodec.js";
|
|
6
7
|
import {
|
|
7
8
|
AsyncObservable,
|
|
9
|
+
createPromise,
|
|
8
10
|
CRYPTO_AEAD_MIC_LENGTH_BYTES,
|
|
9
11
|
DataReadQueue,
|
|
10
12
|
Diagnostic,
|
|
@@ -13,10 +15,16 @@ import {
|
|
|
13
15
|
MatterError,
|
|
14
16
|
MatterFlowError,
|
|
15
17
|
NoResponseTimeoutError,
|
|
16
|
-
Time
|
|
17
|
-
createPromise
|
|
18
|
+
Time
|
|
18
19
|
} from "#general";
|
|
19
|
-
import {
|
|
20
|
+
import { MRP } from "#protocol/MessageChannel.js";
|
|
21
|
+
import { SecureChannelProtocol } from "#securechannel/SecureChannelProtocol.js";
|
|
22
|
+
import { GroupSession } from "#session/GroupSession.js";
|
|
23
|
+
import {
|
|
24
|
+
SESSION_ACTIVE_INTERVAL_MS,
|
|
25
|
+
SESSION_ACTIVE_THRESHOLD_MS,
|
|
26
|
+
SESSION_IDLE_INTERVAL_MS
|
|
27
|
+
} from "#session/Session.js";
|
|
20
28
|
import {
|
|
21
29
|
GroupId,
|
|
22
30
|
SECURE_CHANNEL_PROTOCOL_ID,
|
|
@@ -24,13 +32,6 @@ import {
|
|
|
24
32
|
StatusCode,
|
|
25
33
|
StatusResponseError
|
|
26
34
|
} from "#types";
|
|
27
|
-
import { MessageCodec, SessionType } from "../codec/MessageCodec.js";
|
|
28
|
-
import { SecureChannelProtocol } from "../securechannel/SecureChannelProtocol.js";
|
|
29
|
-
import {
|
|
30
|
-
SESSION_ACTIVE_INTERVAL_MS,
|
|
31
|
-
SESSION_ACTIVE_THRESHOLD_MS,
|
|
32
|
-
SESSION_IDLE_INTERVAL_MS
|
|
33
|
-
} from "../session/Session.js";
|
|
34
35
|
import { ChannelNotConnectedError } from "./ExchangeManager.js";
|
|
35
36
|
const logger = Logger.get("MessageExchange");
|
|
36
37
|
class RetransmissionLimitReachedError extends NoResponseTimeoutError {
|
|
@@ -41,14 +42,7 @@ class UnexpectedMessageError extends MatterError {
|
|
|
41
42
|
this.receivedMessage = receivedMessage;
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
|
-
const MRP_MAX_TRANSMISSIONS = 5;
|
|
45
|
-
const MRP_BACKOFF_BASE = 1.6;
|
|
46
|
-
const MRP_BACKOFF_JITTER = 0.25;
|
|
47
|
-
const MRP_BACKOFF_MARGIN = 1.1;
|
|
48
|
-
const MRP_BACKOFF_THRESHOLD = 1;
|
|
49
|
-
const MRP_STANDALONE_ACK_TIMEOUT_MS = 200;
|
|
50
45
|
const DEFAULT_EXPECTED_PROCESSING_TIME_MS = 2e3;
|
|
51
|
-
const PEER_RESPONSE_TIME_BUFFER_MS = 5e3;
|
|
52
46
|
const MATTER_MESSAGE_OVERHEAD = 26 + 12 + CRYPTO_AEAD_MIC_LENGTH_BYTES;
|
|
53
47
|
class MessageExchange {
|
|
54
48
|
constructor(context, isInitiator, peerSessionId, nodeId, peerNodeId, exchangeId, protocolId, requiresSecureSession) {
|
|
@@ -66,8 +60,6 @@ class MessageExchange {
|
|
|
66
60
|
this.#activeIntervalMs = activeIntervalMs ?? SESSION_ACTIVE_INTERVAL_MS;
|
|
67
61
|
this.#idleIntervalMs = idleIntervalMs ?? SESSION_IDLE_INTERVAL_MS;
|
|
68
62
|
this.#activeThresholdMs = activeThresholdMs ?? SESSION_ACTIVE_THRESHOLD_MS;
|
|
69
|
-
this.#maxTransmissions = MRP_MAX_TRANSMISSIONS;
|
|
70
|
-
this.#useMRP = session.supportsMRP && !channel.isReliable;
|
|
71
63
|
this.#used = !isInitiator;
|
|
72
64
|
logger.debug(
|
|
73
65
|
"New exchange",
|
|
@@ -80,9 +72,9 @@ class MessageExchange {
|
|
|
80
72
|
SAT: this.#activeThresholdMs,
|
|
81
73
|
SAI: this.#activeIntervalMs,
|
|
82
74
|
SII: this.#idleIntervalMs,
|
|
83
|
-
maxTrans:
|
|
75
|
+
maxTrans: MRP.MAX_TRANSMISSIONS,
|
|
84
76
|
exchangeFlags: Diagnostic.asFlags({
|
|
85
|
-
MRP: this
|
|
77
|
+
MRP: this.channel.usesMrp,
|
|
86
78
|
I: this.isInitiator
|
|
87
79
|
})
|
|
88
80
|
})
|
|
@@ -121,10 +113,9 @@ class MessageExchange {
|
|
|
121
113
|
#activeIntervalMs;
|
|
122
114
|
#idleIntervalMs;
|
|
123
115
|
#activeThresholdMs;
|
|
124
|
-
#maxTransmissions;
|
|
125
116
|
#messagesQueue = new DataReadQueue();
|
|
126
117
|
#receivedMessageToAck;
|
|
127
|
-
#receivedMessageAckTimer = Time.getTimer("Ack receipt timeout",
|
|
118
|
+
#receivedMessageAckTimer = Time.getTimer("Ack receipt timeout", MRP.STANDALONE_ACK_TIMEOUT_MS, () => {
|
|
128
119
|
if (this.#receivedMessageToAck !== void 0) {
|
|
129
120
|
const messageToAck = this.#receivedMessageToAck;
|
|
130
121
|
this.#receivedMessageToAck = void 0;
|
|
@@ -149,7 +140,6 @@ class MessageExchange {
|
|
|
149
140
|
#protocolId;
|
|
150
141
|
#closed = AsyncObservable();
|
|
151
142
|
#closing = AsyncObservable();
|
|
152
|
-
#useMRP;
|
|
153
143
|
/** Emits when the exchange is actually closed. This happens after all Retries and Communication are done. */
|
|
154
144
|
get closed() {
|
|
155
145
|
return this.#closed;
|
|
@@ -185,12 +175,12 @@ class MessageExchange {
|
|
|
185
175
|
packetHeader: { messageId },
|
|
186
176
|
payloadHeader: { requiresAck }
|
|
187
177
|
} = message;
|
|
188
|
-
if (!requiresAck || !this
|
|
178
|
+
if (!requiresAck || !this.channel.usesMrp) return;
|
|
189
179
|
await this.send(SecureMessageType.StandaloneAck, new Uint8Array(0), { includeAcknowledgeMessageId: messageId });
|
|
190
180
|
}
|
|
191
181
|
async onMessageReceived(message, duplicate = false) {
|
|
192
182
|
logger.debug("Message \xAB", MessageCodec.messageDiagnostics(message, { duplicate }));
|
|
193
|
-
if (message.payloadHeader.requiresAck && !this
|
|
183
|
+
if (message.payloadHeader.requiresAck && !this.channel.usesMrp) {
|
|
194
184
|
logger.debug("Ignoring ack-required flag because MRP is not used for this exchange");
|
|
195
185
|
message.payloadHeader.requiresAck = false;
|
|
196
186
|
}
|
|
@@ -253,7 +243,7 @@ class MessageExchange {
|
|
|
253
243
|
await this.#messagesQueue.write(message);
|
|
254
244
|
}
|
|
255
245
|
async send(messageType, payload, options) {
|
|
256
|
-
if (options?.requiresAck && !this
|
|
246
|
+
if (options?.requiresAck && !this.channel.usesMrp) {
|
|
257
247
|
options.requiresAck = false;
|
|
258
248
|
}
|
|
259
249
|
const {
|
|
@@ -264,11 +254,11 @@ class MessageExchange {
|
|
|
264
254
|
includeAcknowledgeMessageId,
|
|
265
255
|
logContext
|
|
266
256
|
} = options ?? {};
|
|
267
|
-
if (!this
|
|
257
|
+
if (!this.channel.usesMrp && includeAcknowledgeMessageId !== void 0) {
|
|
268
258
|
throw new InternalError("Cannot include an acknowledge message ID when MRP is not used");
|
|
269
259
|
}
|
|
270
260
|
if (messageType === SecureMessageType.StandaloneAck) {
|
|
271
|
-
if (!this
|
|
261
|
+
if (!this.channel.usesMrp) {
|
|
272
262
|
return;
|
|
273
263
|
}
|
|
274
264
|
if (requiresAck) {
|
|
@@ -280,7 +270,7 @@ class MessageExchange {
|
|
|
280
270
|
this.#used = true;
|
|
281
271
|
this.session.notifyActivity(false);
|
|
282
272
|
let ackedMessageId = includeAcknowledgeMessageId;
|
|
283
|
-
if (ackedMessageId === void 0 && this
|
|
273
|
+
if (ackedMessageId === void 0 && this.channel.usesMrp) {
|
|
284
274
|
ackedMessageId = this.#receivedMessageToAck?.packetHeader.messageId;
|
|
285
275
|
if (ackedMessageId !== void 0) {
|
|
286
276
|
this.#receivedMessageAckTimer.stop();
|
|
@@ -329,18 +319,18 @@ class MessageExchange {
|
|
|
329
319
|
protocolId: messageType === SecureMessageType.StandaloneAck ? SECURE_CHANNEL_PROTOCOL_ID : this.#protocolId,
|
|
330
320
|
messageType,
|
|
331
321
|
isInitiatorMessage: this.isInitiator,
|
|
332
|
-
requiresAck: requiresAck ?? (this
|
|
322
|
+
requiresAck: requiresAck ?? (this.channel.usesMrp && messageType !== SecureMessageType.StandaloneAck),
|
|
333
323
|
ackedMessageId,
|
|
334
324
|
hasSecuredExtension: false
|
|
335
325
|
},
|
|
336
326
|
payload
|
|
337
327
|
};
|
|
338
328
|
let ackPromise;
|
|
339
|
-
if (this
|
|
329
|
+
if (this.channel.usesMrp && message.payloadHeader.requiresAck && !disableMrpLogic) {
|
|
340
330
|
this.#sentMessageToAck = message;
|
|
341
331
|
this.#retransmissionTimer = Time.getTimer(
|
|
342
332
|
`Message retransmission ${message.packetHeader.messageId}`,
|
|
343
|
-
this
|
|
333
|
+
this.channel.getMrpResubmissionBackOffTime(0),
|
|
344
334
|
() => this.#retransmitMessage(message, expectedProcessingTimeMs)
|
|
345
335
|
);
|
|
346
336
|
const { promise, resolver, rejecter } = createPromise();
|
|
@@ -370,61 +360,27 @@ class MessageExchange {
|
|
|
370
360
|
} else if (this.#messagesQueue.size > 0) {
|
|
371
361
|
timeout = 0;
|
|
372
362
|
} else {
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
case "udp":
|
|
378
|
-
if (!this.#useMRP) {
|
|
379
|
-
throw new MatterFlowError(
|
|
380
|
-
"No response expected for this message exchange because UDP and no MRP."
|
|
381
|
-
);
|
|
382
|
-
}
|
|
383
|
-
const { expectedProcessingTimeMs } = options ?? {};
|
|
384
|
-
timeout = this.calculateMaximumPeerResponseTime(expectedProcessingTimeMs);
|
|
385
|
-
break;
|
|
386
|
-
case "ble":
|
|
387
|
-
timeout = 3e4;
|
|
388
|
-
break;
|
|
389
|
-
default:
|
|
390
|
-
throw new MatterFlowError(
|
|
391
|
-
`Can not calculate expected timeout for unknown channel type: ${this.channel.type}`
|
|
392
|
-
);
|
|
393
|
-
}
|
|
394
|
-
timeout += PEER_RESPONSE_TIME_BUFFER_MS;
|
|
363
|
+
timeout = this.channel.calculateMaximumPeerResponseTimeMs(
|
|
364
|
+
this.context.localSessionParameters,
|
|
365
|
+
options?.expectedProcessingTimeMs
|
|
366
|
+
);
|
|
395
367
|
}
|
|
396
368
|
return this.#messagesQueue.read(timeout);
|
|
397
369
|
}
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
* side of the exchange.
|
|
403
|
-
*
|
|
404
|
-
* @see {@link MatterSpecification.v10.Core}, section 4.11.2.1
|
|
405
|
-
*/
|
|
406
|
-
#getResubmissionBackOffTime(retransmissionCount, sessionParameters) {
|
|
407
|
-
const { activeIntervalMs, idleIntervalMs } = sessionParameters ?? {
|
|
408
|
-
activeIntervalMs: this.#activeIntervalMs,
|
|
409
|
-
idleIntervalMs: this.#idleIntervalMs
|
|
410
|
-
};
|
|
411
|
-
const baseInterval = sessionParameters !== void 0 || this.session.isPeerActive() ? activeIntervalMs : idleIntervalMs;
|
|
412
|
-
return Math.floor(
|
|
413
|
-
MRP_BACKOFF_MARGIN * baseInterval * Math.pow(MRP_BACKOFF_BASE, Math.max(0, retransmissionCount - MRP_BACKOFF_THRESHOLD)) * (1 + (sessionParameters !== void 0 ? 1 : Math.random()) * MRP_BACKOFF_JITTER)
|
|
370
|
+
calculateMaximumPeerResponseTimeMs(expectedProcessingTimeMs = DEFAULT_EXPECTED_PROCESSING_TIME_MS) {
|
|
371
|
+
return this.channel.calculateMaximumPeerResponseTimeMs(
|
|
372
|
+
this.context.localSessionParameters,
|
|
373
|
+
expectedProcessingTimeMs
|
|
414
374
|
);
|
|
415
375
|
}
|
|
416
|
-
calculateMaximumPeerResponseTime(expectedProcessingTimeMs = DEFAULT_EXPECTED_PROCESSING_TIME_MS) {
|
|
417
|
-
let finalWaitTime = expectedProcessingTimeMs;
|
|
418
|
-
for (let i = 0; i < this.#maxTransmissions; i++) {
|
|
419
|
-
finalWaitTime += this.#getResubmissionBackOffTime(i, this.context.localSessionParameters);
|
|
420
|
-
}
|
|
421
|
-
return finalWaitTime;
|
|
422
|
-
}
|
|
423
376
|
#retransmitMessage(message, expectedProcessingTimeMs) {
|
|
424
377
|
this.#retransmissionCounter++;
|
|
425
|
-
if (this.#retransmissionCounter >=
|
|
378
|
+
if (this.#retransmissionCounter >= MRP.MAX_TRANSMISSIONS) {
|
|
426
379
|
if (expectedProcessingTimeMs !== void 0) {
|
|
427
|
-
const finalWaitTime = this.
|
|
380
|
+
const finalWaitTime = this.channel.calculateMaximumPeerResponseTimeMs(
|
|
381
|
+
this.context.localSessionParameters,
|
|
382
|
+
expectedProcessingTimeMs
|
|
383
|
+
) - (this.#retransmissionTimer?.intervalMs ?? 0);
|
|
428
384
|
if (finalWaitTime > 0) {
|
|
429
385
|
this.#retransmissionCounter--;
|
|
430
386
|
logger.debug(
|
|
@@ -453,7 +409,7 @@ class MessageExchange {
|
|
|
453
409
|
if (this.#retransmissionCounter === 1) {
|
|
454
410
|
this.context.resubmissionStarted();
|
|
455
411
|
}
|
|
456
|
-
const resubmissionBackoffTime = this
|
|
412
|
+
const resubmissionBackoffTime = this.channel.getMrpResubmissionBackOffTime(this.#retransmissionCounter);
|
|
457
413
|
logger.debug(
|
|
458
414
|
`Resubmit message ${message.packetHeader.messageId} (retransmission attempt ${this.#retransmissionCounter}, backoff time ${resubmissionBackoffTime}ms))`
|
|
459
415
|
);
|
|
@@ -554,8 +510,8 @@ class MessageExchange {
|
|
|
554
510
|
return this.#close();
|
|
555
511
|
}
|
|
556
512
|
let maxResubmissionTime = 0;
|
|
557
|
-
for (let i = this.#retransmissionCounter; i <=
|
|
558
|
-
maxResubmissionTime += this
|
|
513
|
+
for (let i = this.#retransmissionCounter; i <= MRP.MAX_TRANSMISSIONS; i++) {
|
|
514
|
+
maxResubmissionTime += this.channel.getMrpResubmissionBackOffTime(i);
|
|
559
515
|
}
|
|
560
516
|
this.#closeTimer = Time.getTimer(
|
|
561
517
|
`Message exchange cleanup ${this.session.name} / ${this.#exchangeId}`,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/protocol/MessageExchange.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["messageType", "error"]
|
|
6
6
|
}
|
|
@@ -8,6 +8,7 @@ export * from "./DeviceAdvertiser.js";
|
|
|
8
8
|
export * from "./DeviceCommissioner.js";
|
|
9
9
|
export * from "./ExchangeManager.js";
|
|
10
10
|
export * from "./ExchangeProvider.js";
|
|
11
|
+
export * from "./MessageChannel.js";
|
|
11
12
|
export * from "./MessageCounter.js";
|
|
12
13
|
export * from "./MessageExchange.js";
|
|
13
14
|
export * from "./MessageReceptionState.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/protocol/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/protocol/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC"}
|
|
@@ -8,6 +8,7 @@ export * from "./DeviceAdvertiser.js";
|
|
|
8
8
|
export * from "./DeviceCommissioner.js";
|
|
9
9
|
export * from "./ExchangeManager.js";
|
|
10
10
|
export * from "./ExchangeProvider.js";
|
|
11
|
+
export * from "./MessageChannel.js";
|
|
11
12
|
export * from "./MessageCounter.js";
|
|
12
13
|
export * from "./MessageExchange.js";
|
|
13
14
|
export * from "./MessageReceptionState.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/protocol/index.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/protocol",
|
|
3
|
-
"version": "0.15.0-alpha.0-
|
|
3
|
+
"version": "0.15.0-alpha.0-20250626-fc3a84ce9",
|
|
4
4
|
"description": "Low-level APIs for Matter interaction",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
"#*": "./src/*"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@matter/general": "0.15.0-alpha.0-
|
|
44
|
-
"@matter/model": "0.15.0-alpha.0-
|
|
45
|
-
"@matter/types": "0.15.0-alpha.0-
|
|
43
|
+
"@matter/general": "0.15.0-alpha.0-20250626-fc3a84ce9",
|
|
44
|
+
"@matter/model": "0.15.0-alpha.0-20250626-fc3a84ce9",
|
|
45
|
+
"@matter/types": "0.15.0-alpha.0-20250626-fc3a84ce9"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@matter/tools": "0.15.0-alpha.0-
|
|
49
|
-
"@matter/testing": "0.15.0-alpha.0-
|
|
48
|
+
"@matter/tools": "0.15.0-alpha.0-20250626-fc3a84ce9",
|
|
49
|
+
"@matter/testing": "0.15.0-alpha.0-20250626-fc3a84ce9"
|
|
50
50
|
},
|
|
51
51
|
"files": [
|
|
52
52
|
"dist/**/*",
|
|
@@ -388,10 +388,16 @@ export function ClusterClient<const T extends ClusterType>(
|
|
|
388
388
|
options: {
|
|
389
389
|
asTimedRequest?: boolean;
|
|
390
390
|
timedRequestTimeoutMs?: number;
|
|
391
|
+
expectedProcessingTimeMs?: number;
|
|
391
392
|
useExtendedFailSafeMessageResponseTimeout?: boolean;
|
|
392
393
|
} = {},
|
|
393
394
|
) => {
|
|
394
|
-
const {
|
|
395
|
+
const {
|
|
396
|
+
asTimedRequest,
|
|
397
|
+
timedRequestTimeoutMs,
|
|
398
|
+
useExtendedFailSafeMessageResponseTimeout,
|
|
399
|
+
expectedProcessingTimeMs,
|
|
400
|
+
} = options;
|
|
395
401
|
if (isGroupAddress) {
|
|
396
402
|
return interactionClient.invokeWithSuppressedResponse<Command<RequestT, ResponseT, any>>({
|
|
397
403
|
clusterId,
|
|
@@ -408,6 +414,7 @@ export function ClusterClient<const T extends ClusterType>(
|
|
|
408
414
|
request,
|
|
409
415
|
asTimedRequest,
|
|
410
416
|
timedRequestTimeoutMs,
|
|
417
|
+
expectedProcessingTimeMs,
|
|
411
418
|
useExtendedFailSafeMessageResponseTimeout,
|
|
412
419
|
});
|
|
413
420
|
};
|
|
@@ -65,6 +65,12 @@ export type SignatureFromCommandSpec<C extends Command<any, any, any>> = (
|
|
|
65
65
|
/** Override the request timeout when the command is sent as times request. Default are 10s. */
|
|
66
66
|
timedRequestTimeoutMs?: number;
|
|
67
67
|
|
|
68
|
+
/**
|
|
69
|
+
* Expected processing time on the device side for this command.
|
|
70
|
+
* useExtendedFailSafeMessageResponseTimeout is ignored if this value is set.
|
|
71
|
+
*/
|
|
72
|
+
expectedProcessingTimeMs?: number;
|
|
73
|
+
|
|
68
74
|
/**
|
|
69
75
|
* Use the extended fail-safe message response timeout of 30 seconds. Use this for all commands
|
|
70
76
|
* executed during an activated FailSafe context!
|
|
@@ -82,6 +88,12 @@ export type SignatureFromCommandSpecWithoutResponse<C extends Command<any, any,
|
|
|
82
88
|
/** Override the request timeout when the command is sent as times request. Default are 10s. */
|
|
83
89
|
timedRequestTimeoutMs?: number;
|
|
84
90
|
|
|
91
|
+
/**
|
|
92
|
+
* Expected processing time on the device side for this command.
|
|
93
|
+
* useExtendedFailSafeMessageResponseTimeout is ignored if this value is set.
|
|
94
|
+
*/
|
|
95
|
+
expectedProcessingTimeMs?: number;
|
|
96
|
+
|
|
85
97
|
/**
|
|
86
98
|
* Use the extended fail-safe message response timeout of 30 seconds. Use this for all commands
|
|
87
99
|
* executed during an activated FailSafe context!
|
|
@@ -50,8 +50,8 @@ import {
|
|
|
50
50
|
resolveCommandName,
|
|
51
51
|
resolveEventName,
|
|
52
52
|
} from "#types";
|
|
53
|
-
import { MessageChannel } from "../protocol/ExchangeManager.js";
|
|
54
53
|
import { ExchangeProvider, ReconnectableExchangeProvider } from "../protocol/ExchangeProvider.js";
|
|
54
|
+
import { MessageChannel } from "../protocol/MessageChannel.js";
|
|
55
55
|
import { DecodedAttributeReportStatus, DecodedAttributeReportValue } from "./AttributeDataDecoder.js";
|
|
56
56
|
import { DecodedDataReport } from "./DecodedDataReport.js";
|
|
57
57
|
import { DecodedEventData, DecodedEventReportStatus, DecodedEventReportValue } from "./EventDataDecoder.js";
|
|
@@ -203,6 +203,11 @@ export class InteractionClient {
|
|
|
203
203
|
throw new ImplementationError("ExchangeProvider does not support channelUpdated");
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
+
/** Calculates the current maximum response time for a message use in additional logic like timers. */
|
|
207
|
+
maximumPeerResponseTimeMs(expectedProcessingTimeMs?: number) {
|
|
208
|
+
return this.#exchangeProvider.maximumPeerResponseTimeMs(expectedProcessingTimeMs);
|
|
209
|
+
}
|
|
210
|
+
|
|
206
211
|
removeSubscription(subscriptionId: number) {
|
|
207
212
|
this.#ownSubscriptionIds.delete(subscriptionId);
|
|
208
213
|
this.#subscriptionClient.delete(subscriptionId);
|
|
@@ -741,11 +746,11 @@ export class InteractionClient {
|
|
|
741
746
|
const {
|
|
742
747
|
subscribeResponse: { subscriptionId, maxInterval },
|
|
743
748
|
report,
|
|
744
|
-
|
|
749
|
+
maximumPeerResponseTimeMs,
|
|
745
750
|
} = await this.withMessenger<{
|
|
746
751
|
subscribeResponse: TypeFromSchema<typeof TlvSubscribeResponse>;
|
|
747
752
|
report: DataReport;
|
|
748
|
-
|
|
753
|
+
maximumPeerResponseTimeMs: number;
|
|
749
754
|
}>(async messenger => {
|
|
750
755
|
const { subscribeResponse, report } = await messenger.sendSubscribeRequest({
|
|
751
756
|
interactionModelRevision: Specification.INTERACTION_MODEL_REVISION,
|
|
@@ -762,7 +767,7 @@ export class InteractionClient {
|
|
|
762
767
|
return {
|
|
763
768
|
subscribeResponse,
|
|
764
769
|
report,
|
|
765
|
-
|
|
770
|
+
maximumPeerResponseTimeMs: this.maximumPeerResponseTimeMs(),
|
|
766
771
|
};
|
|
767
772
|
}, executeQueued);
|
|
768
773
|
|
|
@@ -793,7 +798,7 @@ export class InteractionClient {
|
|
|
793
798
|
await this.#registerSubscription(
|
|
794
799
|
{
|
|
795
800
|
id: subscriptionId,
|
|
796
|
-
|
|
801
|
+
maximumPeerResponseTimeMs,
|
|
797
802
|
maxIntervalS: maxInterval,
|
|
798
803
|
onData: subscriptionListener,
|
|
799
804
|
onTimeout: updateTimeoutHandler,
|
|
@@ -852,11 +857,11 @@ export class InteractionClient {
|
|
|
852
857
|
const {
|
|
853
858
|
report,
|
|
854
859
|
subscribeResponse: { subscriptionId, maxInterval },
|
|
855
|
-
|
|
860
|
+
maximumPeerResponseTimeMs,
|
|
856
861
|
} = await this.withMessenger<{
|
|
857
862
|
subscribeResponse: TypeFromSchema<typeof TlvSubscribeResponse>;
|
|
858
863
|
report: DataReport;
|
|
859
|
-
|
|
864
|
+
maximumPeerResponseTimeMs: number;
|
|
860
865
|
}>(async messenger => {
|
|
861
866
|
const { subscribeResponse, report } = await messenger.sendSubscribeRequest({
|
|
862
867
|
interactionModelRevision: Specification.INTERACTION_MODEL_REVISION,
|
|
@@ -870,7 +875,7 @@ export class InteractionClient {
|
|
|
870
875
|
return {
|
|
871
876
|
subscribeResponse,
|
|
872
877
|
report,
|
|
873
|
-
|
|
878
|
+
maximumPeerResponseTimeMs: this.maximumPeerResponseTimeMs(),
|
|
874
879
|
};
|
|
875
880
|
}, executeQueued);
|
|
876
881
|
|
|
@@ -898,7 +903,7 @@ export class InteractionClient {
|
|
|
898
903
|
await this.#registerSubscription(
|
|
899
904
|
{
|
|
900
905
|
id: subscriptionId,
|
|
901
|
-
|
|
906
|
+
maximumPeerResponseTimeMs,
|
|
902
907
|
maxIntervalS: maxInterval,
|
|
903
908
|
onData: subscriptionListener,
|
|
904
909
|
onTimeout: updateTimeoutHandler,
|
|
@@ -1019,11 +1024,11 @@ export class InteractionClient {
|
|
|
1019
1024
|
const {
|
|
1020
1025
|
report,
|
|
1021
1026
|
subscribeResponse: { subscriptionId, maxInterval },
|
|
1022
|
-
|
|
1027
|
+
maximumPeerResponseTimeMs,
|
|
1023
1028
|
} = await this.withMessenger<{
|
|
1024
1029
|
subscribeResponse: TypeFromSchema<typeof TlvSubscribeResponse>;
|
|
1025
1030
|
report: DataReport;
|
|
1026
|
-
|
|
1031
|
+
maximumPeerResponseTimeMs: number;
|
|
1027
1032
|
}>(async messenger => {
|
|
1028
1033
|
const { subscribeResponse, report } = await messenger.sendSubscribeRequest({
|
|
1029
1034
|
interactionModelRevision: Specification.INTERACTION_MODEL_REVISION,
|
|
@@ -1042,7 +1047,7 @@ export class InteractionClient {
|
|
|
1042
1047
|
return {
|
|
1043
1048
|
subscribeResponse,
|
|
1044
1049
|
report,
|
|
1045
|
-
|
|
1050
|
+
maximumPeerResponseTimeMs: this.maximumPeerResponseTimeMs(),
|
|
1046
1051
|
};
|
|
1047
1052
|
}, executeQueued);
|
|
1048
1053
|
|
|
@@ -1116,7 +1121,7 @@ export class InteractionClient {
|
|
|
1116
1121
|
await this.#registerSubscription(
|
|
1117
1122
|
{
|
|
1118
1123
|
id: subscriptionId,
|
|
1119
|
-
|
|
1124
|
+
maximumPeerResponseTimeMs,
|
|
1120
1125
|
maxIntervalS: maxInterval,
|
|
1121
1126
|
|
|
1122
1127
|
onData: dataReport => subscriptionListener(DecodedDataReport(dataReport)),
|
|
@@ -1148,6 +1153,12 @@ export class InteractionClient {
|
|
|
1148
1153
|
/** Use this timeout and send the request as Timed Request. If this is specified the above parameter is implied. */
|
|
1149
1154
|
timedRequestTimeoutMs?: number;
|
|
1150
1155
|
|
|
1156
|
+
/**
|
|
1157
|
+
* Expected processing time on the device side for this command.
|
|
1158
|
+
* useExtendedFailSafeMessageResponseTimeout is ignored if this value is set.
|
|
1159
|
+
*/
|
|
1160
|
+
expectedProcessingTimeMs?: number;
|
|
1161
|
+
|
|
1151
1162
|
/** Use an extended Message Response Timeout as defined for FailSafe cases which is 30s. */
|
|
1152
1163
|
useExtendedFailSafeMessageResponseTimeout?: boolean;
|
|
1153
1164
|
|
|
@@ -1165,6 +1176,7 @@ export class InteractionClient {
|
|
|
1165
1176
|
command: { requestId, requestSchema, responseId, responseSchema, optional, timed },
|
|
1166
1177
|
asTimedRequest,
|
|
1167
1178
|
timedRequestTimeoutMs = DEFAULT_TIMED_REQUEST_TIMEOUT_MS,
|
|
1179
|
+
expectedProcessingTimeMs,
|
|
1168
1180
|
useExtendedFailSafeMessageResponseTimeout = false,
|
|
1169
1181
|
skipValidation,
|
|
1170
1182
|
} = options;
|
|
@@ -1218,9 +1230,10 @@ export class InteractionClient {
|
|
|
1218
1230
|
suppressResponse: false,
|
|
1219
1231
|
interactionModelRevision: Specification.INTERACTION_MODEL_REVISION,
|
|
1220
1232
|
},
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1233
|
+
expectedProcessingTimeMs ??
|
|
1234
|
+
(useExtendedFailSafeMessageResponseTimeout
|
|
1235
|
+
? DEFAULT_MINIMUM_RESPONSE_TIMEOUT_WITH_FAILSAFE_MS
|
|
1236
|
+
: undefined),
|
|
1224
1237
|
);
|
|
1225
1238
|
if (response === undefined) {
|
|
1226
1239
|
throw new MatterFlowError("No response received from invoke interaction but expected.");
|
|
@@ -98,10 +98,6 @@ const DATA_REPORT_MIN_AVAILABLE_BYTES_BEFORE_SENDING = 40;
|
|
|
98
98
|
class InteractionMessenger {
|
|
99
99
|
constructor(protected exchange: MessageExchange) {}
|
|
100
100
|
|
|
101
|
-
calculateMaximumPeerResponseTime(expectedProcessingTimeMs?: number) {
|
|
102
|
-
return this.exchange.calculateMaximumPeerResponseTime(expectedProcessingTimeMs);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
101
|
send(messageType: number, payload: Uint8Array, options?: ExchangeSendOptions) {
|
|
106
102
|
return this.exchange.send(messageType, payload, options);
|
|
107
103
|
}
|
|
@@ -14,7 +14,7 @@ const logger = Logger.get("SubscriptionClient");
|
|
|
14
14
|
|
|
15
15
|
export interface RegisteredSubscription {
|
|
16
16
|
id: number;
|
|
17
|
-
|
|
17
|
+
maximumPeerResponseTimeMs: number;
|
|
18
18
|
maxIntervalS: number;
|
|
19
19
|
onData: (dataReport: DataReport) => MaybePromise<void>;
|
|
20
20
|
onTimeout?: () => void;
|
|
@@ -53,7 +53,7 @@ export class SubscriptionClient implements ProtocolHandler {
|
|
|
53
53
|
this.#timeouts.delete(id);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
const maxIntervalMs = subscription.maxIntervalS * 1000 + subscription.
|
|
56
|
+
const maxIntervalMs = subscription.maxIntervalS * 1000 + subscription.maximumPeerResponseTimeMs;
|
|
57
57
|
|
|
58
58
|
timer = Time.getTimer("Subscription timeout", maxIntervalMs, () => {
|
|
59
59
|
logger.info(`Subscription ${id} timed out after ${maxIntervalMs}ms`);
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
ServerAddress,
|
|
23
23
|
serverAddressToString,
|
|
24
24
|
} from "#general";
|
|
25
|
+
import { InteractionClient, InteractionClientProvider } from "#interaction/InteractionClient.js";
|
|
25
26
|
import { MdnsScanner } from "#mdns/MdnsScanner.js";
|
|
26
27
|
import {
|
|
27
28
|
CommissioningError,
|
|
@@ -30,13 +31,13 @@ import {
|
|
|
30
31
|
NodeIdConflictError,
|
|
31
32
|
} from "#peer/ControllerCommissioningFlow.js";
|
|
32
33
|
import { ControllerDiscovery, PairRetransmissionLimitReachedError } from "#peer/ControllerDiscovery.js";
|
|
34
|
+
import { ExchangeManager } from "#protocol/ExchangeManager.js";
|
|
35
|
+
import { DedicatedChannelExchangeProvider } from "#protocol/ExchangeProvider.js";
|
|
36
|
+
import { MessageChannel } from "#protocol/MessageChannel.js";
|
|
33
37
|
import { ChannelStatusResponseError } from "#securechannel/index.js";
|
|
34
38
|
import { PaseClient } from "#session/index.js";
|
|
35
39
|
import { SessionManager } from "#session/SessionManager.js";
|
|
36
40
|
import { DiscoveryCapabilitiesBitmap, NodeId, SECURE_CHANNEL_PROTOCOL_ID, TypeFromPartialBitSchema } from "#types";
|
|
37
|
-
import { InteractionClient, InteractionClientProvider } from "../interaction/InteractionClient.js";
|
|
38
|
-
import { ExchangeManager, MessageChannel } from "../protocol/ExchangeManager.js";
|
|
39
|
-
import { DedicatedChannelExchangeProvider } from "../protocol/ExchangeProvider.js";
|
|
40
41
|
import { PeerAddress } from "./PeerAddress.js";
|
|
41
42
|
import { NodeDiscoveryType, PeerSet } from "./PeerSet.js";
|
|
42
43
|
|