Dependents:   Nucleo

Embed: (wiki syntax)

« Back to documentation index

ppp.h File Reference

ppp.h File Reference

PPP (Point-to-Point Protocol) More...

Go to the source code of this file.

Data Structures

struct  _PppPacket
 LCP/NCP packet header. More...
struct  PppSettings
 PPP settings. More...
struct  PppFsm
 PPP finite state machine. More...
struct  PppConfig
 PPP configuration options. More...
struct  _PppContext
 PPP context. More...

Typedefs

typedef error_t(* PppRandCallback )(uint8_t *data, size_t length)
 Random data generation callback function.
typedef bool_t(* PppAuthCallback )(NetInterface *interface, const char_t *username)
 PPP authentication callback function.

Enumerations

enum  PppPhase {
  PPP_PHASE_DEAD = 0, PPP_PHASE_ESTABLISH = 1, PPP_PHASE_AUTHENTICATE = 2, PPP_PHASE_NETWORK = 3,
  PPP_PHASE_TERMINATE = 4
}
 

PPP phases.

More...
enum  PppState
 

LCP/NCP states.

More...
enum  PppProtocol {
  PPP_PROTOCOL_IP = 0x0021, PPP_PROTOCOL_IPV6 = 0x0057, PPP_PROTOCOL_IPCP = 0x8021, PPP_PROTOCOL_IPV6CP = 0x8057,
  PPP_PROTOCOL_LCP = 0xC021, PPP_PROTOCOL_PAP = 0xC023, PPP_PROTOCOL_LQR = 0xC025, PPP_PROTOCOL_CHAP = 0xC223
}
 

Protocol field values.

More...
enum  PppCode {
  PPP_CODE_CONFIGURE_REQ = 1, PPP_CODE_CONFIGURE_ACK = 2, PPP_CODE_CONFIGURE_NAK = 3, PPP_CODE_CONFIGURE_REJ = 4,
  PPP_CODE_TERMINATE_REQ = 5, PPP_CODE_TERMINATE_ACK = 6, PPP_CODE_CODE_REJ = 7, PPP_CODE_PROTOCOL_REJ = 8,
  PPP_CODE_ECHO_REQ = 9, PPP_CODE_ECHO_REP = 10, PPP_CODE_DISCARD_REQ = 11
}
 

Code field values.

More...
enum  PppAuthProtocol
 

PPP authentication protocols.

More...

Functions

void pppGetDefaultSettings (PppSettings *settings)
 Initialize settings with default values.
error_t pppInit (PppContext *context, const PppSettings *settings)
 PPP initialization.
error_t pppSetTimeout (NetInterface *interface, systime_t timeout)
 Set timeout value for blocking operations.
error_t pppSetAuthInfo (NetInterface *interface, const char_t *username, const char_t *password)
 Set PPP authentication information.
bool_t pppCheckPassword (NetInterface *interface, const char_t *password)
 Password verification.
error_t pppSendAtCommand (NetInterface *interface, const char_t *data)
 Send AT command.
error_t pppReceiveAtCommand (NetInterface *interface, char_t *data, size_t size)
 Wait for an incoming AT command.
error_t pppConnect (NetInterface *interface)
 Establish a PPP connection.
error_t pppClose (NetInterface *interface)
 Close a PPP connection.
void pppTick (NetInterface *interface)
 PPP timer handler.
void pppProcessFrame (NetInterface *interface, uint8_t *frame, size_t length)
 Process an incoming PPP frame.
error_t pppSendFrame (NetInterface *interface, NetBuffer *buffer, size_t offset, uint16_t protocol)
 Send a PPP frame.
size_t pppParseFrameHeader (const uint8_t *frame, size_t length, uint16_t *protocol)
 Parse PPP frame header.
uint16_t pppCalcFcs (const uint8_t *data, size_t length)
 FCS calculation.
uint16_t pppCalcFcsEx (const NetBuffer *buffer, size_t offset, size_t length)
 Calculate FCS over a multi-part buffer.
NetBufferpppAllocBuffer (size_t length, size_t *offset)
 Allocate a buffer to hold a PPP frame.

Detailed Description

PPP (Point-to-Point Protocol)

License

Copyright (C) 2010-2017 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.

Author:
Oryx Embedded SARL (www.oryx-embedded.com)
Version:
1.7.6

Definition in file ppp.h.


Typedef Documentation

typedef bool_t(* PppAuthCallback)(NetInterface *interface, const char_t *username)

PPP authentication callback function.

Definition at line 365 of file ppp.h.

typedef error_t(* PppRandCallback)(uint8_t *data, size_t length)

Random data generation callback function.

Definition at line 358 of file ppp.h.


Enumeration Type Documentation

PPP authentication protocols.

Definition at line 227 of file ppp.h.

enum PppCode

Code field values.

Enumerator:
PPP_CODE_CONFIGURE_REQ 

Configure-Request.

PPP_CODE_CONFIGURE_ACK 

Configure-Ack.

PPP_CODE_CONFIGURE_NAK 

Configure-Nak.

PPP_CODE_CONFIGURE_REJ 

Configure-Reject.

PPP_CODE_TERMINATE_REQ 

Terminate-Request.

PPP_CODE_TERMINATE_ACK 

Terminate-Ack.

PPP_CODE_CODE_REJ 

Code-Reject.

PPP_CODE_PROTOCOL_REJ 

Protocol-Reject.

PPP_CODE_ECHO_REQ 

Echo-Request.

PPP_CODE_ECHO_REP 

Echo-Reply.

PPP_CODE_DISCARD_REQ 

Discard-Request.

Definition at line 207 of file ppp.h.

enum PppPhase

PPP phases.

Enumerator:
PPP_PHASE_DEAD 

Link dead.

PPP_PHASE_ESTABLISH 

Link establishment phase.

PPP_PHASE_AUTHENTICATE 

Authentication phase.

PPP_PHASE_NETWORK 

Network-layer protocol phase.

PPP_PHASE_TERMINATE 

Link termination phase.

Definition at line 157 of file ppp.h.

Protocol field values.

Enumerator:
PPP_PROTOCOL_IP 

Internet Protocol.

PPP_PROTOCOL_IPV6 

Internet Protocol version 6.

PPP_PROTOCOL_IPCP 

IP Control Protocol.

PPP_PROTOCOL_IPV6CP 

IPv6 Control Protocol.

PPP_PROTOCOL_LCP 

Link Control Protocol.

PPP_PROTOCOL_PAP 

Password Authentication Protocol.

PPP_PROTOCOL_LQR 

Link Quality Report.

PPP_PROTOCOL_CHAP 

Challenge Handshake Authentication Protocol.

Definition at line 190 of file ppp.h.

enum PppState

LCP/NCP states.

Definition at line 171 of file ppp.h.


Function Documentation

NetBuffer* pppAllocBuffer ( size_t  length,
size_t *  offset 
)

Allocate a buffer to hold a PPP frame.

Parameters:
[in]lengthDesired payload length
[out]offsetOffset to the first byte of the payload
Returns:
The function returns a pointer to the newly allocated buffer. If the system is out of resources, NULL is returned

Definition at line 1263 of file ppp.c.

uint16_t pppCalcFcs ( const uint8_t *  data,
size_t  length 
)

FCS calculation.

Parameters:
[in]dataPointer to the data over which to calculate the FCS
[in]lengthNumber of bytes to process
Returns:
Resulting FCS value

Definition at line 1178 of file ppp.c.

uint16_t pppCalcFcsEx ( const NetBuffer buffer,
size_t  offset,
size_t  length 
)

Calculate FCS over a multi-part buffer.

