From: Jan Just Keijser <jan.just.keijser@gmail.com>
To: linux-ppp@vger.kernel.org
Subject: Re: CRC-16 or CRC-32
Date: Wed, 21 Apr 2010 08:10:05 +0000 [thread overview]
Message-ID: <4BCEB2DD.4020203@gmail.com> (raw)
In-Reply-To: <291B2C7721AC7B49AD11449A2883992E2C4A9BDC3C@SINTEFEXMBX01.sintef.no>
Arne Lie wrote:
>> -----Original Message-----
>> From: linux-ppp-owner@vger.kernel.org [mailto:linux-ppp-
>> owner@vger.kernel.org] On Behalf Of Milan P. Stanic
>> Sent: 20. april 2010 17:10
>> To: linux-ppp@vger.kernel.org
>> Subject: Re: CRC-16 or CRC-32
>>
>> On Tue, 2010-04-20 at 16:49, Jan Just Keijser wrote:
>>
>>> Arne Lie wrote:
>>>
>>>> Hm, my observations are that if there are bit errors introduced in
>>>>
>> the PPP frame, the "ifconfig ppp0" will count such packets in the
>> "error" tab. From this I anticipated that the PPP stack included CRC
>> checking of its payload. By CRC-16 I mean 2 byte CRC, CRC-32 4 byte.
>> Our customer wants 4 byte CRC. From RFC2823 I see both are mentioned.
>> The question is, how does one select either? Perhaps it is not
>> configurable via pppd?
>>
>>> RFC2823 is about PPP SDL on SONET/SDH ; AFAIK the pppd code does not
>>> support this *at all* so I am not surprised that I did not find any
>>> references to CRCs in the headers...
>>>
>>> So the short answer to your question would be: no, PPP v2.4.5 does
>>> not support CRC-16 or CRC-32.
>>>
>> In Linu CRC is done in kernel ppp driver not the ppp daemon.
>> ZLIB compression uses crc-32, AFAIR.
>>
> [Arne::] Milan, thanks for your information. Yes, the CRC is done in the kernel part of PPP. My question was how, of possible, one could select CRC-16 or CRC-32 to be activated using options when starting pppd (in a similar manner as one is able to select compression algorithm). In http://fixunix.com/ppp/62264-hdlc-like-framing.html James Carson says that the Solaris implementation of pppd make it possible to negotiate to CRC-32. I read your answer this way: by choosing the deflate compression algorithm, which I believe is using ZLIB, then we *are* using the CRC-32 since it defaults to this.
> /Arne
>
ah I've learned something myself here :)
unpacked the linux sources (2.6.28 which I had at hand) and checked the
ppp module code:
ppp_async includes some CRC support BUT it only supports
'crc_ccitt_byte' which is a 16bit CRC. The problem now is, which CRC32
needs to be suppported? according to
http://en.wikipedia.org/wiki/Cyclic_redundancy_check
"there are three polynomials reported for CRC-12, thirteen conflicting
definitions of CRC-16, and six of CRC-32"
the second problem is: if you want to add CRC32 support then you'd have
to get it into the linux kernel . that will take *quite* some time
(unless you can live with patched linux kernels).
cheers,
JJK / Jan Just Keijser
next prev parent reply other threads:[~2010-04-21 8:10 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-20 9:42 CRC-16 or CRC-32 Arne Lie
2010-04-20 14:16 ` Jan Just Keijser
2010-04-20 14:38 ` Arne Lie
2010-04-20 14:49 ` Jan Just Keijser
2010-04-20 15:10 ` Milan P. Stanic
2010-04-21 6:56 ` Arne Lie
2010-04-21 8:10 ` Jan Just Keijser [this message]
2010-04-21 9:08 ` Milan P. Stanic
2010-04-21 9:17 ` Milan P. Stanic
2010-04-23 3:46 ` James Carlson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BCEB2DD.4020203@gmail.com \
--to=jan.just.keijser@gmail.com \
--cc=linux-ppp@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox