mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-09-13 02:05:43 +00:00
removed all PPP unit in ppp.c except pih->unit and unit used in debugging output
This commit is contained in:
parent
6e2722a6d3
commit
527d99fd39
@ -656,7 +656,7 @@ link_terminated(unit)
|
|||||||
|
|
||||||
lcp_lowerdown(0);
|
lcp_lowerdown(0);
|
||||||
|
|
||||||
new_phase(unit, PHASE_DEAD);
|
new_phase(pcb, PHASE_DEAD);
|
||||||
ppp_link_terminated(pcb);
|
ppp_link_terminated(pcb);
|
||||||
#if 0
|
#if 0
|
||||||
/*
|
/*
|
||||||
@ -873,7 +873,9 @@ static void
|
|||||||
network_phase(unit)
|
network_phase(unit)
|
||||||
int unit;
|
int unit;
|
||||||
{
|
{
|
||||||
|
#if CBCP_SUPPORT
|
||||||
ppp_pcb *pcb = &ppp_pcb_list[unit];
|
ppp_pcb *pcb = &ppp_pcb_list[unit];
|
||||||
|
#endif
|
||||||
#if 0 /* UNUSED */
|
#if 0 /* UNUSED */
|
||||||
lcp_options *go = &lcp_gotoptions[unit];
|
lcp_options *go = &lcp_gotoptions[unit];
|
||||||
#endif /* UNUSED */
|
#endif /* UNUSED */
|
||||||
|
@ -187,15 +187,15 @@ struct protent *protocols[] = {
|
|||||||
|
|
||||||
/* Prototypes for procedures local to this file. */
|
/* Prototypes for procedures local to this file. */
|
||||||
|
|
||||||
static void ppp_start(int pd); /** Initiate LCP open request */
|
static void ppp_start(ppp_pcb *pcb); /** Initiate LCP open request */
|
||||||
static void ppp_input(int unit, void *arg);
|
static void ppp_input(void *arg);
|
||||||
|
|
||||||
#if PPPOS_SUPPORT
|
#if PPPOS_SUPPORT
|
||||||
static void ppp_receive_wakeup(ppp_pcb *pcb);
|
static void ppp_receive_wakeup(ppp_pcb *pcb);
|
||||||
#endif /* #if PPPOS_SUPPORT */
|
#endif /* #if PPPOS_SUPPORT */
|
||||||
|
|
||||||
static void ppp_stop(int pd);
|
static void ppp_stop(ppp_pcb *pcb);
|
||||||
static void ppp_hup(int pd);
|
static void ppp_hup(ppp_pcb *pcb);
|
||||||
|
|
||||||
#if PPPOS_SUPPORT
|
#if PPPOS_SUPPORT
|
||||||
#if PPP_INPROC_OWNTHREAD
|
#if PPP_INPROC_OWNTHREAD
|
||||||
@ -375,7 +375,7 @@ int ppp_over_serial_open(ppp_pcb *pcb, sio_fd_t fd, ppp_link_status_cb_fn link_s
|
|||||||
* Start the connection and handle incoming events (packet or timeout).
|
* Start the connection and handle incoming events (packet or timeout).
|
||||||
*/
|
*/
|
||||||
PPPDEBUG(LOG_INFO, ("ppp_over_serial_open: unit %d: Connecting\n", pcb->unit));
|
PPPDEBUG(LOG_INFO, ("ppp_over_serial_open: unit %d: Connecting\n", pcb->unit));
|
||||||
ppp_start(pcb->unit);
|
ppp_start(pcb);
|
||||||
#if PPP_INPROC_OWNTHREAD
|
#if PPP_INPROC_OWNTHREAD
|
||||||
sys_thread_new(PPP_THREAD_NAME, ppp_input_thread, (void*)&pcb->rx, PPP_THREAD_STACKSIZE, PPP_THREAD_PRIO);
|
sys_thread_new(PPP_THREAD_NAME, ppp_input_thread, (void*)&pcb->rx, PPP_THREAD_STACKSIZE, PPP_THREAD_PRIO);
|
||||||
#endif /* PPP_INPROC_OWNTHREAD */
|
#endif /* PPP_INPROC_OWNTHREAD */
|
||||||
@ -454,7 +454,7 @@ ppp_close(ppp_pcb *pcb)
|
|||||||
PPPDEBUG(LOG_DEBUG, ("ppp_close: unit %d kill_link -> ppp_stop\n", pcb->unit));
|
PPPDEBUG(LOG_DEBUG, ("ppp_close: unit %d kill_link -> ppp_stop\n", pcb->unit));
|
||||||
pcb->err_code = PPPERR_USER;
|
pcb->err_code = PPPERR_USER;
|
||||||
/* This will leave us at PHASE_DEAD. */
|
/* This will leave us at PHASE_DEAD. */
|
||||||
ppp_stop(pcb->unit);
|
ppp_stop(pcb);
|
||||||
} else
|
} else
|
||||||
#endif /* PPPOE_SUPPORT */
|
#endif /* PPPOE_SUPPORT */
|
||||||
{
|
{
|
||||||
@ -462,7 +462,7 @@ ppp_close(ppp_pcb *pcb)
|
|||||||
PPPDEBUG(LOG_DEBUG, ("ppp_close: unit %d kill_link -> ppp_stop\n", pcb->unit));
|
PPPDEBUG(LOG_DEBUG, ("ppp_close: unit %d kill_link -> ppp_stop\n", pcb->unit));
|
||||||
pcb->err_code = PPPERR_USER;
|
pcb->err_code = PPPERR_USER;
|
||||||
/* This will leave us at PHASE_DEAD. */
|
/* This will leave us at PHASE_DEAD. */
|
||||||
ppp_stop(pcb->unit);
|
ppp_stop(pcb);
|
||||||
#if PPP_INPROC_OWNTHREAD
|
#if PPP_INPROC_OWNTHREAD
|
||||||
ppp_receive_wakeup(pcb);
|
ppp_receive_wakeup(pcb);
|
||||||
#endif /* PPP_INPROC_OWNTHREAD */
|
#endif /* PPP_INPROC_OWNTHREAD */
|
||||||
@ -477,35 +477,31 @@ void
|
|||||||
ppp_sighup(ppp_pcb *pcb)
|
ppp_sighup(ppp_pcb *pcb)
|
||||||
{
|
{
|
||||||
PPPDEBUG(LOG_DEBUG, ("ppp_sighup: unit %d sig_hup -> ppp_hup\n", pcb->unit));
|
PPPDEBUG(LOG_DEBUG, ("ppp_sighup: unit %d sig_hup -> ppp_hup\n", pcb->unit));
|
||||||
ppp_hup(pcb->unit);
|
ppp_hup(pcb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** Initiate LCP open request */
|
/** Initiate LCP open request */
|
||||||
static void ppp_start(int pd) {
|
static void ppp_start(ppp_pcb *pcb) {
|
||||||
PPPDEBUG(LOG_DEBUG, ("ppp_start: unit %d\n", pd));
|
PPPDEBUG(LOG_DEBUG, ("ppp_start: unit %d\n", pcb->unit));
|
||||||
lcp_open(pd); /* Start protocol */
|
lcp_open(pcb->unit); /* Start protocol */
|
||||||
lcp_lowerup(pd);
|
lcp_lowerup(pcb->unit);
|
||||||
PPPDEBUG(LOG_DEBUG, ("ppp_start: finished\n"));
|
PPPDEBUG(LOG_DEBUG, ("ppp_start: finished\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** LCP close request */
|
/** LCP close request */
|
||||||
static void
|
static void ppp_stop(ppp_pcb *pcb) {
|
||||||
ppp_stop(int pd)
|
PPPDEBUG(LOG_DEBUG, ("ppp_stop: unit %d\n", pcb->unit));
|
||||||
{
|
lcp_close(pcb->unit, "User request");
|
||||||
PPPDEBUG(LOG_DEBUG, ("ppp_stop: unit %d\n", pd));
|
|
||||||
lcp_close(pd, "User request");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Called when carrier/link is lost */
|
/** Called when carrier/link is lost */
|
||||||
static void
|
static void ppp_hup(ppp_pcb *pcb) {
|
||||||
ppp_hup(int pd)
|
PPPDEBUG(LOG_DEBUG, ("ppp_hup: unit %d\n", pcb->unit));
|
||||||
{
|
lcp_lowerdown(pcb->unit);
|
||||||
PPPDEBUG(LOG_DEBUG, ("ppp_hup: unit %d\n", pd));
|
link_terminated(pcb->unit);
|
||||||
lcp_lowerdown(pd);
|
|
||||||
link_terminated(pd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -517,13 +513,14 @@ ppp_hup(int pd)
|
|||||||
* this is totally stupid to make room for it and then modify the packet directly
|
* this is totally stupid to make room for it and then modify the packet directly
|
||||||
* or it is used in output ? have to find out...
|
* or it is used in output ? have to find out...
|
||||||
*/
|
*/
|
||||||
static void ppp_input(int unit, void *arg) {
|
static void ppp_input(void *arg) {
|
||||||
ppp_pcb *pcb = &ppp_pcb_list[unit];
|
|
||||||
struct pbuf *nb = (struct pbuf *)arg;
|
struct pbuf *nb = (struct pbuf *)arg;
|
||||||
u16_t protocol;
|
u16_t protocol;
|
||||||
int pd;
|
int unit;
|
||||||
|
ppp_pcb *pcb;
|
||||||
|
|
||||||
pd = ((struct ppp_input_header *)nb->payload)->unit;
|
unit = ((struct ppp_input_header *)nb->payload)->unit;
|
||||||
|
pcb = &ppp_pcb_list[unit];
|
||||||
protocol = ((struct ppp_input_header *)nb->payload)->proto;
|
protocol = ((struct ppp_input_header *)nb->payload)->proto;
|
||||||
|
|
||||||
if(pbuf_header(nb, -(int)sizeof(struct ppp_input_header))) {
|
if(pbuf_header(nb, -(int)sizeof(struct ppp_input_header))) {
|
||||||
@ -532,8 +529,8 @@ static void ppp_input(int unit, void *arg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
LINK_STATS_INC(link.recv);
|
LINK_STATS_INC(link.recv);
|
||||||
snmp_inc_ifinucastpkts(&ppp_pcb_list[pd].netif);
|
snmp_inc_ifinucastpkts(&pcb->netif);
|
||||||
snmp_add_ifinoctets(&ppp_pcb_list[pd].netif, nb->tot_len);
|
snmp_add_ifinoctets(&pcb->netif, nb->tot_len);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Toss all non-LCP packets unless LCP is OPEN.
|
* Toss all non-LCP packets unless LCP is OPEN.
|
||||||
@ -573,38 +570,38 @@ static void ppp_input(int unit, void *arg) {
|
|||||||
|
|
||||||
#if PPPOS_SUPPORT && VJ_SUPPORT
|
#if PPPOS_SUPPORT && VJ_SUPPORT
|
||||||
case PPP_VJC_COMP: /* VJ compressed TCP */
|
case PPP_VJC_COMP: /* VJ compressed TCP */
|
||||||
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: vj_comp in pbuf len=%d\n", pd, nb->len));
|
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: vj_comp in pbuf len=%d\n", pcb->unit, nb->len));
|
||||||
/*
|
/*
|
||||||
* Clip off the VJ header and prepend the rebuilt TCP/IP header and
|
* Clip off the VJ header and prepend the rebuilt TCP/IP header and
|
||||||
* pass the result to IP.
|
* pass the result to IP.
|
||||||
*/
|
*/
|
||||||
if ((vj_uncompress_tcp(&nb, &ppp_pcb_list[pd].vj_comp) >= 0) && (ppp_pcb_list[pd].netif.input)) {
|
if ((vj_uncompress_tcp(&nb, pcb->vj_comp) >= 0) && (pcb->netif.input)) {
|
||||||
ppp_pcb_list[pd].netif.input(nb, &ppp_pcb_list[pd].netif);
|
pcb->netif.input(nb, &pcb->netif);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* Something's wrong so drop it. */
|
/* Something's wrong so drop it. */
|
||||||
PPPDEBUG(LOG_WARNING, ("ppp_input[%d]: Dropping VJ compressed\n", pd));
|
PPPDEBUG(LOG_WARNING, ("ppp_input[%d]: Dropping VJ compressed\n", pcb->unit));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PPP_VJC_UNCOMP: /* VJ uncompressed TCP */
|
case PPP_VJC_UNCOMP: /* VJ uncompressed TCP */
|
||||||
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: vj_un in pbuf len=%d\n", pd, nb->len));
|
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: vj_un in pbuf len=%d\n", pcb->unit, nb->len));
|
||||||
/*
|
/*
|
||||||
* Process the TCP/IP header for VJ header compression and then pass
|
* Process the TCP/IP header for VJ header compression and then pass
|
||||||
* the packet to IP.
|
* the packet to IP.
|
||||||
*/
|
*/
|
||||||
if ((vj_uncompress_uncomp(nb, &ppp_pcb_list[pd].vj_comp) >= 0) && ppp_pcb_list[pd].netif.input) {
|
if ((vj_uncompress_uncomp(nb, pcb->vj_comp) >= 0) && pcb->netif.input) {
|
||||||
ppp_pcb_list[pd].netif.input(nb, &ppp_pcb_list[pd].netif);
|
pcb->netif.input(nb, &pcb->netif);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* Something's wrong so drop it. */
|
/* Something's wrong so drop it. */
|
||||||
PPPDEBUG(LOG_WARNING, ("ppp_input[%d]: Dropping VJ uncompressed\n", pd));
|
PPPDEBUG(LOG_WARNING, ("ppp_input[%d]: Dropping VJ uncompressed\n", pcb->unit));
|
||||||
break;
|
break;
|
||||||
#endif /* PPPOS_SUPPORT && VJ_SUPPORT */
|
#endif /* PPPOS_SUPPORT && VJ_SUPPORT */
|
||||||
|
|
||||||
case PPP_IP: /* Internet Protocol */
|
case PPP_IP: /* Internet Protocol */
|
||||||
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: ip in pbuf len=%d\n", pd, nb->len));
|
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: ip in pbuf len=%d\n", pcb->unit, nb->len));
|
||||||
if (ppp_pcb_list[pd].netif.input) {
|
if (pcb->netif.input) {
|
||||||
ppp_pcb_list[pd].netif.input(nb, &ppp_pcb_list[pd].netif);
|
pcb->netif.input(nb, &pcb->netif);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -619,7 +616,7 @@ static void ppp_input(int unit, void *arg) {
|
|||||||
for (i = 0; (protp = protocols[i]) != NULL; ++i) {
|
for (i = 0; (protp = protocols[i]) != NULL; ++i) {
|
||||||
if (protp->protocol == protocol && protp->enabled_flag) {
|
if (protp->protocol == protocol && protp->enabled_flag) {
|
||||||
nb = ppp_singlebuf(nb);
|
nb = ppp_singlebuf(nb);
|
||||||
(*protp->input)(pd, nb->payload, nb->len);
|
(*protp->input)(pcb->unit, nb->payload, nb->len);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
#if 0 /* UNUSED
|
#if 0 /* UNUSED
|
||||||
@ -633,7 +630,7 @@ static void ppp_input(int unit, void *arg) {
|
|||||||
*/
|
*/
|
||||||
if (protocol == (protp->protocol & ~0x8000) && protp->enabled_flag
|
if (protocol == (protp->protocol & ~0x8000) && protp->enabled_flag
|
||||||
&& protp->datainput != NULL) {
|
&& protp->datainput != NULL) {
|
||||||
(*protp->datainput)(pd, nb->payload, nb->len);
|
(*protp->datainput)(pcb->unit, nb->payload, nb->len);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
#endif /* UNUSED */
|
#endif /* UNUSED */
|
||||||
@ -652,14 +649,14 @@ static void ppp_input(int unit, void *arg) {
|
|||||||
LWIP_ASSERT("pbuf_header failed\n", 0);
|
LWIP_ASSERT("pbuf_header failed\n", 0);
|
||||||
goto drop;
|
goto drop;
|
||||||
}
|
}
|
||||||
lcp_sprotrej(pd, nb->payload, nb->len);
|
lcp_sprotrej(pcb->unit, nb->payload, nb->len);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
drop:
|
drop:
|
||||||
LINK_STATS_INC(link.drop);
|
LINK_STATS_INC(link.drop);
|
||||||
snmp_inc_ifindiscards(&ppp_pcb_list[pd].netif);
|
snmp_inc_ifindiscards(&pcb->netif);
|
||||||
|
|
||||||
out:
|
out:
|
||||||
pbuf_free(nb);
|
pbuf_free(nb);
|
||||||
@ -671,10 +668,10 @@ out:
|
|||||||
* Until we get past the authentication phase, toss all packets
|
* Until we get past the authentication phase, toss all packets
|
||||||
* except LCP, LQR and authentication packets.
|
* except LCP, LQR and authentication packets.
|
||||||
*/
|
*/
|
||||||
if((lcp_phase[pd] <= PHASE_AUTHENTICATE) && (protocol != PPP_LCP)) {
|
if((lcp_phase[pcb->unit] <= PHASE_AUTHENTICATE) && (protocol != PPP_LCP)) {
|
||||||
if(!((protocol == PPP_LQR) || (protocol == PPP_PAP) || (protocol == PPP_CHAP)) ||
|
if(!((protocol == PPP_LQR) || (protocol == PPP_PAP) || (protocol == PPP_CHAP)) ||
|
||||||
(lcp_phase[pd] != PHASE_AUTHENTICATE)) {
|
(lcp_phase[pcb->unit] != PHASE_AUTHENTICATE)) {
|
||||||
PPPDEBUG(LOG_INFO, ("ppp_input: discarding proto 0x%"X16_F" in phase %d\n", protocol, lcp_phase[pd]));
|
PPPDEBUG(LOG_INFO, ("ppp_input: discarding proto 0x%"X16_F" in phase %d\n", protocol, lcp_phase[pcb->unit]));
|
||||||
goto drop;
|
goto drop;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -682,48 +679,48 @@ out:
|
|||||||
switch(protocol) {
|
switch(protocol) {
|
||||||
case PPP_VJC_COMP: /* VJ compressed TCP */
|
case PPP_VJC_COMP: /* VJ compressed TCP */
|
||||||
#if PPPOS_SUPPORT && VJ_SUPPORT
|
#if PPPOS_SUPPORT && VJ_SUPPORT
|
||||||
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: vj_comp in pbuf len=%d\n", pd, nb->len));
|
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: vj_comp in pbuf len=%d\n", pcb->unit, nb->len));
|
||||||
/*
|
/*
|
||||||
* Clip off the VJ header and prepend the rebuilt TCP/IP header and
|
* Clip off the VJ header and prepend the rebuilt TCP/IP header and
|
||||||
* pass the result to IP.
|
* pass the result to IP.
|
||||||
*/
|
*/
|
||||||
if ((vj_uncompress_tcp(&nb, &ppp_pcb_list[pd].vj_comp) >= 0) && (ppp_pcb_list[pd].netif.input)) {
|
if ((vj_uncompress_tcp(&nb, pcb->vj_comp) >= 0) && (pcb->netif.input)) {
|
||||||
ppp_pcb_list[pd].netif.input(nb, &ppp_pcb_list[pd].netif);
|
pcb->netif.input(nb, pcb->netif);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* Something's wrong so drop it. */
|
/* Something's wrong so drop it. */
|
||||||
PPPDEBUG(LOG_WARNING, ("ppp_input[%d]: Dropping VJ compressed\n", pd));
|
PPPDEBUG(LOG_WARNING, ("ppp_input[%d]: Dropping VJ compressed\n", pcb->unit));
|
||||||
#else /* PPPOS_SUPPORT && VJ_SUPPORT */
|
#else /* PPPOS_SUPPORT && VJ_SUPPORT */
|
||||||
/* No handler for this protocol so drop the packet. */
|
/* No handler for this protocol so drop the packet. */
|
||||||
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: drop VJ Comp in %d:%s\n", pd, nb->len, nb->payload));
|
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: drop VJ Comp in %d:%s\n", pcb->unit, nb->len, nb->payload));
|
||||||
#endif /* PPPOS_SUPPORT && VJ_SUPPORT */
|
#endif /* PPPOS_SUPPORT && VJ_SUPPORT */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PPP_VJC_UNCOMP: /* VJ uncompressed TCP */
|
case PPP_VJC_UNCOMP: /* VJ uncompressed TCP */
|
||||||
#if PPPOS_SUPPORT && VJ_SUPPORT
|
#if PPPOS_SUPPORT && VJ_SUPPORT
|
||||||
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: vj_un in pbuf len=%d\n", pd, nb->len));
|
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: vj_un in pbuf len=%d\n", pcb->unit, nb->len));
|
||||||
/*
|
/*
|
||||||
* Process the TCP/IP header for VJ header compression and then pass
|
* Process the TCP/IP header for VJ header compression and then pass
|
||||||
* the packet to IP.
|
* the packet to IP.
|
||||||
*/
|
*/
|
||||||
if ((vj_uncompress_uncomp(nb, &ppp_pcb_list[pd].vj_comp) >= 0) && ppp_pcb_list[pd].netif.input) {
|
if ((vj_uncompress_uncomp(nb, pcb->vj_comp) >= 0) && pcb->netif.input) {
|
||||||
ppp_pcb_list[pd].netif.input(nb, &ppp_pcb_list[pd].netif);
|
pcb->netif.input(nb, pcb->netif);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* Something's wrong so drop it. */
|
/* Something's wrong so drop it. */
|
||||||
PPPDEBUG(LOG_WARNING, ("ppp_input[%d]: Dropping VJ uncompressed\n", pd));
|
PPPDEBUG(LOG_WARNING, ("ppp_input[%d]: Dropping VJ uncompressed\n", pcb->unit));
|
||||||
#else /* PPPOS_SUPPORT && VJ_SUPPORT */
|
#else /* PPPOS_SUPPORT && VJ_SUPPORT */
|
||||||
/* No handler for this protocol so drop the packet. */
|
/* No handler for this protocol so drop the packet. */
|
||||||
PPPDEBUG(LOG_INFO,
|
PPPDEBUG(LOG_INFO,
|
||||||
("ppp_input[%d]: drop VJ UnComp in %d:.*H\n",
|
("ppp_input[%d]: drop VJ UnComp in %d:.*H\n",
|
||||||
pd, nb->len, LWIP_MIN(nb->len * 2, 40), nb->payload));
|
pcb->unit, nb->len, LWIP_MIN(nb->len * 2, 40), nb->payload));
|
||||||
#endif /* PPPOS_SUPPORT && VJ_SUPPORT */
|
#endif /* PPPOS_SUPPORT && VJ_SUPPORT */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PPP_IP: /* Internet Protocol */
|
case PPP_IP: /* Internet Protocol */
|
||||||
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: ip in pbuf len=%d\n", pd, nb->len));
|
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: ip in pbuf len=%d\n", pcb->unit, nb->len));
|
||||||
if (ppp_pcb_list[pd].netif.input) {
|
if (pcb->netif.input) {
|
||||||
ppp_pcb_list[pd].netif.input(nb, &ppp_pcb_list[pd].netif);
|
pcb->netif.input(nb, pcb->netif);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -737,16 +734,16 @@ out:
|
|||||||
*/
|
*/
|
||||||
for (i = 0; (protp = ppp_protocols[i]) != NULL; ++i) {
|
for (i = 0; (protp = ppp_protocols[i]) != NULL; ++i) {
|
||||||
if (protp->protocol == protocol && protp->enabled_flag) {
|
if (protp->protocol == protocol && protp->enabled_flag) {
|
||||||
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: %s len=%d\n", pd, protp->name, nb->len));
|
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: %s len=%d\n", pcb->unit, protp->name, nb->len));
|
||||||
nb = ppp_singlebuf(nb);
|
nb = ppp_singlebuf(nb);
|
||||||
(*protp->input)(pd, nb->payload, nb->len);
|
(*protp->input)(pcb->unit, nb->payload, nb->len);
|
||||||
PPPDEBUG(LOG_DETAIL, ("ppp_input[%d]: packet processed\n", pd));
|
PPPDEBUG(LOG_DETAIL, ("ppp_input[%d]: packet processed\n", pcb->unit));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* No handler for this protocol so reject the packet. */
|
/* No handler for this protocol so reject the packet. */
|
||||||
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: rejecting unsupported proto 0x%"X16_F" len=%d\n", pd, protocol, nb->len));
|
PPPDEBUG(LOG_INFO, ("ppp_input[%d]: rejecting unsupported proto 0x%"X16_F" len=%d\n", pcb->unit, protocol, nb->len));
|
||||||
if (pbuf_header(nb, sizeof(protocol))) {
|
if (pbuf_header(nb, sizeof(protocol))) {
|
||||||
LWIP_ASSERT("pbuf_header failed\n", 0);
|
LWIP_ASSERT("pbuf_header failed\n", 0);
|
||||||
goto drop;
|
goto drop;
|
||||||
@ -755,7 +752,7 @@ out:
|
|||||||
protocol = htons(protocol);
|
protocol = htons(protocol);
|
||||||
#endif /* BYTE_ORDER == LITTLE_ENDIAN */
|
#endif /* BYTE_ORDER == LITTLE_ENDIAN */
|
||||||
SMEMCPY(nb->payload, &protocol, sizeof(protocol));
|
SMEMCPY(nb->payload, &protocol, sizeof(protocol));
|
||||||
lcp_sprotrej(pd, nb->payload, nb->len);
|
lcp_sprotrej(pcb->unit, nb->payload, nb->len);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -866,7 +863,7 @@ void ppp_input_over_ethernet(ppp_pcb *pcb, struct pbuf *pb) {
|
|||||||
pih->proto = in_protocol; /* pih->proto is now in host byte order */
|
pih->proto = in_protocol; /* pih->proto is now in host byte order */
|
||||||
|
|
||||||
/* Dispatch the packet thereby consuming it. */
|
/* Dispatch the packet thereby consuming it. */
|
||||||
ppp_input(pcb->unit, pb);
|
ppp_input(pb);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
drop:
|
drop:
|
||||||
@ -1638,7 +1635,7 @@ static void ppp_over_ethernet_link_status_cb(ppp_pcb *pcb, int state) {
|
|||||||
/* PPPoE link is established, starting PPP negotiation */
|
/* PPPoE link is established, starting PPP negotiation */
|
||||||
case PPPOE_CB_STATE_UP:
|
case PPPOE_CB_STATE_UP:
|
||||||
PPPDEBUG(LOG_INFO, ("ppp_over_ethernet_link_status_cb: unit %d: UP, connecting\n", pcb->unit));
|
PPPDEBUG(LOG_INFO, ("ppp_over_ethernet_link_status_cb: unit %d: UP, connecting\n", pcb->unit));
|
||||||
ppp_start(pcb->unit);
|
ppp_start(pcb);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* PPPoE link normally down (i.e. asked to do so) */
|
/* PPPoE link normally down (i.e. asked to do so) */
|
||||||
@ -1662,8 +1659,8 @@ static void ppp_over_ethernet_link_status_cb(ppp_pcb *pcb, int state) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ppp_hup(pcb->unit);
|
ppp_hup(pcb);
|
||||||
ppp_stop(pcb->unit);
|
ppp_stop(pcb);
|
||||||
pppoe_destroy(&pcb->netif);
|
pppoe_destroy(&pcb->netif);
|
||||||
pcb->open_flag = 0;
|
pcb->open_flag = 0;
|
||||||
if(pcb->link_status_cb)
|
if(pcb->link_status_cb)
|
||||||
|
Loading…
Reference in New Issue
Block a user