Zephyr API Documentation  3.6.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
Service Discovery Protocol (SDP)

Data Structures

struct  bt_sdp_data_elem
 SDP Generic Data Element Value. More...
 
struct  bt_sdp_attribute
 SDP Attribute Value. More...
 
struct  bt_sdp_record
 SDP Service Record Value. More...
 
struct  bt_sdp_client_result
 Generic SDP Client Query Result data holder. More...
 
struct  bt_sdp_discover_params
 Main user structure used in SDP discovery of remote. More...
 

Macros

#define BT_SDP_SERVER_RECORD_HANDLE   0x0000
 
#define BT_SDP_PRIMARY_LANG_BASE   0x0100
 
#define BT_SDP_ATTR_SVCNAME_PRIMARY   (0x0000 + BT_SDP_PRIMARY_LANG_BASE)
 
#define BT_SDP_ATTR_SVCDESC_PRIMARY   (0x0001 + BT_SDP_PRIMARY_LANG_BASE)
 
#define BT_SDP_ATTR_PROVNAME_PRIMARY   (0x0002 + BT_SDP_PRIMARY_LANG_BASE)
 
#define BT_SDP_TYPE_DESC_MASK   0xf8
 
#define BT_SDP_SIZE_DESC_MASK   0x07
 
#define BT_SDP_SIZE_INDEX_OFFSET   5
 
#define BT_SDP_ARRAY_8(...)   ((uint8_t[]) {__VA_ARGS__})
 Declare an array of 8-bit elements in an attribute.
 
#define BT_SDP_ARRAY_16(...)   ((uint16_t[]) {__VA_ARGS__})
 Declare an array of 16-bit elements in an attribute.
 
#define BT_SDP_ARRAY_32(...)   ((uint32_t[]) {__VA_ARGS__})
 Declare an array of 32-bit elements in an attribute.
 
#define BT_SDP_TYPE_SIZE(_type)
 Declare a fixed-size data element header.
 
#define BT_SDP_TYPE_SIZE_VAR(_type, _size)
 Declare a variable-size data element header.
 
#define BT_SDP_DATA_ELEM_LIST(...)   ((struct bt_sdp_data_elem[]) {__VA_ARGS__})
 Declare a list of data elements.
 
#define BT_SDP_NEW_SERVICE
 SDP New Service Record Declaration Macro.
 
#define BT_SDP_LIST(_att_id, _type_size, _data_elem_seq)
 Generic SDP List Attribute Declaration Macro.
 
#define BT_SDP_SERVICE_ID(_uuid)
 SDP Service ID Attribute Declaration Macro.
 
#define BT_SDP_SERVICE_NAME(_name)
 SDP Name Attribute Declaration Macro.
 
#define BT_SDP_SUPPORTED_FEATURES(_features)
 SDP Supported Features Attribute Declaration Macro.
 
#define BT_SDP_RECORD(_attrs)
 SDP Service Declaration Macro.
 

Typedefs

typedef uint8_t(* bt_sdp_discover_func_t) (struct bt_conn *conn, struct bt_sdp_client_result *result)
 Callback type reporting to user that there is a resolved result on remote for given UUID and the result record buffer can be used by user for further inspection.
 

Enumerations

enum  { BT_SDP_DISCOVER_UUID_STOP = 0 , BT_SDP_DISCOVER_UUID_CONTINUE }
 Helper enum to be used as return value of bt_sdp_discover_func_t. More...
 
enum  bt_sdp_proto { BT_SDP_PROTO_RFCOMM = 0x0003 , BT_SDP_PROTO_L2CAP = 0x0100 }
 Protocols to be asked about specific parameters. More...
 

Functions

int bt_sdp_register_service (struct bt_sdp_record *service)
 Register a Service Record.
 
int bt_sdp_discover (struct bt_conn *conn, const struct bt_sdp_discover_params *params)
 Allows user to start SDP discovery session.
 
int bt_sdp_discover_cancel (struct bt_conn *conn, const struct bt_sdp_discover_params *params)
 Release waiting SDP discovery request.
 
int bt_sdp_get_proto_param (const struct net_buf *buf, enum bt_sdp_proto proto, uint16_t *param)
 Give to user parameter value related to given stacked protocol UUID.
 
int bt_sdp_get_addl_proto_param (const struct net_buf *buf, enum bt_sdp_proto proto, uint8_t param_index, uint16_t *param)
 Get additional parameter value related to given stacked protocol UUID.
 
int bt_sdp_get_profile_version (const struct net_buf *buf, uint16_t profile, uint16_t *version)
 Get profile version.
 
int bt_sdp_get_features (const struct net_buf *buf, uint16_t *features)
 Get SupportedFeatures attribute value.
 

Service class identifiers of standard services and service groups

#define BT_SDP_SDP_SERVER_SVCLASS   0x1000
 Service Discovery Server.
 
#define BT_SDP_BROWSE_GRP_DESC_SVCLASS   0x1001
 Browse Group Descriptor.
 
#define BT_SDP_PUBLIC_BROWSE_GROUP   0x1002
 Public Browse Group.
 
#define BT_SDP_SERIAL_PORT_SVCLASS   0x1101
 Serial Port.
 
#define BT_SDP_LAN_ACCESS_SVCLASS   0x1102
 LAN Access Using PPP.
 
#define BT_SDP_DIALUP_NET_SVCLASS   0x1103
 Dialup Networking.
 
#define BT_SDP_IRMC_SYNC_SVCLASS   0x1104
 IrMC Sync.
 
#define BT_SDP_OBEX_OBJPUSH_SVCLASS   0x1105
 OBEX Object Push.
 
#define BT_SDP_OBEX_FILETRANS_SVCLASS   0x1106
 OBEX File Transfer.
 
#define BT_SDP_IRMC_SYNC_CMD_SVCLASS   0x1107
 IrMC Sync Command.
 
#define BT_SDP_HEADSET_SVCLASS   0x1108
 Headset.
 
#define BT_SDP_CORDLESS_TELEPHONY_SVCLASS   0x1109
 Cordless Telephony.
 
#define BT_SDP_AUDIO_SOURCE_SVCLASS   0x110a
 Audio Source.
 
#define BT_SDP_AUDIO_SINK_SVCLASS   0x110b
 Audio Sink.
 
#define BT_SDP_AV_REMOTE_TARGET_SVCLASS   0x110c
 A/V Remote Control Target.
 
#define BT_SDP_ADVANCED_AUDIO_SVCLASS   0x110d
 Advanced Audio Distribution.
 
#define BT_SDP_AV_REMOTE_SVCLASS   0x110e
 A/V Remote Control.
 
#define BT_SDP_AV_REMOTE_CONTROLLER_SVCLASS   0x110f
 A/V Remote Control Controller.
 
#define BT_SDP_INTERCOM_SVCLASS   0x1110
 Intercom.
 
#define BT_SDP_FAX_SVCLASS   0x1111
 Fax.
 
#define BT_SDP_HEADSET_AGW_SVCLASS   0x1112
 Headset AG.
 
#define BT_SDP_WAP_SVCLASS   0x1113
 WAP.
 
#define BT_SDP_WAP_CLIENT_SVCLASS   0x1114
 WAP Client.
 
#define BT_SDP_PANU_SVCLASS   0x1115
 Personal Area Networking User.
 
#define BT_SDP_NAP_SVCLASS   0x1116
 Network Access Point.
 
#define BT_SDP_GN_SVCLASS   0x1117
 Group Network.
 
#define BT_SDP_DIRECT_PRINTING_SVCLASS   0x1118
 Direct Printing.
 
#define BT_SDP_REFERENCE_PRINTING_SVCLASS   0x1119
 Reference Printing.
 
#define BT_SDP_IMAGING_SVCLASS   0x111a
 Basic Imaging Profile.
 
#define BT_SDP_IMAGING_RESPONDER_SVCLASS   0x111b
 Imaging Responder.
 
#define BT_SDP_IMAGING_ARCHIVE_SVCLASS   0x111c
 Imaging Automatic Archive.
 
#define BT_SDP_IMAGING_REFOBJS_SVCLASS   0x111d
 Imaging Referenced Objects.
 
#define BT_SDP_HANDSFREE_SVCLASS   0x111e
 Handsfree.
 
#define BT_SDP_HANDSFREE_AGW_SVCLASS   0x111f
 Handsfree Audio Gateway.
 
#define BT_SDP_DIRECT_PRT_REFOBJS_SVCLASS   0x1120
 Direct Printing Reference Objects Service.
 
#define BT_SDP_REFLECTED_UI_SVCLASS   0x1121
 Reflected UI.
 
#define BT_SDP_BASIC_PRINTING_SVCLASS   0x1122
 Basic Printing.
 
#define BT_SDP_PRINTING_STATUS_SVCLASS   0x1123
 Printing Status.
 
#define BT_SDP_HID_SVCLASS   0x1124
 Human Interface Device Service.
 
#define BT_SDP_HCR_SVCLASS   0x1125
 Hardcopy Cable Replacement.
 
#define BT_SDP_HCR_PRINT_SVCLASS   0x1126
 HCR Print.
 
#define BT_SDP_HCR_SCAN_SVCLASS   0x1127
 HCR Scan.
 
#define BT_SDP_CIP_SVCLASS   0x1128
 Common ISDN Access.
 
#define BT_SDP_VIDEO_CONF_GW_SVCLASS   0x1129
 Video Conferencing Gateway.
 
#define BT_SDP_UDI_MT_SVCLASS   0x112a
 UDI MT.
 
#define BT_SDP_UDI_TA_SVCLASS   0x112b
 UDI TA.
 
#define BT_SDP_AV_SVCLASS   0x112c
 Audio/Video.
 
#define BT_SDP_SAP_SVCLASS   0x112d
 SIM Access.
 
#define BT_SDP_PBAP_PCE_SVCLASS   0x112e
 Phonebook Access Client.
 
#define BT_SDP_PBAP_PSE_SVCLASS   0x112f
 Phonebook Access Server.
 
