Commit Graph

259 Commits

Author SHA1 Message Date
Joakim Andersson
500ac369ed Bluetooth: shell: Improve security error readability
Improve the readability of security errors by converting the error code
to a string.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-02-11 14:58:03 -05:00
Joakim Andersson
1bf90c6f2f Bluetooth: shell: Add only pairing failed and pairing complete callbacks
Add status only pairing failed callbacks (complete and failed) so that
these handlers can be added without providing the ability for MITM
pairing procedures.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-02-11 14:58:03 -05:00
Joakim Andersson
abd470cbe6 Bluetooth: shell: Fix gatt write command not cleanup up on error
Fix gatt write command returned "write in progress" when either
hex2bin or bt_gatt_write returned an error.
The write_params.func should not be set if the write command was not
successful.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-02-11 12:59:01 -05:00
Joakim Andersson
2d50761c3e Bluetooth: shell: Fix misleading shell message id-create failed
Fix misleading message in the bluetooth shell when the id-create
command returns en error code. In this case both failure and success
messages are printed.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-02-02 08:46:17 -05:00
Joakim Andersson
e800ec1cf3 Bluetooth: host: Add options to control behavior of the init command
Add options to control the behavior of the init command.
Option no-settings-load allows the user to create identities
with the id-create command after bt_enable() but before settings_load().
Option no-ready-cb allows the user to test using synchronous enable,
since this sometimes leads to different behavior of the stack.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2021-02-02 08:46:17 -05:00
Andrzej Kaczmarek
ebb5b9a558 Bluetooth: shell: Fix 'bt per-adv-data'
ad_len parameter is not length of complete advertising data, but number
of bt_data structs passed to bt_le_per_adv_set_data - we pass only one.

Also memset target buffer before converting hex string so data shorter
than specified will be right-padded with zeroes instead of some
leftovers.

Signed-off-by: Andrzej Kaczmarek <andrzej.kaczmarek@codecoup.pl>
2021-02-02 07:15:40 -05:00
Emil Gydesen
aed1db5782 Bluetooth: shell: Fix number of optional args for iso send
`iso send` may take an optional "count" parameter but the
number of optional arguments was incorrect.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2021-01-25 21:47:06 -05:00
Vinayak Kariappa Chettimada
e9892c0000 tests: Bluetooth: shell: Fix PAST commands conditional compilation
Enclose PAST subscribe/unsubscribe test commands inside
CONFIG_BT_PER_ADV_SYNC and CONFIG_BT_CONN conditional
compilation.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-11-20 11:39:13 +02:00
Ilya Averyanov
d262b064a2 Bluetooth: shell: fix compilation
phy2str also used when CONFIG_BT_USER_PHY_UPDATE not only
when CONFIG_BT_OBSERVER

Signed-off-by: Ilya Averyanov <a1ien.n3t@gmail.com>
2020-11-19 13:28:06 +02:00
Emil Gydesen
1dada244c1 Bluetooth: host: Periodic Advertising Sync Transfer
Adds support for the periodic advertising sync transfer
(PAST) feature, which allows a synced device, or an
advertiser, to transfer synchronization of a periodic
advertising train to a connected device.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2020-11-16 13:40:09 +01:00
Joakim Andersson
d81197ff77 Bluetooth: shell: Fix shell scan option duplicate filtering options
Fix the shell always setting the filter duplicates option for active
scan.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-11-11 13:22:02 +01:00
Emil Gydesen
b0a99051f5 Bluetooth: shell: Avoid registering PA sync callbacks more than once
The PA sync callbacks would have been registered for each new
PA sync, which would cause the callbacks to be called multiple times
if multiple PA syncs were created.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2020-11-03 11:04:07 +01:00
Joakim Andersson
948615d247 Bluetooth: shell: Fix ifdef order in command inclusion
Fix ifdef in command inclusion, in practice this meant that
CONFIG_BT_LL_SW_SPLIT and CONFIG_BT_CTLR_ADV_EXT switched meaning.
Added blank lines so that the commands in shell/ll.c are more
easily visible as group.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-10-23 12:56:39 +02:00
Luiz Augusto von Dentz
2811f0abf7 Bluetooth: shell: Allow passing more than one byte to gatt write
This makes it possible to pass different byte arrays to gatt write
making it usable to test attributes that take more than a single byte.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2020-10-22 13:33:57 +02:00
Joakim Andersson
b2e56412a7 Bluetooth: shell: Fix shell build with out-of-tree controller
Fix shell build errors when building with combined host and controller
but the selected controller is not the in-tree zephyr controller, i.e
CONFIG_BT_CTLR=y, CONFIG_BT_LL_SW_SPLIT=n and cmd_scanx and others
are not defined.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-10-22 13:18:35 +02:00
Dag Bjarvin
d22c2ec0ed Bluetooth: controller: Add periodic scanning
Start/stop scan according to period and duration
parameters.

