From owner-freebsd-net@FreeBSD.ORG Sun Jan 11 18:37:50 2004 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 600E716A4CE; Sun, 11 Jan 2004 18:37:50 -0800 (PST) Received: from TheWorld.com (pcls2.std.com [192.74.137.142]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7BDC443D31; Sun, 11 Jan 2004 18:37:47 -0800 (PST) (envelope-from kwc@shell.TheWorld.com) Received: from shell.TheWorld.com (pip1-5.std.com [192.74.137.185]) by TheWorld.com (8.12.8p1/8.12.8) with ESMTP id i0C2bi4j013123; Sun, 11 Jan 2004 21:37:44 -0500 Received: (from kwc@localhost) by shell.TheWorld.com (8.9.3/8.9.3) id VAA15119655; Sun, 11 Jan 2004 21:37:39 -0500 (EST) Date: Sun, 11 Jan 2004 21:37:39 -0500 (EST) From: Kenneth W Cochran Message-Id: <200401120237.VAA15119655@shell.TheWorld.com> To: freebsd-net@freebsd.org cc: freebsd-hardware@freebsd.org Subject: Compatibility problem: DFE-570TX (dc(4)) & Linksys router/switch X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jan 2004 02:37:50 -0000 Hello: Update... (Former subject was "(revised) 4.*9*-stable & Linksys WRT54G won't talk w/each other" on -questions and -net) Ethernet card: D-Link DFE-570TX Interfaces: dc0 - "public" to outside Internet, address assigned by DHCP/dhclient, 100baseTX full-duplex connection to a Motorola SB4101 cable modem dc1 - 192.168.0.1/24, unused in this scenario dc2 - 192.168.1.50/24, trying to communicate with Linksys WRT54G dc3 - unused in this scenario Other IP addresses: 192.168.1.1/24 - router 192.168.1.51/24 - another machine running Windows 2000 & with an Intel Pro/100+ NIC OS: FreeBSD 4.9-STABLE as of 10 December 2003 Firewall: ipfw2 Setup scenarios & successes/failures with them: 1. Connect the router directly to a port on the Ethernet card - the router won't arp-reply (& thus no further communication), viz: dc2 <--> router $ ping -c3 192.168.1.1 ## ip address of the router on dc2 PING 192.168.1.1 (192.168.1.1): 56 data bytes --- 192.168.1.1 ping statistics --- 3 packets transmitted, 0 packets received, 100% packet loss localhost# tcpdump -lni dc2 ## tcpdump while running the above ping tcpdump: listening on dc2 10:17:18.123385 arp who-has 192.168.1.1 tell 192.168.1.50 10:17:19.124588 arp who-has 192.168.1.1 tell 192.168.1.50 10:17:20.134583 arp who-has 192.168.1.1 tell 192.168.1.50 2. Connecting (dc2 in this example) from the card to a *hub* (Netgear DS-104, 100mb/s half-duplex) and then connecting that hub to the router (via the uplink port) I get the following (success): dc2 <--> hub <--> router $ ping -c3 192.168.1.1 PING 192.168.1.1 (192.168.1.1): 56 data bytes 64 bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=0.826 ms 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.751 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.828 ms --- 192.168.1.1 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.751/0.802/0.828/0.036 ms localhost# tcpdump -lni dc2 tcpdump: listening on dc2 18:09:55.023426 192.168.1.50 > 192.168.1.1: icmp: echo request 18:09:55.024193 192.168.1.1 > 192.168.1.50: icmp: echo reply 18:09:56.028951 192.168.1.50 > 192.168.1.1: icmp: echo request 18:09:56.029636 192.168.1.1 > 192.168.1.50: icmp: echo reply 18:09:57.038954 192.168.1.50 > 192.168.1.1: icmp: echo request 18:09:57.039715 192.168.1.1 > 192.168.1.50: icmp: echo reply 18:10:00.022492 arp who-has 192.168.1.50 tell 192.168.1.1 18:10:00.022520 arp reply 192.168.1.50 is-at 0:80:c8:b9:20:df 3. Connection from dc2 to the router and from router to another machine running Windows 2000 and an Intel Pro/100 Ethernet NIC: dc2 <--> router <--> win2k machine with Intel NIC localhost# ifconfig dc2 dc2: flags=8943 mtu 1500 inet6 fe80::280:c8ff:feb9:20df%dc2 prefixlen 64 scopeid 0x3 inet 192.168.1.50 netmask 0xffffff00 broadcast 192.168.1.255 ether 00:80:c8:b9:20:df media: Ethernet 100baseTX status: active localhost# localhost# ping -c3 192.168.1.51 PING 192.168.1.51 (192.168.1.51): 56 data bytes --- 192.168.1.51 ping statistics --- 3 packets transmitted, 0 packets received, 100% packet loss localhost# tcpdump -lni dc2 tcpdump: listening on dc2 19:56:40.831349 arp who-has 192.168.1.51 tell 192.168.1.50 19:56:40.831507 arp reply 192.168.1.51 is-at 0:90:27:84:42:f 19:56:40.831521 192.168.1.50 > 192.168.1.51: icmp: echo request 19:56:41.835830 192.168.1.50 > 192.168.1.51: icmp: echo request 19:56:42.845862 192.168.1.50 > 192.168.1.51: icmp: echo request ^C 5 packets received by filter 0 packets dropped by kernel localhost# 4. Same connection as above, but through hub instead: dc2 <--> hub <--> win2k machine with Intel NIC localhost# ifconfig dc2 dc2: flags=8943 mtu 1500 inet6 fe80::280:c8ff:feb9:20df%dc2 prefixlen 64 scopeid 0x3 inet 192.168.1.50 netmask 0xffffff00 broadcast 192.168.1.255 ether 00:80:c8:b9:20:df media: Ethernet 100baseTX status: active localhost# localhost# ping -c3 192.168.1.51 PING 192.168.1.51 (192.168.1.51): 56 data bytes 64 bytes from 192.168.1.51: icmp_seq=0 ttl=128 time=0.391 ms 64 bytes from 192.168.1.51: icmp_seq=1 ttl=128 time=0.215 ms 64 bytes from 192.168.1.51: icmp_seq=2 ttl=128 time=0.178 ms --- 192.168.1.51 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.178/0.261/0.391/0.093 ms localhost# localhost# tcpdump -lni dc2 tcpdump: listening on dc2 20:01:59.078456 arp who-has 192.168.1.51 tell 192.168.1.50 20:01:59.078596 arp reply 192.168.1.51 is-at 0:90:27:84:42:f 20:01:59.078608 192.168.1.50 > 192.168.1.51: icmp: echo request 20:01:59.078778 192.168.1.51 > 192.168.1.50: icmp: echo reply 20:02:00.079644 192.168.1.50 > 192.168.1.51: icmp: echo request 20:02:00.079800 192.168.1.51 > 192.168.1.50: icmp: echo reply 20:02:01.089664 192.168.1.50 > 192.168.1.51: icmp: echo request 20:02:01.089781 192.168.1.51 > 192.168.1.50: icmp: echo reply ^C 8 packets received by filter 0 packets dropped by kernel localhost# Based on the above setups/scenarios, it appears to me that FreeBSD and the dc(4) NIC don't work through this switch but do work with this hub. Other notes: The router works fine when connecting another machine (running Windows 2000 and with an Intel Pro/100 NIC) to it. Although I don't think the FreeBSD machine "answers" the Win2k machine through the router/switch. Using ifconfig to force media and mediaoptions, along with restarting/rebooting the router, does not help. According to Linksys documentation, this router uses Broadcomm Ethernet hardware internally. (Just FYI I guess; I don't know if that's helpful.) The "LAN" side of the router is a 4-port switch. Any ideas on getting this working? Cabling checks out fine and this error "follows" interfaces if I change them. It appears that I've found either a hardware incompatibility or some kind of driver (dc(4)) problem. Idea(s) on further troubleshooting/fixing this? Should I be asking on some other list? Should I file a pr? Sorry this message has become lengthy. FAQs/documentation pointers are quite welcome. :) Thanks, -kc