#ifndef _PPP_MSG_H
#define _PPP_MSG_H
#include <sys/types.h>
#define PPP_PATH "/var/run/pppconfd\0"
struct ppp_msg_hdr {
u_int32_t m_type; u_int32_t m_result; u_int32_t m_cookie; u_int32_t m_link; u_int32_t m_len; };
struct ppp_msg {
u_int32_t m_type; u_int32_t m_result; u_int32_t m_cookie; u_int32_t m_link; u_int32_t m_len; u_char m_data[1]; };
enum {
PPP_VERSION = 1,
PPP_STATUS,
PPP_CONNECT,
PPP_DISCONNECT = 5,
PPP_GETOPTION,
PPP_SETOPTION,
PPP_ENABLE_EVENT,
PPP_DISABLE_EVENT,
PPP_EVENT,
PPP_GETNBLINKS,
PPP_GETLINKBYINDEX
};
struct ppp_opt_hdr {
u_int32_t o_type;
};
struct ppp_opt {
u_int32_t o_type;
u_char o_data[1];
};
enum {
PPP_OPT_DEV_NAME = 1, PPP_OPT_DEV_SPEED, PPP_OPT_DEV_CONNECTSCRIPT,
PPP_OPT_COMM_IDLETIMER, PPP_OPT_COMM_REMOTEADDR,
PPP_OPT_AUTH_PROTO, PPP_OPT_AUTH_NAME, PPP_OPT_AUTH_PASSWD,
PPP_OPT_LCP_HDRCOMP, PPP_OPT_LCP_MRU, PPP_OPT_LCP_MTU, PPP_OPT_LCP_RCACCM, PPP_OPT_LCP_TXACCM,
PPP_OPT_IPCP_HDRCOMP, PPP_OPT_IPCP_LOCALADDR, PPP_OPT_IPCP_REMOTEADDR,
PPP_OPT_LOGFILE, PPP_OPT_RESERVED, PPP_OPT_REMINDERTIMER, PPP_OPT_ALERTENABLE,
PPP_OPT_LCP_ECHO,
PPP_OPT_COMM_CONNECTDELAY, PPP_OPT_COMM_SESSIONTIMER, PPP_OPT_COMM_TERMINALMODE, PPP_OPT_COMM_TERMINALSCRIPT, PPP_OPT_DEV_CAPS,
PPP_OPT_IPCP_USESERVERDNS, PPP_OPT_COMM_CONNECTSPEED, PPP_OPT_SERVICEID
};
enum {
PPP_LCP_HDRCOMP_NONE = 0,
PPP_LCP_HDRCOMP_ADDR = 1,
PPP_LCP_HDRCOMP_PROTO = 2
};
enum {
PPP_COMM_TERM_NONE = 0,
PPP_COMM_TERM_SCRIPT,
PPP_COMM_TERM_WINDOW
};
enum {
PPP_IPCP_HDRCOMP_NONE = 0,
PPP_IPCP_HDRCOMP_VJ
};
enum {
PPP_LCP_ACCM_NONE = 0,
PPP_LCP_ACCM_XONXOFF = 0x000A0000,
PPP_LCP_ACCM_ALL = 0xFFFFFFFF
};
enum {
PPP_AUTH_NONE = 0,
PPP_AUTH_PAPCHAP,
PPP_AUTH_PAP,
PPP_AUTH_CHAP
};
enum {
PPP_IDLE = 0,
PPP_INITIALIZE,
PPP_CONNECTLINK,
PPP_STATERESERVED,
PPP_ESTABLISH,
PPP_AUTHENTICATE,
PPP_CALLBACK,
PPP_NETWORK,
PPP_RUNNING,
PPP_TERMINATE,
PPP_DISCONNECTLINK
};
enum {
PPP_EVT_DISCONNECTED = 1,
PPP_EVT_CONNSCRIPT_STARTED,
PPP_EVT_CONNSCRIPT_FINISHED,
PPP_EVT_TERMSCRIPT_STARTED,
PPP_EVT_TERMSCRIPT_FINISHED,
PPP_EVT_LOWERLAYER_UP,
PPP_EVT_LOWERLAYER_DOWN,
PPP_EVT_LCP_UP,
PPP_EVT_LCP_DOWN,
PPP_EVT_IPCP_UP,
PPP_EVT_IPCP_DOWN,
PPP_EVT_AUTH_STARTED,
PPP_EVT_AUTH_FAILED,
PPP_EVT_AUTH_SUCCEDED
};
struct ppp_opt_echo { u_int16_t interval; u_int16_t failure; };
struct ppp_status {
u_int32_t status;
union {
struct connected {
u_int32_t timeElapsed;
u_int32_t timeRemaining;
u_int32_t inBytes;
u_int32_t inPackets;
u_int32_t inErrors;
u_int32_t outBytes;
u_int32_t outPackets;
u_int32_t outErrors;
} run;
struct disconnected {
u_int32_t lastDiscCause;
} disc;
} s;
};
enum {
PPP_ERR_GEN_ERROR = 256,
PPP_ERR_CONNSCRIPTFAILED,
PPP_ERR_TERMSCRIPTFAILED,
PPP_ERR_LCPFAILED,
PPP_ERR_AUTHFAILED,
PPP_ERR_IDLETIMEOUT,
PPP_ERR_SESSIONTIMEOUT,
PPP_ERR_LOOPBACK,
PPP_ERR_PEERDEAD,
PPP_ERR_DISCSCRIPTFAILED,
PPP_ERR_MOD_NOCARRIER = 512,
PPP_ERR_MOD_BUSY,
PPP_ERR_MOD_NODIALTONE,
PPP_ERR_MOD_ERROR
};
#endif