<div dir="ltr">Dear folks<div><br></div><div>Please see below for a discussion about which process on the laptop should send remote prefix registration commands.</div><div><br></div><div>I remember a previous NFD conference call concluded that ndn-autoconfig tool should send such registrations.</div><div><br></div><div>Yours, Junxiao</div><div><h2 id="background" style="margin:1.3em 0px 0px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:rgb(51,51,51);font-size:24px;line-height:36px">Background</h2><p style="margin:0px 0px 1.2em;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;color:rgb(51,51,51)">The NDN testbed consists of tens of dedicated router nodes that are always online. Each router is responsible for a site prefix, such as <code style="padding:2px 4px;font-family:Menlo,Monaco,'Courier New',monospace;font-size:12px;color:rgb(221,17,68);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:1px solid rgb(225,225,232);background-color:rgb(247,247,249)">ndn:/ndn/edu/arizona</code>. These routers run NLSR, a link state routing protocol, to maintain a routing table so that every site prefix is reachable from every router.</p><p style="margin:0px 0px 1.2em;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;color:rgb(51,51,51)">Currently, when a laptop (or other kind of end node) connects to a router, the <code style="padding:2px 4px;font-family:Menlo,Monaco,'Courier New',monospace;font-size:12px;color:rgb(221,17,68);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:1px solid rgb(225,225,232);background-color:rgb(247,247,249)">nfd-autoreg-server</code> process on the router automatically installs a Route of the site prefix toward the laptop. After that, it's up to the forwarding strategy to figure out what contents could a laptop serve. For example, every laptop connected to ARIZONA router will have a Route of prefix<code style="padding:2px 4px;font-family:Menlo,Monaco,'Courier New',monospace;font-size:12px;color:rgb(221,17,68);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:1px solid rgb(225,225,232);background-color:rgb(247,247,249)">ndn:/ndn/edu/arizona</code>, and the forwarding strategy must figure out that<code style="padding:2px 4px;font-family:Menlo,Monaco,'Courier New',monospace;font-size:12px;color:rgb(221,17,68);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:1px solid rgb(225,225,232);background-color:rgb(247,247,249)">ndn:/ndn/edu/arizona/app1</code> is served by laptop1. While the forwarding strategy SHOULD be able to find the path, it takes time and hurts performance.</p><p style="margin:0px 0px 1.2em;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;color:rgb(51,51,51)"><strong>Remote prefix registration</strong> is a feature in NFD RIB Daemon (<code style="padding:2px 4px;font-family:Menlo,Monaco,'Courier New',monospace;font-size:12px;color:rgb(221,17,68);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:1px solid rgb(225,225,232);background-color:rgb(247,247,249)">nrd</code> process) that allows a laptop to send a prefix registration command to the RIB Daemon running on the router. This would allow laptop1 to install a Route of prefix <code style="padding:2px 4px;font-family:Menlo,Monaco,'Courier New',monospace;font-size:12px;color:rgb(221,17,68);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:1px solid rgb(225,225,232);background-color:rgb(247,247,249)">ndn:/ndn/edu/arizona/app1</code>, so that the router knows to forward Interests under this prefix to laptop1 instead of other laptops.</p><p style="margin:0px 0px 1.2em;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;color:rgb(51,51,51)">This feature is fully supported by NFD RIB Daemon, but it's not enabled on NDN testbed routers.</p><h2 id="who-should-send-the-registration-command" style="margin:1.3em 0px 0px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:rgb(51,51,51);font-size:24px;line-height:36px">Who should send the registration command?</h2><p style="margin:0px 0px 1.2em;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;color:rgb(51,51,51)">A laptop can send a prefix registration command to the router, but which process on the laptop should send the command? There are different opinions.</p><p style="margin:0px 0px 1.2em;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;color:rgb(51,51,51)"><strong>ndn-autoconfig</strong> is a tool to establish connection to a nearby testbed router, or a user's home router (determined by the user identity). This tool can be extended to install a Route toward the laptop on the router, after a connection is established.<br>Benefit: Route is installed whenever laptop connects to testbed.<br>Drawback: Prefixes to be registered must be configured statically; applications cannot dynamically request a prefix to be registered on the router.</p><p style="margin:0px 0px 1.2em;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;color:rgb(51,51,51)"><strong>nrd</strong> is a process that handles local prefix registrations. It can be extended to registration command to the router, if a local registration suggests the necessity of a remote prefix registration.<br>Benefit: Prefixes to be registered can be controlled dynamically by applications.<br>Drawback: Both nrd and applications still need to be aware of changes in testbed connections. When a laptop moves to another router, the routable prefix changes, and applications will have to switch to a new prefix.</p><p style="margin:0px 0px 1.2em;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;color:rgb(51,51,51)"><strong>Applications</strong> can directly send remote prefix registrations.<br>Drawback: This violates network layering.</p><h2 id="does-the-application-need-to-be-aware-of-testbed-connections" style="margin:1.3em 0px 0px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:rgb(51,51,51);font-size:24px;line-height:36px">Does the application need to be aware of testbed connections?</h2><p style="margin:0px 0px 1.2em;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;color:rgb(51,51,51)">Yes.<br>(Until we have map-and-encap,) each testbed router has a distinct site prefix. Application must monitor a change in the connection, and switch to the new site prefix.</p></div></div>