I've spent some time understanding how
the driver for the ethernet works, preciously I've studied
the "lance" driver code provided for AMD NIC cards.
Among all things there is just one that I suppose
I haven't understood, it is:
after the initialization (got MAC address, set the buffers,...).
I noticed that even though there are no data to transmit, say
the lance driver receives a message asking for reading the rx-buffer.
(I think the sender of this message is inet).
Since the are no data to be transmitted, the driver remain "blocked"
a packet has been processed.
(the driver isn't blocked like a process after a "send" or "receive"
but simply
it needs a whole packet and in the meanwhile can do other thing if
it receives a message of course)

In order to unblock the driver from the previous state,
If the user doesn't need to transmit any data, I suppose, INET sends
"fake" data and
the driver is able to go on again because there is a packet to be
In a nutshell it seems there exists a sort of "ping" by INET (if my
assumption is correct)
and at the same time INET sends "fake" data to unblock the driver.
It's a curious execution and I'm not sure at all that it's correct.
Can some willing person help me to understand this mechanism,
please ?
Thank you very much indeed.