The following reply was made to PR kern/34799; it has been noted by GNATS.
From: Julian Coleman <jdc%coris.org.uk@localhost>
To: gnats-admin%NetBSD.org@localhost, dhgutteridge%sympatico.ca@localhost
Cc:
Subject: Re: kern/34799: IP Filter does not work correctly with gem(4) when
hardware chec
Date: Tue, 1 Jan 2008 15:16:25 +0000
Hi,
> I'm close to getting my fibre card working, so I'll see if I can reproduce
> and/or spot the problem here.
I have working gem interfaces, but I'm unable to reproduce the problem here.
Looking at the documentation, we have to pre-program the offset at which the
card starts generating the TCP checksum. We set this to:
v |= (ETHER_HDR_LEN + sizeof(struct ip) +
((sc->sc_ethercom.ec_capenable & ETHERCAP_VLAN_MTU) ?
ETHER_VLAN_ENCAP_LEN : 0)) << GEM_RX_CONFIG_CXM_START_SHFT;
in gem_init(). So, if you have a vlan configured on that interface and
the packet is received directly on the interface, then the pre-programmed
receive checksum will be incorrect. Is this the case here?
Could you send a dump of the received packet that is blocked? Using:
tcpdump -vv -s 1514 -x -X -c 1 host www.google.ca and src port 80
should catch just the return packet (from `telnet www.google.ca 80`).
> I can duplicate this with with HEAD sources (4.99.42) as well.
Yes. There isn't much change in the driver between 4.0 and HEAD.
Thanks,
J
--
My other computer also runs NetBSD / Sailing at Newbiggin
http://www.netbsd.org/ / http://www.newbigginsailingclub.org/