From: Inga Stotland <inga.stotland@intel.com>
To: linux-bluetooth@vger.kernel.org
Cc: brian.gix@intel.com, michal.lowas-rzechonek@silvair.com,
jakub.witowski@silvair.com,
Inga Stotland <inga.stotland@intel.com>
Subject: [PATCH BlueZ 01/10 v3] mesh: Move network config setup from storage.c to node.c
Date: Sun, 14 Jul 2019 16:23:11 -0700 [thread overview]
Message-ID: <20190714232320.20921-2-inga.stotland@intel.com> (raw)
In-Reply-To: <20190714232320.20921-1-inga.stotland@intel.com>
This commit moves initialization of configuration parameters
for node->net when the local node state is restored from stored
configuration. Old location: storage.c, new locaiton node.c.
---
mesh/node.c | 28 ++++++++++++++++++++++++++++
mesh/storage.c | 39 ---------------------------------------
2 files changed, 28 insertions(+), 39 deletions(-)
diff --git a/mesh/node.c b/mesh/node.c
index 27235ef34..dc9781482 100644
--- a/mesh/node.c
+++ b/mesh/node.c
@@ -376,6 +376,7 @@ bool node_init_from_storage(struct mesh_node *node, void *data)
{
struct mesh_db_node *db_node = data;
unsigned int num_ele;
+ uint8_t mode;
node->comp = l_new(struct node_composition, 1);
node->comp->cid = db_node->cid;
@@ -408,6 +409,33 @@ bool node_init_from_storage(struct mesh_node *node, void *data)
node->primary = db_node->unicast;
+ mesh_net_set_seq_num(node->net, node->seq_number);
+ mesh_net_set_default_ttl(node->net, node->ttl);
+
+ mode = node->proxy;
+ if (mode == MESH_MODE_ENABLED || mode == MESH_MODE_DISABLED)
+ mesh_net_set_proxy_mode(node->net, mode == MESH_MODE_ENABLED);
+
+ mode = node->lpn;
+ if (mode == MESH_MODE_ENABLED || mode == MESH_MODE_DISABLED)
+ mesh_net_set_friend_mode(node->net, mode == MESH_MODE_ENABLED);
+
+ mode = node->relay.mode;
+ if (mode == MESH_MODE_ENABLED || mode == MESH_MODE_DISABLED)
+ mesh_net_set_relay_mode(node->net, mode == MESH_MODE_ENABLED,
+ node->relay.cnt, node->relay.interval);
+
+ mode = node->beacon;
+ if (mode == MESH_MODE_ENABLED || mode == MESH_MODE_DISABLED)
+ mesh_net_set_beacon_mode(node->net, mode == MESH_MODE_ENABLED);
+
+ if (!IS_UNASSIGNED(node->primary) &&
+ !mesh_net_register_unicast(node->net, node->primary, num_ele))
+ return false;
+
+ if (node->uuid)
+ mesh_net_id_uuid_set(node->net, node->uuid);
+
/* Initialize configuration server model */
mesh_config_srv_init(node, PRIMARY_ELE_IDX);
diff --git a/mesh/storage.c b/mesh/storage.c
index 0f2b77fde..2b7804242 100644
--- a/mesh/storage.c
+++ b/mesh/storage.c
@@ -56,51 +56,12 @@ static const char *storage_dir;
static bool read_node_cb(struct mesh_db_node *db_node, void *user_data)
{
struct mesh_node *node = user_data;
- struct mesh_net *net;
- uint32_t seq_number;
- uint8_t ttl, mode, cnt, num_ele;
- uint16_t unicast, interval;
- uint8_t *uuid;
if (!node_init_from_storage(node, db_node)) {
node_remove(node);
return false;
}
- net = node_get_net(node);
- seq_number = node_get_sequence_number(node);
- mesh_net_set_seq_num(net, seq_number);
- ttl = node_default_ttl_get(node);
- mesh_net_set_default_ttl(net, ttl);
-
- mode = node_proxy_mode_get(node);
- if (mode == MESH_MODE_ENABLED || mode == MESH_MODE_DISABLED)
- mesh_net_set_proxy_mode(net, mode == MESH_MODE_ENABLED);
-
- mode = node_friend_mode_get(node);
- if (mode == MESH_MODE_ENABLED || mode == MESH_MODE_DISABLED)
- mesh_net_set_friend_mode(net, mode == MESH_MODE_ENABLED);
-
- mode = node_relay_mode_get(node, &cnt, &interval);
- if (mode == MESH_MODE_ENABLED || mode == MESH_MODE_DISABLED)
- mesh_net_set_relay_mode(net, mode == MESH_MODE_ENABLED, cnt,
- interval);
-
- mode = node_beacon_mode_get(node);
- if (mode == MESH_MODE_ENABLED || mode == MESH_MODE_DISABLED)
- mesh_net_set_beacon_mode(net, mode == MESH_MODE_ENABLED);
-
- unicast = db_node->unicast;
- num_ele = node_get_num_elements(node);
-
- if (!IS_UNASSIGNED(unicast) &&
- !mesh_net_register_unicast(net, unicast, num_ele))
- return false;
-
- uuid = node_uuid_get(node);
- if (uuid)
- mesh_net_id_uuid_set(net, uuid);
-
return true;
}
--
2.21.0
next prev parent reply other threads:[~2019-07-14 23:23 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-14 23:23 [PATCH BlueZ 00/10 v3] mesh: Configuration storage re-org Inga Stotland
2019-07-14 23:23 ` Inga Stotland [this message]
2019-07-14 23:23 ` [PATCH BlueZ 02/10 v3] mesh: Rename mesh-db.c to mesh-config-json.c Inga Stotland
2019-07-14 23:23 ` [PATCH BlueZ 03/10 v3] mesh: Change mesh_db prefix to mesh_config Inga Stotland
2019-07-14 23:23 ` [PATCH BlueZ 04/10 v3] mesh: Move load from storage functionality into node.c Inga Stotland
2019-07-14 23:23 ` [PATCH BlueZ 05/10 v3] mesh: Confine dependency on json-c to mesh-config-json.c Inga Stotland
2019-07-14 23:23 ` [PATCH BlueZ 06/10 v3] mesh: Replace storage_save_config with mesh_config_save_config Inga Stotland
2019-07-14 23:23 ` [PATCH BlueZ 07/10 v3] mesh: Use mesh_config APIs to store node configuration Inga Stotland
2019-07-14 23:23 ` [PATCH BlueZ 08/10 v3] mesh: Manage node config directory in mesh-config Inga Stotland
2019-07-14 23:23 ` [PATCH BlueZ 09/10 v3] mesh: Create or re-use a node storage directory for keyring Inga Stotland
2019-07-14 23:23 ` [PATCH BlueZ 10/10 v3] mesh: Rename mesh_config_srv_init() to cfgmod_server_init() Inga Stotland
2019-07-15 8:07 ` [PATCH BlueZ 00/10 v3] mesh: Configuration storage re-org Michał Lowas-Rzechonek
2019-07-15 16:59 ` Stotland, Inga
2019-07-15 22:27 ` Gix, Brian
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190714232320.20921-2-inga.stotland@intel.com \
--to=inga.stotland@intel.com \
--cc=brian.gix@intel.com \
--cc=jakub.witowski@silvair.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=michal.lowas-rzechonek@silvair.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).