Project

General

Profile

StrategyChoice » History » Revision 5

Revision 4 (Junxiao Shi, 03/18/2014 11:35 AM) → Revision 5/16 (Junxiao Shi, 05/17/2014 08:29 PM)

# Strategy Choice Management 

 **Strategy Choice Management** is a module of [[Management|NFD Management protocol]]. 
 It provides: 

 * commands to choose the forwarding strategy for a namespace 
 * a dataset of strategy choices 

 Strategy Choice Management commands and datasets are published in namespace `ndn:/localhost/nfd/strategy-choice`. 



 ## Strategy 

 A strategy is represented by a Name. 

 NFD currently supports builtin strategies only. The following strategies are available: 

 * ndn:/localhost/nfd/strategy/best-route 
 * ndn:/localhost/nfd/strategy/broadcast 
 * ndn:/localhost/nfd/strategy/client-control 
 * ndn:/localhost/nfd/strategy/ncc 


 



 ## Control Commands 

 [[ControlCommand]] **management-module**: `strategy-choice` 

 ### Set the strategy for a namespace 

 **command-verb**: `set` 

 ControlParameters fields: 

 * Name (required) 
 * Strategy (required) 

 Strategy must be a `Name` that represents a builtin strategy.   
 If Strategy does not match any builtin strategy, the command fails with code 504. 

 ### Unset the strategy for a namespace 

 **command-verb**: `unset` 

 ControlParameters fields: 

 * 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 403. 


 ## Strategy Choice Dataset 

 Strategy choices for namespaces are published as a [[StatusDataset|Status Dataset]] at `ndn:/localhost/nfd/strategy-choice/list`. 

 Each face 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. 

 ## TLV-TYPE assignments 

 Type                                          | Assigned value      | Assigned value (hex) 
 ------------------------------------------- | ----------------- | -------------------- 
 StrategyChoice                                | 128                 | 0x80