2.2.41 DPSP_MSG_PACKET2_DATA

The DPSP_MSG_PACKET2_DATA packet contains player-to-player data that is part of a larger message that does not fit within the maximum transmission unit (MTU) size of the transport. It MUST be acknowledged with a DPSP_MSG_PACKET2_ACK (section 2.2.40) message.

Once all the DPSP_MSG_PACKET2_DATA packets for a particular message have been received (as identified by the GuidMessage field), they are assembled into one contiguous message that is the concatenation of all the PacketData fields of all the associated DPSP_MSG_PACKET2_DATA messages. If the message was sent without reliability, then, after a 15-second period during which no DPSP_MSG_PACKET2_DATA packets are received for a particular message, the entire message is discarded.

This assembly mechanism for large messages is used both for internal system messages and for user messages. The packet breakup and assembly system does not recognize the contents of the payload. Once the payload is reassembled, the payload is re-indicated to the lowest level of the receive path as any other received message.


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

DPSP_MSG_HEADER (28 bytes)

...

...

GuidMessage (16 bytes)

...

...

PacketIndex

DataSize

Offset

TotalPackets

MessageSize

PacketOffset

PacketData (variable)

...

DPSP_MSG_HEADER (28 bytes): Message header for this packet. The Command Value member of this field MUST be set to 48 (0x30).

GuidMessage (16 bytes): MUST be set to an identifier that uniquely identifies the message to which the packet belongs.

PacketIndex (4 bytes): MUST be set to the index of the packet in the series of packets that make up the message.

DataSize (4 bytes): MUST be set to the total size, in octets, of the data in the packet.

Offset (4 bytes): MUST be set to the offset of this packet in the larger message to be transmitted.

TotalPackets (4 bytes): MUST be set to the total number of packets that are used to transmit this message.

MessageSize (4 bytes): MUST be set to the size of the buffer, in octets, that will contain the entire message.

PacketOffset (4 bytes): MUST be set to the offset, in octets, into the message of the actual packet data.

PacketData (variable): Array of DataSize bytes that contains the packet data.