Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Jan 2007 01:41:46 +0700
From:      Eugene Grosbein <eugen@kuzbass.ru>
To:        net@freebsd.org
Subject:   interface metric & quagga
Message-ID:  <20070125184146.GA60481@grosbein.pp.ru>

next in thread | raw e-mail | index | archive | help
Hi!

'route -n monitor' shows me that 'ifconfig up' command
produces RTM_NEWADDR, RTM_ADD and RTM_IFINFO message.

RTM_NEWADDR contains 'metric 0' regardless of interface metric
value set with ifconfig before. quagga, since version 0.99.3,
takes metric value from RTM_NEWADDR message and this value overrides
right interface metric learned by quagga a milisecond before.
Then it passes zero interface metric to ripd that uses interface
metric as hop count increment for RIP-learned routes.
This effectively breaks RIPv2 for FreeBSD (quagga-0.99.2 and older
versions do not use metric from RTM_NEWADDR and work), perhaps RIPv1 too.

Verified with RELENG_4 and RELENG_6.
Is it kernel bug or quagga bug?

I also suggest to include next patch to the Ports tree
if no objections. It restores RIP support.

--- zebra/kernel_socket.c.orig	Fri Jan 26 01:10:06 2007
+++ zebra/kernel_socket.c	Fri Jan 26 01:10:17 2007
@@ -585,8 +585,6 @@
   if (ifnlen && strncmp (ifp->name, ifname, INTERFACE_NAMSIZ))
     isalias = 1;
   
-  ifp->metric = ifam->ifam_metric;
-  
   /* Add connected address. */
   switch (sockunion_family (&addr))
     {


Eugene Grosbein



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070125184146.GA60481>