Subject: Re: kern/34799: IP Filter does not work correctly with gem(4) when hardware chec
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: David H. Gutteridge <dhgutteridge@sympatico.ca>
List: netbsd-bugs
Date: 12/19/2007 03:00:08
The following reply was made to PR kern/34799; it has been noted by GNATS.
From: "David H. Gutteridge" <dhgutteridge@sympatico.ca>
To: gnats-bugs@NetBSD.org, jdc@coris.org.uk
Cc:
Subject: Re: kern/34799: IP Filter does not work correctly with gem(4) when hardware chec
Date: Tue, 18 Dec 2007 21:55:10 -0500
Julian Coleman wrote:
>I've been looking at the gem documentation that Sun recently released, in
>order to make the fibre gem cards work. I see that the gem card only
>supports
>TCP checksums, so we should not enable UDP checksums. Does turning off UDP
>checksums only make things work?
The problem occurs with both UDP and TCP. If I enable only TCP
checksums, I still see the problem with TCP packets, e.g.:
[root@arcusv:root]# ifconfig gem0
gem0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
capabilities=3c00<TCP4CSUM_Rx,TCP4CSUM_Tx,UDP4CSUM_Rx,UDP4CSUM_Tx>
enabled=c00<TCP4CSUM_Rx,TCP4CSUM_Tx>
...
[root@arcusv:root]# telnet www.google.ca 80
Trying 72.14.253.103...
^C
[root@arcusv:root]# tail -1 /var/log/messages
Dec 18 21:39:33 arcusv ipmon[303]: 21:39:30.159629 gem0 @0:2 b
po-in-f103.google.com[72.14.253.103],http ->
arcusv.nonus-porta.net[192.168.1.5],65534 PR tcp len 20 52 -AS IN bad
[root@arcusv:root]# ifconfig gem0 -tcp4csum
[root@arcusv:root]# ifconfig gem0
gem0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
capabilities=3c00<TCP4CSUM_Rx,TCP4CSUM_Tx,UDP4CSUM_Rx,UDP4CSUM_Tx>
enabled=0
...
[root@arcusv:root]# telnet www.google.ca 80
Trying 72.14.253.147...
Connected to www.l.google.com.
...
The problem apparently affects (or affected) the same chip on Solaris,
judging from the IP Filter FAQ entry I found on the subject:
http://www.phildev.net/ipf/IPFsolaris.html#solaris15
This problem only happens with IP Filter. If I use OpenBSD's PF, UDP
and TCP packets pass out the gem interface without issue.
Dave