Signed-off-by: Dag Bjarvin <Dag.Bjarvin@nordicsemi.no>
2020-10-21 12:44:38 +02:00
Joakim Andersson
2837ac4409 Bluetooth: shell: Add disable advertising channel arguments
Add options to disable advertising channels for the different
advertising commands.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-10-15 13:21:26 +03:00
Vinayak Kariappa Chettimada
bf505fdf98 tests: Bluetooth: shell: Minor print format update
Minor print format update, updated format for Periodic
Advertising Interval, and added SID to be printed.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-10-07 17:45:23 +02:00
Emil Gydesen
8cc051ccac Bluetooth: host: Change PA sync callbacks to global callbacks
Changes the callbacks for periodic sync callbacks such that multiple
applications can register callbacks, similar to the connection and
scan callbacks.

This change will make it easier to support the PAST feature, as
PA syncs make be created by the controller which then notifies
the host, and thus the application (if callback registered).

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2020-10-02 11:49:13 +02:00
Vinayak Kariappa Chettimada
8f203e46ca Bluetooth: shell: Fix PER SYNC conditional compilation
Fix conditional compilation to allow building test shell
with Periodic Advertising Sync alone.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-10-01 12:54:06 +02:00
Emil Gydesen
8825ce0ce6 Bluetooth: Shell: Fix PA shell command parameter cnt
The sync create and sync delete dit not have the correct
amount of mandatory and optional parameters set in the
SHELL_CMD_ARG declarations.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2020-09-24 21:29:47 +03:00
Emil Gydesen
68a357e66d Bluetooth: Shell: PA sync terminate callback clears entry
The sync terminate callback did not set any entries in the
PA sync array to NULL, thus not allowing the shell to
reuse them in case that the sync was lost unexpectectly.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2020-09-24 21:29:47 +03:00
Luiz Augusto von Dentz
5c4bde55d0 Bluetooth: GATT: Rework bt_gatt_attr_func_t
Make it actually give the original pointer to the attribute and its
resolved handle so static attributes don't need an extra lookup.

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2020-09-05 11:06:21 +02:00
Luiz Augusto von Dentz
b8e9b6f88a Bluetooth: shell: Add iso module
This adds iso shell module which we can be used to exercise ISO related
APIs:

iso - Bluetooth ISO shell commands
Subcommands:
  bind        :[dir] [interval] [packing] [framing] [latency] [sdu]
  [phy] [rtn]
  connect     :Connect ISO Channel
  listen      :[security level]
  send        :Send to ISO Channel
  disconnect  :Disconnect ISO Channel

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2020-09-04 21:03:13 +02:00
Joakim Andersson
48606a2dcd Bluetooth: shell: Add "add-subscription" command
Add the command add-subscription to the shell to test the
bt_gatt_add_subscription API.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-09-04 18:34:18 +02:00
Vinayak Kariappa Chettimada
b5dba35727 tests: Bluetooth: shell: Fix conditional compilations
Fix conditional compilations that fail when combinations
of Broadcaster, Observer, Peripheral and/or Central are
selected to build an application.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-08-25 16:38:12 +03:00
Emil Gydesen
66bd06a7d1 Bluetooth: shell: per_adv_sync cb removed pointer to selected inst
Removed the check for selected_per_adv_sync as it was unused by the
create/delete functions (which take the index as parameters), and
caused the shell not to print any values.