#define BT_SDP_PBAP_SVCLASS   0x1130
 Phonebook Access.
 
#define BT_SDP_MAP_MSE_SVCLASS   0x1132
 Message Access Server.
 
#define BT_SDP_MAP_MCE_SVCLASS   0x1133
 Message Notification Server.
 
#define BT_SDP_MAP_SVCLASS   0x1134
 Message Access Profile.
 
#define BT_SDP_GNSS_SVCLASS   0x1135
 GNSS.
 
#define BT_SDP_GNSS_SERVER_SVCLASS   0x1136
 GNSS Server.
 
#define BT_SDP_MPS_SC_SVCLASS   0x113a
 MPS SC.
 
#define BT_SDP_MPS_SVCLASS   0x113b
 MPS.
 
#define BT_SDP_PNP_INFO_SVCLASS   0x1200
 PnP Information.
 
#define BT_SDP_GENERIC_NETWORKING_SVCLASS   0x1201
 Generic Networking.
 
#define BT_SDP_GENERIC_FILETRANS_SVCLASS   0x1202
 Generic File Transfer.
 
#define BT_SDP_GENERIC_AUDIO_SVCLASS   0x1203
 Generic Audio.
 
#define BT_SDP_GENERIC_TELEPHONY_SVCLASS   0x1204
 Generic Telephony.
 
#define BT_SDP_UPNP_SVCLASS   0x1205
 UPnP Service.
 
#define BT_SDP_UPNP_IP_SVCLASS   0x1206
 UPnP IP Service.
 
#define BT_SDP_UPNP_PAN_SVCLASS   0x1300
 UPnP IP PAN.
 
#define BT_SDP_UPNP_LAP_SVCLASS   0x1301
 UPnP IP LAP.
 
#define BT_SDP_UPNP_L2CAP_SVCLASS   0x1302
 UPnP IP L2CAP.
 
#define BT_SDP_VIDEO_SOURCE_SVCLASS   0x1303
 Video Source.
 
#define BT_SDP_VIDEO_SINK_SVCLASS   0x1304
 Video Sink.
 
#define BT_SDP_VIDEO_DISTRIBUTION_SVCLASS   0x1305
 Video Distribution.
 
#define BT_SDP_HDP_SVCLASS   0x1400
 HDP.
 
#define BT_SDP_HDP_SOURCE_SVCLASS   0x1401
 HDP Source.
 
#define BT_SDP_HDP_SINK_SVCLASS   0x1402
 HDP Sink.
 
#define BT_SDP_GENERIC_ACCESS_SVCLASS   0x1800
 Generic Access Profile.
 
#define BT_SDP_GENERIC_ATTRIB_SVCLASS   0x1801
 Generic Attribute Profile.
 
#define BT_SDP_APPLE_AGENT_SVCLASS   0x2112
 Apple Agent.
 

Attribute identifier codes

Possible values for attribute-id are listed below.

See SDP Spec, section "Service Attribute Definitions" for more details.

#define BT_SDP_ATTR_RECORD_HANDLE   0x0000
 Service Record Handle.
 
#define BT_SDP_ATTR_SVCLASS_ID_LIST   0x0001
 Service Class ID List.
 
#define BT_SDP_ATTR_RECORD_STATE   0x0002
 Service Record State.
 
#define BT_SDP_ATTR_SERVICE_ID   0x0003
 Service ID.
 
#define BT_SDP_ATTR_PROTO_DESC_LIST   0x0004
 Protocol Descriptor List.
 
#define BT_SDP_ATTR_BROWSE_GRP_LIST   0x0005
 Browse Group List.
 
#define BT_SDP_ATTR_LANG_BASE_ATTR_ID_LIST   0x0006
 Language Base Attribute ID List.
 
#define BT_SDP_ATTR_SVCINFO_TTL   0x0007
 Service Info Time to Live.
 
#define BT_SDP_ATTR_SERVICE_AVAILABILITY   0x0008
 Service Availability.
 
#define BT_SDP_ATTR_PROFILE_DESC_LIST   0x0009
 Bluetooth Profile Descriptor List.
 
#define BT_SDP_ATTR_DOC_URL   0x000a
 Documentation URL.
 
#define BT_SDP_ATTR_CLNT_EXEC_URL   0x000b
 Client Executable URL.
 
#define BT_SDP_ATTR_ICON_URL   0x000c
 Icon URL.
 
#define BT_SDP_ATTR_ADD_PROTO_DESC_LIST   0x000d
 Additional Protocol Descriptor List.
 
#define BT_SDP_ATTR_GROUP_ID   0x0200
 Group ID.
 
#define BT_SDP_ATTR_IP_SUBNET   0x0200
 IP Subnet.
 
#define BT_SDP_ATTR_VERSION_NUM_LIST   0x0200
 Version Number List.
 
#define BT_SDP_ATTR_SUPPORTED_FEATURES_LIST   0x0200
 Supported Features List.
 
#define BT_SDP_ATTR_GOEP_L2CAP_PSM   0x0200
 GOEP L2CAP PSM.
 
#define BT_SDP_ATTR_SVCDB_STATE   0x0201
 Service Database State.
 
#define BT_SDP_ATTR_MPSD_SCENARIOS   0x0200
 MPSD Scenarios.
 
#define BT_SDP_ATTR_MPMD_SCENARIOS   0x0201
 MPMD Scenarios.
 
#define BT_SDP_ATTR_MPS_DEPENDENCIES   0x0202
 Supported Profiles & Protocols.
 
#define BT_SDP_ATTR_SERVICE_VERSION   0x0300
 Service Version.
 
#define BT_SDP_ATTR_EXTERNAL_NETWORK   0x0301
 External Network.
 
#define BT_SDP_ATTR_SUPPORTED_DATA_STORES_LIST   0x0301
 Supported Data Stores List.
 
#define BT_SDP_ATTR_DATA_EXCHANGE_SPEC   0x0301
 Data Exchange Specification.
 
#define BT_SDP_ATTR_NETWORK   0x0301
 Network.
 
#define BT_SDP_ATTR_FAX_CLASS1_SUPPORT   0x0302
 Fax Class 1 Support.
 
#define BT_SDP_ATTR_REMOTE_AUDIO_VOLUME_CONTROL   0x0302
 Remote Audio Volume Control.
 
#define BT_SDP_ATTR_MCAP_SUPPORTED_PROCEDURES   0x0302
 MCAP Supported Procedures.
 
#define BT_SDP_ATTR_FAX_CLASS20_SUPPORT   0x0303
 Fax Class 2.0 Support.
 
#define BT_SDP_ATTR_SUPPORTED_FORMATS_LIST   0x0303
 Supported Formats List.
 
#define BT_SDP_ATTR_FAX_CLASS2_SUPPORT   0x0304
 Fax Class 2 Support (vendor-specific)
 
#define BT_SDP_ATTR_AUDIO_FEEDBACK_SUPPORT   0x0305
 Audio Feedback Support.
 
#define BT_SDP_ATTR_NETWORK_ADDRESS   0x0306
 Network Address.
 
#define BT_SDP_ATTR_WAP_GATEWAY   0x0307
 WAP Gateway.
 
#define BT_SDP_ATTR_HOMEPAGE_URL   0x0308
 Homepage URL.
 
#define BT_SDP_ATTR_WAP_STACK_TYPE   0x0309
 WAP Stack Type.
 
#define BT_SDP_ATTR_SECURITY_DESC   0x030a
 Security Description.
 
#define BT_SDP_ATTR_NET_ACCESS_TYPE   0x030b
 Net Access Type.
 
#define BT_SDP_ATTR_MAX_NET_ACCESSRATE   0x030c
 Max Net Access Rate.
 
#define BT_SDP_ATTR_IP4_SUBNET   0x030d
 IPv4 Subnet.
 
#define BT_SDP_ATTR_IP6_SUBNET   0x030e
 IPv6 Subnet.
 
#define BT_SDP_ATTR_SUPPORTED_CAPABILITIES   0x0310
 BIP Supported Capabilities.
 
#define BT_SDP_ATTR_SUPPORTED_FEATURES   0x0311
 BIP Supported Features.
 
#define BT_SDP_ATTR_SUPPORTED_FUNCTIONS   0x0312
 BIP Supported Functions.
 
#define BT_SDP_ATTR_TOTAL_IMAGING_DATA_CAPACITY   0x0313
 BIP Total Imaging Data Capacity.
 
#define BT_SDP_ATTR_SUPPORTED_REPOSITORIES   0x0314
 Supported Repositories.
 
#define BT_SDP_ATTR_MAS_INSTANCE_ID   0x0315
 MAS Instance ID.
 
#define BT_SDP_ATTR_SUPPORTED_MESSAGE_TYPES   0x0316
 Supported Message Types.
 
#define BT_SDP_ATTR_PBAP_SUPPORTED_FEATURES   0x0317
 PBAP Supported Features.
 
#define BT_SDP_ATTR_MAP_SUPPORTED_FEATURES   0x0317
 MAP Supported Features.
 
#define BT_SDP_ATTR_SPECIFICATION_ID   0x0200
 Specification ID.
 
#define BT_SDP_ATTR_VENDOR_ID   0x0201
 Vendor ID.
 
#define BT_SDP_ATTR_PRODUCT_ID   0x0202
 Product ID.
 
#define BT_SDP_ATTR_VERSION   0x0203
 Version.
 
#define BT_SDP_ATTR_PRIMARY_RECORD   0x0204
 Primary Record.
 
#define BT_SDP_ATTR_VENDOR_ID_SOURCE   0x0205
 Vendor ID Source.
 
#define BT_SDP_ATTR_HID_DEVICE_RELEASE_NUMBER   0x0200
 HID Device Release Number.
 
#define BT_SDP_ATTR_HID_PARSER_VERSION   0x0201
 HID Parser Version.
 
#define BT_SDP_ATTR_HID_DEVICE_SUBCLASS   0x0202
 HID Device Subclass.
 
#define BT_SDP_ATTR_HID_COUNTRY_CODE   0x0203
 HID Country Code.
 
