tree: 7aafa19747f1faf67951045f5585145e9ef5acc1 [path history] [tgz]
  1. tests/
  2. ApplicationExchangeDispatch.cpp
  3. ApplicationExchangeDispatch.h
  4. BUILD.gn
  5. EphemeralExchangeDispatch.h
  6. ErrorCategory.cpp
  7. ErrorCategory.h
  8. ExchangeContext.cpp
  9. ExchangeContext.h
  10. ExchangeDelegate.h
  11. ExchangeHolder.h
  12. ExchangeMessageDispatch.cpp
  13. ExchangeMessageDispatch.h
  14. ExchangeMgr.cpp
  15. ExchangeMgr.h
  16. Flags.h
  17. README.md
  18. ReliableMessageContext.cpp
  19. ReliableMessageContext.h
  20. ReliableMessageMgr.cpp
  21. ReliableMessageMgr.h
  22. ReliableMessageProtocolConfig.cpp
  23. ReliableMessageProtocolConfig.h
  24. SessionParameters.h
src/messaging/README.md

Message Layer

Debug Prints

When progress logging is enabled, the message layer emits a number of prints that provide more details on the messages being sent or received. Most of these are fairly self explanatory with the exception of the ones listed below.

Message Transmission

Legend

On message transmission, the following print is emitted. The various fields that will be expanded are denoted with $ .

Unless specified, numerical values are represented in decimal notation.

<<< [E:$exchange_id S:$session_id M:$msg_id (Ack: $ack_msg_id)] ($msg_category) Msg TX to $fabric_index:$destination [$compressed_fabric_id] [$peer_address] --- Type $protocol_id:$msg_type ($protocol_name:$msg_type_name) (B:$size)
FieldDescription
exchange_idExchange ID + IsInitiator flag from message header (‘i’ if initiator, ‘r’ if responder')
session_idLocal session id for unicast secure, 0 for unicast un-secure, group id for groupcast
msg_idMessage counter
ack_msg_idIf present, the ACK message counter. Otherwise, this entire field is omitted from display
msg_categoryU: Un-secure Unicast, S: Secure Unicast, G: Secure Groupcast
fabric_indexFabric index on the sending side
destination64-bit Node Identifier that can represent both group, operational and temporary node identifiers depending on $msg_category (in hex)
compressed_fabric_idIf present and valid, lower 16-bits of the compressed fabric ID (in hex). Otherwise, it will be set to 0000.
peer_addressThe peer address (IP and port) for the session
protocol_id16-bit Protocol ID within the common vendor namespace (in hex)
msg_type8-bit message type ID (in hex)
protocol_nameIf available, a logical name for the protocol
msg_type_nameIf available, a logical name for the message type
sizeSize, in bytes, of the message being transmitted. Includes the Matter payload header and packet header but not transport headers

Examples:

Unencrypted Unicast:

<<< [E:26341i S:0 M:264589322] (U) Msg TX to 0:0000000000000000 [0000] --- Type 0000:30 (SecureChannel:CASE_Sigma1)

Secure Unicast:

<<< [E:26347i S:5110 M:30642895 (Ack: 9203233)] (S) Msg TX to 1:0000000012344321 [1667] --- Type 0001:06 (IM:WriteRequest)

Secure Groupcast:

<<< [E:26349i S:17850 M:2000] (G) Msg TX to 1:FFFFFFFFFFFF0102 [1667] --- Type 0001:06 (IM:WriteRequest)

Message Reception

Legend

On message transmission, the following print is emitted. The various fields that will be expanded are denoted with $ .

Unless specified, numerical values are represented in decimal notation.

>>> [E:$exchange_id M: $msg_id (Ack: $ack_msg_id)] ($msg_category) Msg RX from $fabric_index:$source [$compressed_fabric_id] --- Type $protocol_id:$msg_type ($protocol_name:$msg_type_name) (B:$size)

This has a similar legend to that for transmission except $source denotes the source's node identifier and $fabric_index is the index on the recipient.

Examples

Unencrypted Unicast:

>>> [E:26341i S:0 M:264589322] (U) Msg RX from 0:0FDE2AE2EAF5D74D [0000] --- Type 0000:30 (SecureChannel:CASE_Sigma1)

Secure Unicast:

>>> [E:26342i S:62311 M:30642885] (S) Msg RX from 1:000000000001B669 [1667] --- Type 0001:08 (IM:InvokeCommandRequest)

Secure Groupcast:

>>> [E:26349i S:1720 M:2000] (G) Msg RX from 1:000000000001B669 [0000] --- Type 0001:06 (IM:WriteRequest)