51 #define UNICOAP_PAYLOAD_MARKER           (0xFF) 
   56 #define UNICOAP_ETAG_LENGTH_MAX          (8) 
   67 #define UNICOAP_TOKEN_LENGTH_FIXED_WIDTH 4 
   78 #define UNICOAP_RFC7252_MESSAGE_TYPE_FIXED_WIDTH 3 
  106 #define UNICOAP_CODE_EMPTY (0) 
  113 #  define UNICOAP_CODE(suffix, detail) ((CONCAT(UNICOAP_CODE_CLASS_, suffix) << 5) | detail) 
  169               "Method enum is too wide, please file an issue.");
 
  210               "Signal enum is too wide, please file an issue.");
 
  401               "Status enum is too wide, please file an issue.");
 
  694               "unicoap_option_number_t has unexpected size");
 
#define static_assert(cond,...)
static_assert for c-version < c11
 
unicoap_code_class_t
Message code class.
 
unicoap_protocol_version_t
CoAP version number.
 
unicoap_status_t
CoAP response status codes.
 
unicoap_signal_t
CoAP Signal Message Codes (7.xx range)
 
unicoap_rfc7252_message_type_t
RFC 7252 message type.
 
unicoap_method_t
CoAP request method codes (0.xx range)
 
@ UNICOAP_CODE_CLASS_RESPONSE_SUCCESS
Message class for success responses.
 
@ UNICOAP_CODE_CLASS_RESPONSE_CLIENT_FAILURE
Message class for responses indicating a client error.
 
@ UNICOAP_CODE_CLASS_RESPONSE_SERVER_FAILURE
Message class for responses indicating a server error.
 
@ UNICOAP_CODE_CLASS_SIGNAL
Signaling message.
 
@ UNICOAP_CODE_CLASS_REQUEST
Message class for requests.
 
@ UNICOAP_COAP_VERSION_1
Identifier for CoAP version 1 (RFC 7252)
 
@ UNICOAP_STATUS_REQUEST_ENTITY_INCOMPLETE
4.08 Request Entity Incomplete
 
@ UNICOAP_STATUS_GATEWAY_TIMEOUT
5.04 Gateway Timeout
 
@ UNICOAP_STATUS_BAD_GATEWAY
5.02 Bad Gateway
 
@ UNICOAP_STATUS_FORBIDDEN
4.03 Forbidden
 
@ UNICOAP_STATUS_UNPROCESSABLE_ENTITY
Unprocessable Entity.
 
@ UNICOAP_STATUS_PATH_NOT_FOUND
4.04 Not Found
 
@ UNICOAP_STATUS_TOO_MANY_REQUESTS
4.29 Too Many Requests
 
@ UNICOAP_STATUS_CONTINUE
2.31 Continue
 
@ UNICOAP_STATUS_INTERNAL_SERVER_ERROR
5.00 Internal Server Error
 
@ UNICOAP_STATUS_PRECONDITION_FAILED
4.12 Precondition Failed
 
@ UNICOAP_STATUS_CONFLICT
4.09 Conflict
 
@ UNICOAP_STATUS_NOT_IMPLEMENTED
5.01 Not Implemented
 
@ UNICOAP_STATUS_METHOD_NOT_ALLOWED
4.05 Method Not Allowed
 
@ UNICOAP_STATUS_UNSUPPORTED_CONTENT_FORMAT
4.15 Unsupported Content Format
 
@ UNICOAP_STATUS_NOT_ACCEPTABLE
4.06 Not Acceptable
 
@ UNICOAP_STATUS_CONTENT
2.05 Content
 
@ UNICOAP_STATUS_DELETED
2.02 Deleted
 
@ UNICOAP_STATUS_SERVICE_UNAVAILABLE
5.03 Service Unavailable
 
@ UNICOAP_STATUS_REQUEST_ENTITY_TOO_LARGE
4.13 Request Entity Too Large
 
@ UNICOAP_STATUS_CHANGED
2.04 Changed
 
@ UNICOAP_STATUS_PROXYING_NOT_SUPPORTED
5.05 Proxying Not Supported
 
@ UNICOAP_STATUS_BAD_REQUEST
4.00 Bad Request
 
@ UNICOAP_STATUS_UNAUTHORIZED
4.01 Unauthorized
 
@ UNICOAP_STATUS_CREATED
2.01 Create
 
@ UNICOAP_STATUS_BAD_OPTION
4.02 Bad Option
 
@ UNICOAP_STATUS_VALID
2.03 Valid
 
@ UNICOAP_SIGNAL_PING
Ping message.
 
@ UNICOAP_SIGNAL_CAPABILITIES_SETTINGS
Capabilities and settings message (CSM)
 