#define BT_SDP_ATTR_HID_VIRTUAL_CABLE   0x0204
 HID Virtual Cable.
 
#define BT_SDP_ATTR_HID_RECONNECT_INITIATE   0x0205
 HID Reconnect Initiate.
 
#define BT_SDP_ATTR_HID_DESCRIPTOR_LIST   0x0206
 HID Descriptor List.
 
#define BT_SDP_ATTR_HID_LANG_ID_BASE_LIST   0x0207
 HID Language ID Base List.
 
#define BT_SDP_ATTR_HID_SDP_DISABLE   0x0208
 HID SDP Disable.
 
#define BT_SDP_ATTR_HID_BATTERY_POWER   0x0209
 HID Battery Power.
 
#define BT_SDP_ATTR_HID_REMOTE_WAKEUP   0x020a
 HID Remote Wakeup.
 
#define BT_SDP_ATTR_HID_PROFILE_VERSION   0x020b
 HID Profile Version.
 
#define BT_SDP_ATTR_HID_SUPERVISION_TIMEOUT   0x020c
 HID Supervision Timeout.
 
#define BT_SDP_ATTR_HID_NORMALLY_CONNECTABLE   0x020d
 HID Normally Connectable.
 
#define BT_SDP_ATTR_HID_BOOT_DEVICE   0x020e
 HID Boot Device.
 

The Data representation in SDP PDUs (pps 339, 340 of BT SDP Spec)

These are the exact data type+size descriptor values that go into the PDU buffer.

The datatype (leading 5bits) + size descriptor (last 3 bits) is 8 bits. The size descriptor is critical to extract the right number of bytes for the data value from the PDU.

For most basic types, the datatype+size descriptor is straightforward. However for constructed types and strings, the size of the data is in the next "n" bytes following the 8 bits (datatype+size) descriptor. Exactly what the "n" is specified in the 3 bits of the data size descriptor.

TextString and URLString can be of size 2^{8, 16, 32} bytes DataSequence and DataSequenceAlternates can be of size 2^{8, 16, 32} The size are computed post-facto in the API and are not known apriori.

#define BT_SDP_DATA_NIL   0x00
 Nil, the null type.
 
#define BT_SDP_UINT8   0x08
 Unsigned 8-bit integer.
 
#define BT_SDP_UINT16   0x09
 Unsigned 16-bit integer.
 
#define BT_SDP_UINT32   0x0a
 Unsigned 32-bit integer.
 
#define BT_SDP_UINT64   0x0b
 Unsigned 64-bit integer.
 
#define BT_SDP_UINT128   0x0c
 Unsigned 128-bit integer.
 
#define BT_SDP_INT8   0x10
 Signed 8-bit integer.
 
#define BT_SDP_INT16   0x11
 Signed 16-bit integer.
 
#define BT_SDP_INT32   0x12
 Signed 32-bit integer.
 
#define BT_SDP_INT64   0x13
 Signed 64-bit integer.
 
#define BT_SDP_INT128   0x14
 Signed 128-bit integer.
 
#define BT_SDP_UUID_UNSPEC   0x18
 UUID, unspecified size.
 
#define BT_SDP_UUID16   0x19
 UUID, 16-bit.
 
#define BT_SDP_UUID32   0x1a
 UUID, 32-bit.
 
#define BT_SDP_UUID128   0x1c
 UUID, 128-bit.
 
#define BT_SDP_TEXT_STR_UNSPEC   0x20
 Text string, unspecified size.
 
#define BT_SDP_TEXT_STR8   0x25
 Text string, 8-bit length.
 
#define BT_SDP_TEXT_STR16   0x26
 Text string, 16-bit length.
 
#define BT_SDP_TEXT_STR32   0x27
 Text string, 32-bit length.
 
#define BT_SDP_BOOL   0x28
 Boolean.
 
#define BT_SDP_SEQ_UNSPEC   0x30
 Data element sequence, unspecified size.
 
#define BT_SDP_SEQ8   0x35
 Data element sequence, 8-bit length.
 
#define BT_SDP_SEQ16   0x36
 Data element sequence, 16-bit length.
 
#define BT_SDP_SEQ32   0x37
 Data element sequence, 32-bit length.
 
#define BT_SDP_ALT_UNSPEC   0x38
 Data element alternative, unspecified size.
 
#define BT_SDP_ALT8   0x3d
 Data element alternative, 8-bit length.
 
#define BT_SDP_ALT16   0x3e
 Data element alternative, 16-bit length.
 
#define BT_SDP_ALT32   0x3f
 Data element alternative, 32-bit length.
 
#define BT_SDP_URL_STR_UNSPEC   0x40
 URL string, unspecified size.
 
#define BT_SDP_URL_STR8   0x45
 URL string, 8-bit length.
 
#define BT_SDP_URL_STR16   0x46
 URL string, 16-bit length.
 
#define BT_SDP_URL_STR32   0x47
 URL string, 32-bit length.
 

Detailed Description

Macro Definition Documentation

◆ BT_SDP_ADVANCED_AUDIO_SVCLASS

#define BT_SDP_ADVANCED_AUDIO_SVCLASS   0x110d

#include <zephyr/bluetooth/classic/sdp.h>

Advanced Audio Distribution.

◆ BT_SDP_ALT16

#define BT_SDP_ALT16   0x3e

#include <zephyr/bluetooth/classic/sdp.h>

Data element alternative, 16-bit length.

◆ BT_SDP_ALT32

#define BT_SDP_ALT32   0x3f

#include <zephyr/bluetooth/classic/sdp.h>

Data element alternative, 32-bit length.

◆ BT_SDP_ALT8

#define BT_SDP_ALT8   0x3d

#include <zephyr/bluetooth/classic/sdp.h>

Data element alternative, 8-bit length.

◆ BT_SDP_ALT_UNSPEC

#define BT_SDP_ALT_UNSPEC   0x38

#include <zephyr/bluetooth/classic/sdp.h>

Data element alternative, unspecified size.

◆ BT_SDP_APPLE_AGENT_SVCLASS

#define BT_SDP_APPLE_AGENT_SVCLASS   0x2112

#include <zephyr/bluetooth/classic/sdp.h>

Apple Agent.

◆ BT_SDP_ARRAY_16

#define BT_SDP_ARRAY_16 (   ...)    ((uint16_t[]) {__VA_ARGS__})

#include <zephyr/bluetooth/classic/sdp.h>

Declare an array of 16-bit elements in an attribute.

◆ BT_SDP_ARRAY_32

#define BT_SDP_ARRAY_32 (   ...)    ((uint32_t[]) {__VA_ARGS__})

#include <zephyr/bluetooth/classic/sdp.h>

Declare an array of 32-bit elements in an attribute.

◆ BT_SDP_ARRAY_8

#define BT_SDP_ARRAY_8 (   ...)    ((uint8_t[]) {__VA_ARGS__})

#include <zephyr/bluetooth/classic/sdp.h>

Declare an array of 8-bit elements in an attribute.

◆ BT_SDP_ATTR_ADD_PROTO_DESC_LIST

#define BT_SDP_ATTR_ADD_PROTO_DESC_LIST   0x000d

#include <zephyr/bluetooth/classic/sdp.h>

Additional Protocol Descriptor List.

◆ BT_SDP_ATTR_AUDIO_FEEDBACK_SUPPORT

#define BT_SDP_ATTR_AUDIO_FEEDBACK_SUPPORT   0x0305

#include <zephyr/bluetooth/classic/sdp.h>

Audio Feedback Support.

◆ BT_SDP_ATTR_BROWSE_GRP_LIST

#define BT_SDP_ATTR_BROWSE_GRP_LIST   0x0005

#include <zephyr/bluetooth/classic/sdp.h>

Browse Group List.

◆ BT_SDP_ATTR_CLNT_EXEC_URL

#define BT_SDP_ATTR_CLNT_EXEC_URL   0x000b

#include <zephyr/bluetooth/classic/sdp.h>

Client Executable URL.

◆ BT_SDP_ATTR_DATA_EXCHANGE_SPEC

#define BT_SDP_ATTR_DATA_EXCHANGE_SPEC   0x0301

#include <zephyr/bluetooth/classic/sdp.h>

Data Exchange Specification.

◆ BT_SDP_ATTR_DOC_URL

#define BT_SDP_ATTR_DOC_URL   0x000a

#include <zephyr/bluetooth/classic/sdp.h>

Documentation URL.

◆ BT_SDP_ATTR_EXTERNAL_NETWORK

#define BT_SDP_ATTR_EXTERNAL_NETWORK   0x0301

#include <zephyr/bluetooth/classic/sdp.h>

External Network.

◆ BT_SDP_ATTR_FAX_CLASS1_SUPPORT

#define BT_SDP_ATTR_FAX_CLASS1_SUPPORT   0x0302

#include <zephyr/bluetooth/classic/sdp.h>

Fax Class 1 Support.

◆ BT_SDP_ATTR_FAX_CLASS20_SUPPORT

#define BT_SDP_ATTR_FAX_CLASS20_SUPPORT   0x0303

#include <zephyr/bluetooth/classic/sdp.h>

Fax Class 2.0 Support.

◆ BT_SDP_ATTR_FAX_CLASS2_SUPPORT

#define BT_SDP_ATTR_FAX_CLASS2_SUPPORT   0x0304

#include <zephyr/bluetooth/classic/sdp.h>

Fax Class 2 Support (vendor-specific)

◆ BT_SDP_ATTR_GOEP_L2CAP_PSM

#define BT_SDP_ATTR_GOEP_L2CAP_PSM   0x0200

#include <zephyr/bluetooth/classic/sdp.h>

GOEP L2CAP PSM.

◆ BT_SDP_ATTR_GROUP_ID

#define BT_SDP_ATTR_GROUP_ID   0x0200

#include <zephyr/bluetooth/classic/sdp.h>

Group ID.

◆ BT_SDP_ATTR_HID_BATTERY_POWER

