Skip to content

Commit 454faf6

Browse files
author
Juha Heiskanen
committed
Do not balck list neighbour if link fail to ARO.
Change-Id: I3334645cbf157e11050fc5d24eb3c86c63e966c2
1 parent 8120b37 commit 454faf6

File tree

5 files changed

+10
-7
lines changed

5 files changed

+10
-7
lines changed

source/6LoWPAN/ws/ws_bootstrap.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1912,7 +1912,6 @@ int ws_bootstrap_neighbor_remove(protocol_interface_info_entry_t *cur, const uin
19121912

19131913
int ws_bootstrap_aro_failure(protocol_interface_info_entry_t *cur, const uint8_t *ll_address)
19141914
{
1915-
blacklist_update(ll_address, false);
19161915
rpl_control_neighbor_delete(cur, ll_address);
19171916
ws_bootstrap_neighbor_remove(cur, ll_address);
19181917
return 0;

source/6LoWPAN/ws/ws_common.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,9 +383,12 @@ void ws_common_neighbor_update(protocol_interface_info_entry_t *cur, const uint8
383383
}
384384
}
385385

386-
void ws_common_aro_failure(protocol_interface_info_entry_t *cur, const uint8_t *ll_address)
386+
void ws_common_aro_failure(protocol_interface_info_entry_t *cur, const uint8_t *ll_address, bool cache_full)
387387
{
388388
tr_warn("ARO registration Failure %s", trace_ipv6(ll_address));
389+
if (cache_full) {
390+
blacklist_update(ll_address, false);
391+
}
389392
ws_bootstrap_aro_failure(cur, ll_address);
390393
}
391394

source/6LoWPAN/ws/ws_common.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ void ws_common_fast_timer(protocol_interface_info_entry_t *cur, uint16_t ticks);
125125

126126
void ws_common_neighbor_update(protocol_interface_info_entry_t *cur, const uint8_t *ll_address);
127127

128-
void ws_common_aro_failure(protocol_interface_info_entry_t *cur, const uint8_t *ll_address);
128+
void ws_common_aro_failure(protocol_interface_info_entry_t *cur, const uint8_t *ll_address, bool cache_full);
129129

130130
void ws_common_neighbor_remove(protocol_interface_info_entry_t *cur, const uint8_t *ll_address);
131131

@@ -145,7 +145,7 @@ uint32_t ws_common_version_timeout_get(uint8_t config);
145145
#define ws_info(cur) ((ws_info_t *) NULL)
146146
#define ws_common_seconds_timer(cur, seconds)
147147
#define ws_common_neighbor_update(cur, ll_address) ((void) 0)
148-
#define ws_common_aro_failure(cur, ll_address)
148+
#define ws_common_aro_failure(cur, ll_address, cache_full)
149149
#define ws_common_neighbor_remove(cur, ll_address)
150150
#define ws_common_fast_timer(cur, ticks) ((void) 0)
151151
#define ws_common_allow_child_registration(cur, eui64) (false)

source/Common_Protocols/icmpv6.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ static void icmpv6_na_wisun_aro_handler(protocol_interface_info_entry_t *cur_int
356356

357357
(void)life_time;
358358
if (nd_status != ARO_SUCCESS) {
359-
ws_common_aro_failure(cur_interface, src_addr);
359+
ws_common_aro_failure(cur_interface, src_addr, true);
360360
}
361361
}
362362

@@ -1389,7 +1389,7 @@ static void icmpv6_aro_cb(buffer_t *buf, uint8_t status)
13891389
}
13901390
rpl_control_address_register_done(buf->interface, ll_address, status);
13911391
if (status != SOCKET_TX_DONE) {
1392-
ws_common_aro_failure(buf->interface, ll_address);
1392+
ws_common_aro_failure(buf->interface, ll_address, false);
13931393
}
13941394
}
13951395

test/nanostack/unittest/stub/ws_common_stub.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,11 @@ bool ws_common_allow_child_registration(protocol_interface_info_entry_t *interfa
6767
(void) interface;
6868
return true;
6969
}
70-
void ws_common_aro_failure(protocol_interface_info_entry_t *cur, const uint8_t *ll_address)
70+
void ws_common_aro_failure(protocol_interface_info_entry_t *cur, const uint8_t *ll_address, bool cache_full)
7171
{
7272
(void) cur;
7373
(void) ll_address;
74+
(void) cache_full;
7475
}
7576
void ws_common_neighbor_remove(protocol_interface_info_entry_t *cur, const uint8_t *ll_address)
7677
{

0 commit comments

Comments
 (0)