Compatibility problem: DFE-570TX (dc(4)) & Linksys router/switch

Kenneth W Cochran kwc at TheWorld.com
Sun Jan 11 18:37:50 PST 2004


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<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> 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 <full-duplex>
        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<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> 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


More information about the freebsd-hardware mailing list