Strategy Choice Management¶
Strategy Choice Management is a module of NFD Management protocol.
- commands to choose the forwarding strategy for a namespace
- a dataset of strategy choices
Strategy Choice Management commands and datasets are available under namespace
A strategy is identified by a name.
NFD currently supports the following strategies:
Each strategy listed above may have one or more versions. Strategy version is increased when there is a major behavior change; bugfixes usually won't bump strategy version. The version component is appended to the strategy name.
A strategy may accept parameters name components. Parameters are always optional. They may be appended to the strategy name after the version component. Whether a strategy accepts parameters and the syntax and semantics of the parameters are defined by each strategy.
Set the strategy for a namespace¶
- Name (required)
- Strategy (required)
Name is the name prefix on which the strategy is selected.
NFD MAY impose a limit on the length of name prefix. The current limit is 32 name components.
If Name exceeds this limit, the command fails with code 414.
Strategy must be a Name that identifies a strategy.
It could be either an unversioned name to instantiate the latest version of a strategy, or a versioned name to instantiate a specific version. If the chosen strategy accepts parameters, they may be appended after a versioned name.
If Strategy does not match any registered strategy, the command fails with code 404.
If the command succeeds, <Body> in ControlResponse block contains updated ControlParameters:
- Name: unchanged
- Strategy: strategy instance name, which always contains a version component and may contain parameters name components
Unset the strategy for a namespace¶
- Name (required)
After this operation, the effective strategy at Name is inherited from the parent.
If there is no strategy defined at Name, this command does nothing, but is still considered successful.
Name must not be
ndn:/, otherwise the command fails with code 400.
Strategy Choice Dataset¶
Strategy choices for namespaces are published as a Status Dataset at
Each choice is represented by a StrategyChoice block:
StrategyChoice := STRATEGY-CHOICE-TYPE TLV-LENGTH Name Strategy
- Name is the namespace on which a strategy is chosen.
- Strategy is the strategy chosen for this namespace.
|Type||Assigned value||Assigned value (hex)|