fastclick icon indicating copy to clipboard operation
fastclick copied to clipboard

Add basic BIER elements

Open nrybowski opened this issue 1 year ago • 2 comments

This PR adds basic elements for BIER packets processing.

First, it adds the Bier Forwarding Table (BIFT) which is implemented as the IPv6 forwarding table. That is, Fastclick is extended with a 'biertable' that defines the basic operations on the BIFT. The 'bierroutetable' element defines handlers allowing external interactions and the 'lookupbiertable' is the element representing the BIFT.

Second, two simple filtering elements are added, (i) 'checkbierheader' that verifies the header of a BIER packet and (ii) 'checkbierin6header' that filters IPv6 packet to detect BIERin6 encapsulated BIER packets.

TODO

  • [ ] Batch routes addition
  • [ ] Allow routes suppression via handler
  • [ ] Add elements documentation
  • [ ] (Support Bitstring length greater than 256 bits)

nrybowski avatar Oct 01 '24 10:10 nrybowski

Well, everything seems good and 'standard' to me so far.

tbarbette avatar Oct 01 '24 12:10 tbarbette

Thanks for the review! I will open the PR for merge once I have a functional BIER data-plane.

nrybowski avatar Oct 01 '24 12:10 nrybowski

One thing you can also do is add a few tests (see the tests folder). So you're sure elements behave as expected. The easiest is probably to use some FromIPSum.* (look at other examples) so you can easily add some payload and verify what you get. Unit testing is done through specific Test element in elements/tests. For such a big project it's generally a good idea.

tbarbette avatar Oct 27 '24 09:10 tbarbette

Rebase on 91a3454b9755e38e84e4872ae6286539e1f45b36.

nrybowski avatar Oct 31 '24 16:10 nrybowski

I will add some tests in subsequent commits but in the current state of the PR, the BIFT is correctly populated by the holo control-plane and the duplication as well as the forwarding works as expected on a simple test topology.

nrybowski avatar Oct 31 '24 18:10 nrybowski