После изучения исходящего трафика с контроллера, поиске в документации и на этом форуме, хочу отметить следующее (WB 8.5 с WBC2-4G, релиз wb-2507)
- не вижу в документации или в каком-нибудь
--helpописания всех возможных параметров/etc/wb-connection-manager.conf. Насколько я понимаю, всё выведено во вкладку “Connection priorities” - нельзя настроить интервал проверки - он всегда 5 секнуд. Для большинства сценариев это очень часто - скажем, для LTE-модема с IoT-тарифом ~600 байт каждые 5 секунд это ~300 мбайт/месяц, достаточно прилично. Я бы в большинстве сценариев увеличил бы интервал до 20-30 секунд.
- дефолтный UserAgent для этой проверки очень длинный (
User-Agent: PycURL/7.43.0.6 libcurl/7.74.0 GnuTLS/3.7.1 zlib/1.2.11 brotli/1.0.9 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.43.0 librtmp/2.3), можно было бы укоротить (скажем,User-Agent: WirenBoard Connection Manager <версия>) или дать возможность задать самостоятельно - не вижу в документации описания и возможности настройки условий перехода на другой интерфейс (скажем, количество неудавшихся/успешных попыток).
- в документации по сети лучше описать для чего нужен connection-manager, и что в сценариях когда есть только одно соединение (скажем, просто eth0), его можно отключить.
По условиям перехода отдельно:
- приоритет меняется по одной неудавшейся проверке или как? По каким условиям возвращается обратно?
- если единственное подключение - LTE-модем, по каким критериям оно перезапускается? Вижу только
sticky_connection_period_s, который вроде как влияет только на переключение между SIM-картами.
Параллельно идет по 3 пинга 1.1.1.1 каждые 60 секунд, это как я понимаю wb-rules-system/rules/network.js показывает network/... Online Status - в идеале бы источник состояния должен быть один у них. Навскидку - wb-rules должен запрашивать у wb-connection-manager текущее внутреннее состояние.