From owner-cvs-src@FreeBSD.ORG Fri Apr 16 02:34:59 2004 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6E8FE16A4CE; Fri, 16 Apr 2004 02:34:59 -0700 (PDT) Received: from xorpc.icir.org (xorpc.icir.org [192.150.187.68]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4953D43D39; Fri, 16 Apr 2004 02:34:59 -0700 (PDT) (envelope-from rizzo@icir.org) Received: from xorpc.icir.org (localhost [127.0.0.1]) by xorpc.icir.org (8.12.9p1/8.12.8) with ESMTP id i3G9Yxgd013940; Fri, 16 Apr 2004 02:34:59 -0700 (PDT) (envelope-from rizzo@xorpc.icir.org) Received: (from rizzo@localhost) by xorpc.icir.org (8.12.9p1/8.12.3/Submit) id i3G9YvQb013937; Fri, 16 Apr 2004 02:34:57 -0700 (PDT) (envelope-from rizzo) Date: Fri, 16 Apr 2004 02:34:57 -0700 From: Luigi Rizzo To: Eivind Eklund Message-ID: <20040416023457.A12665@xorpc.icir.org> References: <200404160814.i3G8EYpj071288@repoman.freebsd.org> <20040416090520.GA1194@FreeBSD.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <20040416090520.GA1194@FreeBSD.org>; from eivind@FreeBSD.org on Fri, Apr 16, 2004 at 09:05:20AM +0000 cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/net if.c route.c rtsock.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Apr 2004 09:35:00 -0000 On Fri, Apr 16, 2004 at 09:05:20AM +0000, Eivind Eklund wrote: ... > > strlcpy(ifp->if_xname, new_name, sizeof(ifp->if_xname)); > > - ifa = TAILQ_FIRST(&ifp->if_addrhead); > > + ifa = ifaddr_byindex(ifp->if_index); > > Given that all of the changes in this commit end of the form > ifaddr_byindex(ifp->if_index), I'd suggest an abstraction might be in > order. Something like > > #define ifp2ifaddr(p) ifaddr_byindex((p)->if_index) > ifaddr_byindex() is already a macro, so i'd rather not have the double indirection. Besides, in an ideal world, we could store ifindexes instead of ifp's in many places (routing entries, ifaddrs) which would considerably reduce the complexity of locking, refcounting and garbage collection. > in order to isolate this case (which, as you say, can be implemented > several ways). I'm not sure ifp2ifaddr is a good name - that was just > the first that came to mind. Speaking of names, i am still unclear if ifaddr_byindex() is meant to give you only the link-level address of the interface, or the entire list of addresses associated to the interface (which does occur, but only as an accident) cheers luigi