net: lwm2m: Makes OMA TLV content fmt conditional

With LwM2M v1.1 usage of the OMA TLV content format is discouraged.

Signed-off-by: Veijo Pesonen <veijo.pesonen@nordicsemi.no>
This commit is contained in:
Veijo Pesonen 2022-04-12 13:07:25 +03:00 committed by Marti Bolivar
commit 1105017ce0
3 changed files with 23 additions and 2 deletions

View file

@ -11,7 +11,6 @@ zephyr_library_sources(
lwm2m_obj_device.c lwm2m_obj_device.c
lwm2m_rw_link_format.c lwm2m_rw_link_format.c
lwm2m_rw_plain_text.c lwm2m_rw_plain_text.c
lwm2m_rw_oma_tlv.c
lwm2m_util.c lwm2m_util.c
) )
@ -44,6 +43,10 @@ zephyr_library_sources_ifdef(CONFIG_LWM2M_PORTFOLIO_OBJ_SUPPORT
lwm2m_obj_portfolio.c lwm2m_obj_portfolio.c
) )
# TLV Support
zephyr_library_sources_ifdef(CONFIG_LWM2M_RW_OMA_TLV_SUPPORT
lwm2m_rw_oma_tlv.c
)
# JSON Support # JSON Support
zephyr_library_sources_ifdef(CONFIG_LWM2M_RW_JSON_SUPPORT zephyr_library_sources_ifdef(CONFIG_LWM2M_RW_JSON_SUPPORT
lwm2m_rw_json.c lwm2m_rw_json.c

View file

@ -25,6 +25,7 @@ choice
config LWM2M_VERSION_1_0 config LWM2M_VERSION_1_0
bool "LwM2M version 1.0" bool "LwM2M version 1.0"
imply LWM2M_RW_OMA_TLV_SUPPORT
config LWM2M_VERSION_1_1 config LWM2M_VERSION_1_1
bool "LwM2M version 1.1 [EXPERIMENTAL]" bool "LwM2M version 1.1 [EXPERIMENTAL]"
@ -409,6 +410,11 @@ config LWM2M_FIRMWARE_UPDATE_PULL_COAP_PROXY_ADDR
help help
Network address of the CoAP proxy server. Network address of the CoAP proxy server.
config LWM2M_RW_OMA_TLV_SUPPORT
bool "TLV data format"
help
Include support for write / parse TLV data
config LWM2M_RW_JSON_SUPPORT config LWM2M_RW_JSON_SUPPORT
bool "support for JSON writer" bool "support for JSON writer"
default y default y

View file

@ -1582,10 +1582,12 @@ static int select_writer(struct lwm2m_output_context *out, uint16_t accept)
out->writer = &plain_text_writer; out->writer = &plain_text_writer;
break; break;
#ifdef CONFIG_LWM2M_RW_OMA_TLV_SUPPORT
case LWM2M_FORMAT_OMA_TLV: case LWM2M_FORMAT_OMA_TLV:
case LWM2M_FORMAT_OMA_OLD_TLV: case LWM2M_FORMAT_OMA_OLD_TLV:
out->writer = &oma_tlv_writer; out->writer = &oma_tlv_writer;
break; break;
#endif
#ifdef CONFIG_LWM2M_RW_JSON_SUPPORT #ifdef CONFIG_LWM2M_RW_JSON_SUPPORT
case LWM2M_FORMAT_OMA_JSON: case LWM2M_FORMAT_OMA_JSON:
@ -1619,10 +1621,12 @@ static int select_reader(struct lwm2m_input_context *in, uint16_t format)
in->reader = &plain_text_reader; in->reader = &plain_text_reader;
break; break;
#ifdef CONFIG_LWM2M_RW_OMA_TLV_SUPPORT
case LWM2M_FORMAT_OMA_TLV: case LWM2M_FORMAT_OMA_TLV:
case LWM2M_FORMAT_OMA_OLD_TLV: case LWM2M_FORMAT_OMA_OLD_TLV:
in->reader = &oma_tlv_reader; in->reader = &oma_tlv_reader;
break; break;
#endif
#ifdef CONFIG_LWM2M_RW_JSON_SUPPORT #ifdef CONFIG_LWM2M_RW_JSON_SUPPORT
case LWM2M_FORMAT_OMA_JSON: case LWM2M_FORMAT_OMA_JSON:
@ -3684,9 +3688,11 @@ static int do_read_op(struct lwm2m_message *msg, uint16_t content_format)
case LWM2M_FORMAT_OMA_PLAIN_TEXT: case LWM2M_FORMAT_OMA_PLAIN_TEXT:
return do_read_op_plain_text(msg, content_format); return do_read_op_plain_text(msg, content_format);
#if defined(CONFIG_LWM2M_RW_OMA_TLV_SUPPORT)
case LWM2M_FORMAT_OMA_TLV: case LWM2M_FORMAT_OMA_TLV:
case LWM2M_FORMAT_OMA_OLD_TLV: case LWM2M_FORMAT_OMA_OLD_TLV:
return do_read_op_tlv(msg, content_format); return do_read_op_tlv(msg, content_format);
#endif
#if defined(CONFIG_LWM2M_RW_JSON_SUPPORT) #if defined(CONFIG_LWM2M_RW_JSON_SUPPORT)
case LWM2M_FORMAT_OMA_JSON: case LWM2M_FORMAT_OMA_JSON:
@ -4228,9 +4234,11 @@ static int do_write_op(struct lwm2m_message *msg,
case LWM2M_FORMAT_OMA_PLAIN_TEXT: case LWM2M_FORMAT_OMA_PLAIN_TEXT:
return do_write_op_plain_text(msg); return do_write_op_plain_text(msg);
#ifdef CONFIG_LWM2M_RW_OMA_TLV_SUPPORT
case LWM2M_FORMAT_OMA_TLV: case LWM2M_FORMAT_OMA_TLV:
case LWM2M_FORMAT_OMA_OLD_TLV: case LWM2M_FORMAT_OMA_OLD_TLV:
return do_write_op_tlv(msg); return do_write_op_tlv(msg);
#endif
#ifdef CONFIG_LWM2M_RW_JSON_SUPPORT #ifdef CONFIG_LWM2M_RW_JSON_SUPPORT
case LWM2M_FORMAT_OMA_JSON: case LWM2M_FORMAT_OMA_JSON:
@ -4423,10 +4431,14 @@ static int lwm2m_engine_default_content_format(uint16_t *accept_format)
LOG_ERR("SenML CBOR or JSON is not supported"); LOG_ERR("SenML CBOR or JSON is not supported");
return -ENOTSUP; return -ENOTSUP;
} }
} else { } else if (IS_ENABLED(CONFIG_LWM2M_RW_OMA_TLV_SUPPORT)) {
LOG_DBG("No accept option given. Assume OMA TLV."); LOG_DBG("No accept option given. Assume OMA TLV.");
*accept_format = LWM2M_FORMAT_OMA_TLV; *accept_format = LWM2M_FORMAT_OMA_TLV;
} else {
LOG_ERR("No default content format is set");
return -ENOTSUP;
} }
return 0; return 0;
} }