|[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]|
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 inthe 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 -- 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