2.2.3.3 Scopes 2

The <Scopes> element represents the list of discovery provider scopes, where each element in the list is a string.

Version 1.0 <Scopes> Element

When specified in the request message, the version 1.0 peer MUST populate this value to indicate the segments it is searching for. When sending the response, the value provides the list of scopes present in the cache.

Each element in the list is a UTF-8-encoded string representation of the HoHoDk value in hexBinary format [XMLSCHEMA2/2] and represents one segment. (For details of HoHoDk, refer to [MS-PCCRC].) The Discovery Protocol uses the case-sensitive string comparison rule defined as part of the WSD standard schemas ([WS-Discovery] section 5.1).

Version 2.0 <Scopes> Element

When specified in the request message, the version 2.0 peer MUST populate this value with a single scope string to indicate the segments it is searching for. The scope string is a UTF-8-encoded string representation in base64Binary format [XMLSCHEMA2/2]. The format of the scope string is as follows.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

SegmentHashSize

Segment Hash Count

HoHoDk (variable)

...

SegmentHashSize (2 bytes): Size of Segment Hash in bytes.

Segment Hash Count (1 byte): Number of Segment Hashes present in the string.

HoHoDk (variable): List of HoHoDks.

Version 2.0 <Scopes> element on the ProbeMatch message.

The <Scopes> element of the ProbeMatch message is used to indicate segment availability. This field contains a base64 representation of a bit array encoded as a UTF-8 string. The availability of each HoHoDk is indicated by a two-bit array. The most significant bit in each two-bit array MUST be set to 1 if the responding peer has the requested segment in its cache or it must be set to 0 if the responding peer does not have the segment in its cache. The least significant bit MUST be set to 1 if the responding peer has all blocks belonging to the segment in its cache or it MUST be set to 0 if the responding peer does not have all blocks belonging to the segment in its cache.