Bluetooth: kconfig: Add config options for PAST

Add config options specific for periodic advertising sync transfer.

Signed-off-by: Sean Madigan <sean.madigan@nordicsemi.no>
This commit is contained in:
Sean Madigan 2022-10-12 14:27:09 +01:00 committed by Carles Cufí
commit 5b1dd71f3e
11 changed files with 63 additions and 6 deletions

View file

@ -19,6 +19,10 @@ API Changes
Changes in this release
=======================
* Bluetooth: :kconfig:option:`CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER`
and :kconfig:option:`CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER` have been
added to enable the PAST implementation rather than
:kconfig:option:`CONFIG_BT_CONN`.
Removed APIs in this release
============================

View file

@ -4,3 +4,4 @@ CONFIG_BT_EXT_ADV=y
CONFIG_BT_PER_ADV_SYNC=y
CONFIG_BT_DEBUG_LOG=y
CONFIG_BT_DEVICE_NAME="Test Central Periodic Advertising Sync Transfer"
CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER=y

View file

@ -5,3 +5,4 @@ CONFIG_BT_EXT_ADV=y
CONFIG_BT_PER_ADV_SYNC=y
CONFIG_BT_DEBUG_LOG=y
CONFIG_BT_DEVICE_NAME="Peripheral PAST"
CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER=y

View file

@ -164,6 +164,14 @@ config BT_DATA_LEN_UPDATE
depends on !BT_CTLR || BT_CTLR_DATA_LEN_UPDATE_SUPPORT
help
Enable support for Bluetooth v4.2 LE Data Length Update procedure.
config BT_PER_ADV_SYNC_TRANSFER_RECEIVER
bool "Periodic Advertising Sync Transfer receiver"
depends on !BT_CTLR || BT_CTLR_SYNC_TRANSFER_RECEIVER_SUPPORT
config BT_PER_ADV_SYNC_TRANSFER_SENDER
bool "Periodic Advertising Sync Transfer sender"
depends on !BT_CTLR || BT_CTLR_SYNC_TRANSFER_SENDER_SUPPORT
endif # BT_CONN
rsource "Kconfig.iso"

View file

@ -47,6 +47,14 @@ config BT_CTLR_SYNC_PERIODIC_SUPPORT
depends on BT_CTLR_ADV_EXT_SUPPORT
bool
config BT_CTLR_SYNC_TRANSFER_SENDER_SUPPORT
depends on BT_CTLR_SYNC_PERIODIC_SUPPORT
bool
config BT_CTLR_SYNC_TRANSFER_RECEIVER_SUPPORT
depends on BT_CTLR_SYNC_PERIODIC_SUPPORT
bool
config BT_CTLR_ADV_ISO_SUPPORT
depends on BT_CTLR_ADV_PERIODIC_SUPPORT
bool
@ -654,6 +662,24 @@ config BT_CTLR_CHECK_SAME_PEER_SYNC
bool
default BT_PER_ADV_SYNC_MAX > 1
config BT_CTLR_SYNC_TRANSFER_SENDER
bool "Periodic Advertising Sync Transfer sender"
depends on BT_CTLR_SYNC_TRANSFER_SENDER_SUPPORT
default BT_PER_ADV_SYNC_TRANSFER_SENDER
help
Enable support for the Periodic Advertising Sync Transfer control procedure
as a transmitter of the LL_PERIODIC_SYNC_IND. See Core_v5.3, Vol 6, Part B,
Section 5.1.13
config BT_CTLR_SYNC_TRANSFER_RECEIVER
bool "Periodic Advertising Sync Transfer receiver"
depends on BT_CTLR_SYNC_TRANSFER_RECEIVER_SUPPORT
default BT_PER_ADV_SYNC_TRANSFER_RECEIVER
help
Enable support for the Periodic Advertising Sync Transfer control procedure
as a receiver of the LL_PERIODIC_SYNC_IND. See Core_v5.3, Vol 6, Part B,
Section 5.1.13
endif # BT_CTLR_SYNC_PERIODIC
config BT_CTLR_ADV_ISO

View file

@ -1879,7 +1879,7 @@ int bt_le_per_adv_stop(struct bt_le_ext_adv *adv)
return bt_le_per_adv_enable(adv, false);
}
#if defined(CONFIG_BT_CONN)
#if defined(CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER)
int bt_le_per_adv_set_info_transfer(const struct bt_le_ext_adv *adv,
const struct bt_conn *conn,
uint16_t service_data)
@ -1910,7 +1910,7 @@ int bt_le_per_adv_set_info_transfer(const struct bt_le_ext_adv *adv,
return bt_hci_cmd_send_sync(BT_HCI_OP_LE_PER_ADV_SET_INFO_TRANSFER, buf,
NULL);
}
#endif /* CONFIG_BT_CONN */
#endif /* CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER */
#endif /* CONFIG_BT_PER_ADV */
#if defined(CONFIG_BT_EXT_ADV)

View file

