Skip to content

Commit d5d1a13

Browse files
author
Mika Tervonen
committed
Fixed trickle configuration for Discovery
Only one configuration needed. Removed the extra Used correct calculation for the IMAX
1 parent fc74a31 commit d5d1a13

File tree

1 file changed

+22
-29
lines changed

1 file changed

+22
-29
lines changed

source/6LoWPAN/ws/ws_bootstrap.c

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,9 @@
6363

6464
#ifdef HAVE_WS
6565

66-
static const trickle_params_t trickle_params_pan_advertisement = {
66+
static const trickle_params_t trickle_params_pan_discovery = {
6767
.Imin = 60, /* 60 second; ticks are 1s */
68-
.Imax = 2^4 *60, /* 960 seconds 16 min*/
69-
.k = 1, /* 1 */
70-
.TimerExpirations = TRICKLE_EXPIRATIONS_INFINITE
71-
};
72-
73-
static const trickle_params_t trickle_params_pan_configuration = {
74-
.Imin = 60, /* 60 second; ticks are 1s */
75-
.Imax = 2^4 *60, /* 960 seconds 16 min*/
68+
.Imax = 60 << 4, /* 960 seconds 16 min*/
7669
.k = 1, /* 1 */
7770
.TimerExpirations = TRICKLE_EXPIRATIONS_INFINITE
7871
};
@@ -343,7 +336,7 @@ static void ws_bootstrap_pan_advertisement_analyse_active(struct protocol_interf
343336
if (pan_information->routing_cost <= cur->ws_info->pan_information.routing_cost) {
344337
trickle_consistent_heard(&cur->ws_info->trickle_pan_advertisement);
345338
} else {
346-
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_advertisement,&trickle_params_pan_advertisement);
339+
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_advertisement,&trickle_params_pan_discovery);
347340
}
348341

349342
}
@@ -426,7 +419,7 @@ static void ws_bootstrap_pan_advertisement_analyse(struct protocol_interface_inf
426419

427420
if(ws_neighbor_class_rssi_from_dbm_calculate(data->signal_dbm) < (CAND_PARENT_THRESHOLD + CAND_PARENT_HYSTERISIS)) {
428421
// First neighbor is too low we need to wait one extra trickle
429-
cur->bootsrap_state_machine_cnt += trickle_params_pan_configuration.Imin*10 + randLIB_get_8bit() % 50;
422+
cur->bootsrap_state_machine_cnt += trickle_params_pan_discovery.Imin*10 + randLIB_get_8bit() % 50;
430423
}
431424
}
432425

@@ -472,7 +465,7 @@ static void ws_bootstrap_pan_advertisement_solicit_analyse(struct protocol_inter
472465
* An inconsistent transmission is defined as:
473466
* A PAN Advertisement Solicit with NETNAME-IE matching that of the receiving node.
474467
*/
475-
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_advertisement,&trickle_params_pan_advertisement);
468+
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_advertisement,&trickle_params_pan_discovery);
476469
/*
477470
* A consistent transmission is defined as
478471
* a PAN Advertisement Solicit with NETNAME-IE / Network Name matching that configured on the receiving node.
@@ -547,7 +540,7 @@ static void ws_bootstrap_pan_config_analyse(struct protocol_interface_info_entry
547540
common_serial_number_greater_16(cur->ws_info->pan_information.pan_version, pan_version)) {
548541
// received version is lower se we need to reset the trickle
549542
tr_info("older pan version heard");
550-
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_config,&trickle_params_pan_configuration);
543+
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_config,&trickle_params_pan_discovery);
551544
return;
552545
}
553546
trickle_consistent_heard(&cur->ws_info->trickle_pan_config);
@@ -633,7 +626,7 @@ static void ws_bootstrap_pan_config_solicit_analyse(struct protocol_interface_in
633626
* A PAN Configuration Solicit with a PAN-ID matching that of the receiving node and
634627
* a NETNAME-IE / Network Name matching the network name configured on the receiving
635628
*/
636-
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_config,&trickle_params_pan_advertisement);
629+
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_config,&trickle_params_pan_discovery);
637630
}
638631
static bool ws_bootstrap_network_found(protocol_interface_info_entry_t *cur)
639632
{
@@ -1047,10 +1040,10 @@ static void ws_bootstrap_network_discovery_configure(protocol_interface_info_ent
10471040

10481041
static void ws_bootstrap_advertise_start(protocol_interface_info_entry_t *cur)
10491042
{
1050-
trickle_start(&cur->ws_info->trickle_pan_advertisement, &trickle_params_pan_advertisement);
1051-
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_advertisement, &trickle_params_pan_advertisement);
1052-
trickle_start(&cur->ws_info->trickle_pan_config, &trickle_params_pan_configuration);
1053-
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_config, &trickle_params_pan_configuration);
1043+
trickle_start(&cur->ws_info->trickle_pan_advertisement, &trickle_params_pan_discovery);
1044+
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_advertisement, &trickle_params_pan_discovery);
1045+
trickle_start(&cur->ws_info->trickle_pan_config, &trickle_params_pan_discovery);
1046+
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_config, &trickle_params_pan_discovery);
10541047
}
10551048

10561049
// Start network scan
@@ -1076,11 +1069,11 @@ static void ws_bootstrap_start_discovery(protocol_interface_info_entry_t *cur)
10761069
ws_bootstrap_ip_stack_addr_clear(cur);
10771070

10781071
// Reset advertisement solicit trickle to start discovering network
1079-
trickle_start(&cur->ws_info->trickle_pan_advertisement_solicit, &trickle_params_pan_configuration);
1080-
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_advertisement_solicit, &trickle_params_pan_configuration);
1072+
trickle_start(&cur->ws_info->trickle_pan_advertisement_solicit, &trickle_params_pan_discovery);
1073+
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_advertisement_solicit, &trickle_params_pan_discovery);
10811074

10821075
// Discovery statemachine is checkked after two trickle interval
1083-
cur->bootsrap_state_machine_cnt = 2*trickle_params_pan_configuration.Imin*10 + randLIB_get_8bit() % 50;
1076+
cur->bootsrap_state_machine_cnt = 2*trickle_params_pan_discovery.Imin*10 + randLIB_get_8bit() % 50;
10841077
}
10851078
// Start configuration learning
10861079
static void ws_bootstrap_start_configuration_learn(protocol_interface_info_entry_t *cur)
@@ -1096,8 +1089,8 @@ static void ws_bootstrap_start_configuration_learn(protocol_interface_info_entry
10961089
ws_bootstrap_ip_stack_reset(cur);
10971090

10981091
// Reset advertisement solicit trickle to start discovering network
1099-
trickle_start(&cur->ws_info->trickle_pan_config_solicit, &trickle_params_pan_configuration);
1100-
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_config_solicit, &trickle_params_pan_configuration);
1092+
trickle_start(&cur->ws_info->trickle_pan_config_solicit, &trickle_params_pan_discovery);
1093+
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_config_solicit, &trickle_params_pan_discovery);
11011094
}
11021095

11031096
/*
@@ -1126,7 +1119,7 @@ void ws_bootstrap_event_routing_ready(protocol_interface_info_entry_t *cur)
11261119
}
11271120
void ws_bootstrap_configuration_trickle_reset(protocol_interface_info_entry_t *cur)
11281121
{
1129-
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_config,&trickle_params_pan_configuration);
1122+
trickle_inconsistent_heard(&cur->ws_info->trickle_pan_config,&trickle_params_pan_discovery);
11301123
}
11311124

11321125

@@ -1341,7 +1334,7 @@ void ws_bootstrap_network_scan_process(protocol_interface_info_entry_t *cur)
13411334

13421335
if (!ws_bootstrap_network_found(cur)) {
13431336
// Next check will be after one trickle
1344-
cur->bootsrap_state_machine_cnt += trickle_params_pan_configuration.Imin*10 + randLIB_get_8bit() % 50;
1337+
cur->bootsrap_state_machine_cnt += trickle_params_pan_discovery.Imin*10 + randLIB_get_8bit() % 50;
13451338
return;
13461339
}
13471340
tr_info("select network");
@@ -1449,22 +1442,22 @@ void ws_bootstrap_state_machine(protocol_interface_info_entry_t *cur)
14491442
}
14501443
void ws_bootstrap_seconds_timer(protocol_interface_info_entry_t *cur, uint32_t seconds)
14511444
{
1452-
if(trickle_timer(&cur->ws_info->trickle_pan_advertisement_solicit, &trickle_params_pan_advertisement, seconds)) {
1445+
if(trickle_timer(&cur->ws_info->trickle_pan_advertisement_solicit, &trickle_params_pan_discovery, seconds)) {
14531446
// send PAN advertisement solicit
14541447
tr_info("Send PAN advertisement Solicit");
14551448
ws_bootstrap_pan_advert_solicit(cur);
14561449
}
1457-
if(trickle_timer(&cur->ws_info->trickle_pan_config_solicit, &trickle_params_pan_configuration, seconds)) {
1450+
if(trickle_timer(&cur->ws_info->trickle_pan_config_solicit, &trickle_params_pan_discovery, seconds)) {
14581451
// send PAN Configuration solicit
14591452
tr_info("Send PAN configuration Solicit");
14601453
ws_bootstrap_pan_config_solicit(cur);
14611454
}
1462-
if(trickle_timer(&cur->ws_info->trickle_pan_advertisement, &trickle_params_pan_advertisement, seconds)) {
1455+
if(trickle_timer(&cur->ws_info->trickle_pan_advertisement, &trickle_params_pan_discovery, seconds)) {
14631456
// send PAN advertisement
14641457
tr_info("Send PAN advertisement");
14651458
ws_bootstrap_pan_advert(cur);
14661459
}
1467-
if(trickle_timer(&cur->ws_info->trickle_pan_config, &trickle_params_pan_configuration, seconds)) {
1460+
if(trickle_timer(&cur->ws_info->trickle_pan_config, &trickle_params_pan_discovery, seconds)) {
14681461
// send PAN Configuration
14691462
tr_info("Send PAN configuration");
14701463
ws_bootstrap_pan_config(cur);

0 commit comments

Comments
 (0)