Documentation

Documentation

Includes

netif/ppp/ppp_opts.h

#include "netif/ppp/ppp_opts.h"
#include "netif/ppp/ppp_opts.h"

ppp.h

#include "ppp.h"
#include "ppp.h"

Macros

Marco PPPOL2TP_H

#define PPPOL2TP_H


      

Marco PPPOL2TP_CONTROL_TIMEOUT

#define PPPOL2TP_CONTROL_TIMEOUT        (5*1000) /* base for quick timeout calculation */
/* Timeout */

Marco PPPOL2TP_SLOW_RETRY

#define PPPOL2TP_SLOW_RETRY             (60*1000) /* persistent retry interval */


      

Marco PPPOL2TP_MAXSCCRQ

#define PPPOL2TP_MAXSCCRQ               4        /* retry SCCRQ four times (quickly) */


      

Marco PPPOL2TP_MAXICRQ

#define PPPOL2TP_MAXICRQ                4        /* retry IRCQ four times */


      

Marco PPPOL2TP_MAXICCN

#define PPPOL2TP_MAXICCN                4        /* retry ICCN four times */


      

Marco PPPOL2TP_HEADERFLAG_CONTROL

#define PPPOL2TP_HEADERFLAG_CONTROL     32768
/* L2TP header flags */

Marco PPPOL2TP_HEADERFLAG_LENGTH

#define PPPOL2TP_HEADERFLAG_LENGTH      16384


      

Marco PPPOL2TP_HEADERFLAG_SEQUENCE

#define PPPOL2TP_HEADERFLAG_SEQUENCE    2048


      

Marco PPPOL2TP_HEADERFLAG_OFFSET

#define PPPOL2TP_HEADERFLAG_OFFSET      512


      

Marco PPPOL2TP_HEADERFLAG_PRIORITY

#define PPPOL2TP_HEADERFLAG_PRIORITY    256


      

Marco PPPOL2TP_HEADERFLAG_VERSION

#define PPPOL2TP_HEADERFLAG_VERSION     2


      

Marco PPPOL2TP_HEADERFLAG_CONTROL_MANDATORY

#define PPPOL2TP_HEADERFLAG_CONTROL_MANDATORY    (PPPOL2TP_HEADERFLAG_CONTROL|PPPOL2TP_HEADERFLAG_LENGTH|PPPOL2TP_HEADERFLAG_SEQUENCE|PPPOL2TP_HEADERFLAG_VERSION)
/* Mandatory bits for control: Control, Length, Sequence, Version 2 */

Marco PPPOL2TP_HEADERFLAG_CONTROL_FORBIDDEN

#define PPPOL2TP_HEADERFLAG_CONTROL_FORBIDDEN    (PPPOL2TP_HEADERFLAG_OFFSET|PPPOL2TP_HEADERFLAG_PRIORITY)
/* Forbidden bits for control: Offset, Priority */

Marco PPPOL2TP_HEADERFLAG_DATA_MANDATORY

#define PPPOL2TP_HEADERFLAG_DATA_MANDATORY       (PPPOL2TP_HEADERFLAG_VERSION)
/* Mandatory bits for data: Version 2 */

Marco PPPOL2TP_AVPHEADERFLAG_MANDATORY

#define PPPOL2TP_AVPHEADERFLAG_MANDATORY 32768
/* AVP (Attribute Value Pair) header */

Marco PPPOL2TP_AVPHEADERFLAG_HIDDEN

#define PPPOL2TP_AVPHEADERFLAG_HIDDEN    16384


      

Marco PPPOL2TP_AVPHEADERFLAG_LENGTHMASK

#define PPPOL2TP_AVPHEADERFLAG_LENGTHMASK 1023


      

Marco PPPOL2TP_AVPTYPE_MESSAGE

#define PPPOL2TP_AVPTYPE_MESSAGE     0 /* Message type */
/* -- AVP - Message type */

Marco PPPOL2TP_MESSAGETYPE_SCCRQ

#define PPPOL2TP_MESSAGETYPE_SCCRQ   1 /* Start Control Connection Request */
/* Control Connection Management */

Marco PPPOL2TP_MESSAGETYPE_SCCRP

#define PPPOL2TP_MESSAGETYPE_SCCRP   2 /* Start Control Connection Reply */


      

Marco PPPOL2TP_MESSAGETYPE_SCCCN

