Draft: draft-ietf-taps-interface

Commentary: , . Partially addresses . 
 sec 7.2 perhaps I 'm not thinking of this correctly , but should there be a way to query the peer - offered user timeout ? 
 This looks protocol - specific ( it 's not a generic transport function ) . QUIC could let you query it in a protocol - specific property . Proposing moving to the QUIC mapping doc . 
 I agree with addressing this in the QUIC mapping doc , but for clarification : this is protocol - specific already ( it 's about a protocol - specific TCP property ) , and I a clarification that the API calls reflect the API specified in Section 3 of RFC 5482 ( which does n't include this functionality ) . = I agree that allowing to query the peer 's UTO might be useful , but it 's probably not worth adding more text for this , as I also suspect that nobody will implement this for TCP anyway ( even the underlying logic from RFC 5482 is n't widely available either AFAIK ) . If someone does , they are still free to allow querying whatever they like ... but IMO , we should n't make this document longer with more protocol - specific elements than we absolutely need to include . 
 Can we close the Peer user timeout with no - action ? 
 I temporarily gave this a " discuss " label to see if it provokes people to have a 1 - minute chat about closing this . This did n't happen , so now I just closed it . 
 sec 7.1.8 This section is missing a reference to minSendRate and minRecvRate 
 sec 6.2 " After Stop ( ) is called , the  can be disposed of . " I do n't understand the difference between calling ( ) and simply disposing of the object . Does this imply that there is a ( ) that allows a configured listener to resume ? 
 We should just not talk about " disposing " here . Just remove the sentence . 
 Object disposal implies a language with synchronous destruction , something we ca n't assume . For something garbage collected , you 'd need an explicit close method because you do n't know when the object will be destroyed . 
 sec 5.2.9 It would be helpful to say " Applications that neither prohibit nor require congestion should query the result and disable their own congestion control if present in the transport " 
 Interesting , but we need to be careful in what we say . It seems safe , but not performant to do CC at multiple layers , and if it 's done at a lower layer performance might be improved by not replicating the function at a higher layer ... 
 Link to UDP guidelines document . Just mention that there are performance implications of multiple CC loops ; do n't just say " disable CC " .
Paragraph (version A):
This property specifies whether the application would like the
Connection to be congestion controlled or not.  Note that if a
Connection is not congestion controlled, an application using such a
Connection SHOULD itself perform congestion control in accordance
with RFC2914, RFC2119.  Also note that reliability is usually
combined with congestion control in protocol implementations,
rendering "reliable but not congestion controlled" a request that is
unlikely to succeed.
Paragraph (version B):
This property specifies whether the application would like the
Connection to be congestion controlled or not.  Note that if a
Connection is not congestion controlled, an application using such a
Connection SHOULD itself perform congestion control in accordance
with RFC8085, RFC2914, RFC2119.  Also note that reliability is
usually combined with congestion control in protocol implementations,
rendering "reliable but not congestion controlled" a request that is
unlikely to succeed.  If the Connection is congestion controlled,
performing additional congestion control in the application can have
negative performance implications.
Paragraph (version A):
After calling Stop(), the Listener object can be disposed of.
Paragraph (version B):
Listening continues until the global context shuts down, or until the
Stop action is performed on the Listener object.
Paragraph (version A):
This property specifies an upper-bound rate that a transfer is not
expected to exceed (even if flow control and congestion control allow
higher rates), and/or a lower-bound rate below which the application
does not deem a will be useful.  These are specified in bits per
second.  The special value "Unlimited" indicates that no bound is
specified.
Paragraph (version B):
This property specifies an upper-bound rate that a transfer is not
expected to exceed (even if flow control and congestion control allow
higher rates), and/or a lower-bound rate below which the application
does not deem it will be useful.  These are specified in bits per
second.  The special value "Unlimited" indicates that no bound is
specified.
Paragraph (version A):
All of the below properties are optional (e.g., it is possible to
specify "User Timeout Enabled" as true, but not specify an Advertised
User Timeout value; in this case, the TCP default will be used).
Paragraph (version B):
All of the below properties are optional (e.g., it is possible to
specify "User Timeout Enabled" as true, but not specify an Advertised
User Timeout value; in this case, the TCP default will be used).
These properties reflect the API extension specified in Section 3 of
RFC5482.