Project

General

Profile

Bug #1961

NccStrategy remembers suboptimal upstream

Added by Junxiao Shi about 5 years ago. Updated about 5 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
Forwarding
Target version:
Start date:
09/02/2014
Due date:
% Done:

100%

Estimated time:
2.00 h

Description

Environment:

A---B
|   |
C---D
  • consumer on A, producer on D
  • A-B-D link RTT is 10ms
  • A-C-D link RTT is 15ms

Steps to reproduce:

  1. send Interests from A to D
  2. observe the behavior of NCC strategy

Expected: A-B-D remains the preferred path; A-C-D may be explored but doesn't become the preferred path

Actual: A-C-D becomes the preferred path after it's explored and Data comes back

This bug is caused by:

In ccnd,

  1. When first Data comes back that satisfies the PIT entry, the incoming face of that Data is remembered.
  2. The PIT entry is deleted as soon as it's satisfied.
  3. When second Data comes back, it's discarded as unsolicited.

In NFD,

  1. When first Data comes back that satisfies the PIT entry, the incoming face of that Data is remembered.
  2. The PIT entry is kept, and will be deleted after straggler timer.
  3. When second Data comes back, the strategy is notified, and remembers the incoming face.

NCC strategy incorrectly assumes the incoming Data is from the fastest upstream, causing the bug.

History

#1 Updated by Junxiao Shi about 5 years ago

One cause of NCC strategy's incorrect assumption is: the function name of before satisfy Interest trigger is Strategy::beforeSatisfyPendingInterest.

This function name suggests that the PIT entry is pending, ie not yet satisfied.

I suggest renaming this function as Strategy::beforeSatisfyInterest to match the trigger name, and eliminate the confusion.

#2 Updated by Junxiao Shi about 5 years ago

  • Status changed from New to In Progress

#3 Updated by Junxiao Shi about 5 years ago

  • Status changed from In Progress to Code review
  • % Done changed from 0 to 70

Code is uploaded. Developer Guide needs an update.

#4 Updated by Junxiao Shi about 5 years ago

  • Status changed from Code review to Closed
  • % Done changed from 70 to 100

Developer Guide is updated to reflect the change in note-1.

Also available in: Atom PDF