#define PPPOL2TP_MESSAGETYPE_SCCCN   3 /* Start Control Connection Connected */


      

Marco PPPOL2TP_MESSAGETYPE_STOPCCN

#define PPPOL2TP_MESSAGETYPE_STOPCCN 4 /* Stop Control Connection Notification */


      

Marco PPPOL2TP_MESSAGETYPE_HELLO

#define PPPOL2TP_MESSAGETYPE_HELLO   6 /* Hello */


      

Marco PPPOL2TP_MESSAGETYPE_OCRQ

#define PPPOL2TP_MESSAGETYPE_OCRQ    7 /* Outgoing Call Request */
/* Call Management */

Marco PPPOL2TP_MESSAGETYPE_OCRP

#define PPPOL2TP_MESSAGETYPE_OCRP    8 /* Outgoing Call Reply */


      

Marco PPPOL2TP_MESSAGETYPE_OCCN

#define PPPOL2TP_MESSAGETYPE_OCCN    9 /* Outgoing Call Connected */


      

Marco PPPOL2TP_MESSAGETYPE_ICRQ

#define PPPOL2TP_MESSAGETYPE_ICRQ   10 /* Incoming Call Request */


      

Marco PPPOL2TP_MESSAGETYPE_ICRP

#define PPPOL2TP_MESSAGETYPE_ICRP   11 /* Incoming Call Reply */


      

Marco PPPOL2TP_MESSAGETYPE_ICCN

#define PPPOL2TP_MESSAGETYPE_ICCN   12 /* Incoming Call Connected */


      

Marco PPPOL2TP_MESSAGETYPE_CDN

#define PPPOL2TP_MESSAGETYPE_CDN    14 /* Call Disconnect Notify */


      

Marco PPPOL2TP_MESSAGETYPE_WEN

#define PPPOL2TP_MESSAGETYPE_WEN    15 /* WAN Error Notify */
/* Error reporting */

Marco PPPOL2TP_MESSAGETYPE_SLI

#define PPPOL2TP_MESSAGETYPE_SLI    16 /* Set Link Info */
/* PPP Session Control */

Marco PPPOL2TP_AVPTYPE_RESULTCODE

#define PPPOL2TP_AVPTYPE_RESULTCODE  1 /* Result code */
/* -- AVP - Result code */

Marco PPPOL2TP_RESULTCODE

#define PPPOL2TP_RESULTCODE          1 /* General request to clear control connection */


      

Marco PPPOL2TP_AVPTYPE_VERSION

#define PPPOL2TP_AVPTYPE_VERSION     2
/* -- AVP - Protocol version (!= L2TP Header version) */

Marco PPPOL2TP_VERSION

#define PPPOL2TP_VERSION        256 /* L2TP Protocol version 1, revision 0 */


      

Marco PPPOL2TP_AVPTYPE_FRAMINGCAPABILITIES

#define PPPOL2TP_AVPTYPE_FRAMINGCAPABILITIES          3 /* Bearer capabilities */
/* -- AVP - Framing capabilities */

Marco PPPOL2TP_FRAMINGCAPABILITIES

#define PPPOL2TP_FRAMINGCAPABILITIES         3 /* Async + Sync framing */


      

Marco PPPOL2TP_AVPTYPE_BEARERCAPABILITIES

#define PPPOL2TP_AVPTYPE_BEARERCAPABILITIES          4 /* Bearer capabilities */
/* -- AVP - Bearer capabilities */

Marco PPPOL2TP_BEARERCAPABILITIES

#define PPPOL2TP_BEARERCAPABILITIES         3 /* Analog + Digital Access */


      

Marco PPPOL2TP_AVPTYPE_TIEBREAKER

#define PPPOL2TP_AVPTYPE_TIEBREAKER  5
/* -- AVP - Tie breaker */

Marco PPPOL2TP_AVPTYPE_HOSTNAME

#define PPPOL2TP_AVPTYPE_HOSTNAME    7 /* Host name */
/* -- AVP - Host name */

Marco PPPOL2TP_HOSTNAME

#define PPPOL2TP_HOSTNAME       "lwIP" /* FIXME: make it configurable */


      

Marco PPPOL2TP_AVPTYPE_VENDORNAME

#define PPPOL2TP_AVPTYPE_VENDORNAME  8 /* Vendor name */
/* -- AVP - Vendor name */

