HELP: Linux Net Driver confusions
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 5 lines · Tom Roberts
I am trying to write a network driver [...]
In particular, I am trying to use non-ethernet headers, and cannot get the kernel to deliver a ping packet (ICMP protocol) back to the ping program even though the driver delivers the packets OK. BUT -- essentially the same driver does seem to work on PowerPC linux....
Thanks to Jonathan Brauer, I got it to work.
Remarkably, the value in skb->protocol is in network byte order, not the natural byte order of the current CPU. So changing:
skb->protocol = ETH_P_IP; to: skb->protocol = htons(ETH_P_IP);
made it work.
Note that the PowerPC byte order is the same as network order, which is why it worked on the PowerPC but not the i586.
[sent to both c.o.l.dev.sys and linuxppc-embedded
because I queried both.]
Tom Roberts [email protected]
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Quoted 2 lines · Tom Roberts
Note that the PowerPC byte order is the same as network order, which is why it worked on the PowerPC but not the i586.
Damn! Darwin keeps letting me down. Those wrong byte order things just keep surviving. You had it working and should have just continued down the path of happiness.......:-).
-- Dan
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/