summaryrefslogtreecommitdiff
path: root/doc/errors.txt
blob: 047610c741de12961e6e7a5b023b08c54f16b9c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
D-Bus Method Return Error Codes
===============================

The motivation of having detailed error is to provide context-based failure
reasons along with D-Bus method return so that D-Bus clients can build metrics
and optimize their application based on these failure reasons. For instance, a
client can build retry mechanism for a connection failure or improve the
bottleneck of use scenario based on actionable metrics.

These error codes are context-based but not necessarily tied to interface or
method calls. For instance, if a pairing request failed due to connection
failure, connection error would be attached to the method return of Pair().

BR/EDR connection already connected
===================================
	errno:	EALREADY, EISCONN

	Either the profile is already connected or ACL connection is in place.

BR/EDR connection page timeout
==============================
	errno:	EHOSTDOWN

	Failed due to page timeout.

BR/EDR connection profile unavailable
=====================================
	errno:	ENOPROTOOPT

	Failed to find connectable services or the target service.

BR/EDR connection SDP search
============================
	errno:	none

	Failed to complete the SDP search.

BR/EDR connection create socket
===============================
	errno:	EIO

	Failed to create or connect to BT IO socket. This can also indicate
	hardware failure in the controller.

BR/EDR connection invalid arguments
===================================
	errno:	EHOSTUNREACH

	Failed due to invalid arguments.

BR/EDR connection not powered
=============================
	errno:	EHOSTUNREACH

	Failed due to adapter not powered.

BR/EDR connection not supported
===============================
	errno:	EOPNOTSUPP, EPROTONOSUPPORT

	Failed due to unsupported state transition of L2CAP channel or other
	features either by the local host or the remote.

BR/EDR connection bad socket
============================
	errno:	EBADFD

	Failed due to the socket is in bad state.

BR/EDR connection memory allocation
===================================
	errno:	ENOMEM

	Failed to allocate memory in either host stack or controller.

BR/EDR connection busy
======================
	errno:	EBUSY

	Failed due to other ongoing operations, such as pairing, busy L2CAP
	channel or the operation disallowed by the controller.

BR/EDR connection concurrent connection limit
=============================================
	errno:	EMLINK

	Failed due to reaching the concurrent connection limit to a device.

BR/EDR connection timeout
=========================
	errno:	ETIMEDOUT

	Failed due to connection timeout

BR/EDR connection refused
=========================
	errno:	ECONNREFUSED

	Refused by the remote device due to limited resource, security reason
	or unacceptable address type.

BR/EDR connection aborted by remote
===================================
	errno:	ECONNRESET

	Terminated by the remote device due to limited resource or power off.

BR/EDR connection aborted by local
==================================
	errno:	ECONNABORTED

	Aborted by the local host.

BR/EDR connection LMP protocol error
====================================
	errno:	EPROTO

	Failed due to LMP protocol error.

BR/EDR connection canceled
==========================
	errno:	none

	Failed due to cancellation caused by adapter drop, unexpected device
	drop, orincoming disconnection request before connection request is
	completed.

BR/EDR connection unknown error
===============================
	errno:	ENOSYS

	Failed due to unknown reason.

LE connection invalid arguments
===============================
	errno:	EINVAL

	Failed due to invalid arguments.

LE connection not powered
=========================
	errno:	EHOSTUNREACH

	Failed due to adapter not powered.

LE connection not supported
===========================
	errno:	EOPNOTSUPP, EPROTONOSUPPORT

	Failed due to unsupported state transition of L2CAP channel or other
	features (e.g. LE features) either by the local host or the remote.

LE connection already connected
===============================
	errno: EALREADY, EISCONN

	Either the BT IO is already connected or LE link connection in place.

LE connection bad socket
========================
	errno: EBADFD

	Failed due to the socket is in bad state.

LE connection memory allocation
===============================
	errno: ENOMEM

	Failed to allocate memory in either host stack or controller.

LE connection busy
==================
	errno:	EBUSY

	Failed due to other ongoing operations, such as pairing, connecting,
	busy L2CAP channel or the operation disallowed by the controller.

LE connection refused
=====================
	errno:	ECONNREFUSED

	Failed due to that LE is not enabled or the attempt is refused by the
	remote device due to limited resource, security reason or unacceptable
	address type.

LE connection create socket
===========================
	errno:	EIO

	Failed to create or connect to BT IO socket. This can also indicate
	hardware failure in the controller.

LE connection timeout
=====================
	errno:	ETIMEDOUT

	Failed due to connection timeout

LE connection concurrent connection limit
=========================================
	errno:	EMLINK

	Failed due to reaching the synchronous connection limit to a device.

LE connection abort by remote
=============================
	errno:	ECONNRESET

	Aborted by the remote device due to limited resource or power off.

LE connection abort by local
============================
	errno:	ECONNABORTED

	Aborted by the local host.

LE connection link layer protocol error
=======================================
	errno:	EPROTO

	Failed due to link layer protocol error.

LE connection GATT browsing
===========================
	errno:	none

	Failed to complete the GATT browsing.

LE connection unknown error
===========================
	errno:	ENOSYS

	Failed due to unknown reason.