On Sat, 13 Jul 2002 23:35:56 Ian Douglas, having no luck pinging from the ethernet card in his new PC wrote:
If I run ifconfig I get:
eth0 Link encap:Ethernet HWaddr 00:10:DC:1F:95:78 inet addr:192.168.3.70 Bcast:192.168.255.255 Mask:255.255.0.0 inet6 addr: fe80::210:dcff:fe1f:9578/10 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:18 Base address:0x6000
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:503 errors:0 dropped:0 overruns:0 frame:0 TX packets:503 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:49204 (48.0 Kb) TX bytes:49204 (48.0 Kb)
The thing that immediately strikes me is that it is the RX and TX packet count on lo rather than eth0 that is incrementing after each ping.
Unless I could see a 1:1 correspondance between packets counted for interface 'lo' and the pings you do I would assume that these incrementing is just coincidence.
Looking at eth0 there is a transmit queue of 100 so it looks like the kernel is routing packets to the right interface but the interface is not sending them.
One possibility is the the driver for the card never receives interrupts from the card. Normally an interrupt is used to signal a packet has arrived but also to signal that a transmit has finished so if the interrupt never arrives the driver will never beleive the first packet in the queue was sent and will never send the second one.
One thing to check for is if anything else is sharing the interrupt. Some drivers can't do interrupt sharing (though most can). Try running cat /proc/interrupt and maybe post the output from that too.