Signed-off-by: Emil Gydesen <emil_gydesen@bose.com>
2020-08-17 13:44:35 -04:00
Emil Gydesen
6cc0487c46 Bluetooth: shell: Fixed pointer in cmd_per_adv_sync_create
The `free_per_adv_sync` pointer in `cmd_per_adv_sync_create`
did not work as intended, as it didn't actually update the
pointer in the array, which caused the
`cmd_per_adv_sync_delete` to not function as intended.

Signed-off-by: Emil Gydesen <emil_gydesen@bose.com>
2020-08-17 13:44:35 -04:00
Emil Gydesen
5580cb4391 Bluetooth: host: Periodic adv sync shell support
Added shell support to create and delete a periodic adv sync
object.

Signed-off-by: Emil Gydesen <emil_gydesen@bose.com>
2020-08-11 14:17:19 +02:00
Emil Gydesen
aea6afe3fa Bluetooth: host: Perodic advertisement synchronization
Added support for syncing to periodic advetisements.
The API and usage is heavily inspired by the extended advertisement
and connection APIs.

Signed-off-by: Emil Gydesen <emil_gydesen@bose.com>
2020-08-11 14:17:19 +02:00
Emil Gydesen
262a0501de Bluetooth: host: Added scan support for periodic advertisement
Added the ext adv report interval to bt_le_scan_recv_info which
denotes whether or not there is periodic advertisement data
associated with the advertisement report.

Signed-off-by: Emil Gydesen <emil_gydesen@bose.com>
2020-08-11 14:17:19 +02:00
Emil Gydesen
d5801316d7 Bluetooth: host: periodic adv shell support
Added shell support for periodic advertisement params,
data and enable.

Signed-off-by: Emil Gydesen <emil_gydesen@bose.com>
2020-08-11 14:17:19 +02:00
Joakim Andersson
53435fdd8f Bluetooth: shell: Add sec_level argument to l2cap connect command
Add argument to set required security level when connection
an L2CAP channel.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-08-06 11:47:03 +02:00
Dag Bjarvin
bc0b8cfae1 tests: Bluetooth: shell: Add ll_adv_aux_set_remove function
Add call to ll_adv_aux_set_remove in shell app

Signed-off-by: Dag Bjarvin <Dag.Bjarvin@nordicsemi.no>
2020-07-29 16:37:15 +02:00
Dag Bjarvin
12fdddb80d Bluetooth: controller: Add terminate event for external advertising
Add terminate event for duration timeout, max number of events and
connection.

Signed-off-by: Dag Bjarvin <Dag.Bjarvin@nordicsemi.no>
2020-07-23 11:39:47 +02:00
Vinayak Kariappa Chettimada
c9332e76b3 tests: Bluetooth: shell: Remove cmd_ull_reset
Remove cmd_ull_reset command, as this would put the host out
of sync. Also, this command is seldom used/required.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-07-20 12:46:26 +02:00
Vinayak Kariappa Chettimada
293a2f69d0 Bluetooth: controller: Remove redundant BT_LL_SW_SPLIT conditional
Remove redundant use of BT_LL_SW_SPLIT conditional.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-07-20 12:46:26 +02:00
Emil Gydesen
5b59c002f6 Bluetooth: Gatt: Automatic discover of CCC when subscribing
Added a feature that allows an application to request
automatic discovery of the CCCD handle when subscriping
to a characteristic. In order to preserver RAM, the application
is expected to provide the discovery parameters, and it's up
to the application whether or not it wants to reuse the
discovery parameters or use one for each characteristic.

