zephyr/samples/net/sockets/coap_server
Jukka Rissanen 5c3fa85bc8 samples: net: Change to use CONFIG_POSIX_API
Change the sample applications that use network socket API to
use the POSIX_API config because the NET_SOCKETS_POSIX_NAMES is
deprecated. Convert also the zsock_ API calls to plain BSD
socket API calls when applicable.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-03-27 13:40:13 -05:00
..
boards samples/net/sockets/*: Use hwmv2 native targets identifiers 2024-03-15 16:13:12 +01:00
src net: lib: coap: Use coap_transmission_parameters in coap_server 2023-12-18 09:28:25 +01:00
CMakeLists.txt samples: net: sockets: Add CoAP service example 2023-11-09 11:21:42 +01:00
docker-test.sh
prj.conf samples: net: Change to use CONFIG_POSIX_API 2024-03-27 13:40:13 -05:00
README.rst samples coap_server: Move from native_posix to native_sim 2023-11-15 10:03:17 +01:00
sample.yaml samples coap_server: Move from native_posix to native_sim 2023-11-15 10:03:17 +01:00
sections-ram.ld samples: net: sockets: Add CoAP service example 2023-11-09 11:21:42 +01:00

.. zephyr:code-sample:: coap-server
   :name: CoAP service
   :relevant-api: coap coap_service udp

   Use the CoAP server subsystem to register CoAP resources.

Overview
********

This sample shows how to register CoAP resources to a main CoAP service.
The CoAP server implementation expects all services and resources to be
available at compile time, as they are put into dedicated sections.

The resource is placed into the correct linker section based on the owning
service's name. A linker file is required, see ``sections-ram.ld`` for an example.

This demo assumes that the platform of choice has networking support,
some adjustments to the configuration may be needed.

The sample will listen for requests in the CoAP UDP port (5683) in the
site-local IPv6 multicast address reserved for CoAP nodes.

The sample exports the following resources:

.. code-block:: none

   /test
   /seg1/seg2/seg3
   /query
   /separate
   /large
   /location-query
   /large-update

These resources allow a good part of the ETSI test cases to be run
against coap-server.

Building And Running
********************

This project has no output in case of success, the correct
functionality can be verified by using some external tool such as tcpdump
or wireshark.

See the `net-tools`_ project for more details

This sample can be built and executed on QEMU or native_sim board as
described in :ref:`networking_with_host`.

Use this command on the host to run the `libcoap`_ implementation of
the ETSI test cases:

.. code-block:: console

   sudo ./examples/etsi_coaptest.sh -i tap0 2001:db8::1

To build the version supporting the TI CC2520 radio, use the supplied
prj_cc2520.conf configuration file enabling IEEE 802.15.4.

.. _`net-tools`: https://github.com/zephyrproject-rtos/net-tools

.. _`libcoap`: https://github.com/obgm/libcoap