Diff between fd353235439effcb30402590b4e8a25c5dc189fc and c3410029520e7b1389446c34f03c51bb95bbf71b

Changed Files

File Additions Deletions Status
doc/mesh-api.txt +4 -4 modified
mesh/node.c +8 -4 modified

Full Patch

diff --git a/doc/mesh-api.txt b/doc/mesh-api.txt
index a0dcc6f..3be11e3 100644
--- a/doc/mesh-api.txt
+++ b/doc/mesh-api.txt
@@ -422,11 +422,11 @@ Properties:
 		This property indicates whether the periodic beaconing is
 		enabled (true) or disabled (false).
 
-	uint8 BeaconFlags [read-only]
+	boolean IvUpdate [read-only]
 
-		This property may be read at any time to determine the flag
-		field setting on sent and received beacons of the primary
-		network key.
+		When true, indicates that the network is in the middle of IV
+		Index Update procedure. This information is only useful for
+		provisioning.
 
 	uint32 IvIndex [read-only]
 
diff --git a/mesh/node.c b/mesh/node.c
index 81763e5..cf4d93a 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",