NLSR Management provides:
- command to add(advertise) routes to name prefix list
- command to remove(withdraw) routes from name prefix list
1. Control Commands¶
1.1 Add a name prefix¶
This command adds a name prefix to the name prefix list. This command can be accepted on
- Name (required)
1.2 Remove a name prefix¶
This command removes a name prefix from the name prefix list. This command can be accepted on
- Name (required)
2. Request format¶
NLSR control commands are command interests (https://redmine.named-data.net/projects/ndn-cxx/wiki/CommandInterest), whose name has the following form:
/localhost/nlsr. Each individual command may specify additional prefixes under which that command could be accepted.
<management-module>is the name of management module to which the command needs to be dispatched. For example, the name of the management module in this case would be
<command-verb>is the command to be executed. For this case this would be either
<control-parameters>is a ControlParameters TLV block wrapped in a NameComponent.
<timestamp>is interest's timestamp that is used to prevent replay attack.
<random-value>aka Nonce that ensures the uniqueness of an interest.
<SignatureValue>are additional components defined by [ndn-cxx:SignedInterest|Signed Interest] spec.
So, putting everything together, the complete name of a command interest would be
3. Response Format¶
A response from the command interface is a Data that matches the request Interest. The payload of this Data is a ControlResponse block.
StatusCode loosely follows the HTTP semantics described in RFC2616 section 10 (RFC2616)
|204||Prefix is already advertised/withdrawn|
|205||Save or delete a prefix from the configuration file|
|400||ControlParameters is incorrect|
|403||Command Interest is not authorized|
|406||Prefix is already saved or deleted from the configuration file.|
|501||Module or verb is not supported|
|503||Feature is disabled|