diff options
| author | Denys Fedoryshchenko <denys.f@collabora.com> | 2026-08-08 18:22:47 +0300 |
|---|---|---|
| committer | Denys Fedoryshchenko <denys.f@collabora.com> | 2026-08-08 18:29:35 +0300 |
| commit | d22f698e88a05332cee4b8dac2e7085c8b83b0ed (patch) | |
| tree | 1eb98126b9c8f0b435ff97f6a4649cbf8533a478 /drivers | |
| parent | 4969b65c3f55c739a0c9178086f42ba3de906119 (diff) | |
| download | accel-ppp-d22f698e88a05332cee4b8dac2e7085c8b83b0ed.tar.gz accel-ppp-d22f698e88a05332cee4b8dac2e7085c8b83b0ed.zip | |
tests: cover the removal of stale ipoe session interfaces
Three tests around the interfaces the ipoe module creates per session:
- kill accel-pppd with SIGKILL while a dhcp session is up, start it
again and check that the interfaces left behind by the killed
instance are gone,
- remove a session interface with 'ip link del',
- check that 'ip link add ... type ipoe' is refused, since a device
made through rtnetlink would have none of the private state that
IPOE_CMD_CREATE sets up.
They carry the ipoe_driver marker and sit next to the existing ipoe
tests, so the workflows run them in the steps that follow the insmod of
the module. No workflow change is needed.
The [modules] section has to list connlimit and radius before ipoe:
libipoe.so refers to symbols of both, and with a strict dynamic linker
loading it on its own fails with a relocation error instead of a missing
feature. The tests assert that accel-pppd came up, so that this kind of
misconfiguration is not reported as an unrelated cli connection failure.
Restarting accel-pppd needs no explicit synchronisation:
triton_load_modules() runs every DEFINE_INIT() before triton_run()
starts the threads that serve the cli, so by the time accel-cmd 'show
version' is answered the flush registered at DEFINE_INIT(19) has already
run.
Interfaces are compared by ifindex and not by name, because dhclient may
get a new session in the meantime and the fresh interface would reuse
the ipoe0 name. The check that nothing removes the interfaces while no
accel-pppd is running is only printed, not asserted, so that the module
is free to start doing it on its own later on.
Diffstat (limited to 'drivers')
0 files changed, 0 insertions, 0 deletions
