No, the fib structure holds only one address type. But depending on how you plan to use it, maybe you can simulate non-sadr entries using ::/0 source prefix?Yes, they can. You can use two kernel protocols, one with the SADR channel and the other with ipv6. Both sets of routes are stored in the same kernel table.Ah, yes, but I meant inside Bird in this instance. Can the bird 'struct fib' hold both types of routes, or do you need a separate one for each?
But the kernel bug is still present. Using both types of routes in the same table gives undefined behavior. A hacky workaround would be to replace ::/0 sources with 2000::/3 in netlink, but it would reduce the set of accepted prefixes.Do you have a quick howto on triggering this bug?
If you insert two routes with the same destination in the routing table, one of them being SADR, the dst-only route is ignored.
2001:db9:1::3 from 2001:db9:1::4 dev v0 metric 1024 2001:db9:1::3 dev v0 metric 1024
Pinging to 2001:db9:1::3 using a source address that's not
2001:db9:1::4 gives a network unreachable error. Though if you
remove the SADR route, or if you add another SADR route with the
correct source address, it works fine.