Subject: Re: kern/32643: re(4) has problems with HW VLAN tagging
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
List: netbsd-bugs
Date: 11/20/2006 13:20:02
The following reply was made to PR kern/32643; it has been noted by GNATS.
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
To: yamt@mwd.biglobe.ne.jp
Cc: gnats-bugs@NetBSD.org, kern-bug-people@NetBSD.org,
gnats-admin@NetBSD.org, netbsd-bugs@NetBSD.org,
pavel.cahyna@st.mff.cuni.cz, tsutsui@ceres.dti.ne.jp
Subject: Re: kern/32643: re(4) has problems with HW VLAN tagging
Date: Mon, 20 Nov 2006 22:18:03 +0900
yamt@mwd.biglobe.ne.jp wrote:
> > His patch cleared only vlanctl in the first DMA desc on TX,
> > but I guess all descs should be cleared both on TX and RX.
> > (though I'm not sure what will happen when only trailing descs
> > have vlanctl values on TX with multiple descs)
>
> i was not able to reproduce his problem (scp) even with my patch.
> ie. there is no way to confirm it working without letting him try.
It seems reproducible with your patch even by ping(8).
--- commands on re(4) hosts ---
# ifconfig re0 192.168.20.4 ip4csum udp4csum tcp4csum
# ifconfig vlan0 create
# ifconfig vlan0 vlan 4 vlanif re0
# ifconfig vlan0 192.168.200.2
# ping -fn -c 256 192.168.20.28 >& /dev/null
# ping -fn -c 256 192.168.200.4 >& /dev/null
# ping -fn -c 8 192.168.20.28 >& /dev/null
# ping -fn -c 8 -s 1473 192.168.20.28 >& /dev/null
--- end of commands ---
--- tcpdump -evn output on 192.168.20.28 aka 192.168.200.4 ---
21:56:13.219800 00:0d:0b:4b:af:1b > 00:10:e0:00:5e:95, ethertype IPv4 (0x0800), length 98: IP (tos 0x0, ttl 255, id 60103, offset 0, flags [none], length: 84) 192.168.20.4 > 192.168.20.28: icmp 64: echo request seq 0
21:56:13.220052 00:10:e0:00:5e:95 > 00:0d:0b:4b:af:1b, ethertype IPv4 (0x0800), length 98: IP (tos 0x0, ttl 255, id 338, offset 0, flags [none], length: 84) 192.168.20.28 > 192.168.20.4: icmp 64: echo reply seq 0
:
21:56:37.540102 00:0d:0b:4b:af:1b > 00:10:e0:00:5e:95, ethertype 802.1Q (0x8100), length 102: vlan 4, p 0, ethertype IPv4, IP (tos 0x0, ttl 255, id 60360, offset 0, flags [none], length: 84) 192.168.200.2 > 192.168.200.4: icmp 64: echo request seq 0
21:56:37.540270 00:10:e0:00:5e:95 > 00:0d:0b:4b:af:1b, ethertype 802.1Q (0x8100), length 102: vlan 4, p 0, ethertype IPv4, IP (tos 0x0, ttl 255, id 601, offset 0, flags [none], length: 84) 192.168.200.4 > 192.168.200.2: icmp 64: echo reply seq 0
:
21:57:04.950385 00:0d:0b:4b:af:1b > 00:10:e0:00:5e:95, ethertype IPv4 (0x0800), length 98: IP (tos 0x0, ttl 255, id 60618, offset 0, flags [none], length: 84) 192.168.20.4 > 192.168.20.28: icmp 64: echo request seq 0
21:57:04.950638 00:10:e0:00:5e:95 > 00:0d:0b:4b:af:1b, ethertype IPv4 (0x0800), length 98: IP (tos 0x0, ttl 255, id 861, offset 0, flags [none], length: 84) 192.168.20.28 > 192.168.20.4: icmp 64: echo reply seq 0
:
21:57:22.539100 00:0d:0b:4b:af:1b > 00:10:e0:00:5e:95, ethertype 802.1Q (0x8100), length 1518: vlan 4, p 0, ethertype IPv4, IP (tos 0x0, ttl 255, id 60626, offset 0, flags [+], length: 1500) 192.168.20.4 > 192.168.20.28: icmp 1480: echo request seq 0
21:57:22.539174 00:0d:0b:4b:af:1b > 00:10:e0:00:5e:95, ethertype 802.1Q (0x8100), length 64: vlan 4, p 0, ethertype IPv4, IP (tos 0x0, ttl 255, id 60626, offset 1480, flags [none], length: 21) 192.168.20.4 > 192.168.20.28: icmp
21:57:22.539615 00:10:e0:00:5e:95 > 00:0d:0b:4b:af:1b, ethertype IPv4 (0x0800), length 1514: IP (tos 0x0, ttl 255, id 870, offset 0, flags [+], length: 1500) 192.168.20.28 > 192.168.20.4: icmp 1480: echo reply seq 0
21:57:22.539649 00:10:e0:00:5e:95 > 00:0d:0b:4b:af:1b, ethertype IPv4 (0x0800), length 35: IP (tos 0x0, ttl 255, id 870, offset 1480, flags [none], length: 21) 192.168.20.28 > 192.168.20.4: icmp
:
--- end of tcpdump ---
i.e. it looks we have to clear re_vlanctl in all fragmented descs
since my patch still works fine in this test.
---
Izumi Tsutsui