summaryrefslogtreecommitdiffstats
path: root/gatchat/ppp_lcp.c
AgeCommit message (Collapse)AuthorFilesLines
2014-06-21gatchat: implement PAP authenticationPhilip Paeps1-19/+43
Make the authentication method configurable, CHAP or PAP, defaulting to CHAP (i.e.: previous behaviour). Implementation details: o If PAP is configured, we NAK the CHAP authentication protocol option in LCP configuration requests and suggest PAP instead. This works around the amusing requirement of 3GPP TS 29.061 that modems must send a forced positive acknowledgement of the authentication method tried (i.e.: the modem will successfully accept any CHAP handshake, but if the network only supports PAP, the modem will hang up when it tries and fails to activate the PDP context) o The PAP Authenticate-Request is resent a hard-coded three times at ten-second intervals. This may be a bit too persistent. Chances are if it doesn't work the first time, it'll never work, but the RFC insists that we MUST retry.
2011-10-10gatchat: Update copyright informationMarcel Holtmann1-1/+1
2011-06-29ppp: Don't regenerate options when unchangedDenis Kenzior1-0/+8
2011-06-29GAtPPP: Add PFC option supportGuillaume Zajac1-3/+32
2011-06-29GAtPPP: Add ACFC option supportGuillaume Zajac1-3/+32
2011-02-28ppp: Remove some g_printsDenis Kenzior1-2/+0
2011-02-16PPP: Use default ACCM (0xffffffff) to trasmitMartin Xu1-3/+5
Using my Huawei EM770W modem, if set ACCM as 0x00000000, RXJ- event breaks PPP link, after IP package transmit for a while. Using default ACCM, the issue can be fixed. I tested it at China Unicom networks.
2011-02-14PPP: Fix transmit ACCM and receive ACCM mixupMartin Xu1-2/+14
According to RFC1662 Section 7.1, ACCM Configuration Option is used to inform the peer which control characters MUST remain mapped when the peer sends them.
2010-11-29gatchat: explicitly compare pointers to NULLLucas De Marchi1-3/+3
This patch was generated by the following semantic patch (http://coccinelle.lip6.fr/) // <smpl> @fix disable is_null,isnt_null1@ expression *E; @@ - !E + E == NULL // </smpl>
2010-07-09ppp: Add MAX_IPCP_FAILURE to avoid timeout quicklyZhenhua Zhang1-1/+1
We use IPCP NAK response to stall the progress of acquiring the client IP address from DHCP server. So we need to increase the max failure of NAKs in IPCP handshaking.
2010-06-29ppp: Refactor server-side APIDenis Kenzior1-2/+2
The biggest update here is that the server needs to be in dormant mode by default, so as not to send a Configure-Req to the peer until the peer is ready. This requires adding special constructor for LCP to initialize it to Stopped state instead of initial state. Along with this, we pass the server local IP directly to the ppp server constructor.
2010-04-30ppp: get rid of ppp_enter_phaseDenis Kenzior1-3/+3
This function simply didn't have the context of why the phase was being entered. Instead have each protocol notify GAtPPP as to what is happening. We already had this more or less for IPCP and AUTH events, this just now formalizes it for LCP as well.
2010-04-22ppp: Request MRU if we ever get NAKed with itDenis Kenzior1-3/+45
Huawei E160G hardware seems to NAK our configure request and suggest that it will never send packets bigger than 1440 bytes. Since we don't particularly care (our receive ring buffer is 4K, so it can handle 2048 byte packets), we just re-send the Configure Request with the preferred value.
2010-04-22ppp: Fix trivial copy paste errorDenis Kenzior1-1/+1
2010-04-22ppp: implement MRU optionKristen Carlson Accardi1-0/+4
If the peer requests a MRU option, set the mtu for the network phase. When we are in link establishment phase, we should continue to behave as if no option has been set and the peer should use the default MRU. This option is required for the Huawei E160G modem.
2010-04-14ppp: nak unknown auth protocolKristen Carlson Accardi1-2/+28
If we are sent a Config-Request for an auth proto other than CHAP with MD5, send a NAK.
2010-04-13ppp: remove pfc and acfcKristen Carlson Accardi1-5/+1
We will not support pfc or acfc
2010-04-13ppp: remove references to magic numberKristen Carlson Accardi1-5/+1
We will not support loopback detection.
2010-04-13ppp: Transition the phase directlyDenis Kenzior1-2/+3
Use of the generate event function, while more 'pure' with regard to how the spec views transitions, actually makes code more difficult to read. Instead use phase transitions directly inside gatppp. This still bleeds through a little into lcp code, and probably should be fixed in a better way eventually.
2010-04-13ppp: Let the upper layer handle open / up eventsDenis Kenzior1-10/+0
This removes the need for the layer_started functions in lcp and ipcp. For LCP the link is always up unless the socket has been closed, and for IPCP the link should be opened as soon as LCP is ready anyway.
2010-04-13Merge: make linkDenis Kenzior1-2/+2
2010-04-13ppp: Reset the options whenever the layer is downDenis Kenzior1-5/+13
So we can re-negotiate the options if the layer is opened again.
2010-04-13ppp: Use pppcp_signal functions directlyDenis Kenzior1-27/+0
No real need to wrap them behind lcp_ functions
2010-04-09ppp: Use flags instead of booleans for lcp optionsDenis Kenzior1-3/+5
2010-04-08ppp: Rip out the now unused option string stuffDenis Kenzior1-18/+0
Using wireshark is much easier
2010-04-08ppp: Port LCP to the new option frameworkDenis Kenzior1-73/+99
2010-04-08ppp: Move some one-time setters to the protoDenis Kenzior1-6/+6
2010-04-07ppp: Add rca callbackDenis Kenzior1-0/+18
When the other side acks our options, then let us apply these options locally and start using them
2010-04-07ppp: Remove lcp_protocol_rejectDenis Kenzior1-5/+0
Use pppcp_send_reject_protocol
2010-04-07ppp: Hide away the magic_number in ppp_lcp.cDenis Kenzior1-8/+19
2010-04-06ppp: Verify magic number is not zeroDenis Kenzior1-1/+10
2010-04-05Refactor: Make struct pppcp declaration privateDenis Kenzior1-4/+1
2010-04-05Refactor: add pppcp_set/get_magic_numberDenis Kenzior1-2/+2
2010-04-05Refactor: add pppcp_set_prefixDenis Kenzior1-1/+1
2010-04-05Refactor: add pppcp_get_pppDenis Kenzior1-4/+4
2010-04-05Refactor: add pppcp_set_option_stringsDenis Kenzior1-1/+1
2010-04-05Refactor: Move valid code selection to ipcp/lcpDenis Kenzior1-0/+14
We already have a set_valid_codes function, let us use it
2010-04-05Refactor: Make option_scan more type safeDenis Kenzior1-1/+2
2010-04-05Refactor: Make option_process more typesafeDenis Kenzior1-3/+2
option_process was declared with two gpointer arguments for the sole reason of being used as a GFunc. Casting to a GFunc or re-writing the foreach as a loop is preferable.
2010-04-05Refactor: Add pppcp_set_data & pppcp_get_dataDenis Kenzior1-1/+0
Using these functions makes the code much cleaner than trying to pass the priv pointer everywhere
2010-04-05Make pppcp_code enum a private structureMarcel Holtmann1-14/+1
2010-04-05Make pppcp_event_type enum a private structureMarcel Holtmann1-3/+3
2010-04-02Fix coding style with callback structuresMarcel Holtmann1-6/+6
2010-04-02Refactor: Get rid of (now) pointless commentsDenis Kenzior1-2/+0
2010-04-02Refactor: Get rid of packet handler registrationsDenis Kenzior1-8/+0
There are only about 4 protocols that the current ppp code handles and it is doubtful that it will grow much more. There's no point in having an extensive packet handler registration framework.
2010-04-02Add more missing break statementsMarcel Holtmann1-3/+3
2010-04-02ppp: fix event generation on closeKristen Carlson Accardi1-13/+4
Prevents too early transition to PPP_DEAD
2010-04-01Remove useless pppcp_protocol_data structureMarcel Holtmann1-10/+3
2010-04-01Add debugging for PPP LCP and IPCP optionsMarcel Holtmann1-0/+18
2010-03-26ppp: send Protocol-RejectKristen Carlson Accardi1-0/+5
change ppp_decode to store the length of the decoded frame, so that if we have a packet with a protocol we don't understand, we can send Protocol-Reject packets. Modify ppp_cp code to add support for sending Protocol-Reject packet.