#define BT_SDP_ATTR_HID_BATTERY_POWER   0x0209

#include <zephyr/bluetooth/classic/sdp.h>

HID Battery Power.

◆ BT_SDP_ATTR_HID_BOOT_DEVICE

#define BT_SDP_ATTR_HID_BOOT_DEVICE   0x020e

#include <zephyr/bluetooth/classic/sdp.h>

HID Boot Device.

◆ BT_SDP_ATTR_HID_COUNTRY_CODE

#define BT_SDP_ATTR_HID_COUNTRY_CODE   0x0203

#include <zephyr/bluetooth/classic/sdp.h>

HID Country Code.

◆ BT_SDP_ATTR_HID_DESCRIPTOR_LIST

#define BT_SDP_ATTR_HID_DESCRIPTOR_LIST   0x0206

#include <zephyr/bluetooth/classic/sdp.h>

HID Descriptor List.

◆ BT_SDP_ATTR_HID_DEVICE_RELEASE_NUMBER

#define BT_SDP_ATTR_HID_DEVICE_RELEASE_NUMBER   0x0200

#include <zephyr/bluetooth/classic/sdp.h>

HID Device Release Number.

◆ BT_SDP_ATTR_HID_DEVICE_SUBCLASS

#define BT_SDP_ATTR_HID_DEVICE_SUBCLASS   0x0202

#include <zephyr/bluetooth/classic/sdp.h>

HID Device Subclass.

◆ BT_SDP_ATTR_HID_LANG_ID_BASE_LIST

#define BT_SDP_ATTR_HID_LANG_ID_BASE_LIST   0x0207

#include <zephyr/bluetooth/classic/sdp.h>

HID Language ID Base List.

◆ BT_SDP_ATTR_HID_NORMALLY_CONNECTABLE

#define BT_SDP_ATTR_HID_NORMALLY_CONNECTABLE   0x020d

#include <zephyr/bluetooth/classic/sdp.h>

HID Normally Connectable.

◆ BT_SDP_ATTR_HID_PARSER_VERSION

#define BT_SDP_ATTR_HID_PARSER_VERSION   0x0201

#include <zephyr/bluetooth/classic/sdp.h>

HID Parser Version.

◆ BT_SDP_ATTR_HID_PROFILE_VERSION

#define BT_SDP_ATTR_HID_PROFILE_VERSION   0x020b

#include <zephyr/bluetooth/classic/sdp.h>

HID Profile Version.

◆ BT_SDP_ATTR_HID_RECONNECT_INITIATE

#define BT_SDP_ATTR_HID_RECONNECT_INITIATE   0x0205

#include <zephyr/bluetooth/classic/sdp.h>

HID Reconnect Initiate.

◆ BT_SDP_ATTR_HID_REMOTE_WAKEUP

#define BT_SDP_ATTR_HID_REMOTE_WAKEUP   0x020a

#include <zephyr/bluetooth/classic/sdp.h>

HID Remote Wakeup.

◆ BT_SDP_ATTR_HID_SDP_DISABLE

#define BT_SDP_ATTR_HID_SDP_DISABLE   0x0208

#include <zephyr/bluetooth/classic/sdp.h>

HID SDP Disable.

◆ BT_SDP_ATTR_HID_SUPERVISION_TIMEOUT

#define BT_SDP_ATTR_HID_SUPERVISION_TIMEOUT   0x020c

#include <zephyr/bluetooth/classic/sdp.h>

HID Supervision Timeout.

◆ BT_SDP_ATTR_HID_VIRTUAL_CABLE

#define BT_SDP_ATTR_HID_VIRTUAL_CABLE   0x0204

#include <zephyr/bluetooth/classic/sdp.h>

HID Virtual Cable.

◆ BT_SDP_ATTR_HOMEPAGE_URL

#define BT_SDP_ATTR_HOMEPAGE_URL   0x0308

#include <zephyr/bluetooth/classic/sdp.h>

Homepage URL.

◆ BT_SDP_ATTR_ICON_URL

#define BT_SDP_ATTR_ICON_URL   0x000c

#include <zephyr/bluetooth/classic/sdp.h>

Icon URL.

◆ BT_SDP_ATTR_IP4_SUBNET

#define BT_SDP_ATTR_IP4_SUBNET   0x030d

#include <zephyr/bluetooth/classic/sdp.h>

IPv4 Subnet.

◆ BT_SDP_ATTR_IP6_SUBNET

#define BT_SDP_ATTR_IP6_SUBNET   0x030e

#include <zephyr/bluetooth/classic/sdp.h>

IPv6 Subnet.

◆ BT_SDP_ATTR_IP_SUBNET

#define BT_SDP_ATTR_IP_SUBNET   0x0200

#include <zephyr/bluetooth/classic/sdp.h>

IP Subnet.

◆ BT_SDP_ATTR_LANG_BASE_ATTR_ID_LIST

#define BT_SDP_ATTR_LANG_BASE_ATTR_ID_LIST   0x0006

#include <zephyr/bluetooth/classic/sdp.h>

Language Base Attribute ID List.

◆ BT_SDP_ATTR_MAP_SUPPORTED_FEATURES

#define BT_SDP_ATTR_MAP_SUPPORTED_FEATURES   0x0317

#include <zephyr/bluetooth/classic/sdp.h>

MAP Supported Features.

◆ BT_SDP_ATTR_MAS_INSTANCE_ID

#define BT_SDP_ATTR_MAS_INSTANCE_ID   0x0315

#include <zephyr/bluetooth/classic/sdp.h>

MAS Instance ID.

◆ BT_SDP_ATTR_MAX_NET_ACCESSRATE

#define BT_SDP_ATTR_MAX_NET_ACCESSRATE   0x030c

#include <zephyr/bluetooth/classic/sdp.h>

Max Net Access Rate.

◆ BT_SDP_ATTR_MCAP_SUPPORTED_PROCEDURES

#define BT_SDP_ATTR_MCAP_SUPPORTED_PROCEDURES   0x0302

#include <zephyr/bluetooth/classic/sdp.h>

MCAP Supported Procedures.

◆ BT_SDP_ATTR_MPMD_SCENARIOS

#define BT_SDP_ATTR_MPMD_SCENARIOS   0x0201

#include <zephyr/bluetooth/classic/sdp.h>

MPMD Scenarios.

◆ BT_SDP_ATTR_MPS_DEPENDENCIES

#define BT_SDP_ATTR_MPS_DEPENDENCIES   0x0202

#include <zephyr/bluetooth/classic/sdp.h>

Supported Profiles & Protocols.

◆ BT_SDP_ATTR_MPSD_SCENARIOS

#define BT_SDP_ATTR_MPSD_SCENARIOS   0x0200

#include <zephyr/bluetooth/classic/sdp.h>

MPSD Scenarios.

◆ BT_SDP_ATTR_NET_ACCESS_TYPE

#define BT_SDP_ATTR_NET_ACCESS_TYPE   0x030b

#include <zephyr/bluetooth/classic/sdp.h>

Net Access Type.

◆ BT_SDP_ATTR_NETWORK

#define BT_SDP_ATTR_NETWORK   0x0301

#include <zephyr/bluetooth/classic/sdp.h>

Network.

◆ BT_SDP_ATTR_NETWORK_ADDRESS

#define BT_SDP_ATTR_NETWORK_ADDRESS   0x0306

#include <zephyr/bluetooth/classic/sdp.h>

Network Address.

◆ BT_SDP_ATTR_PBAP_SUPPORTED_FEATURES

#define BT_SDP_ATTR_PBAP_SUPPORTED_FEATURES   0x0317

#include <zephyr/bluetooth/classic/sdp.h>

PBAP Supported Features.

◆ BT_SDP_ATTR_PRIMARY_RECORD

#define BT_SDP_ATTR_PRIMARY_RECORD   0x0204

#include <zephyr/bluetooth/classic/sdp.h>

Primary Record.

◆ BT_SDP_ATTR_PRODUCT_ID

#define BT_SDP_ATTR_PRODUCT_ID   0x0202

#include <zephyr/bluetooth/classic/sdp.h>

Product ID.

◆ BT_SDP_ATTR_PROFILE_DESC_LIST

#define BT_SDP_ATTR_PROFILE_DESC_LIST   0x0009

#include <zephyr/bluetooth/classic/sdp.h>

Bluetooth Profile Descriptor List.

◆ BT_SDP_ATTR_PROTO_DESC_LIST

#define BT_SDP_ATTR_PROTO_DESC_LIST   0x0004

#include <zephyr/bluetooth/classic/sdp.h>

Protocol Descriptor List.

◆ BT_SDP_ATTR_PROVNAME_PRIMARY

#define BT_SDP_ATTR_PROVNAME_PRIMARY   (0x0002 + BT_SDP_PRIMARY_LANG_BASE)

◆ BT_SDP_ATTR_RECORD_HANDLE

#define BT_SDP_ATTR_RECORD_HANDLE   0x0000

#include <zephyr/bluetooth/classic/sdp.h>

Service Record Handle.

◆ BT_SDP_ATTR_RECORD_STATE

#define BT_SDP_ATTR_RECORD_STATE   0x0002

#include <zephyr/bluetooth/classic/sdp.h>

Service Record State.

◆ BT_SDP_ATTR_REMOTE_AUDIO_VOLUME_CONTROL

#define BT_SDP_ATTR_REMOTE_AUDIO_VOLUME_CONTROL   0x0302

#include <zephyr/bluetooth/classic/sdp.h>

Remote Audio Volume Control.

◆ BT_SDP_ATTR_SECURITY_DESC

#define BT_SDP_ATTR_SECURITY_DESC   0x030a

#include <zephyr/bluetooth/classic/sdp.h>

Security Description.

◆ BT_SDP_ATTR_SERVICE_AVAILABILITY

#define BT_SDP_ATTR_SERVICE_AVAILABILITY   0x0008

#include <zephyr/bluetooth/classic/sdp.h>

Service Availability.

◆ BT_SDP_ATTR_SERVICE_ID

