--- Begin Message ---
I'm requesting an addition of the new DLT type. I'd call it:
DLT_SILABS_DEBUG_CHANNEL.
The description of the protocol is here:
https://github.com/SiliconLabs/java_packet_trace_library/blob/master/doc/debug-channel.md
...
In case of errors (such as the ] not being present after the length bytes) the
recovery is typically accomplished by the deframing state engine reading
forward until a next [ is found, and then attempting to resume the deframing.
This case can be detected, because the payload of individual message contains
the sequence number.
So, presumably:
1) all packets in a LINKTYPE_SILABS_DEBUG_CHANNEL capture begin with a
'[';
No. Like the document describes: tooling that deals with deframing is
expected to remove the starting `[`, the ending `]` and the 2 byte
length right after the `[`.
In case of creating a PCAPNG file out of this stream, the payload of the
packet blocks will NOT contain the framing. So the "packet" starts with
the debug message.
2) all bytes after the '[' and the payload bytes specified by the
length should be ignored as being from a framing error, unless there's just one
byte equal to ']'?
Deframing engine is looking for a `]` after the end of the
bytes. If it doesn't find it, it's considered "in error". It will stay
"in error" and not emit any deframed messages, until it:
a.) Finds a next `[`.
b.) Succesfully reads the bytes.
c.) Succesfully reads the ']' after the bytes.
If this happens, the deframing is back out of error, and continues
properly emitting the individual messages.
This design is intended to favor simplicity over recoverability. You can
be unlucky, and encounter a sequence `[`, 0xFF, 0xFF inside the payload
when you're in-error, and this would immediately cause you to skip
bytes. Which may be way too much. And if you have fatefully many `[`
characters in the payload, you may never recover.
That's ok though. The use of this protocol is such, that the user
typically simply breaks off all the communication and gives up, when the
deframer ends up in-error. Deframing errors are rare, because all this
data in majority of cases travels over TCP/IP. What gets lost are
typically whole messages because of various buffer exhaustion, not
individual bytes that would mess up with the deframing.
I.e., code reading the capture file does *not* have to do any deframing?
Correct. Capture file is already deframed into individual debug messages.
What do the bits in the "Flags" field of the 3.0 debug message mean? Does "few
bytes of future-proofing flags" mean that there are currently no flag bits defined, so that
the field should always be zero, but there might be flag bits defined in the future?
They mean. "Reserved for future use". The value currently can be
arbitrary and until someone defines values for them, they have no
meaning. I'll make this more specific in the doc.
The types supported are listed in this file.
The file in question:
https://github.com/SiliconLabs/java_packet_trace_library/blob/master/silabs-pti/src/main/java/com/silabs/pti/debugchannel/DebugMessageType.java
lists a bunch of message types; is there a document that describes the format
of messages with each of those types?
Good eyes :)
I am currently in the process of gathering all this documentation, but I
moved forward with starting with the DLT_ process before I finish all
that, since it's a decent digital archaeology project and meanwhile I
can wait out the pull-requests for the new DLT_ numbers to be approved.
The outcome of documentation gathering effort will be:
a.) The message types that are actually of immediate concern (the
TX/RX packet formats of various radios, mostly envelopes that
essentially wrap the payload of a well-known protocol, such as Bluetooth
or Zigbee) are well documented, and I'll gather all that and document it
in a same location.
b.) Several message types that are helpful, and would be "nice to
show" in the utilities that visualize or analyze these messages are
simple, and will be documented as well.
c.) Many message types will be declared "Obsolete." as the format and
purpose was lost over time, but the message types will remain reserved
forever.
d.) Some message types will be declared "Reserved, vendor specific.",
as the format of those messages is somewhat proprietary. (There may be
just one or two of those, if any).
--- End Message ---
___
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers