The following was originally sent to the e1000-devel list. Added here so the attachment gets through. I'm not sure this is actually a "bug".
I have a Fedora 20 machine which is receiving UDP broadcast packets at regular intervals on a high port. I have a program which is trying to receive these packets and failing to do so. As part of the bug investigation, I checked to see of Ncat would receive them. It also doesn't.
If I run, "tcpdump -i eth2 port 29531", I see each of the packets arriving just as I expect. But if I then run, "nc -lu 29531" or my program, I don't see anything!
On this machine, a Dell R510, eth0 and eth1 are motherboard ports with the bnx2 driver. eth2 through eth9 are provided by two 4-port Intel PCI cards with 82576 chips using the igb driver. The packets arrive on the Intel ports, eth2 through eth9. SELinux and the firewall are disabled on the machine.
If I move the cable to eth0, my application and Ncat see the packets. Of course, this solves nothing since I need it to work on the eight add-in ports. But comparing the output of "ethtool -k" on eth0 and eth2, I observe a few differences:
feature eth0 eth2
tx-checksum-sctp off [fixed] on
tx-tcp-ecn-segmentation on off [fixed]
rx-vlan-filter off [fixed] on [fixed]
rx-all off [fixed] on
I set rx-all on for eth2 because I also receive some packets with an invalid length field and need them to get through. The only other difference that seems like it might apply to a received packet is rx-vlan-filter but ethtool won't allow me to disable that feature. If this feature is relevant to the problem, how can I disable it?
Attached is a short pcap file containing a few of the packets which don't make it to an application program.