PPP (Point-to-Point Protocol) More...
Go to the source code of this file.
| Data Structures | |
| struct | PppSettings | 
| PPP settings.  More... | |
| struct | PppFsm | 
| PPP finite state machine.  More... | |
| struct | PppConfig | 
| PPP configuration options.  More... | |
| struct | _PppContext | 
| PPP context.  More... | |
| Macros | |
| #define | PppPacket struct _PppPacket | 
| #define | PppContext struct _PppContext | 
| #define | PPP_SUPPORT DISABLED | 
| #define | PPP_TX_BUFFER_SIZE 4096 | 
| #define | PPP_RX_BUFFER_SIZE 8192 | 
| #define | PPP_MAX_USERNAME_LEN 31 | 
| #define | PPP_MAX_PASSWORD_LEN 31 | 
| #define | PPP_TICK_INTERVAL 500 | 
| #define | PPP_POLLING_INTERVAL 50 | 
| #define | PPP_RESTART_TIMER 3000 | 
| #define | PPP_MAX_CONFIGURE 10 | 
| #define | PPP_MAX_TERMINATE 2 | 
| #define | PPP_MAX_FAILURE 5 | 
| #define | PPP_MASK_CHAR 0x20 | 
| #define | PPP_ESC_CHAR 0x7D | 
| #define | PPP_FLAG_CHAR 0x7E | 
| #define | PPP_DEFAULT_MRU 1500 | 
| #define | PPP_DEFAULT_ACCM 0xFFFFFFFF | 
| #define | PPP_DEFAULT_MAGIC_NUMBER 0 | 
| #define | PPP_MIN_MRU 32 | 
| #define | PPP_MAX_MRU 1500 | 
| #define | PPP_MAX_CONF_REQ_SIZE 128 | 
| #define | PPP_FRAME_HEADER_SIZE 4 | 
| #define | PPP_FCS_SIZE 2 | 
| #define | PPP_MAX_FRAME_SIZE (PPP_FRAME_HEADER_SIZE + PPP_MAX_MRU + PPP_FCS_SIZE) | 
| #define | PPP_ADDR_FIELD 0xFF | 
| #define | PPP_CTRL_FIELD 0x03 | 
| PPP Control field.  More... | |
| Typedefs | |
| typedef error_t(* | PppRandCallback) (uint8_t *data, size_t length) | 
| Random data generation callback function.  More... | |
| typedef bool_t(* | PppAuthCallback) (NetInterface *interface, const char_t *username) | 
| PPP authentication callback function.  More... | |
| Functions | |
| void | pppGetDefaultSettings (PppSettings *settings) | 
| Initialize settings with default values.  More... | |
| error_t | pppInit (PppContext *context, const PppSettings *settings) | 
| PPP initialization.  More... | |
| error_t | pppSetTimeout (NetInterface *interface, systime_t timeout) | 
| Set timeout value for blocking operations.  More... | |
| error_t | pppSetAuthInfo (NetInterface *interface, const char_t *username, const char_t *password) | 
| Set PPP authentication information.  More... | |
| bool_t | pppCheckPassword (NetInterface *interface, const char_t *password) | 
| Password verification.  More... | |
| error_t | pppSendAtCommand (NetInterface *interface, const char_t *data) | 
| Send AT command.  More... | |
| error_t | pppReceiveAtCommand (NetInterface *interface, char_t *data, size_t size) | 
| Wait for an incoming AT command.  More... | |
| error_t | pppConnect (NetInterface *interface) | 
| Establish a PPP connection.  More... | |
| error_t | pppClose (NetInterface *interface) | 
| Close a PPP connection.  More... | |
| void | pppTick (NetInterface *interface) | 
| PPP timer handler.  More... | |
| void | pppProcessFrame (NetInterface *interface, uint8_t *frame, size_t length, NetRxAncillary *ancillary) | 
| Process an incoming PPP frame.  More... | |
| error_t | pppSendFrame (NetInterface *interface, NetBuffer *buffer, size_t offset, uint16_t protocol) | 
| Send a PPP frame.  More... | |
| size_t | pppParseFrameHeader (const uint8_t *frame, size_t length, uint16_t *protocol) | 
| Parse PPP frame header.  More... | |
| uint16_t | pppCalcFcs (const uint8_t *data, size_t length) | 
| FCS calculation.  More... | |
| uint16_t | pppCalcFcsEx (const NetBuffer *buffer, size_t offset, size_t length) | 
| Calculate FCS over a multi-part buffer.  More... | |
| NetBuffer * | pppAllocBuffer (size_t length, size_t *offset) | 
| Allocate a buffer to hold a PPP frame.  More... | |
| Variables | |
| __packed_struct | _PppPacket | 
| LCP/NCP packet header.  More... | |
| uint8_t | identifier | 
| uint16_t | length | 
| uint8_t | data [] | 
| typedef | __packed_struct | 
| Configure-Request, Configure-Ack, Configure-Nak and Configure-Reject packets.  More... | |
| uint8_t | options [] | 
| PppConfigurePacket | |
| PppTerminatePacket | |
| uint8_t | rejectedPacket [] | 
| PppCodeRejPacket | |
| uint16_t | rejectedProtocol | 
| uint8_t | rejectedInfo [] | 
| PppProtocolRejPacket | |
| uint32_t | magicNumber | 
| PppEchoPacket | |
| PppDiscardReqPacket | |
| PppOption | |
| systime_t | pppTickCounter | 
Detailed Description
PPP (Point-to-Point Protocol)
License
SPDX-License-Identifier: GPL-2.0-or-later
Copyright (C) 2010-2025 Oryx Embedded SARL. All rights reserved.
This file is part of CycloneTCP Open.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- Version
- 2.5.4
Definition in file ppp.h.
Macro Definition Documentation
◆ PPP_ADDR_FIELD
◆ PPP_CTRL_FIELD
◆ PPP_DEFAULT_ACCM
◆ PPP_DEFAULT_MAGIC_NUMBER
◆ PPP_DEFAULT_MRU
◆ PPP_ESC_CHAR
◆ PPP_FCS_SIZE
◆ PPP_FLAG_CHAR
◆ PPP_FRAME_HEADER_SIZE
◆ PPP_MASK_CHAR
◆ PPP_MAX_CONF_REQ_SIZE
◆ PPP_MAX_CONFIGURE
◆ PPP_MAX_FAILURE
◆ PPP_MAX_FRAME_SIZE
| #define PPP_MAX_FRAME_SIZE (PPP_FRAME_HEADER_SIZE + PPP_MAX_MRU + PPP_FCS_SIZE) | 
◆ PPP_MAX_MRU
◆ PPP_MAX_PASSWORD_LEN
◆ PPP_MAX_TERMINATE
◆ PPP_MAX_USERNAME_LEN
◆ PPP_MIN_MRU
◆ PPP_POLLING_INTERVAL
◆ PPP_RESTART_TIMER
◆ PPP_RX_BUFFER_SIZE
◆ PPP_SUPPORT
◆ PPP_TICK_INTERVAL
◆ PPP_TX_BUFFER_SIZE
◆ PppContext
| #define PppContext struct _PppContext | 
◆ PppPacket
| #define PppPacket struct _PppPacket | 
Typedef Documentation
◆ PppAuthCallback
| typedef bool_t(* PppAuthCallback) (NetInterface *interface, const char_t *username) | 
◆ PppRandCallback
Enumeration Type Documentation
◆ PppAuthProtocol
| enum PppAuthProtocol | 
◆ PppCode
| enum PppCode | 
Code field values.
◆ PppPhase
| enum PppPhase | 
◆ PppProtocol
| enum PppProtocol | 
Protocol field values.
◆ PppState
| enum PppState | 
Function Documentation
◆ pppAllocBuffer()
| NetBuffer* pppAllocBuffer | ( | size_t | length, | 
| size_t * | offset | ||
| ) | 
◆ pppCalcFcs()
| uint16_t pppCalcFcs | ( | const uint8_t * | data, | 
| size_t | length | ||
| ) | 
◆ pppCalcFcsEx()
| uint16_t pppCalcFcsEx | ( | const NetBuffer * | buffer, | 
| size_t | offset, | ||
| size_t | length | ||
| ) | 
◆ pppCheckPassword()
| bool_t pppCheckPassword | ( | NetInterface * | interface, | 
| const char_t * | password | ||
| ) | 
◆ pppClose()
| error_t pppClose | ( | NetInterface * | interface | ) | 
◆ pppConnect()
| error_t pppConnect | ( | NetInterface * | interface | ) | 
◆ pppGetDefaultSettings()
| void pppGetDefaultSettings | ( | PppSettings * | settings | ) | 
◆ pppInit()
| error_t pppInit | ( | PppContext * | context, | 
| const PppSettings * | settings | ||
| ) | 
◆ pppParseFrameHeader()
| size_t pppParseFrameHeader | ( | const uint8_t * | frame, | 
| size_t | length, | ||
| uint16_t * | protocol | ||
| ) | 
Parse PPP frame header.
- Parameters
- 
  [in] frame Pointer to the PPP frame [in] length Length of the frame, in bytes [out] protocol Value of the Protocol field 
