/* 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);