Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
From: Jendaipou Palmei <jendaipoupalmei@gmail.com>
To: chromatix99@gmail.com
Cc: Dave Taht <dave.taht@gmail.com>,
	dave@taht.net, cake@lists.bufferbloat.net
Subject: Re: [Cake] COBALT implementation in ns-3 with results under different traffic scenarios
Date: Tue, 27 Nov 2018 19:40:16 +0530	[thread overview]
Message-ID: <CAFLFmiXkV+Cb9M2aRP6FJtWUM0A-kHk_jDXLVwx_sfmiD3mOQQ@mail.gmail.com> (raw)
In-Reply-To: <CAFLFmiXga-sjk0T7f5yLofZRCzmYVOWDm4zRXggc_W-SzsDKRQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3989 bytes --]

Hello Jonathan,

We have made the changes in the code as suggested.

Here is the diff after making the changes:

https://github.com/Daipu/COBALT/commit/033db330287e2072bad94ac441f8aed774678a7d

Additionally, we have also updated the values of 'Pincrement' and
'Pdecrement' (parameters of BLUE) in ns-3 to match the ones used in the
Cake implementation in Linux.

Does the diff look correct?

Thanks and Regards,
Jendaipou Palmei
Shefali Gupta

On Sun, Nov 25, 2018 at 11:52 AM Jendaipou Palmei <jendaipoupalmei@gmail.com>
wrote:

> Thanks a lot for taking out time to review our code, Jonathan.
>
> We'll make the changes according to your suggestions and produce new plots.
>
> Thanks, Dave for the feedback. Yes, we will run the simulations with
> fq-codel once we fix the code as suggested by Jonathan, and also run
> simulations with higher bandwidths as you suggested.
>
> I'll upload the source code of the programs in the same repo, and give you
> the link.
>
> Regards,
> Jendaipou Palmei
> Shefali Gupta
>
> On Sat, Nov 24, 2018 at 8:29 AM Jonathan Morton <chromatix99@gmail.com>
> wrote:
>
>> >> This is possibly a correct result in your simulation!! - the periodic
>> >> throughput drop you are showing in cobalt at this bandwidth and rtt.
>> >> I'm happy to see cobalt kick in early on slow start but not happy to
>> >> see the periodic drop. Jon, do you have time for a code review?
>> >
>> > I looked at it briefly, but the code structure is different enough that
>> I need to sit down and study it carefully to figure out whether there are
>> any relevant differences.
>> >
>> > The throughput drops most likely occur because the TCPs become
>> synchronised and remain so under AQM action.  You can see that the
>> frequency of the system is lower in the later part of the COBALT run than
>> in the Codel run, but the same as Codel in the earlier part where
>> throughput drops don't occur.  But this shouldn't really occur with a
>> Codel-based AQM (as COBALT is), because a single mark is sufficient to tell
>> TCP to back off over one RTT.  An explanation might be if this
>> implementation of COBALT isn't running down correctly when deactivated, so
>> the mark frequency only rises while being turned on and off.  The run-down
>> behaviour is a major intentional difference between COBALT and reference
>> Codel.
>> >
>> > I'll look at the code more closely with that in mind.
>>
>> Okay, I've had a look - not quite line by line, but the parts I consider
>> important for the behaviour seen so far.
>>
>> There are a couple of small behavioural differences between your code and
>> mine, which should be corrected if the model is to accurately reflect the
>> prototype.  These are probably not relevant for the results shown so far,
>> but are likely show up on more aggressive tests involving unresponsive
>> traffic.
>>
>>  - On queue overflow, a tail drop is used to resolve it.  While not
>> technically part of COBALT, Cake performs head-dropping on queue overflow,
>> doing so from the longest queue, and I consider that to be best practice.
>> This gets the message to the offending sender ASAP, without having to
>> bubble up through the jammed queue first.  If the packets currently at the
>> head of the queue are smaller than the one being offered, you might need to
>> drop more than one to maintain the size invariant.
>>
>>  - The hard-drop flag for BLUE is set at the top of the control-law
>> function, and tested in order to bypass the Codel logic if already set.
>> This is not how the COBALT code operates; the BLUE logic should come last,
>> and the Codel logic run unconditionally.
>>
>> Everything else looks reasonably correct at first glance (though the
>> amount of boilerplate is epic).  I would recommend verifying that
>> CobaltQueueEmpty() actually gets called when appropriate though.  Without
>> it, I suspect that the run-down logic won't work as intended.
>>
>>  - Jonathan Morton
>>
>>
>
> --
> Yours Faithfully,
> Jendaipou Palmei
>

[-- Attachment #2: Type: text/html, Size: 5128 bytes --]

  reply	other threads:[~2018-11-27 14:10 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-22 13:57 Jendaipou Palmei
2018-11-22 15:32 ` Dave Taht
2018-11-23 10:52   ` Jendaipou Palmei
2018-11-23 16:05     ` Dave Taht
2018-11-23 16:43       ` Dave Taht
2018-11-23 17:13         ` Jonathan Morton
2018-11-24  2:59           ` Jonathan Morton
2018-11-25  6:22             ` Jendaipou Palmei
2018-11-27 14:10               ` Jendaipou Palmei [this message]
2018-11-27 14:36                 ` Jonathan Morton
2018-11-30 11:53                   ` Jendaipou Palmei
2018-11-30 11:58                     ` Jonathan Morton
2018-12-04 10:31                       ` Jendaipou Palmei
2018-12-04 14:39                         ` Dave Taht
2018-12-04 15:02                         ` Jonathan Morton
2018-12-04 15:20                           ` Dave Taht
2018-12-05 12:23                             ` Jendaipou Palmei
2018-12-05 14:23                               ` Jonathan Morton
2018-12-06 17:36                                 ` Jonathan Morton
2018-12-09  8:37                                   ` Jendaipou Palmei
2018-12-09 13:21                                     ` Jonathan Morton
2018-12-10 12:30                                       ` Jendaipou Palmei
2018-12-10 15:15                                         ` Jonathan Morton
2018-12-15 19:06                                           ` Shefali Gupta
2018-12-15 20:10                                             ` Dave Taht
2018-12-21 10:37                                               ` Shefali Gupta
2018-12-21 12:48                                                 ` Jonathan Morton
2019-01-21 11:35                                                   ` Shefali Gupta
2019-01-21 12:57                                                     ` Jonathan Morton
2019-01-23 16:19                                                       ` Shefali Gupta
2019-01-23 16:23                                                         ` Jonathan Morton
2019-01-23 17:27                                                           ` Shefali Gupta
2019-01-25  8:35                                                             ` Shefali Gupta
2019-01-25  9:16                                                               ` Jonathan Morton
2019-01-25 14:48                                                                 ` Shefali Gupta
2019-01-25 15:07                                                                   ` Jonathan Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/cake.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAFLFmiXkV+Cb9M2aRP6FJtWUM0A-kHk_jDXLVwx_sfmiD3mOQQ@mail.gmail.com \
    --to=jendaipoupalmei@gmail.com \
    --cc=cake@lists.bufferbloat.net \
    --cc=chromatix99@gmail.com \
    --cc=dave.taht@gmail.com \
    --cc=dave@taht.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox