Page MenuHome Accel-ppp

При завершении PPPoE сессии по LCP таймауту данные в счётчиках Acct-* всегда равны тому, что было в последнем Interim-Update
Confirmed, NormalPublicBUG

Description

Например, если поднять новую сессию, и до прихода первого Interim-ALive пакета уронить пир, чтобы она закрылась по LCP таймауту с кодом Lost-Carrier, то во всех счётчиках Acct-* всегда приходят нулевые значения. Если при тех же условиях бросить сессию корректно по CoA, через консоль или по требованию пира, то счётчики отдаются с реальными значениями трафика.

Ниже пример Stop пакета для сессии 183 сек., закрытой по LCP таймату с кодом Lost-Carrier, в которой был прогнан тестовый трафик, Inetrim-Interval = 300.
В счётчиках нули. Баг присутствует много лет.

*** DUMP OF RADIUS PACKET (Radius::Packet=HASH(0x56289a765318))
Code:       Accounting-Request
Identifier: 2
Authentic:  \x{ba}~\x{c0}\x{11}\x{cd}p\x{9d}El\x{1a}\x{f3}\x{d5}\x{b3}\x{8}\x{b8}\x{92}
Attributes:
  User-Name:           2796
  NAS-Identifier:      bras02
  NAS-IP-Address:      1.2.3.4
  NAS-Port:            231
  NAS-Port-Id:         ppp231
  NAS-Port-Type:       Virtual
  Service-Type:        Framed-User
  Framed-Protocol:     PPP
  Calling-Station-Id:  A0:F3:C1:C8:0C:D3
  Called-Station-Id:   90:E2:BA:84:88:96
  Acct-Status-Type:    Stop
  Acct-Authentic:      RADIUS
  Acct-Session-Id:     4D51DFC408E60D1A
  Acct-Session-Time:   183
  Acct-Input-Octets:   0
  Acct-Output-Octets:  0
  Acct-Input-Packets:  0
  Acct-Output-Packets: 0
  Acct-Input-Gigawords: 0
  Acct-Output-Gigawords: 0
  Framed-IP-Address:   2.3.4.5
  Delegated-IPv6-Prefix: \x{0}@ \x{0}\x{0}x\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}\x{0}
  Acct-Terminate-Cause: Lost-Carrier
VSA for vendor 3561
    ADSL-Agent-Remote-Id:
    ADSL-Agent-Circuit-Id: A0:F3:C1:C8:0C:D3::192.168.254.54::10
*** END DUMP

Провёл дополнительный тест.

00:00:00 Acct-Start
*Почти ничего не шлю через туннель
00:05:00 Interim-Update (пришли некие мелкие корректные Acct-*)
*Шлю много тестового трафика после чего отключаю порт.
00:06:30 Acct-Stop LCP timeout - Все данные о трафике после последнего Inerim потеряны, счётчики в стопе равны тому, что было на момент 00:05:00

При этом в логе:

Nov 14 16:27:30 bras02 accel-pppd[3872]: ppp57:2796: lcp: no echo reply
Nov 14 16:27:30 bras02 accel-pppd[3872]: ppp57:2796: failed to get interface statistics
Nov 14 16:27:30 bras02 accel-pppd[3872]: ppp57:2796: failed to get interface statistics

Таким образом другими словам:
При завершении сессии по LCP timeout всегда теряются данные счётчиков Acct* в Stop пакете и они всегда равны тому что было в последнем Interim-Update по причине, что PPP интерфейс скорее всего роняется раньше, чем происходит попытка получения последних данных счётчиков с него.

Details

Protocol
PPPoE
Version
accel-ppp 1.12.0-104-g588965e

Event Timeline

disappointed triaged this task as Normal priority.Nov 13 2021, 23:05
disappointed created this task.
disappointed updated the task description. (Show Details)
disappointed updated the task description. (Show Details)
disappointed updated the task description. (Show Details)

Reply from @svlobanov in accel-ppp telegram chat

Я думаю что интерфейс удаляется до того как отправляется статистика. Надо проверить эту гипотезу, оборвать коннект между interim и stop и проверить изменится ли счётчик в stop по сравнению с interim

disappointed renamed this task from Нулевые счётчики Acct-* в Stop пакете при разрыве PPPoE сессии по LCP таймауту до прихода первого Interim-Update to При завершении PPPoE сессии по LCP таймауту данные в счётчиках Acct-* всегда равны тому, что было в последнем Interim-Update.Nov 14 2021, 12:49
disappointed updated the task description. (Show Details)
Dimka88 changed the task status from Open to Confirmed.Nov 14 2021, 12:49

please enable max debug level and provide debug log retaled to the session from the beginning to the end