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.