Marco PPPOL2TP_VENDORNAME

#define PPPOL2TP_VENDORNAME     "lwIP" /* FIXME: make it configurable */


      

Marco PPPOL2TP_AVPTYPE_TUNNELID

#define PPPOL2TP_AVPTYPE_TUNNELID    9 /* Assign Tunnel ID */
/* -- AVP - Assign tunnel ID */

Marco PPPOL2TP_AVPTYPE_RECEIVEWINDOWSIZE

#define PPPOL2TP_AVPTYPE_RECEIVEWINDOWSIZE 10 /* Receive window size */
/* -- AVP - Receive window size */

Marco PPPOL2TP_RECEIVEWINDOWSIZE

#define PPPOL2TP_RECEIVEWINDOWSIZE          8 /* FIXME: make it configurable */


      

Marco PPPOL2TP_AVPTYPE_CHALLENGE

#define PPPOL2TP_AVPTYPE_CHALLENGE  11 /* Challenge */
/* -- AVP - Challenge */

Marco PPPOL2TP_AVPTYPE_CAUSECODE

#define PPPOL2TP_AVPTYPE_CAUSECODE  12 /* Cause code*/
/* -- AVP - Cause code */

Marco PPPOL2TP_AVPTYPE_CHALLENGERESPONSE

#define PPPOL2TP_AVPTYPE_CHALLENGERESPONSE  13 /* Challenge response */
/* -- AVP - Challenge response */

Marco PPPOL2TP_AVPTYPE_CHALLENGERESPONSE_SIZE

#define PPPOL2TP_AVPTYPE_CHALLENGERESPONSE_SIZE 16


      

Marco PPPOL2TP_AVPTYPE_SESSIONID

#define PPPOL2TP_AVPTYPE_SESSIONID  14 /* Assign Session ID */
/* -- AVP - Assign session ID */

Marco PPPOL2TP_AVPTYPE_CALLSERIALNUMBER

#define PPPOL2TP_AVPTYPE_CALLSERIALNUMBER  15 /* Call Serial Number */
/* -- AVP - Call serial number */

Marco PPPOL2TP_AVPTYPE_FRAMINGTYPE

#define PPPOL2TP_AVPTYPE_FRAMINGTYPE        19 /* Framing Type */
/* -- AVP - Framing type */

Marco PPPOL2TP_FRAMINGTYPE

#define PPPOL2TP_FRAMINGTYPE        1 /* Sync framing */


      

Marco PPPOL2TP_AVPTYPE_TXCONNECTSPEED

#define PPPOL2TP_AVPTYPE_TXCONNECTSPEED     24 /* TX Connect Speed */
/* -- AVP - TX Connect Speed */

Marco PPPOL2TP_TXCONNECTSPEED

#define PPPOL2TP_TXCONNECTSPEED      100000000 /* Connect speed: 100 Mbits/s */


      

Marco PPPOL2TP_STATE_INITIAL

#define PPPOL2TP_STATE_INITIAL    0
/* L2TP Session state */

Marco PPPOL2TP_STATE_SCCRQ_SENT

#define PPPOL2TP_STATE_SCCRQ_SENT 1


      

Marco PPPOL2TP_STATE_ICRQ_SENT

#define PPPOL2TP_STATE_ICRQ_SENT  2


      

Marco PPPOL2TP_STATE_ICCN_SENT

#define PPPOL2TP_STATE_ICCN_SENT  3


      

Marco PPPOL2TP_STATE_DATA

#define PPPOL2TP_STATE_DATA       4


      

Marco PPPOL2TP_OUTPUT_DATA_HEADER_LEN

#define PPPOL2TP_OUTPUT_DATA_HEADER_LEN  6 /* Our data header len */

      

Functions

Func pppol2tp_create

ppp_pcb *pppol2tp_create(struct netif *pppif,
      struct netif *netif, const ip_addr_t *ipaddr, u16_t port,
      const u8_t *secret, u8_t secret_len,
      ppp_link_status_cb_fn link_status_cb, void *ctx_cb);
/* Create a new L2TP session. */

Vars

Consts

Types

Typedefs

Typedef pppol2tp_pcb

typedef struct pppol2tp_pcb_s pppol2tp_pcb;
/*
 * PPPoL2TP interface control block.
 */