Proposed NN Feature handling modification

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



All,

In putting together the set of patches that I just submitted, I noticed
a less than desirable by-product of the way NN features are currently
handled. However, the reasons for handling them in this way are spelled
out in one of the function comments, so before submitted a patch to
change that, I figured I should throw my findings out on the list.

Right now, the the sender starts using the new value for an NN option as
soon as that option is sent (really, as soon as
dccp_feat_signal_nn_change is called). The justification presented in a
comment is as follows: "values are activated immediately after
validation, i.e. we don't wait for the Confirm: either the value is
accepted by the peer (and then the waiting is futile), or it is not
(Reset or empty Confirm). We don't accept empty Confirms - transmitted
values are validated, and the peer "MUST accept any valid value" (RFC
4340, 6.3.2)."

However, what I have noticed is that this causes a potential problem
with the Ack Ratio Feature. Specifically, this means that for 1/2 RTT
the sender thinks each Ack represents a different number of packets than
the receiver actually means each ack to represent. This is the time
during which that feature negotiation travels between the sender and the
receiver.

In practice, the Appropriate Byte Counting implemented in CCID 2
prevents any real problem, but a similar situation could crop up with
other NN options.

My recommendation is to wait until the Confirm has been received to
alter the value of an NN feature. This eliminates the problem above and
has the advantage that it follows RFC 4340 (section 6.6.1). Further,
making this change should require little code change.

Comments?


Samuel Jero
Internetworking Research Group
Ohio University

Attachment: signature.asc
Description: This is a digitally signed message part


[Index of Archives]     [Linux Kernel]     [IETF DCCP]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux