From owner-freebsd-net Sat Oct 12 17:13:55 2002 Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5E8BA37B40B for ; Sat, 12 Oct 2002 17:13:50 -0700 (PDT) Received: from carp.icir.org (carp.icir.org [192.150.187.71]) by mx1.FreeBSD.org (Postfix) with ESMTP id EC49E43E97 for ; Sat, 12 Oct 2002 17:13:49 -0700 (PDT) (envelope-from rizzo@carp.icir.org) Received: from carp.icir.org (localhost [127.0.0.1]) by carp.icir.org (8.12.3/8.12.3) with ESMTP id g9D0DepJ092837; Sat, 12 Oct 2002 17:13:40 -0700 (PDT) (envelope-from rizzo@carp.icir.org) Received: (from rizzo@localhost) by carp.icir.org (8.12.3/8.12.3/Submit) id g9D0DeGG092836; Sat, 12 Oct 2002 17:13:40 -0700 (PDT) (envelope-from rizzo) Date: Sat, 12 Oct 2002 17:13:39 -0700 From: Luigi Rizzo To: "M. Warner Losh" Cc: net@FreeBSD.ORG Subject: Re: Comments Please Message-ID: <20021012171339.A92744@carp.icir.org> References: <20021012.171809.93306957.imp@bsdimp.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <20021012.171809.93306957.imp@bsdimp.com>; from imp@bsdimp.com on Sat, Oct 12, 2002 at 05:18:09PM -0600 Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On Sat, Oct 12, 2002 at 05:18:09PM -0600, M. Warner Losh wrote: > OK. I'm not a network wonk, so I thought I'd run this by people > here. What do people think. sounds ok -- removing explicit constants is always good. On passing: * While you are at it, grep etherbroadcastaddr sys/net*/* reveals the use of an explicit constant (6) in net/if_arp.h and netinet/if_ether.c; there is more of the same in net/bridge.c (my fault), net/if_atmsubr.c, netinet/if_ether.c, netncp/ncp_subr.c * there is no real reason to have etherbroadcastaddr as a variable. net/bridge.c has a macro, IS_ETHER_BROADCAST, which is much faster to evaluate on i386, and could be moved e.g. in net/ethernet.h and be used to check for ethernet broadcast addresses in net/if_ethersubr.c net/if_iso88025subr.c netatalk/aarp.c net/if_fddisubr.c This only leaves some usages of etherbroadcastaddr is in netinet/if_ether.c to set the address for outgoing broadcast packets. cheers luigi > Warner > > --- //depot/user/imp/freebsd-imp/sys/net/if_ethersubr.c 2002/10/06 21:18:24 > +++ //depot/user/imp/newcard/net/if_ethersubr.c 2002/10/11 22:58:57 > @@ -124,7 +124,8 @@ > > static int ether_resolvemulti(struct ifnet *, struct sockaddr **, > struct sockaddr *); > -u_char etherbroadcastaddr[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; > +u_char etherbroadcastaddr[ETHER_ADDR_LEN] = > + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; > #define senderr(e) do { error = (e); goto bad;} while (0) > #define IFP2AC(IFP) ((struct arpcom *)IFP) > > @@ -149,7 +150,7 @@ > { > short type; > int error = 0, hdrcmplt = 0; > - u_char esrc[6], edst[6]; > + u_char esrc[ETHER_ADDR_LEN], edst[ETHER_ADDR_LEN]; > register struct rtentry *rt; > register struct ether_header *eh; > int loop_copy = 0; > @@ -859,8 +860,8 @@ > register struct sockaddr_dl *sdl; > > ifp->if_type = IFT_ETHER; > - ifp->if_addrlen = 6; > - ifp->if_hdrlen = 14; > + ifp->if_addrlen = ETHER_ADDR_LEN; > + ifp->if_hdrlen = ETHER_HDR_LEN; > if_attach(ifp); > ifp->if_mtu = ETHERMTU; > ifp->if_resolvemulti = ether_resolvemulti; > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-net" in the body of the message To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message