Hi Mirja, Sorry I must have misinterpreted your reply. I interpreted the min_ack_delay to be nothing more than the lower bound a receiver is willing to set its max_ack_delay to be. I.e. it's telling its peer to not send ACK_FREQUENCY frames with an update max ACK delay value lower than it specifies. In a sense it's a "min update max ACK delay", which is rather wordy but more precise. Perhaps we should try to clarify the name or the text describing it.
Thanks, Matt On Thu, Apr 8, 2021, 1:44 AM Mirja Kuehlewind <[email protected]> wrote: > Hi Matt, > > your description below does not mention min_ack_delay and that's the part > I was wondering about. The implementation as you explained below is also > what I would expect but it less clear to me what to do with the values > provided by min_ack_delay. > > Mirja > > > On 07.04.21, 21:00, "Matt Joras" <[email protected]> wrote: > > Hi Mirja, > > Below is my interpretation though since we are having this discussion > perhaps this needs to be made clearer in the text. > > On Wed, Apr 7, 2021 at 10:06 AM Mirja Kuehlewind > <[email protected]> wrote: > > > > Hi Ian, > > > > > > > > see blow. > > > > > > > > From: Ian Swett <[email protected]> > > Date: Wednesday, 7. April 2021 at 18:59 > > To: Mirja Kuehlewind <[email protected]> > > Cc: Matt Joras <[email protected]>, IETF QUIC WG <[email protected]> > > Subject: Re: Call For Adoption QUIC: delayed-ack > > > > > > > > Hi Mirja, > > > > > > > > min_ack_delay is used to limit the minimum ack delay you can request > in the ACK_FREQUENCY frame: "Any value smaller than the "min_ack_delay" > advertised by this endpoint is invalid." > https://tools.ietf.org/html/draft-iyengar-quic-delayed-ack-02#section-4. > After re-reading, possibly "this endpoint" is not specific enough? > > > > > > > > I was missing further guidance on how to implement that. Usually if > I have a packet tolerance of e.g. 2, I would just ack every other packet. > Am I supposed to delay my ack if the last was ACK was send to close by? > Would I need to use the delayed ACK timer for that or a separate timer? > Didn’t think that through but thought it would be good to have more > guidance in the draft. > > > > The ACK_FREQUENCY frame essentially just gives a sender a mechanism to > alter the otherwise hard coded behavior of the receiver and otherwise > does nothing to change the logic. In QUIC we have 3 things which can > affect ACK frequency : > 1. "packet tolerance" (I really wish we could come up with a better > term for this), which is defaulted to two, or every other packet. > 2. Max ack delay, settable with a default of 25ms. > 3. Out of order packets, via a threshold > > An ACK is supposed to be sent when any of the above conditions are > met. The same is true when using the ACK_FREQUENCY frame, except that > the conditions can change during a connection. The packet tolerance > and max ACK delay are dynamic instead of static, so the logic should > be identical except for allowing these values to change. The out of > order packets behavior is also controllable in a binary fashion, > effectively removing the condition entirely. > > > > Mirja > > > > > > > > > > > > > > > > > > > > 2) I filed > https://protect2.fireeye.com/v1/url?k=826ab963-ddf18063-826af9f8-86fc6812c361-c26453d8be9cda19&q=1&e=28123d83-0cab-4534-b339-c4c176ece256&u=https%3A%2F%2Fgithub.com%2Fjanaiyengar%2Fack-frequency%2Fissues%2F48 > for this. > > > > > > > > Thanks for reading, Ian > > > > > > > > On Wed, Apr 7, 2021 at 9:56 AM Mirja Kuehlewind <mirja.kuehlewind= > [email protected]> wrote: > > > > Hi, > > > > I know I'm too late but I also support adoption. > > > > But now that I found the time to read the draft again, I also have > two comment: > > > > 1) It seems like min_ack_delay is "only" used for negotiation > because the draft does not specify any further what to do with this value. > Isn't either min_ack_delay or Packet Tolerance sufficient, e.g. what if you > have a packet tolerance of 1 but a min_ack_delay of > 0? > > > > 2) For ECN, you don't need to send an immediate ACK for each CE. > Immediate ACKs are most important when the codepoint switches to CE, but > then, if multiple CEs in a row are received, you can bundle the ACK > information. See also > https://tools.ietf.org/html/draft-ietf-tcpm-accurate-ecn-14#section-3.2.2.5.1 > > (Note that we are still working on that section for AccECN but I > think any changes are only relevant for specifics of TCP) > > > > Mirja > > > > > > > > On 30.03.21, 21:39, "QUIC on behalf of Matt Joras" < > [email protected] on behalf of [email protected]> wrote: > > > > Hello all, > > > > Now that we have been rechartered we can move forward with > adopting > > new items. It is the opinion of the chairs that the delayed-ack > > draft[1] has sufficient interest from and relevance to the WG to > be > > formally adopted. This email is the call to do so. There are > already > > several interoperating implementations of the current draft. > Please > > reply to this email with any comments, the call will run through > April > > 6th. > > > > Thanks, > > QUIC Chairs > > > > [1] > https://datatracker.ietf.org/doc/draft-iyengar-quic-delayed-ack/ > > > > Matt Joras > >
