Skip to content

Commit ee45f4b

Browse files
author
Mika Leppänen
committed
Updated initial key trickles
Set as specified in analysis. Set large and extra large network imin to 600 and not to 480 to force the first retry to at least 5 minutes after initial attempt.
1 parent 184425b commit ee45f4b

File tree

3 files changed

+27
-22
lines changed

3 files changed

+27
-22
lines changed

source/6LoWPAN/ws/ws_cfg_settings.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -378,8 +378,8 @@ static void ws_cfg_network_size_config_set_small(ws_cfg_nw_size_t *cfg)
378378
cfg->sec_prot.sec_max_ongoing_authentication = MAX_SIMULTANEOUS_SECURITY_NEGOTIATIONS_SMALL;
379379

380380
cfg->sec_prot.initial_key_retry_delay = DEFAULT_INITIAL_KEY_RETRY_TIMER;
381-
cfg->sec_prot.initial_key_imin = DEFAULT_INITIAL_KEY_TRICKLE_IMIN_SECS;
382-
cfg->sec_prot.initial_key_imax = DEFAULT_INITIAL_KEY_TRICKLE_IMAX_SECS;
381+
cfg->sec_prot.initial_key_imin = SMALL_NW_INITIAL_KEY_TRICKLE_IMIN_SECS;
382+
cfg->sec_prot.initial_key_imax = SMALL_NW_INITIAL_KEY_TRICKLE_IMAX_SECS;
383383
cfg->sec_prot.initial_key_retry_cnt = DEFAULT_INITIAL_KEY_RETRY_COUNT;
384384
}
385385

@@ -414,8 +414,8 @@ static void ws_cfg_network_size_config_set_medium(ws_cfg_nw_size_t *cfg)
414414
cfg->sec_prot.sec_max_ongoing_authentication = MAX_SIMULTANEOUS_SECURITY_NEGOTIATIONS_MEDIUM;
415415

416416
cfg->sec_prot.initial_key_retry_delay = DEFAULT_INITIAL_KEY_RETRY_TIMER;
417-
cfg->sec_prot.initial_key_imin = DEFAULT_INITIAL_KEY_TRICKLE_IMIN_SECS;
418-
cfg->sec_prot.initial_key_imax = DEFAULT_INITIAL_KEY_TRICKLE_IMAX_SECS;
417+
cfg->sec_prot.initial_key_imin = MEDIUM_NW_INITIAL_KEY_TRICKLE_IMIN_SECS;
418+
cfg->sec_prot.initial_key_imax = MEDIUM_NW_INITIAL_KEY_TRICKLE_IMAX_SECS;
419419
cfg->sec_prot.initial_key_retry_cnt = DEFAULT_INITIAL_KEY_RETRY_COUNT;
420420
}
421421

@@ -449,12 +449,12 @@ static void ws_cfg_network_size_config_set_large(ws_cfg_nw_size_t *cfg)
449449

450450
cfg->sec_prot.sec_max_ongoing_authentication = MAX_SIMULTANEOUS_SECURITY_NEGOTIATIONS_LARGE;
451451

