From owner-freebsd-net@FreeBSD.ORG Fri Jan 26 18:39:01 2007 Return-Path: X-Original-To: net@freebsd.org Delivered-To: freebsd-net@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8B49C16A403 for ; Fri, 26 Jan 2007 18:39:01 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from out4.smtp.messagingengine.com (out4.smtp.messagingengine.com [66.111.4.28]) by mx1.freebsd.org (Postfix) with ESMTP id 6488C13C494 for ; Fri, 26 Jan 2007 18:38:59 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from out1.internal (unknown [10.202.2.149]) by out1.messagingengine.com (Postfix) with ESMTP id 0413E96850; Fri, 26 Jan 2007 13:38:58 -0500 (EST) Received: from heartbeat2.messagingengine.com ([10.202.2.161]) by out1.internal (MEProxy); Fri, 26 Jan 2007 13:38:58 -0500 X-Sasl-enc: SOOqJi9tnDeX0j5QYuuUmH92w9/9nlEVVMvLt0zQ16kW 1169836737 Received: from [192.168.123.18] (82-35-112-254.cable.ubr07.dals.blueyonder.co.uk [82.35.112.254]) by mail.messagingengine.com (Postfix) with ESMTP id 22485165F0; Fri, 26 Jan 2007 13:38:56 -0500 (EST) Message-ID: <45BA4ABD.5040402@FreeBSD.org> Date: Fri, 26 Jan 2007 18:38:53 +0000 From: "Bruce M. Simpson" User-Agent: Thunderbird 1.5.0.9 (X11/20070125) MIME-Version: 1.0 To: Eugene Grosbein References: <20070125184146.GA60481@grosbein.pp.ru> In-Reply-To: <20070125184146.GA60481@grosbein.pp.ru> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: net@freebsd.org Subject: Re: interface metric & quagga X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jan 2007 18:39:01 -0000 Eugene Grosbein wrote: > 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. > It's a mixed issue. FreeBSD does not use the interface metric, so routing daemons shouldn't use that field. However, many routing implementations use a metric or distance of 0 to indicate a directly-connected route or interface route, so it has special meaning. We could deal with this situation better by explicitly setting the metric to an invalid value. If/when we implemented equal-cost multipath, or source address selection policies, then we should use this field. > 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. > I'd rewrite the patch to wrap the assignment in #ifndef __FreeBSD__ so that it can be taken upstream more easily. If/when we do equal-cost multipath or source policy we can bump __FreeBSD_version. Regards, BMS