<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 05/22/2017 12:07 PM, Toke
      Høiland-Jørgensen wrote:<br>
    </div>
    <blockquote cite="mid:87o9ulxl12.fsf@alrua-kau" type="cite">
      <blockquote type="cite" style="color: #000000;">
        <pre wrap="">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.
</pre>
      </blockquote>
      <pre wrap="">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?
</pre>
    </blockquote>
    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?<br>
    <blockquote cite="mid:87o9ulxl12.fsf@alrua-kau" type="cite">
      <blockquote type="cite" style="color: #000000;">
        <pre wrap="">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.
</pre>
      </blockquote>
      <pre wrap="">Do you have a quick howto on triggering this bug?</pre>
    </blockquote>
    <p>If you insert two routes with the same destination in the routing
      table, one of them being SADR, the dst-only route is ignored.</p>
    <pre>2001:db9:1::3 from 2001:db9:1::4 dev v0  metric 1024 
2001:db9:1::3 dev v0  metric 1024

</pre>
    <p>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.<br>
    </p>
  </body>
</html>