Skip to content

Commit 99e6efa

Browse files
author
Juha Heiskanen
committed
Neighbour remove operation update
Now neighbour remove clean Normal and Indrect TX queue's. Change-Id: I58c4a48a5ff099c6bba3b22530601eee72884e1e
1 parent 5cd094c commit 99e6efa

File tree

7 files changed

+26
-17
lines changed

7 files changed

+26
-17
lines changed

source/6LoWPAN/Bootstraps/Generic/protocol_6lowpan_bootstrap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1595,7 +1595,7 @@ static void lowpan_neighbor_entry_remove_notify(mac_neighbor_table_entry_t *entr
15951595
{
15961596

15971597
protocol_interface_info_entry_t *cur_interface = user_data;
1598-
lowpan_adaptation_remove_free_indirect_table(cur_interface, entry_ptr);
1598+
lowpan_adaptation_neigh_remove_free_tx_tables(cur_interface, entry_ptr);
15991599
// Sleepy host
16001600
if (cur_interface->lowpan_info & INTERFACE_NWK_CONF_MAC_RX_OFF_IDLE) {
16011601
mac_data_poll_protocol_poll_mode_decrement(cur_interface);

source/6LoWPAN/Thread/thread_bootstrap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ static void thread_bootstrap_pbbr_update_done(struct protocol_interface_info_ent
137137
static void thread_neighbor_remove(mac_neighbor_table_entry_t *entry_ptr, void *user_data)
138138
{
139139
protocol_interface_info_entry_t *cur = user_data;
140-
lowpan_adaptation_remove_free_indirect_table(cur, entry_ptr);
140+
lowpan_adaptation_neigh_remove_free_tx_tables(cur, entry_ptr);
141141

142142
thread_reset_neighbour_info(cur, entry_ptr);
143143
//Removes ETX neighbor

source/6LoWPAN/adaptation_interface.c

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1446,19 +1446,19 @@ static bool lowpan_adaptation_indirect_queue_free_message(struct protocol_interf
14461446
return true;
14471447
}
14481448

1449-
void lowpan_adaptation_remove_free_indirect_table(protocol_interface_info_entry_t *cur_interface, mac_neighbor_table_entry_t *entry_ptr)
1449+
void lowpan_adaptation_neigh_remove_free_tx_tables(protocol_interface_info_entry_t *cur_interface, mac_neighbor_table_entry_t *entry_ptr)
14501450
{
14511451
//Free first by defined short address
14521452
if (entry_ptr->mac16 < 0xfffe) {
14531453
uint8_t temp_address[2];
14541454
common_write_16_bit(entry_ptr->mac16, temp_address);
1455-
lowpan_adaptation_indirect_free_messages_from_queues_by_address(cur_interface, temp_address, ADDR_802_15_4_SHORT);
1455+
lowpan_adaptation_free_messages_from_queues_by_address(cur_interface, temp_address, ADDR_802_15_4_SHORT);
14561456
}
1457-
lowpan_adaptation_indirect_free_messages_from_queues_by_address(cur_interface, entry_ptr->mac64, ADDR_802_15_4_LONG);
1457+
lowpan_adaptation_free_messages_from_queues_by_address(cur_interface, entry_ptr->mac64, ADDR_802_15_4_LONG);
14581458
}
14591459

14601460

1461-
int8_t lowpan_adaptation_indirect_free_messages_from_queues_by_address(struct protocol_interface_info_entry *cur, uint8_t *address_ptr, addrtype_t adr_type)
1461+
int8_t lowpan_adaptation_free_messages_from_queues_by_address(struct protocol_interface_info_entry *cur, uint8_t *address_ptr, addrtype_t adr_type)
14621462
{
14631463
fragmenter_interface_t *interface_ptr = lowpan_adaptation_interface_discover(cur->id);
14641464

@@ -1474,9 +1474,18 @@ int8_t lowpan_adaptation_indirect_free_messages_from_queues_by_address(struct pr
14741474
}
14751475
}
14761476

1477+
//Check next direct queue
1478+
ns_list_foreach_safe(fragmenter_tx_entry_t, entry, &interface_ptr->activeUnicastList) {
1479+
if (lowpan_tx_buffer_address_compare(&entry->buf->dst_sa, address_ptr, adr_type)) {
1480+
//Purge from mac
1481+
lowpan_adaptation_indirect_queue_free_message(cur, interface_ptr, entry);
1482+
}
1483+
}
1484+
14771485
return 0;
14781486
}
14791487

1488+
14801489
int8_t lowpan_adaptation_indirect_queue_params_set(struct protocol_interface_info_entry *cur, uint16_t indirect_big_packet_threshold, uint16_t max_indirect_big_packets_total, uint16_t max_indirect_small_packets_per_child)
14811490
{
14821491
fragmenter_interface_t *interface_ptr = lowpan_adaptation_interface_discover(cur->id);

source/6LoWPAN/lowpan_adaptation_interface.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ struct buffer *lowpan_adaptation_reassembly(struct protocol_interface_info_entry
5151

5252
bool lowpan_adaptation_tx_active(int8_t interface_id);
5353

54-
void lowpan_adaptation_remove_free_indirect_table(struct protocol_interface_info_entry *cur_interface, struct mac_neighbor_table_entry *entry_ptr);
54+
void lowpan_adaptation_neigh_remove_free_tx_tables(struct protocol_interface_info_entry *cur_interface, struct mac_neighbor_table_entry *entry_ptr);
5555

56-
int8_t lowpan_adaptation_indirect_free_messages_from_queues_by_address(struct protocol_interface_info_entry *cur, uint8_t *address_ptr, addrtype_t adr_type);
56+
int8_t lowpan_adaptation_free_messages_from_queues_by_address(struct protocol_interface_info_entry *cur, uint8_t *address_ptr, addrtype_t adr_type);
5757

5858
int8_t lowpan_adaptation_indirect_queue_params_set(struct protocol_interface_info_entry *cur, uint16_t indirect_big_packet_threshold, uint16_t max_indirect_big_packets_total, uint16_t max_indirect_small_packets_per_child);
5959

source/6LoWPAN/ws/ws_bootstrap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1570,7 +1570,7 @@ static void ws_neighbor_entry_remove_notify(mac_neighbor_table_entry_t *entry_pt
15701570
{
15711571

15721572
protocol_interface_info_entry_t *cur = user_data;
1573-
lowpan_adaptation_remove_free_indirect_table(cur, entry_ptr);
1573+
lowpan_adaptation_neigh_remove_free_tx_tables(cur, entry_ptr);
15741574
// Sleepy host
15751575
if (cur->lowpan_info & INTERFACE_NWK_CONF_MAC_RX_OFF_IDLE) {
15761576
mac_data_poll_protocol_poll_mode_decrement(cur);

test/nanostack/unittest/6LoWPAN/adaptation_interface/test_adaptation_interface.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -320,29 +320,29 @@ bool test_lowpan_adaptation_indirect_purge()
320320
}
321321
entry.id = 2;
322322
if (-1
323-
!= lowpan_adaptation_indirect_free_messages_from_queues_by_address(
323+
!= lowpan_adaptation_free_messages_from_queues_by_address(
324324
&entry, test_buf->dst_sa.address,
325325
test_buf->dst_sa.addr_type)) {
326326
return false;
327327
}
328328
entry.id = 0;
329329
if (-0
330-
!= lowpan_adaptation_indirect_free_messages_from_queues_by_address(
330+
!= lowpan_adaptation_free_messages_from_queues_by_address(
331331
&entry, test_buf->dst_sa.address,
332332
test_buf->dst_sa.addr_type)) {
333333
return false;
334334
}
335335

336336
if (-0
337-
!= lowpan_adaptation_indirect_free_messages_from_queues_by_address(
337+
!= lowpan_adaptation_free_messages_from_queues_by_address(
338338
&entry, test_buf2->dst_sa.address, ADDR_NONE)) {
339339
return false;
340340
}
341341

342342
// purge with addr none
343343
test_buf2->dst_sa.addr_type = ADDR_NONE;
344344
if (-0
345-
!= lowpan_adaptation_indirect_free_messages_from_queues_by_address(
345+
!= lowpan_adaptation_free_messages_from_queues_by_address(
346346
&entry, test_buf2->dst_sa.address, ADDR_NONE)) {
347347
return false;
348348
}
@@ -351,7 +351,7 @@ bool test_lowpan_adaptation_indirect_purge()
351351

352352
test_buf2->dst_sa.address[2] = 2;
353353
if (-0
354-
!= lowpan_adaptation_indirect_free_messages_from_queues_by_address(
354+
!= lowpan_adaptation_free_messages_from_queues_by_address(
355355
&entry, test_buf2->dst_sa.address,
356356
test_buf2->dst_sa.addr_type)) {
357357
return false;
@@ -360,7 +360,7 @@ bool test_lowpan_adaptation_indirect_purge()
360360
test_buf2->dst_sa.address[2] = 0;
361361

362362
if (-0
363-
!= lowpan_adaptation_indirect_free_messages_from_queues_by_address(
363+
!= lowpan_adaptation_free_messages_from_queues_by_address(
364364
&entry, test_buf2->dst_sa.address,
365365
test_buf2->dst_sa.addr_type)) {
366366
return false;
@@ -1371,7 +1371,7 @@ bool test_lowpan_adaptation_interface_mpx_register()
13711371
lowpan_adaptation_interface_tx(&entry, test_buf2);
13721372

13731373

1374-
if (0 != lowpan_adaptation_indirect_free_messages_from_queues_by_address(&entry, test_buf2->dst_sa.address,
1374+
if (0 != lowpan_adaptation_free_messages_from_queues_by_address(&entry, test_buf2->dst_sa.address,
13751375
test_buf2->dst_sa.addr_type)) {
13761376
lowpan_adaptation_interface_free(0);
13771377
free(test_buf);

test/nanostack/unittest/stub/adaptation_interface_stub.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ void lowpan_adaptation_interface_etx_update_enable(int8_t interface_id)
9898

9999
}
100100

101-
void lowpan_adaptation_remove_free_indirect_table(struct protocol_interface_info_entry *cur_interface, struct mac_neighbor_table_entry *entry_ptr)
101+
void lowpan_adaptation_neigh_remove_free_tx_tables(struct protocol_interface_info_entry *cur_interface, struct mac_neighbor_table_entry *entry_ptr)
102102
{
103103

104104
}

0 commit comments

Comments
 (0)