Linux PPP protocol development
 help / color / mirror / Atom feed
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


  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