Feature #1756
closed
Let strategy pick outgoing Interest packet
Added by Alex Afanasyev over 10 years ago.
Updated almost 8 years ago.
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.
- 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.
- Category set to Forwarding
- Related to Bug #1771: Incorrect logic in pit::Entry::canForwardTo added
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.
- 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.
- Blocked by Task #2000: Composable strategy building blocks added
- Blocked by deleted (Task #2000: Composable strategy building blocks)
- Blocks Feature #3841: localhop scope restriction in strategy added
- Target version set to v0.6
- Estimated time set to 6.00 h
This is needed for strategies to implement #1966-7 recommendation.
- 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.
- % Done changed from 40 to 50
- % Done changed from 50 to 80
- Status changed from In Progress to Closed
- % Done changed from 80 to 100
nfd-docs:commit:aa9b662f146fa3cea9e7dbfff9e2bbd07e033ed6
Also available in: Atom
PDF