Bug #2761
closedRIB update is not effective right away
0%
Description
Steps to reproduce:
- a producer registers a name.
- right after the response is returned, a client sends an interest with the exact same name.
Expected: the client gets the data
Actual: the interest never reaches the producer
Further examination shows that this is because the fib update happens after the command response is generated. I think this is semantically incorrect because there is no way to know when fib update is done after producer sends rib register command.
Updated by Junxiao Shi over 9 years ago
This was reported by Tai-Lin Chu in #1941 note-29.
Updated by Junxiao Shi over 9 years ago
This behavior is by design.
RIB Management protocol defines the semantics of a successful responses from RIB register command:
Successful responses from these commands indicate that NFD RIB Management has received and authorized the command, and will perform the requested updates shortly. RIB and FIB updates are asynchronous, and they are not necessarily completed when the response is sent.
This semantics is based on a decision documented in #2468 note-1.
Basically, the consumer should retransmit its Interest until it gets through.
Updated by Tai-Lin Chu over 9 years ago
level-2 seems to be more expected than level-1 when both producer and consumer interact with the same forwarder.
What is the actual gain for doing level-1 instead of level-2?
Updated by Junxiao Shi over 9 years ago
What is the actual gain for doing level-1 instead of level-2?
There is implementation difficulty with level-2:
One RIB update can trigger zero or more FIB updates, which can potentially take a long time to complete which would exceed the InterestLifetime on the RIB update command.
Updated by Tai-Lin Chu over 9 years ago
I see. But if there is a problem later in the update, the command sender cannot know this. There is a trade-off here.