IPv6 | Networking the Internet of Things


I am working on a 6LoWPAN (RFC4944) Linux (2.6.15) implementation.
6LoWPAN is usually used to connect IEEE 802-15-4 wireless network devices to IPv6.

I want to use the tun device to exchange IPv6 datagrams between the Linux kernel and the IEEE 802-15-4 net.

Within my application the tun device is opened as described in http://http://www.kernel.org/pub/linux/kernel/people/marcelo/linux-...
Outside the application the tun device is activated by ifconfig, while the application is running:
ifconfig tun0 up
# assign a local IPv6 address:
ifconfig tun0 add fe80::1234

If on a second device someone wants to send pings to the first device (s)he calls:
ping6 -I tun0 fe80::1234
The application reads the datagram containing the "ping" with read() function from the tun stream.
Then it sends the datagram through the IEEE 802-15-4 net to the first device.

In the first device the application uses write() function to write the received datagram into the tun device stream.
I see that the kernel increases the counter of received datagrams.
And I could even see the received datagram with wireshark.
But the "ping" appears to be ignored within the kernel.

So I guess some important configuration is missing.
Has someone an idea what might be missing?


Tags: tuntap

Views: 482

Reply to This

Replies to This Discussion


I have also tested with the simpletun example application from: http://backreference.org/2010/03/26/tuntap-interface-tutorial/.
And I have got the following results:
On 2 systems running Debian (Linux 2.6.26) the tunnel worked out of the box with IPv6.
But on 2 systems running SUSE (Linux 2.6.26) the tunnel worked only for IPv4.
IPv6 "pings" were seen by wireshark but otherwise ignored by the kernel.

So there must be some compile time or run time configuration missing. But I have no idea what could it be.
(I had guessed on routing, but this seems okay...)




Product Information

Fill out my online form.

© 2014   Created by gogo6.

Badges  |  Report an Issue  |  Terms of Service