implementation proposal form MRAI

Mattia Milani mattia.milani at studenti.unitn.it
Sun Jul 7 15:12:47 CEST 2019


Hello bird community, I'm trying to implement a peer-based MRAI on Bird,
but before everything else, I would like to hear from you what do you think
about my implementation idea.

My idea is to act before *prefixes* go into the *bucket_queue* data
structure and using a timer inside the *bgp_channel*.

When a new *prefix* arrives to *bgp_rt_notify* function I'll do this checks
before the *add_tail(buck->prefixes, px->bucket_node)*

I check if there is an actual MRAI timer active on the channel *c* if there
is no timer I append the prefix to the prefixes of the *buket_queue* and I
set a new timer equal to MRAI.
If the timer was set before I have to append this prefix to a different
queue, "*pending_buket_queue*", before the append I'll do the correct
checks if it already exists with an hash-table in the channel for the
pending buckets.

When the *timer expires* pending buckets will be transferred to the
*bucket_queue*, and now I need to send the updated bucket_queue.
After the transmission, the timer will be updated with the MRAI value.

If at the timer expiration there are no pending buckets the timer will not
be rebooted.

My doubts are for the most on the triggered send at the timer expiration,
how can I trigger a "*bgp_update_process*"?
And what do you think about this way to implement a peer-based MRAI?

Obviously, the MRAI timer will be set with a parameter in the conf file.

Thanks all, best regards
Mattia Milani
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20190707/0a89fc2d/attachment.htm>


More information about the Bird-users mailing list