[Cake] Query on ACK

Toke Høiland-Jørgensen toke at redhat.com
Wed May 6 15:13:15 EDT 2020


Jonathan Morton <chromatix99 at gmail.com> writes:

>> On 6 May, 2020, at 9:43 pm, Avakash bhat <avakash261 at gmail.com> 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



More information about the Cake mailing list