89#include "netif/ppp/ppp_opts.h"
90#if PPP_SUPPORT && PPPOE_SUPPORT
98#ifdef PACK_STRUCT_USE_INCLUDES
99# include "arch/bpstruct.h"
109#ifdef PACK_STRUCT_USE_INCLUDES
110# include "arch/epstruct.h"
113#ifdef PACK_STRUCT_USE_INCLUDES
114# include "arch/bpstruct.h"
122#ifdef PACK_STRUCT_USE_INCLUDES
123# include "arch/epstruct.h"
127#define PPPOE_STATE_INITIAL 0
128#define PPPOE_STATE_PADI_SENT 1
129#define PPPOE_STATE_PADR_SENT 2
130#define PPPOE_STATE_SESSION 3
132#define PPPOE_STATE_PADO_SENT 1
134#define PPPOE_HEADERLEN sizeof(struct pppoehdr)
135#define PPPOE_VERTYPE 0x11
137#define PPPOE_TAG_EOL 0x0000
138#define PPPOE_TAG_SNAME 0x0101
139#define PPPOE_TAG_ACNAME 0x0102
140#define PPPOE_TAG_HUNIQUE 0x0103
141#define PPPOE_TAG_ACCOOKIE 0x0104
142#define PPPOE_TAG_VENDOR 0x0105
143#define PPPOE_TAG_RELAYSID 0x0110
144#define PPPOE_TAG_SNAME_ERR 0x0201
145#define PPPOE_TAG_ACSYS_ERR 0x0202
146#define PPPOE_TAG_GENERIC_ERR 0x0203
148#define PPPOE_CODE_PADI 0x09
149#define PPPOE_CODE_PADO 0x07
150#define PPPOE_CODE_PADR 0x19
151#define PPPOE_CODE_PADS 0x65
152#define PPPOE_CODE_PADT 0xA7
154#ifndef PPPOE_MAX_AC_COOKIE_LEN
155#define PPPOE_MAX_AC_COOKIE_LEN 64
159 struct pppoe_softc *next;
160 struct netif *sc_ethif;
168 u8_t *sc_service_name;
169 u8_t *sc_concentrator_name;
171 u8_t sc_ac_cookie[PPPOE_MAX_AC_COOKIE_LEN];
172 u8_t sc_ac_cookie_len;
177 u8_t sc_padi_retried;
178 u8_t sc_padr_retried;
184ppp_pcb *pppoe_create(
struct netif *pppif,
186 const char *service_name,
const char *concentrator_name,
187 ppp_link_status_cb_fn link_status_cb,
void *ctx_cb);
#define PACK_STRUCT_BEGIN
#define PACK_STRUCT_FLD_8(x)
#define PACK_STRUCT_FIELD(x)