From e8c870c63b8f7f9f2e23ba3f5f3ad6b9adc1012e Mon Sep 17 00:00:00 2001 From: Brian Gix Date: Wed, 18 Mar 2020 10:00:20 -0700 Subject: mesh: Allow short messages to be segmented For added reliability, it is legal to send short messages as "single segment" segmented messages, which require transport layer acknowledgement. This feature is intended for heavy usage in the future so I am adding it now. Further, to support this functionality, an additional queue has been added to allow multiple SAR messages to the same DST to be queued and sent serially. --- unit/test-mesh-crypto.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'unit') diff --git a/unit/test-mesh-crypto.c b/unit/test-mesh-crypto.c index 32c46a54e..0043b0b10 100644 --- a/unit/test-mesh-crypto.c +++ b/unit/test-mesh-crypto.c @@ -1017,7 +1017,7 @@ static void check_encrypt(const struct mesh_crypto_test *keys) app_msg = l_util_from_hexstring(keys->app_msg, &app_msg_len); if (keys->szmic) { - seg_max = SEG_MAX(app_msg_len + 8); + seg_max = SEG_MAX(keys->segmented, app_msg_len + 8); enc_msg = l_malloc(app_msg_len + 8); mesh_crypto_application_encrypt(key_aid, keys->app_seq, keys->net_src, keys->net_dst, @@ -1028,7 +1028,7 @@ static void check_encrypt(const struct mesh_crypto_test *keys) enc_msg, &app_mic64, sizeof(app_mic64)); l_put_be64(app_mic64, enc_msg + app_msg_len); } else { - seg_max = SEG_MAX(app_msg_len + 4); + seg_max = SEG_MAX(keys->segmented, app_msg_len + 4); enc_msg = l_malloc(app_msg_len + 4); mesh_crypto_application_encrypt(key_aid, keys->app_seq, keys->net_src, keys->net_dst, -- cgit v1.2.1