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

Reply via email to