Signed-off-by: Emil Gydesen <emil_gydesen@bose.com>
2020-07-20 12:46:18 +02:00
Joakim Andersson
d6b526a038 Bluetooth: shell: Add bond_deleted callback
Add the bond_deleted callback to the bluetooth shell.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-07-16 12:09:57 +02:00
Joakim Andersson
4876923085 Bluetooth: shell: Use selected ID when selecting default connection
Use the selected local ID when switching the default connection.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-07-16 12:09:57 +02:00
Joakim Andersson
ae4ac87a91 Bluetooth: shell: Add advertising options one-time and directed privacy
Add advertising option for undirected one-time advertising, and
directed advertising using identity, and peer direct is RPA option.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-07-15 17:49:20 +02:00
Joakim Andersson
411bd99982 Bluetooth: shell: Print PHY and data len info in info command
Print the PHY and data len information from the conn info struct.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-07-15 15:12:45 +02:00
Asbjørn Sæbø
1886cb4b4e Bluetooth: Shell: Add shell command to output the ATT MTU size
It is sometimes useful to know what the ATT MTU size is.

Signed-off-by: Asbjørn Sæbø <asbjorn.sabo@nordicsemi.no>
2020-07-10 13:14:30 +02:00
Andries Kruithof
2bfb128463 Bluetooth: shell: allow multiple parameters for bt hci-cmd
The hci-cmd currently accepts only a 1 byte parameter. This
disables use of commands that requires more than 1 byte,
for ex. the feature exchange that requires a 16 bit parameter.

This commit allows a datafield parameter up to 65 bytes long.
65 bytes comes from the nr. of parameters for the
HCI_LE_Generate_DHKey command

Signed-off-by: Andries Kruithof <Andries.Kruithof@nordicsemi.no>
2020-07-02 16:32:04 +03:00
Joakim Andersson
0f67f6cb72 Bluetooth: shell: Add phy procedure options to the shell
Add command line options to set the PHY options coding schemed and
no preference.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
2020-06-19 13:42:29 +02:00
Luiz Augusto von Dentz
0742a45ac9 Bluetooth: shell: Add support for printing the write rate
This makes the gatt metrics also available for
gatt write-without-rsp-cb so it now prints the rate of each write:

uart:~$ gatt write-without-response-cb 1e ff 10 10
Write #1: 16 bytes (0 bps)
Write #2: 32 bytes (3445948416 bps)
Write #3: 48 bytes (2596929536 bps)
Write #4: 64 bytes (6400 bps)
Write #5: 80 bytes (8533 bps)
Write #6: 96 bytes (10666 bps)
Write #7: 112 bytes (8533 bps)
Write #8: 128 bytes (9955 bps)
Write #9: 144 bytes (11377 bps)
Write #10: 160 bytes (7680 bps)
Write #11: 176 bytes (8533 bps)
Write #12: 192 bytes (9386 bps)
Write Complete (err 0)
Write #13: 208 bytes (8533 bps)
Write #14: 224 bytes (9244 bps)
Write #15: 240 bytes (9955 bps)
Write #16: 256 bytes (8000 bps)

Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
2020-06-18 21:35:12 +02:00
Vinayak Kariappa Chettimada
179b213fce Bluetooth: controller: split: use CONFIG_BT_CTLR_ADV_SET
Use CONFIG_BT_CTLR_ADV_SET instead of derived BT_CTLR_ADV_SET.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-06-12 15:50:34 +02:00
Vinayak Kariappa Chettimada
3eac6c3a52 Bluetooth: controller: split: Add periodic adv ULL implementation
Add ULL implementation to perform periodic advertising.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-06-12 15:50:34 +02:00
Vinayak Kariappa Chettimada
365774da7c Bluetooth: controller: Move Adv Ext interface to ll interface
Move Advertising Extensions interface to LL interface header
file.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-06-12 15:50:34 +02:00
Vinayak Kariappa Chettimada
5f1301245c Bluetooth: shell: Updated advx command to use Adv Data Set
Updated the shell commands related to Advertising Extensions
to call the LE Set Extended Advertising Data command
functional interface for testing purposes.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2020-06-12 15:50:34 +02:00