Hi,

I think I’ve found a bug in the network stack.
in 9/ip/ip.h there is
struct Ipht
{
        Lock;
        Iphash  *tab[Nipht];
};

where Night is 521,

but then in 9/ip/ipaux.c there is

ulong
iphash(uchar *sa, ushort sp, uchar *da, ushort dp)
{
        return ((sa[IPaddrlen-1]<<24) ^ (sp << 16) ^ (da[IPaddrlen-1]<<8) ^ dp 
) % Nhash;
}

where Nhash is just 64,

so lots of entries in Ipht.tab will never be used. This slows down every 
ip+port lookups in the UDP and TCP code.



Reply via email to