Skip to contentSkip to conversation

hcidump iconsistent byte ordering?

Bluez-devel soraberri 2 participants 3 messages Jan 24, 2005 Bluetooth drivers

lore
Share & tools
lore

soraberri

author
#0 lore raw

let's say I want to decipher the first two HCI events from the "hcitool inq" dump:
< HCI Command: Inquiry (0x01|0x0001) plen 5
33 8B 9E 08 64

Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

00 01 01 04

Easily, the first one is the Inquiry command. Its command parameters are specified (Bluetooth Specification 1.1) in this order: LAP, Inquiry_Length, Num_Responses; so from the hcidump output we have:

	LAP: 0x9E8B33 (general inquiry LAP)
	Inquiry_Length: 0x08
	Num_Responses: 0x64

so far so good; it makes sense, but how about the command status event? the order of its event parameters from the specification is: Status, Num_HCI_Command_Packets, Command_Opcode. So following the same procedure
as before I would get:

	Status: 0x00
	Num_HCI_Command_Packets: 0x01
	Command_Opcode: 0x0401

but this doesn't make sense because Command_Opcode should be 0x0001 (Inquiry command). These bytes are now located as the two first bytes of the output, and the reading order is different from that of LAP's order in the Inquiry Command.

So, I'm asking, how must I read hcidump output in order to agree with the specification?

REgards

Luis Peiro

-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

maintainer
#1 lore raw

Hi Luis,

Quoted 24 lines

let's say I want to decipher the first two HCI events from the "hcitool inq" dump:
< HCI Command: Inquiry (0x01|0x0001) plen 5
33 8B 9E 08 64

Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

00 01 01 04

Easily, the first one is the Inquiry command. Its command parameters are specified (Bluetooth Specification 1.1) in this order: LAP, Inquiry_Length, Num_Responses; so from the hcidump output we have:

	LAP: 0x9E8B33 (general inquiry LAP)
	Inquiry_Length: 0x08
	Num_Responses: 0x64

so far so good; it makes sense, but how about the command status event? the order of its event parameters from the specification is: Status, Num_HCI_Command_Packets, Command_Opcode. So following the same procedure
as before I would get:

	Status: 0x00
	Num_HCI_Command_Packets: 0x01
	Command_Opcode: 0x0401
Quoted 7 lines

but this doesn't make sense because Command_Opcode should be 0x0001 (Inquiry command). These bytes are now located as the two first bytes of the output, and the reading order is different from that of LAP's order in the Inquiry Command.

So, I'm asking, how must I read hcidump output in order to agree with the specification?

the command opcode consists of OGF and OCF. Look at the specification on how to encode them into the command opcode.

Regards

Marcel

-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

author
#2 lore raw

Hi Marcel,

Ok, the opcode is encoded in two fields:
OGF Range (6 bits): 0x00-0x3F
OCF Range (10 bits): 0x0000-0x03FF

and hcidump writes these two fields (0x01|0x0001) for the inquiry command, which in binary form it is

	0000 0100 0000 0001

and corresponds to 0x0401, which is shown as 01 04 by hcidump...

all rigth, I was thinking of 0x01 as 8 bits instead of 6.

thanks Marcel!

Regards

Luis Peiro

Quoted 37 lines · Marcel Holtmann

Hi Luis,

Quoted 15 lines

let's say I want to decipher the first two HCI events from the "hcitool inq" dump:
< HCI Command: Inquiry (0x01|0x0001) plen 5
33 8B 9E 08 64

Quoted 1 line

HCI Event: Command Status (0x0f) plen 4

00 01 01 04

Easily, the first one is the Inquiry command. Its command parameters are specified (Bluetooth Specification 1.1) in this order: LAP, Inquiry_Length, Num_Responses; so from the hcidump output we have:

	LAP: 0x9E8B33 (general inquiry LAP)
	Inquiry_Length: 0x08
	Num_Responses: 0x64

so far so good; it makes sense, but how about the command status event? the order of its event parameters from the specification is: Status, Num_HCI_Command_Packets, Command_Opcode. So following the same procedure
as before I would get:

Quoted 7 lines
	Status: 0x00
	Num_HCI_Command_Packets: 0x01
	Command_Opcode: 0x0401

but this doesn't make sense because Command_Opcode should be 0x0001 (Inquiry command). These bytes are now located as the two first bytes of the output, and the reading order is different from that of LAP's order in the Inquiry Command.

So, I'm asking, how must I read hcidump output in order to agree with the specification?

the command opcode consists of OGF and OCF. Look at the specification on how to encode them into the command opcode.

Regards

Marcel

Quoted 5 lines

-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl

-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel