Commands marked as "Previously used" in the Bluetooth Core Specification Version 6.0 were not updated to keep the library compatible with old HCI controllers. --- lib/bluetooth/hci.c | 253 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 218 insertions(+), 35 deletions(-) diff --git a/lib/bluetooth/hci.c b/lib/bluetooth/hci.c index a1eccaf1e..402aee441 100644 --- a/lib/bluetooth/hci.c +++ b/lib/bluetooth/hci.c @@ -333,7 +333,10 @@ int hci_strtolm(char *str, unsigned int *val) return ret; } -/* Command mapping */ +/* Command mapping + * Core Specification Version 6.0 | Vol 4, Part E + * 6.27. Supported commands + */ static const hci_map commands_map[] = { { "Inquiry", 0 }, { "Inquiry Cancel", 1 }, @@ -355,7 +358,7 @@ static const hci_map commands_map[] = { { "Set Connection Encryption", 16 }, { "Change Connection Link Key", 17 }, - { "Temporary Link Key", 18 }, + { "Link Key Selection", 18 }, { "Remote Name Request", 19 }, { "Cancel Remote Name Request", 20 }, { "Read Remote Supported Features", 21 }, @@ -430,13 +433,13 @@ static const hci_map commands_map[] = { { "Read Transmit Power Level", 82 }, { "Read Synchronous Flow Control Enable", 83 }, { "Write Synchronous Flow Control Enable", 84 }, - { "Set Host Controller To Host Flow Control", 85 }, + { "Set Controller To Host Flow Control", 85 }, { "Host Buffer Size", 86 }, { "Host Number Of Completed Packets", 87 }, { "Read Link Supervision Timeout", 88 }, { "Write Link Supervision Timeout", 89 }, - { "Read Number of Supported IAC", 90 }, + { "Read Number Of Supported IAC", 90 }, { "Read Current IAC LAP", 91 }, { "Write Current IAC LAP", 92 }, { "Read Page Scan Period Mode", 93 }, @@ -444,9 +447,9 @@ static const hci_map commands_map[] = { { "Read Page Scan Mode", 95 }, { "Write Page Scan Mode", 96 }, - { "Set AFH Channel Classification", 97 }, - { "Reserved", 98 }, - { "Reserved", 99 }, + { "Set AFH Host Channel Classification", 97 }, + { "LE CS Read Remote FAE Table", 98 }, + { "LE CS Write Cached Remote FAE Table", 99 }, { "Read Inquiry Scan Type", 100 }, { "Write Inquiry Scan Type", 101 }, { "Read Inquiry Mode", 102 }, @@ -474,19 +477,19 @@ static const hci_map commands_map[] = { { "Read BD ADDR", 121 }, { "Read Failed Contact Counter", 122 }, { "Reset Failed Contact Counter", 123 }, - { "Get Link Quality", 124 }, + { "Read Link Quality", 124 }, { "Read RSSI", 125 }, { "Read AFH Channel Map", 126 }, - { "Read BD Clock", 127 }, + { "Read Clock", 127 }, { "Read Loopback Mode", 128 }, { "Write Loopback Mode", 129 }, - { "Enable Device Under Test Mode", 130 }, - { "Setup Synchronous Connection", 131 }, - { "Accept Synchronous Connection", 132 }, - { "Reject Synchronous Connection", 133 }, - { "Reserved", 134 }, - { "Reserved", 135 }, + { "Enable Implementation Under Test Mode", 130 }, + { "Setup Synchronous Connection Request", 131 }, + { "Accept Synchronous Connection Request", 132 }, + { "Reject Synchronous Connection Request", 133 }, + { "LE CS Create Config", 134 }, + { "LE CS Remove Config", 135 }, { "Read Extended Inquiry Response", 136 }, { "Write Extended Inquiry Response", 137 }, @@ -520,9 +523,9 @@ static const hci_map commands_map[] = { { "Send Keypress Notification", 162 }, { "IO Capability Request Negative Reply", 163 }, { "Read Encryption Key Size", 164 }, - { "Reserved", 165 }, - { "Reserved", 166 }, - { "Reserved", 167 }, + { "LE CS Read Local Supported Capabilities", 165 }, + { "LE CS Read Remote Supported Capabilities", 166 }, + { "LE CS Write Cached Remote Supported Capabilities", 167 }, { "Create Physical Link", 168 }, { "Accept Physical Link", 169 }, @@ -545,56 +548,236 @@ static const hci_map commands_map[] = { { "Read Flow Control Mode", 184 }, { "Write Flow Control Mode", 185 }, { "Read Data Block Size", 186 }, - { "Reserved", 187 }, - { "Reserved", 188 }, + { "LE CS Test", 187 }, + { "LE CS Test End", 188 }, { "Enable AMP Receiver Reports", 189 }, { "AMP Test End", 190 }, { "AMP Test Command", 191 }, { "Read Enhanced Transmit Power Level", 192 }, - { "Reserved", 193 }, + { "LE CS Security Enable", 193 }, { "Read Best Effort Flush Timeout", 194 }, { "Write Best Effort Flush Timeout", 195 }, { "Short Range Mode", 196 }, { "Read LE Host Support", 197 }, { "Write LE Host Support", 198 }, - { "Reserved", 199 }, + { "LE CS Set Default Settings", 199 }, { "LE Set Event Mask", 200 }, - { "LE Read Buffer Size", 201 }, - { "LE Read Local Supported Features", 202 }, + { "LE Read Buffer Size [v1]", 201 }, + { "LE Read Local Supported Features Page 0", 202 }, { "Reserved", 203 }, { "LE Set Random Address", 204 }, { "LE Set Advertising Parameters", 205 }, - { "LE Read Advertising Channel TX Power", 206 }, + { "LE Read Advertising Physical Channel Tx Power", 206 }, { "LE Set Advertising Data", 207 }, { "LE Set Scan Response Data", 208 }, - { "LE Set Advertise Enable", 209 }, + { "LE Set Advertising Enable", 209 }, { "LE Set Scan Parameters", 210 }, { "LE Set Scan Enable", 211 }, { "LE Create Connection", 212 }, { "LE Create Connection Cancel", 213 }, - { "LE Read Accept List Size", 214 }, - { "LE Clear Accept List", 215 }, + { "LE Read Filter Accept List Size", 214 }, + { "LE Clear Filter Accept List", 215 }, - { "LE Add Device To Accept List", 216 }, - { "LE Remove Device From Accept List", 217 }, + { "LE Add Device To Filter Accept List", 216 }, + { "LE Remove Device From Filter Accept List", 217 }, { "LE Connection Update", 218 }, { "LE Set Host Channel Classification", 219 }, { "LE Read Channel Map", 220 }, - { "LE Read Remote Used Features", 221 }, + { "LE Read Remote Features Page 0", 221 }, { "LE Encrypt", 222 }, { "LE Rand", 223 }, - { "LE Start Encryption", 224 }, + { "LE Enable Encryption", 224 }, { "LE Long Term Key Request Reply", 225 }, { "LE Long Term Key Request Negative Reply", 226 }, { "LE Read Supported States", 227 }, - { "LE Receiver Test", 228 }, - { "LE Transmitter Test", 229 }, + { "LE Receiver Test [v1]", 228 }, + { "LE Transmitter Test [v1]", 229 }, { "LE Test End", 230 }, - { "Reserved", 231 }, + { "LE Enable Monitoring Advertisers", 231 }, + + { "LE CS Set Channel Classification", 232 }, + { "LE CS Set Procedure Parameters", 233 }, + { "LE CS Procedure Enable", 234 }, + { "Enhanced Setup Synchronous Connection", 235 }, + { "Enhanced Accept Synchronous Connection", 236 }, + { "Read Local Supported Codecs [v1]", 237 }, + { "Set MWS Channel Parameters", 238 }, + { "Set External Frame Configuration", 239 }, + + { "Set MWS Signaling", 240 }, + { "Set MWS Transport Layer", 241 }, + { "Set MWS Scan Frequency Table", 242 }, + { "Get MWS Transport Layer Configuration", 243 }, + { "Set MWS PATTERN Configuration", 244 }, + { "Set Triggered Clock Capture", 245 }, + { "Truncated Page", 246 }, + { "Truncated Page Cancel", 247 }, + + { "Set Connectionless Peripheral Broadcast", 248 }, + { "Set Connectionless Peripheral Broadcast Receive", 249 }, + { "Start Synchronization Train", 250 }, + { "Receive Synchronization Train", 251 }, + { "Set Reserved LT ADDR", 252 }, + { "Delete Reserved LT ADDR", 253 }, + { "Set Connectionless Peripheral Broadcast Data", 254 }, + { "Read Synchronization Train Parameters", 255 }, + + { "Write Synchronization Train Parameters", 256 }, + { "Remote OOB Extended Data Request Reply", 257 }, + { "Read Secure Connections Host Support", 258 }, + { "Write Secure Connections Host Support", 259 }, + { "Read Authenticated Payload Timeout", 260 }, + { "Write Authenticated Payload Timeout", 261 }, + { "Read Local OOB Extended Data", 262 }, + { "Write Secure Connections Test Mode", 263 }, + + { "Read Extended Page Timeout", 264 }, + { "Write Extended Page Timeout", 265 }, + { "Read Extended Inquiry Length", 266 }, + { "Write Extended Inquiry Length", 267 }, + { "LE Remote Connection Parameter Request Reply", 268 }, + { "LE Remote Connection Parameter Request Negative Reply", 269 }, + { "LE Set Data Length", 270 }, + { "LE Read Suggested Default Data Length", 271 }, + + { "LE Write Suggested Default Data Length", 272 }, + { "LE Read Local P-256 Public Key", 273 }, + { "LE Generate DHKey [v1]", 274 }, + { "LE Add Device To Resolving List", 275 }, + { "LE Remove Device From Resolving List", 276 }, + { "LE Clear Resolving List", 277 }, + { "LE Read Resolving List Size", 278 }, + { "LE Read Peer Resolvable Address", 279 }, + + { "LE Read Local Resolvable Address", 280 }, + { "LE Set Address Resolution Enable", 281 }, + { "LE Set Resolvable Private Address Timeout", 282 }, + { "LE Read Maximum Data Length", 283 }, + { "LE Read PH", 284 }, + { "LE Set Default PHY", 285 }, + { "LE Set PHY", 286 }, + { "LE Receiver Test [v2]", 287 }, + + { "LE Transmitter Test [v2]", 288 }, + { "LE Set Advertising Set Random Address", 289 }, + { "LE Set Extended Advertising Parameters [v1]", 290 }, + { "LE Set Extended Advertising Data", 291 }, + { "LE Set Extended Scan Response Data", 292 }, + { "LE Set Extended Advertising Enable", 293 }, + { "LE Read Maximum Advertising Data Length", 294 }, + { "LE Read Number of Supported Advertising Sets", 295 }, + + { "LE Remove Advertising Set", 296 }, + { "LE Clear Advertising Sets", 297 }, + { "LE Set Periodic Advertising Parameters [v1]", 298 }, + { "LE Set Periodic Advertising Data", 299 }, + { "LE Set Periodic Advertising Enable", 300 }, + { "LE Set Extended Scan Parameters", 301 }, + { "LE Set Extended Scan Enable", 302 }, + { "LE Extended Create Connection [v1]", 303 }, + + { "LE Periodic Advertising Create Sync", 304 }, + { "LE Periodic Advertising Create Sync Cancel", 305 }, + { "LE Periodic Advertising Terminate Sync", 306 }, + { "LE Add Device To Periodic Advertiser List", 307 }, + { "LE Remove Device From Periodic Advertiser List", 308 }, + { "LE Clear Periodic Advertiser List", 309 }, + { "LE Read Periodic Advertiser List Size", 310 }, + { "LE Read Transmit Power", 311 }, + + { "LE Read RF Path Compensation", 312 }, + { "LE Write RF Path Compensation", 313 }, + { "LE Set Privacy Mode", 314 }, + { "LE Receiver Test [v3]", 315 }, + { "LE Transmitter Test [v3]", 316 }, + { "LE Set Connectionless CTE Transmit Parameters", 317 }, + { "LE Set Connectionless CTE Transmit Enable", 318 }, + { "LE Set Connectionless IQ Sampling Enable", 319 }, + + { "LE Set Connection CTE Receive Parameters", 320 }, + { "LE Set Connection CTE Transmit Parameters", 321 }, + { "LE Connection CTE Request Enable", 322 }, + { "LE Connection CTE Response Enable", 323 }, + { "LE Read Antenna Information", 324 }, + { "LE Set Periodic Advertising Receive Enable", 325 }, + { "LE Periodic Advertising Sync Transfer", 326 }, + { "LE Periodic Advertising Set Info Transfer", 327 }, + + { "LE Set Periodic Advertising Sync Transfer Parameters", 328 }, + { "LE Set Default Periodic Advertising Sync Transfer Parameters", 329 }, + { "LE Generate DHKey [v2]", 330 }, + { "Read Local Simple Pairing Options", 331 }, + { "LE Modify Sleep Clock Accuracy", 332 }, + { "LE Read Buffer Size [v2]", 333 }, + { "LE Read ISO TX Sync", 334 }, + { "LE Set CIG Parameters", 335 }, + + { "LE Set CIG Parameters Test", 336 }, + { "LE Create CIS", 337 }, + { "LE Remove CIG", 338 }, + { "LE Accept CIS Request", 339 }, + { "LE Reject CIS Request", 340 }, + { "LE Create BIG", 341 }, + { "LE Create BIG Test", 342 }, + { "LE Terminate BIG", 343 }, + + { "LE BIG Create Sync", 344 }, + { "LE BIG Terminate Sync", 345 }, + { "LE Request Peer SCA", 346 }, + { "LE Setup ISO Data Path", 347 }, + { "LE Remove ISO Data Path", 348 }, + { "LE ISO Transmit Test", 349 }, + { "LE ISO Receive Test", 350 }, + { "LE ISO Read Test Counters", 351 }, + + { "LE ISO Test End", 352 }, + { "LE Set Host Feature [v1]", 353 }, + { "LE Read ISO Link Quality", 354 }, + { "LE Enhanced Read Transmit Power Level", 355 }, + { "LE Read Remote Transmit Power Level", 356 }, + { "LE Set Path Loss Reporting Parameters", 357 }, + { "LE Set Path Loss Reporting Enable", 358 }, + { "LE Set Transmit Power Reporting Enable", 359 }, + + { "LE Transmitter Test [v4]", 360 }, + { "Set Ecosystem Base Interval", 361 }, + { "Read Local Supported Codecs [v2]", 362 }, + { "Read Local Supported Codec Capabilities", 363 }, + { "Read Local Supported Controller Delay", 364 }, + { "Configure Data Path", 365 }, + { "LE Set Data Related Address Changes", 366 }, + { "Set Min Encryption Key Size", 367 }, + + { "LE Set Default Subrate command", 368 }, + { "LE Subrate Request command", 369 }, + { "LE Set Extended Advertising Parameters [v2]", 370 }, + { "LE Set Decision Data", 371 }, + { "LE Set Decision Instructions", 372 }, + { "LE Set Periodic Advertising Subevent Data", 373 }, + { "LE Set Periodic Advertising Response Data", 374 }, + { "LE Set Periodic Sync Subevent", 375 }, + + { "LE Extended Create Connection [v2]", 376 }, + { "LE Set Periodic Advertising Parameters [v2]", 377 }, + { "LE Read All Local Supported Features", 378 }, + { "LE Read All Remote Features", 379 }, + { "LE Set Host Feature [v2]", 380 }, + { "LE Add Device To Monitored Advertisers List", 381 }, + { "LE Remove Device From Monitored Advertisers List", 382 }, + { "LE Clear Monitored Advertisers List", 383 }, + + { "LE Read Monitored Advertisers List Size", 384 }, + { "LE Frame Space Update", 385 }, + { "Reserved", 386 }, + { "Reserved", 387 }, + { "Reserved", 388 }, + { "Reserved", 389 }, + { "Reserved", 390 }, + { "Reserved", 391 }, { NULL } }; -- 2.47.2