https://redmine.named-data.net/https://redmine.named-data.net/favicon.ico?14759811232019-11-27T15:40:59ZNDN project issue tracking systemNFD - Feature #5059: Congestion Detection: Monitor NIC incoming buffer queue https://redmine.named-data.net/issues/5059?journal_id=262202019-11-27T15:40:59ZJunxiao Shi
<ul></ul><blockquote>
<p>often NFD processing speed is the performance bottleneck</p>
</blockquote>
<p>In a local area network, this occurs more than <em>often</em>.</p>
<blockquote>
<p>if the incoming queue exceeds some threshold to put in a congestion mark</p>
</blockquote>
<p>What's the algorithm for congestion signalling? Can this use the same "sojourn time" logic like the egress queue, or does this need a different logic?</p>
NFD - Feature #5059: Congestion Detection: Monitor NIC incoming buffer queue https://redmine.named-data.net/issues/5059?journal_id=262212019-11-27T17:01:47ZAnonymous
<ul></ul><p>Junxiao Shi wrote:</p>
<blockquote>
<blockquote>
<p>if the incoming queue exceeds some threshold to put in a congestion mark</p>
</blockquote>
<p>What's the algorithm for congestion signalling? Can this use the same "sojourn time" logic like the egress queue, or does this need a different logic?</p>
</blockquote>
<p>Good question. Certainly it makes sense to try out the CoDel sojourn time logic for the current queue size (w). </p>
<p>Moreover, I think it's a good idea to put in one congestion mark for every dropped packet, in order to signal faster than waiting for a timeout. </p>
<p>Lastly, if the marked packet would be in Interest, one should instead note this in the PIT entry and only mark the returning Data packet. This logic is described in the PCON paper <a href="https://named-data.net/publications/practical_congestion_control_scheme/">https://named-data.net/publications/practical_congestion_control_scheme/</a></p>
NFD - Feature #5059: Congestion Detection: Monitor NIC incoming buffer queue https://redmine.named-data.net/issues/5059?journal_id=262262019-11-27T21:25:48ZDavide Pesavento
<ul><li><strong>Category</strong> set to <i>Faces</i></li><li><strong>Start date</strong> deleted (<del><i>11/27/2019</i></del>)</li></ul> NFD - Feature #5059: Congestion Detection: Monitor NIC incoming buffer queue https://redmine.named-data.net/issues/5059?journal_id=262272019-11-27T21:46:45ZDavide Pesavento
<ul></ul><p>Klaus Schneider wrote:</p>
<blockquote>
<p>although only in the version available in Ubuntu 18.04 and later</p>
</blockquote>
<p><code>SK_MEMINFO_DROPS</code> was added in Linux 4.7</p>
<blockquote>
<p>We could query this information with the netlink API, however it is quite complicated to use. </p>
<p>For example, the ss tool itself uses this API, and takes up over 5000 lines of code. <a href="https://github.com/shemminger/iproute2/blob/master/misc/ss.c">https://github.com/shemminger/iproute2/blob/master/misc/ss.c</a></p>
</blockquote>
<p>Well, netlink can be tricky, yes, but 5000 lines are for the entire <code>ss</code> tool. We just need <code>SK_MEMINFO_DROPS</code>, which should "only" take a few hundreds lines. And ndn-cxx already has some infrastructure to deal with netlink sockets and messages (used by NetworkMonitor) which hopefully can be reused.</p>
NFD - Feature #5059: Congestion Detection: Monitor NIC incoming buffer queue https://redmine.named-data.net/issues/5059?journal_id=262282019-11-27T21:53:39ZDavide Pesavento
<ul></ul><p>Apparently, a few kernel versions later, an (undocumented?) socket option was <a href="https://patchwork.ozlabs.org/patch/741147/" class="external">introduced</a>. It returns the same information without having to deal with netlink (and it's only one syscall).</p>
NFD - Feature #5059: Congestion Detection: Monitor NIC incoming buffer queue https://redmine.named-data.net/issues/5059?journal_id=262292019-11-29T11:45:16ZAnonymous
<ul></ul><p>Davide Pesavento wrote:</p>
<blockquote>
<p>Klaus Schneider wrote:</p>
<blockquote>
<p>although only in the version available in Ubuntu 18.04 and later</p>
</blockquote>
<p><code>SK_MEMINFO_DROPS</code> was added in Linux 4.7</p>
</blockquote>
<p>Only counting Ubuntu LTS versions, what I said is still correct :) </p>
<p>Yeah, you can get the feature in Ubuntu 16.10 -- 17.10 as well, but they are no longer supported.</p>
<blockquote>
<p>Apparently, a few kernel versions later, an (undocumented?) socket option was introduced -- <a href="https://patchwork.ozlabs.org/patch/741147/">https://patchwork.ozlabs.org/patch/741147/</a>. It > returns the same information without having to deal with netlink (and it's only one syscall).</p>
</blockquote>
<p>This looks promising. Could make implementing it much easier. </p>
<blockquote>
<p>Suggested by Eric Dumazet.</p>
</blockquote>
<p>FYI This is the same guy who implemented the CoDel AQM in the Linux kernel.</p>
NFD - Feature #5059: Congestion Detection: Monitor NIC incoming buffer queue https://redmine.named-data.net/issues/5059?journal_id=281692023-12-08T19:16:43ZDavide Pesavento
<ul><li><strong>Tags</strong> set to <i>needs-discussion</i></li><li><strong>Parent task</strong> deleted (<del><i>#1624</i></del>)</li></ul> NFD - Feature #5059: Congestion Detection: Monitor NIC incoming buffer queue https://redmine.named-data.net/issues/5059?journal_id=281722023-12-08T19:16:57ZDavide Pesavento
<ul><li><strong>Related to</strong> <i><a class="issue tracker-2 status-5 priority-2 priority-default closed parent" href="/issues/1624">Feature #1624</a>: Design and Implement Congestion Control</i> added</li></ul>