[Quagga-bugs] [Bug 337] New: RIP is broken for FreeBSD since version 0.99.3

bugzilla-daemon at allevil.dishone.st bugzilla-daemon at allevil.dishone.st
Thu Feb 1 15:11:54 GMT 2007


Please do not reply directly to this email. All additional  
comments should be made in the comments box of this bug  
report.  
  
http://bugzilla.quagga.net/show_bug.cgi?id=337  
  
           Summary: RIP is broken for FreeBSD since version 0.99.3
           Product: Quagga
           Version: CVS
          Platform: PC
               URL: http://www.freebsd.org/cgi/query-pr.cgi?pr=108430
        OS/Version: FreeBSD
            Status: UNCONFIRMED
          Severity: major
          Priority: High
         Component: zebra
        AssignedTo: maintainers at quagga.net
        ReportedBy: eugen at grosbein.pp.ru


Since version 0.99.3 quagga takes metric value from RTM_NEWADDR
message received from routing socket and this value overrides
interface metric learned by quagga at startup time.
FreeBSD always returns zero value here, even if one have used
'ifconfig if0 metric N', and quagga does not sanitize this
and overwrites right interface metric it known to this moment.

Then quagga passes zero interface metric to ripd
that uses it as hop count increment value (if one does not use
'offset-list in' for interface) thus breaking RIP.

This problem needs to be fixed by checking if RTM_NEWADDR has returned
nonzero value. FreeBSD community has accepted following patch
and included it to its Port Collection. Hope this will hit Quagga CVS.

--- zebra/kernel_socket.c.orig	Fri Jan 26 10:55:03 2007
+++ zebra/kernel_socket.c	Fri Jan 26 10:55:35 2007
@@ -585,6 +585,7 @@
   if (ifnlen && strncmp (ifp->name, ifname, INTERFACE_NAMSIZ))
     isalias = 1;
   
+  if (ifam->ifam_metric)
   ifp->metric = ifam->ifam_metric;
   
   /* Add connected address. */  
  
  
  
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


More information about the Quagga-bugs mailing list