MAC driver issues
David H. Lynch Jr.
dhlii at dlasys.net
Tue Sep 5 08:31:26 EST 2006
I am trying to get a network driver working.
It sends - I can capture the output with Etherreal and it looks good.
It receives - I can dump the received packets when the come in and they
look ok to me.
BUT,
If I try to ping another host, first Linux sends and ARP broadcast,
the appropriate client sends an ARP response.
Etherreal is happy with both.
My driver gets the response - The driver says the packet lenght is
64 bytes, which includes something like 14 bytes of padding at the end.
But the actual packet looks perfect exactly like what etherreal says
it should (and what I get when I capture a received ARP packet in
another driver).
At the end of the recive interrupt the skb is passed to Linux with
the netif_rc(ndev) function. This returns SUCCESS.
However, the paket never gets handed of to the ARP protocol - I put
some debugging in there and I never see it, while if I switch to a
different NIC
driver nearly the identical ARP packet gets processed by arp inside
Linux.
I have tried to chase this down, but I can't follow what is going
on inside of all the /net/core/dev.c etc.
Has anyone seen something similar to this ?
Does anyone have a clue where I can find some info on trying to
follow something through netif_rx to see where things are going off the
rails ?
--
Dave Lynch DLA Systems
Software Development: Embedded Linux
717.627.3770 dhlii at dlasys.net http://www.dlasys.net
fax: 1.253.369.9244 Cell: 1.717.587.7774
Over 25 years' experience in platforms, languages, and technologies too numerous to list.
"Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction."
Albert Einstein
More information about the Linuxppc-embedded
mailing list