blob: 80b923f4302fcac372840d449b2641f8791f3ce5 [file] [log] [blame]
# Bluetooth Object Transfer service
# Copyright (c) 2020-2022 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config BT_OTS
bool "Object Transfer Service (OTS) [EXPERIMENTAL]"
select BT_L2CAP_DYNAMIC_CHANNEL
select BT_GATT_DYNAMIC_DB
select BT_SMP
select EXPERIMENTAL
help
Enable Object Transfer Service.
if BT_OTS
config BT_OTS_DIR_LIST_OBJ
bool "The Directory Listing Object"
help
Enables the Directory Listing Object, which is an object that contains all the metadata
from all other objects, for easy exposure to a client. Enabling this will use one of the
objects given by BT_OTS_MAX_OBJ_CNT.
config BT_OTS_DIR_LIST_OBJ_NAME
string "The object name of the Directory Listing Object"
default "Directory"
depends on BT_OTS_DIR_LIST_OBJ
help
The name of the Directory Listing Object when it is read by a client.
config BT_OTS_MAX_INST_CNT
int "Maximum number of available OTS instances"
default 1
range 1 1 if !BT_OTS_SECONDARY_SVC
config BT_OTS_SECONDARY_SVC
bool "Register OTS as Secondary Service"
config BT_OTS_OACP_CREATE_SUPPORT
bool "Support OACP Create Operation"
depends on BT_OTS_OACP_WRITE_SUPPORT
depends on BT_OTS_OBJ_NAME_WRITE_SUPPORT
config BT_OTS_OACP_DELETE_SUPPORT
bool "Support OACP Delete Operation"
config BT_OTS_OACP_READ_SUPPORT
bool "Support OACP Read Operation"
default y
config BT_OTS_OACP_WRITE_SUPPORT
bool "Support OACP Write Operation"
config BT_OTS_OACP_PATCH_SUPPORT
bool "Support patching of objects"
depends on BT_OTS_OACP_WRITE_SUPPORT
config BT_OTS_OLCP_GO_TO_SUPPORT
bool "Support OLCP Go To Operation"
default y
config BT_OTS_OBJ_NAME_WRITE_SUPPORT
bool "Support object name write"
endif # BT_OTS
#### Object Transfer Service Client ################################
config BT_OTS_CLIENT
bool "Object Transfer Service Client [Experimental]"
select BT_L2CAP_DYNAMIC_CHANNEL
select BT_GATT_CLIENT
select BT_GATT_AUTO_DISCOVER_CCC
select EXPERIMENTAL
help
This option enables support for the Object Transfer Service Client.
if BT_OTS_CLIENT
# TODO: Unify logging for OTS server and client - the client uses
# "BT" debugging, the server does not.
config BT_DEBUG_OTS_CLIENT
bool "Object Transfer Service Client debug"
help
Use this option to enable Object Transfer Client debug logs
endif # BT_OTS_CLIENT
if BT_OTS || BT_OTS_CLIENT
config BT_OTS_MAX_OBJ_CNT
hex "Maximum number of objects that each service instance can store"
default 0x05
# Given the maximum size of a directory listing record (172) and the maximum size of an
# object using the net_buf implementation is 2^16-1, the maximum number of objects is given
# by 2^16-1 / 172 = 381 == 0x17D)
range 0x02 0x17D if BT_OTS_DIR_LIST_OBJ
# Max obj count is otherwise the non-RFU IDs available
range 0x01 0xFFFFFFFFFFFFFEFF
config BT_OTS_L2CAP_CHAN_TX_MTU
int "Size of TX MTU for Object Transfer Channel"
default 256
range 21 65533
config BT_OTS_L2CAP_CHAN_RX_MTU
int "Size of RX MTU for Object Transfer Channel"
# RX MTU will be truncated to account for the L2CAP PDU and SDU header.
default BT_BUF_ACL_RX_SIZE
range 21 BT_BUF_ACL_RX_SIZE
config BT_OTS_OBJ_MAX_NAME_LEN
int "Maximum object name length"
# Max name length allowed by OTS spec is 120 octets
# TODO: Set separate max name length for client, as other
# servers may use the full 120 octets.
default 120
range 1 120
module = BT_OTS
module-str = BT_OTS
source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config"
endif # BT_OTS || BT_OTS_CLIENT