lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-users] LCP Termination Request steps


From: Sylvain Rochet
Subject: [lwip-users] LCP Termination Request steps
Date: Mon, 7 May 2012 19:02:48 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

Hi,

In fsm_rtermreq(), if f->state equals LS_OPENED, which is the Connection 
terminated by peer condition, we send a Termination Ack, which seems logical.

But, in this case, we call TIMEOUT(fsm_timeout, ...), but we don't send 
any request at this time, what are we waiting for exactly ?

With PPP_DEBUG, here is what I get, which seems to be a faulty behavior 
for me:

pppoe: GENERIC ERROR: Shutting Down

===> OK!, we received a PADT, discarded because there was no Host-Uniq 
    tag, so sc is NULL, maybe we should fallback to Session ID if
    Host-Uniq is absent, but this is not the subject now.

pppoe_data_input: enu: pkthdr.len=0, pppoe.len=40
pppInput[0]: LCP len=38
fsm_input(LCP):5,3,38
fsm_rtermreq(LCP): Rcvd id 3 state=9 (LS_OPENED)
LCP terminated by peer ()
link_down: 0
upap_lowerdown: 0 s=1
ipcp: down
np_down: 0 proto=21
sifdown: unit 0: linkStatusCB= errCode=-2147471276
pppLinkStatusCallback: PPPERR_CONNECT
IPCP: lowerdown state 9 (LS_OPENED) -> 1 (LS_STARTING)
IPCP: close reason=LCP down state 1 (LS_STARTING) -> 0 (LS_INITIAL)
pppLinkDown: unit 0
ppp_send_config[0]: outACCM=FF FF FF FF
ppp_recv_config[0]: inACCM=0 0 0 0
pppoe: enu (0) state=34916, session=0x3 output -> x:x:x:x:x:x, len=1

===> OK!, we received a LCP Termination Request Packet, then we called
     upper layers functions so that we set the PPP session down.

===> We also called the PPPoE callback correctly.

fsm_sdata(LCP): Sent code 6,3,4.
pppInput[0]: packet processed

===> OK!, we ack'ed the Termination.



Then, a few seconds later, due to the timeout set:

LCP: timeout sending Terminate-Request state=5 (LS_STOPPING)
link_terminated: 0
Connection terminated.
pppLinkTerminated: unit 0
pppLinkTerminated: finished.
pppoe: enu: timeout
pppoe: enu: disconnecting
pppHupCB: unit 0
link_required: 0
LCP: lowerdown state 3 (LS_STOPPED) -> 1 (LS_STARTING)
link_terminated: 0
pppStop: unit 0
LCP: close reason=User request state 1 (LS_STARTING) -> 0 (LS_INITIAL)
pppLinkStatusCallback: PPPERR_PROTOCOL

===> Of course we timeouted, we didn't sent any request.

===> And we consider this is a protocol error.



Is this a bug in fsm.c ?  Should we send a Termination Request as well ?  
Or is the timeout set by mistake ?


Regards,
Sylvain

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]