2.2.2.4 FLOOD

The FLOOD message is sent by a Publisher to a Resolver in response to a REQUEST message, in order to provide a route entry or to revoke a CPA.


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

FieldID1

Length1

Reserved1

D

Reserved2

Padding1

FieldID2

Length2

Validate PNRP ID (32 bytes)

...

...

FieldID3 (optional)

Length3 (optional)

Revoke CPA (variable)

...

Padding3 (variable)

...

FieldID4 (optional)

Length4 (optional)

Route Entry (variable)

...

Padding4 (variable)

...

FieldID5

Length5

NumEntries

ArrayLength

ElementFieldType

EntryLength

Already Flooded List (variable)

...

FieldID1 (2 bytes): MUST be set to 0x0043 (FLOOD_CONTROLS).

Length1 (2 bytes): MUST be set to 0x0007.

Reserved1 (15 bits): MUST be set to zero when sent and MUST be ignored on receipt.

D (1 bit): If set, indicates that the sender does not want the receiver to send an ACK message.

Reserved2 (1 byte): Can be sent to any arbitrary value when sent and MUST be ignored on receipt.

Padding1 (1 byte): MUST be set to zero when sent and MUST be ignored on receipt.

FieldID2 (2 bytes): MUST be set to 0x0039 (Validate PNRP ID).

Length2 (2 bytes): MUST be set to 0x0024.

Validate PNRP ID (32 bytes): If the FLOOD message is being sent to provide a route entry or revoke a CPA, this field MUST specify the PNRP ID of the destination node; otherwise this field MUST be set to zero when sent and MUST be ignored on receipt.

FieldID3 (2 bytes): If present, MUST be set to 0x009C (Revoke CPA).

Length3 (2 bytes): If present, MUST be set to 4 plus the length in bytes of the Revoke CPA field.

Revoke CPA (variable): If present, an Encoded CPA structure that contains the CPA to revoke.

Padding3 (variable): A number of bytes between 0 and 3, such that the offset from the start of the message to the end of this field is a multiple of 4. MUST be present if and only if FieldID3 is present. MUST be set to zero when sent and MUST be ignored on receipt.

FieldID4 (2 bytes): If present, MUST be set to 0x009A (ROUTING_ENTRY). This field MUST be present if the node is flooding a route entry to its neighbors. Note that a receiver can tell whether this field is present or absent based on the value at this location.

Length4 (2 bytes): MUST be present if and only if FieldID4 is present. If present, it MUST be set to 4 plus the length in bytes of the Route Entry field.

Route Entry (variable): A ROUTE_ENTRY structure that contains an entry that the source node wants to send to the destination node. This field MUST be present if and only if FieldID4 is present.

Padding4 (variable): A number of bytes between 0 and 3, such that the offset from the start of the message to the end of this field is a multiple of 4. MUST be present if and only if FieldID4 is present. MUST be set to zero when sent and MUST be ignored on receipt.

FieldID5 (2 bytes): MUST be set to 0x009E.

Length5 (2 bytes): MUST be set to 12+(NumEntries*EntryLength).

NumEntries (2 bytes): The number of entries in the Already Flooded List. MUST be in the range 0 to 22.

ArrayLength (2 bytes): MUST be set to 8+(NumEntries*EntryLength).

ElementFieldType (2 bytes): MUST be set to 0x009D (IPV6_ENDPOINT).

EntryLength (2 bytes): MUST be set to 0x12 (18 bytes).

Already Flooded List (variable):  A list of IPV6_ENDPOINT structures for PNRP nodes that have seen this FLOOD message so far.