net: lwm2m: split out lwm2m context initialization

Create an internal function lwm2m_engine_context_init() which sets
the extra packet pools and initializes retransmit work internal to
the LwM2M engine.

This function will be used by firmware pull support which establishes
a new LwM2M context for downloading firmware.

Signed-off-by: Michael Scott <michael.scott@linaro.org>
This commit is contained in:
Michael Scott 2017-09-08 08:22:59 -07:00 committed by Anas Nashif
commit 788c013d5b
2 changed files with 14 additions and 6 deletions

View file

@ -2932,6 +2932,16 @@ int lwm2m_engine_set_net_pkt_pool(struct lwm2m_ctx *ctx,
} }
#endif /* CONFIG_NET_CONTEXT_NET_PKT_POOL */ #endif /* CONFIG_NET_CONTEXT_NET_PKT_POOL */
void lwm2m_engine_context_init(struct lwm2m_ctx *client_ctx)
{
k_delayed_work_init(&client_ctx->retransmit_work, retransmit_request);
#if defined(CONFIG_NET_CONTEXT_NET_PKT_POOL)
net_app_set_net_pkt_pool(&client_ctx->net_app_ctx,
client_ctx->tx_slab, client_ctx->data_pool);
#endif
}
int lwm2m_engine_start(struct lwm2m_ctx *client_ctx, int lwm2m_engine_start(struct lwm2m_ctx *client_ctx,
char *peer_str, u16_t peer_port) char *peer_str, u16_t peer_port)
{ {
@ -2949,12 +2959,7 @@ int lwm2m_engine_start(struct lwm2m_ctx *client_ctx,
goto error_start; goto error_start;
} }
k_delayed_work_init(&client_ctx->retransmit_work, retransmit_request); lwm2m_engine_context_init(client_ctx);
#if defined(CONFIG_NET_CONTEXT_NET_PKT_POOL)
net_app_set_net_pkt_pool(&client_ctx->net_app_ctx,
client_ctx->tx_slab, client_ctx->data_pool);
#endif
/* set net_app callbacks */ /* set net_app callbacks */
ret = net_app_set_cb(&client_ctx->net_app_ctx, ret = net_app_set_cb(&client_ctx->net_app_ctx,

View file

@ -85,6 +85,9 @@ int lwm2m_get_or_create_engine_obj(struct lwm2m_engine_context *context,
struct lwm2m_engine_obj_inst **obj_inst, struct lwm2m_engine_obj_inst **obj_inst,
u8_t *created); u8_t *created);
/* LwM2M context functions */
void lwm2m_engine_context_init(struct lwm2m_ctx *client_ctx);
/* LwM2M message functions */ /* LwM2M message functions */
struct lwm2m_message *lwm2m_get_message(struct lwm2m_ctx *client_ctx); struct lwm2m_message *lwm2m_get_message(struct lwm2m_ctx *client_ctx);
void lwm2m_release_message(struct lwm2m_message *msg); void lwm2m_release_message(struct lwm2m_message *msg);