[openib-general] Payload Length in first RMPP sent segment

Hal Rosenstock halr at voltaire.com
Mon Aug 29 06:14:46 PDT 2005


Hi,

On the RMPP send side, while the Payload Length field in the last
segment is clear that it indicates the number of valid bytes in
Transferred Data, there seems to be some ambiguity in the optional
Payload Length field in the first segment. I think it can work either
way but I also think the intent was to reflect the valid bytes. Maybe it
is this way to allow flexibility (choice in the implementation). What is
the correct interpretation ? Should I enter a comment on this ? Thanks.

-- Hal

IBA 1.2 p.775 line 37

In the first packet of an RMPP transfer (RMPPFlags.First=1),
PayloadLength may indicate the sum of the lengths, in bytes, of the
TransferredData fields in all packets of the entire multipacket
response; this is done by using a nonzero value for PayloadLength in the
first packet. 

IBA 1.2 p. 776 line 8

In the last packet of an RMPP transfer (RMPPFlags.Last=1), PayloadLength
indicates the number of valid bytes in the TransferredData field,
allowing data transfers that are not an integral multiple of the length
of the TransferredData field. A transfer terminates when either: (a) a
packet containing RMPPFlags.Last=1 is received; or (b) a nonzero
PayloadLength was given in the first packet of a transfer, and a packet
is received containing sufficient TransferredData bytes to equal or
exceed the PayloadLength originally provided. If case (b) occurs and
RMPPFlags.Last is not 1 for that packet, the Receiver sends an ABORT
packet with RMPPStatus of "Inconsistent Last and PayloadLength" and
terminates the transfer.





More information about the general mailing list