Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Sep 1999 17:25:15 +0100
From:      "Daniel Hilevich" <danhil@cwnt.com>
To:        "Dennis" <dennis@etinc.com>
Cc:        <freebsd-questions@FreeBSD.ORG>, <freebsd-hackers@FreeBSD.ORG>
Subject:   Re: A bug in the sppp driver?
Message-ID:  <038d01bf0a97$3652f8d0$2e00a8c0@nt46daniel>
References:  <199909291507.LAA07913@etinc.com>

next in thread | previous in thread | raw e-mail | index | archive | help
As I understand from rfc1661, the state, which the remote machine should be
after sending a CONF_ACK message, is ack_send. The sppp driver doesn't work
properly and I think that this is on of the reasons.

----- Original Message -----
From: Dennis <dennis@etinc.com>
To: Daniel Hilevich <danhil@cwnt.com>; <freebsd-questions@FreeBSD.ORG>;
<freebsd-hackers@FreeBSD.ORG>
Sent: Wednesday, September 29, 1999 3:05 PM
Subject: Re: A bug in the sppp driver?


> At 04:51 PM 9/29/99 +0100, Daniel Hilevich wrote:
> >While trying to use the sppp, I came across this situation and I think
it's
> >a bug:
> >When you trying to establish connection from one peer (local) to another
> >(remote), you sent a CONF_REQ message to the remote peer. The remote peer
> >should answer with a CONF_ACK message. In the code of the sppp driver
> >(net/if_spppsubr.c,  lines 1321 - 1357) you can see that the remote peer
> >send's a CONF_ACK message to the local peer
> >(in the line:  rv = (cp->RCR)(sp, h, len);) but doesn't change it state
to
> >STATE_ACK_SENT (as I think it should do) . Further more, you can see that
> >after a few lines, there are these strange lines:
> >  case STATE_ACK_SENT:
> >  case STATE_REQ_SENT:
> >   sppp_cp_change_state(cp, sp, rv?
> >          STATE_ACK_SENT: STATE_REQ_SENT);
> >   break;
> >
> >Question: if you are in the STATE_ACK_SENT why change the state to the
same
> >one according to the value of rv?
> >
> >As I understand, the state should be changed according to the value of
rv,
> >but it should be done right after the call to cp->RCR. The it is
implemented
> >now, the state won't be changed.
>
> the state is dependent on what state you are in, given the event. Have you
> verified that you are in ack_sent?
>
> doing state machines with switch statements is a big mess.
>
> Dennis
>
>
>
>




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?038d01bf0a97$3652f8d0$2e00a8c0>