summaryrefslogtreecommitdiff
path: root/mesh/node.c
diff options
context:
space:
mode:
authorMichaƂ Lowas-Rzechonek <michal.lowas-rzechonek@silvair.com>2020-06-17 22:26:57 +0200
committerBrian Gix <brian.gix@intel.com>2020-06-18 08:34:14 -0700
commitc3410029520e7b1389446c34f03c51bb95bbf71b (patch)
treefbb6647fd6f32d00ce72af35e043e46cd33eaa2f /mesh/node.c
parentfd353235439effcb30402590b4e8a25c5dc189fc (diff)
downloadbluez-c3410029520e7b1389446c34f03c51bb95bbf71b.tar.gz
mesh: Replace BeaconFlags with just IvUpdate
To import nodes, applications need just IvIndex and IvUpdate. KeyRefresh phase in under provisioner's control, so we don't need to expose it. Moreover, BeaconFlags property dealt just with the primary net key, and each subnet key is refreshed separately.
Diffstat (limited to 'mesh/node.c')
-rw-r--r--mesh/node.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/mesh/node.c b/mesh/node.c
index 81763e5fa..cf4d93aec 100644
--- a/mesh/node.c
+++ b/mesh/node.c
@@ -32,6 +32,7 @@
#include "mesh/mesh-defs.h"
#include "mesh/mesh.h"
#include "mesh/net.h"
+#include "mesh/net-keys.h"
#include "mesh/appkey.h"
#include "mesh/mesh-config.h"
#include "mesh/provision.h"
@@ -2154,7 +2155,7 @@ static bool beacon_getter(struct l_dbus *dbus, struct l_dbus_message *msg,
return true;
}
-static bool beaconflags_getter(struct l_dbus *dbus, struct l_dbus_message *msg,
+static bool ivupdate_getter(struct l_dbus *dbus, struct l_dbus_message *msg,
struct l_dbus_message_builder *builder,
void *user_data)
{
@@ -2162,10 +2163,13 @@ static bool beaconflags_getter(struct l_dbus *dbus, struct l_dbus_message *msg,
struct mesh_net *net = node_get_net(node);
uint8_t flags;
uint32_t iv_index;
+ bool ivu;
mesh_net_get_snb_state(net, &flags, &iv_index);
- l_dbus_message_builder_append_basic(builder, 'y', &flags);
+ ivu = flags & IV_INDEX_UPDATE;
+
+ l_dbus_message_builder_append_basic(builder, 'b', &ivu);
return true;
}
@@ -2264,8 +2268,8 @@ static void setup_node_interface(struct l_dbus_interface *iface)
l_dbus_interface_property(iface, "Features", 0, "a{sv}", features_getter,
NULL);
l_dbus_interface_property(iface, "Beacon", 0, "b", beacon_getter, NULL);
- l_dbus_interface_property(iface, "BeaconFlags", 0, "y",
- beaconflags_getter, NULL);
+ l_dbus_interface_property(iface, "IvUpdate", 0, "b", ivupdate_getter,
+ NULL);
l_dbus_interface_property(iface, "IvIndex", 0, "u", ivindex_getter,
NULL);
l_dbus_interface_property(iface, "SequenceNumber", 0, "u",