zephyr/samples/net/coaps_server
Jukka Rissanen d32503f57e net: nbuf: Split one global DATA pool to RX and TX DATA pools
If we receive lot of packets, it might happen that we exhaust
all the DATA buffers in the system. This would prevent from
us sending anything to the network.
Change this by splitting the DATA buffer pool into RX and TX
parts. This way RX flooding cannot consume all DATA buffers
that needs to be sent.

Change-Id: I8e8934c6d5fdd47b579ffa6268721b5eb3d64b6d
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
2017-03-09 20:33:43 +02:00
..
src net: nbuf: Add timeout to net_buf getters 2017-02-08 10:12:35 +02:00
Makefile samples/coaps_server CoAP over DTLS server example app using mbedTLS 2017-01-27 12:35:53 +02:00
prj_qemu_x86.conf net: nbuf: Split one global DATA pool to RX and TX DATA pools 2017-03-09 20:33:43 +02:00
README.rst doc: net: use Qemu setup section in current documentation 2017-02-03 15:59:19 +02:00
testcase.ini samples/coaps_server CoAP over DTLS server example app using mbedTLS 2017-01-27 12:35:53 +02:00

CoAP over DTLS sample server
############################

Overview
********
This sample code shows a CoAP over DTLS server using mbedTLS on top of Zephyr.

Building and Running
********************

Follow the steps for testing :ref:`networking with Qemu <networking_with_qemu>`.

In the application directory type:

.. code-block:: console

   $make run

In other terminal window, obtain the libcoap code from:

.. code-block:: console

	git clone --recursive -b dtls https://github.com/obgm/libcoap.git

and put it in a well known directory, in your Linux machine, this will be your
client. In order to compile libcoap you may need to install the following
libraries, for Ubuntu

.. code-block:: console

	sudo apt-get install libtool asciidoc

Move to that directory and compile the libcoap on your host machine

.. code-block:: console

	./autogen.sh
	./configure --disable-shared
	make all

Now you can run the client like

.. code-block:: console

	cd examples
	./coap-client -m get coaps://[2001:db8::1]/test -u Client_identity -k passwd

You will get the following output:

.. code-block:: console

	v:1 t:CON c:GET i:7154 {} [ ]
	decrypt_verify(): found 24 bytes cleartext
	decrypt_verify(): found 123 bytes cleartext
	Type: 0
	Code: 1
	MID: 29012

From the app directory type the screen should display

.. code-block:: console

	*******
	type: 0 code 1 id 29012
	*******
 	mbedtls_ssl_read returned -0x7780

If the server does not receive the  messages, restart the app and try to connect
the client again.

References
**********

* https://tls.mbed.org/
* https://libcoap.net/