Feature #1756
closedLet strategy pick outgoing Interest packet
100%
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.
Updated by Junxiao Shi over 10 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.
Updated by Junxiao Shi over 10 years ago
- Related to Bug #1771: Incorrect logic in pit::Entry::canForwardTo added
Updated by Junxiao Shi over 10 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.
Updated by Junxiao Shi about 10 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.
Updated by Junxiao Shi about 10 years ago
- Blocked by Task #2000: Composable strategy building blocks added
Updated by Junxiao Shi about 8 years ago
- Blocked by deleted (Task #2000: Composable strategy building blocks)
Updated by Junxiao Shi about 8 years ago
- Blocks Feature #3841: localhop scope restriction in strategy added
Updated by Junxiao Shi about 8 years ago
- Related to Feature #3176: NACK in multicast strategy added
Updated by Junxiao Shi about 8 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.
Updated by Junxiao Shi about 8 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.
Updated by Junxiao Shi about 8 years ago
- % Done changed from 40 to 50
https://gerrit.named-data.net/3335 updates DummyStrategy
to forward the incoming Interest.
Updated by Junxiao Shi almost 8 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.
Updated by Junxiao Shi almost 8 years ago
- Status changed from In Progress to Closed
- % Done changed from 80 to 100
nfd-docs:commit:aa9b662f146fa3cea9e7dbfff9e2bbd07e033ed6