Task #1825
closed
RibMgmt: advertise Routes via routing protocol
Added by Junxiao Shi over 10 years ago.
Updated over 10 years ago.
Description
Design a mechanism for RIB Daemon to inform a routing protocol about operator/application's intent to advertise or withdraw a prefix.
Scenario:
- The operator execute a
rib/advertise
command: NLSR should advertise that this node serves ndn:/example
.
note: This command can be executed regardless of whether a producer of ndn:/example
exists on local node.
- RIB Daemon accepts this command, and records that
ndn:/example
prefix should be advertised via NLSR.
- RIB Daemon informs NLSR to advertise
ndn:/example
prefix.
This Task should design how step 3 works.
- Related to Task #1824: RibMgmt: advertise and withdraw commands added
How does nrd know which process is the specified routing protocol and how does it pass this information to that routing protocol?
I'm proposing this design:
- In RIB Dataset, RibEntry can contain zero or more AdvertisedTo element, each indicates a routing protocol's Origin that the prefix is advertised to.
- When a routing protocol starts (or restarts after a crash), it requests RIB Dataset, and advertise those prefixes whose AdvertisedTo element has the routing protocol's Origin.
- RIB Daemon publishes a Notification Stream for advertise and withdraw events.
- A routing protocol subscribes to this Notification Stream.
For each event that has an Origin equal to the routing protocol's Origin, the routing protocol advertise or withdraw the prefix.
Advantages:
- If routing daemon restarts, it has a complete picture of what prefixes it should be advertising.
- RIB Daemon doesn't need to keep track of routing daemons.
Drawbacks:
- There's no direct feedback on whether the action succeeds.
However, this drawback is minor, because even if the advertise command arrives at the routing daemon, we still cannot claim the action is successful until route propagation succeeds.
- Description updated (diff)
- Status changed from New to Abandoned
According to email discussion, it's unnecessary to involve RIB Daemon for advertising and withdrawing prefixes in a routing protocol.
The routing daemon(s) should define the commands, and tools should interact with routing daemon directly.
Also available in: Atom
PDF