Skip to content

Commit d03187e

Browse files
author
Juha Heiskanen
committed
NEW API for do address decrecation
1 parent 7864962 commit d03187e

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

source/Core/include/ns_address_internal.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ void addr_fast_timer(struct protocol_interface_info_entry *cur, uint_fast16_t ti
156156
void addr_slow_timer(struct protocol_interface_info_entry *cur, uint_fast16_t seconds);
157157
struct if_address_entry *addr_add(struct protocol_interface_info_entry *cur, const uint8_t address[__static 16], uint_fast8_t prefix_len, if_address_source_t source, uint32_t valid_lifetime, uint32_t preferred_lifetime, bool skip_dad);
158158
int_fast8_t addr_delete(struct protocol_interface_info_entry *cur, const uint8_t address[__static 16]);
159+
int_fast8_t addr_deprecate(struct protocol_interface_info_entry *cur, const uint8_t address[static 16]);
159160
void addr_delete_matching(struct protocol_interface_info_entry *cur, const uint8_t *prefix, uint8_t prefix_len, if_address_source_t source);
160161
void addr_delete_entry(struct protocol_interface_info_entry *cur, if_address_entry_t *addr);
161162
void addr_set_non_preferred(struct protocol_interface_info_entry *cur, if_address_source_t source);

source/Core/ns_address_internal.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1010,6 +1010,19 @@ int_fast8_t addr_delete(protocol_interface_info_entry_t *cur, const uint8_t addr
10101010
return -1;
10111011
}
10121012

1013+
int_fast8_t addr_deprecate(protocol_interface_info_entry_t *cur, const uint8_t address[static 16])
1014+
{
1015+
ns_list_foreach(if_address_entry_t, e, &cur->ip_addresses) {
1016+
if (memcmp(e->address, address, 16) == 0) {
1017+
tr_debug("Deprecate address %s", trace_ipv6(e->address));
1018+
addr_lifetime_update(cur, e, 0, 0, 30 * 60); //Accept max 30 min lifetime
1019+
return 0;
1020+
}
1021+
}
1022+
1023+
return -1;
1024+
}
1025+
10131026
void addr_delete_matching(protocol_interface_info_entry_t *cur, const uint8_t *prefix, uint8_t prefix_len, if_address_source_t source)
10141027
{
10151028
ns_list_foreach_safe(if_address_entry_t, e, &cur->ip_addresses) {

test/nanostack/unittest/stub/address_stub.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,11 @@ int_fast8_t addr_delete(protocol_interface_info_entry_t *cur, const uint8_t addr
226226
return address_stub.int8_value;
227227
}
228228

229+
int_fast8_t addr_deprecate(protocol_interface_info_entry_t *cur, const uint8_t address[static 16])
230+
{
231+
return address_stub.int8_value;
232+
}
233+
229234
void addr_delete_matching(protocol_interface_info_entry_t *cur, const uint8_t *prefix, uint8_t prefix_len, if_address_source_t source)
230235
{
231236
}

0 commit comments

Comments
 (0)