5 * Wireshark - Network traffic analyzer
6 * By Gerald Combs <gerald@wireshark.org>
7 * Copyright 1998 Gerald Combs
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 2
12 * of the License, or (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24 #ifndef __PACKET_BTSDP_H__
25 #define __PACKET_BTSDP_H__
27 #include <epan/wmem/wmem.h>
30 * Based on value provided by Bluetooth SIG:
31 * https://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm
34 #define BTSDP_SDP_PROTOCOL_UUID 0x0001
35 #define BTSDP_UDP_PROTOCOL_UUID 0x0002
36 #define BTSDP_RFCOMM_PROTOCOL_UUID 0x0003
37 #define BTSDP_TCP_PROTOCOL_UUID 0x0004
38 #define BTSDP_TCS_BIN_PROTOCOL_UUID 0x0005
39 #define BTSDP_TCS_AT_PROTOCOL_UUID 0x0006
40 #define BTSDP_ATT_PROTOCOL_UUID 0x0007
41 #define BTSDP_OBEX_PROTOCOL_UUID 0x0008
42 #define BTSDP_IP_PROTOCOL_UUID 0x0009
43 #define BTSDP_FTP_PROTOCOL_UUID 0x000A
44 #define BTSDP_HTTP_PROTOCOL_UUID 0x000C
45 #define BTSDP_WSP_PROTOCOL_UUID 0x000E
46 #define BTSDP_BNEP_PROTOCOL_UUID 0x000F
47 #define BTSDP_UPNP_PROTOCOL_UUID 0x0010
48 #define BTSDP_HIDP_PROTOCOL_UUID 0x0011
49 #define BTSDP_HARDCOPY_CONTROL_CHANNEL_PROTOCOL_UUID 0x0012
50 #define BTSDP_HARDCOPY_DATA_CHANNEL_PROTOCOL_UUID 0x0014
51 #define BTSDP_HARDCOPY_NOTIFICATION_PROTOCOL_UUID 0x0016
52 #define BTSDP_AVCTP_PROTOCOL_UUID 0x0017
53 #define BTSDP_AVDTP_PROTOCOL_UUID 0x0019
54 #define BTSDP_CMTP_PROTOCOL_UUID 0x001B
55 #define BTSDP_MCAP_CONTROL_CHANNEL_PROTOCOL_UUID 0x001E
56 #define BTSDP_MCAP_DATA_CHANNEL_PROTOCOL_UUID 0x001F
57 #define BTSDP_L2CAP_PROTOCOL_UUID 0x0100
60 #define BTSDP_SPP_SERVICE_UUID 0x1101
61 #define BTSDP_LAN_SERVICE_UUID 0x1102
62 #define BTSDP_DUN_SERVICE_UUID 0x1103
63 #define BTSDP_SYNC_SERVICE_UUID 0x1104
64 #define BTSDP_OPP_SERVICE_UUID 0x1105
65 #define BTSDP_FTP_SERVICE_UUID 0x1106
66 #define BTSDP_SYNC_COMMAND_SERVICE_UUID 0x1107
67 #define BTSDP_HSP_SERVICE_UUID 0x1108
68 #define BTSDP_CTP_SERVICE_UUID 0x1109
70 #define BTSDP_A2DP_SOURCE_SERVICE_UUID 0x110A
71 #define BTSDP_A2DP_SINK_SERVICE_UUID 0x110B
72 #define BTSDP_AVRCP_TG_SERVICE_UUID 0x110C
73 #define BTSDP_A2DP_DISTRIBUTION_SERVICE_UUID 0x110D
74 #define BTSDP_AVRCP_SERVICE_UUID 0x110E
75 #define BTSDP_AVRCP_CT_SERVICE_UUID 0x110F
77 #define BTSDP_ICP_SERVICE_UUID 0x1110
78 #define BTSDP_FAX_SERVICE_UUID 0x1111
79 #define BTSDP_HSP_GW_SERVICE_UUID 0x1112
80 #define BTSDP_WAP_SERVICE_UUID 0x1113
81 #define BTSDP_WAP_CLIENT_SERVICE_UUID 0x1114
83 #define BTSDP_PAN_PANU_SERVICE_UUID 0x1115
84 #define BTSDP_PAN_NAP_SERVICE_UUID 0x1116
85 #define BTSDP_PAN_GN_SERVICE_UUID 0x1117
87 #define BTSDP_BPP_DIRECT_PRINTING_SERVICE_UUID 0x1118
88 #define BTSDP_BPP_REFERENCE_PRINTING_SERVICE_UUID 0x1119
90 #define BTSDP_BIP_SERVICE_UUID 0x111A
91 #define BTSDP_BIP_RESPONDER_SERVICE_UUID 0x111B
92 #define BTSDP_BIP_AUTO_ARCH_SERVICE_UUID 0x111C
93 #define BTSDP_BIP_REF_OBJ_SERVICE_UUID 0x111D
95 #define BTSDP_HFP_SERVICE_UUID 0x111E
96 #define BTSDP_HFP_GW_SERVICE_UUID 0x111F
98 #define BTSDP_BPP_DIRECT_PRINTING_REF_OBJ_SERVICE_UUID 0x1120
99 #define BTSDP_BPP_REFLECTED_UI_SERVICE_UUID 0x1121
100 #define BTSDP_BPP_SERVICE_UUID 0x1122
101 #define BTSDP_BPP_STATUS_SERVICE_UUID 0x1123
103 #define BTSDP_HID_SERVICE_UUID 0x1124
105 #define BTSDP_HCRP_SERVICE_UUID 0x1125
106 #define BTSDP_HCRP_PRINT_SERVICE_UUID 0x1126
107 #define BTSDP_HCRP_SCAN_SERVICE_UUID 0x1127
109 #define BTSDP_CIP_SERVICE_UUID 0x1128
111 #define BTSDP_VIDEO_CONFERENCING_GW_SERVICE_UUID 0x1129 /* not assigned*/
113 #define BTSDP_UDI_MT_SERVICE_UUID 0x112A /* not assigned*/
114 #define BTSDP_UDI_TA_SERVICE_UUID 0x112B /* not assigned*/
116 #define BTSDP_AUDIO_VIDEO_SERVICE_UUID 0x112C /* not assigned*/
118 #define BTSDP_SAP_SERVICE_UUID 0x112D
120 #define BTSDP_PBAP_PCE_SERVICE_UUID 0x112E
121 #define BTSDP_PBAP_PSE_SERVICE_UUID 0x112F
122 #define BTSDP_PBAP_SERVICE_UUID 0x1130
124 #define BTSDP_HSP_HS_SERVICE_UUID 0x1131
126 #define BTSDP_MAP_ACCESS_SRV_SERVICE_UUID 0x1132
127 #define BTSDP_MAP_NOTIFICATION_SRV_SERVICE_UUID 0x1133
128 #define BTSDP_MAP_SERVICE_UUID 0x1134
130 #define BTSDP_GNSS_UUID 0x1135
131 #define BTSDP_GNSS_SERVER_UUID 0x1136
133 #define BTSDP_3D_DISPLAY_UUID 0x1137
134 #define BTSDP_3D_GLASSES_UUID 0x1138
135 #define BTSDP_3D_SYNCHRONIZATION_UUID 0x1139
137 #define BTSDP_DID_SERVICE_UUID 0x1200
139 #define BTSDP_GENERIC_NETWORKING_SERVICE_UUID 0x1201
140 #define BTSDP_GENERIC_FILE_TRANSFER_SERVICE_UUID 0x1202
141 #define BTSDP_GENERIC_AUDIO_SERVICE_UUID 0x1203
142 #define BTSDP_GENERIC_TELEPHONY_SERVICE_UUID 0x1204
144 #define BTSDP_ESDP_UPNP_SERVICE_SERVICE_UUID 0x1205
145 #define BTSDP_ESDP_UPNP_IP_SERVICE_SERVICE_UUID 0x1206
146 #define BTSDP_ESDP_UPNP_IP_PAN_SERVICE_UUID 0x1300
147 #define BTSDP_ESDP_UPNP_IP_LAP_SERVICE_UUID 0x1301
148 #define BTSDP_ESDP_UPNP_L2CAP_SERVICE_UUID 0x1302
150 #define BTSDP_VDP_SOURCE_SERVICE_UUID 0x1303
151 #define BTSDP_VDP_SINK_SERVICE_UUID 0x1304
152 #define BTSDP_VDP_DISTRIBUTION_SERVICE_UUID 0x1305
154 #define BTSDP_HDP_SERVICE_UUID 0x1400
155 #define BTSDP_HDP_SOURCE_SERVICE_UUID 0x1401
156 #define BTSDP_HDP_SINK_SERVICE_UUID 0x1402
159 #define BTSDP_LOCAL_SERVICE_FLAG_MASK 0x0001
160 #define BTSDP_SECONDARY_CHANNEL_FLAG_MASK 0x0002
162 typedef struct _uuid_t
{
168 /* This structure is passed to other dissectors through the tap interface
169 * and contains information about the relation between service, PSM/server
170 * channel, local/remote service. The btrfcomm and btl2cap dissectors
171 * need this information to determine the kind of data transfered on
172 * dynamically assigned server channels and PSM's, respectively.
174 typedef struct _btsdp_data_t
{
175 guint32 interface_id
;
178 guint32 frame_number
;
179 guint32 service
; /* service UUID, see below */
180 guint32 channel
; /* rfcomm server channel or PSM */
181 guint16 protocol
; /* either rfcomm or l2cap UUID */
182 guint16 flags
; /* indicate if the service is local or remote
183 peer device) and/or a secondary PSM */
187 typedef struct _service_info_t
{
188 guint32 interface_id
;
198 gint protocol_order
; /* main service protocol has 0, goep -1, additional protocol 1, 2... */
200 void *data
; /* Used to transfer service record data to profiles */
202 struct _service_info_t
*parent_info
;
205 #define SDP_PSM_DEFAULT 1
207 extern value_string_ext vs_service_classes_ext
;
209 typedef struct _sdp_package_t
{
210 wmem_tree_t
*service_infos
;
216 * Editor modelines - http://www.wireshark.org/tools/modelines.html
221 * indent-tabs-mode: nil
224 * vi: set shiftwidth=4 tabstop=8 expandtab:
225 * :indentSize=4:tabSize=8:noTabs=true: