<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:36 PM, Dean wrote:<br>
    </div>
    <blockquote
      cite="mid:fc4f2719-c682-0087-8088-308d88a955ba@gmail.com"
      type="cite">
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      <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>
    </blockquote>
    <p>To add SADR routes with ip route you can use 'from'. I can't find
      this in the manual.<br>
    </p>
    <pre>ip -6 route add 2001:db9:1::3 from 2001:db9:1::4 dev v0
</pre>
  </body>
</html>