No need to give the pipe names as the default values can be used instead. Change-Id: I610d07b860a32b55e6c68e7b2869218b29c8f304 Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
223 lines
5.9 KiB
Plaintext
223 lines
5.9 KiB
Plaintext
tunslip6
|
|
========
|
|
|
|
tunslip6 can be used in host side to create a tun device that
|
|
is connected to a unix socket that qemu is providing. This
|
|
way it is possible to pass packets between host and target
|
|
system via slip protocol.
|
|
|
|
You need to connect tunslip6 to the second qemu serial line
|
|
through a UNIX socket (qemu option -serial unix:/tmp/slip-socket).
|
|
|
|
1) Start socat
|
|
|
|
$ socat PTY,link=/tmp/slip.dev UNIX-LISTEN:/tmp/slip.sock
|
|
|
|
2) Start qemu, use the listener demo app. Note that you need to
|
|
set CONFIG_NETWORKING_UART=y in your configuration.
|
|
|
|
You might need to set the platform and ARCH like this if simple_uart
|
|
driver is not found in your default platform.
|
|
|
|
$ make PLATFORM_CONFIG=basic_cortex_m3 ARCH=arm \
|
|
QEMU_EXTRA_FLAGS="-serial none -serial unix:/tmp/slip.sock" qemu
|
|
|
|
3) Start tunslip6
|
|
|
|
$ sudo ./tunslip6 -s `readlink /tmp/slip.dev` 2001:db8::1/64
|
|
|
|
4) Send data to listener
|
|
|
|
$ nc -u -6 2001:db8::2 4242 <<EOF
|
|
foobar
|
|
EOF
|
|
|
|
|
|
radvd
|
|
=====
|
|
In order the IPv6 stateless address auto configuration (SLAAC)
|
|
to work, you need to run radvd or similar tool in host side.
|
|
There is an example radvd.conf file present in the tools directory.
|
|
|
|
$ sudo radvd -d 1 -C radvd.conf -m stderr
|
|
|
|
|
|
tunslip
|
|
=======
|
|
|
|
tunslip if for IPv4 networks and it can be used in host side
|
|
to create a tun device that is connected to a unix socket that
|
|
qemu is providing. This way it is possible to pass packets
|
|
between host and target system via slip protocol.
|
|
|
|
You need to connect tunslip to the second qemu serial line
|
|
through a UNIX socket (qemu option -serial unix:/tmp/slip-socket).
|
|
|
|
1) Start socat
|
|
|
|
$ socat PTY,link=/tmp/slip.dev UNIX-LISTEN:/tmp/slip.sock
|
|
|
|
2) Start qemu, use the listener demo app. Note that you need to
|
|
set CONFIG_NETWORKING_UART=y in your configuration.
|
|
|
|
You might need to set the platform and ARCH like this if simple_uart
|
|
driver is not found in your default platform.
|
|
|
|
$ make PLATFORM_CONFIG=basic_cortex_m3 ARCH=arm \
|
|
QEMU_EXTRA_FLAGS="-serial none -serial unix:/tmp/slip.sock" qemu
|
|
|
|
3) Start tunslip
|
|
|
|
$ sudo ./tunslip -s `readlink /tmp/slip.dev` 192.0.2.1 255.255.255.0
|
|
|
|
4) Send data to listener
|
|
|
|
$ nc -u 192.0.2.2 4242 <<EOF
|
|
foobar
|
|
EOF
|
|
|
|
|
|
echo-client
|
|
===========
|
|
|
|
echo-client is a tool that is run in Linux host side and
|
|
which sends pre-defined UDP data packets to echo-server
|
|
application that is running in qemu side. This client
|
|
process verifies that it is able to receive data correctly
|
|
from the echo-server and thus verify that the upper layer
|
|
networking components in Zephyr IP stack work properly.
|
|
|
|
You needs to setup the slip connection (see the steps 1 to 3)
|
|
in tunslip6 section of this document.
|
|
|
|
Example:
|
|
|
|
$ ./echo-client 2001:db8::2
|
|
|
|
In order to send multicast IPv6 packets, one needs to
|
|
give the network interface as a parameter.
|
|
|
|
$ ./echo-client -i tun0 ff84::2
|
|
|
|
|
|
echo-server
|
|
===========
|
|
|
|
echo-server is a tool that is run in Linux host side and
|
|
which waits UDP data sent by echo-client application that
|
|
is running in qemu side.
|
|
|
|
You needs to setup the slip connection (see the steps 1 to 3)
|
|
in tunslip6 section of this document. Make sure that the Linux
|
|
host firewall is not blocking the packets that the echo-client
|
|
running in qemu is sending via tun0 device.
|
|
|
|
Example:
|
|
|
|
$ sudo ./echo-server -i tun0
|
|
|
|
|
|
dtls-client
|
|
===========
|
|
|
|
dtls-client is a tool that is run in Linux host side and
|
|
which connects to dtls-server running in qemu.
|
|
|
|
You needs to setup the slip connection (see the steps 1 to 3)
|
|
in tunslip6 section of this document. You also need tinyDTLS
|
|
sources which can be found here http://sourceforge.net/projects/tinydtls/
|
|
Compile and install the tinyDTLS library in host.
|
|
|
|
Example:
|
|
|
|
$ make TINYDTLS=/home/user/tinydtls-0.8.2 dtls-client
|
|
|
|
$ ./dtls-client 2001:db8::2
|
|
|
|
|
|
dtls-server
|
|
===========
|
|
|
|
dtls-server is a tool that is run in Linux host side and
|
|
which waits DTLS data sent by dtls-client application that
|
|
is running in qemu side.
|
|
|
|
You needs to setup the slip connection (see the steps 1 to 3)
|
|
in tunslip6 section of this document.
|
|
|
|
Example:
|
|
|
|
$ make TINYDTLS=/home/user/tinydtls-0.8.2 dtls-server
|
|
|
|
$ ./dtls-server -i tun0
|
|
|
|
monitor_15_4
|
|
============
|
|
|
|
monitor_15_4 is a tool that is run in Linux host side and
|
|
which reads data from pipes which is written buy 15.4 test
|
|
application from qemu. This is T juntion tool which reads
|
|
and writes data from pipes and feed into pipes (this way
|
|
both qemus communicate each other) and same time data
|
|
written in PCAP format for wireshark monitoring.
|
|
|
|
Please also read samples/network/test_15_4/README for
|
|
how to configure and run two qemus.
|
|
|
|
Make and run this tool
|
|
|
|
$ make
|
|
|
|
Usage : monitor_15_4 <sample pcap file> [<pipe_1> <pipe_2>]
|
|
|
|
$ monitor_15_4 sample.pcap
|
|
|
|
or
|
|
|
|
$ monitor_15_4 sample.pcap /tmp/ip-15-4-1 /tmp/ip-15-4-2
|
|
|
|
|
|
coap-client
|
|
===========
|
|
|
|
coap-client is a tool that is run in Linux host side and
|
|
which connects to coap-server running in qemu.
|
|
|
|
You needs to setup the slip connection (see the steps 1 to 3)
|
|
in tunslip6 section of this document. You also need tinyDTLS
|
|
sources which can be found here http://sourceforge.net/projects/tinydtls/
|
|
Compile and install the tinyDTLS library in host.
|
|
You will also need libcoap package which can be found here
|
|
https://github.com/obgm/libcoap.git
|
|
Compile and install the libcoap library in host.
|
|
|
|
Example:
|
|
|
|
$ make TINYDTLS=/home/user/tinydtls-0.8.2 \
|
|
LIBCOAP=/home/user/libcoap coap-client
|
|
|
|
If you want to use DTLS then run client like this
|
|
$ sudo ./coap-client -i tun0 2001:db8::2
|
|
|
|
For non-DTLS case, run client like this
|
|
$ sudo ./coap-client -n -i tun0 2001:db8::2
|
|
|
|
|
|
coap-observe-client
|
|
===================
|
|
|
|
You can test the coap-observe-client that is running in qemu
|
|
using the coap-server example server that is found in libcoap.
|
|
So get libcoap package which can be found here
|
|
https://github.com/obgm/libcoap.git
|
|
Compile and install the libcoap library in host.
|
|
|
|
You needs to setup the slip connection (see the steps 1 to 3)
|
|
in tunslip6 section of this document.
|
|
|
|
$ /home/user/libcoap/examples/coap-server -A 2001:db8::1 -p 5683
|
|
|
|
Then in the samples/network/coap_observe_client directory, say
|
|
|
|
$ make qemu
|