/*
 *
 *  BlueZ - Bluetooth protocol stack for Linux
 *
 *  Copyright (C) 2012  Intel Corporation. All rights reserved.
 *
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <unistd.h>
#include <stdlib.h>
#include <stdbool.h>
#include <sys/socket.h>

#include <glib.h>

#include "lib/bluetooth.h"
#include "lib/sdp.h"
#include "lib/sdp_lib.h"

#include "src/shared/util.h"
#include "src/shared/tester.h"
#include "src/log.h"
#include "src/sdpd.h"

struct sdp_pdu {
	bool valid;
	const void *raw_data;
	size_t raw_size;
	uint8_t cont_len;
};

struct test_data {
	int mtu;
	struct sdp_pdu *pdu_list;
};

#define raw_data(args...) ((const unsigned char[]) { args })
#define build_u128(args...) ((const uint128_t) { .data = { args } })

#define raw_pdu(args...) \
	{							\
		.valid = true,					\
		.raw_data = raw_data(args),			\
		.raw_size = sizeof(raw_data(args)),		\
	}

#define raw_pdu_cont(cont, args...) \
	{							\
		.valid = true,					\
		.raw_data = raw_data(args),			\
		.raw_size = sizeof(raw_data(args)),		\
		.cont_len = cont,				\
	}

#define define_test(name, _mtu, args...) \
	do {								\
		const struct sdp_pdu pdus[] = {				\
			args, { }					\
		};							\
		static struct test_data data;				\
		data.mtu = _mtu;					\
		data.pdu_list = g_memdup(pdus, sizeof(pdus));		\
		tester_add(name, &data, NULL, test_sdp, NULL);		\
	} while (0)

#define define_ss(name, args...) define_test("/TP/SERVER/SS/" name, 48, args)
#define define_sa(name, args...) define_test("/TP/SERVER/SA/" name, 48, args)
#define define_ssa(name, args...) define_test("/TP/SERVER/SSA/" name, 48, args)
#define define_brw(name, args...) define_test("/TP/SERVER/BRW/" name, 672, args)

/* SDP Data Element (DE) tests */
struct test_data_de {
	const void *input_data;
	size_t input_size;
	sdp_data_t expected;
};

#define exp_data(_dtd, val_type, val_data) \
	((const sdp_data_t) {			\
		.dtd = _dtd,			\
		.val.val_type = val_data,	\
	})

#define define_test_de_attr(name, input, exp) \
	do {								\
		static struct test_data_de data;			\
		data.input_data = input;				\
		data.input_size = sizeof(input);			\
		data.expected = exp;					\
		tester_add("/sdp/DE/ATTR/" name, &data,	NULL,		\
					test_sdp_de_attr, NULL);	\
	} while (0)

struct context {
	guint server_source;
	guint client_source;
	int fd;
	uint8_t cont_data[16];
	uint8_t cont_size;
	unsigned int pdu_offset;
	const struct test_data *data;
};

static void sdp_debug(const char *str, void *user_data)
{
	const char *prefix = user_data;

	tester_debug("%s%s\n", prefix, str);
}

static void destroy_context(struct context *context)
{
	sdp_svcdb_collect_all(context->fd);
	sdp_svcdb_reset();

	g_source_remove(context->server_source);
	g_source_remove(context->client_source);

	g_free(context);
}

static gboolean context_quit(gpointer user_data)
{
	struct context *context = user_data;
	if (context == NULL)
		return FALSE;

	destroy_context(context);
	tester_test_passed();

	return FALSE;
}

static gboolean server_handler(GIOChannel *channel, GIOCondition cond,
							gpointer user_data)
{
	struct context *context = user_data;
	sdp_pdu_hdr_t hdr;
	void *buf;
	size_t size;
	ssize_t len;
	int fd;

	fd = g_io_channel_unix_get_fd(channel);

	if (cond & (G_IO_NVAL | G_IO_ERR | G_IO_HUP)) {
		sdp_svcdb_collect_all(fd);
		return FALSE;
	}

	len = recv(fd, &hdr, sizeof(sdp_pdu_hdr_t), MSG_PEEK);
	if (len != sizeof(sdp_pdu_hdr_t)) {
		sdp_svcdb_collect_all(fd);
		return FALSE;
	}

	size = sizeof(sdp_pdu_hdr_t) + ntohs(hdr.plen);

	buf = malloc(size);
	if (!buf)
		return TRUE;

	len = recv(fd, buf, size, 0);
	if (len <= 0) {
		sdp_svcdb_collect_all(fd);
		free(buf);
		return FALSE;
	}

	util_hexdump('<', buf, len, sdp_debug, "SDP: ");

	handle_internal_request(fd, context->data->mtu, buf, len);

	return TRUE;
}

static gboolean send_pdu(gpointer user_data)
{
	struct context *context = user_data;
	const struct sdp_pdu *req_pdu;
	uint16_t pdu_len;
	unsigned char *buf;
	ssize_t len;

	req_pdu = &context->data->pdu_list[context->pdu_offset];

	pdu_len = req_pdu->raw_size + context->cont_size;

	buf = g_malloc0(pdu_len);

	memcpy(buf, req_pdu->raw_data, req_pdu->raw_size);

	if (context->cont_size > 0)
		memcpy(buf + req_pdu->raw_size, context->cont_data,
							context->cont_size);

	len = write(context->fd, buf, pdu_len);

	g_free(buf);

	g_assert(len == pdu_len);

	return FALSE;
}

static void context_increment(struct context *context)
{
	context->pdu_offset += 2;

	if (!context->data->pdu_list[context->pdu_offset].valid) {
		context_quit(context);
		return;
	}

	g_idle_add(send_pdu, context);
}

static gboolean client_handler(GIOChannel *channel, GIOCondition cond,
							gpointer user_data)
{
	struct context *context = user_data;
	const struct sdp_pdu *rsp_pdu;
	unsigned char buf[512];
	ssize_t len;
	int fd;

	rsp_pdu = &context->data->pdu_list[context->pdu_offset + 1];

	if (cond & (G_IO_NVAL | G_IO_ERR | G_IO_HUP))
		return FALSE;

	fd = g_io_channel_unix_get_fd(channel);

	len = read(fd, buf, sizeof(buf));
	if (len < 0)
		return FALSE;

	util_hexdump('>', buf, len, sdp_debug, "SDP: ");

	g_assert(len > 0);
	g_assert((size_t) len == rsp_pdu->raw_size + rsp_pdu->cont_len);

	g_assert(memcmp(buf, rsp_pdu->raw_data,	rsp_pdu->raw_size) == 0);

	if (rsp_pdu->cont_len > 0)
		memcpy(context->cont_data, buf + rsp_pdu->raw_size,
							rsp_pdu->cont_len);

	context->cont_size = rsp_pdu->cont_len;

	context_increment(context);

	return TRUE;
}

static void update_db_timestamp(void)
{
}

static void register_serial_port(void)
{
	sdp_list_t *svclass_id, *apseq, *proto[2], *profiles, *root, *aproto;
	uuid_t root_uuid, sp_uuid, l2cap, rfcomm;
	sdp_profile_desc_t profile;
	uint8_t u8 = 1;
	sdp_data_t *sdp_data, *channel;
	sdp_record_t *record = sdp_record_alloc();

	record->handle = sdp_next_handle();

	sdp_record_add(BDADDR_ANY, record);
	sdp_data = sdp_data_alloc(SDP_UINT32, &record->handle);
	sdp_attr_add(record, SDP_ATTR_RECORD_HANDLE, sdp_data);

	sdp_uuid16_create(&root_uuid, PUBLIC_BROWSE_GROUP);
	root = sdp_list_append(0, &root_uuid);
	sdp_set_browse_groups(record, root);
	sdp_list_free(root, 0);

	sdp_uuid16_create(&sp_uuid, SERIAL_PORT_SVCLASS_ID);
	svclass_id = sdp_list_append(0, &sp_uuid);
	sdp_set_service_classes(record, svclass_id);
	sdp_list_free(svclass_id, 0);

	sdp_uuid16_create(&profile.uuid, SERIAL_PORT_PROFILE_ID);
	profile.version = 0x0100;
	profiles = sdp_list_append(0, &profile);
	sdp_set_profile_descs(record, profiles);
	sdp_list_free(profiles, 0);

	sdp_uuid16_create(&l2cap, L2CAP_UUID);
	proto[0] = sdp_list_append(0, &l2cap);
	apseq = sdp_list_append(0, proto[0]);

	sdp_uuid16_create(&rfcomm, RFCOMM_UUID);
	proto[1] = sdp_list_append(0, &rfcomm);
	channel = sdp_data_alloc(SDP_UINT8, &u8);
	proto[1] = sdp_list_append(proto[1], channel);
	apseq = sdp_list_append(apseq, proto[1]);

	aproto = sdp_list_append(0, apseq);
	sdp_set_access_protos(record, aproto);

	sdp_add_lang_attr(record);

	sdp_set_info_attr(record, "Serial Port", "BlueZ", "COM Port");

	sdp_set_url_attr(record, "http://www.bluez.org/",
			"http://www.bluez.org/", "http://www.bluez.org/");

	sdp_set_service_id(record, sp_uuid);
	sdp_set_service_ttl(record, 0xffff);
	sdp_set_service_avail(record, 0xff);
	sdp_set_record_state(record, 0x00001234);

	sdp_data_free(channel);
	sdp_list_free(proto[0], 0);
	sdp_list_free(proto[1], 0);
	sdp_list_free(apseq, 0);
	sdp_list_free(aproto, 0);

	update_db_timestamp();
}

