Skip to contentSkip to conversation

Large IP packets over ArcNet (netif_wake_queue propagation)

DISCUSSION Esben Nielsen 1 participant 1 message Jan 29, 2003

lore
Share & tools
lore
#0 lore raw

Synopsis:
I am writing test-software for our ArcNet-driver for vxWorks. I use a
Linux machine running 2.4.18 as test-bench. I am trying to test our rfc1201 (IP over ArcNet) implementation by ping'ing with large packets. This fails:
Linux simply doesn't send all the IP-fragments.

I then went into the driver and increased the queue-length from
dev->tx_queue_len = 40;
to
dev->tx_queue_len = 60;
and then it worked.

It seems to me the IP-layer is not notified when the device queue is emptied by the device and thus doesn't send out the missing fragments. I tried to look into the net core code to find out: Indeed I could not find any notification to the higher level protocols.
In vxWorks I am used to waking the higher-level protocols directly (there is no generic device-specific queue). Thus IP stack can continue with the next IP-fragment right away. Apparently the Linux IP-stack can't as it is not notified that the device is ready to send again.

I am really understanding this correctly???

Also, I want to run a raw packet protocol along with IP. That protocol works best with a small queue - maximum 10 packets!

Esben Nielsen
Vestas Wind Systems