Mesh: add 'node-reset' command
This patch adds 'node-reset' command which can be used to reset a
node (other than a Provisioner) and remove it from the network.
diff --git a/mesh/config-client.c b/mesh/config-client.c
index 19e617d..a6cd87e 100644
--- a/mesh/config-client.c
+++ b/mesh/config-client.c
@@ -342,6 +342,17 @@
bt_shell_printf("Min Hops\t%2.2x\n", data[7]);
bt_shell_printf("Max Hops\t%2.2x\n", data[8]);
break;
+
+ /* Per Mesh Profile 4.3.2.54 */
+ case OP_NODE_RESET_STATUS:
+ bt_shell_printf("Node %4.4x reset status %s\n",
+ src, mesh_status_str(data[0]));
+
+ net_release_address(node_get_primary(node),
+ (node_get_num_elements(node)));
+ /* TODO: Remove node info from database */
+ node_free(node);
+ break;
}
return true;
@@ -1124,6 +1135,11 @@
cmd_default(OP_CONFIG_DEFAULT_TTL_GET);
}
+static void cmd_node_reset(int argc, char *argv[])
+{
+ cmd_default(OP_NODE_RESET);
+}
+
static const struct bt_shell_menu cfg_menu = {
.name = "config",
.desc = "Configuration Model Submenu",
@@ -1179,6 +1195,8 @@
cmd_sub_add, "Add subscription"},
{"sub-get", "<ele_addr> <model id>",
cmd_sub_get, "Get subscription"},
+ {"node-reset", NULL, cmd_node_reset,
+ "Reset a node and remove it from network"},
{} },
};