Just noted a problem getting wrong AcctInput/OutputOctets in my radacct-table. 
What I've verified from the seperate details' files: when the (probably 32-bit wide 
integer) counters overflow at 4,294,967,296 Octets in one session (can happen with 
xDSL, 24hrs session time) I get only the overflowed small value written to the 
database.
Now, first I thought this is probably nothing to blame freeradius for but as we're 
billing based on volume transferred this is something to look closer at for me ;) and 
other users may be interested..

After digging some deeper, I found an additional attribute which brings the Ciscos out 
of being blamed; after the counter-wrap they've sent two additional attributes:
        Acct-Input-Gigawords = 0
        Acct-Output-Gigawords = 1

Now, I've change my sql.conf to deal with this when inserting Octets; for the 
details'files and my radacct-table this fixes things. 
Probably something that should go into the default sql.conf of the distribution ?

I don't know wether it might make sense to fix this earlier in freeradius-code (in 
case there're some other places/modules where the Octets are used and should already 
be summed up with Gigawords), thats up to the developers..


Anyway, what I've changed in my sql.conf (using mysql, other my differ using 
POW(2,32)=4294967296) replace:
'%{Acct-Input-Octets}' with '%{Acct-Input-Octets} + (%{Acct-Input-Gigawords:-0} * 
POW(2,32))'
'%{Acct-Output-Octets}' with '%{Acct-Output-Octets} + (%{Acct-Output-Gigawords:-0} * 
POW(2,32))'


Michael

-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to