This is the mail archive of the
ecos-patches@sources.redhat.com
mailing list for the eCos project.
Re: PPP Issues
- From: "John Paul King" <jpking at advantexmail dot net>
- To: <ecos-patches at sources dot redhat dot com>
- Date: Mon, 21 Jun 2004 09:22:10 -0500
- Subject: Re: PPP Issues
>"John Paul King" <jpking@advantexmail.net> writes:
>
>> The following are various issues I have encountered with the PPP stack.
>> Attached is a patch for your consideration.
>>
>>
>> 1. The stack does not prepend initial frames with a starting Flag
Sequence.
>> Per RFC 1549:
>>
>> "Transmitters SHOULD send an open Flag Sequence whenever 'appreciable
time'
>> has elapsed after the prior closing Flag Sequence. The maximum value for
>> 'appreciable time' is likely to be no greater than the typing rate of a
slow
>> typist, say 1 second (S4)."
>>
>> Although a timer could be implemented, this patch prepends every frame
with
>> a Flag sequence, regardless of the time between frames:
>>
>> "Only one Flag Sequence is required between two frames. Two consecutive
Flag
>> Sequences constitute an empty frame, which is ignored, and not counted as
a
>> FCS error (S3.1)."
>>
>> Affects: ppp_io.c
>
>As far as I can see, your patch just adds an extra flag sequence at
>the beginning of each packet. The driver emits a flag sequence at the
>end of each packet anyway. So the extra flag sequence is redundant.
>
>I am very wary of making hastily conceived changes to this code. It
>has been working for about a decade so far and if there were genuinely
>a problem here I would have thought that it would have been identified
>before now.
>
>What is the actual problem you are seeing, and why do you think that
>this patch fixes it?
The following post on the ecos-maintainers mailing list describes the
problem I had w/ the stack.
>John Paul King wrote:
>>I'm not sure if anyone else had this problem, but I thought that I would
>>pass along the information. I was using the eCos PPP stack in conjunction
>>with an EB40A, and I was able to establish a link w/ a Linux peer
flawlessly
>>(btw, thanks for the cool stack--I was able to create a program in Linux
and
>>have it immediately work in eCos!); however, when trying to connect to
>>another device (in particular, a Kyocera 1xRTT module), a link never
>>occurred (i.e., the Kyocera module never even tried to respond to PPP
>>packets sent). Further inspection showed that the eCos stack did not send
>>out an initial "flag sequence", and I assume the module timed out before
the
>>next frame was sent (i.e., wasn't able the use the previous ending "flag
>>sequence" as the beginning "flag sequence" of the new frame). I modified
>>the code in "pppasyncstart" such that the "flag sequence (0x7e)" is sent
>>before every frame, and this seemed to worked great for my application;
>>however, I'm not sure this would be best for all users since a "NULL
frame"
>>would possibly have to be digested by all possible peers. Anyhow, let me
>>know if this is the right way to go. Thanks for the great operating
system.
>>
>
>I don't know PPP/LCP off the top of my head, but I suggest you have a look
at the relevant RFCs >as that's the only way to know what's correct and
allowed. If you find something relevant in
>there, feel free to post something in our bugzilla database (see the
website).
>
>
>Jifl
>