blob: 1524318c4a19a3c61af4b7ba3c42447b23165e16 [file] [log] [blame]
/* sdp_internal.h - Service Discovery Protocol handling */
/*
* Copyright (c) 2015-2016 Intel Corporation
*
* SPDX-License-Identifier: Apache-2.0
*/
/*
* The PDU identifiers of SDP packets between client and server
*/
#define BT_SDP_ERROR_RSP 0x01
#define BT_SDP_SVC_SEARCH_REQ 0x02
#define BT_SDP_SVC_SEARCH_RSP 0x03
#define BT_SDP_SVC_ATTR_REQ 0x04
#define BT_SDP_SVC_ATTR_RSP 0x05
#define BT_SDP_SVC_SEARCH_ATTR_REQ 0x06
#define BT_SDP_SVC_SEARCH_ATTR_RSP 0x07
/*
* Some additions to support service registration.
* These are outside the scope of the Bluetooth specification
*/
#define BT_SDP_SVC_REGISTER_REQ 0x75
#define BT_SDP_SVC_REGISTER_RSP 0x76
#define BT_SDP_SVC_UPDATE_REQ 0x77
#define BT_SDP_SVC_UPDATE_RSP 0x78
#define BT_SDP_SVC_REMOVE_REQ 0x79
#define BT_SDP_SVC_REMOVE_RSP 0x80
/*
* SDP Error codes
*/
#define BT_SDP_INVALID_VERSION 0x0001
#define BT_SDP_INVALID_RECORD_HANDLE 0x0002
#define BT_SDP_INVALID_SYNTAX 0x0003
#define BT_SDP_INVALID_PDU_SIZE 0x0004
#define BT_SDP_INVALID_CSTATE 0x0005
#define BT_SDP_MAX_SERVICES 10
struct bt_sdp_data_elem_seq {
uint8_t type; /* Type: Will be data element sequence */
uint16_t size; /* We only support 2 byte sizes for now */
} __packed;
struct bt_sdp_hdr {
uint8_t op_code;
uint16_t tid;
uint16_t param_len;
} __packed;
struct bt_sdp_svc_rsp {
uint16_t total_recs;
uint16_t current_recs;
} __packed;
struct bt_sdp_att_rsp {
uint16_t att_list_len;
} __packed;
/* Allowed attributes length in SSA Request PDU to be taken from server */
#define BT_SDP_MAX_ATTR_LEN 0xffff
/* Max allowed length of PDU Continuation State */
#define BT_SDP_MAX_PDU_CSTATE_LEN 16
/* Type mapping SDP PDU Continuation State */
struct bt_sdp_pdu_cstate {
uint8_t length;
uint8_t data[BT_SDP_MAX_PDU_CSTATE_LEN];
} __packed;
void bt_sdp_init(void);