@ UNICOAP_SIGNAL_PONG
Pong message.
 
@ UNICOAP_SIGNAL_RELEASE
Release message.
 
@ UNICOAP_SIGNAL_ABORT
Abort message.
 
@ UNICOAP_TYPE_RST
An reset message.
 
@ UNICOAP_TYPE_CON
A confirmable message.
 
@ UNICOAP_TYPE_ACK
An acknowledgement message.
 
@ UNICOAP_TYPE_NON
A non-confirmable message.
 
@ UNICOAP_METHOD_PATCH
PATCH request (RFC 8132)
 
@ UNICOAP_METHOD_GET
GET request (no paylod)
 
@ UNICOAP_METHOD_IPATCH
iPATCH request (RFC 8132)
 
@ UNICOAP_METHOD_DELETE
DELETE request (no payload, remove resource)
 
@ UNICOAP_METHOD_FETCH
FETCH request (RFC 8132)
 
@ UNICOAP_METHOD_PUT
PUT request (update resource with payload)
 
@ UNICOAP_METHOD_POST
POST request (resource processes payload)
 
unicoap_content_format_t
Content-Format option values
 
@ UNICOAP_FORMAT_AIF_JSON
Content type application/aif+json
 
@ UNICOAP_FORMAT_JSON
Content type application/json
 
@ UNICOAP_FORMAT_TEXT
Content type text/plain; charset=utf-8
 
@ UNICOAP_FORMAT_ACE_GROUPCOMM_CBOR
Content type application/ace-groupcomm+cbor
 
@ UNICOAP_FORMAT_XML_ZSTD
Content type application/xml in zstd coding.
 
@ UNICOAP_FORMAT_TEXT_ZSTD
Content type text/plain;charset=utf-8 in zstd coding.
 
@ UNICOAP_FORMAT_OSCORE
Content type application/oscore
 
@ UNICOAP_FORMAT_SENSML_JSON
Content type application/sensml+json
 
@ UNICOAP_FORMAT_SENSML_EXI
Content type application/sensml-exi
 
@ UNICOAP_FORMAT_ACE_TRL_CBOR
Content type application/ace-trl+cbor
 
@ UNICOAP_FORMAT_UCCS_CBOR
Content type application/uccs+cbor
 
@ UNICOAP_FORMAT_EAT_CWT_PSA_LEGACY
Content type application/eat+cwt; eat_profile=\"tag:psacertified.org,2019:psa\#legacy\\"
 
@ UNICOAP_FORMAT_MERGE_PATCH_JSON
Content type application/merge-patch+json
 
@ UNICOAP_FORMAT_EDHOC_CBOR_SEQ
Content type application/edhoc+cbor-seq
 
@ UNICOAP_FORMAT_CBOR_DEFLATE
Content type application/cbor in deflate coding.
 
@ UNICOAP_FORMAT_SENML_XML
Content type application/senml+xml
 
@ UNICOAP_FORMAT_COSE_SIGN1
Content type application/cose; cose-type=\"cose-sign1\\"
 
@ UNICOAP_FORMAT_OCF_CBOR
Content type application/vnd.ocf+cbor
 
@ UNICOAP_FORMAT_SDF_JSON
Content type application/sdf+json
 
@ UNICOAP_FORMAT_CBOR
Content type application/cbor
 
@ UNICOAP_FORMAT_YANG_DATA_CBOR_NAME
Content type application/yang-data+cbor; id=name
 
@ UNICOAP_FORMAT_EXI
Content type application/exi
 
@ UNICOAP_FORMAT_LINK
Content type application/link-format
 
@ UNICOAP_FORMAT_YANG_SID_JSON
Content type application/yang-sid+json
 
@ UNICOAP_FORMAT_SENSML_XML
Content type application/sensml+xml
 
@ UNICOAP_FORMAT_PKCS7_MIME_SERVER_GENERATED_KEY
Content type application/pkcs7-mime; smime-type=server-generated-key
 
@ UNICOAP_FORMAT_COSE_ENCRYPT0
Content type application/cose; cose-type=\"cose-encrypt0\\"
 
@ UNICOAP_FORMAT_COSE_KEY_SET
Content type application/cose-key-set
 
@ UNICOAP_FORMAT_CID_EDHOC_CBOR_SEQ
Content type application/cid-edhoc+cbor-seq
 
@ UNICOAP_FORMAT_EAT_UCS_CBOR
Content type application/eat-ucs+cbor
 
@ UNICOAP_FORMAT_TD_JSON
Content type application/td+json
 
@ UNICOAP_FORMAT_PKCS7_MIME_CERTS_ONLY
Content type application/pkcs7-mime; smime-type=certs-only
 