#define BT_SDP_ATTR_SERVICE_ID   0x0003

#include <zephyr/bluetooth/classic/sdp.h>

Service ID.

◆ BT_SDP_ATTR_SERVICE_VERSION

#define BT_SDP_ATTR_SERVICE_VERSION   0x0300

#include <zephyr/bluetooth/classic/sdp.h>

Service Version.

◆ BT_SDP_ATTR_SPECIFICATION_ID

#define BT_SDP_ATTR_SPECIFICATION_ID   0x0200

#include <zephyr/bluetooth/classic/sdp.h>

Specification ID.

◆ BT_SDP_ATTR_SUPPORTED_CAPABILITIES

#define BT_SDP_ATTR_SUPPORTED_CAPABILITIES   0x0310

#include <zephyr/bluetooth/classic/sdp.h>

BIP Supported Capabilities.

◆ BT_SDP_ATTR_SUPPORTED_DATA_STORES_LIST

#define BT_SDP_ATTR_SUPPORTED_DATA_STORES_LIST   0x0301

#include <zephyr/bluetooth/classic/sdp.h>

Supported Data Stores List.

◆ BT_SDP_ATTR_SUPPORTED_FEATURES

#define BT_SDP_ATTR_SUPPORTED_FEATURES   0x0311

#include <zephyr/bluetooth/classic/sdp.h>

BIP Supported Features.

◆ BT_SDP_ATTR_SUPPORTED_FEATURES_LIST

#define BT_SDP_ATTR_SUPPORTED_FEATURES_LIST   0x0200

#include <zephyr/bluetooth/classic/sdp.h>

Supported Features List.

◆ BT_SDP_ATTR_SUPPORTED_FORMATS_LIST

#define BT_SDP_ATTR_SUPPORTED_FORMATS_LIST   0x0303

#include <zephyr/bluetooth/classic/sdp.h>

Supported Formats List.

◆ BT_SDP_ATTR_SUPPORTED_FUNCTIONS

#define BT_SDP_ATTR_SUPPORTED_FUNCTIONS   0x0312

#include <zephyr/bluetooth/classic/sdp.h>

BIP Supported Functions.

◆ BT_SDP_ATTR_SUPPORTED_MESSAGE_TYPES

#define BT_SDP_ATTR_SUPPORTED_MESSAGE_TYPES   0x0316

#include <zephyr/bluetooth/classic/sdp.h>

Supported Message Types.

◆ BT_SDP_ATTR_SUPPORTED_REPOSITORIES

#define BT_SDP_ATTR_SUPPORTED_REPOSITORIES   0x0314

#include <zephyr/bluetooth/classic/sdp.h>

Supported Repositories.

◆ BT_SDP_ATTR_SVCDB_STATE

#define BT_SDP_ATTR_SVCDB_STATE   0x0201

#include <zephyr/bluetooth/classic/sdp.h>

Service Database State.

◆ BT_SDP_ATTR_SVCDESC_PRIMARY

#define BT_SDP_ATTR_SVCDESC_PRIMARY   (0x0001 + BT_SDP_PRIMARY_LANG_BASE)

◆ BT_SDP_ATTR_SVCINFO_TTL

#define BT_SDP_ATTR_SVCINFO_TTL   0x0007

#include <zephyr/bluetooth/classic/sdp.h>

Service Info Time to Live.

◆ BT_SDP_ATTR_SVCLASS_ID_LIST

#define BT_SDP_ATTR_SVCLASS_ID_LIST   0x0001

#include <zephyr/bluetooth/classic/sdp.h>

Service Class ID List.

◆ BT_SDP_ATTR_SVCNAME_PRIMARY

#define BT_SDP_ATTR_SVCNAME_PRIMARY   (0x0000 + BT_SDP_PRIMARY_LANG_BASE)

◆ BT_SDP_ATTR_TOTAL_IMAGING_DATA_CAPACITY

#define BT_SDP_ATTR_TOTAL_IMAGING_DATA_CAPACITY   0x0313

#include <zephyr/bluetooth/classic/sdp.h>

BIP Total Imaging Data Capacity.

◆ BT_SDP_ATTR_VENDOR_ID

#define BT_SDP_ATTR_VENDOR_ID   0x0201

#include <zephyr/bluetooth/classic/sdp.h>

Vendor ID.

◆ BT_SDP_ATTR_VENDOR_ID_SOURCE

#define BT_SDP_ATTR_VENDOR_ID_SOURCE   0x0205

#include <zephyr/bluetooth/classic/sdp.h>

Vendor ID Source.

◆ BT_SDP_ATTR_VERSION

#define BT_SDP_ATTR_VERSION   0x0203

#include <zephyr/bluetooth/classic/sdp.h>

Version.

◆ BT_SDP_ATTR_VERSION_NUM_LIST

#define BT_SDP_ATTR_VERSION_NUM_LIST   0x0200

#include <zephyr/bluetooth/classic/sdp.h>

Version Number List.

◆ BT_SDP_ATTR_WAP_GATEWAY

#define BT_SDP_ATTR_WAP_GATEWAY   0x0307

#include <zephyr/bluetooth/classic/sdp.h>

WAP Gateway.

◆ BT_SDP_ATTR_WAP_STACK_TYPE

#define BT_SDP_ATTR_WAP_STACK_TYPE   0x0309

#include <zephyr/bluetooth/classic/sdp.h>

WAP Stack Type.

◆ BT_SDP_AUDIO_SINK_SVCLASS

#define BT_SDP_AUDIO_SINK_SVCLASS   0x110b

#include <zephyr/bluetooth/classic/sdp.h>

Audio Sink.

◆ BT_SDP_AUDIO_SOURCE_SVCLASS

#define BT_SDP_AUDIO_SOURCE_SVCLASS   0x110a

#include <zephyr/bluetooth/classic/sdp.h>

Audio Source.

◆ BT_SDP_AV_REMOTE_CONTROLLER_SVCLASS

#define BT_SDP_AV_REMOTE_CONTROLLER_SVCLASS   0x110f

#include <zephyr/bluetooth/classic/sdp.h>

A/V Remote Control Controller.

◆ BT_SDP_AV_REMOTE_SVCLASS

#define BT_SDP_AV_REMOTE_SVCLASS   0x110e

#include <zephyr/bluetooth/classic/sdp.h>

A/V Remote Control.

◆ BT_SDP_AV_REMOTE_TARGET_SVCLASS

#define BT_SDP_AV_REMOTE_TARGET_SVCLASS   0x110c

#include <zephyr/bluetooth/classic/sdp.h>

A/V Remote Control Target.

◆ BT_SDP_AV_SVCLASS

#define BT_SDP_AV_SVCLASS   0x112c

#include <zephyr/bluetooth/classic/sdp.h>

Audio/Video.

◆ BT_SDP_BASIC_PRINTING_SVCLASS

#define BT_SDP_BASIC_PRINTING_SVCLASS   0x1122

#include <zephyr/bluetooth/classic/sdp.h>

Basic Printing.

◆ BT_SDP_BOOL

#define BT_SDP_BOOL   0x28

#include <zephyr/bluetooth/classic/sdp.h>

Boolean.

◆ BT_SDP_BROWSE_GRP_DESC_SVCLASS

#define BT_SDP_BROWSE_GRP_DESC_SVCLASS   0x1001

#include <zephyr/bluetooth/classic/sdp.h>

Browse Group Descriptor.

◆ BT_SDP_CIP_SVCLASS

#define BT_SDP_CIP_SVCLASS   0x1128

#include <zephyr/bluetooth/classic/sdp.h>

Common ISDN Access.

◆ BT_SDP_CORDLESS_TELEPHONY_SVCLASS

#define BT_SDP_CORDLESS_TELEPHONY_SVCLASS   0x1109

#include <zephyr/bluetooth/classic/sdp.h>

Cordless Telephony.

◆ BT_SDP_DATA_ELEM_LIST

#define BT_SDP_DATA_ELEM_LIST (   ...)    ((struct bt_sdp_data_elem[]) {__VA_ARGS__})

#include <zephyr/bluetooth/classic/sdp.h>

Declare a list of data elements.

◆ BT_SDP_DATA_NIL

#define BT_SDP_DATA_NIL   0x00

#include <zephyr/bluetooth/classic/sdp.h>

Nil, the null type.

◆ BT_SDP_DIALUP_NET_SVCLASS

#define BT_SDP_DIALUP_NET_SVCLASS   0x1103

#include <zephyr/bluetooth/classic/sdp.h>

Dialup Networking.

◆ BT_SDP_DIRECT_PRINTING_SVCLASS

#define BT_SDP_DIRECT_PRINTING_SVCLASS   0x1118

#include <zephyr/bluetooth/classic/sdp.h>

Direct Printing.

◆ BT_SDP_DIRECT_PRT_REFOBJS_SVCLASS

#define BT_SDP_DIRECT_PRT_REFOBJS_SVCLASS   0x1120

#include <zephyr/bluetooth/classic/sdp.h>

Direct Printing Reference Objects Service.

◆ BT_SDP_FAX_SVCLASS

#define BT_SDP_FAX_SVCLASS   0x1111

◆ BT_SDP_GENERIC_ACCESS_SVCLASS

#define BT_SDP_GENERIC_ACCESS_SVCLASS   0x1800

#include <zephyr/bluetooth/classic/sdp.h>

Generic Access Profile.

◆ BT_SDP_GENERIC_ATTRIB_SVCLASS

#define BT_SDP_GENERIC_ATTRIB_SVCLASS   0x1801

#include <zephyr/bluetooth/classic/sdp.h>

Generic Attribute Profile.

◆ BT_SDP_GENERIC_AUDIO_SVCLASS

#define BT_SDP_GENERIC_AUDIO_SVCLASS   0x1203

#include <zephyr/bluetooth/classic/sdp.h>

Generic Audio.

◆ BT_SDP_GENERIC_FILETRANS_SVCLASS

#define BT_SDP_GENERIC_FILETRANS_SVCLASS   0x1202

#include <zephyr/bluetooth/classic/sdp.h>

