I studied zebra_rib.c history and found one strange change in commit 0abf6796
(http://git.savannah.gnu.org/cgit/quagga.git/commit/?id=0abf6796c3d8ae8f5ea8624668424bc1554de25e).
Before this patch there were two different functions for installing and
uninstalling kernel routes - rib_install_kernel and rib_uninstall_kernel.
At the start of rib_install_kernel there was code block:
if (info->safi != SAFI_UNICAST)
{
for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
SET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
return;
}
And at the start of rib_uninstall_kernel there was code block:
if (info->safi != SAFI_UNICAST)
{
for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
SET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
return ret;
}
So both functions used SET_FLAG.
After this patch there is only one combined function rib_update_kernel and it
is started with:
if (info->safi != SAFI_UNICAST)
{
if (new)
for (ALL_NEXTHOPS_RO(new->nexthop, nexthop, tnexthop, recursing))
SET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
if (old)
for (ALL_NEXTHOPS_RO(old->nexthop, nexthop, tnexthop, recursing))
UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
return 0;
}
So now in one of scenarios UNSET_FLAG is used instead of SET_FLAG.
I don't know zebra's source code well so I can't say that this change is a
mistake, but I think it may be, so, please, check it.
Maybe it also connected with my problem somehow?
Best regards,
Igor Ryzhov
> 7 апр. 2016 г., в 16:38, Igor Ryzhov <[email protected]> написал(а):
>
> Yes:
>
> Current configuration:
> !
> hostname vm
> password zebra
> !
> interface eth1
> no link-detect
> ip address 192.168.0.101/24
> ipv6 nd suppress-ra
> !
> interface eth2
> no link-detect
> ip address 192.168.1.101/24
> ipv6 nd suppress-ra
> !
> ip route 10.0.0.0/24 192.168.0.1
> ip route 10.0.0.0/24 192.168.1.1
> !
> !
> !
> line vty
> no login
> !
> end
>
> Best regards,
> Igor
>
>> 7 апр. 2016 г., в 16:31, Daniel Walton <[email protected]
>> <mailto:[email protected]>> написал(а):
>>
>> If you do show run are both statics showing up in the config?
>>
>> Daniel
>>
>> On Wednesday, April 6, 2016, Igor Ryzhov <[email protected]
>> <mailto:[email protected]>> wrote:
>> Hello.
>>
>> Multipath doesn't work for me in release 1.0.
>>
>> I have two interfaces eth1 and eth2 with IPs 192.168.0.101/24
>> <http://192.168.0.101/24> and 192.168.1.101/24 <http://192.168.1.101/24>.
>> And I am adding two routes:
>> ip route 1.2.3.0/24 <http://1.2.3.0/24> 192.168.0.1
>> ip route 1.2.3.0/24 <http://1.2.3.0/24> 192.168.1.1
>>
>> With 0.99.24.1 I have no problems and I see both of them in FIB:
>>
>> S>* 1.2.3.0/24 <http://1.2.3.0/24> [1/0] via 192.168.0.1, eth1
>> * via 192.168.1.1, eth2
>> C>* 127.0.0.0/8 <http://127.0.0.0/8> is directly connected, lo
>> C>* 192.168.0.0/24 <http://192.168.0.0/24> is directly connected,
>> eth1
>> C>* 192.168.1.0/24 <http://192.168.1.0/24> is directly connected,
>> eth2
>>
>> But in 1.0 only the first one is in FIB:
>>
>> S>* 1.2.3.0/24 <http://1.2.3.0/24> [1/0] via 192.168.0.1, eth1
>> via 192.168.1.1, eth2
>> C>* 127.0.0.0/8 <http://127.0.0.0/8> is directly connected, lo
>> C>* 192.168.0.0/24 <http://192.168.0.0/24> is directly connected,
>> eth1
>> C>* 192.168.1.0/24 <http://192.168.1.0/24> is directly connected,
>> eth2
>>
>> Both versions are built with --enable-multipath=0.
>>
>> Maybe I have to do something more in 1.0 to enable multipath?
>>
>> Best regards,
>> Igor
>> _______________________________________________
>> Quagga-dev mailing list
>> [email protected] <javascript:;>
>> https://lists.quagga.net/mailman/listinfo/quagga-dev
>> <https://lists.quagga.net/mailman/listinfo/quagga-dev>
>
_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev