Hero 4G+ (KN-2311) / EG060V: обрывы LTE каждые ~10 минут — причина ppe software, лечится no ppe software
Железо: Hero 4G+ KN-2311, встроенный EG060V-EAAA (ASR1826), модем A14, потом A22. KeeneticOS 5.1.8, потом 5.1.4. Оператор Vodafone IT.
Симптомы. LTE пропадает на ~30 с, в вебе в этот момент «SIM invalid». В логе timeout waiting for expected response, потом CEREG: 0,0, CGATT: 0, через ~20 с модем регистрируется обратно. Обрывы ложатся строго на сетку с периодом 598.94 с ± 1 с, но рвёт не на каждом тике. Под нагрузкой (VPN, видеозвонки) 1–5 раз в час.
Что НЕ помогло:
- PDP ipv4 вместо ipv4v6;
- esim disable;
- AT+QSIMDET;
- перезагрузка модема (CFUN=1,1) — фаза сетки её переживает;
- прошивка модема A14 → A22;
- откат OS 5.1.8 → 5.1.4.
Фаза сетки сдвигается только при перезагрузке роутера, значит таймер в роутере, а не в модеме и не у оператора. По strace NDM в AT-порт ничего лишнего не шлёт: модем сам отвечает ERROR, потом присылает +ZCONSTAT: 0,1.
Что поймал tcpdump на usb0 (cdc_ncm к модему): за ~3.5 с до обрыва роутер отправляет в модем кадр из 14 байт. Это голый Ethernet-заголовок с ethertype 0x0800 и нулевой IP-нагрузкой:
528b d2a3 859e 02db d609 4d3d 0800 [length 0 < 20] (invalid)
Сразу после него downlink умирает, модем отвечает только на ARP, а через ~4 с переинициализирует интерфейс. Похоже, программный fast path отдаёт обрезанный skb, и стек модема на нём падает.
Фикс:
no ppe software
system configuration save
(ppe hardware оставил включённым.) После этого больше 16 часов без единого обрыва, включая WireGuard с двух ПК и видеозвонок одновременно. Раньше в таком режиме гарантированно было 1–2 обрыва в час. Нагрузка на CPU выросла незаметно, 3–7%.
Разработчикам: похоже, стоит выключать software PPE для интерфейсов USB/NCM-модемов по умолчанию или найти, откуда берётся пустой кадр.