Generic File Transfer.

◆ BT_SDP_GENERIC_NETWORKING_SVCLASS

#define BT_SDP_GENERIC_NETWORKING_SVCLASS   0x1201

#include <zephyr/bluetooth/classic/sdp.h>

Generic Networking.

◆ BT_SDP_GENERIC_TELEPHONY_SVCLASS

#define BT_SDP_GENERIC_TELEPHONY_SVCLASS   0x1204

#include <zephyr/bluetooth/classic/sdp.h>

Generic Telephony.

◆ BT_SDP_GN_SVCLASS

#define BT_SDP_GN_SVCLASS   0x1117

#include <zephyr/bluetooth/classic/sdp.h>

Group Network.

◆ BT_SDP_GNSS_SERVER_SVCLASS

#define BT_SDP_GNSS_SERVER_SVCLASS   0x1136

#include <zephyr/bluetooth/classic/sdp.h>

GNSS Server.

◆ BT_SDP_GNSS_SVCLASS

#define BT_SDP_GNSS_SVCLASS   0x1135

◆ BT_SDP_HANDSFREE_AGW_SVCLASS

#define BT_SDP_HANDSFREE_AGW_SVCLASS   0x111f

#include <zephyr/bluetooth/classic/sdp.h>

Handsfree Audio Gateway.

◆ BT_SDP_HANDSFREE_SVCLASS

#define BT_SDP_HANDSFREE_SVCLASS   0x111e

#include <zephyr/bluetooth/classic/sdp.h>

Handsfree.

◆ BT_SDP_HCR_PRINT_SVCLASS

#define BT_SDP_HCR_PRINT_SVCLASS   0x1126

#include <zephyr/bluetooth/classic/sdp.h>

HCR Print.

◆ BT_SDP_HCR_SCAN_SVCLASS

#define BT_SDP_HCR_SCAN_SVCLASS   0x1127

#include <zephyr/bluetooth/classic/sdp.h>

HCR Scan.

◆ BT_SDP_HCR_SVCLASS

#define BT_SDP_HCR_SVCLASS   0x1125

#include <zephyr/bluetooth/classic/sdp.h>

Hardcopy Cable Replacement.

◆ BT_SDP_HDP_SINK_SVCLASS

#define BT_SDP_HDP_SINK_SVCLASS   0x1402

#include <zephyr/bluetooth/classic/sdp.h>

HDP Sink.

◆ BT_SDP_HDP_SOURCE_SVCLASS

#define BT_SDP_HDP_SOURCE_SVCLASS   0x1401

#include <zephyr/bluetooth/classic/sdp.h>

HDP Source.

◆ BT_SDP_HDP_SVCLASS

#define BT_SDP_HDP_SVCLASS   0x1400

◆ BT_SDP_HEADSET_AGW_SVCLASS

#define BT_SDP_HEADSET_AGW_SVCLASS   0x1112

#include <zephyr/bluetooth/classic/sdp.h>

Headset AG.

◆ BT_SDP_HEADSET_SVCLASS

#define BT_SDP_HEADSET_SVCLASS   0x1108

#include <zephyr/bluetooth/classic/sdp.h>

Headset.

◆ BT_SDP_HID_SVCLASS

#define BT_SDP_HID_SVCLASS   0x1124

#include <zephyr/bluetooth/classic/sdp.h>

Human Interface Device Service.

◆ BT_SDP_IMAGING_ARCHIVE_SVCLASS

#define BT_SDP_IMAGING_ARCHIVE_SVCLASS   0x111c

#include <zephyr/bluetooth/classic/sdp.h>

Imaging Automatic Archive.

◆ BT_SDP_IMAGING_REFOBJS_SVCLASS

#define BT_SDP_IMAGING_REFOBJS_SVCLASS   0x111d

#include <zephyr/bluetooth/classic/sdp.h>

Imaging Referenced Objects.

◆ BT_SDP_IMAGING_RESPONDER_SVCLASS

#define BT_SDP_IMAGING_RESPONDER_SVCLASS   0x111b

#include <zephyr/bluetooth/classic/sdp.h>

Imaging Responder.

◆ BT_SDP_IMAGING_SVCLASS

#define BT_SDP_IMAGING_SVCLASS   0x111a

#include <zephyr/bluetooth/classic/sdp.h>

Basic Imaging Profile.

◆ BT_SDP_INT128

#define BT_SDP_INT128   0x14

#include <zephyr/bluetooth/classic/sdp.h>

Signed 128-bit integer.

◆ BT_SDP_INT16

#define BT_SDP_INT16   0x11

#include <zephyr/bluetooth/classic/sdp.h>

Signed 16-bit integer.

◆ BT_SDP_INT32

#define BT_SDP_INT32   0x12

#include <zephyr/bluetooth/classic/sdp.h>

Signed 32-bit integer.

◆ BT_SDP_INT64

#define BT_SDP_INT64   0x13

#include <zephyr/bluetooth/classic/sdp.h>

Signed 64-bit integer.

◆ BT_SDP_INT8

#define BT_SDP_INT8   0x10

#include <zephyr/bluetooth/classic/sdp.h>

Signed 8-bit integer.

◆ BT_SDP_INTERCOM_SVCLASS

#define BT_SDP_INTERCOM_SVCLASS   0x1110

#include <zephyr/bluetooth/classic/sdp.h>

Intercom.

◆ BT_SDP_IRMC_SYNC_CMD_SVCLASS

#define BT_SDP_IRMC_SYNC_CMD_SVCLASS   0x1107

#include <zephyr/bluetooth/classic/sdp.h>

IrMC Sync Command.

◆ BT_SDP_IRMC_SYNC_SVCLASS

#define BT_SDP_IRMC_SYNC_SVCLASS   0x1104

#include <zephyr/bluetooth/classic/sdp.h>

IrMC Sync.

◆ BT_SDP_LAN_ACCESS_SVCLASS

#define BT_SDP_LAN_ACCESS_SVCLASS   0x1102

#include <zephyr/bluetooth/classic/sdp.h>

LAN Access Using PPP.

◆ BT_SDP_LIST

#define BT_SDP_LIST (   _att_id,
  _type_size,
  _data_elem_seq 
)

#include <zephyr/bluetooth/classic/sdp.h>

Value:
{ \
_att_id, { _type_size, _data_elem_seq } \
}

Generic SDP List Attribute Declaration Macro.

Helper macro to declare a list attribute.

Parameters
_att_idList Attribute ID.
_data_elem_seqData element sequence for the list.
_type_sizeSDP type and size descriptor.

◆ BT_SDP_MAP_MCE_SVCLASS

#define BT_SDP_MAP_MCE_SVCLASS   0x1133

#include <zephyr/bluetooth/classic/sdp.h>

Message Notification Server.

◆ BT_SDP_MAP_MSE_SVCLASS

#define BT_SDP_MAP_MSE_SVCLASS   0x1132

#include <zephyr/bluetooth/classic/sdp.h>

Message Access Server.

◆ BT_SDP_MAP_SVCLASS

#define BT_SDP_MAP_SVCLASS   0x1134

#include <zephyr/bluetooth/classic/sdp.h>

Message Access Profile.

◆ BT_SDP_MPS_SC_SVCLASS

#define BT_SDP_MPS_SC_SVCLASS   0x113a

#include <zephyr/bluetooth/classic/sdp.h>

MPS SC.

◆ BT_SDP_MPS_SVCLASS

#define BT_SDP_MPS_SVCLASS   0x113b

◆ BT_SDP_NAP_SVCLASS

#define BT_SDP_NAP_SVCLASS   0x1116

#include <zephyr/bluetooth/classic/sdp.h>

Network Access Point.

◆ BT_SDP_NEW_SERVICE

#define BT_SDP_NEW_SERVICE

#include <zephyr/bluetooth/classic/sdp.h>

Value:
{ \
}, \
{ \
}, \
{ \
BT_SDP_DATA_ELEM_LIST( \
BT_SDP_ARRAY_16(BT_SDP_PRIMARY_LANG_BASE) } \
), \
} \
}, \
{ \
BT_SDP_DATA_ELEM_LIST( \
BT_SDP_ARRAY_16(BT_SDP_PUBLIC_BROWSE_GROUP) }, \
), \
} \
}
#define BT_SDP_UINT16
Unsigned 16-bit integer.
Definition: sdp.h:248
#define BT_SDP_ATTR_BROWSE_GRP_LIST
Browse Group List.
Definition: sdp.h:133
#define BT_SDP_PUBLIC_BROWSE_GROUP
Public Browse Group.
Definition: sdp.h:39
#define BT_SDP_ATTR_RECORD_HANDLE
Service Record Handle.
Definition: sdp.h:128
#define BT_SDP_UUID16
UUID, 16-bit.
Definition: sdp.h:258
#define BT_SDP_ATTR_LANG_BASE_ATTR_ID_LIST
Language Base Attribute ID List.
Definition: sdp.h:134
#define BT_SDP_ATTR_RECORD_STATE
Service Record State.
Definition: sdp.h:130
#define BT_SDP_UINT32
Unsigned 32-bit integer.
Definition: sdp.h:249
#define BT_SDP_SEQ8
Data element sequence, 8-bit length.
Definition: sdp.h:267
#define BT_SDP_TYPE_SIZE(_type)
Declare a fixed-size data element header.
Definition: sdp.h:335
#define BT_SDP_ARRAY_32(...)
Declare an array of 32-bit elements in an attribute.
Definition: sdp.h:328
#define BT_SDP_ARRAY_16(...)
Declare an array of 16-bit elements in an attribute.
Definition: sdp.h:323
#define BT_SDP_PRIMARY_LANG_BASE
Definition: sdp.h:219
#define BT_SDP_TYPE_SIZE_VAR(_type, _size)
Declare a variable-size data element header.
Definition: sdp.h:345
#define BT_SDP_ARRAY_8(...)
Declare an array of 8-bit elements in an attribute.
Definition: sdp.h:318

SDP New Service Record Declaration Macro.

