Files
libcoap/examples
Jon Shallow f026f5701e client+server: Reduce code size by building libcoap for client or server only
Add in new ./configure options --enable-client-mode or
--enable-server-mode which by default are enabled.

If --disable-client-mode is set, then disable all the client specific code.
[ COAP_CLIENT_SUPPORT is not defined ]

If --disable-server-mode is set, then disable all the server specific code.
[ COAP_SERVER_SUPPORT is not defined ]

Functions and variables are only #ifdef'd out in the include/coap3/*_internal.h
files.  They cannot be #ifdef'd out in the other include files as
COAP_CLIENT_SUPPORT and COAP_SERVER_SUPPORT are not available for application
compilations. The result of this is if, say, client only API functons are used
in a server application and COAP_CLIENT_SUPPORT is not defined, there will be
linking issues (missing functions).  Providing stub functions unecessarily
increases the code size.

For coap-server, if it is able to provide proxy support, requires both
COAP_SERVER_SUPPORT and COAP_CLIENT_SUPPORT to set up the ongoing sessions.
So, the build environment deliberatly sets SERVER_CAN_PROXY=0 if
COAP_CLIENT_SUPPORT is not available to allow linking.

Some of the tests have to be disabled if COAP_SERVER_SUPPORT or
COAP_CLIENT_SUPPORT is not set.

Code size change indications

   text    data     bss     sum   filename
 155912    1728   12080  169720   libcoap-3-notls.a
 138300    1728   12080  152108   libcoap-3-notls.a --disable-client-mode
 106734    1632   10304  118670   libcoap-3-notls.a --disable-server-mode

 180485    1733   12080  194298   libcoap-3-openssl.a
 160306    1733   12080  174119   libcoap-3-openssl.a --disable-client-mode
 125543    1637   10304  137484   libcoap-3-openssl.a --disable-server-mode

 181755    1728   12080  195563   libcoap-3-gnutls.a
 160972    1728   12080  174780   libcoap-3-gnutls.a --disable-client-mode
 127178    1632   10304  139114   libcoap-3-gnutls.a --disable-server-mode

 165879    1855   12128  179862   libcoap-3-tinydtls.a
 147022    1855   12128  161005   libcoap-3-tinydtls.a --disable-client-mode
 115618    1759   10352  127729   libcoap-3-tinydtls.a --disable-server-mode

 171690    1728   13744  187162   libcoap-3-mbedtls.a
 152099    1728   13712  167539   libcoap-3-mbedtls.a --disable-client-mode
 118786    1632   11984  132402   libcoap-3-mbedtls.a --disable-server-mode
2021-09-30 16:10:52 +01:00
..
2021-08-02 10:09:21 +01:00

This README documents the test cases supported for the 1st ETSI CoAP
plugtest on March 24/25 in Paris, France.
<http://www.etsi.org/plugtests/coap/coap.htm>

Legend:
  [+] full support
  [o] partial support
  [-] no support
  [?] needs check
  [ ] has open issues

Mandatory Tests

[+] TD_COAP_CORE_01 Perform GET transaction (CON mode)
[+] TD_COAP_CORE_02 Perform POST transaction (CON mode)
[+] TD_COAP_CORE_03 Perform PUT transaction (CON mode)
[+] TD_COAP_CORE_04 Perform DELETE transaction (CON mode)
[+] TD_COAP_CORE_05 Perform GET transaction (NON mode)
[+] TD_COAP_CORE_06 Perform POST transaction (NON mode)
[+] TD_COAP_CORE_07 Perform PUT transaction (NON mode)
[+] TD_COAP_CORE_08 Perform DELETE transaction (NON mode)
[+] TD_COAP_CORE_09 Perform GET transaction with delayed response (CON mode, no piggyback)
[+] TD_COAP_CORE_10 Handle request containing Token option
[+] TD_COAP_CORE_11 Handle request not containing Token option
[+] TD_COAP_CORE_12 Handle request containing several Uri-Path options
[+] TD_COAP_CORE_13 Handle request containing several Uri-Query options
[?] TD_COAP_CORE_14 Interoperate in lossy context (CON mode, piggybacked response)
[?] TD_COAP_CORE_15 Interoperate in lossy context (CON mode, delayed response)

Optional Tests

[ ] TD_COAP_LINK_01 Access to well-known interface for resource discovery
[-] TD_COAP_LINK_02 Use filtered requests for limiting discovery results
[+] TD_COAP_BLOCK_01 Handle GET blockwise transfer for large resource (early negotiation)
[+] TD_COAP_BLOCK_02 Handle GET blockwise transfer for large resource (late negotiation)
[-] TD_COAP_BLOCK_03 Handle PUT blockwise transfer for large resource
[-] TD_COAP_BLOCK_04 Handle POST blockwise transfer for large resource
[-] TD_COAP_OBS_01 Handle resource observation
[-] TD_COAP_OBS_02 Stop resource observation
[-] TD_COAP_OBS_03 Client detection of deregistration (Max-Age)
[-] TD_COAP_OBS_04 Server detection of deregistration (client OFF)
[-] TD_COAP_OBS_05 Server detection of deregistration (explicit RST)