Applied On Wed, 2020-06-17 at 22:26 +0200, Michał Lowas-Rzechonek wrote: > 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. > --- > doc/mesh-api.txt | 8 ++++---- > mesh/node.c | 12 ++++++++---- > 2 files changed, 12 insertions(+), 8 deletions(-) > > diff --git a/doc/mesh-api.txt b/doc/mesh-api.txt > index 7fbab32b6..0f10a7c89 100644 > --- a/doc/mesh-api.txt > +++ b/doc/mesh-api.txt > @@ -431,11 +431,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 6140fdf9f..87c3bb46f 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" > @@ -2183,7 +2184,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) > { > @@ -2191,10 +2192,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; > } > @@ -2295,8 +2299,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",