Skip to content

NSTF: FIB Status and future plans

Cenk Gündoğan edited this page Apr 29, 2015 · 2 revisions

#Current Status of the FIB Currently the RIOT FIB is a standalone implementation, meaning that beside the unittests [1] and the shell commands [2] its not used productively in the current or ng_ network-stack.

List of things in progress

  • With #2765 I started to integrate the FIB to the RPL implementation, which is pretty far now. @cgundogan pointed me to an implementation flaw regarding handling of DAOs and routes for sub-DODAGs in storing MOP [3].
    After some discussion I opened #2818 to provide a function to cope with the DAO problem in conjunction with the FIB, which seems to be a reasonable way to handle this.

  • To provide a more flexible and modular behaviour I've opened PR #2763, allowing for easily extending the FIB with new functions.
    Basically this PR enables to exchange/extend the access functions to the FIB by including specific headers. (could be something for #2818 to be only loaded conditionally when RPL is used).

  • There are also two cosmetic/bugfix PRs open for the FIB namely #2782 and #2783.

  • I started to assist @Lotterleben to integrate the FIB in aodvv2.

List of things TODO (right after the above)

  • The FIB is blocking on fib_get_next_hop(...) calls. Its the same behaviour as using the current RPL implementation, however Prof. Thomas C. Schmidt pointed me that its a very bad behaviour to block the caller, i.e. the network-layer, until a next-hop is found or the call returns without success (And I totally agree). So something must be done to solve this.

  • The FIB allows for registration of Reactive Routing Protocols (RRPs) that are triggered for route requests and, resulting from using FIB in aodvv2, to inform the RRP if a route has been used.
    (Again Prof. Thomas C. Schmidt pointed me on that one) Since the FIB provides setting a lifetime for its entries to automatically delete them if it expires, it could be beneficial or even necessary to inform proactive routing protocols about it, so that they can refresh/revive for instance an IP prefix in the FIB.

  • Implementing security hooks in the FIB to allow for attestation/verification of next-hop entries before they are recorded in the FIB-Table. (But this can be only done if the FIB is in a solid state)

[1] https://github.com/RIOT-OS/RIOT/tree/master/tests/unittests/tests-fib
[2] https://github.com/RIOT-OS/RIOT/blob/master/sys/shell/commands/sc_fib.c
[3] https://github.com/RIOT-OS/RIOT/pull/2765#discussion_r28314044

Clone this wiki locally