Parameters:
[in]bufferPointer to the multi-part buffer
[in]offsetOffset from the beginning of the buffer
[in]lengthNumber of bytes to process
Returns:
Resulting FCS value

Definition at line 1206 of file ppp.c.

bool_t pppCheckPassword ( NetInterface *  interface,
const char_t *  password 
)

Password verification.

Parameters:
[in]interfaceUnderlying network interface
[in]passwordNULL-terminated string containing the password to be checked
Returns:
TRUE if the password is valid, else FALSE

Definition at line 269 of file ppp.c.

error_t pppClose ( NetInterface *  interface )

Close a PPP connection.

Parameters:
[in]interfaceUnderlying network interface
Returns:
Error code

Definition at line 725 of file ppp.c.

error_t pppConnect ( NetInterface *  interface )

Establish a PPP connection.

Parameters:
[in]interfaceUnderlying network interface
Returns:
Error code

Definition at line 457 of file ppp.c.

void pppGetDefaultSettings ( PppSettings settings )

Initialize settings with default values.

Parameters:
[out]settingsStructure that contains PPP settings

Definition at line 94 of file ppp.c.

error_t pppInit ( PppContext *  context,
const PppSettings settings 
)

PPP initialization.

Parameters:
[in]contextPointer to the PPP context
[in]settingsPPP specific settings
Returns:
Error code

Definition at line 120 of file ppp.c.

size_t pppParseFrameHeader ( const uint8_t *  frame,
size_t  length,
uint16_t *  protocol 
)

Parse PPP frame header.

Parameters:
[in]framePointer to the PPP frame
[in]lengthLength of the frame, in bytes
[out]protocolValue 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

Definition at line 1106 of file ppp.c.

void pppProcessFrame ( NetInterface *  interface,
uint8_t *  frame,
size_t  length 
)

Process an incoming PPP frame.

Parameters:
[in]interfaceUnderlying network interface
[in]frameIncoming PPP frame to process
[in]lengthTotal frame length

Definition at line 887 of file ppp.c.

error_t pppReceiveAtCommand ( NetInterface *  interface,
char_t *  data,
size_t  size 
)

Wait for an incoming AT command.

Parameters:
[in]interfaceUnderlying network interface
[out]dataBuffer where to store the incoming AT command
[in]sizeSize of the buffer, in bytes
Returns:
Error code

Definition at line 379 of file ppp.c.

error_t pppSendAtCommand ( NetInterface *  interface,
const char_t *  data 
)

Send AT command.

Parameters:
[in]interfaceUnderlying network interface
[in]dataNULL-terminated string that contains the AT command to be sent
Returns:
Error code

Definition at line 316 of file ppp.c.

error_t pppSendFrame ( NetInterface *  interface,
NetBuffer buffer,
size_t  offset,
uint16_t  protocol 
)

Send a PPP frame.

Parameters:
[in]interfaceUnderlying network interface
[in]bufferMulti-part buffer containing the data
[in]offsetOffset to the first data byte
[in]protocolProtocol field value
Returns:
Error code

Definition at line 1004 of file ppp.c.

error_t pppSetAuthInfo ( NetInterface *  interface,
const char_t *  username,
const char_t *  password 
)

Set PPP authentication information.

Parameters:
[in]interfaceUnderlying network interface
[in]usernameNULL-terminated string containing the user name to be used
[in]passwordNULL-terminated string containing the password to be used
Returns:
Error code

Definition at line 231 of file ppp.c.

error_t pppSetTimeout ( NetInterface *  interface,
systime_t  timeout 
)

Set timeout value for blocking operations.

Parameters:
[in]interfaceUnderlying network interface
[in]timeoutMaximum time to wait
Returns:
Error code

Definition at line 195 of file ppp.c.

void pppTick ( NetInterface *  interface )

PPP timer handler.

This routine must be periodically called by the TCP/IP stack to manage retransmissions

Parameters:
[in]interfaceUnderlying network interface

Definition at line 844 of file ppp.c.