PrefixAnnouncement » History » Version 2
Davide Pesavento, 08/13/2018 11:48 AM
| 1 | 1 | Junxiao Shi | # Prefix Announcement Protocol |
|---|---|---|---|
| 2 | |||
| 3 | The **prefix announcement protocol** allows registering prefixes using a *prefix announcement object*. It is an alternative to NFD [[RibMgmt|RIB Management protocol]]'s `rib/register` verb. |
||
| 4 | |||
| 5 | ## Prefix Announcement object |
||
| 6 | |||
| 7 | 2 | Davide Pesavento | The **prefix announcement object** is a Data packet that represents an application's intent of registering a prefix toward itself. A Data packet that satisfies the following requirements is a prefix announcement object: |
| 8 | 1 | Junxiao Shi | |
| 9 | 2 | Davide Pesavento | * Name starts with the announced prefix, followed by a fixed `prefix-announcement` generic name component, followed by a version component and a segment component as defined by the NDN Naming Conventions. |
| 10 | 1 | Junxiao Shi | * ContentType is "prefix announcement". |
| 11 | * Content contains zero or more TLV elements. |
||
| 12 | |||
| 13 | A prefix announcement object, by default, is valid indefinitely. Its **validity period** can be constrained with ValidityPeriod or FreshnessPeriod element. |
||
| 14 | |||
| 15 | * ValidityPeriod gives the absolute time range in which the prefix announcement remains valid. It is ignored if the receiving node does not have a UnixTime clock. |
||
| 16 | 2 | Davide Pesavento | * FreshnessPeriod gives the duration for which the prefix announcement remains valid. The duration begins when a node or program receives the prefix announcement. |
| 17 | 1 | Junxiao Shi | * When both ValidityPeriod and FreshnessPeriod are present, the most restricted constraint applies. |
| 18 | |||
| 19 | 2 | Davide Pesavento | Trust model of prefix announcement is to be defined by the application. |
| 20 | 1 | Junxiao Shi | |
| 21 | ## Command Verbs |
||
| 22 | |||
| 23 | ### 'announce' |
||
| 24 | |||
| 25 | This command announces a prefix using a prefix announcement object. |
||
| 26 | NFD-RIB accepts this command as a [[ndn-cxx:CommandInterest|Command Interest]] with the following syntax: |
||
| 27 | |||
| 28 | ``` |
||
| 29 | /localhost/nfd/rib/announce/<params-sha256>/<command-interest-components> |
||
| 30 | /localhop/nfd/rib/announce/<params-sha256>/<command-interest-components> |
||
| 31 | ``` |
||
| 32 | |||
| 33 | 2 | Davide Pesavento | The Interest's Parameters element carries the prefix announcement object. |
| 34 | 1 | Junxiao Shi | |
| 35 | NFD-RIB converts this command into an equivalent `rib/register` command. Route *origin* is set to "prefix announcement" (number 129). |
||
| 36 | 2 | Davide Pesavento | Response is the same as `rib/register` command. |
| 37 | 1 | Junxiao Shi | |
| 38 | ### 'unannounce' |
||
| 39 | 2 | Davide Pesavento | |
| 40 | 1 | Junxiao Shi | There is no 'unannounce' command. Instead, use `rib/unregister` command. |