452-
if (cfg->gen.network_size > 50 && cfg->gen.network_size != NETWORK_SIZE_AUTOMATIC) {
453-
// If more than 5000 devices uses very slow initial trickle timer
452+
if (cfg->gen.network_size > NETWORK_SIZE_LARGE && cfg->gen.network_size != NETWORK_SIZE_AUTOMATIC) {
453+
// If more than 1600 devices uses extra large initial trickle timer
454454
cfg->sec_prot.initial_key_retry_delay = NONE_INITIAL_KEY_RETRY_TIMER;
455-
cfg->sec_prot.initial_key_imin = VERY_SLOW_NW_INITIAL_KEY_TRICKLE_IMIN_SECS;
456-
cfg->sec_prot.initial_key_imax = VERY_SLOW_NW_INITIAL_KEY_TRICKLE_IMAX_SECS;
457-
cfg->sec_prot.initial_key_retry_cnt = DEFAULT_INITIAL_KEY_RETRY_COUNT;
455+
cfg->sec_prot.initial_key_imin = EXTRA_LARGE_NW_INITIAL_KEY_TRICKLE_IMIN_SECS;
456+
cfg->sec_prot.initial_key_imax = EXTRA_LARGE_NW_INITIAL_KEY_TRICKLE_IMAX_SECS;
457+
cfg->sec_prot.initial_key_retry_cnt = EXTRA_LARGE_NW_INITIAL_KEY_RETRY_COUNT;
458458
} else {
459459
cfg->sec_prot.initial_key_retry_delay = NONE_INITIAL_KEY_RETRY_TIMER;
460460
cfg->sec_prot.initial_key_imin = LARGE_NW_INITIAL_KEY_TRICKLE_IMIN_SECS;
@@ -494,8 +494,8 @@ static void ws_cfg_network_size_config_set_certificate(ws_cfg_nw_size_t *cfg)
494494
cfg->sec_prot.sec_max_ongoing_authentication = MAX_SIMULTANEOUS_SECURITY_NEGOTIATIONS_SMALL;
495495

496496
cfg->sec_prot.initial_key_retry_delay = DEFAULT_INITIAL_KEY_RETRY_TIMER;
497-
cfg->sec_prot.initial_key_imin = DEFAULT_INITIAL_KEY_TRICKLE_IMIN_SECS;
498-
cfg->sec_prot.initial_key_imax = DEFAULT_INITIAL_KEY_TRICKLE_IMAX_SECS;
497+
cfg->sec_prot.initial_key_imin = SMALL_NW_INITIAL_KEY_TRICKLE_IMIN_SECS;
498+
cfg->sec_prot.initial_key_imax = SMALL_NW_INITIAL_KEY_TRICKLE_IMAX_SECS;
499499
cfg->sec_prot.initial_key_retry_cnt = DEFAULT_INITIAL_KEY_RETRY_COUNT;
500500
}
501501

@@ -1045,8 +1045,8 @@ static int8_t ws_cfg_sec_prot_default_set(ws_sec_prot_cfg_t *cfg)
10451045
cfg->sec_prot_retry_timeout = SEC_PROT_RETRY_TIMEOUT_SMALL;
10461046
cfg->sec_max_ongoing_authentication = MAX_SIMULTANEOUS_SECURITY_NEGOTIATIONS_MEDIUM;
10471047
cfg->initial_key_retry_delay = DEFAULT_INITIAL_KEY_RETRY_TIMER;
1048-
cfg->initial_key_imin = DEFAULT_INITIAL_KEY_TRICKLE_IMIN_SECS;
1049-
cfg->initial_key_imax = DEFAULT_INITIAL_KEY_TRICKLE_IMAX_SECS;
1048+
cfg->initial_key_imin = MEDIUM_NW_INITIAL_KEY_TRICKLE_IMIN_SECS;
1049+
cfg->initial_key_imax = MEDIUM_NW_INITIAL_KEY_TRICKLE_IMAX_SECS;
10501050
cfg->initial_key_retry_cnt = DEFAULT_INITIAL_KEY_RETRY_COUNT;
10511051

10521052
return CFG_SETTINGS_OK;

source/6LoWPAN/ws/ws_config.h

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -234,17 +234,22 @@ extern uint8_t DEVICE_MIN_SENS;
234234
#define DEFAULT_INITIAL_KEY_RETRY_TIMER 120
235235
#define NONE_INITIAL_KEY_RETRY_TIMER 0
236236

237-
// Default trickle values for sending of initial EAPOL-key
238-
#define DEFAULT_INITIAL_KEY_TRICKLE_IMIN_SECS 360 /* 6 to 12 minutes */
239-
#define DEFAULT_INITIAL_KEY_TRICKLE_IMAX_SECS 720
237+
// Small network Default trickle values for sending of initial EAPOL-key
238+
#define SMALL_NW_INITIAL_KEY_TRICKLE_IMIN_SECS 360 /* 6 to 8.3 minutes */
239+
#define SMALL_NW_INITIAL_KEY_TRICKLE_IMAX_SECS 500
240+
241+
// Small network Default trickle values for sending of initial EAPOL-key
242+
#define MEDIUM_NW_INITIAL_KEY_TRICKLE_IMIN_SECS 360 /* 6 to 12 minutes */
243+
#define MEDIUM_NW_INITIAL_KEY_TRICKLE_IMAX_SECS 720
240244

241245
// Large network trickle values for sending of initial EAPOL-key
242-
#define LARGE_NW_INITIAL_KEY_TRICKLE_IMIN_SECS 480 /* 8 to 20 minutes */
246+
#define LARGE_NW_INITIAL_KEY_TRICKLE_IMIN_SECS 600 /* 10 to 20 minutes */
243247
#define LARGE_NW_INITIAL_KEY_TRICKLE_IMAX_SECS 1200
244248

245249
// Very slow network values for sending of initial EAPOL-key
246-
#define VERY_SLOW_NW_INITIAL_KEY_TRICKLE_IMIN_SECS 600 /* 10 to 60 minutes */
247-
#define VERY_SLOW_NW_INITIAL_KEY_TRICKLE_IMAX_SECS 3600
250+
#define EXTRA_LARGE_NW_INITIAL_KEY_TRICKLE_IMIN_SECS 600 /* 10 to 20 minutes */
251+
#define EXTRA_LARGE_NW_INITIAL_KEY_TRICKLE_IMAX_SECS 1200
252+
#define EXTRA_LARGE_NW_INITIAL_KEY_RETRY_COUNT 4
248253

249254
// How many times sending of initial EAPOL-key is retried
250255
#define DEFAULT_INITIAL_KEY_RETRY_COUNT 2

test/nanostack/unittest/6LoWPAN/ws_cfg_settings/test_ws_cfg_settings.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ static const ws_cfg_t ws_cfg_defaults_small = {
178178
.sec_prot.sec_max_ongoing_authentication = 3, // network size affects
179179
.sec_prot.initial_key_retry_delay = 120, // network size affects
180180
.sec_prot.initial_key_imin = 360, // network size affects
181-
.sec_prot.initial_key_imax = 720, // network size affects
181+
.sec_prot.initial_key_imax = 500, // network size affects
182182
.sec_prot.initial_key_retry_cnt = 2, // network size affects
183183
};
184184

@@ -246,7 +246,7 @@ static const ws_cfg_t ws_cfg_defaults_large = {
246246
.sec_prot.sec_prot_trickle_timer_exp = 2, // network size affects
247247
.sec_prot.sec_max_ongoing_authentication = 50, // network size affects
248248
.sec_prot.initial_key_retry_delay = 0, // network size affects
249-
.sec_prot.initial_key_imin = 480, // network size affects
249+
.sec_prot.initial_key_imin = 600, // network size affects
250250
.sec_prot.initial_key_imax = 1200, // network size affects
251251
.sec_prot.initial_key_retry_cnt = 2, // network size affects
252252
};
@@ -316,7 +316,7 @@ static const ws_cfg_t ws_cfg_defaults_certification = {
316316
.sec_prot.sec_max_ongoing_authentication = 3, // network size affects
317317
.sec_prot.initial_key_retry_delay = 120, // network size affects
318318
.sec_prot.initial_key_imin = 360, // network size affects
319-
.sec_prot.initial_key_imax = 720, // network size affects
319+
.sec_prot.initial_key_imax = 500, // network size affects
320320
.sec_prot.initial_key_retry_cnt = 2, // network size affects
321321
};
322322

0 commit comments

Comments
 (0)