Subject: [tcpm] [Technical Errata Reported] RFC7323 (5586)

From: RFC Errata System <[email-masked]>
Date: Thu, 27 Dec 2018 11:47:31 -0800 (PST)

The following errata report has been submitted for RFC7323,
"TCP Extensions for High Performance".

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata/eid5586

--------------------------------------
Type: Technical
Reported by: Marco Caspers <[email-masked]>

Section: 2.3

Original Text
-------------
Since the max window is 2^S (where S is the scaling shift count)
   times at most 2^16 - 1 (the maximum unscaled window), the maximum
   window is guaranteed to be < 2^30 if S <= 14.  Thus, the shift count
   MUST be limited to 14 (which allows windows of 2^30 = 1 GiB).  If a
   Window Scale option is received with a shift.cnt value larger than
   14, the TCP SHOULD log the error but MUST use 14 instead of the
   specified value.  This is safe as a sender can always choose to only
   partially use any signaled receive window.  If the receiver is
   scaling by a factor larger than 14 and the sender is only scaling by
   14, then the receive window used by the sender will appear smaller
   than it is in reality.

Corrected Text
--------------
Since the max window is 2^S (where S is the scaling shift count)
   times at most 2^16 - 1 (the maximum unscaled window), the maximum
   window is guaranteed to be < 2^30-2^14 if S <= 14.  Thus, the shift
 count
   MUST be limited to 14 (which allows windows of 2^30-2^14 ~ 1 GiB).
  If a
   Window Scale option is received with a shift.cnt value larger than
   14, the TCP SHOULD log the error but MUST use 14 instead of the
   specified value.  This is safe as a sender can always choose to only
   partially use any signaled receive window.  If the receiver is
   scaling by a factor larger than 14 and the sender is only scaling by
   14, then the receive window used by the sender will appear smaller
   than it is in reality.

Notes
-----
Shifting is inserting zeroes on the right hand side. Thus for S = 14 the 14 right most bits are zero and thus the calculation 2^30 is invalid for the guaranteed maximum window size.

Correct calculation formulae is (2^30 - 1) - (2^14 -1).
Which can be simplified to 2^30 - 2^14.

Instructions:
-------------
This erratum is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party  
can log in to change the status and edit the report, if necessary. 

--------------------------------------
RFC7323 (draft-ietf-tcpm-1323bis-21)
--------------------------------------
Title               : TCP Extensions for High Performance
Publication Date    : September 2014
Author(s)           : D. Borman, B. Braden, V. Jacobson, R. Scheffenegger, Ed.
Category            : PROPOSED STANDARD
Source              : TCP Maintenance and Minor Extensions
Area                : Transport
Stream              : IETF
Verifying Party     : IESG