2.2.3.3 EXTENDED_PAYLOAD

The EXTENDED_PAYLOAD structure holds arbitrary data supplied by the application for a Peer Name.


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

Length

Minor Version

Major Version

Reserved

Signature Offset

Not After

...

PNRP ID (32 bytes)

...

...

Nonce (16 bytes)

...

...

Number of Payloads

Total Payload Bytes

Payload Type

Payload Length

String Type (optional)

Payload (variable)

...

Signature (variable)

...

Length (2 bytes): Length, in little-endian byte order, of the entire EXTENDED_PAYLOAD structure.

Minor Version (1 byte): The minor version of the EXTENDED_PAYLOAD structure. MUST be set to 0x00.

Major Version (1 byte): The major version of the EXTENDED_PAYLOAD structure. MUST be set to 0x02.

Reserved (2 bytes): MUST be set to zero when sent and MUST be ignored on receipt.

Signature Offset (2 bytes): Byte offset, in little-endian byte order, from the beginning of the EXTENDED_PAYLOAD structure to the Signature field.

Not After (8 bytes): The number, in little-endian byte order, of 100-nanosecond intervals, since January 1, 1601 (UTC) until the CPA expires.

PNRP ID (32 bytes): The PNRP ID with which this EXTENDED PAYLOAD message is associated, transmitted in reverse byte order (that is, the least significant byte is transmitted first).

Nonce (16 bytes): The value of the Nonce field from the INQUIRE message of the node requesting this extended CPA.

Number of Payloads (2 bytes): Number, in little-endian byte order, of Payloads to follow. MUST be set to 0x0001.

Total Payload Bytes (2 bytes): Total number, in little-endian byte order, of bytes between the end of the Nonce field and the beginning of the Signature field. This field MUST be 10 plus the value of the Payload Length field.

Payload Type (4 bytes): The type of Payload, in little-endian byte order. MUST be one of the following.

Value

Meaning

0x80000002

Payload field contains a NULL-terminated string.

0x80000003

Payload field contains binary data.

Payload Length (2 bytes): Number, in little-endian byte order, of bytes in the String Type and Payload fields. For a binary payload, the value MUST be from 1 through 4096. For a string payload, the value MUST be from 6 through 4098.

String Type (2 bytes): The encoding format of the string, in little-endian byte order. This field MUST be present if and only if PayloadType is 0x80000002. If present, the value MUST be one of the following.

Value

Meaning

0x0000

Unicode

0x0001

UTF-8

Payload (variable): A NULL-terminated string (if PayloadType is 0x80000002) or binary data (if PayloadType is 0x80000003) supplied by the application or higher-layer protocol.

Signature (variable): A SIGNATURE structure.