<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>