Project

General

Profile

Feature #1756

Let strategy pick outgoing Interest packet

Added by Alex Afanasyev over 7 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Forwarding
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
6.00 h

Description

Pick outgoing Interest packet step of outgoing Interest pipeline should be moved to strategy.

Strategy can pick an Interest packet from one of the InRecords, or construct a new Interest if necessary.

Reasons:

  • Although protocol allows changing InterestLifetime to account for time spent in the forwarder, it's generally undesirable to change it due to the overhead of reencoding the packet. The error of consumer's estimation on how long it still wants the Data is usually greater than the time spent in the forwarder. However, if the strategy causes the Interest to spend non-negligible time in forwarder, it may want to change InterestLifetime, to save resources in other forwarders.
  • Some strategy may want to put a fresh Nonce in the outgoing Interest for probing or other purposes.

Related issues

Related to NFD - Bug #1771: Incorrect logic in pit::Entry::canForwardToRejectedJunxiao Shi07/17/2014

Actions
Related to NFD - Feature #3176: NACK in multicast strategyClosedAshlesh Gawande

Actions
Blocks NFD - Feature #3841: localhop scope restriction in strategyClosedAshlesh Gawande

Actions
#1

Updated by Junxiao Shi over 7 years ago

  • Subject changed from OutgoingInterest pipeline should not create copy of Interest and should be informed by the strategy which Interest to forwrad to OutgoingInterest pipeline should not create copy of Interest and should be informed by the strategy which Interest to forward
  • Start date deleted (07/13/2014)

wantNewNonce is only used for probing (of self-learning strategy).
In that scenario, the new Nonce matches none of the incoming Interest, so it needs to be a new copy.

#2

Updated by Junxiao Shi over 7 years ago

  • Category set to Forwarding
#3

Updated by Junxiao Shi over 7 years ago

  • Related to Bug #1771: Incorrect logic in pit::Entry::canForwardTo added
#4

Updated by Junxiao Shi over 7 years ago

The fundamental question in #1756 and #1771 is: should outgoing Interest pipeline pick an Interest to be sent, or should strategy make this decision?

My opinion is: let outgoing Interest pipeline make this decision, because the criteria is same among all strategies.
Strategy should make forwarding decisions at the granularity of PIT entry, not at the granularity of every incoming Interest packet.

#5

Updated by Junxiao Shi about 7 years ago

  • Subject changed from OutgoingInterest pipeline should not create copy of Interest and should be informed by the strategy which Interest to forward to Let strategy pick outgoing Interest packet
  • Description updated (diff)

20141017 meeting with Beichuan discussed this problem, and we concluded that strategy should be allowed to pick outgoing Interest.
We don't plan to change the implementation now, but rather wait after #2000 and make this one of the building blocks.

#6

Updated by Junxiao Shi about 7 years ago

  • Blocked by Task #2000: Composable strategy building blocks added
#7

Updated by Junxiao Shi almost 5 years ago

  • Blocked by deleted (Task #2000: Composable strategy building blocks)
#8

Updated by Junxiao Shi almost 5 years ago

  • Blocks Feature #3841: localhop scope restriction in strategy added
#9

Updated by Junxiao Shi almost 5 years ago

#10

Updated by Junxiao Shi almost 5 years ago

  • Target version set to v0.6
  • Estimated time set to 6.00 h

This is needed for strategies to implement #1966-7 recommendation.

#11

Updated by Junxiao Shi almost 5 years ago

  • Tracker changed from Task to Feature
  • Status changed from New to In Progress
  • Assignee set to Junxiao Shi
  • % Done changed from 0 to 40

https://gerrit.named-data.net/3329 adds assertions to pit::Entry::insertOrUpdateInRecord and pit::Entry::insertOrUpdateOutRecord, to ensure the Interest used in in-record and out-record matches the Interest table entry. This prevents strategy from incorrectly picking an Interest that is incompatible with the Interest table entry.

https://gerrit.named-data.net/3330 updates outgoing Interest pipeline and Strategy::sendInterest API so that strategies can pick the outgoing Interest packet. Since the Interest must match the Interest table entry, only guider fields (Nonce and InterestLifetime) may be changed.
The "pick Interest" logic in previous outgoing Interest pipeline is currently placed in an overload of Strategy::sendInterest; test coverage for this logic is removed.

In future commits of this issue and #3841, the "pick Interest" logic or its replacement will be made into a component similar to those in pit-algorithm.hpp, which will be invoked from every strategy. The Strategy::sendInterest legacy overload will be deleted.
At this time, test coverage for the "pick Interest" logic or its replacement will be re-added.

#12

Updated by Junxiao Shi almost 5 years ago

  • % Done changed from 40 to 50

https://gerrit.named-data.net/3335 updates DummyStrategy to forward the incoming Interest.

#13

Updated by Junxiao Shi almost 5 years ago

  • % Done changed from 50 to 80

https://gerrit.named-data.net/3410 deletes old Strategy::sendInterest overload and violatesScope function (#3841). This completes coding portion of this issue.

#14

Updated by Junxiao Shi almost 5 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 80 to 100

nfd-docs:commit:aa9b662f146fa3cea9e7dbfff9e2bbd07e033ed6

Also available in: Atom PDF