@ UNICOAP_FORMAT_TOC_CBOR_INTEL
Content type application/toc+cbor;profile=2.16.840.1.113741.1.16.1
 
@ UNICOAP_FORMAT_SENML_ETCH_JSON
Content type application/senml-etch+json
 
@ UNICOAP_FORMAT_MISSING_BLOCKS_CBOR_SEQ
Content type application/missing-blocks+cbor-seq
 
@ UNICOAP_FORMAT_PKCS8
Content type application/pkcs8
 
@ UNICOAP_FORMAT_SENML_EXI
Content type application/senml-exi
 
@ UNICOAP_FORMAT_OMA_LWM2M_TLV
Content type application/vnd.oma.lwm2m+tlv
 
@ UNICOAP_FORMAT_COAP_GROUP_JSON
Content type application/coap-group+json
 
@ UNICOAP_FORMAT_TEXT_CSS
Content type text/css
 
@ UNICOAP_FORMAT_IMAGE_JPEG
Content type image/jpeg
 
@ UNICOAP_FORMAT_COSE_KEY
Content type application/cose-key
 
@ UNICOAP_FORMAT_JSON_PATCH_JSON
Content type application/json-patch+json
 
@ UNICOAP_FORMAT_YANG_DATA_CBOR
Content type application/yang-data+cbor
 
@ UNICOAP_FORMAT_XML
Content type application/xml
 
@ UNICOAP_FORMAT_EAT_CWT_INTEL
Content type application/eat+cwt; eat_profile=2.16.840.1.113741.1.16.1
 
@ UNICOAP_FORMAT_JSON_ZSTD
Content type application/json in zstd coding.
 
@ UNICOAP_FORMAT_PKIXCMP
Content type application/pkixcmp
 
@ UNICOAP_FORMAT_COSE_MAC0
Content type application/cose; cose-type=\"cose-mac0\\"
 
@ UNICOAP_FORMAT_IMAGE_PNG
Content type image/png
 
@ UNICOAP_FORMAT_CE_CBOR_INTEL
Content type application/ce+cbor;profile=2.16.840.1.113741.1.16.1
 
@ UNICOAP_FORMAT_ACE_CBOR
Content type application/ace+cbor
 
@ UNICOAP_FORMAT_SENML_ETCH_CBOR
Content type application/senml-etch+cbor
 
@ UNICOAP_FORMAT_PKIX_CERT
Content type application/pkix-cert
 
@ UNICOAP_FORMAT_OMA_LWM2M_CBOR
Content type application/vnd.oma.lwm2m+cbor
 
@ UNICOAP_FORMAT_JAVASCRIPT
Content type application/javascript
 
@ UNICOAP_FORMAT_SENML_CBOR
Content type application/senml+cbor
 
@ UNICOAP_FORMAT_SWID_CBOR
Content type application/swid+cbor
 
@ UNICOAP_FORMAT_CONCISE_PROBLEM_DETAILS_CBOR
Content type application/concise-problem-details+cbor
 
@ UNICOAP_FORMAT_AIF_CBOR
Content type application/aif+cbor
 
@ UNICOAP_FORMAT_IMAGE_GIF
Content type image/gif
 
@ UNICOAP_FORMAT_COSE_MAC
Content type application/cose; cose-type=\"cose-mac\\"
 
@ UNICOAP_FORMAT_COSE_SIGN
Content type application/cose; cose-type=\"cose-sign\\"
 
@ UNICOAP_FORMAT_EAT_CWT_PSA_TFM
Content type application/eat+cwt; eat_profile=\"tag:psacertified.org,2023:psa\#tfm\\"
 
@ UNICOAP_FORMAT_YANG_DATA_CBOR_SID
Content type application/yang-data+cbor; id=sid
 
@ UNICOAP_FORMAT_IMAGE_SVG_XML
Content type image/svg+xml
 
@ UNICOAP_FORMAT_SENML_JSON
Content type application/senml+json
 
@ UNICOAP_FORMAT_CBOR_SEQ
Content type application/cbor-seq
 
@ UNICOAP_FORMAT_DOTS_CBOR
Content type application/dots+cbor
 
@ UNICOAP_FORMAT_EAT_CWT
Content type application/eat+cwt
 
@ UNICOAP_FORMAT_PKCS10
Content type application/pkcs10
 
@ UNICOAP_FORMAT_COSE_ENCRYPT
Content type application/cose; cose-type=\"cose-encrypt\\"
 
@ UNICOAP_FORMAT_EAT_JWT
Content type application/eat+jwt
 
@ UNICOAP_FORMAT_OMA_LWM2M_JSON
Content type application/vnd.oma.lwm2m+json
 
@ UNICOAP_FORMAT_CE_CBOR
Content type application/ce+cbor
 
