
* - different than BITE defaults
# - not yet implemented/supported

M - mandatory
O - optional


		Support Different Size Capabilities on UUID
-------------------------------------------------------------------------------
Item		Selected	Description
-------------------------------------------------------------------------------
E.1.1		True		Support for 128 bit UUID (M)
E.1.2		True		Support for 32 bit UUID	(M)
E.1.3		True		Support for 16 bit UUID (M)
-------------------------------------------------------------------------------


		Roles
-------------------------------------------------------------------------------
Item		Selected	Description
-------------------------------------------------------------------------------
E.1b.1		True		Support for server role (C.1)
E.1b.2		True		Support for client role (C.1)
-------------------------------------------------------------------------------
C.1 Mandatory to support at least one of the roles
-------------------------------------------------------------------------------


		Valid Service Search Request
-------------------------------------------------------------------------------
Item		Selected	Description
-------------------------------------------------------------------------------
E.2.1		True		Support for respond on search of single
				Service, using ServiceSearchRequest (C.2)
E.2.2		True		Support for respond on search of Service,
				using continuation state (O)
E.2.3		True		Search for services using the continuation
				state (C.1)
-------------------------------------------------------------------------------
C.1 Mandatory to support if the client role is supported (1b/2)
C.2 Mandatory to support if the server role is supported (1b/1)
-------------------------------------------------------------------------------


		Invalid Service Search Request
-------------------------------------------------------------------------------
Item		Selected	Description
-------------------------------------------------------------------------------
E.3.1		True		Support for error response on Service search
				request (M)
-------------------------------------------------------------------------------


		Valid Service Attribute Request
-------------------------------------------------------------------------------
Item		Selected	Description
-------------------------------------------------------------------------------
E.4.1		True		Support for respond on search of
				Attribute(s) (M)
E.4.2		True		Support for respond on search of
				Attribute, using continuation state (O)
E.4.3		True		Support for respond on search on
				attribute AdditionalProtocolDescriptorList (O)
-------------------------------------------------------------------------------


		Invalid Service Attribute Request
-------------------------------------------------------------------------------
Item		Selected	Description
-------------------------------------------------------------------------------
E.5.1		True		Support for error response on Attribute
				search request (M)
-------------------------------------------------------------------------------


		Valid Service Search Attribute Request
-------------------------------------------------------------------------------
Item		Selected	Description
-------------------------------------------------------------------------------
E.6.1		True		Support for respond on search for Service(s)
				and Attribute(s) (M)
E.6.2		True		Support for respond on search of Attribute,
				using continuation state (O)
E.6.3		True		Support for respond on search on attribute
				AdditionalProtocolDescriptorList on existing
				service (O)
-------------------------------------------------------------------------------


		Invalid Service Search Attribute Request
-------------------------------------------------------------------------------
Item		Selected	Description
-------------------------------------------------------------------------------
E.7.1		True		Support for error response on Service and
				Attribute request (M)
-------------------------------------------------------------------------------


		Service Browsing
-------------------------------------------------------------------------------
Item		Selected	Description
-------------------------------------------------------------------------------
E.8.1		True		Support for browsing, using
				SDP_ServiceSearchRequest and
				SDP_ServiceAttributeRequest (O)
E.8.2		True		Support for browsing, using
				SDP_ServiceSearchAttributeRequest (O)
-------------------------------------------------------------------------------


		Attributes Present in IUT
-------------------------------------------------------------------------------
Item		Selected	Description
-------------------------------------------------------------------------------
E.9.1		True		ServiceID (O)
E.9.2		True		ProtocolDescriptorList (O)
E.9.3		True		ServiceRecordState (O)
E.9.4		True		ServiceInfoTimeToLive (O)
E.9.5		True		BrowseGroupList (O)
E.9.6		True		LanguageBaseAttributeIdList (O)
E.9.7		True		ServiceAvailability (O)
E.9.8		True		IconURL (O)
E.9.9		True		ServiceName (O)
E.9.10		True		ServiceDescription (O)
E.9.11		True		ProviderName (O)
E.9.12		True		VersionNumberList (O)
E.9.13		True		ServiceDataBaseState (O)
E.9.14		True		BluetoothProfileDescriptorList (O)
E.9.15		True		DocumentationURL (O)
E.9.16		True		ClientExecutableURL (O)
E.9.17		True		AdditionalProtocolDescriptorList (C.1)
E.9.18		True		ServiceRecordHandle (M)
E.9.19		True		ServiceClassIDList (M)
-------------------------------------------------------------------------------
C.1: Optional if 9/2 is supported, otherwise excluded
-------------------------------------------------------------------------------
