[quagga-dev 11508] Re: [PATCH] pimd merge

Christian Franke nobody at nowhere.ws
Thu Sep 18 19:07:52 BST 2014


Hello,

On 09/16/2014 08:47 PM, Everton Marques wrote:
> 1/3 mrib - Branch with MRIB/SAFI_MULTICAST changes only

I started looking at this changeset first. All in all it looks very
clean. :) There are three remarks in total which came to my mind from
reading the changeset:

- Should static_add_ipv4/static_delete_ipv4 be kept around? They don't
  seem to be used.

- The DEFUN for "ip mroute" uses "[<1-255>]" to specify an optional
  distance. This won't work all that well currently. The reason being
  that anything in square brackets will be treated as optional string.
  So "ip mroute 10.0.0.0/8 192.168.1.1 abcd" will be considered valid
  input. The easiest way around this is to e.g. use a DEFUN without the
  distance and add an ALIAS with the distance as a mandatory argument.

  You have to make sure that your config write output doesn't put a "0"
  if the user didn't specify a distance, as "0" wouldn't be a valid
  input for <1-255> and that would cause an error when the config gets
  loaded.

- ZEBRA_IPV4_NEXTHOP_LOOKUP/rib_match_ipv4 were solely used by bgpd to
  get information concerning recursive nexthops. Therefore,
  rib_match_ipv4 excludes any BGP routes from the results. This behavior
  has been inherited by rib_match_ipv4_safi in your patch, so
  ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB will exclude all bgp routes. I wonder
  whether this is the correct behavior for RPF lookups.

One final observation which I made just now is that "no ip mroute"
doesn't seem to work correctly for some reason. The route disappears
from "show running-config", but it still shows up in "show ip rpf". See
the attached session for an example.

-Christian
-------------- next part --------------
$ telnet ::1 2601
Trying ::1...
Connected to ::1.
Escape character is '^]'.

Hello, this is Quagga (version 0.99.23-g731ce81).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

This is a git build of quagga-0.99.22-171-g731ce81
Associated branch(es):
	local:pim_changes


User Access Verification

Password: 
testbox# show running-config

Current configuration:
!
password zebra
log file /var/run/quagga/zebra.log
service advanced-vty
!
interface dummy0
 ipv6 nd suppress-ra
!
interface eth0
 ipv6 nd suppress-ra
!
interface lo
!
!
!
line vty
!
end
testbox# show ip rpf
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, A - Babel,
       > - selected route, * - FIB route

C>* 127.0.0.0/8 is directly connected, lo
C>* 172.22.92.0/27 is directly connected, eth0
testbox# conf t
testbox(config)# ip mroute 10.0.0.0/8 172.22.92.1
testbox(config)# exit
testbox# show running-config

Current configuration:
!
password zebra
log file /var/run/quagga/zebra.log
service advanced-vty
!
interface dummy0
 ipv6 nd suppress-ra
!
interface eth0
 ipv6 nd suppress-ra
!
interface lo
!
ip mroute 10.0.0.0/8 172.22.92.1 0
!
!
!
line vty
!
end
testbox# show ip rpf
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, A - Babel,
       > - selected route, * - FIB route

S>* 10.0.0.0/8 [0/0] via 172.22.92.1, eth0
C>* 127.0.0.0/8 is directly connected, lo
C>* 172.22.92.0/27 is directly connected, eth0
testbox# conf t
testbox(config)# no ip mroute 10.0.0.0/8 172.22.92.1
testbox(config)# exit
testbox# show running-config

Current configuration:
!
password zebra
log file /var/run/quagga/zebra.log
service advanced-vty
!
interface dummy0
 ipv6 nd suppress-ra
!
interface eth0
 ipv6 nd suppress-ra
!
interface lo
!
!
!
line vty
!
end
testbox# show ip rpf
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, A - Babel,
       > - selected route, * - FIB route

S>* 10.0.0.0/8 [0/0] via 172.22.92.1, eth0
C>* 127.0.0.0/8 is directly connected, lo
C>* 172.22.92.0/27 is directly connected, eth0
testbox#


More information about the Quagga-dev mailing list