mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-11-15 00:04:29 +08:00
doc: Add BTSnoop/Monitor protocol documentation
This commit is contained in:
parent
952efea7bd
commit
a779ec83c9
@ -262,6 +262,8 @@ EXTRA_DIST += doc/obex-api.txt doc/obex-agent-api.txt
|
||||
EXTRA_DIST += doc/pics-opp.txt doc/pixit-opp.txt \
|
||||
doc/pts-opp.txt
|
||||
|
||||
EXTRA_DIST += doc/btsnoop.txt
|
||||
|
||||
EXTRA_DIST += tools/magic.btsnoop
|
||||
|
||||
AM_CFLAGS += @DBUS_CFLAGS@ @GLIB_CFLAGS@
|
||||
|
59
doc/btsnoop.txt
Normal file
59
doc/btsnoop.txt
Normal file
@ -0,0 +1,59 @@
|
||||
BTSnoop/Monitor protocol formats
|
||||
********************************
|
||||
|
||||
TTY-based protocol
|
||||
==================
|
||||
|
||||
This section covers the protocol that can be parsed by btmon when
|
||||
passing it the --tty parameter. The protocol is little endian, packet
|
||||
based, and has the following header for each packet:
|
||||
|
||||
struct tty_hdr {
|
||||
uint16_t data_len;
|
||||
uint16_t opcode;
|
||||
uint8_t flags;
|
||||
uint8_t hdr_len;
|
||||
uint8_t ext_hdr[0];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
The actual payload starts at ext_hdr + hdr_len and has the length of
|
||||
data_len - 4 - hdr_len. Each field of the header is defined as follows:
|
||||
|
||||
data_len:
|
||||
This is the total length of the entire packet, excuding the
|
||||
data_len field itself.
|
||||
|
||||
opcode:
|
||||
The BTSnoop opcode
|
||||
|
||||
flags:
|
||||
Special flags for the packet. Currently no flags are defined.
|
||||
|
||||
hdr_len:
|
||||
Length of the extended header.
|
||||
|
||||
ext_hdr:
|
||||
This is a sequence of header extension fields formatted as:
|
||||
|
||||
struct {
|
||||
uint8_t type;
|
||||
uint8_t value[length];
|
||||
}
|
||||
|
||||
The length of the value is dependent on the type. Currently the
|
||||
following types are defined:
|
||||
|
||||
Type Length Meaning
|
||||
----------------------------------------------------------------
|
||||
1 Command drops 1 byte Dropped HCI command packets
|
||||
2 Event drops 1 byte Dropped HCI event packets
|
||||
3 ACL TX drops 1 byte Dropped ACL TX packets
|
||||
4 ACL RX drops 1 byte Dropped ACL RX packets
|
||||
5 SCO TX drops 1 byte Dropped SCO TX packets
|
||||
6 SCO RX drops 1 byte Dropped SCO RX packets
|
||||
7 Other drops 1 byte Dropped other packets
|
||||
8 32-bit timestamp 4 bytes Timestamp in 1/10th ms
|
||||
|
||||
The fields of the extended header must be sorted by increasing
|
||||
type. This is essential so that unknown types can be ignored and
|
||||
the parser can jump to processing the payload.
|
Loading…
Reference in New Issue
Block a user