Bug #1961
closedNccStrategy remembers suboptimal upstream
100%
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:
- send Interests from A to D
- 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,
- When first Data comes back that satisfies the PIT entry, the incoming face of that Data is remembered.
- The PIT entry is deleted as soon as it's satisfied.
- When second Data comes back, it's discarded as unsolicited.
In NFD,
- When first Data comes back that satisfies the PIT entry, the incoming face of that Data is remembered.
- The PIT entry is kept, and will be deleted after straggler timer.
- 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.
Updated by Junxiao Shi about 10 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.
Updated by Junxiao Shi about 10 years ago
- Status changed from New to In Progress
Updated by Junxiao Shi about 10 years ago
- Status changed from In Progress to Code review
- % Done changed from 0 to 70
Code is uploaded. Developer Guide needs an update.
Updated by Junxiao Shi about 10 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.