Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(2)

Issue 270540044: Queue rework

Can't Edit
Can't Publish+Mail
Start Review
Created:
8 years, 6 months ago by n.p
Modified:
8 years, 4 months ago
CC:
ns-3-reviews_googlegroups.com
Visibility:
Public.

Description

Queue rework. From RELEASE_NOTES: (network) The queue subsystem has been refactored for the following improvements: 1) Unified interface for proper queue sizing, through attributes and trace sources shared by all Queue subclasses. 2) An indicator on the number of packets dropped due to full queue, has been added. Check queue.rst and CHANGES.html to see a list of changed things.

Patch Set 1 #

Patch Set 2 : Bug on calling drop #

Patch Set 3 : update #

Patch Set 4 : Added separate trace for drop #

Total comments: 20

Patch Set 5 : Modified for comments #

Total comments: 11

Patch Set 6 : Traces updated, english corrected, documentation improvements #

Unified diffs Side-by-side diffs Delta from patch set Stats (+867 lines, -593 lines) Patch
M CHANGES.html View 1 2 3 4 5 3 chunks +29 lines, -0 lines 0 comments Download
M RELEASE_NOTES View 1 2 3 4 5 1 chunk +4 lines, -0 lines 0 comments Download
M examples/tcp/tcp-variants-comparison.cc View 3 chunks +1 line, -5 lines 0 comments Download
M src/internet/doc/codel.rst View 4 chunks +55 lines, -22 lines 0 comments Download
M src/internet/model/codel-queue.h View 7 chunks +24 lines, -65 lines 0 comments Download
M src/internet/model/codel-queue.cc View 1 2 3 4 5 16 chunks +17 lines, -111 lines 0 comments Download
M src/internet/test/codel-queue-test-suite.cc View 5 chunks +19 lines, -8 lines 0 comments Download
M src/network/doc/queue.rst View 1 2 2 chunks +37 lines, -9 lines 0 comments Download
M src/network/examples/red-tests.cc View 1 2 3 4 5 5 chunks +9 lines, -9 lines 0 comments Download
M src/network/test/drop-tail-queue-test-suite.cc View 1 2 3 4 1 chunk +139 lines, -10 lines 0 comments Download
M src/network/test/error-model-test-suite.cc View 1 2 2 chunks +3 lines, -0 lines 0 comments Download
M src/network/test/red-queue-test-suite.cc View 11 chunks +108 lines, -29 lines 0 comments Download
M src/network/utils/drop-tail-queue.h View 2 chunks +8 lines, -25 lines 0 comments Download
M src/network/utils/drop-tail-queue.cc View 5 chunks +8 lines, -68 lines 0 comments Download
M src/network/utils/queue.h View 1 2 3 4 5 7 chunks +171 lines, -65 lines 0 comments Download
M src/network/utils/queue.cc View 1 2 3 4 5 8 chunks +193 lines, -21 lines 0 comments Download
M src/network/utils/red-queue.h View 7 chunks +15 lines, -49 lines 0 comments Download
M src/network/utils/red-queue.cc View 21 chunks +26 lines, -96 lines 0 comments Download
M src/test/ns3tcp/ns3tcp-state-test-suite.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 10
n.p
This is my attempt to rewrite queue subsystem to offer a sound API to users.
8 years, 6 months ago (2015-11-06 16:01:48 UTC) #1
Tom Henderson
I'm in favor of improving the Queue class along these lines; two main comments/questions: - ...
8 years, 4 months ago (2015-12-19 02:05:17 UTC) #2
n.p
On 2015/12/19 02:05:17, Tom Henderson wrote: > I'm in favor of improving the Queue class ...
8 years, 4 months ago (2015-12-20 13:55:55 UTC) #3
n.p
Updated the submission; replies to comments inside. https://codereview.appspot.com/270540044/diff/60001/CHANGES.html File CHANGES.html (right): https://codereview.appspot.com/270540044/diff/60001/CHANGES.html#newcode114 CHANGES.html:114: <li>Queue sizing ...
8 years, 4 months ago (2016-01-02 14:49:13 UTC) #4
n.p
Little note: I cannot run any test under src/network. $ ./test.py -s packet The test ...
8 years, 4 months ago (2016-01-02 14:51:09 UTC) #5
Stefano Avallone
I have looked at the proposed changes to queue.{h,cc} and left some comments. https://codereview.appspot.com/270540044/diff/80001/src/network/utils/queue.cc File ...
8 years, 4 months ago (2016-01-03 22:31:46 UTC) #6
Tom Henderson
On 2016/01/02 14:51:09, n.p wrote: > Little note: I cannot run any test under src/network. ...
8 years, 4 months ago (2016-01-04 04:07:54 UTC) #7
Tom Henderson
https://codereview.appspot.com/270540044/diff/60001/src/network/utils/queue.cc File src/network/utils/queue.cc (right): https://codereview.appspot.com/270540044/diff/60001/src/network/utils/queue.cc#newcode292 src/network/utils/queue.cc:292: * Enqueue (p) will fail, because it would exceed ...
8 years, 4 months ago (2016-01-04 04:08:32 UTC) #8
Tom Henderson
On 2016/01/03 22:31:46, Stefano Avallone wrote: > > https://codereview.appspot.com/270540044/diff/80001/src/network/utils/queue.cc#newcode390 > src/network/utils/queue.cc:390: m_traceDequeue (packet); > I ...
8 years, 4 months ago (2016-01-04 04:17:55 UTC) #9
n.p
8 years, 4 months ago (2016-01-11 09:38:33 UTC) #10
On 2016/01/04 04:17:55, Tom Henderson wrote:
> I do not have a strong opinion about which way to go other than that we are
> consistent and document it well.  If we follow that internet-draft that I
cited,
> there are seemingly no "inside" drops; a drop either occurs before Enqueue or
> after Dequeue.  So if we follow that convention, it seems that the finer
> granularity trace sources may need to be named something like
> "DropBeforeEnqueue" and "DropAfterDequeue".  If we keep the trace sources
named
> "InsideDrop" and "OverflowDrop", then I think that we should probably not
> dequeue also on an inside drop.

Thank you all for the suggestion. I've replaced IsFull with 

uint32_t Available (void) const (used also in Tcp{Tx,Rx}Buffer) which tells the
available space inside the queue.

I renamed the traces in DropBeforeEnqueue and DropAfterEnqueue, to stay
"compatible" with both the RFC and what you said. In particular, the following
conditions apply now:

 - # Enqueue = # Dequeue + # DropAfterEnqueue
 - # Drop    = # DropBeforeEnqueue + # DropAfterEnqueue

And so, after calling "DropAfterEnqueue" (the previous DropInQueue) I don't call
m_traceDequeue anymore.

I corrected the english, and added a bit of documentation on these new traces.
Should they added to RELEASE_NOTES or CHANGES.html?

Thank you again
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b