Task #2468
closedDefine semantics of rib/register success
100%
Description
RibMgmt rev11 defines the request and response format of rib/register
command, but does not define the semantics of a successful response.
Unlike most other ControlCommands used in NFD Management, rib/register
involves multiple steps on the server side,
including but not limited to: (1) update RIB; (2) update FIB; (3) perform remote prefix registration.
Some of those steps are asynchronous, and may take a long time.
This issue is to agree on the semantics of a successful response from rib/register
command.
Specifically, the protocol should define what guarantee, if any, is provided to the calling application when rib/register
command returns with a successful response.
The guarantee provided to producer application on a laptop could be one of these levels:
- best effort, no guarantee
- A consumer app on laptop can express Interest toward the prefix now, which will be delivered to the producer. (assuming strategy follows FIB)
- A consumer app on directly connected gateway router can express Interest toward the prefix now, which will be delivered to the producer. (assuming strategy follows FIB; laptop can remote register the prefix on gateway)
- A consumer app anywhere can express Interest toward the prefix now, which will be delivered to the producer. (assuming strategy follows FIB; laptop can remote register the prefix on gateway; gateway either announces the prefix to global routing table, or can recursively remote register the prefix on its uplink router)
To achieve these levels, server (RIB daemon) should finish the following before sending a successful response:
- laptop: command authorization
- level 1 + laptop: local RIB and FIB update
- level 2 + laptop: remote prefix registration + gateway: RIB and FIB update
- level 3 + gateway: recursive remote prefix registration
Different calling applications may desire different guarantees:
- Most user applications may need level 2 or level 3.
- Routing daemon may need level 1.
- Some user applications may need level 4.
Instead of defining choosing a single guarantee, this Task could also opt to add a new field in rib/register
request to allow calling application to choose the desired guarantee.
Updated by Junxiao Shi almost 10 years ago
- Status changed from New to In Progress
- Assignee set to Junxiao Shi
- Target version set to v0.4
- % Done changed from 0 to 50
20150209 conference call chooses "level 1":
- RibMgmt can return a successful response after determining the command is valid and authorized.
- A successful response is a confirmation of command acceptance, not command completion.
It's impossible to guarantee "level 4", because global reachability cannot be guaranteed from local information among a small number of hops.
It has to be tested by applications by themselves.
"level 2" and "level 3" are unnecessary, because completion of FIB updates / remote registration still cannot guarantee global reachability.
Consumer, even on the local machine, should retransmit until Interest can reach the producer.
I'll update protocol docs.
Updated by Junxiao Shi over 9 years ago
- Status changed from In Progress to Resolved
- % Done changed from 50 to 100
RibMgmt rev12 reflects the decision in note-1.
Updated by Junxiao Shi over 9 years ago
- Status changed from Resolved to Closed
Closing because there's no objection in past 7 days.