Hello all, long time no see.
We got an errata report recently for RFC4340 (DCCP). Here's what we propose
to send to the RFC editor; any comments?
Thanks,
Eddie
Thanks to Alfred Hoenes for reporting several errors in RFC4340.
One technical omission has been found concerning the FGSR and FGSS
variables used to detect reordering of feature negotiation options. We
suggest adding the following paragraph to the end of Section 6.6.4, on Page
42.
FGSR and FGSS values must satisfy FGSR <= GSR and FGSS <= GSS, where
GSR and GSS are respectively the Greatest Sequence Numbers Received
by and Sent from this endpoint. These constraints MUST be enforced
even if GSR and GSS wrap, as they might in a long connection.
Implementations SHOULD thus run the following pseudocode after every
packet received or sent. (Wmax is the maximum allowed value for the
Sequence Window feature; see Section 7.5.2.)
If FGSR > GSR, then FGSR := GSR - Wmax;
If FGSS > GSS, then FGSS := GSS - Wmax.
Alternate implementations that correctly handle sequence number
wrapping are also acceptable.
Typos and editorial clarifications include:
In Section 6.6.4, Page 41, it says:
(Change and/or Confirm). This value is initialized to
ISR - 1.
It should say:
(Change and/or Confirm). This value is initialized to
ISR - 1, where ISR is the Initial Sequence Number Received
from the other endpoint. (ISR and other sequence number
variables are defined in Section 7.1.)
In Section 6.6.4, Page 41, it says:
reordering. FGSS is initialized to ISS.
It should say:
reordering. FGSS is initialized to ISS, the Initial
Sequence Number Sent by this endpoint.
In Section 7.5.2, Page 49, it says:
getting out sync after bursts of loss,
It should say:
getting out of sync after bursts of loss,
In Section 8.1.2, Page 60, it says:
intepreting the four-character result as a 32-bit big-endian
It should say:
interpreting the four-character result as a 32-bit big-endian
In Appendix A, Page 116, it says:
right to left. The implementation maintains five variables, aside
It should say:
right to left. The implementation maintains four variables, aside
And it says:
acknowledged in the buffer. This corresponds to the "head"
It should say:
acknowledged in the buffer. This corresponds to the "buf_head"
On Page 117, it says:
Ack Vector, it remembers four variables:
It should say:
Ack Vector, it remembers five variables:
In Section A.3, Page 121, it says:
HC-Sender packet 3, so the HC-Sender has now received HC-Receiver's
It should say:
HC-Sender packet 3, so the HC-Sender has now received the HC-Receiver's
In Section A.4, Page 122, it says:
a single acknowledgement number tells HC-Receiver how much ack
It should say:
a single acknowledgement number tells the HC-Receiver how much ack