From: Jason Carroll <[EMAIL PROTECTED]>
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 [EMAIL PROTECTED] with "unsubscribe freebsd-net" in the body of the message