@matter/protocol 0.16.8 → 0.16.9-alpha.0-20260203-080317ea1
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/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/cjs/action/client/ClientInteraction.js +11 -6
- package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
- package/dist/cjs/common/Mark.d.ts +1 -0
- package/dist/cjs/common/Mark.d.ts.map +1 -1
- package/dist/cjs/common/Mark.js +1 -0
- package/dist/cjs/common/Mark.js.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.js +4 -3
- package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
- package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsClient.js +12 -9
- package/dist/cjs/mdns/MdnsClient.js.map +1 -1
- package/dist/cjs/peer/ControllerCommissioner.js +1 -1
- package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
- package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
- package/dist/cjs/peer/PeerSet.js +2 -3
- package/dist/cjs/peer/PeerSet.js.map +1 -1
- package/dist/cjs/protocol/MessageExchange.d.ts +5 -0
- package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageExchange.js +20 -0
- package/dist/cjs/protocol/MessageExchange.js.map +1 -1
- package/dist/cjs/securechannel/SecureChannelMessenger.d.ts +1 -1
- package/dist/cjs/securechannel/SecureChannelMessenger.d.ts.map +1 -1
- package/dist/cjs/securechannel/SecureChannelMessenger.js.map +1 -1
- package/dist/cjs/session/NodeSession.d.ts.map +1 -1
- package/dist/cjs/session/NodeSession.js +1 -0
- package/dist/cjs/session/NodeSession.js.map +1 -1
- package/dist/cjs/session/pase/PaseClient.js +1 -1
- package/dist/cjs/session/pase/PaseClient.js.map +1 -1
- package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
- package/dist/cjs/session/pase/PaseServer.js +7 -1
- package/dist/cjs/session/pase/PaseServer.js.map +1 -1
- package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/esm/action/client/ClientInteraction.js +11 -6
- package/dist/esm/action/client/ClientInteraction.js.map +1 -1
- package/dist/esm/common/Mark.d.ts +1 -0
- package/dist/esm/common/Mark.d.ts.map +1 -1
- package/dist/esm/common/Mark.js +1 -0
- package/dist/esm/common/Mark.js.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.js +4 -3
- package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
- package/dist/esm/mdns/MdnsClient.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsClient.js +12 -9
- package/dist/esm/mdns/MdnsClient.js.map +1 -1
- package/dist/esm/peer/ControllerCommissioner.js +1 -1
- package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
- package/dist/esm/peer/PeerSet.d.ts.map +1 -1
- package/dist/esm/peer/PeerSet.js +2 -3
- package/dist/esm/peer/PeerSet.js.map +1 -1
- package/dist/esm/protocol/MessageExchange.d.ts +5 -0
- package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/esm/protocol/MessageExchange.js +20 -0
- package/dist/esm/protocol/MessageExchange.js.map +1 -1
- package/dist/esm/securechannel/SecureChannelMessenger.d.ts +1 -1
- package/dist/esm/securechannel/SecureChannelMessenger.d.ts.map +1 -1
- package/dist/esm/securechannel/SecureChannelMessenger.js.map +1 -1
- package/dist/esm/session/NodeSession.d.ts.map +1 -1
- package/dist/esm/session/NodeSession.js +1 -0
- package/dist/esm/session/NodeSession.js.map +1 -1
- package/dist/esm/session/pase/PaseClient.js +1 -1
- package/dist/esm/session/pase/PaseClient.js.map +1 -1
- package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
- package/dist/esm/session/pase/PaseServer.js +7 -1
- package/dist/esm/session/pase/PaseServer.js.map +1 -1
- package/package.json +6 -6
- package/src/action/client/ClientInteraction.ts +11 -6
- package/src/common/Mark.ts +1 -0
- package/src/interaction/InteractionMessenger.ts +4 -3
- package/src/mdns/MdnsClient.ts +14 -10
- package/src/peer/ControllerCommissioner.ts +1 -1
- package/src/peer/PeerSet.ts +2 -3
- package/src/protocol/MessageExchange.ts +24 -0
- package/src/securechannel/SecureChannelMessenger.ts +1 -1
- package/src/session/NodeSession.ts +1 -0
- package/src/session/pase/PaseClient.ts +1 -1
- package/src/session/pase/PaseServer.ts +7 -1
|
@@ -152,6 +152,9 @@ export class MessageExchange {
|
|
|
152
152
|
#sentMessageAckFailure: ((error?: Error) => void) | undefined;
|
|
153
153
|
#retransmissionTimer: Timer | undefined;
|
|
154
154
|
#retransmissionCounter = 0;
|
|
155
|
+
#totalRetransmissionCounter = 0; // counter for all messages within this exchange
|
|
156
|
+
#messageSendCounter = 0;
|
|
157
|
+
#messageReceivedCounter = 0;
|
|
155
158
|
#closeTimer: Timer | undefined;
|
|
156
159
|
#isDestroyed = false;
|
|
157
160
|
#timedInteractionTimer: Timer | undefined;
|
|
@@ -266,6 +269,7 @@ export class MessageExchange {
|
|
|
266
269
|
|
|
267
270
|
async onMessageReceived(message: Message, duplicate = false) {
|
|
268
271
|
logger.debug("Message", Mark.INBOUND, Message.diagnosticsOf(this, message, { duplicate }));
|
|
272
|
+
this.#messageReceivedCounter++;
|
|
269
273
|
|
|
270
274
|
// Adjust the incoming message when ack was required, but this exchange does not use it to skip all relevant logic
|
|
271
275
|
if (message.payloadHeader.requiresAck && !this.session.usesMrp) {
|
|
@@ -298,6 +302,7 @@ export class MessageExchange {
|
|
|
298
302
|
// Received a message retransmission. This means that the other side didn't get our ack
|
|
299
303
|
// Resending the previous reply message which contains the ack
|
|
300
304
|
using _acking = this.join("resending ack");
|
|
305
|
+
this.#messageSendCounter++;
|
|
301
306
|
await this.channel.send(this.#sentMessageToAck);
|
|
302
307
|
return;
|
|
303
308
|
}
|
|
@@ -381,6 +386,7 @@ export class MessageExchange {
|
|
|
381
386
|
}
|
|
382
387
|
|
|
383
388
|
this.#used = true;
|
|
389
|
+
this.#messageSendCounter++;
|
|
384
390
|
this.session.notifyActivity(false);
|
|
385
391
|
|
|
386
392
|
let ackedMessageId = includeAcknowledgeMessageId;
|
|
@@ -512,6 +518,7 @@ export class MessageExchange {
|
|
|
512
518
|
|
|
513
519
|
#retransmitMessage(message: Message, expectedProcessingTime?: Duration) {
|
|
514
520
|
this.#retransmissionCounter++;
|
|
521
|
+
this.#totalRetransmissionCounter++;
|
|
515
522
|
if (this.considerClosed || this.#retransmissionCounter >= MRP.MAX_TRANSMISSIONS) {
|
|
516
523
|
// Ok all 4 resubmissions are done, but we need to wait a bit longer because of processing time and
|
|
517
524
|
// the resubmissions from the other side
|
|
@@ -526,6 +533,7 @@ export class MessageExchange {
|
|
|
526
533
|
);
|
|
527
534
|
if (finalWaitTime > 0) {
|
|
528
535
|
this.#retransmissionCounter--; // We will not resubmit the message again
|
|
536
|
+
this.#totalRetransmissionCounter--;
|
|
529
537
|
logger.debug(
|
|
530
538
|
`Message ${Message.via(this, message)}: Wait additional ${Duration.format(finalWaitTime)} for processing time and peer resubmissions after all our resubmissions`,
|
|
531
539
|
);
|
|
@@ -553,6 +561,7 @@ export class MessageExchange {
|
|
|
553
561
|
return;
|
|
554
562
|
}
|
|
555
563
|
|
|
564
|
+
this.#messageSendCounter++;
|
|
556
565
|
this.session.notifyActivity(false);
|
|
557
566
|
|
|
558
567
|
this.context.retry(this.#retransmissionCounter);
|
|
@@ -730,6 +739,21 @@ export class MessageExchange {
|
|
|
730
739
|
|
|
731
740
|
return Diagnostic.via(`${this.session.via}${Mark.EXCHANGE}${this.idStr}`);
|
|
732
741
|
}
|
|
742
|
+
|
|
743
|
+
/**
|
|
744
|
+
* Expose some diagnostics for logging.
|
|
745
|
+
* For simply one message exchanges without retransmissions nothing will be exposed
|
|
746
|
+
*/
|
|
747
|
+
get diagnostics() {
|
|
748
|
+
if (
|
|
749
|
+
this.#totalRetransmissionCounter === 0 &&
|
|
750
|
+
this.#messageSendCounter === 1 &&
|
|
751
|
+
this.#messageReceivedCounter === 1
|
|
752
|
+
) {
|
|
753
|
+
return undefined;
|
|
754
|
+
}
|
|
755
|
+
return `${this.#messageReceivedCounter}${Mark.TRANSFERRED}${this.#messageSendCounter}${this.#totalRetransmissionCounter > 0 ? `+${this.#totalRetransmissionCounter}` : ""}`;
|
|
756
|
+
}
|
|
733
757
|
}
|
|
734
758
|
|
|
735
759
|
export namespace MessageExchange {
|
|
@@ -33,7 +33,7 @@ export class SecureChannelMessenger {
|
|
|
33
33
|
#defaultExpectedProcessingTime: Duration;
|
|
34
34
|
|
|
35
35
|
constructor(
|
|
36
|
-
|
|
36
|
+
readonly exchange: MessageExchange,
|
|
37
37
|
defaultExpectedProcessingTime = EXPECTED_CRYPTO_PROCESSING_TIME,
|
|
38
38
|
) {
|
|
39
39
|
this.#defaultExpectedProcessingTime = defaultExpectedProcessingTime;
|
|
@@ -389,6 +389,7 @@ export namespace NodeSession {
|
|
|
389
389
|
session.via,
|
|
390
390
|
`${operation} session with`,
|
|
391
391
|
Diagnostic.strong(PeerAddress({ fabricIndex: fabric.fabricIndex, nodeId: peerNodeId }).toString()),
|
|
392
|
+
messenger.exchange.diagnostics,
|
|
392
393
|
Diagnostic.dict({
|
|
393
394
|
address: messenger.channelName,
|
|
394
395
|
fabric: `${GlobalFabricId.strOf(fabric.globalId)} (#${fabric.fabricIndex})`,
|
|
@@ -118,7 +118,7 @@ export class PaseClient {
|
|
|
118
118
|
peerSessionParameters,
|
|
119
119
|
});
|
|
120
120
|
await messenger.close();
|
|
121
|
-
logger.info("Paired successfully", Mark.OUTBOUND, messenger.channelName);
|
|
121
|
+
logger.info("Paired successfully", Mark.OUTBOUND, messenger.channelName, exchange.diagnostics);
|
|
122
122
|
|
|
123
123
|
return secureSession;
|
|
124
124
|
}
|
|
@@ -96,6 +96,7 @@ export class PaseServer implements ProtocolHandler {
|
|
|
96
96
|
this.#pairingErrors++;
|
|
97
97
|
logger.error(
|
|
98
98
|
`An error occurred during the PASE commissioning (${this.#pairingErrors}/${PASE_COMMISSIONING_MAX_ERRORS}):`,
|
|
99
|
+
this.#pairingMessenger?.exchange.diagnostics,
|
|
99
100
|
error,
|
|
100
101
|
);
|
|
101
102
|
|
|
@@ -189,7 +190,12 @@ export class PaseServer implements ProtocolHandler {
|
|
|
189
190
|
isResumption: false,
|
|
190
191
|
peerSessionParameters: initiatorSessionParams,
|
|
191
192
|
});
|
|
192
|
-
logger.info(
|
|
193
|
+
logger.info(
|
|
194
|
+
session.via,
|
|
195
|
+
"New session with",
|
|
196
|
+
Diagnostic.strong(messenger.channelName),
|
|
197
|
+
messenger.exchange.diagnostics,
|
|
198
|
+
);
|
|
193
199
|
|
|
194
200
|
await messenger.sendSuccess();
|
|
195
201
|
await messenger.close();
|