WIRELESS MAC AND PHY SPECIFICATIONS FOR WPANS

background image
IEEE
WIRELESS MAC AND PHY SPECIFICATIONS FOR WPANS
Std 802.15.1-2005
Copyright © 2005 IEEE. All rights reserved.
215
10. Error codes
This clause lists the various possible error codes. When a command fails or an LMP message needs to indi-
cate a failure, error codes are used to indicate the reason for the error. Error codes have a size of one octet.
The purpose of this clause is to give descriptions of how the error codes should be used. It is beyond the 
scope of this standard to give detailed descriptions of all situations where error codes can be used, especially 
as this may be implementation dependent.
10.1 HCI command errors
If an HCI command that should generate an HCI_Command_Complete event generates an error, then this 
error shall be reported in the HCI_Command_Complete event.
If an HCI command that sent an HCI_Command_Status with the error code success to the host before pro-
cessing finds an error during execution, then the error may be reported in the normal completion command 
for the original command or in an HCI_Command_Status event.
Some HCI commands may generate errors that need to be reported to be host, but there is insufficient infor-
mation to determine how the command would normally be processed. In this case, two events can be used to 
indicate this to the host, the HCI_Command_Complete event and HCI_Command_Status event. Which of 
the two events is used is implementation dependent.
10.2 List of error codes
The error code of 0x00 means success. The possible range of failure error codes is 0x01–0xFF. 
Subclause 10.3 provides an error code usage description for each failure error code. 
Table 70—List of possible error codes 
Error code
Name
0x00
Success
0x01
Unknown HCI command
0x02
Unknown connection identifier
0x03
Hardware failure
0x04
Page timeout
0x05
Authentication failure
0x06
PIN missing
0x07
Memory capacity exceeded
0x08
Connection timeout
0x09
Connection limit exceeded
0x0A
Synchronous connection limit to a device exceeded
0x0B
ACL connection already exists
0x0C
Command disallowed
background image
IEEE
Std 802.15.1-2005
LOCAL AND METROPOLITAN AREA NETWORKS
216
Copyright © 2005 IEEE. All rights reserved.
0x0D
Connection rejected due to limited resources
0x0E
Connection rejected due to security reasons
0x0F
Connection rejected due to unacceptable BD_ADDR
0x10
Connection accept timeout exceeded
0x11
Unsupported feature or parameter value
0x12
Invalid HCI command parameters
0x13
Remote user terminated connection
0x14
Remote device terminated connection due to low resources
0x15
Remote device terminated connection due to power off
0x16
Connection terminated by local host
0x17
Repeated attempts
0x18
Pairing not allowed
0x19
Unknown LMP PDU
0x1A
Unsupported remote feature
0x1B
SCO offset rejected
0x1C
SCO interval rejected
0x1D
SCO air mode rejected
0x1E
Invalid LMP parameters
0x1F
Unspecified error
0x20
Unsupported LMP parameter value
0x21
Role change not allowed
0x22
LMP response timeout
0x23
LMP error transaction collision
0x24
LMP PDU not allowed
0x25
Encryption mode not acceptable
0x26
Link key cannot be changed
0x27
Requested QoS not supported
0x28
Instant passed
0x29
Pairing with unit key not supported
0x2A
Different transaction collision
0x2B
Reserved
0x2C
QoS unacceptable parameter
0x2D
QoS rejected
Table 70—List of possible error codes  (continued)
Error code
Name
background image
IEEE
WIRELESS MAC AND PHY SPECIFICATIONS FOR WPANS
Std 802.15.1-2005
Copyright © 2005 IEEE. All rights reserved.
217
10.3 Error code descriptions
This subclause provides detailed descriptions of the error codes and examples of their usage.
10.3.1 Unknown HCI command (0x01)
The error code unknown HCI command indicates that the controller does not understand the HCI command 
packet opcode that the host sent. The opcode given might not correspond to any of the opcodes specified in 
this standard or any vendor-specific opcodes, or the command may not have been implemented.
10.3.2 Unknown connection identifier (0x02)
The error code unknown connection identifier indicates that a command was sent from the host that should 
identify a connection, but that connection does not exist.
10.3.3 Hardware failure (0x03)
The error code hardware failure indicates to the host that something in the controller has failed in a manner 
that cannot be described with any other error code. The meaning implied with this error code is implementa-
tion dependent.
10.3.4 Page timeout (0x04)
The error code page timeout indicates that a page timed out because of the page timeout configuration 
parameter. This error code may occur only with the HCI_Remote_Name_Request and HCI_Create_ 
Connection commands.
10.3.5 Authentication failure (0x05)
The error code authentication failure indicates that pairing or authentication failed due to incorrect results in 
the pairing or authentication procedure. This could be due to an incorrect PIN or link key.
10.3.6 PIN missing (0x06)
The error code PIN missing is used when pairing failed because of a missing PIN.
0x2E
Channel classification not supported
0x2F
Insufficient security
0x30
Parameter out of mandatory range
0x31
Reserved
0x32
Role switch pending
0x33
Reserved
0x34
Reserved slot violation
0x35
Role switch failed
Table 70—List of possible error codes  (continued)
Error code
Name
background image
IEEE
Std 802.15.1-2005
LOCAL AND METROPOLITAN AREA NETWORKS
218
Copyright © 2005 IEEE. All rights reserved.
10.3.7 Memory capacity exceeded (0x07)
The error code memory capacity exceeded indicates to the host that the controller has run out of memory to 
store new parameters.
10.3.8 Connection timeout (0x08)
The error code connection timeout indicates that the link supervision timeout has expired for a given 
connection. 
10.3.9 Connection limit exceeded (0x09)
The error code connection limit exceeded indicates that an attempt to create another connection failed 
because the controller is already at its limit of the number of connections it can support. The number of con-
nections a device can support is implementation dependent. 
10.3.10 Synchronous connection limit to a device exceeded (0x0A)
The error code synchronous connection limit to a device exceeded indicates that the controller has reached 
the limit to the number of synchronous connections that can be achieved to a device. The number of syn-
chronous connections a device can support is implementation dependent. 
10.3.11 ACL connection already exists (0x0B)
The error code ACL connection already exists indicates that an attempt to create a new ACL connection to a 
device when there is already a connection to this device. 
10.3.12 Command disallowed (0x0C)
The error code command disallowed indicates that the command requested cannot be executed because the 
controller is in a state where it cannot process this command at this time. This error shall not be used for 
command opcodes where the error code unknown HCI command is valid. 
10.3.13 Connection rejected due to limited resources (0x0D)
The error code connection rejected due to limited resources indicates that an incoming connection was 
rejected due to limited resources.
10.3.14 Connection rejected due to security reasons (0x0E)
The error code connection rejected due to security reasons indicates that a connection was rejected due to 
security requirements not being fulfilled, e.g., authentication or pairing. 
10.3.15 Connection rejected due to unacceptable BD_ADDR (0x0F)
The error code connection rejected due to unacceptable BD_ADDR indicates that a connection was rejected 
because this device does not accept the BD_ADDR. This may be because the device will accept connections 
only from specific BD_ADDRs.
10.3.16 Connection accept timeout exceeded (0x10)
The error code connection accept timeout exceeded indicates that the connection accept timeout has been 
exceeded for this connection attempt.
background image
IEEE
WIRELESS MAC AND PHY SPECIFICATIONS FOR WPANS
Std 802.15.1-2005
Copyright © 2005 IEEE. All rights reserved.
219
10.3.17 Unsupported feature or parameter value (0x11)
The error code unsupported feature or parameter value indicates that a feature or parameter value in an 
LMP message or HCI command is not supported.
10.3.18 Invalid HCI command parameters (0x12)
The error code invalid HCI command parameters indicates that at least one of the HCI command parameters 
is invalid. This shall be used when
— The parameter total length is invalid.
— A command parameter is an invalid type.
— A connection identifier does not match the corresponding event.
— A parameter value must be even.
— A parameter is outside of the specified range.
— Two or more parameter values have inconsistent values.
NOTE—An invalid type can be, for example, when an SCO connection handle is used where an ACL connection handle 
is required.
10.3.19 Remote user terminated connection (0x13)
The error code Remote User Terminated Connection indicates that the user on the remote device terminated 
the connection.
10.3.20 Remote device terminated connection due to low resources (0x14)
The error code remote device terminated connection due to low resources indicates that the remote device 
terminated the connection because of low resources.
10.3.21 Remote device terminated connection due to power off (0x15)
The error code remote device terminated connection due to power off indicates that the remote device termi-
nated the connection because the device is about to power off.
10.3.22 Connection terminated by local host (0x16)
The error code connection terminated by local host indicates that the local device terminated the connection.
10.3.23 Repeated attempts (0x17)
The error code repeated attempts indicates that the controller is disallowing an authentication or pairing pro-
cedure because too little time has elapsed since the last authentication or pairing attempt failed.
10.3.24 Pairing not allowed (0x18)
The error code pairing not allowed indicates that the device does not allow pairing. For example, a device 
may allow pairing only during a certain time window after some user input allows pairing.
10.3.25 Unknown LMP PDU (0x19)
The error code unknown LMP PDU indicates that the controller has received an unknown LMP opcode. 
background image
IEEE
Std 802.15.1-2005
LOCAL AND METROPOLITAN AREA NETWORKS
220
Copyright © 2005 IEEE. All rights reserved.
10.3.26 Unsupported remote feature (0x1A)
The error code unsupported remote feature indicates that the remote device does not support the feature 
associated with the issued command or LMP PDU. 
10.3.27 SCO offset rejected (0x1B)
The error code SCO offset rejected indicates that the offset requested in the LMP_SCO_link_req message 
has been rejected.
10.3.28 SCO interval rejected (0x1C)
The error code SCO interval rejected indicates that the interval requested in the LMP_SCO_link_req mes-
sage has been rejected.
10.3.29 SCO air mode rejected (0x1D)
The error code SCO air mode rejected indicates that the air mode requested in the LMP_SCO_link_req mes-
sage has been rejected.
10.3.30 Invalid LMP parameters (0x1E)
The error code invalid LMP parameters indicates that some LMP message parameters were invalid. This 
shall be used when
— The PDU length is invalid.
— A parameter value must be even.
— A parameter is outside of the specified range.
— Two or more parameters have inconsistent values.
10.3.31 Unspecified error (0x1F)
The error code unspecified error indicates that no other error code specified is appropriate to use.
10.3.32 Unsupported LMP parameter value (0x20)
The error code unsupported LMP parameter value indicates that an LMP message contains at least one 
parameter value that is not supported by the controller at this time. This is normally used after a long negoti-
ation procedure, e.g., during an LMP_hold_req, LMP_sniff_req, and LMP_encryption_key_size_req mes-
sage exchanges.
10.3.33 Role change not allowed (0x21)
The error code role change not allowed indicates that a controller will not allow a role change at this time.
10.3.34 LMP response timeout (0x22)
The error code LMP response timeout indicates that an LMP transaction failed to respond within the LMP 
response timeout.
10.3.35 LMP error transaction collision (0x23)
The error code LMP error transaction collision indicates that an LMP transaction has collided with the same 
transaction that is already in progress.
background image
IEEE
WIRELESS MAC AND PHY SPECIFICATIONS FOR WPANS
Std 802.15.1-2005
Copyright © 2005 IEEE. All rights reserved.
221
10.3.36 LMP PDU not allowed (0x24)
The error code LMP PDU not allowed indicates that a controller sent an LMP message with an opcode that 
was not allowed.
10.3.37 Encryption mode not acceptable (0x25)
The error code encryption mode not acceptable indicates that the requested encryption mode is not accept-
able at this time.
10.3.38 Link key cannot be changed (0x26)
The error code link key cannot be changed indicates that a link key cannot be changed because a fixed unit 
key is being used.
10.3.39 Requested QoS not supported (0x27)
The error code requested QoS not supported indicates that the requested QoS is not supported.
10.3.40 Instant passed (0x28)
The error code instant passed indicates that an LMP PDU that includes an instant cannot be performed 
because the instant when this would have occurred has passed.
10.3.41 Pairing with unit key not supported (0x29)
The error code pairing with unit key not supported indicates that it was not possible to pair as a unit key was 
requested and it is not supported.
10.3.42 Different transaction collision (0x2A)
The error code different transaction collision indicates that an LMP transaction was started that collides with 
an ongoing transaction.
10.3.43 QoS unacceptable parameter (0x2C)
The error code QoS unacceptable parameter indicates that the specified QoS parameters could not be 
accepted at this time, but other parameters may be acceptable.
10.3.44 QoS rejected (0x2D)
The error code QoS rejected indicates that the specified QoS parameters cannot be accepted and QoS nego-
tiation should be terminated.
10.3.45 Channel classification not supported (0x2E)
The error code channel classification not supported indicates that the controller cannot perform channel 
classification because it is not supported.
10.3.46 Insufficient security (0x2F)
The error code insufficient security indicates that the HCI command or LMP message sent is possible only 
on an encrypted link.
background image
IEEE
Std 802.15.1-2005
LOCAL AND METROPOLITAN AREA NETWORKS
222
Copyright © 2005 IEEE. All rights reserved.
10.3.47 Parameter out of mandatory range (0x30)
The error code parameter out of mandatory range indicates that a parameter value requested is outside the 
mandatory range of parameters for the given HCI command or LMP message.
10.3.48 Role switch pending (0x32)
The error code role switch pending indicates that a role switch is pending. This can be used when an HCI 
command or LMP message cannot be accepted because of a pending role switch. This can also be used to 
notify a peer device about a pending role switch.
10.3.49 Reserved slot violation (0x34)
The error code reserved slot violation indicates that the current synchronous negotiation was terminated with 
the negotiation state set to reserved slot violation.
10.3.50 Role switch failed (0x35)
The error code role switch failed indicates that a role switch was attempted, but it failed and the original 
piconet structure is restored. The switch may have failed because the TDD switch or piconet switch failed.
background image
IEEE
WIRELESS MAC AND PHY SPECIFICATIONS FOR WPANS
Std 802.15.1-2005
Copyright © 2005 IEEE. All rights reserved.
223
11. Host controller interface (HCI)
This clause describes the HCI, which provides a command interface to the BB controller and LM and pro-
vides access to configuration parameters. The HCI provides a uniform interface method of accessing the 
controller capabilities. Subclause 11.1 provides a brief overview of the lower layers of the software stack 
and of the hardware. Subclause 11.2 provides an overview of the host controller transport. Subclause 11.3
provides an overview of the commands and events. Subclause 11.4 describes the flow control used between 
the host and the controller. Subclause 11.5 describes the HCI data formats, and subclause 11.6 describes the 
HCI configuration parameters. Subclause 11.7 describes each of the HCI commands in details, identifies 
parameters for each of the commands, and lists events associated with each command. Subclause 11.8 gives 
the commands, events, and configuration parameters that are now deprecated.
11.1 Lower layers of the IEEE 802.15.1-2005 software stack
Figure 91 provides an overview of the lower software layers. The HCI firmware implements the HCI com-
mands for the IEEE 802.15.1-2005 hardware by accessing BB commands, LM commands, hardware status 
registers, control registers, and event registers.
Several layers may exist between the HCI driver on the host system and the HCI firmware in the IEEE 
802.15.1-2005 hardware. These intermediate layers, the host controller transport layer, provide the ability to 
transfer data without knowledge of the data contents or format. 
Figure 91—Overview of the lower software layers
background image
IEEE
Std 802.15.1-2005
LOCAL AND METROPOLITAN AREA NETWORKS
224
Copyright © 2005 IEEE. All rights reserved.
Figure 92 illustrates the path of a data transfer from one device to another. The HCI driver on the host 
exchanges data and commands with the HCI firmware on the hardware. The host controller transport layer 
(i.e., physical bus) driver provides both HCI layers with the ability to exchange information with each other.
The host will receive asynchronous notifications of HCI events independent of which host controller trans-
port layer is used. HCI events are used for notifying the host when something occurs. When the host discov-
ers that an event has occurred, it will then parse the received event packet to determine which event 
occurred.
11.2 Overview of host controller transport
The host driver stack has a transport layer between the host controller driver and the host. 
The main goal of this transport layer is transparency. The host controller driver (which interfaces to the con-
troller) should be independent of the underlying transport technology. Nor should the transport require any 
visibility into the data that the host controller driver passes to the controller. This allows the interface (HCI) 
or the controller to be upgraded without affecting the transport layer.
The specified host controller transport layers are described in a separate volume (see Bluetooth specification 
volume 4).
11.3 Overview of commands and events
The commands and events are sent between the host and the controller. These are grouped into logical 
groups. The version information in this subclause denotes the version number of the Bluetooth specification 
in which a command or event was first specified.
Figure 92—End-to-end overview of lower software layers to transfer data

Document Outline


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值