Re: CRC-16 or CRC-32

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

 



On Wed, 2010-04-21 at 08:56, Arne Lie wrote:
> > -----Original Message-----
> > From: linux-ppp-owner@xxxxxxxxxxxxxxx [mailto:linux-ppp-
> > owner@xxxxxxxxxxxxxxx] On Behalf Of Milan P. Stanic
> > Sent: 20. april 2010 17:10
> > To: linux-ppp@xxxxxxxxxxxxxxx
> > 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.

CRC is just mathematical method to calculate some number. It would be
better to use term FCS (Frame Check Sequence) to avoid ambiguities.
FCS can be null, 16 and 32 bit. Default is 16 bit and if peers cannot
negotiate other values this is default.

To have 32bit FCS in Linux kernel and ppp daemon you (or someone who
could be paid or volunteer) should add it to the kernel driver and add
configuration option to the ppp daemon to signal kernel driver that it
wants/prefer 32/16/null FCS.

There are RFCs which describes what CRC and LCP should/must be used for
all that stuff.

> 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.

No. ZLIB is used in data compression and not in link layer, but I
could be wrong.

-- 
Kind regards,  Milan
--------------------------------------------------
Arvanta, IT Security        http://www.arvanta.net
Please do not send me e-mail containing HTML code.
--
To unsubscribe from this list: send the line "unsubscribe linux-ppp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Audio Users]     [Linux for Hams]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Fedora Users]

  Powered by Linux