Skip to contentSkip to conversation

HELP: Linux Net Driver confusions

DISCUSSION Tom Roberts 2 participants 2 messages Jun 6, 2000 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw
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/

#2 lore raw
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/