2.2.2.8 SOLICIT_HASH

The SOLICIT_HASH message is used to initiate a Hash-based Sync.


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

Message Size

Version

Message Type

Reserved1

Inclusion Count

Exclusion Count

Record Types Offset

Hash Count

Hash Entry Offset

Reserved2

Record Types (variable)

...

Hash Entry Array (variable)

...

Message Size (4 bytes): The total number of bytes in the message.

Version (1 byte): The Peer-to-Peer Graphing Protocol version number. This MUST be set to 0x10 to signify version 1.0.

Message Type (1 byte): MUST be set to 0x08.

Reserved1 (2 bytes): MUST be set to zero and ignored on receipt.

Inclusion Count (1 byte): The count of record types to be included in the sync. This field MUST be 0x00 if Exclusion Count is nonzero.

Exclusion Count (1 byte): The count of record types that are to be excluded from the sync. This field MUST be set to 0x00 if Inclusion Count is nonzero.

Record Types Offset (2 bytes): The offset, in bytes, from the beginning of the message to the Record Type array.

Hash Count (4 bytes): The number of HASH_INFO_ENTRY (section 2.2.1.7) structures included in the message.

Hash Entry Offset (2 bytes): The offset, in bytes, from the beginning of the message to the Hash Entry Array.

Reserved2 (2 bytes): MUST be set to zero and MUST be ignored on receipt.

Record Types (variable): The array of record types that are included or excluded, expressed as an array of GUIDs in big-endian byte order. This array is interpreted the same as in SOLICIT_NEW (section 2.2.2.6).

Hash Entry Array (variable): The array of HASH_INFO_ENTRY structures that describe the Records in the Database.