- Returns
- If the PPP header was successfully parsed, the function returns the size of the PPP header, in bytes. If a parsing error occurred, zero is returned
◆ pppProcessFrame()
| void pppProcessFrame | ( | NetInterface * | interface, | 
| uint8_t * | frame, | ||
| size_t | length, | ||
| NetRxAncillary * | ancillary | ||
| ) | 
◆ pppReceiveAtCommand()
| error_t pppReceiveAtCommand | ( | NetInterface * | interface, | 
| char_t * | data, | ||
| size_t | size | ||
| ) | 
◆ pppSendAtCommand()
| error_t pppSendAtCommand | ( | NetInterface * | interface, | 
| const char_t * | data | ||
| ) | 
◆ pppSendFrame()
| error_t pppSendFrame | ( | NetInterface * | interface, | 
| NetBuffer * | buffer, | ||
| size_t | offset, | ||
| uint16_t | protocol | ||
| ) | 
◆ pppSetAuthInfo()
| error_t pppSetAuthInfo | ( | NetInterface * | interface, | 
| const char_t * | username, | ||
| const char_t * | password | ||
| ) | 
◆ pppSetTimeout()
| error_t pppSetTimeout | ( | NetInterface * | interface, | 
| systime_t | timeout | ||
| ) | 
◆ pppTick()
| void pppTick | ( | NetInterface * | interface | ) | 
Variable Documentation
◆ __packed_struct
| typedef __packed_struct | 
Configure-Request, Configure-Ack, Configure-Nak and Configure-Reject packets.
LCP/NCP option.
PPP Discard-Request packet.
Echo-Request and Echo-Reply packet.
Protocol-Reject packet.
Code-Reject packet.
Terminate-Request and Terminate-Ack packet.
◆ _PppPacket
| __packed_struct _PppPacket | 
