Wireshark-dev: Re: [Wireshark-dev] [Wireshark-commits] rev 27748: /trunk/plugins/profinet/ /tru
From: Guy Harris <guy@xxxxxxxxxxxx>
Date: Mon, 16 Mar 2009 16:18:06 -0700

On Mar 16, 2009, at 3:45 PM, Joerg Mayer wrote:

On Mon, Mar 16, 2009 at 09:40:03PM +0000, ulfl@xxxxxxxxxxxxx wrote:
http://anonsvn.wireshark.org/viewvc/viewvc.cgi? view=rev&revision=27748
crc16 algorithm copied from Linux sources (GPL V2 only!)

So far the wireshark sources are v2 or later - so adding a gplv2 only file is not something that should be done without asking *first*, because it has effects for all of Wireshark. Or maybe there already were files that
are v2 only and I missed that?

Is the only difference between the CRC16 in PROFINET and the ITU-T CRC16 implemented in epan/crc16.c the polynomial? It looks as if the algorithm is the same in the PROFINET CRC16 and the "reflected" ITU-T CRC16:

	crc = initial value;
	for (all bytes in the buffer)
		crc = (crc >> 8) ^ table[(crc ^ byte from buffer) & 0xff];
	return crc;

so it might just be the table. If so, could we just generate the appropriate table for the PROFINET polynomial, have epan/crc16.c export crc16_reflected(), and have the PROFINET CRC16 routine use crc16_reflected() and the appropriate table?