Helper macro to declare a new service record. Default attributes: Record Handle, Record State, Language Base, Root Browse Group

◆ BT_SDP_OBEX_FILETRANS_SVCLASS

#define BT_SDP_OBEX_FILETRANS_SVCLASS   0x1106

#include <zephyr/bluetooth/classic/sdp.h>

OBEX File Transfer.

◆ BT_SDP_OBEX_OBJPUSH_SVCLASS

#define BT_SDP_OBEX_OBJPUSH_SVCLASS   0x1105

#include <zephyr/bluetooth/classic/sdp.h>

OBEX Object Push.

◆ BT_SDP_PANU_SVCLASS

#define BT_SDP_PANU_SVCLASS   0x1115

#include <zephyr/bluetooth/classic/sdp.h>

Personal Area Networking User.

◆ BT_SDP_PBAP_PCE_SVCLASS

#define BT_SDP_PBAP_PCE_SVCLASS   0x112e

#include <zephyr/bluetooth/classic/sdp.h>

Phonebook Access Client.

◆ BT_SDP_PBAP_PSE_SVCLASS

#define BT_SDP_PBAP_PSE_SVCLASS   0x112f

#include <zephyr/bluetooth/classic/sdp.h>

Phonebook Access Server.

◆ BT_SDP_PBAP_SVCLASS

#define BT_SDP_PBAP_SVCLASS   0x1130

#include <zephyr/bluetooth/classic/sdp.h>

Phonebook Access.

◆ BT_SDP_PNP_INFO_SVCLASS

#define BT_SDP_PNP_INFO_SVCLASS   0x1200

#include <zephyr/bluetooth/classic/sdp.h>

PnP Information.

◆ BT_SDP_PRIMARY_LANG_BASE

#define BT_SDP_PRIMARY_LANG_BASE   0x0100

◆ BT_SDP_PRINTING_STATUS_SVCLASS

#define BT_SDP_PRINTING_STATUS_SVCLASS   0x1123

#include <zephyr/bluetooth/classic/sdp.h>

Printing Status.

◆ BT_SDP_PUBLIC_BROWSE_GROUP

#define BT_SDP_PUBLIC_BROWSE_GROUP   0x1002

#include <zephyr/bluetooth/classic/sdp.h>

Public Browse Group.

◆ BT_SDP_RECORD

#define BT_SDP_RECORD (   _attrs)

#include <zephyr/bluetooth/classic/sdp.h>

Value:
{ \
.attrs = _attrs, \
.attr_count = ARRAY_SIZE((_attrs)), \
}
#define ARRAY_SIZE(array)
Number of elements in the given array.
Definition: util.h:127

SDP Service Declaration Macro.

Helper macro to declare a service.

Parameters
_attrsList of attributes for the service record.

◆ BT_SDP_REFERENCE_PRINTING_SVCLASS

#define BT_SDP_REFERENCE_PRINTING_SVCLASS   0x1119

#include <zephyr/bluetooth/classic/sdp.h>

Reference Printing.

◆ BT_SDP_REFLECTED_UI_SVCLASS

#define BT_SDP_REFLECTED_UI_SVCLASS   0x1121

#include <zephyr/bluetooth/classic/sdp.h>

Reflected UI.

◆ BT_SDP_SAP_SVCLASS

#define BT_SDP_SAP_SVCLASS   0x112d

#include <zephyr/bluetooth/classic/sdp.h>

SIM Access.

◆ BT_SDP_SDP_SERVER_SVCLASS

#define BT_SDP_SDP_SERVER_SVCLASS   0x1000

#include <zephyr/bluetooth/classic/sdp.h>

Service Discovery Server.

◆ BT_SDP_SEQ16

#define BT_SDP_SEQ16   0x36

#include <zephyr/bluetooth/classic/sdp.h>

Data element sequence, 16-bit length.

◆ BT_SDP_SEQ32

#define BT_SDP_SEQ32   0x37

#include <zephyr/bluetooth/classic/sdp.h>

Data element sequence, 32-bit length.

◆ BT_SDP_SEQ8

#define BT_SDP_SEQ8   0x35

#include <zephyr/bluetooth/classic/sdp.h>

Data element sequence, 8-bit length.

◆ BT_SDP_SEQ_UNSPEC

#define BT_SDP_SEQ_UNSPEC   0x30

#include <zephyr/bluetooth/classic/sdp.h>

Data element sequence, unspecified size.

◆ BT_SDP_SERIAL_PORT_SVCLASS

#define BT_SDP_SERIAL_PORT_SVCLASS   0x1101

#include <zephyr/bluetooth/classic/sdp.h>

Serial Port.

◆ BT_SDP_SERVER_RECORD_HANDLE

#define BT_SDP_SERVER_RECORD_HANDLE   0x0000

◆ BT_SDP_SERVICE_ID

#define BT_SDP_SERVICE_ID (   _uuid)

#include <zephyr/bluetooth/classic/sdp.h>

Value:
{ \
{ BT_SDP_TYPE_SIZE(BT_SDP_UUID16), &((struct bt_uuid_16) _uuid) } \
}
#define BT_SDP_ATTR_SERVICE_ID
Service ID.
Definition: sdp.h:131
Definition: uuid.h:53

SDP Service ID Attribute Declaration Macro.

Helper macro to declare a service ID attribute.

Parameters
_uuidService ID 16bit UUID.

◆ BT_SDP_SERVICE_NAME

#define BT_SDP_SERVICE_NAME (   _name)

#include <zephyr/bluetooth/classic/sdp.h>

Value:
{ \
{ BT_SDP_TYPE_SIZE_VAR(BT_SDP_TEXT_STR8, (sizeof(_name)-1)), _name } \
}
#define BT_SDP_ATTR_SVCNAME_PRIMARY
Definition: sdp.h:221
#define BT_SDP_TEXT_STR8
Text string, 8-bit length.
Definition: sdp.h:262

SDP Name Attribute Declaration Macro.

Helper macro to declare a service name attribute.

Parameters
_nameService name as a string (up to 256 chars).

◆ BT_SDP_SIZE_DESC_MASK

#define BT_SDP_SIZE_DESC_MASK   0x07

◆ BT_SDP_SIZE_INDEX_OFFSET

#define BT_SDP_SIZE_INDEX_OFFSET   5

◆ BT_SDP_SUPPORTED_FEATURES

#define BT_SDP_SUPPORTED_FEATURES (   _features)

#include <zephyr/bluetooth/classic/sdp.h>

Value:
{ \
}
#define BT_SDP_ATTR_SUPPORTED_FEATURES
BIP Supported Features.
Definition: sdp.h:176

SDP Supported Features Attribute Declaration Macro.

Helper macro to declare supported features of a profile/protocol.

Parameters
_featuresFeature mask as 16bit unsigned integer.

◆ BT_SDP_TEXT_STR16

#define BT_SDP_TEXT_STR16   0x26

#include <zephyr/bluetooth/classic/sdp.h>

Text string, 16-bit length.

◆ BT_SDP_TEXT_STR32

#define BT_SDP_TEXT_STR32   0x27

#include <zephyr/bluetooth/classic/sdp.h>

Text string, 32-bit length.

◆ BT_SDP_TEXT_STR8

#define BT_SDP_TEXT_STR8   0x25

#include <zephyr/bluetooth/classic/sdp.h>

Text string, 8-bit length.

◆ BT_SDP_TEXT_STR_UNSPEC

#define BT_SDP_TEXT_STR_UNSPEC   0x20

#include <zephyr/bluetooth/classic/sdp.h>

Text string, unspecified size.

◆ BT_SDP_TYPE_DESC_MASK

#define BT_SDP_TYPE_DESC_MASK   0xf8

◆ BT_SDP_TYPE_SIZE

#define BT_SDP_TYPE_SIZE (   _type)

#include <zephyr/bluetooth/classic/sdp.h>

Value:
.type = _type, \
.data_size = BIT(_type & BT_SDP_SIZE_DESC_MASK), \
.total_size = BIT(_type & BT_SDP_SIZE_DESC_MASK) + 1
#define BT_SDP_SIZE_DESC_MASK
Definition: sdp.h:283
#define BIT(n)
Unsigned integer with bit position n set (signed in assembly language).
Definition: util_macro.h:44

Declare a fixed-size data element header.

Parameters
_typeData element header containing type and size descriptors.

◆ BT_SDP_TYPE_SIZE_VAR

#define BT_SDP_TYPE_SIZE_VAR (   _type,
  _size 
)

#include <zephyr/bluetooth/classic/sdp.h>

