Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Nov 2002 19:29:50 -0500 (EST)
From:      Dmitry Sagalovskiy <dsagal@runningwave.com>
To:        freebsd-net@freebsd.org
Subject:   Trouble with gigabit cards
Message-ID:  <20021105192815.T74046-100000@tet.runningwave.com>

next in thread | raw e-mail | index | archive | help
From: Jason Carroll <jason@carrollgroup.org>


Hi Everyone--

Has anyone had trouble with gigabit (copper) interfaces dropping
multicast traffic?  I've tried two different cards on both FreeBSD 4.5
and 4.7 and seen an alarmingly high loss of data over the gigabit
interface, even when the gigabit interface is running at 100mbs/s and
plugged into a 100mbs/s switch.

Briefly, I am multicasting sequenced data to 10 multicast groups at
about 1% network utilization (1 mbs/s).  I have about 15 systems
listening to the 10 multicast groups.  All but one have 100mbs cards
in them (a mixture of Intel Pro/100s and various 3com cards).  One
test system has an Intel Pro/1000, a NetGear GA622T and an Intel
Pro/100.  All 15 are plugged into the same switch which is a Cisco
100mbs/s multi-layer switch (a Catalyst 3550).  When I use either of
the gigabit cards on the test system with their appropriate drivers
(em and nge), I start dropping packets from the various groups (one or
several packets every minute or so).  As soon as I switch over to the
100mbs card with the fxp driver, I stop losing data.

I can provide oodles more information if anyone's interested in the
problem.  I've been trying various things and dumping kernel
network statistics for several days now.

Among the interesting things I've noticed:

- Packets are not preferentially dropped from any of the 10 groups.

- Two systems using slightly different cards (both Intel Pro/1000, but
one with the 82540EM chip and the other with the 82544 chip) drop
almost exactly the same packets when hooked up in in parallel, while
the NetGear card drops different (but a roughly equivalent amount) of
traffic.

- I've monitored the udp traffic statistics (viewed by netstat -s),
and these statistics don't appear to indicate the data was being
dropped at the IP level or higher (see next note).  That is, the "N
dropped do to no socket", "M broadcast/multicast datagrams dropped due
to no socket", and "S dropped due to full socket buffers" statistics
didn't seem to account for our lost data.

- I hacked in a crude packet monitor to the beginning of ip_input in
sys/netinet/ip_input.c that indicates the data is being dropped at a
lower level (it shows the same missing data as my user-land
listener).

- I haven't been able to reproduce the problem outside of our
application, but I'm working on it.

Thanks,
Jason Carroll



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021105192815.T74046-100000>