Documentation
Includes
netif/ppp/ppp_opts.h
#include "netif/ppp/ppp_opts.h"
ppp_settings.h
#include "ppp_settings.h"
stdio.h
#include <stdio.h> /* formats */
stdarg.h
#include <stdarg.h>
string.h
#include <string.h>
stdlib.h
#include <stdlib.h> /* strtol() */
lwip/netif.h
#include "lwip/netif.h"
lwip/def.h
#include "lwip/def.h"
lwip/timeouts.h
#include "lwip/timeouts.h"
ppp.h
#include "ppp.h"
pppdebug.h
#include "pppdebug.h"
Macros
Marco LWIP_HDR_PPP_IMPL_H
#define LWIP_HDR_PPP_IMPL_H
Marco PPP_CTRL_PBUF_TYPE
#define PPP_CTRL_PBUF_TYPE PBUF_RAM
Marco PPP_CTRL_PBUF_MAX_SIZE
#define PPP_CTRL_PBUF_MAX_SIZE 512
Marco PPP_CTRL_PBUF_TYPE
#define PPP_CTRL_PBUF_TYPE PBUF_POOL
Marco PPP_CTRL_PBUF_MAX_SIZE
#define PPP_CTRL_PBUF_MAX_SIZE PBUF_POOL_BUFSIZE
Marco PPP_ADDRESS(p)
#define PPP_ADDRESS(p) (((u_char *)(p))[0])
Marco PPP_CONTROL(p)
#define PPP_CONTROL(p) (((u_char *)(p))[1])
Marco PPP_PROTOCOL(p)
#define PPP_PROTOCOL(p) ((((u_char *)(p))[2] << 8) + ((u_char *)(p))[3])
Marco PPP_ALLSTATIONS
#define PPP_ALLSTATIONS 255 /* All-Stations broadcast address */
Marco PPP_UI
#define PPP_UI 3 /* Unnumbered Information */
Marco PPP_FLAG
#define PPP_FLAG 7e /* Flag Sequence */
Marco PPP_ESCAPE
#define PPP_ESCAPE 7d /* Asynchronous Control Escape */
Marco PPP_TRANS
#define PPP_TRANS 32 /* Asynchronous transparency modifier */
Marco PPP_IP
#define PPP_IP 33 /* Internet Protocol */
Marco PPP_AT
#define PPP_AT 41 /* AppleTalk Protocol */
Marco PPP_IPX
#define PPP_IPX 2b /* IPX protocol */
Marco PPP_VJC_COMP
#define PPP_VJC_COMP 2d /* VJ compressed TCP */
Marco PPP_VJC_UNCOMP
#define PPP_VJC_UNCOMP 47 /* VJ uncompressed TCP */
Marco PPP_IPV6
#define PPP_IPV6 87 /* Internet Protocol Version 6 */
Marco PPP_COMP
#define PPP_COMP 15d /* compressed packet */
Marco PPP_IPCP
#define PPP_IPCP 32801 /* IP Control Protocol */
Marco PPP_ATCP
#define PPP_ATCP 32809 /* AppleTalk Control Protocol */
Marco PPP_IPXCP
#define PPP_IPXCP 2050b /* IPX Control Protocol */
Marco PPP_IPV6CP
#define PPP_IPV6CP 32855 /* IPv6 Control Protocol */
Marco PPP_CCP
#define PPP_CCP 2063d /* Compression Control Protocol */
Marco PPP_ECP
#define PPP_ECP 32851 /* Encryption Control Protocol */
Marco PPP_LCP
#define PPP_LCP 0xc021 /* Link Control Protocol */
Marco PPP_PAP
#define PPP_PAP 0xc023 /* Password Authentication Protocol */
Marco PPP_LQR
#define PPP_LQR 0xc025 /* Link Quality Report protocol */
Marco PPP_CHAP
#define PPP_CHAP 0xc223 /* Cryptographic Handshake Auth. Protocol */
Marco PPP_CBCP
#define PPP_CBCP 0xc029 /* Callback Control Protocol */
Marco PPP_EAP
#define PPP_EAP 0xc227 /* Extensible Authentication Protocol */
Marco EPD_NULL
#define EPD_NULL 0 /* null discriminator, no data */
Marco EPD_LOCAL
#define EPD_LOCAL 1
Marco EPD_IP
#define EPD_IP 2
Marco EPD_MAC
#define EPD_MAC 3
Marco EPD_MAGIC
#define EPD_MAGIC 4
Marco EPD_PHONENUM
#define EPD_PHONENUM 5
Marco PPP_OCTETS_DIRECTION_SUM
#define PPP_OCTETS_DIRECTION_SUM 0
Marco PPP_OCTETS_DIRECTION_IN
#define PPP_OCTETS_DIRECTION_IN 1
Marco PPP_OCTETS_DIRECTION_OUT
#define PPP_OCTETS_DIRECTION_OUT 2
Marco PPP_OCTETS_DIRECTION_MAXOVERAL
#define PPP_OCTETS_DIRECTION_MAXOVERAL 3
Marco PPP_OCTETS_DIRECTION_MAXSESSION
#define PPP_OCTETS_DIRECTION_MAXSESSION 4
#define PPP_DATAINPUT 0
Marco PAP_WITHPEER
#define PAP_WITHPEER 1
Marco PAP_PEER
#define PAP_PEER 2
Marco CHAP_WITHPEER
#define CHAP_WITHPEER 4
Marco CHAP_PEER
#define CHAP_PEER 8
Marco EAP_WITHPEER
#define EAP_WITHPEER 16
Marco EAP_PEER
#define EAP_PEER 32
Marco CHAP_MD5_WITHPEER
#define CHAP_MD5_WITHPEER 64
Marco CHAP_MD5_PEER
#define CHAP_MD5_PEER 128
Marco CHAP_MS_SHIFT
#define CHAP_MS_SHIFT 8 /* LSB position for MS auths */
Marco CHAP_MS_WITHPEER
#define CHAP_MS_WITHPEER 256
Marco CHAP_MS_PEER
#define CHAP_MS_PEER 512
Marco CHAP_MS2_WITHPEER
#define CHAP_MS2_WITHPEER 1024
Marco CHAP_MS2_PEER
#define CHAP_MS2_PEER 2048
Marco CHAP_MDTYPE_SUPPORTED
#define CHAP_MDTYPE_SUPPORTED (MDTYPE_MICROSOFT_V2 | MDTYPE_MICROSOFT | MDTYPE_MD5)
Marco CHAP_MDTYPE_SUPPORTED
#define CHAP_MDTYPE_SUPPORTED (MDTYPE_MD5)
Marco CHAP_MDTYPE_SUPPORTED
#define CHAP_MDTYPE_SUPPORTED (MDTYPE_NONE)
Marco GETCHAR(c, cp)
#define GETCHAR(c, cp) { \
(c) = *(cp)++; \
}
Marco PUTCHAR(c, cp)
#define PUTCHAR(c, cp) { \
*(cp)++ = (u_char) (c); \
}
Marco GETSHORT(s, cp)
#define GETSHORT(s, cp) { \
(s) = *(cp)++ << 8; \
(s) |= *(cp)++; \
}
Marco PUTSHORT(s, cp)
#define PUTSHORT(s, cp) { \
*(cp)++ = (u_char) ((s) >> 8); \
*(cp)++ = (u_char) (s); \
}
Marco GETLONG(l, cp)
#define GETLONG(l, cp) { \
(l) = *(cp)++ << 8; \
(l) |= *(cp)++; (l) <<= 8; \
(l) |= *(cp)++; (l) <<= 8; \
(l) |= *(cp)++; \
}
Marco PUTLONG(l, cp)
#define PUTLONG(l, cp) { \
*(cp)++ = (u_char) ((l) >> 24); \
*(cp)++ = (u_char) ((l) >> 16); \
*(cp)++ = (u_char) ((l) >> 8); \
*(cp)++ = (u_char) (l); \
}
Marco INCPTR(n, cp)
#define INCPTR(n, cp) ((cp) += (n))
Marco DECPTR(n, cp)
#define DECPTR(n, cp) ((cp) -= (n))
Marco TIMEOUT(f, a, t)
#define TIMEOUT(f, a, t) do { sys_untimeout((f), (a)); sys_timeout((t)*1000, (f), (a)); } while(0)
Marco TIMEOUTMS(f, a, t)
#define TIMEOUTMS(f, a, t) do { sys_untimeout((f), (a)); sys_timeout((t), (f), (a)); } while(0)
Marco UNTIMEOUT(f, a)
#define UNTIMEOUT(f, a) sys_untimeout((f), (a))
Marco BZERO(s, n)
#define BZERO(s, n) memset(s, 0, n)
Marco BCMP(s1, s2, l)
#define BCMP(s1, s2, l) memcmp(s1, s2, l)
Marco PRINTMSG(m, l)
#define PRINTMSG(m, l) { ppp_info("Remote message: %0.*v", l, m); }
#define MAKEHEADER(p, t) { \
PUTCHAR(PPP_ALLSTATIONS, p); \
PUTCHAR(PPP_UI, p); \
PUTSHORT(t, p); }
Marco mp_bundle_terminated()
#define mp_bundle_terminated() /* nothing */
Marco mp_exit_bundle()
#define mp_exit_bundle() /* nothing */
Marco doing_multilink
#define doing_multilink 0
Marco multilink_master
#define multilink_master 0
Functions
Func ppp_init
int ppp_init(void);
Func ppp_new
ppp_pcb *ppp_new(struct netif *pppif, const struct link_callbacks *callbacks, void *link_ctx_cb,
ppp_link_status_cb_fn link_status_cb, void *ctx_cb);
Func ppp_start
void ppp_start(ppp_pcb *pcb);
Func ppp_link_failed
void ppp_link_failed(ppp_pcb *pcb);
Func ppp_link_end
void ppp_link_end(ppp_pcb *pcb);
void ppp_input(ppp_pcb *pcb, struct pbuf *pb);
Func ppp_write
err_t ppp_write(ppp_pcb *pcb, struct pbuf *p);
Func ppp_link_terminated
void ppp_link_terminated(ppp_pcb *pcb);
Func new_phase
void new_phase(ppp_pcb *pcb, int p);
Func ppp_send_config
int ppp_send_config(ppp_pcb *pcb, int mtu, u32_t accm, int pcomp, int accomp);
Func ppp_recv_config
int ppp_recv_config(ppp_pcb *pcb, int mru, u32_t accm, int pcomp, int accomp);
Func sifaddr
int sifaddr(ppp_pcb *pcb, u32_t our_adr, u32_t his_adr, u32_t netmask);
Func cifaddr
int cifaddr(ppp_pcb *pcb, u32_t our_adr, u32_t his_adr);
Func sifproxyarp
int sifproxyarp(ppp_pcb *pcb, u32_t his_adr);
Func cifproxyarp
int cifproxyarp(ppp_pcb *pcb, u32_t his_adr);
Func sdns
int sdns(ppp_pcb *pcb, u32_t ns1, u32_t ns2);
Func cdns
int cdns(ppp_pcb *pcb, u32_t ns1, u32_t ns2);
Func sifvjcomp
int sifvjcomp(ppp_pcb *pcb, int vjcomp, int cidcomp, int maxcid);
Func sifup
int sifup(ppp_pcb *pcb);
Func sifdown
int sifdown (ppp_pcb *pcb);
Func get_mask
u32_t get_mask(u32_t addr);
Func sif6addr
int sif6addr(ppp_pcb *pcb, eui64_t our_eui64, eui64_t his_eui64);
Func cif6addr
int cif6addr(ppp_pcb *pcb, eui64_t our_eui64, eui64_t his_eui64);
Func sif6up
int sif6up(ppp_pcb *pcb);
Func sif6down
int sif6down (ppp_pcb *pcb);
Func sifnpmode
int sifnpmode(ppp_pcb *pcb, int proto, enum NPmode mode);
Func netif_set_mtu
void netif_set_mtu(ppp_pcb *pcb, int mtu);
Func netif_get_mtu
int netif_get_mtu(ppp_pcb *pcb);
Func ccp_test
int ccp_test(ppp_pcb *pcb, u_char *opt_ptr, int opt_len, int for_transmit);
Func ccp_set
void ccp_set(ppp_pcb *pcb, u8_t isopen, u8_t isup, u8_t receive_method, u8_t transmit_method);
Func ccp_reset_comp
void ccp_reset_comp(ppp_pcb *pcb);
Func ccp_reset_decomp
void ccp_reset_decomp(ppp_pcb *pcb);
Func ccp_fatal_error
int ccp_fatal_error(ppp_pcb *pcb);
Func get_idle_time
int get_idle_time(ppp_pcb *pcb, struct ppp_idle *ip);
Func get_loop_output
int get_loop_output(void);
Func print_link_stats
void print_link_stats(void);
Func reset_link_stats
void reset_link_stats(int u);
Func update_link_stats
void update_link_stats(int u);
Func link_required
void link_required(ppp_pcb *pcb);
Func link_terminated
void link_terminated(ppp_pcb *pcb);
Func link_down
void link_down(ppp_pcb *pcb);
Func upper_layers_down
void upper_layers_down(ppp_pcb *pcb);
Func link_established
void link_established(ppp_pcb *pcb);
Func start_networks
void start_networks(ppp_pcb *pcb);
Func continue_networks
void continue_networks(ppp_pcb *pcb);
Func auth_check_passwd
int auth_check_passwd(ppp_pcb *pcb, char *auser, int userlen, char *apasswd, int passwdlen, const char **msg, int *msglen);
Func auth_peer_fail
void auth_peer_fail(ppp_pcb *pcb, int protocol);
Func auth_peer_success
void auth_peer_success(ppp_pcb *pcb, int protocol, int prot_flavor, const char *name, int namelen);
Func auth_withpeer_fail
void auth_withpeer_fail(ppp_pcb *pcb, int protocol);
Func auth_withpeer_success
void auth_withpeer_success(ppp_pcb *pcb, int protocol, int prot_flavor);
Func np_up
void np_up(ppp_pcb *pcb, int proto);
Func np_down
void np_down(ppp_pcb *pcb, int proto);
Func np_finished
void np_finished(ppp_pcb *pcb, int proto);
Func get_secret
int get_secret(ppp_pcb *pcb, const char *client, const char *server, char *secret, int *secret_len, int am_server);
Func demand_conf
void demand_conf (void);
Func demand_block
void demand_block (void);
Func demand_unblock
void demand_unblock (void);
Func demand_discard
void demand_discard (void);
Func demand_rexmit
void demand_rexmit (int, u32_t);
Func loop_chars
int loop_chars (unsigned char *, int);
Func loop_frame
int loop_frame (unsigned char *, int);
Func mp_check_options
void mp_check_options (void);
Func mp_join_bundle
int mp_join_bundle (void);
Func mp_exit_bundle
void mp_exit_bundle (void);
Func mp_bundle_terminated
void mp_bundle_terminated (void);
Func str_to_epdisc
int str_to_epdisc (struct epdisc *, char *);
Func ppp_print_string
void ppp_print_string(const u_char *p, int len, void (*printer) (void *, const char *, ...), void *arg);
Func ppp_slprintf
int ppp_slprintf(char *buf, int buflen, const char *fmt, ...);
Func ppp_vslprintf
int ppp_vslprintf(char *buf, int buflen, const char *fmt, va_list args);
Func ppp_strlcpy
size_t ppp_strlcpy(char *dest, const char *src, size_t len);
Func ppp_strlcat
size_t ppp_strlcat(char *dest, const char *src, size_t len);
Func ppp_dbglog
void ppp_dbglog(const char *fmt, ...);
Func ppp_info
void ppp_info(const char *fmt, ...);
Func ppp_notice
void ppp_notice(const char *fmt, ...);
Func ppp_warn
void ppp_warn(const char *fmt, ...);
Func ppp_error
void ppp_error(const char *fmt, ...);
Func ppp_fatal
void ppp_fatal(const char *fmt, ...);
Func ppp_dump_packet
void ppp_dump_packet(ppp_pcb *pcb, const char *tag, unsigned char *p, int len);
Vars
Variable char
char *epdisc_to_str (struct epdisc *);
Consts
Const
const char * protocol_name(int proto);
Types
Typedefs