Subject: [6lo] Magnus Westerlund's No Objection on draft-ietf-6lo-fragment-recovery-12: (with COMMENT)

From: Magnus Westerlund via Datatracker <[email-masked]>
Date: Tue, 18 Feb 2020 07:20:27 -0800

Magnus Westerlund has entered the following ballot position for
draft-ietf-6lo-fragment-recovery-12: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)

Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.

The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-6lo-fragment-recovery/

----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

I am uncertain if there is security risk that is poorly noted. I don't think it
is significant as an intermediate node will in many other ways be able to
interfere with the transmission of the fragments. However, it appears to me
that the below formulation potentially allow a fragment sender to go into an
interesting state by acknowledging fragments prior to even have received them,
causing the sender to abort the transmission prematurely?

   When all the fragments are received, the receiving endpoint
   reconstructs the packet, passes it to the upper layer, sends an RFRAG
   Acknowledgment on the reverse path with a FULL bitmap, and arms a
   short timer, e.g., in the order of an average round-trip delay in the
   network.  As the timer runs, the receiving endpoint absorbs the
   fragments that were still in flight for that datagram without
   creating a new state.  The receiving endpoint abort the communication
   if it keeps going on beyond the duration of the timer.

Could the author please comment on this aspect of what would occur in the
fragment sender if it receives an RFRAG-ACK will full bitmap prior to having
send all fragments, and also what would happen if this is received very shortly
after having sent the last fragment?