static void register_object_push(void)
{
	sdp_list_t *svclass_id, *pfseq, *apseq, *root;
	uuid_t root_uuid, opush_uuid, l2cap_uuid, rfcomm_uuid, obex_uuid;
	sdp_profile_desc_t profile[1];
	sdp_list_t *aproto, *proto[3];
	uint8_t chan = 9;
	sdp_data_t *channel;
	uint8_t formats[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0xff };
	void *dtds[sizeof(formats)], *values[sizeof(formats)];
	unsigned int i;
	uint8_t dtd = SDP_UINT8;
	sdp_data_t *sdp_data, *sflist;
	sdp_record_t *record = sdp_record_alloc();

	record->handle = sdp_next_handle();

	sdp_record_add(BDADDR_ANY, record);
	sdp_data = sdp_data_alloc(SDP_UINT32, &record->handle);
	sdp_attr_add(record, SDP_ATTR_RECORD_HANDLE, sdp_data);

	sdp_uuid16_create(&root_uuid, PUBLIC_BROWSE_GROUP);
	root = sdp_list_append(0, &root_uuid);
	sdp_set_browse_groups(record, root);

	sdp_uuid16_create(&opush_uuid, OBEX_OBJPUSH_SVCLASS_ID);
	svclass_id = sdp_list_append(0, &opush_uuid);
	sdp_set_service_classes(record, svclass_id);

	sdp_uuid16_create(&profile[0].uuid, OBEX_OBJPUSH_PROFILE_ID);
	profile[0].version = 0x0100;
	pfseq = sdp_list_append(0, profile);
	sdp_set_profile_descs(record, pfseq);

	sdp_uuid16_create(&l2cap_uuid, L2CAP_UUID);
	proto[0] = sdp_list_append(0, &l2cap_uuid);
	apseq = sdp_list_append(0, proto[0]);

	sdp_uuid16_create(&rfcomm_uuid, RFCOMM_UUID);
	proto[1] = sdp_list_append(0, &rfcomm_uuid);
	channel = sdp_data_alloc(SDP_UINT8, &chan);
	proto[1] = sdp_list_append(proto[1], channel);
	apseq = sdp_list_append(apseq, proto[1]);

	sdp_uuid16_create(&obex_uuid, OBEX_UUID);
	proto[2] = sdp_list_append(0, &obex_uuid);
	apseq = sdp_list_append(apseq, proto[2]);

	aproto = sdp_list_append(0, apseq);
	sdp_set_access_protos(record, aproto);

	for (i = 0; i < sizeof(formats); i++) {
		dtds[i] = &dtd;
		values[i] = &formats[i];
	}
	sflist = sdp_seq_alloc(dtds, values, sizeof(formats));
	sdp_attr_add(record, SDP_ATTR_SUPPORTED_FORMATS_LIST, sflist);

	sdp_set_info_attr(record, "OBEX Object Push", 0, 0);

	sdp_data_free(channel);
	sdp_list_free(root, 0);
	sdp_list_free(svclass_id, 0);
	sdp_list_free(pfseq, 0);
	sdp_list_free(proto[0], 0);
	sdp_list_free(proto[1], 0);
	sdp_list_free(proto[2], 0);
	sdp_list_free(apseq, 0);
	sdp_list_free(aproto, 0);

	update_db_timestamp();
}

static void register_hid_keyboard(void)
{
	sdp_list_t *svclass_id, *pfseq, *apseq, *root;
	uuid_t root_uuid, hidkb_uuid, l2cap_uuid, hidp_uuid;
	sdp_profile_desc_t profile[1];
	sdp_list_t *aproto, *proto[3];
	sdp_data_t *psm, *lang_lst, *lang_lst2, *hid_spec_lst, *hid_spec_lst2;
	unsigned int i;
	uint8_t dtd = SDP_UINT16;
	uint8_t dtd2 = SDP_UINT8;
	uint8_t dtd_data = SDP_TEXT_STR8;
	void *dtds[2];
	void *values[2];
	void *dtds2[2];
	void *values2[2];
	int leng[2];
	uint8_t hid_spec_type = 0x22;
	uint16_t hid_attr_lang[] = { 0x409, 0x100 };
	static const uint16_t ctrl = 0x11;
	static const uint16_t intr = 0x13;
	static const uint16_t hid_attr[] = { 0x100, 0x111, 0x40, 0x0d,
								0x01, 0x01 };
	static const uint16_t hid_attr2[] = { 0x0, 0x01, 0x100, 0x1f40,
								0x01, 0x01 };
	const uint8_t hid_spec[] = {
		0x05, 0x01, // usage page
		0x09, 0x06, // keyboard
		0xa1, 0x01, // key codes
		0x85, 0x01, // minimum
		0x05, 0x07, // max
		0x19, 0xe0, // logical min
		0x29, 0xe7, // logical max
		0x15, 0x00, // report size
		0x25, 0x01, // report count
		0x75, 0x01, // input data variable absolute
		0x95, 0x08, // report count
		0x81, 0x02, // report size
		0x75, 0x08,
		0x95, 0x01,
		0x81, 0x01,
		0x75, 0x01,
		0x95, 0x05,
		0x05, 0x08,
		0x19, 0x01,
		0x29, 0x05,
		0x91, 0x02,
		0x75, 0x03,
		0x95, 0x01,
		0x91, 0x01,
		0x75, 0x08,
		0x95, 0x06,
		0x15, 0x00,
		0x26, 0xff,
		0x00, 0x05,
		0x07, 0x19,
		0x00, 0x2a,
		0xff, 0x00,
		0x81, 0x00,
		0x75, 0x01,
		0x95, 0x01,
		0x15, 0x00,
		0x25, 0x01,
		0x05, 0x0c,
		0x09, 0xb8,
		0x81, 0x06,
		0x09, 0xe2,
		0x81, 0x06,
		0x09, 0xe9,
		0x81, 0x02,
		0x09, 0xea,
		0x81, 0x02,
		0x75, 0x01,
		0x95, 0x04,
		0x81, 0x01,
		0xc0         // end tag
	};
	sdp_data_t *sdp_data;
	sdp_record_t *record = sdp_record_alloc();

	record->handle = sdp_next_handle();

	sdp_record_add(BDADDR_ANY, record);
	sdp_data = sdp_data_alloc(SDP_UINT32, &record->handle);
	sdp_attr_add(record, SDP_ATTR_RECORD_HANDLE, sdp_data);

	sdp_uuid16_create(&root_uuid, PUBLIC_BROWSE_GROUP);
	root = sdp_list_append(0, &root_uuid);
	sdp_set_browse_groups(record, root);
	sdp_list_free(root, 0);

	sdp_add_lang_attr(record);

	sdp_uuid16_create(&hidkb_uuid, HID_SVCLASS_ID);
	svclass_id = sdp_list_append(0, &hidkb_uuid);
	sdp_set_service_classes(record, svclass_id);
	sdp_list_free(svclass_id, 0);

	sdp_uuid16_create(&profile[0].uuid, HID_PROFILE_ID);
	profile[0].version = 0x0100;
	pfseq = sdp_list_append(0, profile);
	sdp_set_profile_descs(record, pfseq);
	sdp_list_free(pfseq, 0);

	/* protocols */
	sdp_uuid16_create(&l2cap_uuid, L2CAP_UUID);
	proto[1] = sdp_list_append(0, &l2cap_uuid);
	psm = sdp_data_alloc(SDP_UINT16, &ctrl);
	proto[1] = sdp_list_append(proto[1], psm);
	apseq = sdp_list_append(0, proto[1]);

	sdp_uuid16_create(&hidp_uuid, HIDP_UUID);
	proto[2] = sdp_list_append(0, &hidp_uuid);
	apseq = sdp_list_append(apseq, proto[2]);

	aproto = sdp_list_append(0, apseq);
	sdp_set_access_protos(record, aproto);

	sdp_data_free(psm);
	sdp_list_free(proto[1], 0);
	sdp_list_free(proto[2], 0);
	sdp_list_free(apseq, 0);
	sdp_list_free(aproto, 0);

	/* additional protocols */
	proto[1] = sdp_list_append(0, &l2cap_uuid);
	psm = sdp_data_alloc(SDP_UINT16, &intr);
	proto[1] = sdp_list_append(proto[1], psm);
	apseq = sdp_list_append(0, proto[1]);

	sdp_uuid16_create(&hidp_uuid, HIDP_UUID);
	proto[2] = sdp_list_append(0, &hidp_uuid);
	apseq = sdp_list_append(apseq, proto[2]);

	aproto = sdp_list_append(0, apseq);
	sdp_set_add_access_protos(record, aproto);

	sdp_data_free(psm);
	sdp_list_free(proto[1], 0);
	sdp_list_free(proto[2], 0);
	sdp_list_free(apseq, 0);
	sdp_list_free(aproto, 0);

	sdp_set_info_attr(record, "HID Keyboard", NULL, NULL);

	for (i = 0; i < sizeof(hid_attr) / 2; i++)
		sdp_attr_add_new(record,
				SDP_ATTR_HID_DEVICE_RELEASE_NUMBER + i,
				SDP_UINT16, &hid_attr[i]);

	dtds[0] = &dtd2;
	values[0] = &hid_spec_type;
	dtds[1] = &dtd_data;
	values[1] = (uint8_t *) hid_spec;
	leng[0] = 0;
	leng[1] = sizeof(hid_spec);
	hid_spec_lst = sdp_seq_alloc_with_length(dtds, values, leng, 2);
	hid_spec_lst2 = sdp_data_alloc(SDP_SEQ8, hid_spec_lst);
	sdp_attr_add(record, SDP_ATTR_HID_DESCRIPTOR_LIST, hid_spec_lst2);

	for (i = 0; i < sizeof(hid_attr_lang) / 2; i++) {
		dtds2[i] = &dtd;
		values2[i] = &hid_attr_lang[i];
	}

	lang_lst = sdp_seq_alloc(dtds2, values2, sizeof(hid_attr_lang) / 2);
	lang_lst2 = sdp_data_alloc(SDP_SEQ8, lang_lst);
	sdp_attr_add(record, SDP_ATTR_HID_LANG_ID_BASE_LIST, lang_lst2);

	sdp_attr_add_new(record, SDP_ATTR_HID_SDP_DISABLE,
						SDP_UINT16, &hid_attr2[0]);

	for (i = 0; i < sizeof(hid_attr2) / 2 - 1; i++)
		sdp_attr_add_new(record, SDP_ATTR_HID_REMOTE_WAKEUP + i,
						SDP_UINT16, &hid_attr2[i + 1]);

	update_db_timestamp();
}

