Subject: Re: changing traffic counters to quad_t (long long)
To: Christoph Badura <bad@ora.de>
From: Matt Thomas <matt@3am-software.com>
List: tech-net
Date: 03/24/1998 13:23:56
At 10:13 AM 3/24/98 , Christoph Badura wrote:
>fair@clock.org (Erik E. Fair , Timekeeper) writes:
>
>>Has anyone ever proposed sticking #ifdef's around the metering code
>>to be able to turn it off for even more efficiency?
>
>I'd guess so.
>
>>Does one or more of the SNMP MIBs define some of these counters to
>>be only 32 bits?
>
>Uhm, by default *all* SNMP counters are 32 bits.
Not true. On media faster than 20Mb/s, counters are required to be
64bit.
Rather than switching counters to 64-bit (except on 64-bit
platforms), it may be easier to keep counters as 32-bit shadows
and every-so often roll them into 64-bit counters. (this can be
done by either zero'ing the 32-bit counters or keeping two
shadow copies, alternating updates between them and rolling the
differences into 64-bit counters.
ctr64->foo += (unsigned) (cur32->foo - last32->foo);
...
memcpy(last32, cur32, sizeof(*cur32));
How fast you need to do the rollover can be computed using
if_baudrate. This could even be done in if_watchdog so no driver
need be aware of it.
--
Matt Thomas Internet: matt@3am-software.com
3am Software Foundry WWW URL: http://www.3am-software.com/bio/matt/
Nashua, NH Disclaimer: I disavow all knowledge of this message