I have just committed two helper functions to our ethernet support infrastructure: uint32_t ether_crc32_le(const uint8_t *, size_t); uint32_t ether_crc32_be(const uint8_t *, size_t); Numerous drivers bring their own implementations of these functions to calculate the standard ethernet CRC in little/big endian fashion, usually used for setting up multicast hash filters. This jumbo patch replaces the local implementations with calls to the helper functions: http://people.freebsd.org/~naddy/ether_crc32.patch The changes are straightforward, almost mechanical, but typos may have snuck in, so PLEASE TEST. This touches a whopping 28 network drivers: aue, axe, bge, cue, dc, de, ed, fe, gem, hme, lge, lnc, my, nge, pcn, re, rl, rue, sf, sis, sk, sn, ste, tx, udav, vr, wb, xl Breakage would usually show up as multicast reception not working. Apart from outright multicast applications this also affects some routing protocols and all IPv6 users (since NDP uses multicast). Don't report success if you don't understand what I'm talking about. -- Christian "naddy" Weisgerber naddy_at_mips.inka.deReceived on Wed Jun 02 2004 - 16:02:33 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:55 UTC