nfdc-strategy
=============

SYNOPSIS
--------
| nfdc strategy [list]
| nfdc strategy show [prefix] <PREFIX>
| nfdc strategy set [prefix] <PREFIX> [strategy] <STRATEGY>
| nfdc strategy unset [prefix] <PREFIX>

DESCRIPTION
-----------
In NFD, packet forwarding behavior is determined by forwarding pipelines and forwarding strategies.
The forwarding pipelines define general steps of packet processing.
Forwarding strategies provide the intelligence to make decision on whether, when, and where
to forward Interests.

NFD contains multiple forwarding strategy implementations.
The strategy choice table determines which strategy is used in forwarding an Interest.

The **nfdc strategy list** command shows a list of strategy choices.

The **nfdc strategy show** command shows the effective strategy choice for a specific name.

The **nfdc strategy set** command sets the strategy for a name prefix.
The strategy for ``/'' prefix is the default strategy.

The **nfdc strategy unset** command clears the strategy choice at a name prefix,
so that a strategy choice at a shorter prefix or the default strategy will be used.
It undoes a prior **nfdc strategy set** command on the same name prefix.
It is prohibited to unset the strategy choice for ``/'' prefix because there must always be a
default strategy.

OPTIONS
-------
<PREFIX>
    The name prefix of a strategy choice.
    The strategy choice is effective for all Interests under the name prefix,
    unless overridden by another strategy choice at a longer prefix.

<STRATEGY>
    A name that identifies the forwarding strategy.
    Consult NFD Developer's Guide for a complete list of all implemented strategies.

EXIT CODES
----------

0: Success

1: An unspecified error occurred

2: Malformed command line

7: Strategy not found (**nfdc strategy set** only)

SEE ALSO
--------
nfd(1), nfdc(1)
