-
Notifications
You must be signed in to change notification settings - Fork 11
Description
There was a bug introduced in commit d57b1dc
On adding synchronisation to stack enable/disable, the link watchdog was also changed to use the synchronised methods. But the watchdog disable/enable isn't meant to 'count' towards the stack state logic (it's just the only way to reset the underlying channel).
The result is that LinkUpIntegrityTrigger "FIRST" behaves the same as "EVERY" when the watchdog operates because it's like the stack was enabled for the first time.
The watchdog can be changed back to directly enable/disable the stack as the immediate fix. But that technically reintroduces a logic race with the stack state machine (albeit very unlikely to hit). Ultimately the synchronised enable/disable needs some extra logic to allow for this use case instead.
This also raises the question of whether the LinkUpIntegrityTrigger logic needs expanding to allow options for how to behave for 'on demand', especially with the new demand pause and stale concepts. So the ultimate solution should take that into consideration as well.
Actions:
- implement immediate fix
- write test cases for LinkUpIntegrityTrigger, including various 'on demand' use cases
- implement ultimate fix