Deprecate send API using the string references as paths.
Replace it with one using path structs.
Signed-off-by: Jarno Lämsä <jarno.lamsa@nordicsemi.no>
RD-Client is essential part of LwM2M specification and it can't
be disabled from LwM2M engine. This commit deprecates Kconfig
variable CONFIG_LWM2M_RD_CLIENT_SUPPORT and removes
all usages if it.
Signed-off-by: Juha Ylinen <juha.ylinen@nordicsemi.no>
Fixed problem for matching path url with or without '/'
by change time series data structure to use struct lwm2m_obj_path.
Signed-off-by: Juha Heiskanen <juha.heiskanen@nordicsemi.no>
Call lwm2m_send_message_async() from function
lwm2m_information_interface_send() and remove duplicate code.
Signed-off-by: Juha Ylinen <juha.ylinen@nordicsemi.no>
lwm2m_send_message() sends a message directly to the socket. Remove
the function from public API and combine the code with
socket_send_message().
Signed-off-by: Juha Ylinen <juha.ylinen@nordicsemi.no>
Added support for handle case when all data is not possible to
add in 1 message for Send and Observed Notification.
Notification continuous pending timeseries data is triggred
by iMIN attribute.
Send Operation generate continuous message in multiple lwm2m
message.
Normal Read by server only report back latest stored data.
Signed-off-by: Juha Heiskanen <juha.heiskanen@nordicsemi.no>
sizeof(time_t) can vary depending on architecture/libc being in use,
therefore LwM2M should not assume time_t data type size. Instead of
using magic numbers, use a proper sizeof.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Updated lwm2m_enigen_set/get_time API for support time_t.
Updated LwM2M engine set/get resource time to time resource support
time_t and uint32_t input.
LwM2M engine put and get time API update to use time_t.
Time series data cache entry have own type for time resource.
Signed-off-by: Juha Heiskanen <juha.heiskanen@nordicsemi.no>
Some minor housekeeping prior to adding an http server
implementation. There are already a number of http headers
and that number will likely increase with subsequent work.
Moving them into a common directory cleans up the
`include/net` directory a bit.
Signed-off-by: Christopher Friedt <cfriedt@meta.com>
Allows filling up struct lwm2m_obj_path by a macro.
For example:
struct lwm2m_obj_path p1 = LWM2M_OBJ(MY_OBJ);
struct lwm2m_obj_path p2 = LWM2M_OBJ(MY_OBJ, 0, RESOURCE);
Similarly, some function calls accept the structure, so it can
be initialized from stack and given by a pointer
lwm2m_notify_observer_path(&LWM2M_OBJ(obj_id, 0, RESOURCE_ID));
Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
New API for enable Historical data storage for LwM2M resource.
Data cache is only supported at resource which resource size is
static and well known.
Extend output writer for write cached data timestamp.
Enable cache support for Resource set and Read operation.
Added possibility for for drop latest or oldest data from cache.
Signed-off-by: Juha Heiskanen <juha.heiskanen@nordicsemi.no>
Used the registry lock in the functions lwm2m_registry_lock() and
lwm2m_registry_unlock() to make the registry lockable through a public
API. If writing to multiple resources that are composite-observed,
locking will halt the main thread until every resource is written to,
ensuring that only one notify message will be sent. Updated
the documentation in lwm2m to include this addition.
Signed-off-by: Ola Tangen Kulseng <ola.kulseng@nordicsemi.no>
LwM2M was not reported properly case when message "Accept"
coap option was not not supported. In that case LwM2M transport
specification define 4.06 "Not Accepted"
Signed-off-by: Juha Heiskanen <juha.heiskanen@nordicsemi.no>
When string and opaque types are uninitialized, we should
allow their data length to be zero. However, most content
formatters seem to calculate the string length separately
so replace the pointer of empty data into a static string
that is guaranteed to be empty.
Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
Separate closing lwm2m context from closing socket. This patch is required
for the rd client to take more control over lwm2m context and the socket.
The goal is to close the socket and to keep the lwm2m context if this is
needed.
Signed-off-by: Andreas Chmielewski <andreas.chmielewski@grandcentrix.net>
New API for suspend and resume LwM2M engine.
New event LWM2M_RD_CLIENT_EVENT_ENGINE_SUSPENDED for indicate
application that engine is suspended.
Simplify stack suspend and resume state same time for queue mode.
New CONFIG_LWM2M_RD_CLIENT_SUSPEND_SOCKET_AT_IDLE for enable skip socket
close at RX_OFF_IDDLE state that socket is only suspended and close is
called only when connection is resumed.
Signed-off-by: Juha Heiskanen <juha.heiskanen@nordicsemi.no>
These two macros just change the name of function call
* NOTIFY_OBSERVER
* NOTIFY_OBSERVER_PATH
I don't see any benefit of those, so I dropped them.
Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no>
Implementation of the access control object. Core object (obj_id 2).
If used without bootstrap, the default value in
CONFIG_LWM2M_SERVER_DEFAULT_SSID will be used as access control owner.
Enable/disable ac control with CONFIG_LWM2M_ACCESS_CONTROL_ENABLE.
Signed-off-by: Ola Tangen Kulseng <ola.kulseng@nordicsemi.no>
COAP_DEFAULT_MAX_RETRANSMIT and COAP_DEFAULT_ACK_RANDOM_FACTOR
should be configurable to determine the max transmission
timeout of a CoAP packet.
Signed-off-by: Andreas Chmielewski <andreas.chmielewski@grandcentrix.net>
Created the file lwm2m_message_handling.c, to include all
code pertaining to CoAP and allocation and deletion of messages
in general.
Signed-off-by: Ola Tangen Kulseng <ola.kulseng@nordicsemi.no>