ethernet driver: hard_start_xmit

From: Harsha
Date: Thu Aug 30 2007 - 07:25:24 EST


Hi,

I have written a network device driver (Linux kernel: 2.6.20.1) on ARM
based target board.
I have implemented ether_tx, which is called whenever hard_start_xmit is
called.

--------------------------------------
[ PINGing from BOARD TO OTHER HOST ]

The network driver is working. I am able to ping to other hosts and i
am able to get the reply without any problem

Q1. For large packet size say (2048, 4096) after sometime ping exits
saying "sendto: buffer space unavailable"

---------------------------------------
[ PINGing from other HOST to BOARD ]

ping works but only for some time. It stops working by saying "Request
timed out" after some successful pinging.
The number of times ping succeeds depend on the packet size

Packet size = 64, ping stops working exactly after 449 times
Packet size = 4096, ping stops working exactly after 28 times.

I did some digging and found that when ping stops working, ether_tx(or
hard_start_xmit) is not called at all. Though the packets are recieved
correctly by ether_rx. After ping stops, any more ping of any packet
size does not work. Also i found that at this stage if i ping from board
to host it works.

Q2. What might be the reason for ping to stop?

Regards
harsha




--
Harsha
hlforums@xxxxxxxxx

--
http://www.fastmail.fm - Accessible with your email software
or over the web

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/