----- Original Message -----
Sent: Monday, July 07, 2008 6:42
PM
Subject: [lwip-users] about pppClose
problem?
i have a problem
about pppClose() func return very slow everytime(exit pppMain()), here
is my trace about PPPclose():
06-27 11:20:48
pppMainWakeup: unit 0
06-27 11:20:48
pppClose:linkStatusCB==NULL
06-27 11:20:48
pppMain: unit 0 kill_link -> pppStopCB
06-27 11:20:48
pppStopCB: unit 0
06-27 11:20:48
link_down: 0
06-27 11:20:48
upap_lowerdown: 0 s=1
06-27 11:20:48
ipcp: down
06-27 11:20:48
np_down: 0 proto=21
06-27 11:20:48
sifvjcomp: VJ compress enable=0 slot=0 max slot=0
06-27 11:20:48
sifdown: unit 0: linkStatusCB=0 errCode=-5
06-27 11:20:48
IPCP: lowerdown state 9 (LS_OPENED) -> 1
(LS_STARTING)
06-27 11:20:48
IPCP: close reason=LCP down state 1 (LS_STARTING) -> 0
(LS_INITIAL)
06-27 11:20:48
pppLinkDown: unit 0
06-27 11:20:48
pppMainWakeup: unit 0
06-27 11:20:48
ppp_send_config[0]: outACCM=FF FF FF FF
06-27 11:20:48
ppp_recv_config[0]: inACCM=0 0 0 0
06-27 11:20:48
pppWrite[0]: len=28
06-27 11:20:48
fsm_sdata(LCP): Sent code 5,2,16.
06-27 11:20:48 LCP:
close reason=User request state 9 (LS_OPENED) -> 4
(LS_CLOSING)
06-27 11:20:48
pppInProc[0]: got 10 bytes
06-27 11:20:48
pppInput[0]: IPCP len=4
06-27 11:20:48
fsm_input(8021): Rcvd packet in state 0
(LS_INITIAL).
06-27 11:20:49
pppInProc[0]: got 6 bytes
06-27 11:20:51
pppInProc[0]: got 12 bytes
06-27 11:20:54 LCP:
timeout resending Terminate-Requests state=4 (LS_CLOSING)
//always timeout(6s) ,why?
06-27 11:20:54
pppWrite[0]: len=29
06-27 11:20:54
fsm_sdata(LCP): Sent code 5,3,16.
06-27 11:21:00 LCP:
timeout sending Terminate-Request state=4 (LS_CLOSING) //always
timeout(6s), why?
06-27 11:21:00
link_terminated: 0
06-27 11:21:00
Connection terminated.
06-27 11:21:00
pppLinkTerminated: unit 0
06-27 11:21:00
pppMainWakeup: unit 0
06-27 11:21:00
pppMain: unit 0: PHASE_DEAD
06-27 11:21:00
pppDrop: pbuf len=25
06-27 11:21:00
pppMain: unit 0: linkStatusCB=0 errCode=-5
06-27 11:21:00
pppClose:0 status=0 cb=0
////////////////////////////////////////////////////////////////////////////////////////////////////
here is pppCLose() source code,in my code is
pc->linkStatusCB=NULL,so it while wait for PHASE_DEAD
/* Close a PPP connection and release the
descriptor.
* Any outstanding packets in the queues are
dropped.
* Return 0 on success, an error code on failure.
*/
int
pppClose(int pd)
{
PPPControl *pc =
&pppControl[pd];
int st = 0;
/* Disconnect */
#if
PPPOE_SUPPORT
if(pc->ethif) {
PPPDEBUG((LOG_DEBUG, "pppClose: unit %d kill_link -> pppStopCB\n",
pd));
pc->errCode =
PPPERR_USER;
/* This will leave us at
PHASE_DEAD. */
tcpip_callback(pppStopCB,
(void*)pd);
} else
#endif /* PPPOE_SUPPORT */
{
#if PPPOS_SUPPORT
pc->kill_link =
!0;
pppMainWakeup(pd);
#endif /*
PPPOS_SUPPORT */
}
if(!pc->linkStatusCB)
{
while(st >= 0 &&
lcp_phase[pd] != PHASE_DEAD) {
sys_msleep(500);
break; //why this break? can i remove
it?
}
}
return st;
}
_______________________________________________
lwip-users
mailing
list
address@hidden
http://lists.nongnu.org/mailman/listinfo/lwip-users