[dev] FPM, vrf's and table-id

Donald Sharp sharpd at cumulusnetworks.com
Mon May 20 16:10:44 EDT 2019


All -

Current behavior of the FPM code is to encode the vrf_id as a uint8_t
piece of data and send to the remote listener.  This current approach
is broken for a variety of reasons, not the least of which is that the
vrf_id of a vrf is either the ifindex of the vrf-lite device created
or the namespace id.  Both of which quite easily go beyond the limit
of what can be smushed into a uint8_t size.  Thus we have a situation
where FPM listeners would get incorrect data about tables.

After some discussion we have decided that since this is broken in a
bunch of different ways that there is no real good course of action
here other than to just update the code to behave like the netlink
behavior we see in linux.  Namely we will write the table_id we are
writing the route to as an uint32_t attribute RTA_TABLE.

If you have further questions about this please look at
6dfcd75461ff35ebf89e86f64fe6e982ed09b3e3

thanks!

donald



More information about the dev mailing list