Hi, > > Erm, I'd say this not only produces different results than the old > > version, but it also produces "wrong" results, in that it ignores quite > > a bit of the data that's supposed to be hashed. If I didn't overlook > > something, it only considers addr&0x0f0f0f0f0f00 and sid&0x0f0f, given > > the right endianness of addr and that PPPOE_HASH_SIZE stays 16. > > You're right, I need to fix the shifts up. How does this version > look? > > hash ^= (hash >> 4) ^ (hash >> 12) ^ (hash >> 20); > return (head ^ (hash >> 8) ^ (hash >> 24)) & > (PPPOE_HASH_SIZE - 1);
Assuming that it was supposed to read s/head/hash/: Same disclaimers apply, but I'd say this considers only addr&0xff0fff0f000f and sid&0x0fff, so, well, yes, it's better, but still not quite what I think it should be ;-) > Actually it might be simpler and more efficient to just make > PPPOE_HASH_SHIFT be 8. SHIFT? SIZE? BITS? Florian - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html