Task #1308
closedStrategy choice and dispatch
100%
Description
One or more forwarding strategies can run concurrently in NFD. A strategy is responsible for a portion of the Name hierarchy.
Forwarding strategy¶
A strategy makes decision of whether, where, and when to forward a pending Interest.
It also has the ability to collect measurements when Interest is satisfied, or after a timeout.
Each strategy is indicated by a Name.
In Version 1, all strategies are written in C++, and their Names are under namespace ndn:/localhost/nfd/strategy
.
In some future version, strategies may be written in a scripting language.
They can be retrieved by Name, and installed into NFD after validation.
Strategy Choice table¶
Strategy Choice table stores the per-namespace choice of strategy.
An entry in Strategy Choice table contains the Name of a strategy.
Given a pending Interest, a longest prefix match is performed on the Strategy Choice table, and the strategy on the matched entry is responsible for this pending Interest.
NFD Strategy Choice protocol allows a management client app to modify the Strategy Choice table.
StrategyInfo¶
Strategy can place arbitrary information (called StrategyInfo) on PIT entry, PIT InRecord, Pit OutRecord, and Measurements entry under its namespaces.
Access to an entry is allowed, if the strategy Name responsible for the entry equals the strategy Name of the strategy attempting to access.
If a namespace is changed to use a different strategy, StrategyInfo under this namespace (excluding those covered by another Strategy Choice entry) are deleted.