[Note: this is pretty low priority, it should be extremely rare to encounter
"in the wild"]
On rare occasions the PPP stack gets stuck and fails to bring up the PPP link.
We don't have an easy, reliable way to reproduce it as it only shows up when
the Linux-side PPP daemon is raced. After a lot of data collection, staring at
code and reading the RFC, we finally narrowed it down to this:
"The LCP state machine failed to run the timeout timer while in ack-received
state, which could result in the state machine getting stuck in ack-received
state rather than falling back to req-sent (after sending a conf req). To
actually get the device into the ack-received state without sending the conf
req is very hard however. It appears to only be possible when the device resets
half-way through establishing the PPP connection. This does happen during
flashing (boot loader installation, and provisioning), but even so, the timing
has to be exact to drop the LCP state machine into the problematic state."
The attached patch introduces another action (TA_startRestartTimer) and flags
it when going into LAS_AckReceived state. Normally the restart timer is started
after a frame has been sent, but on entering ack-received state there is no
frame triggered, and hence the timer has not been restarted.
Original issue reported on code.google.com by jmatts...@dius.com.au on 21 Feb 2012 at 5:43
Original issue reported on code.google.com by
jmatts...@dius.com.au
on 21 Feb 2012 at 5:43Attachments: