Date: Sun, 9 Nov 2003 15:11:32 +0100 From: Jesper Skriver <jesper@FreeBSD.org> To: Harti Brandt <brandt@fokus.fraunhofer.de> Cc: Alex Hoff <ahoff@sandvine.com> Subject: Re: 64 bit packet counters Message-ID: <20031109141132.GB32037@FreeBSD.org> In-Reply-To: <20031108100926.M78050@beagle.fokus.fraunhofer.de> References: <FE045D4D9F7AED4CBFF1B3B813C8533701D9B454@mail.sandvine.com> <20031108100926.M78050@beagle.fokus.fraunhofer.de>
index | next in thread | previous in thread | raw e-mail
On Sat, Nov 08, 2003 at 10:13:48AM +0100, Harti Brandt wrote: > On Fri, 7 Nov 2003, Alex Hoff wrote: > > AH>Hi, > AH> > AH>We are attempting to implement the IF-MIB, which requires the > AH>use of 64 bit packet counters and the differentiation between > AH>multicast and broadcast pkts. Since changing the if_data (by > AH>adding new counters and changing the existing to u_int64) is a bad > AH>idea, does anyone have any good ideas on how to do this? I was > AH>thinking of tacking on a new struct (lets call it ifx_data) on at > AH>the end of the current if_net struct with the appropriate counters > AH>(i/opacket, i/obyte, i/obcast, i/omcast). Apart from having to do > AH>a little double counting is there any obvious pitfals with this > AH>approach? Does anyone have an better ideas? Is there currently any > AH>plans to update the network stack to handle this properly? > > You may lookup the discussions in the mailing lists. As far as > I remember the problem with 64 bit counting was that this needs > locks because not on all architectures you have atomic 64bit add > operations. A simple method that does not involve kernel changes (and > that I plan to implement in my snmp daemon) is to periodically monitor > the counters (depending on the interface speed) and detect wraps in > the daemon. What is done in other places is to have normal 32 bit counters that are incremented per packet, and have a background task/thread to update the 64 bit counters from the 32 bit counters. That way, we avoid the locking issue per packet. /Jesper -- Jesper Skriver, jesper(at)skriver(dot)dk - CCIE #5456 One Unix to rule them all, One Resolver to find them, One IP to bring them all and in the zone to bind them.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031109141132.GB32037>
