https://redmine.named-data.net/https://redmine.named-data.net/favicon.ico?14759811232014-12-22T14:05:54ZNDN project issue tracking systemNFD - Bug #2317: NDNLP totalLength exceeds MTU causing IP fragmentationhttps://redmine.named-data.net/issues/2317?journal_id=69132014-12-22T14:05:54Zsusmit shannigrahisusmit.shannigrahi@gmail.com
<ul><li><strong>Category</strong> set to <i>Faces</i></li></ul> NFD - Bug #2317: NDNLP totalLength exceeds MTU causing IP fragmentationhttps://redmine.named-data.net/issues/2317?journal_id=69142014-12-22T14:49:55ZJunxiao Shi
<ul><li><strong>Assignee</strong> set to <i>Junxiao Shi</i></li><li><strong>Priority</strong> changed from <i>Normal</i> to <i>Low</i></li><li><strong>Target version</strong> set to <i>v0.3</i></li></ul><p>The mtu passed to Slicer constructor shall cover NDNLP header, but does not cover IP header or UDP header.<br><br>
If you are running NDNLP over a UDP tunnel, the overhead of IP header and UDP header must be deducted before constructing Slicer.<br><br>
I'll update Doxygen to reflect this.</p>
<p>Another problem is, <code>Slicer_encodeFragment</code> shouldn't create a fragment (NDNLP header and payload) that exceeds mtu.<br>
This bug is caused by an incorrect assumption in <code>Slicer::estimateOverhead</code>: overhead is computed with assumption that FragIndex and FragCount are encoded as fixed length, but they have been changed to variable length. This would cause a maximum different of 14 octets.</p>
<p>However, this Bug shouldn't be caused by this problem, because <a href="https://github.com/named-data/NFD/blob/ac7b437cdbbdc59ae6c0ccce2dea53727e5f0e4b/daemon/face/ndnlp-slicer.cpp#L121" class="external">line 121</a> has an assertion that fragment size (with NDNLP header but not IP header or UDP header) does not exceed MTU.</p>
NFD - Bug #2317: NDNLP totalLength exceeds MTU causing IP fragmentationhttps://redmine.named-data.net/issues/2317?journal_id=69222014-12-23T07:02:18ZDavide Pesavento
<ul></ul><p>Agreed, this is not an NDNLP bug. You should adjust the MTU passed to <code>Slicer</code> constructor according to the lower layer protocols you're using. Maybe the constructor argument should be renamed to <code>maxFragmentSize</code> to avoid confusion.</p>
<p>The overhead estimation bug should be fixed regardless.</p>
NFD - Bug #2317: NDNLP totalLength exceeds MTU causing IP fragmentationhttps://redmine.named-data.net/issues/2317?journal_id=70852015-01-05T09:58:24ZJunxiao Shi
<ul><li><strong>Status</strong> changed from <i>New</i> to <i>In Progress</i></li></ul> NFD - Bug #2317: NDNLP totalLength exceeds MTU causing IP fragmentationhttps://redmine.named-data.net/issues/2317?journal_id=70862015-01-05T10:15:02ZJunxiao Shi
<ul><li><strong>Status</strong> changed from <i>In Progress</i> to <i>Code review</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li></ul><p><a href="http://gerrit.named-data.net/1588">http://gerrit.named-data.net/1588</a></p>
NFD - Bug #2317: NDNLP totalLength exceeds MTU causing IP fragmentationhttps://redmine.named-data.net/issues/2317?journal_id=71282015-01-06T19:49:10ZJunxiao Shi
<ul><li><strong>Status</strong> changed from <i>Code review</i> to <i>Closed</i></li></ul>