static void register_file_transfer(void)
{
	sdp_list_t *svclass_id, *pfseq, *apseq, *root;
	uuid_t root_uuid, ftrn_uuid, l2cap_uuid, rfcomm_uuid, obex_uuid;
	sdp_profile_desc_t profile[1];
	sdp_list_t *aproto, *proto[3];
	uint8_t u8 = 10;
	sdp_data_t *sdp_data, *channel;
	sdp_record_t *record = sdp_record_alloc();

	record->handle = sdp_next_handle();

	sdp_record_add(BDADDR_ANY, record);
	sdp_data = sdp_data_alloc(SDP_UINT32, &record->handle);
	sdp_attr_add(record, SDP_ATTR_RECORD_HANDLE, sdp_data);

	sdp_uuid16_create(&root_uuid, PUBLIC_BROWSE_GROUP);
	root = sdp_list_append(0, &root_uuid);
	sdp_set_browse_groups(record, root);

	sdp_uuid16_create(&ftrn_uuid, OBEX_FILETRANS_SVCLASS_ID);
	svclass_id = sdp_list_append(0, &ftrn_uuid);
	sdp_set_service_classes(record, svclass_id);

	sdp_uuid16_create(&profile[0].uuid, OBEX_FILETRANS_PROFILE_ID);
	profile[0].version = 0x0100;
	pfseq = sdp_list_append(0, &profile[0]);
	sdp_set_profile_descs(record, pfseq);

	sdp_uuid16_create(&l2cap_uuid, L2CAP_UUID);
	proto[0] = sdp_list_append(0, &l2cap_uuid);
	apseq = sdp_list_append(0, proto[0]);

	sdp_uuid16_create(&rfcomm_uuid, RFCOMM_UUID);
	proto[1] = sdp_list_append(0, &rfcomm_uuid);
	channel = sdp_data_alloc(SDP_UINT8, &u8);
	proto[1] = sdp_list_append(proto[1], channel);
	apseq = sdp_list_append(apseq, proto[1]);

	sdp_uuid16_create(&obex_uuid, OBEX_UUID);
	proto[2] = sdp_list_append(0, &obex_uuid);
	apseq = sdp_list_append(apseq, proto[2]);

	aproto = sdp_list_append(0, apseq);
	sdp_set_access_protos(record, aproto);

	sdp_set_info_attr(record, "OBEX File Transfer", 0, 0);

	sdp_data_free(channel);
	sdp_list_free(root, 0);
	sdp_list_free(svclass_id, 0);
	sdp_list_free(pfseq, 0);
	sdp_list_free(proto[0], 0);
	sdp_list_free(proto[1], 0);
	sdp_list_free(proto[2], 0);
	sdp_list_free(apseq, 0);
	sdp_list_free(aproto, 0);

	update_db_timestamp();
}

static struct context *create_context(gconstpointer data)
{
	struct context *context = g_new0(struct context, 1);
	GIOChannel *channel;
	int err, sv[2];

	err = socketpair(AF_UNIX, SOCK_SEQPACKET | SOCK_CLOEXEC, 0, sv);
	g_assert(err == 0);

	channel = g_io_channel_unix_new(sv[0]);

	g_io_channel_set_close_on_unref(channel, TRUE);
	g_io_channel_set_encoding(channel, NULL, NULL);
	g_io_channel_set_buffered(channel, FALSE);

	context->server_source = g_io_add_watch(channel,
				G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
				server_handler, context);
	g_assert(context->server_source > 0);

	g_io_channel_unref(channel);

	channel = g_io_channel_unix_new(sv[1]);

	g_io_channel_set_close_on_unref(channel, TRUE);
	g_io_channel_set_encoding(channel, NULL, NULL);
	g_io_channel_set_buffered(channel, FALSE);

	context->client_source = g_io_add_watch(channel,
				G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
				client_handler, context);
	g_assert(context->client_source > 0);

	g_io_channel_unref(channel);

	context->fd = sv[1];
	context->data = data;

	set_fixed_db_timestamp(0x496f0654);

	register_public_browse_group();
	register_server_service();

	register_serial_port();
	register_object_push();
	register_hid_keyboard();
	register_file_transfer();
	register_file_transfer();
	register_file_transfer();
	register_file_transfer();
	register_file_transfer();

	return context;
}

static void test_sdp(gconstpointer data)
{
	struct context *context = create_context(data);

	g_idle_add(send_pdu, context);
}

static void test_sdp_de_attr(gconstpointer data)
{
	const struct test_data_de *test = data;
	uint128_t u128;
	sdp_data_t *d;
	int size = 0;

	d = sdp_extract_attr(test->input_data, test->input_size, &size, NULL);
	g_assert(d != NULL);
	g_assert_cmpuint(test->input_size, ==, size);
	g_assert_cmpuint(test->expected.dtd, ==, d->dtd);

	tester_debug("DTD=0x%02x\n", d->dtd);

	switch (d->dtd) {
	case SDP_TEXT_STR8:
	case SDP_TEXT_STR16:
	case SDP_URL_STR8:
	case SDP_URL_STR16:
		g_assert_cmpstr(test->expected.val.str, ==, d->val.str);
		break;
	case SDP_DATA_NIL:
	case SDP_UINT8:
		g_assert_cmpuint(test->expected.val.uint8, ==, d->val.uint8);
		break;
	case SDP_UINT16:
		g_assert_cmpuint(test->expected.val.uint16, ==, d->val.uint16);
		break;
	case SDP_UINT32:
		g_assert_cmpuint(test->expected.val.uint32, ==, d->val.uint32);
		break;
	case SDP_UINT64:
		g_assert_cmpuint(test->expected.val.uint64, ==, d->val.uint64);
		break;
	case SDP_BOOL:
	case SDP_INT8:
		g_assert_cmpuint(test->expected.val.int8, ==, d->val.int8);
		break;
	case SDP_INT16:
		g_assert_cmpuint(test->expected.val.int16, ==, d->val.int16);
		break;
	case SDP_INT32:
		g_assert_cmpuint(test->expected.val.int32, ==, d->val.int32);
		break;
	case SDP_INT64:
		g_assert_cmpuint(test->expected.val.int64, ==, d->val.int64);
		break;
	case SDP_UINT128:
	case SDP_INT128:
		/* Expected bytes are in network order */
		hton128(&d->val.uint128, &u128);
		g_assert(memcmp(&test->expected.val.uint128, &u128,
						sizeof(uint128_t)) == 0);
		break;
	default:
		g_assert_not_reached();
	}

	sdp_data_free(d);
	tester_test_passed();
}

