Jonathan Morton <[email protected]> writes: >> On 6 May, 2020, at 9:43 pm, Avakash bhat <[email protected]> wrote: >> >> We are trying to implement the ACK filtering module of CAKE in ns-3 (Network >> Simulator). > > Ah yes. Sorry I didn't respond to the introduction earlier - we were right > in the middle of preparing for an IETF virtual meeting. The debris is still > falling from orbit… > >> We had a question on the working of ack filtering. >> If an incoming ack which can replace an eligible ack in the queue is about >> to be enqueued, do we replace the ack in the queue with the incoming ack >> or do we enqueue the ack to the tail of the queue and remove the eligible >> ack from the queue? > > That sounds like an implementation detail. But what we do in Cake is > to simply enqueue all the packets, and deal with everything > complicated on dequeue.
The ACK filter is run on enqueue, actually :) > At that point, we check whether the two packets at the head of the > queue are acks for the same flow, and if so, we further check whether > the information in the first packet is redundant given the presence of > the second packet. If there is information in the first packet that is > not also provided by the second packet, the first packet is delivered. > Otherwise the first packet is dropped, and the second packet moves to > the head of the queue. This process may repeat several times if there > are several consecutive, redundant acks in the queue. > > The important part is the set of rules determining whether the ack is > redundant. Yes, indeed. Please feel free to go through cake_ack_filter() in sch_cake.c and make sure you get all those edge cases in your eligibility check... -Toke _______________________________________________ Cake mailing list [email protected] https://lists.bufferbloat.net/listinfo/cake