@ UNICOAP_FORMAT_EAT_BUN_JSON
Content type application/eat-bun+json
 
@ UNICOAP_FORMAT_CWT
Content type application/cwt
 
@ UNICOAP_FORMAT_JSON_DEFLATE
Content type application/json in deflate coding.
 
@ UNICOAP_FORMAT_CSRATTRS
Content type application/csrattrs
 
@ UNICOAP_FORMAT_OCTET_STREAM
Content type application/octet-stream
 
@ UNICOAP_FORMAT_TOC_CBOR
Content type application/toc+cbor
 
@ UNICOAP_FORMAT_SENSML_CBOR
Content type application/sensml+cbor
 
@ UNICOAP_FORMAT_COAP_EAP
Content type application/coap-eap
 
@ UNICOAP_FORMAT_EAT_BUN_CBOR
Content type application/eat-bun+cbor
 
@ UNICOAP_FORMAT_MULTIPART_CORE
Content type application/multipart-core
 
@ UNICOAP_FORMAT_TM_JSON
Content type application/tm+json
 
@ UNICOAP_FORMAT_EAT_UCS_JSON
Content type application/eat-ucs+json
 
unicoap_option_number_t
CoAP option number.
 
@ UNICOAP_OPTION_URI_PORT
Uri-Port
 
@ UNICOAP_OPTION_MAX_AGE
Max-Age option
 
@ UNICOAP_SIGNALING_ABORT_OPTION_BAD_CSM
Bad-CSM-Option option Applies to 7.05 UNICOAP_SIGNAL_ABORT message.
 
@ UNICOAP_OPTION_REQUEST_TAG
Request-Tag option.
 
@ UNICOAP_OPTION_URI_HOST
Uri-Host option
 
@ UNICOAP_OPTION_CONTENT_FORMAT
Content-Format option
 
@ UNICOAP_OPTION_OBSERVE
Observe option
 
@ UNICOAP_OPTION_ECHO
Echo option.
 
@ UNICOAP_OPTION_IF_MATCH
If-Match option
 
@ UNICOAP_OPTION_NO_RESPONSE
suppress CoAP response
 
@ UNICOAP_OPTION_PROXY_URI
Proxy-Uri option
 
@ UNICOAP_SIGNALING_RELEASE_OPTION_HOLD_OFF
Hold-Off option Applies to 7.04 UNICOAP_SIGNAL_RELEASE message.
 
@ UNICOAP_OPTION_Q_BLOCK2
Q-Block2 option.
 
@ UNICOAP_OPTION_EDHOC
EDHOC option.
 
@ UNICOAP_OPTION_OSCORE
OSCORE option.
 
@ UNICOAP_OPTION_BLOCK2
Block2 option
 
@ UNICOAP_SIGNALING_CSM_OPTION_BLOCKWISE_TRANSFER
Blockwise-Transfer option Applies to 7.01 UNICOAP_SIGNAL_CAPABILITIES_SETTINGS message.
 
@ UNICOAP_OPTION_SIZE2
Size2 option.
 
@ UNICOAP_OPTION_URI_PATH
Uri-Path option
 
@ UNICOAP_OPTION_BLOCK1
Block1 option
 
@ UNICOAP_OPTION_ETAG
ETag option
 
@ UNICOAP_OPTION_LOCATION_QUERY
Location-Query option
 
@ UNICOAP_OPTION_IF_NONE_MATCH
If-None-Match option
 
@ UNICOAP_SIGNALING_PING_PONG_OPTION_CUSTODY
Custody option Applies to 7.02 UNICOAP_SIGNAL_PING and 7.03 UNICOAP_SIGNAL_PONG message.
 
@ UNICOAP_OPTION_LOCATION_PATH
Location-Path option
 
@ UNICOAP_SIGNALING_RELEASE_OPTION_ALTERNATIVE_ADDRESS
Alternative-Address option Applies to 7.04 UNICOAP_SIGNAL_RELEASE message.
 
@ UNICOAP_OPTION_SIZE1
Size1 option.
 
@ UNICOAP_OPTION_Q_BLOCK1
Q-Block1 option
 
@ UNICOAP_OPTION_PROXY_SCHEME
Proxy-Scheme option
 
@ UNICOAP_OPTION_URI_QUERY
Uri-Query option
 
@ UNICOAP_SIGNALING_CSM_OPTION_MAX_MESSAGE_SIZE
Max-Message-Size option Applies to 7.01 UNICOAP_SIGNAL_CAPABILITIES_SETTINGS message.
 
@ UNICOAP_OPTION_HOP_LIMIT
Hop-Limit option
 
@ UNICOAP_OPTION_ACCEPT
Accept option
 
Compile-time configuration parameters.