From: Jakub Witowski Date: Tue, 2 Jul 2019 12:31:41 +0000 (+0200) Subject: mesh: Allow to set-up the CRPL with application X-Git-Tag: accepted/tizen/unified/20191220.123149^2~118 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9122db4bf1c8fd02c284235750ebc895b22776a4;p=platform%2Fupstream%2Fbluez.git mesh: Allow to set-up the CRPL with application This adds an optional CRPL property to org.bluez.mesh.Application1 interface, allowing to indicate the depth of reply protection list. Change-Id: I838ecb7f4f5396d46a67fe20ca87c8944331eb82 Signed-off-by: Anupam Roy --- diff --git a/doc/mesh-api.txt b/doc/mesh-api.txt index 4e0a8bf..893a1a6 100644 --- a/doc/mesh-api.txt +++ b/doc/mesh-api.txt @@ -724,6 +724,10 @@ Properties: A 16-bit vendor-assigned product version identifier + uint16 CRPL [read-only, optional] + + A 16-bit minimum number of replay protection list entries + Mesh Element Hierarchy ====================== diff --git a/mesh/node.c b/mesh/node.c index 3f5c580..3c0e64c 100644 --- a/mesh/node.c +++ b/mesh/node.c @@ -1314,10 +1314,6 @@ static bool create_node_config(struct mesh_node *node) static void set_defaults(struct mesh_node *node) { /* TODO: these values should come from mesh.conf */ - if (!node->comp) - node->comp = l_new(struct node_composition, 1); - - node->comp->crpl = DEFAULT_CRPL; node->lpn = MESH_MODE_UNSUPPORTED; node->proxy = MESH_MODE_UNSUPPORTED; node->friend = MESH_MODE_UNSUPPORTED; @@ -1340,8 +1336,10 @@ static bool get_app_properties(struct mesh_node *node, const char *path, l_debug("path %s", path); - if (is_new) + if (is_new) { node->comp = l_new(struct node_composition, 1); + node->comp->crpl = DEFAULT_CRPL; + } while (l_dbus_message_iter_next_entry(properties, &key, &variant)) { @@ -1374,6 +1372,16 @@ static bool get_app_properties(struct mesh_node *node, const char *path, return false; node->comp->vid = value; + + } else if (!strcmp(key, "CRPL")) { + if (!l_dbus_message_iter_get_variant(&variant, "q", + &value)) + return false; + + if (!is_new && node->comp->crpl != value) + return false; + + node->comp->crpl = value; } }