This page describes all changes made to the ip_ppp package, PPP, since its release.
1.17 (2021-02-01, 11:45):
- [LCP] Magic number remained the same in the echo-response as received in the echo-request, therefore the peer interpreted it as a loopback connection.
- In Client mode, PPP won't receive the packets after disconnect.
- [LCP] Receive-Unknown-Code event closed the PPP link, instead of only sending a reject message.
- [LCP] In server mode, config request didn't include the Authentication protocol length in the LCP message length field.
- [CHAP] Name field was not included in the CHAP request/response.
- [VJC] Double mutex lock could occur when VJC packet was received.
- [VJC] TCP data could have not been received if the internal VJC connection was the last (VJC_NUM_CONN-1).
- [IPCP] IPCP negotiation was never completed if VJC was enabled and the peer rejected VJC.
- [IPCP] VJC state was not reset when the link was terminated.
- [IPCP] DNS1/DNS2 address rejection ignored, it was always added to the resent config request, even if it was rejected.
- [PPPSER] MRU size packets were dropped when receiving a PPP frame, as the received length check didn't take header size (4 bytes) and FCS size (2 bytes) into account (only MRU size was check without header and FCS size).
- Standard library memmove() was used instead of psp_memmove().
- PPP internal states added to follow line activation and phases and be able to accept PPP frames in the appropriate states.
- Added ip_ppp_listen() to start listening for an incoming connection request when using PPP in server mode.
1.16 (2019-11-14, 06:39):
- Terminates link in client mode if request for IP address is rejected.
- Connection is faster in client mode: sending of LCP Configuration-Request optimized.
- Bugfix: NULL-pointer de-reference could occur when callback function is set to NULL during connection.
1.15 (2019-10-14, 11:11):
- Client mode was fixed: it reached configured state before PPP negotiation was finished.
- NBNS addresses can be requested in client mode.
- Server mode was fixed: previously it could not reach configured state and DNS addresses were not returned to the client if it requested them.
- Callback function registered with ip_ppp_register_ntf() could cause deadlock if IP function was called.
1.14 (2018-09-06, 12:40):
- Changes due to IP aliasing support for IPv4.
- DNS addresses are requested in client mode.
1.13r2 (2018-08-29, 18:30):
- Document HTML link added to the documentation folder.
- History and document files renamed to the package name.
1.13 (2018-07-20, 17:24):
- Buffer descriptors were not initialized properly, causing reconnection problems.
- g_ppp_ser_mutex was not deleted during ppp_ser_delete(), meaning delete/init sequence always increased the number of allocated mutexes.
1.12 (2018-04-11, 18:33):
- Default DNS1 and DNS2 addresses were ignored in client mode.
- Compiler warnings eliminated.
1.11 (2018-03-05, 12:43):
- Added support for changing PPP, VJC, CHAP, and IPCP parameters dynamically.
1.10 (2018-02-26, 11:09):
- A variable might have been used uninitialized if an error occurred during PPP initialization.
- Successfully locked resources were released incorrectly if an error occurred during PPP initialization.
1.9r2 (2018-01-19, 11:24):
- Added missing configuration template config_ip_ppp_driver_ser.c.
1.9 (2017-11-21, 18:03):
- Added support for a maximum of four PPP interfaces.
1.8 (2017-09-26, 14:41):
- Building up PPP connection (LCP negotiation phase) might fail because of demanding a peer MRU depending on its own MTU.
- PPP interface (PPP serial driver) MTU is limited to 1500 bytes in accordance with RFC 1661.
- In case of any timeout on the connection, the peer is informed about terminating the connection, rather than just closing the connection internally and stopping communication.
- Re-added user PPP state change notification, configurable using ip_ppp_register_ntf(). (This API function already existed but did not operate).
1.7 (2017-08-30, 09:36):
- LCP link negotiation failed in case the remote peer rejected a Configure-Request message.
- Potential deadlock eliminated when initializing, starting, stopping, or deleting the module.
- Updated to work with IP base major version 6.
- Updated to work with IP base major version 5.
- General serial driver used instead of UART. Physical driver is on PSP level now.
- NW driver callbacks might have been called with invalid parameter causing possible error when used with RTOS.
- Resources were not released correctly in ip_ppp_drvser_init() if an error occurred during initialization; this could cause a deadlock with certain RTOSes.
- ip_ppp_drvser_delete() didn't delete the timer resource.
- PPP driver can use external memory pool.
- Initial release.