int main(int argc, char *argv[])
{
	tester_init(&argc, &argv);

	__btd_log_init("*", 0);

	/*
	 * Service Search Request
	 *
	 * Verify the correct behaviour of the IUT when searching for
	 * existing service(s).
	 */
	define_ss("BV-01-C/UUID-16",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x08, 0x35, 0x03, 0x19,
			0x11, 0x05, 0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x01, 0x00));
	define_ss("BV-01-C/UUID-32",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x0a, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00));
	define_ss("BV-01-C/UUID-128",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x01, 0x00));

	/*
	 * Service Search Request
	 *
	 * Verify the correct behaviour of the IUT when searching for
	 * existing service(s), using continuation state.
	 */
	define_ss("BV-03-C/UUID-16",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x08, 0x35, 0x03, 0x19,
			0x01, 0x00, 0xff, 0xff, 0x00),
		raw_pdu_cont(8, 0x03, 0x00, 0x01, 0x00, 0x29, 0x00, 0x08, 0x00,
				0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
				0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00,
				0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00,
				0x05, 0x00, 0x01, 0x00, 0x06, 0x08),
		raw_pdu_cont(8, 0x02, 0x00, 0x02, 0x00, 0x10, 0x35, 0x03, 0x19,
				0x01, 0x00, 0xff, 0xff, 0x08),
		raw_pdu(0x03, 0x00, 0x02, 0x00, 0x09, 0x00, 0x08, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x07, 0x00));
	define_ss("BV-03-C/UUID-32",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x0a, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x01, 0x00, 0xff, 0xff, 0x00),
		raw_pdu_cont(8, 0x03, 0x00, 0x01, 0x00, 0x29, 0x00, 0x08, 0x00,
				0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
				0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00,
				0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00,
				0x05, 0x00, 0x01, 0x00, 0x06, 0x08),
		raw_pdu_cont(8, 0x02, 0x00, 0x02, 0x00, 0x12, 0x35, 0x05, 0x1a,
				0x00, 0x00, 0x01, 0x00, 0xff, 0xff, 0x08),
		raw_pdu(0x03, 0x00, 0x02, 0x00, 0x09, 0x00, 0x08, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x07, 0x00));
	define_ss("BV-03-C/UUID-128",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0xff, 0xff, 0x00),
		raw_pdu_cont(8, 0x03, 0x00, 0x01, 0x00, 0x29, 0x00, 0x08, 0x00,
				0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
				0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00,
				0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00,
				0x05, 0x00, 0x01, 0x00, 0x06, 0x08),
		raw_pdu_cont(8, 0x02, 0x00, 0x02, 0x00, 0x1e, 0x35, 0x11, 0x1c,
				0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00,
				0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
				0xff, 0xff, 0x08),
		raw_pdu(0x03, 0x00, 0x02, 0x00, 0x09, 0x00, 0x08, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x07, 0x00));

	/*
	 * Service Search Request
	 *
	 * Verify the correct behaviour of the IUT when searching for
	 * no existing service(s).
	 */
	define_ss("BV-04-C/UUID-16",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x08, 0x35, 0x03, 0x19,
			0xff, 0xff, 0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00,
			0x00, 0x00));
	define_ss("BV-04-C/UUID-128",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
			0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00,
			0x00, 0x00));
	define_ss("BV-04-C/UUID-32",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x0a, 0x35, 0x05, 0x1a,
			0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00,
			0x00, 0x00));

	/*
	 * Service Search Request
	 *
	 * Verify the correct behaviour of the IUT when searching for
	 * existing service(s), using invalid PDU size.
	 */
	define_ss("BI-01-C/UUID-16",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x01, 0x00, 0x00, 0x05, 0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04));
	define_ss("BI-01-C/UUID-32",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x01, 0x00, 0x00, 0x05, 0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04));
	define_ss("BI-01-C/UUID-128",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x05, 0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04));

	/*
	 * Service Search Request
	 *
	 * Verify the correct behaviour of the IUT when searching for
	 * existing service(s), using invalid request syntax.
	 */
	define_ss("BI-02-C/UUID-16",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x06, 0x35, 0x03, 0x19,
			0x01, 0x00, 0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03));
	define_ss("BI-02-C/UUID-32",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x08, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x01, 0x00, 0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03));
	define_ss("BI-02-C/UUID-128",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x14, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with attribute(s).
	 */
	define_sa("BV-01-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x01, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x0a, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x05, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with the existing
	 * Attribute(s) using ContinuationState.
	 */
	define_sa("BV-03-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x07, 0x35, 0x06, 0x09, 0x00, 0x00,
			0x09, 0x00, 0x01, 0x00),
		raw_pdu_cont(8, 0x05, 0x00, 0x01, 0x00, 0x12, 0x00, 0x07, 0x35,
				0x10, 0x09, 0x00, 0x00, 0x0a, 0x00, 0x08),
		raw_pdu_cont(8, 0x04, 0x00, 0x02, 0x00, 0x17, 0x00, 0x01, 0x00,
				0x00, 0x00, 0x07, 0x35, 0x06, 0x09, 0x00, 0x00,
				0x09, 0x00, 0x01, 0x08),
		raw_pdu_cont(8, 0x05, 0x00, 0x02, 0x00, 0x12, 0x00, 0x07, 0x01,
				0x00, 0x00, 0x09, 0x00, 0x01, 0x35, 0x08),
		raw_pdu_cont(8, 0x04, 0x00, 0x03, 0x00, 0x17, 0x00, 0x01, 0x00,
				0x00, 0x00, 0x07, 0x35, 0x06, 0x09, 0x00, 0x00,
				0x09, 0x00, 0x01, 0x08),
		raw_pdu(0x05, 0x00, 0x03, 0x00, 0x07, 0x00, 0x04, 0x03,
			0x19, 0x11, 0x01, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with an
	 * ServiceID attribute.
	 */
	define_sa("BV-04-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x19, 0x35, 0x03, 0x09, 0x00, 0x03,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x0b, 0x00, 0x08, 0x35,
			0x06, 0x09, 0x00, 0x03, 0x19, 0x11, 0x01, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with an
	 * ProtocolDescriptorList attribute.
	 */
	define_sa("BV-05-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x01, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x01, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x04,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x1b, 0x00, 0x18, 0x35,
			0x16, 0x09, 0x00, 0x04, 0x35, 0x11, 0x35, 0x03,
			0x19, 0x01, 0x00, 0x35, 0x05, 0x19, 0x00, 0x03,
			0x08, 0x09, 0x35, 0x03, 0x19, 0x00, 0x08, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with the
	 * ServiceRecordState attribute.
	 */
	define_sa("BV-06-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x0d, 0x35, 0x03, 0x09, 0x00, 0x02,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x12,
			0x34, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with the
	 * ServiceInfoTime attribute.
	 */
	define_sa("BV-07-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x0d, 0x35, 0x03, 0x09, 0x00, 0x07,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x07, 0x0a, 0x00, 0x00, 0xff,
			0xff, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with an
	 * BrowseGroupList attribute.
	 */
	define_sa("BV-08-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x01, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x0a, 0x35, 0x03, 0x09, 0x00, 0x05,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x05, 0x35, 0x03, 0x19, 0x10,
			0x02, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with an
	 * LanguageBaseAttributeIdList attribute.
	 */
	define_sa("BV-09-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x13, 0x35, 0x03, 0x09, 0x00, 0x06,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x13, 0x00, 0x10, 0x35,
			0x0e, 0x09, 0x00, 0x06, 0x35, 0x09, 0x09, 0x65,
			0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01, 0x00, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with an
	 * ServiceAvailability attribute.
	 */
	define_sa("BV-10-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x0a, 0x35, 0x03, 0x09, 0x00, 0x08,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x0a, 0x00, 0x07, 0x35,
			0x05, 0x09, 0x00, 0x08, 0x08, 0xff, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with an
	 * IconURL attribute.
	 */
	define_sa("BV-11-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x1f, 0x35, 0x03, 0x09, 0x00, 0x0c,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x1c, 0x35,
			0x1a, 0x09, 0x00, 0x0c, 0x45, 0x15, 0x68, 0x74,
			0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
			0x2e, 0x62, 0x6c, 0x75, 0x65, 0x7a, 0x2e, 0x6f,
			0x72, 0x67, 0x2f, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with an
	 * ServiceName attribute.
	 */
	define_sa("BV-12-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x16, 0x35, 0x03, 0x09, 0x00, 0x06,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x13, 0x00, 0x10, 0x35,
			0x0e, 0x09, 0x00, 0x06, 0x35, 0x09, 0x09, 0x65,
			0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x15, 0x35, 0x03, 0x09, 0x01, 0x00,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x15, 0x00, 0x12, 0x35,
			0x10, 0x09, 0x01, 0x00, 0x25, 0x0b, 0x53, 0x65,
			0x72, 0x69, 0x61, 0x6c, 0x20, 0x50, 0x6f, 0x72,
			0x74, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with an
	 * ServiceDescription attribute.
	 */
	define_sa("BV-13-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x16, 0x35, 0x03, 0x09, 0x00, 0x06,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x13, 0x00, 0x10, 0x35,
			0x0e, 0x09, 0x00, 0x06, 0x35, 0x09, 0x09, 0x65,
			0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x12, 0x35, 0x03, 0x09, 0x01, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x12, 0x00, 0x0f, 0x35,
			0x0d, 0x09, 0x01, 0x01, 0x25, 0x08, 0x43, 0x4f,
			0x4d, 0x20, 0x50, 0x6f, 0x72, 0x74, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with an
	 * ProviderName attribute.
	 */
	define_sa("BV-14-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x16, 0x35, 0x03, 0x09, 0x00, 0x06,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x13, 0x00, 0x10, 0x35,
			0x0e, 0x09, 0x00, 0x06, 0x35, 0x09, 0x09, 0x65,
			0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x0f, 0x35, 0x03, 0x09, 0x01, 0x02,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x09, 0x01, 0x02, 0x25, 0x05, 0x42, 0x6c,
			0x75, 0x65, 0x5a, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with an
	 * VersionNumberList attribute.
	 */
	define_sa("BV-15-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x00, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x0d, 0x35, 0x03, 0x09, 0x02, 0x00,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x02, 0x00, 0x35, 0x03, 0x09, 0x01,
			0x00, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with the
	 * ServiceDatabaseState attribute.
	 */
	define_sa("BV-16-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x00, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x00, 0x00,
			0x00, 0x00, 0x0d, 0x35, 0x03, 0x09, 0x02, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x02, 0x01, 0x0a, 0x49, 0x6f, 0x06,
			0x54, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with the
	 * BluetoothProfileDescriptorList attribute.
	 */
	define_sa("BV-17-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x01, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x0f, 0x35, 0x03, 0x09, 0x00, 0x09,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x12, 0x00, 0x0f, 0x35,
			0x0d, 0x09, 0x00, 0x09, 0x35, 0x08, 0x35, 0x06,
			0x19, 0x11, 0x05, 0x09, 0x01, 0x00, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with the
	 * DocumentationURL attribute.
	 */
	define_sa("BV-18-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x1f, 0x35, 0x03, 0x09, 0x00, 0x0a,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x1c, 0x35,
			0x1a, 0x09, 0x00, 0x0a, 0x45, 0x15, 0x68, 0x74,
			0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
			0x2e, 0x62, 0x6c, 0x75, 0x65, 0x7a, 0x2e, 0x6f,
			0x72, 0x67, 0x2f, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with the
	 * ClientExecutableURL attribute.
	 */
	define_sa("BV-19-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x1f, 0x35, 0x03, 0x09, 0x00, 0x0b,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x1f, 0x00, 0x1c, 0x35,
			0x1a, 0x09, 0x00, 0x0b, 0x45, 0x15, 0x68, 0x74,
			0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77,
			0x2e, 0x62, 0x6c, 0x75, 0x65, 0x7a, 0x2e, 0x6f,
			0x72, 0x67, 0x2f, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for non-existing Attribute.
	 */
	define_sa("BV-20-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x07, 0x35, 0x03, 0x09, 0xff, 0xff,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x05, 0x00, 0x02, 0x35,
			0x00, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify that the IUT is able to respond with an
	 * AdditionalProtocolDescriptorList attribute.
	 */
	define_sa("BV-21-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x24, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x02, 0x00),
		raw_pdu(0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x02, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x0d,
			0x00),
		raw_pdu(0x05, 0x00, 0x02, 0x00, 0x19, 0x00, 0x16, 0x35,
			0x14, 0x09, 0x00, 0x0d, 0x35, 0x0f, 0x35, 0x0d,
			0x35, 0x06, 0x19, 0x01, 0x00, 0x09, 0x00, 0x13,
			0x35, 0x03, 0x19, 0x00, 0x11, 0x00));

	/*
	 * Service Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Attribute, using invalid ServiceRecordHandle.
	 */
	define_sa("BI-01-C",
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0xff, 0xff, 0xff,
			0xff, 0x00, 0x07, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02));

	/*
	 * Service Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Attribute, using invalid request syntax.
	 */
	define_sa("BI-02-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x01, 0x00,
			0x00, 0x35, 0x03, 0x09, 0x00, 0x01, 0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03));

	/*
	 * Service Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Attribute, using invalid PDU-Size.
	 */
	define_sa("BI-03-C",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x01, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x00, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x11, 0x00, 0x01, 0x00,
			0x00, 0x00, 0x07, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for non-existing Service, existing Attribute using
	 * ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-01-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0xff, 0xff, 0x00, 0x0a, 0x35, 0x03, 0x09, 0x00,
			0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x35,
			0x00, 0x00));
	define_ssa("BV-01-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0xff, 0xff, 0xff, 0xff, 0x00, 0x0a, 0x35, 0x03,
			0x09, 0x00, 0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x35,
			0x00, 0x00));
	define_ssa("BV-01-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
			0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
			0x00, 0x0a, 0x35, 0x03, 0x09, 0x00, 0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x35,
			0x00, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service, non-existing Attribute using
	 * ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-02-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x05, 0x00, 0x0a, 0x35, 0x03, 0x09, 0xff,
			0xff, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x35,
			0x00, 0x00));
	define_ssa("BV-02-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x0a, 0x35, 0x03,
			0x09, 0xff, 0xff, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x35,
			0x00, 0x00));
	define_ssa("BV-02-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x0a, 0x35, 0x03, 0x09, 0xff, 0xff, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x35,
			0x00, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for non-existing Service, non-existing Attribute using
	 * ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-03-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0xff, 0xff, 0x00, 0x0a, 0x35, 0x03, 0x09, 0xff,
			0xff, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x35,
			0x00, 0x00));
	define_ssa("BV-03-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0xff, 0xff, 0xff, 0xff, 0x00, 0x0a, 0x35, 0x03,
			0x09, 0xff, 0xff, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x35,
			0x00, 0x00));
	define_ssa("BV-03-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
			0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
			0x00, 0x0a, 0x35, 0x03, 0x09, 0xff, 0xff, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x05, 0x00, 0x02, 0x35,
			0x00, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute(s) using
	 * ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-04-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x05, 0x00, 0x11, 0x35, 0x03, 0x09, 0x00,
			0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x05, 0x00));
	define_ssa("BV-04-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x11, 0x35, 0x03,
			0x09, 0x00, 0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x05, 0x00));
	define_ssa("BV-04-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x11, 0x35, 0x03, 0x09, 0x00, 0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x05, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Attributes, using Continuation State and
	 * ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-06-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x10, 0x35, 0x03, 0x19,
			0x11, 0x05, 0x00, 0x07, 0x35, 0x06, 0x09, 0x00,
			0x00, 0x09, 0x00, 0x01, 0x00),
		raw_pdu_cont(8, 0x07, 0x00, 0x01, 0x00, 0x12, 0x00, 0x07, 0x35,
				0x12, 0x35, 0x10, 0x09, 0x00, 0x00, 0x08),
		raw_pdu_cont(8, 0x06, 0x00, 0x02, 0x00, 0x18, 0x35, 0x03, 0x19,
				0x11, 0x05, 0x00, 0x07, 0x35, 0x06, 0x09, 0x00,
				0x00, 0x09, 0x00, 0x01, 0x08),
		raw_pdu_cont(8, 0x07, 0x00, 0x02, 0x00, 0x12, 0x00, 0x07, 0x0a,
				0x00, 0x01, 0x00, 0x01, 0x09, 0x00, 0x08),
		raw_pdu_cont(8, 0x06, 0x00, 0x03, 0x00, 0x18, 0x35, 0x03, 0x19,
				0x11, 0x05, 0x00, 0x07, 0x35, 0x06, 0x09, 0x00,
				0x00, 0x09, 0x00, 0x01, 0x08),
		raw_pdu(0x07, 0x00, 0x03, 0x00, 0x09, 0x00, 0x06, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x05, 0x00));
	define_ssa("BV-06-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x12, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x07, 0x35, 0x06,
			0x09, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00),
		raw_pdu_cont(8, 0x07, 0x00, 0x01, 0x00, 0x12, 0x00, 0x07, 0x35,
				0x12, 0x35, 0x10, 0x09, 0x00, 0x00, 0x08),
		raw_pdu_cont(8, 0x06, 0x00, 0x02, 0x00, 0x1a, 0x35, 0x05, 0x1a,
				0x00, 0x00, 0x11, 0x05, 0x00, 0x07, 0x35, 0x06,
				0x09, 0x00, 0x00, 0x09, 0x00, 0x01, 0x08),
		raw_pdu_cont(8, 0x07, 0x00, 0x02, 0x00, 0x12, 0x00, 0x07, 0x0a,
				0x00, 0x01, 0x00, 0x01, 0x09, 0x00, 0x08),
		raw_pdu_cont(8, 0x06, 0x00, 0x03, 0x00, 0x1a, 0x35, 0x05, 0x1a,
				0x00, 0x00, 0x11, 0x05, 0x00, 0x07, 0x35, 0x06,
				0x09, 0x00, 0x00, 0x09, 0x00, 0x01, 0x08),
		raw_pdu(0x07, 0x00, 0x03, 0x00, 0x09, 0x00, 0x06, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x05, 0x00));
	define_ssa("BV-06-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1e, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x07, 0x35, 0x06, 0x09, 0x00, 0x00, 0x09,
			0x00, 0x01, 0x00),
		raw_pdu_cont(8, 0x07, 0x00, 0x01, 0x00, 0x12, 0x00, 0x07, 0x35,
				0x12, 0x35, 0x10, 0x09, 0x00, 0x00, 0x08),
		raw_pdu_cont(8, 0x06, 0x00, 0x02, 0x00, 0x26, 0x35, 0x11, 0x1c,
				0x00, 0x00, 0x11, 0x05, 0x00, 0x00, 0x10, 0x00,
				0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
				0x00, 0x07, 0x35, 0x06, 0x09, 0x00, 0x00, 0x09,
				0x00, 0x01, 0x08),
		raw_pdu_cont(8, 0x07, 0x00, 0x02, 0x00, 0x12, 0x00, 0x07, 0x0a,
				0x00, 0x01, 0x00, 0x01, 0x09, 0x00, 0x08),
		raw_pdu_cont(8, 0x06, 0x00, 0x03, 0x00, 0x26, 0x35, 0x11, 0x1c,
				0x00, 0x00, 0x11, 0x05, 0x00, 0x00, 0x10, 0x00,
				0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
				0x00, 0x07, 0x35, 0x06, 0x09, 0x00, 0x00, 0x09,
				0x00, 0x01, 0x08),
		raw_pdu(0x07, 0x00, 0x03, 0x00, 0x09, 0x00, 0x06, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x05, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute ServiceRecordState
	 * using ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-07-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x13, 0x35, 0x03, 0x09, 0x00,
			0x02, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x00, 0x02, 0x0a, 0x00,
			0x00, 0x12, 0x34, 0x00));
	define_ssa("BV-07-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x13, 0x35, 0x03,
			0x09, 0x00, 0x02, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x00, 0x02, 0x0a, 0x00,
			0x00, 0x12, 0x34, 0x00));
	define_ssa("BV-07-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x13, 0x35, 0x03, 0x09, 0x00, 0x02, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x00, 0x02, 0x0a, 0x00,
			0x00, 0x12, 0x34, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute ServiceDataBaseState
	 * using ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-08-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x10, 0x00, 0x00, 0x13, 0x35, 0x03, 0x09, 0x02,
			0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x02, 0x01, 0x0a, 0x49,
			0x6f, 0x06, 0x54, 0x00));
	define_ssa("BV-08-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x10, 0x00, 0x00, 0x13, 0x35, 0x03,
			0x09, 0x02, 0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x02, 0x01, 0x0a, 0x49,
			0x6f, 0x06, 0x54, 0x00));
	define_ssa("BV-08-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x13, 0x35, 0x03, 0x09, 0x02, 0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x02, 0x01, 0x0a, 0x49,
			0x6f, 0x06, 0x54, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute ServiceInfoTimeToLive
	 * using ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-09-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x13, 0x35, 0x03, 0x09, 0x00,
			0x07, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x00, 0x07, 0x0a, 0x00,
			0x00, 0xff, 0xff, 0x00));
	define_ssa("BV-09-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x13, 0x35, 0x03,
			0x09, 0x00, 0x07, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x00, 0x07, 0x0a, 0x00,
			0x00, 0xff, 0xff, 0x00));
	define_ssa("BV-09-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x13, 0x35, 0x03, 0x09, 0x00, 0x07, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x00, 0x07, 0x0a, 0x00,
			0x00, 0xff, 0xff, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute ServiceID using
	 * ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-10-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x1e, 0x35, 0x03, 0x09, 0x00,
			0x03, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x35, 0x06, 0x09, 0x00, 0x03, 0x19, 0x11,
			0x01, 0x00));
	define_ssa("BV-10-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x1e, 0x35, 0x03,
			0x09, 0x00, 0x03, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x35, 0x06, 0x09, 0x00, 0x03, 0x19, 0x11,
			0x01, 0x00));
	define_ssa("BV-10-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x1e, 0x35, 0x03, 0x09, 0x00, 0x03, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x35, 0x06, 0x09, 0x00, 0x03, 0x19, 0x11,
			0x01, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute ProtocolDescriptorList
	 * using ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-11-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x05, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00,
			0x04, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x1d, 0x00, 0x1a, 0x35,
			0x18, 0x35, 0x16, 0x09, 0x00, 0x04, 0x35, 0x11,
			0x35, 0x03, 0x19, 0x01, 0x00, 0x35, 0x05, 0x19,
			0x00, 0x03, 0x08, 0x09, 0x35, 0x03, 0x19, 0x00,
			0x08, 0x00));
	define_ssa("BV-11-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x05, 0xff, 0xff, 0x35, 0x03,
			0x09, 0x00, 0x04, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x1d, 0x00, 0x1a, 0x35,
			0x18, 0x35, 0x16, 0x09, 0x00, 0x04, 0x35, 0x11,
			0x35, 0x03, 0x19, 0x01, 0x00, 0x35, 0x05, 0x19,
			0x00, 0x03, 0x08, 0x09, 0x35, 0x03, 0x19, 0x00,
			0x08, 0x00));
	define_ssa("BV-11-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x04, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x1d, 0x00, 0x1a, 0x35,
			0x18, 0x35, 0x16, 0x09, 0x00, 0x04, 0x35, 0x11,
			0x35, 0x03, 0x19, 0x01, 0x00, 0x35, 0x05, 0x19,
			0x00, 0x03, 0x08, 0x09, 0x35, 0x03, 0x19, 0x00,
			0x08, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute BrowseGroupList
	 * using ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-12-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x05, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00,
			0x05, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x00, 0x05, 0x35, 0x03,
			0x19, 0x10, 0x02, 0x00));
	define_ssa("BV-12-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x05, 0xff, 0xff, 0x35, 0x03,
			0x09, 0x00, 0x05, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x00, 0x05, 0x35, 0x03,
			0x19, 0x10, 0x02, 0x00));
	define_ssa("BV-12-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x05, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x00, 0x05, 0x35, 0x03,
			0x19, 0x10, 0x02, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute LanguageBaseAttributeIdList
	 * using ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-13-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x18, 0x35, 0x03, 0x09, 0x00,
			0x06, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x15, 0x00, 0x12, 0x35,
			0x10, 0x35, 0x0e, 0x09, 0x00, 0x06, 0x35, 0x09,
			0x09, 0x65, 0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01,
			0x00, 0x00));
	define_ssa("BV-13-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x18, 0x35, 0x03,
			0x09, 0x00, 0x06, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x15, 0x00, 0x12, 0x35,
			0x10, 0x35, 0x0e, 0x09, 0x00, 0x06, 0x35, 0x09,
			0x09, 0x65, 0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01,
			0x00, 0x00));
	define_ssa("BV-13-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x18, 0x35, 0x03, 0x09, 0x00, 0x06, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x15, 0x00, 0x12, 0x35,
			0x10, 0x35, 0x0e, 0x09, 0x00, 0x06, 0x35, 0x09,
			0x09, 0x65, 0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01,
			0x00, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute ServiceAvailability
	 * using ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-14-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x0f, 0x35, 0x03, 0x09, 0x00,
			0x08, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x09, 0x35,
			0x07, 0x35, 0x05, 0x09, 0x00, 0x08, 0x08, 0xff,
			0x00));
	define_ssa("BV-14-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x0f, 0x35, 0x03,
			0x09, 0x00, 0x08, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x09, 0x35,
			0x07, 0x35, 0x05, 0x09, 0x00, 0x08, 0x08, 0xff,
			0x00));
	define_ssa("BV-14-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x0f, 0x35, 0x03, 0x09, 0x00, 0x08, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x09, 0x35,
			0x07, 0x35, 0x05, 0x09, 0x00, 0x08, 0x08, 0xff,
			0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute IconURL using
	 * ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-15-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x24, 0x35, 0x03, 0x09, 0x00,
			0x0c, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x21, 0x00, 0x1e, 0x35,
			0x1c, 0x35, 0x1a, 0x09, 0x00, 0x0c, 0x45, 0x15,
			0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
			0x77, 0x77, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x7a,
			0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x00));
	define_ssa("BV-15-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x24, 0x35, 0x03,
			0x09, 0x00, 0x0c, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x21, 0x00, 0x1e, 0x35,
			0x1c, 0x35, 0x1a, 0x09, 0x00, 0x0c, 0x45, 0x15,
			0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
			0x77, 0x77, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x7a,
			0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x00));
	define_ssa("BV-15-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x24, 0x35, 0x03, 0x09, 0x00, 0x0c, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x21, 0x00, 0x1e, 0x35,
			0x1c, 0x35, 0x1a, 0x09, 0x00, 0x0c, 0x45, 0x15,
			0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
			0x77, 0x77, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x7a,
			0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute ServiceName using
	 * ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-16-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x1b, 0x35, 0x03, 0x09, 0x00,
			0x06, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x15, 0x00, 0x12, 0x35,
			0x10, 0x35, 0x0e, 0x09, 0x00, 0x06, 0x35, 0x09,
			0x09, 0x65, 0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01,
			0x00, 0x00),
		raw_pdu(0x06, 0x00, 0x02, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x1d, 0x35, 0x03, 0x09, 0x01,
			0x00, 0x00),
		raw_pdu(0x07, 0x00, 0x02, 0x00, 0x17, 0x00, 0x14, 0x35,
			0x12, 0x35, 0x10, 0x09, 0x01, 0x00, 0x25, 0x0b,
			0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x20, 0x50,
			0x6f, 0x72, 0x74, 0x00));
	define_ssa("BV-16-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x1b, 0x35, 0x03,
			0x09, 0x00, 0x06, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x15, 0x00, 0x12, 0x35,
			0x10, 0x35, 0x0e, 0x09, 0x00, 0x06, 0x35, 0x09,
			0x09, 0x65, 0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01,
			0x00, 0x00),
		raw_pdu(0x06, 0x00, 0x02, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x1d, 0x35, 0x03,
			0x09, 0x01, 0x00, 0x00),
		raw_pdu(0x07, 0x00, 0x02, 0x00, 0x17, 0x00, 0x14, 0x35,
			0x12, 0x35, 0x10, 0x09, 0x01, 0x00, 0x25, 0x0b,
			0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x20, 0x50,
			0x6f, 0x72, 0x74, 0x00));
	define_ssa("BV-16-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x1b, 0x35, 0x03, 0x09, 0x00, 0x06, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x15, 0x00, 0x12, 0x35,
			0x10, 0x35, 0x0e, 0x09, 0x00, 0x06, 0x35, 0x09,
			0x09, 0x65, 0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01,
			0x00, 0x00),
		raw_pdu(0x06, 0x00, 0x02, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x1d, 0x35, 0x03, 0x09, 0x01, 0x00, 0x00),
		raw_pdu(0x07, 0x00, 0x02, 0x00, 0x17, 0x00, 0x14, 0x35,
			0x12, 0x35, 0x10, 0x09, 0x01, 0x00, 0x25, 0x0b,
			0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x20, 0x50,
			0x6f, 0x72, 0x74, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute ServiceDescription
	 * using ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-17-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x1b, 0x35, 0x03, 0x09, 0x00,
			0x06, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x15, 0x00, 0x12, 0x35,
			0x10, 0x35, 0x0e, 0x09, 0x00, 0x06, 0x35, 0x09,
			0x09, 0x65, 0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01,
			0x00, 0x00),
		raw_pdu(0x06, 0x00, 0x02, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x1a, 0x35, 0x03, 0x09, 0x01,
			0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x02, 0x00, 0x14, 0x00, 0x11, 0x35,
			0x0f, 0x35, 0x0d, 0x09, 0x01, 0x01, 0x25, 0x08,
			0x43, 0x4f, 0x4d, 0x20, 0x50, 0x6f, 0x72, 0x74,
			0x00));
	define_ssa("BV-17-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x1b, 0x35, 0x03,
			0x09, 0x00, 0x06, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x15, 0x00, 0x12, 0x35,
			0x10, 0x35, 0x0e, 0x09, 0x00, 0x06, 0x35, 0x09,
			0x09, 0x65, 0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01,
			0x00, 0x00),
		raw_pdu(0x06, 0x00, 0x02, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x1a, 0x35, 0x03,
			0x09, 0x01, 0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x02, 0x00, 0x14, 0x00, 0x11, 0x35,
			0x0f, 0x35, 0x0d, 0x09, 0x01, 0x01, 0x25, 0x08,
			0x43, 0x4f, 0x4d, 0x20, 0x50, 0x6f, 0x72, 0x74,
			0x00));
	define_ssa("BV-17-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x1b, 0x35, 0x03, 0x09, 0x00, 0x06, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x15, 0x00, 0x12, 0x35,
			0x10, 0x35, 0x0e, 0x09, 0x00, 0x06, 0x35, 0x09,
			0x09, 0x65, 0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01,
			0x00, 0x00),
		raw_pdu(0x06, 0x00, 0x02, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x1a, 0x35, 0x03, 0x09, 0x01, 0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x02, 0x00, 0x14, 0x00, 0x11, 0x35,
			0x0f, 0x35, 0x0d, 0x09, 0x01, 0x01, 0x25, 0x08,
			0x43, 0x4f, 0x4d, 0x20, 0x50, 0x6f, 0x72, 0x74,
			0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute ProviderName using
	 * ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-18-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x1b, 0x35, 0x03, 0x09, 0x00,
			0x06, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x15, 0x00, 0x12, 0x35,
			0x10, 0x35, 0x0e, 0x09, 0x00, 0x06, 0x35, 0x09,
			0x09, 0x65, 0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01,
			0x00, 0x00),
		raw_pdu(0x06, 0x00, 0x02, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x17, 0x35, 0x03, 0x09, 0x01,
			0x02, 0x00),
		raw_pdu(0x07, 0x00, 0x02, 0x00, 0x11, 0x00, 0x0e, 0x35,
			0x0c, 0x35, 0x0a, 0x09, 0x01, 0x02, 0x25, 0x05,
			0x42, 0x6c, 0x75, 0x65, 0x5a, 0x00));
	define_ssa("BV-18-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x1b, 0x35, 0x03,
			0x09, 0x00, 0x06, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x15, 0x00, 0x12, 0x35,
			0x10, 0x35, 0x0e, 0x09, 0x00, 0x06, 0x35, 0x09,
			0x09, 0x65, 0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01,
			0x00, 0x00),
		raw_pdu(0x06, 0x00, 0x02, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x17, 0x35, 0x03,
			0x09, 0x01, 0x02, 0x00),
		raw_pdu(0x07, 0x00, 0x02, 0x00, 0x11, 0x00, 0x0e, 0x35,
			0x0c, 0x35, 0x0a, 0x09, 0x01, 0x02, 0x25, 0x05,
			0x42, 0x6c, 0x75, 0x65, 0x5a, 0x00));
	define_ssa("BV-18-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x1b, 0x35, 0x03, 0x09, 0x00, 0x06, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x15, 0x00, 0x12, 0x35,
			0x10, 0x35, 0x0e, 0x09, 0x00, 0x06, 0x35, 0x09,
			0x09, 0x65, 0x6e, 0x09, 0x00, 0x6a, 0x09, 0x01,
			0x00, 0x00),
		raw_pdu(0x06, 0x00, 0x02, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x17, 0x35, 0x03, 0x09, 0x01, 0x02, 0x00),
		raw_pdu(0x07, 0x00, 0x02, 0x00, 0x11, 0x00, 0x0e, 0x35,
			0x0c, 0x35, 0x0a, 0x09, 0x01, 0x02, 0x25, 0x05,
			0x42, 0x6c, 0x75, 0x65, 0x5a, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute VersionNumberList
	 * using ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-19-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x10, 0x00, 0x00, 0x12, 0x35, 0x03, 0x09, 0x02,
			0x00, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x02, 0x00, 0x35, 0x03,
			0x09, 0x01, 0x00, 0x00));
	define_ssa("BV-19-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x10, 0x00, 0x00, 0x12, 0x35, 0x03,
			0x09, 0x02, 0x00, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x02, 0x00, 0x35, 0x03,
			0x09, 0x01, 0x00, 0x00));
	define_ssa("BV-19-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x12, 0x35, 0x03, 0x09, 0x02, 0x00, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0f, 0x00, 0x0c, 0x35,
			0x0a, 0x35, 0x08, 0x09, 0x02, 0x00, 0x35, 0x03,
			0x09, 0x01, 0x00, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching for
	 * existing Service(s) and Attribute BluetoothProfileDescriptorList
	 * using ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-20-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x05, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00,
			0x09, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x14, 0x00, 0x11, 0x35,
			0x0f, 0x35, 0x0d, 0x09, 0x00, 0x09, 0x35, 0x08,
			0x35, 0x06, 0x19, 0x11, 0x05, 0x09, 0x01, 0x00,
			0x00));
	define_ssa("BV-20-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x05, 0xff, 0xff, 0x35, 0x03,
			0x09, 0x00, 0x09, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x14, 0x00, 0x11, 0x35,
			0x0f, 0x35, 0x0d, 0x09, 0x00, 0x09, 0x35, 0x08,
			0x35, 0x06, 0x19, 0x11, 0x05, 0x09, 0x01, 0x00,
			0x00));
	define_ssa("BV-20-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x05, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x09, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x14, 0x00, 0x11, 0x35,
			0x0f, 0x35, 0x0d, 0x09, 0x00, 0x09, 0x35, 0x08,
			0x35, 0x06, 0x19, 0x11, 0x05, 0x09, 0x01, 0x00,
			0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute DocumentationURL
	 * using ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-21-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x24, 0x35, 0x03, 0x09, 0x00,
			0x0a, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x21, 0x00, 0x1e, 0x35,
			0x1c, 0x35, 0x1a, 0x09, 0x00, 0x0a, 0x45, 0x15,
			0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
			0x77, 0x77, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x7a,
			0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x00));
	define_ssa("BV-21-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x24, 0x35, 0x03,
			0x09, 0x00, 0x0a, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x21, 0x00, 0x1e, 0x35,
			0x1c, 0x35, 0x1a, 0x09, 0x00, 0x0a, 0x45, 0x15,
			0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
			0x77, 0x77, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x7a,
			0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x00));
	define_ssa("BV-21-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x24, 0x35, 0x03, 0x09, 0x00, 0x0a, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x21, 0x00, 0x1e, 0x35,
			0x1c, 0x35, 0x1a, 0x09, 0x00, 0x0a, 0x45, 0x15,
			0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
			0x77, 0x77, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x7a,
			0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Service(s) and Attribute ClientExecutableURL
	 * using ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-22-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x01, 0x00, 0x24, 0x35, 0x03, 0x09, 0x00,
			0x0b, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x21, 0x00, 0x1e, 0x35,
			0x1c, 0x35, 0x1a, 0x09, 0x00, 0x0b, 0x45, 0x15,
			0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
			0x77, 0x77, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x7a,
			0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x00));
	define_ssa("BV-22-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x24, 0x35, 0x03,
			0x09, 0x00, 0x0b, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x21, 0x00, 0x1e, 0x35,
			0x1c, 0x35, 0x1a, 0x09, 0x00, 0x0b, 0x45, 0x15,
			0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
			0x77, 0x77, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x7a,
			0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x00));
	define_ssa("BV-22-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x00, 0x24, 0x35, 0x03, 0x09, 0x00, 0x0b, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x21, 0x00, 0x1e, 0x35,
			0x1c, 0x35, 0x1a, 0x09, 0x00, 0x0b, 0x45, 0x15,
			0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77,
			0x77, 0x77, 0x2e, 0x62, 0x6c, 0x75, 0x65, 0x7a,
			0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching for
	 * existing Service(s) and Attribute AdditionalProtocolDescriptorList
	 * using ServiceSearchAttributeRequest.
	 */
	define_ssa("BV-23-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x11, 0x24, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00,
			0x0d, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x1b, 0x00, 0x18, 0x35,
			0x16, 0x35, 0x14, 0x09, 0x00, 0x0d, 0x35, 0x0f,
			0x35, 0x0d, 0x35, 0x06, 0x19, 0x01, 0x00, 0x09,
			0x00, 0x13, 0x35, 0x03, 0x19, 0x00, 0x11, 0x00));
	define_ssa("BV-23-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x11, 0x24, 0xff, 0xff, 0x35, 0x03,
			0x09, 0x00, 0x0d, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x1b, 0x00, 0x18, 0x35,
			0x16, 0x35, 0x14, 0x09, 0x00, 0x0d, 0x35, 0x0f,
			0x35, 0x0d, 0x35, 0x06, 0x19, 0x01, 0x00, 0x09,
			0x00, 0x13, 0x35, 0x03, 0x19, 0x00, 0x11, 0x00));
	define_ssa("BV-23-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x11, 0x24, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x0d, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x1b, 0x00, 0x18, 0x35,
			0x16, 0x35, 0x14, 0x09, 0x00, 0x0d, 0x35, 0x0f,
			0x35, 0x0d, 0x35, 0x06, 0x19, 0x01, 0x00, 0x09,
			0x00, 0x13, 0x35, 0x03, 0x19, 0x00, 0x11, 0x00));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Attribute, using invalid request syntax,
	 * using the ServiceSearchAttributeRequest PDU.
	 */
	define_ssa("BI-01-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0b, 0x35, 0x03, 0x19,
			0x01, 0x00, 0x35, 0x03, 0x09, 0x00, 0x01, 0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03));
	define_ssa("BI-01-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x01, 0x00, 0x35, 0x03, 0x09, 0x00,
			0x01, 0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03));
	define_ssa("BI-01-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x19, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0x35, 0x03, 0x09, 0x00, 0x01, 0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03));

	/*
	 * Service Search Attribute Request
	 *
	 * Verify the correct behaviour of the IUT when searching
	 * for existing Attribute, using invalid PDU-size, using the
	 * ServiceSearchAttributeRequest PDU.
	 */
	define_ssa("BI-02-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x12, 0x35, 0x03, 0x19,
			0x01, 0x00, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00,
			0x01, 0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04));
	define_ssa("BI-02-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x14, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x01, 0x00, 0xff, 0xff, 0x35, 0x03,
			0x09, 0x00, 0x01, 0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04));
	define_ssa("BI-02-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x20, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01, 0x00),
		raw_pdu(0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x04));

	/*
	 * Service Browse
	 *
	 * Verify that the IUT behave correct using SDP_ServiceSearchRequest
	 * and SDP_ServiceAttributeRequest for Service Browse.
	 */
	define_brw("BV-01-C/UUID-16",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x08, 0x35, 0x03, 0x19,
			0x10, 0x02, 0xff, 0xff, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x25, 0x00, 0x08, 0x00,
			0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00,
			0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00,
			0x05, 0x00, 0x01, 0x00, 0x06, 0x00, 0x01, 0x00,
			0x07, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x01, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x01, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x05, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x02, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x24, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x03, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x04, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x05, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x06, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x07, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x08, 0x35, 0x03, 0x19,
			0x10, 0x01, 0xff, 0xff, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x00, 0x00, 0x01, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x00, 0x00,
			0x01, 0xff, 0xff, 0x35, 0x03, 0x09, 0x02, 0x00,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x35,
			0x06, 0x09, 0x02, 0x00, 0x19, 0x10, 0x02, 0x00),
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x08, 0x35, 0x03, 0x19,
			0x10, 0x02, 0xff, 0xff, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x25, 0x00, 0x08, 0x00,
			0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00,
			0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00,
			0x05, 0x00, 0x01, 0x00, 0x06, 0x00, 0x01, 0x00,
			0x07, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x01, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x01, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x05, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x02, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x24, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x03, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x04, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x05, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x06, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x07, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00));
	define_brw("BV-01-C/UUID-32",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x0a, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x10, 0x02, 0xff, 0xff, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x25, 0x00, 0x08, 0x00,
			0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00,
			0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00,
			0x05, 0x00, 0x01, 0x00, 0x06, 0x00, 0x01, 0x00,
			0x07, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x01, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x01, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x05, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x02, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x24, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x03, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x04, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x05, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x06, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x07, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x0a, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x10, 0x01, 0xff, 0xff, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x00, 0x00, 0x01, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x00, 0x00,
			0x01, 0xff, 0xff, 0x35, 0x03, 0x09, 0x02, 0x00,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x35,
			0x06, 0x09, 0x02, 0x00, 0x19, 0x10, 0x02, 0x00),
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x0a, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x10, 0x02, 0xff, 0xff, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x25, 0x00, 0x08, 0x00,
			0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00,
			0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00,
			0x05, 0x00, 0x01, 0x00, 0x06, 0x00, 0x01, 0x00,
			0x07, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x01, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x01, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x05, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x02, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x24, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x03, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x04, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x05, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x06, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x07, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00));
	define_brw("BV-01-C/UUID-128",
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0xff, 0xff, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x25, 0x00, 0x08, 0x00,
			0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00,
			0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00,
			0x05, 0x00, 0x01, 0x00, 0x06, 0x00, 0x01, 0x00,
			0x07, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x01, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x01, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x05, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x02, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x24, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x03, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x04, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x05, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x06, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x07, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0xff, 0xff, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x09, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x00, 0x00, 0x01, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x00, 0x00,
			0x01, 0xff, 0xff, 0x35, 0x03, 0x09, 0x02, 0x00,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0b, 0x00, 0x08, 0x35,
			0x06, 0x09, 0x02, 0x00, 0x19, 0x10, 0x02, 0x00),
		raw_pdu(0x02, 0x00, 0x01, 0x00, 0x16, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0xff, 0xff, 0x00),
		raw_pdu(0x03, 0x00, 0x01, 0x00, 0x25, 0x00, 0x08, 0x00,
			0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00,
			0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00,
			0x03, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00,
			0x05, 0x00, 0x01, 0x00, 0x06, 0x00, 0x01, 0x00,
			0x07, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x00, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x01, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x01, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x05, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x02, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x24, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x03, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x04, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x05, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x06, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x04, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x01, 0x00,
			0x07, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01,
			0x00),
		raw_pdu(0x05, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00));

	/*
	 * Service Browse
	 *
	 * Verify that the IUT behave correct using
	 * SDP_ServiceSearchAttributeRequest for Service Browse.
	 */
	define_brw("BV-02-C/UUID-16",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x10, 0x02, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00,
			0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x55, 0x00, 0x52, 0x35,
			0x50, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x01, 0x35, 0x08, 0x09, 0x00, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x05, 0x35, 0x08, 0x09,
			0x00, 0x01, 0x35, 0x03, 0x19, 0x11, 0x24, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x06, 0x35, 0x08, 0x09, 0x00, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x06, 0x35, 0x08, 0x09,
			0x00, 0x01, 0x35, 0x03, 0x19, 0x11, 0x06, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x10, 0x01, 0xff, 0xff, 0x35, 0x03, 0x09, 0x02,
			0x00, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x35, 0x06, 0x09, 0x02, 0x00, 0x19, 0x10,
			0x02, 0x00),
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0d, 0x35, 0x03, 0x19,
			0x10, 0x02, 0xff, 0xff, 0x35, 0x03, 0x09, 0x00,
			0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x55, 0x00, 0x52, 0x35,
			0x50, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x01, 0x35, 0x08, 0x09, 0x00, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x05, 0x35, 0x08, 0x09,
			0x00, 0x01, 0x35, 0x03, 0x19, 0x11, 0x24, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x06, 0x35, 0x08, 0x09, 0x00, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x06, 0x35, 0x08, 0x09,
			0x00, 0x01, 0x35, 0x03, 0x19, 0x11, 0x06, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00));
	define_brw("BV-02-C/UUID-32",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x10, 0x02, 0xff, 0xff, 0x35, 0x03,
			0x09, 0x00, 0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x55, 0x00, 0x52, 0x35,
			0x50, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x01, 0x35, 0x08, 0x09, 0x00, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x05, 0x35, 0x08, 0x09,
			0x00, 0x01, 0x35, 0x03, 0x19, 0x11, 0x24, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x06, 0x35, 0x08, 0x09, 0x00, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x06, 0x35, 0x08, 0x09,
			0x00, 0x01, 0x35, 0x03, 0x19, 0x11, 0x06, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x10, 0x01, 0xff, 0xff, 0x35, 0x03,
			0x09, 0x02, 0x00, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x35, 0x06, 0x09, 0x02, 0x00, 0x19, 0x10,
			0x02, 0x00),
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x0f, 0x35, 0x05, 0x1a,
			0x00, 0x00, 0x10, 0x02, 0xff, 0xff, 0x35, 0x03,
			0x09, 0x00, 0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x55, 0x00, 0x52, 0x35,
			0x50, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x01, 0x35, 0x08, 0x09, 0x00, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x05, 0x35, 0x08, 0x09,
			0x00, 0x01, 0x35, 0x03, 0x19, 0x11, 0x24, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x06, 0x35, 0x08, 0x09, 0x00, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x06, 0x35, 0x08, 0x09,
			0x00, 0x01, 0x35, 0x03, 0x19, 0x11, 0x06, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00));
	define_brw("BV-02-C/UUID-128",
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x55, 0x00, 0x52, 0x35,
			0x50, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x01, 0x35, 0x08, 0x09, 0x00, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x05, 0x35, 0x08, 0x09,
			0x00, 0x01, 0x35, 0x03, 0x19, 0x11, 0x24, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x06, 0x35, 0x08, 0x09, 0x00, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x06, 0x35, 0x08, 0x09,
			0x00, 0x01, 0x35, 0x03, 0x19, 0x11, 0x06, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00),
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0xff, 0xff, 0x35, 0x03, 0x09, 0x02, 0x00, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x0a, 0x35,
			0x08, 0x35, 0x06, 0x09, 0x02, 0x00, 0x19, 0x10,
			0x02, 0x00),
		raw_pdu(0x06, 0x00, 0x01, 0x00, 0x1b, 0x35, 0x11, 0x1c,
			0x00, 0x00, 0x10, 0x02, 0x00, 0x00, 0x10, 0x00,
			0x80, 0x00, 0x00, 0x80, 0x5f, 0x9b, 0x34, 0xfb,
			0xff, 0xff, 0x35, 0x03, 0x09, 0x00, 0x01, 0x00),
		raw_pdu(0x07, 0x00, 0x01, 0x00, 0x55, 0x00, 0x52, 0x35,
			0x50, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x01, 0x35, 0x08, 0x09, 0x00, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x05, 0x35, 0x08, 0x09,
			0x00, 0x01, 0x35, 0x03, 0x19, 0x11, 0x24, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x35, 0x08, 0x09, 0x00, 0x01, 0x35, 0x03,
			0x19, 0x11, 0x06, 0x35, 0x08, 0x09, 0x00, 0x01,
			0x35, 0x03, 0x19, 0x11, 0x06, 0x35, 0x08, 0x09,
			0x00, 0x01, 0x35, 0x03, 0x19, 0x11, 0x06, 0x35,
			0x08, 0x09, 0x00, 0x01, 0x35, 0x03, 0x19, 0x11,
			0x06, 0x00));

	/*
	 * SDP Data Element (DE) tests
	 *
	 * Test extraction of valid DEs supported by sdp_extract_attr().
	 */
	define_test_de_attr("TEXT_STR8/empty",
			raw_data(0x25, 0x00),
			exp_data(SDP_TEXT_STR8, str, ""));
	define_test_de_attr("TEXT_STR8",
			raw_data(0x25, 0x04, 0x41, 0x42, 0x43, 0x44),
			exp_data(SDP_TEXT_STR8, str, "ABCD"));
	define_test_de_attr("TEXT_STR16",
			raw_data(0x26, 0x00, 0x04, 0x41, 0x42, 0x43, 0x44),
			exp_data(SDP_TEXT_STR16, str, "ABCD"));
	define_test_de_attr("URL_STR8",
			raw_data(0x45, 0x15, 0x68, 0x74, 0x74, 0x70, 0x3a,
				0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x62, 0x6c,
				0x75, 0x65, 0x7a, 0x2e, 0x6f, 0x72, 0x67,
				0x2f),
			exp_data(SDP_URL_STR8, str, "http://www.bluez.org/"));
	define_test_de_attr("URL_STR16",
			raw_data(0x46, 0x00, 0x15, 0x68, 0x74, 0x74, 0x70,
				0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x62,
				0x6c, 0x75, 0x65, 0x7a, 0x2e, 0x6f, 0x72, 0x67,
				0x2f),
			exp_data(SDP_URL_STR16, str, "http://www.bluez.org/"));
	define_test_de_attr("NIL",
			raw_data(0x00),
			exp_data(SDP_DATA_NIL, uint8, 0));
	define_test_de_attr("UINT8",
			raw_data(0x08, 0xff),
			exp_data(SDP_UINT8, uint8, UINT8_MAX));
	define_test_de_attr("INT8",
			raw_data(0x10, 0x80),
			exp_data(SDP_INT8, int8, INT8_MIN));
	define_test_de_attr("BOOL",
			raw_data(0x28, 0x01),
			exp_data(SDP_BOOL, int8, 1));
	define_test_de_attr("UINT16",
			raw_data(0x09, 0xff, 0xff),
			exp_data(SDP_UINT16, uint16, UINT16_MAX));
	define_test_de_attr("INT16",
			raw_data(0x11, 0x80, 0x00),
			exp_data(SDP_INT16, int16, INT16_MIN));
	define_test_de_attr("UINT32",
			raw_data(0x0A, 0xff, 0xff, 0xff, 0xff),
			exp_data(SDP_UINT32, uint32, UINT32_MAX));
	define_test_de_attr("INT32",
			raw_data(0x12, 0x80, 0x00, 0x00, 0x00),
			exp_data(SDP_INT32, int32, INT32_MIN));
	define_test_de_attr("UINT64",
			raw_data(0x0B, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
									0xff),
			exp_data(SDP_UINT64, uint64, UINT64_MAX));
	define_test_de_attr("INT64",
			raw_data(0x13, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
									0x00),
			exp_data(SDP_INT64, int64, INT64_MIN));
	/* UINT128/INT128 are just byte arrays parsed as uint128_t */
	define_test_de_attr("UINT128",
			raw_data(0x0C, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
					0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
					0xff, 0xff, 0xff),
			exp_data(SDP_UINT128, uint128,
				build_u128(0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
						0xff, 0xff, 0xff, 0xff, 0xff,
						0xff, 0xff, 0xff, 0xff, 0xff)));
	define_test_de_attr("INT128",
			raw_data(0x14, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
					0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
					0x00, 0x00, 0x00),
			exp_data(SDP_INT128, uint128,
				build_u128(0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
						0x00, 0x00, 0x00, 0x00, 0x00,
						0x00, 0x00, 0x00, 0x00, 0x00)));

	return tester_run();
}
