-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ppp] fsm: ignore Configure-Request in opened state option #8
Conversation
42b4345
to
8c435fd
Compare
/* Go down and restart negotiation */ | ||
fsm_rconfreq_down_restart(f); | ||
} else { | ||
FSMDEBUG(("%s: Non-conflicting Configure-Request in opened state, ACKing", PROTO_NAME(f))); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in opened state
Can't it also be in stopped state here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Good catch. I'll fix this. Might be the reason why it didn't work with LCP issues.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice change! (I believe as long as we are not ignoring true ConfReq
s it should be okay.)
Here's an example test log from this PR which works fine.
I've changed things a bit and now this properly handles broken R4 behavior with LCP as well:
@sergeuz could you please take a look once again? Thanks. |
Description
This PR adds a PPP configuration option to ignore standard behavior for receiving a Configure-Request in an already opened state - that is to bring the protocol down and start renegotiation. Instead this option will allow us to respond with ACK immediately without tearing down the protocol if the protocol handler does not disagree with the set of options passed in the request and we are already authenticated and it's not LCP that is going into renegotiation. Otherwise, we'll follow the standard behavior.
NOTE: we are going off standard with this, but it should be an acceptable behavior and the PPP state machine should be able to handle this properly.
The reason why we are adding this is because SARA R4 modems have a broken PPP implementation and immediately after we IPCP up, it will send us another often empty Configure-Requests without any options which increases the connection times by a lot due to us having to perform the renegotiation.
An example of IPCP behavior:
With this option enabled (and we are only enabling it for R4-based devices) the conversation looks like this:
This change cuts down connection times on R4-based devices by 10-20 seconds in some cases and also allows us to get out of the renegotiation loop in LCP (don't have a log currently at hand).
References