Value:
.type = _type, \
.data_size = _size, \
.total_size = BIT((_type & BT_SDP_SIZE_DESC_MASK) - \
#define BT_SDP_SIZE_INDEX_OFFSET
Definition: sdp.h:284

Declare a variable-size data element header.

Parameters
_typeData element header containing type and size descriptors.
_sizeThe actual size of the data.

◆ BT_SDP_UDI_MT_SVCLASS

#define BT_SDP_UDI_MT_SVCLASS   0x112a

#include <zephyr/bluetooth/classic/sdp.h>

UDI MT.

◆ BT_SDP_UDI_TA_SVCLASS

#define BT_SDP_UDI_TA_SVCLASS   0x112b

#include <zephyr/bluetooth/classic/sdp.h>

UDI TA.

◆ BT_SDP_UINT128

#define BT_SDP_UINT128   0x0c

#include <zephyr/bluetooth/classic/sdp.h>

Unsigned 128-bit integer.

◆ BT_SDP_UINT16

#define BT_SDP_UINT16   0x09

#include <zephyr/bluetooth/classic/sdp.h>

Unsigned 16-bit integer.

◆ BT_SDP_UINT32

#define BT_SDP_UINT32   0x0a

#include <zephyr/bluetooth/classic/sdp.h>

Unsigned 32-bit integer.

◆ BT_SDP_UINT64

#define BT_SDP_UINT64   0x0b

#include <zephyr/bluetooth/classic/sdp.h>

Unsigned 64-bit integer.

◆ BT_SDP_UINT8

#define BT_SDP_UINT8   0x08

#include <zephyr/bluetooth/classic/sdp.h>

Unsigned 8-bit integer.

◆ BT_SDP_UPNP_IP_SVCLASS

#define BT_SDP_UPNP_IP_SVCLASS   0x1206

#include <zephyr/bluetooth/classic/sdp.h>

UPnP IP Service.

◆ BT_SDP_UPNP_L2CAP_SVCLASS

#define BT_SDP_UPNP_L2CAP_SVCLASS   0x1302

#include <zephyr/bluetooth/classic/sdp.h>

UPnP IP L2CAP.

◆ BT_SDP_UPNP_LAP_SVCLASS

#define BT_SDP_UPNP_LAP_SVCLASS   0x1301

#include <zephyr/bluetooth/classic/sdp.h>

UPnP IP LAP.

◆ BT_SDP_UPNP_PAN_SVCLASS

#define BT_SDP_UPNP_PAN_SVCLASS   0x1300

#include <zephyr/bluetooth/classic/sdp.h>

UPnP IP PAN.

◆ BT_SDP_UPNP_SVCLASS

#define BT_SDP_UPNP_SVCLASS   0x1205

#include <zephyr/bluetooth/classic/sdp.h>

UPnP Service.

◆ BT_SDP_URL_STR16

#define BT_SDP_URL_STR16   0x46

#include <zephyr/bluetooth/classic/sdp.h>

URL string, 16-bit length.

◆ BT_SDP_URL_STR32

#define BT_SDP_URL_STR32   0x47

#include <zephyr/bluetooth/classic/sdp.h>

URL string, 32-bit length.

◆ BT_SDP_URL_STR8

#define BT_SDP_URL_STR8   0x45

#include <zephyr/bluetooth/classic/sdp.h>

URL string, 8-bit length.

◆ BT_SDP_URL_STR_UNSPEC

#define BT_SDP_URL_STR_UNSPEC   0x40

#include <zephyr/bluetooth/classic/sdp.h>

URL string, unspecified size.

◆ BT_SDP_UUID128

#define BT_SDP_UUID128   0x1c

#include <zephyr/bluetooth/classic/sdp.h>

UUID, 128-bit.

◆ BT_SDP_UUID16

#define BT_SDP_UUID16   0x19

#include <zephyr/bluetooth/classic/sdp.h>

UUID, 16-bit.

◆ BT_SDP_UUID32

#define BT_SDP_UUID32   0x1a

#include <zephyr/bluetooth/classic/sdp.h>

UUID, 32-bit.

◆ BT_SDP_UUID_UNSPEC

#define BT_SDP_UUID_UNSPEC   0x18

#include <zephyr/bluetooth/classic/sdp.h>

UUID, unspecified size.

◆ BT_SDP_VIDEO_CONF_GW_SVCLASS

#define BT_SDP_VIDEO_CONF_GW_SVCLASS   0x1129

#include <zephyr/bluetooth/classic/sdp.h>

Video Conferencing Gateway.

◆ BT_SDP_VIDEO_DISTRIBUTION_SVCLASS

#define BT_SDP_VIDEO_DISTRIBUTION_SVCLASS   0x1305

#include <zephyr/bluetooth/classic/sdp.h>

Video Distribution.

◆ BT_SDP_VIDEO_SINK_SVCLASS

#define BT_SDP_VIDEO_SINK_SVCLASS   0x1304

#include <zephyr/bluetooth/classic/sdp.h>

Video Sink.

◆ BT_SDP_VIDEO_SOURCE_SVCLASS

#define BT_SDP_VIDEO_SOURCE_SVCLASS   0x1303

#include <zephyr/bluetooth/classic/sdp.h>

Video Source.

◆ BT_SDP_WAP_CLIENT_SVCLASS

#define BT_SDP_WAP_CLIENT_SVCLASS   0x1114

#include <zephyr/bluetooth/classic/sdp.h>

WAP Client.

◆ BT_SDP_WAP_SVCLASS

#define BT_SDP_WAP_SVCLASS   0x1113

Typedef Documentation

◆ bt_sdp_discover_func_t

bt_sdp_discover_func_t

#include <zephyr/bluetooth/classic/sdp.h>

Callback type reporting to user that there is a resolved result on remote for given UUID and the result record buffer can be used by user for further inspection.

A function of this type is given by the user to the bt_sdp_discover_params object. It'll be called on each valid record discovery completion for given UUID. When UUID resolution gives back no records then NULL is passed to the user. Otherwise user can get valid record(s) and then the internal hint 'next record' is set to false saying the UUID resolution is complete or the hint can be set by caller to true meaning that next record is available for given UUID. The returned function value allows the user to control retrieving follow-up resolved records if any. If the user doesn't want to read more resolved records for given UUID since current record data fulfills its requirements then should return BT_SDP_DISCOVER_UUID_STOP. Otherwise returned value means more subcall iterations are allowable.

Parameters
connConnection object identifying connection to queried remote.
resultObject pointing to logical unparsed SDP record collected on base of response driven by given UUID.
Returns
BT_SDP_DISCOVER_UUID_STOP in case of no more need to read next record data and continue discovery for given UUID. By returning BT_SDP_DISCOVER_UUID_CONTINUE user allows this discovery continuation.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

#include <zephyr/bluetooth/classic/sdp.h>

Helper enum to be used as return value of bt_sdp_discover_func_t.

The value informs the caller to perform further pending actions or stop them.

Enumerator
BT_SDP_DISCOVER_UUID_STOP 
BT_SDP_DISCOVER_UUID_CONTINUE 

◆ bt_sdp_proto

#include <zephyr/bluetooth/classic/sdp.h>

Protocols to be asked about specific parameters.

Enumerator
BT_SDP_PROTO_RFCOMM 
BT_SDP_PROTO_L2CAP 

Function Documentation

◆ bt_sdp_discover()

int bt_sdp_discover ( struct bt_conn *  conn,
const struct bt_sdp_discover_params params 
)

#include <zephyr/bluetooth/classic/sdp.h>

Allows user to start SDP discovery session.

The function performs SDP service discovery on remote server driven by user delivered discovery parameters. Discovery session is made as soon as no SDP transaction is ongoing between peers and if any then this one is queued to be processed at discovery completion of previous one. On the service discovery completion the callback function will be called to get feedback to user about findings.

Parameters
connObject identifying connection to remote.
paramsSDP discovery parameters.
Returns
0 in case of success or negative value in case of error.

◆ bt_sdp_discover_cancel()

int bt_sdp_discover_cancel ( struct bt_conn *  conn,
const struct bt_sdp_discover_params params 
)

#include <zephyr/bluetooth/classic/sdp.h>

Release waiting SDP discovery request.

It can cancel valid waiting SDP client request identified by SDP discovery parameters object.

Parameters
connObject identifying connection to remote.
paramsSDP discovery parameters.
Returns
0 in case of success or negative value in case of error.

◆ bt_sdp_get_addl_proto_param()

int bt_sdp_get_addl_proto_param ( const struct net_buf buf,
enum bt_sdp_proto  proto,
uint8_t  param_index,
uint16_t param 
)

#include <zephyr/bluetooth/classic/sdp.h>

Get additional parameter value related to given stacked protocol UUID.

API extracts specific parameter associated with given protocol UUID available in Additional Protocol Descriptor List attribute.

Parameters
bufOriginal buffered raw record data.
protoKnown protocol to be checked like RFCOMM or L2CAP.
param_indexThere may be more than one parameter related to the given protocol UUID. This function returns the result that is indexed by this parameter. It's value is from 0, 0 means the first matched result, 1 means the second matched result.
[out]paramOn success populated by found parameter value.
Returns
0 on success when a specific parameter associated with a given protocol value is found, or negative if error occurred during processing.

◆ bt_sdp_get_features()

int bt_sdp_get_features ( const struct net_buf buf,
uint16_t features 
)

#include <zephyr/bluetooth/classic/sdp.h>

Get SupportedFeatures attribute value.

Allows if exposed by remote retrieve SupportedFeature attribute.

Parameters
bufBuffer holding original raw record data from remote.
featuresOn success object to be populated with SupportedFeature mask.
Returns
0 on success if feature found and valid, negative in case any error

◆ bt_sdp_get_profile_version()

int bt_sdp_get_profile_version ( const struct net_buf buf,
uint16_t  profile,
uint16_t version 
)

#include <zephyr/bluetooth/classic/sdp.h>

Get profile version.

Helper API extracting remote profile version number. To get it proper generic profile parameter needs to be selected usually listed in SDP Interoperability Requirements section for given profile specification.

Parameters
bufOriginal buffered raw record data.
profileProfile family identifier the profile belongs.
versionOn success populated by found version number.
Returns
0 on success, negative value if error occurred during processing.

◆ bt_sdp_get_proto_param()

int bt_sdp_get_proto_param ( const struct net_buf buf,
enum bt_sdp_proto  proto,
uint16_t param 
)

#include <zephyr/bluetooth/classic/sdp.h>

Give to user parameter value related to given stacked protocol UUID.

API extracts specific parameter associated with given protocol UUID available in Protocol Descriptor List attribute.

Parameters
bufOriginal buffered raw record data.
protoKnown protocol to be checked like RFCOMM or L2CAP.
paramOn success populated by found parameter value.
Returns
0 on success when specific parameter associated with given protocol value is found, or negative if error occurred during processing.

◆ bt_sdp_register_service()

int bt_sdp_register_service ( struct bt_sdp_record service)

#include <zephyr/bluetooth/classic/sdp.h>

Register a Service Record.

Register a Service Record. Applications can make use of macros such as BT_SDP_DECLARE_SERVICE, BT_SDP_LIST, BT_SDP_SERVICE_ID, BT_SDP_SERVICE_NAME, etc. A service declaration must start with BT_SDP_NEW_SERVICE.

Parameters
serviceService record declared using BT_SDP_DECLARE_SERVICE.
Returns
0 in case of success or negative value in case of error.