From owner-freebsd-bugs@FreeBSD.ORG Wed May 16 03:50:02 2012 Return-Path: <owner-freebsd-bugs@FreeBSD.ORG> Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1F20A106564A for <freebsd-bugs@hub.freebsd.org>; Wed, 16 May 2012 03:50:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id E37D88FC16 for <freebsd-bugs@hub.freebsd.org>; Wed, 16 May 2012 03:50:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q4G3o1iY081426 for <freebsd-bugs@freefall.freebsd.org>; Wed, 16 May 2012 03:50:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q4G3o1KX081425; Wed, 16 May 2012 03:50:01 GMT (envelope-from gnats) Resent-Date: Wed, 16 May 2012 03:50:01 GMT Resent-Message-Id: <201205160350.q4G3o1KX081425@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Nikolay Denev <ndenev@gmail.com> Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7B389106566B for <freebsd-gnats-submit@FreeBSD.org>; Wed, 16 May 2012 03:45:13 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id 65CD98FC12 for <freebsd-gnats-submit@FreeBSD.org>; Wed, 16 May 2012 03:45:13 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.4/8.14.4) with ESMTP id q4G3jDYL078135 for <freebsd-gnats-submit@FreeBSD.org>; Wed, 16 May 2012 03:45:13 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.4/8.14.4/Submit) id q4G3jDvw078134; Wed, 16 May 2012 03:45:13 GMT (envelope-from nobody) Message-Id: <201205160345.q4G3jDvw078134@red.freebsd.org> Date: Wed, 16 May 2012 03:45:13 GMT From: Nikolay Denev <ndenev@gmail.com> To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: misc/167947: arpresolve checks only the default FIB for the interface route X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Bug reports <freebsd-bugs.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bugs>, <mailto:freebsd-bugs-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/freebsd-bugs> List-Post: <mailto:freebsd-bugs@freebsd.org> List-Help: <mailto:freebsd-bugs-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-bugs>, <mailto:freebsd-bugs-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 16 May 2012 03:50:02 -0000 >Number: 167947 >Category: misc >Synopsis: arpresolve checks only the default FIB for the interface route >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed May 16 03:50:01 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Nikolay Denev >Release: FreeBSD-8.3-STABLE >Organization: >Environment: FreeBSD fw1 8.3-STABLE FreeBSD 8.3-STABLE #2: Tue May 8 11:56:45 CEST 2012 ndenev@fw1:/usr/obj/usr/src/sys/KERN-IPFW amd64 >Description: arpresolve() checks if a connected route exists before adding ARP entries to the arp table. The problem is that it only checks the default FIB 0. When one does have interface in non default FIB with it's directly attached routes removed from the default FIB, arpresolve fails and no ARP entries can be added : arpresolve: can't allocate llinfo for x.x.x.x >How-To-Repeat: put these in /boot/loader.conf : net.add_addr_allfibs="0" net.fibs="8" Then : /usr/sbin/setfib 1 /sbin/ifconfig em1 10.180.0.2 netmask 255.255.255.0 fib 1 /usr/sbin/setfib 1 /sbin/route add default 10.180.0.254 Now then I try to ping the host from its gw 10.180.0.254, the host generates "arpresolve: can't allocate llinfo for 10.180.0.254" messages. >Fix: Apply the included patch. Patch attached with submission follows: --- in.c.orig 2012-05-12 08:57:17.000000000 +0200 +++ in.c 2012-05-12 08:56:43.000000000 +0200 @@ -1418,21 +1418,21 @@ static int in_lltable_rtcheck(struct ifnet *ifp, u_int flags, const struct sockaddr *l3addr) { struct rtentry *rt; KASSERT(l3addr->sa_family == AF_INET, ("sin_family %d", l3addr->sa_family)); /* XXX rtalloc1 should take a const param */ - rt = rtalloc1(__DECONST(struct sockaddr *, l3addr), 0, 0); + rt = rtalloc1_fib(__DECONST(struct sockaddr *, l3addr), 0, 0, ifp->if_fib); if (rt == NULL) return (EINVAL); /* * If the gateway for an existing host route matches the target L3 * address, which is a special route inserted by some implementation * such as MANET, and the interface is of the correct type, then * allow for ARP to proceed. */ >Release-Note: >Audit-Trail: >Unformatted: