net = l_new(struct mesh_net, 1);
net->node = node;
- net->pkt_id = 0;
- net->bea_id = 0;
-
- net->beacon_enable = true;
- net->proxy_enable = false;
- net->relay.enable = false;
-
- net->seq_num = 0x000000;
- net->src_addr = 0x0000;
- net->default_ttl = 0x7f;
-
- net->provisioner = false;
+ net->seq_num = DEFAULT_SEQUENCE_NUMBER;
+ net->default_ttl = TTL_MASK;
- net->test_mode = false;
memset(&net->prov_caps, 0, sizeof(net->prov_caps));
net->prov_caps.algorithms = 1;
#define DEFAULT_LOCATION 0x0000
#define DEFAULT_CRPL 10
-#define DEFAULT_SEQUENCE_NUMBER 0
enum request_type {
REQUEST_TYPE_JOIN,
return 0;
}
+
struct mesh_node *node_find_by_addr(uint16_t addr)
{
if (!IS_UNICAST(addr))
return true;
}
+static void update_net_settings(struct mesh_node *node)
+{
+ uint8_t mode;
+
+ 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->friend;
+ 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);
+}
+
static bool init_from_storage(struct mesh_config_node *db_node,
const uint8_t uuid[16], struct mesh_config *cfg,
void *user_data)
{
unsigned int num_ele;
- uint8_t mode;
+
struct mesh_node *node = node_new(uuid);
if (!nodes)
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->friend;
- 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);
+ update_net_settings(node);
/* Initialize configuration server model */
cfgmod_server_init(node, PRIMARY_ELE_IDX);
return false;
}
+ update_net_settings(node);
+
mesh_config_save(node->cfg, true, NULL, NULL);
/* Initialize configuration server model */