Детализация трафика сверх 4Gb
Добавлено: Пт май 06, 2011 3:11 pm
ABillS 0.53b (слит с CVS)
В детализации трафика наблюдается следующая картина:
В detail логах радиуса вроде всё норм приходит:
Вот как занесение реализовано в Acct.pm:
Не лучше ли было бы добавить учет gigawords? Например так:
И в талице s_detail использовать допустим тип bigint unsigned для полей sent и recv
Или это может на что-то повлиять?
В детализации трафика наблюдается следующая картина:
Код: Выделить всё
2011-05-05 18:28:47 240.81 MB 43.96 MB
2011-05-05 18:27:47 239.22 MB 13.18 MB
2011-05-05 18:26:47 236.69 MB 3.98 GB
2011-05-05 18:25:46 235.56 MB 3.96 GB
Код: Выделить всё
...
Acct-Input-Gigawords = 1
Acct-Output-Gigawords = 3
...
Код: Выделить всё
if ($conf->{s_detalization}) {
if($NAS->{NAS_TYPE} ne 'exppp') {
$RAD->{INTERIUM_INBYTE} = $RAD->{INBYTE};
$RAD->{INTERIUM_OUTBYTE} = $RAD->{OUTBYTE};
$RAD->{INTERIUM_INBYTE2} = $RAD->{INBYTE2} || 0;
$RAD->{INTERIUM_OUTBYTE2}= $RAD->{OUTBYTE2} || 0;
}
$self->query($db, "INSERT into s_detail (acct_session_id, nas_id, acct_status, last_update,
sent1, recv1, sent2, recv2, id, sum)
VALUES ('$RAD->{ACCT_SESSION_ID}', '$NAS->{NAS_ID}',
'$acct_status_type', UNIX_TIMESTAMP(),
'$RAD->{INTERIUM_INBYTE}', '$RAD->{INTERIUM_OUTBYTE}',
'$RAD->{INTERIUM_INBYTE2}', '$RAD->{INTERIUM_OUTBYTE2}',
'$RAD->{USER_NAME}', '$self->{SUM}');", 'do');
Код: Выделить всё
my $INBYTES = $RAD->{INBYTE} + $RAD->{ACCT_INPUT_GIGAWORDS} * 4294967296;
my $OUTBYTES = $RAD->{OUTBYTE} + $RAD->{ACCT_OUTPUT_GIGAWORDS} * 4294967296;
$self->query($db, "INSERT into s_detail (acct_session_id, nas_id, acct_status, last_update, sent1, recv1, sent2, recv2, id, sum)
VALUES ('$RAD->{ACCT_SESSION_ID}', '$NAS->{NAS_ID}',
'$acct_status_type', UNIX_TIMESTAMP(),
'$INBYTES', '$OUTBYTES',
'$RAD->{INTERIUM_INBYTE2}', '$RAD->{INTERIUM_OUTBYTE2}',
'$RAD->{USER_NAME}', '$self->{SUM}');", 'do');
Или это может на что-то повлиять?