Re: 64bit & snmp
- From
- Eugene Grosbein (2:5006/1)
- To
- Pavel Gulchouck (2:5054/37.63)
- Date
- 2009-09-23T08:09:06Z
- Area
- RU.CISCO
Reply-To: eugen@grosbein.pp.ru
22 сен 2009, вторник, в 08:24 KRAT, Pavel Gulchouck написал(а):
EG>>>> Рисую общий pps через роутер путем выбора счетчиков по SNMP,
EG>>>> суммированием *Pkts авком и скармливания результатов в mrtg через `cat
EG>>>> file`,
EG>>>> то есть cron обновляет файл, mrtg получает его через cat.
EG>> Проблема-то не только у меня:
EG>> https://bugzilla.redhat.com/show_bug.cgi?id=491336
PG> Я эти патчи отправлял автору, но, кажется, они не успели войти в 2.16.2, а
PG> с
PG> тех пор стабильных релизов не было.
PG> Надеюсь, поможет.
PG> diff -r -u2 mrtg-2.16.2.orig/src/rateup.c mrtg-2.16.2/src/rateup.c
PG> - --- src/rateup.c Fri May 16 17:45:41 2008
PG> +++ src/rateup.c Sat Jul 5 12:10:35 2008
PG> @@ -1515,5 +1515,5 @@
PG> - if (inrate < 0 || (unsigned) inrate > abs_max)
PG> + if (inrate < 0 || inrate > abs_max)
PG> {
PG> if (options & OPTION_UNKNASZERO)
PG> @@ -1526,5 +1526,5 @@
PG> }
PG> }
PG> - if (outrate < 0 || (unsigned) outrate > abs_max)
PG> + if (outrate < 0 || outrate > abs_max)
PG> {
PG> if (options & OPTION_UNKNASZERO)
PG> diff -r -u2 src/rateup.c src/rateup.c
PG> - --- src/rateup.c Fri May 16 17:45:41 2008
PG> +++ src/rateup.c Mon Jul 7 15:36:40 2008
PG> @@ -1450,5 +1450,5 @@
PG> {
PG> inr = diff (in, last.in);
PG> - if (inr < 0) /* wrapped 32-bit counter? */
PG> + if (inr < 0 && inr + ((long long) 1 << 32) > 0 && inr +
PG> ((long
PG> long) 1 << 32) < (1 << 30)) /* wrapped 32-bit counter? */
PG> inr += (long long) 1 << 32;
PG> }
PG> @@ -1491,5 +1491,5 @@
PG> {
PG> outr = diff (out, last.out);
PG> - if (outr < 0) /* wrapped 32-bit counter? */
PG> + if (outr < 0 && outr + ((long long) 1 << 32) > 0 && outr +
PG> ((long
PG> long) 1 << 32) < (1 << 30)) /* wrapped 32-bit counter? */
PG> outr += (long long) 1 << 32;
PG> }
Пересобрал mrtg с этим патчем, но никаких видимых изменений не последовало:
по-прежнему, rateup в .log в первой-то строчке пишет 3626693915532557
во втором поле, а во всех следующих нули для значений input :-(
Eugene
--
Всегда, везде и всюду - Смерть и Свет, они растут и убывают, спешат и ждут;
они внутри и снаружи Грезы Безымянного, каковая - мир; и выжигают они в
сансаре слова, чтобы создать, быть может, нечто дивно прекрасное.
--- slrn/0.9.8.1 (FreeBSD)
* Origin: Svyaz Service JSC (2:5006/1@fidonet)
SEEN-BY: 50/204 450/1024 461/43 640 465/11 469/142 999 4625/8 4641/444
SEEN-BY: 5000/5000 5006/1 5007/1 5010/70 5011/13 5012/46 5015/28 5019/26
SEEN-BY: 5020/175 400 545 982 1521 2238 4441 5021/29 5025/3 5026/14 5027/12
SEEN-BY: 5030/1080 5034/13 5035/38 5036/1 5037/28 5045/7 5049/1 5054/1 4 8 9
SEEN-BY: 5054/28 30 36 37 67 75 81 89 5060/88 5061/15 5062/10 5063/3 5066/18
SEEN-BY: 5075/35 5077/70 5080/68 5084/9 5085/13 5095/20 5096/18 6001/10 6004/3
SEEN-BY: 6009/3
PATH: 5006/1 5020/400 545 5054/1 37