@ -1647,7 +1647,7 @@ int bt_le_per_adv_sync_recv_disable(struct bt_le_per_adv_sync *per_adv_sync)
return bt_le_set_per_adv_recv_enable(per_adv_sync, false);
}
#if defined(CONFIG_BT_CONN)
#if defined(CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER)
int bt_le_per_adv_sync_transfer(const struct bt_le_per_adv_sync *per_adv_sync,
const struct bt_conn *conn,
uint16_t service_data)
@ -1678,7 +1678,9 @@ int bt_le_per_adv_sync_transfer(const struct bt_le_per_adv_sync *per_adv_sync,
return bt_hci_cmd_send_sync(BT_HCI_OP_LE_PER_ADV_SYNC_TRANSFER, buf,
NULL);
}
#endif /* CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER */
#if defined(CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER)
static bool valid_past_param(
const struct bt_le_per_adv_sync_transfer_param *param)
{
@ -1794,7 +1796,7 @@ int bt_le_per_adv_sync_transfer_unsubscribe(const struct bt_conn *conn)
0x0a, 0);
}
}
#endif /* CONFIG_BT_CONN */
#endif /* CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER */
int bt_le_per_adv_list_add(const bt_addr_le_t *addr, uint8_t sid)
{

View file

@ -2021,6 +2021,7 @@ static int cmd_per_adv_sync_delete(const struct shell *sh, size_t argc,
return 0;
}
#if defined(CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER)
static int cmd_past_subscribe(const struct shell *sh, size_t argc,
char *argv[])
{
@ -2121,7 +2122,9 @@ static int cmd_past_unsubscribe(const struct shell *sh, size_t argc,
return err;
}
#endif /* CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER */
#if defined(CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER)
static int cmd_per_adv_sync_transfer(const struct shell *sh, size_t argc,
char *argv[])
{
@ -2152,6 +2155,7 @@ static int cmd_per_adv_sync_transfer(const struct shell *sh, size_t argc,
return err;
}
#endif /* CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER */
#endif /* CONFIG_BT_PER_ADV_SYNC */
#if defined(CONFIG_BT_CONN)
@ -3554,15 +3558,17 @@ SHELL_STATIC_SUBCMD_SET_CREATE(bt_cmds,
cmd_per_adv_sync_delete, 1, 1),
#endif /* defined(CONFIG_BT_PER_ADV_SYNC) */
#if defined(CONFIG_BT_CONN)
#if defined(CONFIG_BT_PER_ADV_SYNC)
#if defined(CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER)
SHELL_CMD_ARG(past-subscribe, NULL, "[conn] [skip <count>] "
"[timeout <ms>] [aoa] [aod_1us] [aod_2us] [cte_only]",
cmd_past_subscribe, 1, 7),
SHELL_CMD_ARG(past-unsubscribe, NULL, "[conn]",
cmd_past_unsubscribe, 1, 1),
#endif /* CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER */
#if defined(CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER)
SHELL_CMD_ARG(per-adv-sync-transfer, NULL, "[<index>]",
cmd_per_adv_sync_transfer, 1, 1),
#endif /* defined(CONFIG_BT_PER_ADV_SYNC) */
#endif /* CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER */
#if defined(CONFIG_BT_CENTRAL)
SHELL_CMD_ARG(connect, NULL, HELP_ADDR_LE EXT_ADV_SCAN_OPT,
cmd_connect_le, 1, 3),

View file

@ -8,6 +8,8 @@
config BT_LL_SW_SPLIT
select BT_CTLR_CENTRAL_ISO_SUPPORT
select BT_CTLR_PERIPHERAL_ISO_SUPPORT
select BT_CTLR_SYNC_TRANSFER_RECEIVER_SUPPORT
select BT_CTLR_SYNC_TRANSFER_SENDER_SUPPORT
menu "Zephyr Kernel"
source "Kconfig.zephyr"

View file

@ -32,6 +32,10 @@ CONFIG_BT_AUDIO_BROADCAST_SRC_STREAM_COUNT=1
CONFIG_BT_AUDIO_BROADCAST_SNK_STREAM_COUNT=1
CONFIG_BT_ISO_TX_BUF_COUNT=4
# Needed for Periodic Advertising Sync Transfer
CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER=y
CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER=y
# Volume Offset Control Service
CONFIG_BT_VOCS_MAX_INSTANCE_COUNT=2
CONFIG_BT_VOCS_CLIENT_MAX_INSTANCE_COUNT=2

View file

@ -35,6 +35,9 @@ CONFIG_BT_AUTO_DATA_LEN_UPDATE=y
CONFIG_BT_USER_PHY_UPDATE=y
CONFIG_BT_AUTO_PHY_UPDATE=y
CONFIG_BT_PER_ADV_SYNC_TRANSFER_RECEIVER=y
CONFIG_BT_PER_ADV_SYNC_TRANSFER_SENDER=y
CONFIG_BT_AUDIO=y
CONFIG_BT_AUDIO_UNICAST_SERVER=y
CONFIG_BT_ASCS_ASE_SNK_COUNT=2