throbber
BLUETOOTH SPECIFICATION Version 1.0 B
`
`page 331 of 1082
`
`Service Discovery Protocol‘
`
`SDP involves communication between an SDP server and an SDP client. The
`server maintains a list of service records that describe the characteristics of
`services associated with the server. Each service record contains information
`
`about a single service. A client may retrieve information from a service record
`maintained by the SDP server by issuing an SDP request.
`
`if the client, or an application associated with the client, decides to use a ser-
`vice, it must open a separate connection to the service provider in order to uti-
`lize the service. SDP provides a mechanism for discovering services and their
`attributes (including associated service access protocols). but it does not pro-
`vide a mechanism for utilizing those services (such as delivering the service
`access protocols).
`
`There is a maximum of one SDP server per Bluetooth device. (If a Bluetooth
`device acts only as a client, it needs no SDP server.) A single Bluetooth device
`may function both as an SDP server and as an SDP client. If multiple applica-
`tions on a device provide services, an SDP server may act on behalf of those
`service providers to handle requests for information about the services that
`they provide.
`
`Similarly, multiple client applications may utilize an SDP client to query servers
`on behalf of the client applications.
`
`The set of SDP servers that are available to an SDP client can change dynam-
`ically based on the RF proximity of the servers to the client. When a server
`becomes available, a potential client must be notified by a means other than
`SDP so that the client can use SDP to query the server about its services. Sim-
`ilarly. when a server leaves proximity or becomes unavailable for any reason.
`there is no explicit notification via the service discovery protocol. However, the
`client may use SDP to poll the server and may infer that the server is not avail-
`able if it no longer responds to requests.
`
`Additional information regarding application interaction with SDP is contained
`in the Bluetooth Service Discovery Profile document.
`
`29 November 1999
`
`AFFLT0293559
`
`Samsung Ex. 1019 p. 331
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 8
`
`Service Discovery Protocoi
`
`2.2 SERVICE RECORD
`
`page 332 of H382
`
`Bluetooth.
`
`A service is any entity that can provide information, perform an action, or con-
`trol a resource on behaif of another entity. A service may be implemented as
`software. hardware, or a combination of hardware and software.
`
`All of the information about a service that is maintained by an SDP server is
`contained within a single service record. The service record consists entirely of
`a list of service attributes.
`
`Service Record
`
`Service Attribute 1
`
`Service Attribute 2
`
`Service Attribute 3
`
`Service Attribute N
`
`Figure 2.3: Service Record
`
`A service record handle is a 32-bit number that uniquely identifies each service
`record within an SDP server. It is important to note that, in general, each han-
`dle is unique only within each SDP server. If SDP server 81 and SDP server
`S2 both contain identical senrice records (representing the same senrice), the
`service record handles used to reference these identical service records are
`
`completely independent. The handle used to reference the service on S1 will
`be meaningless if presented to S2.
`
`The service discovery protocol does not provide a mechanism for notifying cli-
`ents when service records are added to or removed from an SDP server.
`
`While an L2CAP (Logical Link Control and Adaptation Protocol) connection is
`established to a server, a service record handle acquired from the server will
`remain valid unless the service record it represents is removed.
`If a service is
`removed from the server, further requests to the server (during the L2CAP con»
`nection in which the service record handle was acquired) using the services
`(now stale) record handle will result in an error response indicating an invalid
`service record handle. An SDP server must ensure that no service record han-
`dle values are re-used while an L2CAP connection remains estabiished. Note
`that service record handles are known to remain valid across successive
`L2CAP connections while the ServiceDatabaseState attribute value remains
`
`unchanged. See the ServiceRecordState and ServiceDatabaseState attributes
`in Section ti Service Attribute iieiinitéons on page
`
`There is one service record handle whose meaning is consistent across all
`SDP servers. This service record handle has the value 0x00000000 and is a
`
`29 November 1999
`
`Overview
`
`AFFLT0293560
`
`Samsung Ex. 1019 p. 332
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 B
`
`page 333 of 1082
`
`Service Discovery Protocol
`
`Bluetooth.
`
`handle to the service record that represents the SDP server itself. This service
`record contains attributes for the SDP server and the protocol it supports. For
`exampie, one of its attributes is the list of SDP protocol versions supported by
`the server. Service record handle values 0x00000001-OXOOOOFFFF are
`reserved.
`
`29 November 1999
`
`AFFLT0293561
`
`Samsung Ex. 1019 p. 333
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 8
`
`Service Discovery Protocol
`
`2.3 SERVICE ATTRIBUTE
`
`page 334 of €032
`
`Bluetooth-
`
`Each service attribute describes a single characteristic of a service. Some
`examples of service attributes are:
`
`ServiceC|assiD List
`
`Identities the type of service represented by a service record.
`In other words, the list of classes of which the service is an
`instance
`
`Se rvicel D
`
`Uniquely identifies a specific instance of a service
`
`Protoco|DescrlptorList
`
`Specifies the protocol stacl<(s) that may be used to utilize a
`service
`
`ProviderName
`
`|conURL
`
`Servicetslame
`
`The textual name of the individual or organization that pro-
`vides a service
`
`Specifies a URL that refers to an icon image that may be
`used to represent a service
`
`A text string containing a human-readable name for the ser-
`vice
`
`Serviceflescrlptiori
`
`A text string describing the service
`
`See Eéerstiran 5.’? Lirmrersai Attribute t3etin'a=‘.':cns ore. page 358, for attribute defini-
`tions that are common to all service records. Service providers can also define
`their own service attributes.
`
`A service attribute consists of two components: an attribute ID and an attribute
`value.
`
`Service Attribute
`
`Attribute ID
`
`Attribute Value
`
`Figure 2.4: Service Attribute
`
`29 November 1999
`
`AFFLT0293562
`
`Samsung Ex. 1019 p. 334
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 B
`
`page 335 of 1082
`
`Service Discovery Protocol‘
`
`2.4 ATTRIBUTE ID
`
`An attribute ID is a 16-bit unsigned integer that distinguishes each service
`attribute from other service attributes within a service record. The attribute ID
`also identifies the semantims of the associated attribute value.
`
`A service class definition specifies each of the attribute IDs for a service class
`and assigns a meaning to the attribute value associated with each attribute ID.
`
`For example. assume that service class C specifies that the attribute value
`associated with attribute ID 12345 is a text string containing the date the ser-
`vice was created. Assume further that service A is an instance of service class
`C. If service A's service record contains a service attribute with an attribute ID
`
`of 12345, the attribute value must be a text string containing the date that ser-
`vice A was created. However, services that are not instances of service class C
`
`may assign a different meaning to attribute ID 12345.
`
`All services belonging to a given service class assign the same meaning to
`each particular attribute ID. See ESe-cticn
`Seririce
`page
`
`In the Service Discovery Protocol, an attribute ID is often represented as a data
`element. See Section 3
`Representation on page 341.
`
`Type
`
`Size Index
`
`I-II
`<—5—H—3—i>1j1Ber
`
`Figure 2.5:
`
`2.5 ATTRIBUTE VALUE
`
`The attribute value is a variable length field whose meaning is determined by
`the attribute ID associated with it and by the service class of the service record
`in which the attribute is contained. In the Service Discovery Protocol, an
`attribute value is represented as a data element. (See Section 3 Data Repre-
`seawtation on page 34?.) Generally. any type of data element is permitted as an
`attribute value, subject to the constraints specified in the service class defini-
`tion that assigns an attribute ID to the attribute and assigns a meaning to the
`attribute value. See Section
`Servi:.:e Attribute iltetinitiorzs on page 358, for
`attribute value examples.
`
`29 November 1999
`
`AFFLT0293563
`
`Samsung Ex. 1019 p. 335
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 8
`
`Service Discovery Protocol‘
`
`2.6 SERVICE CLASS
`
`page 336 of
`
`Bluetooth-
`
`Each service is an instance of a service class. The service class definition pro-
`vides the definitions of all attributes contained in service records that represent
`instances of that class. Each attribute definition specifies the numeric value of
`the attribute ID, the intended use of the attribute value, and the format of the
`attribute value. A service record contains attributes that are specific to a ser-
`vice class as well as universal attributes that are common to all services.
`
`Each service class is also assigned a unique identifier. This service class iden-
`tifier is contained in the attribute value for the ServiceC|asslDList attribute, and
`is represented as a UUID (see Section 2.7.‘? iititfi on
`33?). Since the for-
`mat and meanings of many attributes in a service record are dependent on the
`service class of the service record, the ServiceC|ass|DList attribute is very
`important. Its value should be examined or verified before any class-specific
`attributes are used. Since all of the attributes in a service record must conform
`
`to all of the service’s classes, the service class identifiers contained in the Ser-
`
`viceC|asslDList attribute are related. Typically, each service class is a subclass
`of another class whose identifier is contained in the list. A service subclass def-
`
`inition differs from its superclass in that the subclass contains additional
`attribute definitions that are specific to the subclass. The service class identifi-
`ers in the ServiceC|ass|DList attribute are listed in order from the most specific
`class to the most general class.
`
`When a new service ciass is defined that is a subclass of an existing service
`class, the new service class retains all of the attributes defined in its super-
`class. Additional attributes will be defined that are specific to the new service
`class. In other words, the mechanism for adding new attributes to some of the
`instances of an existing service class is to create a new service class that is a
`subclass of the existing service class.
`
`2.6.1 A Printer Service Class Example
`
`A color postscript printer with duplex capability might conform to 4 Service-
`Class definitions and have a ServiceC|ass|DList with UU|Ds (See SE‘rGI.EDi'i 23".’:
`Ut.iit') en page 33?.) representing the following Serviceclasses:
`
`DuplexCo|orPostscriptPrinterServiceC|ass|D,
`Co|orPostscriptPrinterServiceC|assID,
`PostscriptPrinterServiceC|ass|D,
`PrinterServiceC|ass|D
`
`Note that this example is only illustrative. This may not be a practical printer
`class hierarchy.
`
`29 November 1999
`
`Overview
`
`AFFLT0293564
`
`Samsung Ex. 1019 p. 336
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 B
`
`page 337 of 1082
`
`Service Discovery Protocol‘
`
`2.7 SEARCHING FOR SERVICES
`
`Once an SDP client has a service record handle. it may easily request the val-
`ues of specific attributes, but how does a client initially acquire a service record
`handle for the desired service records? The Service Search transaction allows
`
`a client to retrieve the service record handles for particular service records
`based on the values of attributes contained within those service records.
`
`The capability search for service records based on the values of arbitrary
`attributes is not provided. Rather, the capability is provided to search only for
`attributes whose values are Universally Unique Identifiers‘ (UU|Ds). Important
`attributes of services that can be used to search for a service are represented
`as UU|Ds.
`
`2.7.1 UUID
`
`A UUID is a universally unique identifier that is guaranteed to be unique across
`all space and all time. UUIDs can be independently created in a distributed
`fashion. No central registry of assigned UUIDs is required. A UUID is a 128-bit
`value.
`
`To reduce the burden of storing and transferring 128-bit UUID values, a range
`of UUID values has been pre-allocated for assignment to often-used, regis-
`tered purposes. The first UUID in this pre-allocated range is known as the
`Bluetooth Base UUID and has the value 00000000-0000-1000-700$
`
`0O805F9B34FB, from the Bluetooth Assigned Numbers document. UUID val-
`ues in the pre-allocated range have aliases that are represented as 16-bit or
`32-bit values. These aliases are often called 16-bit and 32-bit UU|Ds, but it is
`important to note that each actually represents a 128-bit UUID value.
`
`The full 128-bit value of a 16-bit or 32-bit UUID may be computed by a simple
`arithmetic operation.
`
`128_bit_va|ue = 16_bit_va|ue * 295 + B|uetooth_Base_UUID
`
`128_bit_va|ue = 32_bit_va|ue * 295 + B|uetooth_Base_UUID
`
`A 16-bit UUID may be converted to 32-bit UUID format by zero-extending the
`16-bit value to 32-bits. An equivalent method is to add the 16-bit UUID value to
`a zero-valued 32-bit UUID.
`
`Note that two 16-bit UUlDs may be compared directiy, as may two 32-bit
`UU|Ds or two 128-bit UUlDs. If two UUlDs of differing sizes are to be com-
`pared. the shorter UUID must be converted to the longer UUID format before
`comparison.
`
`1. The format of UUIDs is defined by the International Organization for Standardization in ISO!
`IEC 1157821996. ''Information technology— Open Systems Interconnection - Remote Proce-
`dure Call {RPC)"
`
`Overview
`
`29 November 1999
`
`AFFLT0293565
`
`Samsung Ex. 1019 p. 337
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 8
`
`Service Discovery Protocol‘
`
`2.7.2 Service Search Patterns
`
`page 338 of
`
`Bluetooth-
`
`A service search pattern is a list of UU|Ds used to locate matching service
`records. A service search pattern is said to match a service record if each and
`every UUID in the service search pattern is contained within any of the service
`record's attribute values. The UU|Ds need not be contained within any specific
`attributes or in any particular order within the service record. The service
`search pattern matches if the UUIDs it contains constitute a subset of the
`UU|Ds in the service record's attribute values. The only time a service search
`pattern does not match a service record is if the service search pattern con-
`tains at least one UUID that is not contained within the service record's
`
`attribute values. Note also that a valid service search pattern must contain at
`least one UUID.
`
`2.8 BROWSING FOR SERVICES
`
`Normally, a client searches for services based on some desired characteris-
`tic(s) (represented by a UUID) of the services. However, there are times when
`it is desirable to discover which types of services are described by an SDP
`server's service records without any a priori information about the services.
`This process of looking for any offered services is termed browsing. In SDP, the
`mechanism for browsing for services is based on an attribute shared by all ser-
`vice classes. This attribute is called the BrowseGroupList attribute. The value
`of this attribute contains a list of UUIDS. Each UUID represents a browse group
`with which a service may be associated for the purpose of browsing.
`
`When a client desires to browse an SDP server’s services, it creates a service
`search pattern containing the UUID that represents the root browse group. All
`services that may be browsed at the top level are made members of the root
`browse group by having the root browse group's UUID as a value within the
`BrowseGroupList attribute.
`
`Normally, if an SDP server has relatively few services, all of its services will be
`placed in the root browse group. However, the services offered by an SDP
`server may be organized in a browse group hierarchy, by defining additional
`browse groups below the root browse group. Each of these additional browse
`groups is described by a service record with a service class of
`BrowseGroupDescriptor.
`
`A browse group descriptor service record defines a new browse group by
`means of its Group ID attribute. In order for a service contained in one of these
`newly defined browse groups to be browseable, the browse group descriptor
`service record that defines the new browse group must in turn be browseable.
`The hierarchy of browseable services that is provided by the use of browse
`group descriptor service records allows the services contained in an SDP
`server to be incrementally browsed and is particularly useful when the SDP
`server contains many service records.
`
`29 November 1999
`
`Overview
`
`AFFLT0293566
`
`Samsung Ex. 1019 p. 338
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 B
`
`Service Discovery Protocol
`
`2.8.1 Example Service Browsing Hierarchy
`
`page 339 of 1082
`
`Bluetooth.
`
`Here is a fictitious service browsing hierarchy that may illuminate the manner in
`which browse group descriptors are used. Browse group descriptor service
`records are identified with (G); other service records with (S).
`
`Pubiic Browse R oot
`
`| Eniertainmeni(G)
`
`|
`
`Games (G)
`L
`Btarcraft (S) l
`
`Movies ((3)
`I
`| ABug's Life (3) l
`
`i News(G)
`‘
`| Dictionaryl (S)
`
`R efere nce (G)
`
`‘
`
`i Encyc|ope1:|iaX(S)
`
`|
`
`New York Times (8)
`
`Local N ewsp aper (S)
`
`London Times (3)
`
`Figure 2.6:
`
`This table shows the services records and service attributes necessary to
`implement the browse hierarchy.
`
`Service Name
`
`Service Class
`
`Attribute Name
`
`Attribute Value
`
`Entertainment
`
`BrowseGroupDescri'ptor
`
`BrowseGroupL'
`
`Browseg roupDescriptor
`
`BrowseGroupL'
`
`GrouplD
`
`Pub|icBrowseRoot
`
`Entertainmentlfl
`
`Pub|icBrowseRoot
`
`Reference
`
`BrowseG rou pDescr1ptor
`
`BrowseGroupL’
`
`Pub|icBrowseRoot
`
`GroupID
`
`News|D
`
`GrouplD
`
`BrowseGroupDescriptor
`
`BrowseGroupL'
`
`Group|D
`
`BrowseGroupDescriptor
`
`BrowseGroupL’
`
`Video Game Class ID
`
`BrowseGroupL'
`
`GroLiplD
`
`Reference|D
`
`Entertainment|D
`
`GamesID
`
`Entertainment|D
`
`MoviesiD
`
`GameslD
`
`29 November 1999
`
`AFFLT0293567
`
`Samsung Ex. 1019 p. 339
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 8
`
`Service Discovery Protocol
`
`page 340 of €832
`
`Bluetooth-
`
`A Bug's Life
`
`Dictionary Z
`
`Movie Class ID
`
`BrowseGroupList
`
`Dictionary Class ID
`
`BrowseGroupi_:'st
`
`Encyclopedia X
`
`Encyclopedia Class ID
`
`BrowseGroupList
`
`MovielD
`
`ReferenceID
`
`ReferenceID
`
`New York Times
`
`London Times
`
`Newspaper ID
`
`Newspaper ID
`
`BrowseGrcupList
`
`NewspaperID
`
`BrowseGroupl.ist
`
`NewspaperiD
`
`Local Newspaper
`
`Newspaper ID
`
`BrowseGroupList
`
`NewspaperID
`
`Tabie 2.1:
`
`29 November ‘I999
`
`AFFLT029356B
`
`Samsung Ex. 1019 p. 340
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 B
`
`page 341 of 1082
`
`Service Discovery Protocol
`
`3 DATA REPRESENTATION
`
`Attribute values can contain information of various types with arbitrary com-
`plexity; thus enabling an attribute list to be generally useful across a wide vari-
`ety of service classes and environments.
`
`SDP defines a simple mechanism to describe the data contained within an
`attribute value. The primitive construct used is the data element.
`
`3.1 DATA ELEMENT
`
`A data element is a typed data representation. It consists of two fields: a
`header field and a data field. The header field, in turn, is composed of two
`parts: a type descriptor and a size descriptor. The data is a sequence of bytes
`whose length is specified in the size descriptor (described in Section 3.3 Data
`Eiiement Sfiizs iiéescriptcir on page fist?) and whose meaning is (partially) speci-
`fied by the type descriptor.
`
`3.2 DATA ELEMENT TYPE DESCRIPTOR
`
`A data element type is represented as a 5-bit type descriptor. The type descrip-
`tor is contained in the most significant (high-order) 5 bits of the first byte of the
`data element header. The following types have been defined.
`
`Type
`Descriptor
`Value
`
`Valid Size
`Descriptor
`Values
`
`Type Description
`
`Nil. the null type
`
`Unsigned Integer
`
`Signed twos-complement integer
`
`UUID. a universally unique identifier
`
`Text string
`
`Boolean
`
`Data element sequence. a data element whose data field
`is a sequence of data elements
`
`Data element alternative, data element whose data field is
`a sequence of data elements from which one data ele-
`ment is to be selected.
`
`URL. a uniform resource locator
`
`Reserved
`
`Data Representation
`
`29 November 1999
`
`AFFLT0293569
`
`Samsung Ex. 1019 p. 341
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 8
`
`page 342 of €832
`
`Service Discovery Protocol
`
`3.3 DATA ELEMENT SIZE DESCRIPTOR
`
`The data element size descriptor is represented as a 3-bit size index followed
`by O, 8. 16, or 32 bits. The size index is contained in the least significant (low-
`order) 3 bits of the first byte of the data element header. The size index is
`encoded as follows.
`
`Additional
`bits
`
`1 byte. Exception: if the data eiement type is nil, the data size is 0
`bytes.
`
`2 bytes
`
`4 bytes
`
`8 bytes
`
`16 bytes
`
`The data size is contained in the additional 8 bits. which are inter-
`preted as an unsigned integer.
`
`The data size is contained in the additional 16 bits. which are
`interpreted as an unsigned integer.
`
`The data size is contained in the additional 32 bits, which are
`interpreted as an unsigned integer.
`
`29 November 1999
`
`Data Representation
`
`AFFLT0293570
`
`Samsung Ex. 1019 p. 342
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 B
`
`page 343 of 1082
`
`Service Discovery Protocol
`
`3.4 DATA ELEMENT EXAMPLES
`
`Nil is represented as:
`
`Type
`
`Size Index
`
`6%
`
`1—5—N-3-D
`
`A 16-bit signed integer is represented as:
`
`Type
`
`Size Index
`
`16«bit data value
`1
`2
`4—5—M—3—>4j16en
`
`he 3 character ASCII string "Hat" is represented as:
`
`Type Size Index
`
`Size
`
`E21
`
`Figure 3.1:
`
`Data Representation
`
`29 November 1999
`
`AFFLT0293571
`
`Samsung Ex. 1019 p. 343
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 8
`
`Service Discovery Protocol‘
`
`4 PROTOCOL DESCRIPTION
`
`page 344 of
`
`Bluetooth-
`
`SDP is a simple protocol with minimal requirements on the underlying trans-
`port. It can function over a reliable packet transport (or even unreliable, if the
`client implements timeouts and repeats requests as necessary).
`
`SDP uses a requestiresponse model where each transaction consists of one
`request protocol data unit (PDU) and one response PDU. However, the
`requests may potentially be pipelined and responses may potentially be
`returned out of order.
`
`In the specific case where SDP utilises the Bluetooth L2CAP transport proto-
`col, multiple SDP PDUS may be sent in a single LZCAP packet, but only one
`LZCAP packet per connection to a given SDP server may be outstanding at a
`given instant. Limiting SDP to sending one unacknowledged packet provides a
`simple form of fiow control.
`
`Eixarrapie ESELEP 'i'rarssactions,
`The protocol examples found in ;‘-‘qzrpertriix E3
`may be helpful in understanding the protocol transactions.
`
`4.1 TRANSFER BYTE ORDER
`
`The service discovery protocol transfers multiple-byte fields in standard net-
`work byte order (Big Endian), with more significant (high-order) bytes being
`transferred before less-significant (low-order) bytes.
`
`4.2 PROTOCOL DATA UNIT FORMAT
`
`Every SDP PDU consists of a PDU header foliowed by PDU-specific parame-
`ters. The header contains three fields: a PDU ID. a Transaction iD, and a
`ParameterLength. Each of these header fields is described here. Parameters
`may include a continuation state parameter, described below; PDU-specific
`parameters for each PDU type are described later in separate PDU descrip-
`tions.
`
`PDU Format:
`
`Header:
`
`PDU ID
`
`Transaction ID
`
`ParameterLength
`
`4-1 byte—Hj2 bytes—>4j2 bytes—>
`
`4eParameterLength byteseb
`
`Figure 4.1:
`
`29 November 1999
`
`Protocol Description
`
`AFFLT0293572
`
`Samsung Ex. 1019 p. 344
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 B
`
`Service Discovery Protocoi
`
`page 345 of 1082
`
`Bluetooth.
`
`Size: 1' Byte
`
`N
`
`0x00
`
`0x01
`
`0x02
`
`0x03
`
`0x04
`
`0x05
`
`0x06
`
`OX0?
`
`Parameter Description
`
`The PDU ID field identifies the type of PDU. i.e. its meaning and the
`specific parameters.
`
`Reserved
`
`SDP_ErrorResponse
`
`SDP_ServiceSearchRequest
`
`SDF'_ServiceSearchResponse
`
`SDP_ServiceAttributeRequest
`
`SDPmserviceAttributeResponse
`
`SDP_ServiceSearchAttributeRequest
`
`SDP_ServiceSearchAttributeResponse
`
`OX0?-OXFF
`
`Reserved
`
`TransactioniD.'
`
`Size: 2 Bytes
`
`Parameter Description
`
`The Transactioniili field uniquely identifies request PDUs and is used to
`match response PDUs to request PDUs. The SDP client can choose
`any vaiue for a request's Transaction1D provided that it is different from
`all outstanding requests. The TransactioniD vaiue in response PDUs is
`required to be the same as the request that is being responded to.
`Range: OXUUUU — OXFFFF
`
`ParameterLength.'
`
`Size: 2 Bytes
`
`Parameter Description
`
`The PararneterLength field specifies the iength (in bytes) of all parame-
`ters contained in the PDU.
`
`Range: oxcooo — OXFFFF
`
`Protocol Description
`
`29 November 1999
`
`AFFLT0293573
`
`Samsung Ex. 1019 p. 345
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 8
`
`page 346 of €882
`
`Service Discovery Protocol‘
`
`Bluetooth-
`
`4.3 PARTIAL RESPONSES AND CONTINUATION STATE
`
`Some SDP requests may require responses that are larger than can fit in a sin-
`gle response PDU. In this case, the SDP server will generate a partial
`response along with a continuation state parameter. The continuation state
`parameter can be supplied by the client in a subsequent request to retrieve the
`next portion of the complete response. The continuation state parameter is a
`variable length field whose first byte contains the number of additional bytes of
`continuation information in the field. The format of the continuation information
`
`is not standardized among SDP servers. Each continuation state parameter is
`meaningful only to the SDP Server that generated it.
`
`lnfoLength
`
`Continuation Information
`
`¢—1 byte—M—lnfoLength bytes—v
`
`Figure 4. 2: Continuation State Fonnat
`
`After a client receives a partial response and the accompanying continuation
`state parameter, it can re-issue the original request (with a new transaction ID)
`and include the continuation state in the new request indicating to the server
`that the remainder of the original response is desired. The maximum allowable
`value of the |nfoLength field is 16 (0x10).
`
`Note that an SDP server can split a response at any arbitrary boundary when it
`generates a partial response. The SDP server may select the boundary based
`on the contents of the reply, but is not required to do so.
`
`4.4 ERROR HANDLING
`
`Each transaction consists of a request and a response PDU. Generally, each
`type of request PDU has a corresponding type of response PDU. However, if
`the server determines that a request is improperly formatted or for any reason
`the server cannot respond with the appropriate PDU type, it will respond with
`an SDP_ErrorResponse PDU.
`
`Any Request
`
`SDP_ErrorResponse
`
`Figure 4.3:
`
`29 November 1999
`
`Protocol Description
`
`AFFLT0293574
`
`Samsung Ex. 1019 p. 346
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 B
`
`page 347 of 1082
`
`Service Discovery Protocol
`
`4.4.1 SDP_ErrorResponse PDU
`
`PDU Type
`
`SDP_ErrorResponse
`
`Description:
`
`Parameters
`
`ErrorCode.
`Errorlnfo
`
`The SDP server generates this PDU type in response to an improperly format-
`ted request PDU or when the SDP server, for whatever reason. cannot gener-
`ate an appropriate response PDU.
`
`PDU Parameters:
`
`ErrorCoo‘e:
`
`Size: 2 Bytes
`
`Parameter Description
`
`The Errorcode identifies the reason that an SDP_ErrorResponse PDU
`was generated.
`
`0340000
`
`OXOOO1
`
`0x0002
`
`0x0003
`
`GXOOO4
`
`Ox0005
`
`0x0006
`
`Reserved
`
`lnvalidiunsupported SDP version
`
`Invalid Service Record Handle
`
`Invalid request syntax
`
`Invalid PDU Size
`
`Invalid Continuation State
`
`Insufficient Resources to satisfy Request
`
`0x000?-0xFF FF
`
`Reserved
`
`Errori'm°o.'
`
`Error-specific
`
`Size.‘ N Bytes
`
`Parameter Description
`
`Errorlnfo is an Errorcode-specific parameter. Its interpretation depends
`on the ErrorCode parameter. The currently defined Errorcode values do
`not specify the format of an Errorlnfo field.
`
`Protocol Description
`
`29 November 1999
`
`AFFLT0293575
`
`Samsung Ex. 1019 p. 347
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 8
`
`Service Discovery Protocoi
`
`4.5 SERVICESEARCH TRANSACTION
`
`page 348 of €832
`
`Bluetooth-
`
`SDP_ServiceSearch Reque
`
`SDP_ServiceSearchRespon
`
`Figure 4.4:
`
`4.5.1 SDP_ServiceSearchRequest PDU
`
`PDU Type
`
`Parameters
`
`SDP_ServiceSearchRequest
`
`ServiceSearchPattern.
`MaximumServiceRecordCount.
`Continuaticnstate
`
`Description:
`
`The SDP client generates an SDP_ServiceSearchRequest to locate service
`records that match the service search pattern given as the first parameter of
`the PDU. Upon receipt of this request, the SDP server will examine its service
`record data base and return an SDP_ServiceSearchResponse containing the
`service record handles of service records that match the given service search
`pattern.
`
`Note that no mechanism is provided to request information for all service
`records. However, see ffsecrtirst
`E:3rcv.=s%n-gt; for £3;~'arvie-es on page
`for a
`description of a mechanism that permits browsing for non-specific services
`without a priori knowledge of the services.
`
`PDU Parameters:
`
`ServiceSearchPattern:
`
`Size: Varies
`
`_ Parameter Description
`Data Element
`The ServiceSearchPattern is a data element sequence where each ele-
`Sequence
`ment in the sequence is a UUID. The sequence must contain at least
`one UUiD. The maximum number of UU|Ds in the sequence is 12'. The
`list of UU|Ds constitutes a service search pattern.
`
`*. The value of 12 has been selected as a compromise between the scope of a service
`search and the size of a search request PDU. It is not expected that more than 12
`UUIDS will be useful in a service search pattern.
`
`29 November 1999
`
`Protocol Description
`
`AFFLT0293576
`
`Samsung Ex. 1019 p. 348
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 B
`
`page 349 of 1082
`
`Service Discovery Protocol‘
`
`MaximumServiceRe coro‘Count.'
`
`Parameter Description
`
`Bluetooth.
`
`Size: 2 Bytes
`
`MaximumServiceRecordCount is a 16-bit count specifying the maximum
`number of service record handles to be returned in the response(s} to
`this request. The SDP server should not return more handles than this
`value specifies. If more than N service reoords match the request. the
`SDP server determines which matching service reoord handles to return
`in the responsets).
`Range: UXUUU1-UXFFFF
`
`Continuationstate:
`
`Size: 1 to 17 Bytes
`
`Continuation
`State
`
`Parameter Description
`
`Continuationstate consists of an 8-bit count, N. of the number of bytes
`of continuation state information, followed by the N bytes of continua-
`tion state information that were returned in a previous response from
`the server. N is required to be less than or equal to 16. If no continua-
`tion state is to be provided in the request, N is set to 0.
`
`4.5.2 SDP_ServiceSearchResponse PDU
`
`PDU Type
`
`Parameters
`
`SD P__Se rviceSea rch Response
`
`Tota|ServiceRecordCount,
`CurrentServiceRecordCount.
`ServiceRecordHandleList,
`Continuationstate
`
`Description:
`
`The SDP server generates an SDP_ServiceSearchResponse upon receipt of a
`valid SDP_ServiceSearchRequest. The response contains a list of service
`record handles for service records that match the service search pattern given
`in the request. Note that if a partial response is generated, it must contain an
`integral number of complete service record handles; a service record handle
`value may not be split across multiple PDUs.
`
`Protocol Description
`
`29 November 1999
`
`AFFLT0293577
`
`Samsung Ex. 1019 p. 349
`
`

`
`BLUETOOTH SPECIFICATION Version 1.0 8
`
`Service Discovery Protocol
`
`PDU Parameters:
`
`TotaiServr'ceRecordCount.'
`
`page 350 of €032
`
`Bluetooth-
`
`Size: 2 Bytes
`
`Parameter Description
`
`The ‘l'otalServiceRecordCount is an integer containing the number of
`service records that match the requested service search pattern. if no
`service records match the requested service search pattern. this param-
`eter is set to 0. N should never be larger than the MaximumServiceRe-
`cordCount value specified in the SDP_ServiceSearchRequest. When
`multiple partial responses are used. each partial response contains the
`same value for TotalServiceReoordCount.
`
`Range: UXUUUU-DXFFFF
`
`C urrentSe rvice Re cordCo un 1‘:
`
`Size: 2 Bytes
`
`Parameter Description
`
`The CurrenlServiceRecordCount is an Integer indicating the number of
`service record handles that are contained in the next parameter. If no
`service records match the requested service search pattern. this param-
`eter is set to 0. N should never be larger than the ToialServiceRecord-
`Count value specified in the current response.
`
`Range: 0x0000~0xFFFF
`
`Sen/iceRecon:iHandiei_ist.'
`
`Size: (currentsenziceRecordCount*4) Bytes
`
`List of
`32-bit handles
`
`Parameter Description
`
`The ServiceRecordHand|eList contains a list of service record handles.
`The number of handles in the list is given in the CurrentServiceRecorcl-
`Count parameter. Each of the handles in the Eist refers to a service
`r

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket