diff options
| author | Christian Breunig <christian@breunig.cc> | 2026-09-24 15:26:28 +0000 |
|---|---|---|
| committer | Christian Breunig <christian@breunig.cc> | 2026-09-24 15:26:28 +0000 |
| commit | f148cc7c47a7fc6f81a06817de5f24e0836d0792 (patch) | |
| tree | 23b7345912a9d57b6bbd79fa8865825e155d8d7a /src/migration-scripts/interfaces | |
| parent | 430dda1e170576239d3580c1b7a6381525a05cbc (diff) | |
| download | vyos-1x-f148cc7c47a7fc6f81a06817de5f24e0836d0792.tar.gz vyos-1x-f148cc7c47a7fc6f81a06817de5f24e0836d0792.zip | |
wwan: T9350: move session re-dial from cron into vyos-netlinkd
/etc/cron.d/vyos-wwan re-ran the conf_mode script every 5 minutes via
op-mode "connect interface wwanN" to re-establish a session lost to RF
signal loss. Re-entering conf_mode from cron is unsafe: the cron job knows
nothing about the boot commit or about a commit in flight, so when a tick
lands before the running config is populated, get_config() returns nothing
but {'ifname', 'deleted'} and apply() takes the teardown branch instead of
dialling. It then stops the DHCP clients, stops ModemManager and unlinks its
own cron file, leaving wwan0 down with no way to recover until the next
commit:
CRON[1869]: (root) CMD (/usr/libexec/vyos/vyos-check-wwan.py)
systemd[1]: Stopping DHCP client on wwan0...
systemd[1]: Stopping Modem Manager...
This is timing dependent - it only bites when a */5 tick coincides with
boot - which is why it presents as an intermittently dead WWAN interface.
Move the re-dial into vyos-netlinkd, which already tracks these interfaces
for DHCP and already gates all of its work behind boot_configuration_complete()
and commit_in_progress2(). A re-dial can therefore no longer land on a
half-applied configuration. It also dials ModemManager directly rather than
re-entering conf_mode, so the teardown branch is no longer reachable from
the recovery path at all.
Diffstat (limited to 'src/migration-scripts/interfaces')
0 files changed, 0 insertions, 0 deletions
