Hi Vladimir,
I noticed that the fib/rib APIs (both IPv4 and IPv6) require the next
hops to be represented as integer indexes. Reading the code, I noticed
that they are stored as uint64_t with the MSB used for internal
purposes.
This require either having a contiguous array of nexthop objects and
choose an index in that array, or store pointer offsets as nexthop
indexes and do pointer arithmetics to reconstruct the real pointers.
Both are not very practical and/or hacky.
Would it be possible to store arbitrary pointers? That would mean
moving that 64th bit information elsewhere.
I'd love to hear what you think on the matter.
Cheers,
Robin