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

Reply via email to