Bug #2761
closed
RIB update is not effective right away
Added by Junxiao Shi over 9 years ago.
Updated about 9 years ago.
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.
This was reported by Tai-Lin Chu in #1941 note-29.
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.
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?
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.
I see. But if there is a problem later in the update, the command sender cannot know this. There is a trade-off here.
- Status changed from New to Rejected
Also available in: Atom
PDF