|
|
|
@ -19,6 +19,8 @@
|
|
|
|
|
#include "net/fib.h"
|
|
|
|
|
#include "universal_address.h"
|
|
|
|
|
|
|
|
|
|
static fib_entry_t test_fib_table[20];
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* @brief helper to fill FIB with unique entries
|
|
|
|
|
*/
|
|
|
|
@ -35,7 +37,7 @@ static void _fill_FIB_unique(size_t entries)
|
|
|
|
|
snprintf(addr_dst, add_buf_size, "Test address %02d", (int)i);
|
|
|
|
|
snprintf(addr_nxt, add_buf_size, "Test address %02d", entries + i);
|
|
|
|
|
/* the terminating \0 is unnecessary here */
|
|
|
|
|
fib_add_entry(42, (uint8_t *)addr_dst, add_buf_size - 1, addr_dst_flags,
|
|
|
|
|
fib_add_entry(test_fib_table, 42, (uint8_t *)addr_dst, add_buf_size - 1, addr_dst_flags,
|
|
|
|
|
(uint8_t *)addr_nxt, add_buf_size - 1, addr_nxt_flags, 10000);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -56,7 +58,7 @@ static void _fill_FIB_multiple(size_t entries, size_t modulus)
|
|
|
|
|
/* construct "addresses" for the FIB */
|
|
|
|
|
snprintf(addr_dst, add_buf_size, "Test address %02d", (int)i);
|
|
|
|
|
snprintf(addr_nxt, add_buf_size, "Test address %02d", i % modulus);
|
|
|
|
|
fib_add_entry(42, (uint8_t *)addr_dst, add_buf_size - 1, addr_dst_flags,
|
|
|
|
|
fib_add_entry(test_fib_table, 42, (uint8_t *)addr_dst, add_buf_size - 1, addr_dst_flags,
|
|
|
|
|
(uint8_t *)addr_nxt, add_buf_size - 1, addr_nxt_flags, 10000);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -69,14 +71,14 @@ static void test_fib_01_fill_unique_entries(void)
|
|
|
|
|
{
|
|
|
|
|
_fill_FIB_unique(20);
|
|
|
|
|
#if (TEST_FIB_SHOW_OUTPUT == 1)
|
|
|
|
|
fib_print_fib_table();
|
|
|
|
|
fib_print_fib_table(test_fib_table);
|
|
|
|
|
puts("");
|
|
|
|
|
universal_address_print_table();
|
|
|
|
|
puts("");
|
|
|
|
|
#endif
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(40, universal_address_get_num_used_entries());
|
|
|
|
|
fib_deinit();
|
|
|
|
|
fib_deinit(test_fib_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -89,14 +91,14 @@ static void test_fib_02_fill_multiple_entries(void)
|
|
|
|
|
_fill_FIB_multiple(entries, 11);
|
|
|
|
|
|
|
|
|
|
#if (TEST_FIB_SHOW_OUTPUT == 1)
|
|
|
|
|
fib_print_fib_table();
|
|
|
|
|
fib_print_fib_table(test_fib_table);
|
|
|
|
|
puts("");
|
|
|
|
|
universal_address_print_table();
|
|
|
|
|
puts("");
|
|
|
|
|
#endif
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, universal_address_get_num_used_entries());
|
|
|
|
|
fib_deinit();
|
|
|
|
|
fib_deinit(test_fib_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -111,26 +113,26 @@ static void test_fib_03_removing_all_entries(void)
|
|
|
|
|
size_t entries = 20;
|
|
|
|
|
_fill_FIB_unique(entries);
|
|
|
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(40, universal_address_get_num_used_entries());
|
|
|
|
|
|
|
|
|
|
for (size_t i = 0; i < entries; ++i) {
|
|
|
|
|
/* construct "addresses" to remove */
|
|
|
|
|
snprintf(addr_dst, add_buf_size, "Test address %02d", (int)i);
|
|
|
|
|
fib_remove_entry((uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry(test_fib_table, (uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(0, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(0, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(0, universal_address_get_num_used_entries());
|
|
|
|
|
|
|
|
|
|
#if (TEST_FIB_SHOW_OUTPUT == 1)
|
|
|
|
|
fib_print_fib_table();
|
|
|
|
|
fib_print_fib_table(test_fib_table);
|
|
|
|
|
puts("");
|
|
|
|
|
universal_address_print_table();
|
|
|
|
|
puts("");
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
fib_deinit();
|
|
|
|
|
fib_deinit(test_fib_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -145,24 +147,24 @@ static void test_fib_04_remove_lower_half(void)
|
|
|
|
|
size_t entries = 20;
|
|
|
|
|
_fill_FIB_multiple(entries, 11);
|
|
|
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, universal_address_get_num_used_entries());
|
|
|
|
|
|
|
|
|
|
for (size_t i = 0; i < entries / 2; ++i) {
|
|
|
|
|
/* construct "addresses" to remove */
|
|
|
|
|
snprintf(addr_dst, add_buf_size, "Test address %02d", (int)i);
|
|
|
|
|
fib_remove_entry((uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry(test_fib_table, (uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if (TEST_FIB_SHOW_OUTPUT == 1)
|
|
|
|
|
fib_print_fib_table();
|
|
|
|
|
fib_print_fib_table(test_fib_table);
|
|
|
|
|
puts("");
|
|
|
|
|
universal_address_print_table();
|
|
|
|
|
puts("");
|
|
|
|
|
#endif
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(10, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(10, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(19, universal_address_get_num_used_entries());
|
|
|
|
|
fib_deinit();
|
|
|
|
|
fib_deinit(test_fib_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -177,24 +179,24 @@ static void test_fib_05_remove_upper_half(void)
|
|
|
|
|
size_t entries = 20;
|
|
|
|
|
_fill_FIB_multiple(entries, 11);
|
|
|
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, universal_address_get_num_used_entries());
|
|
|
|
|
|
|
|
|
|
for (size_t i = 0; i < entries / 2; ++i) {
|
|
|
|
|
/* construct "addresses" to remove */
|
|
|
|
|
snprintf(addr_dst, add_buf_size, "Test address %02d", ((entries / 2) + i));
|
|
|
|
|
fib_remove_entry((uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry(test_fib_table, (uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if (TEST_FIB_SHOW_OUTPUT == 1)
|
|
|
|
|
fib_print_fib_table();
|
|
|
|
|
fib_print_fib_table(test_fib_table);
|
|
|
|
|
puts("");
|
|
|
|
|
universal_address_print_table();
|
|
|
|
|
puts("");
|
|
|
|
|
#endif
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(10, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(10, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(10, universal_address_get_num_used_entries());
|
|
|
|
|
fib_deinit();
|
|
|
|
|
fib_deinit(test_fib_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -211,20 +213,20 @@ static void test_fib_06_remove_one_entry(void)
|
|
|
|
|
size_t entries = 20;
|
|
|
|
|
_fill_FIB_multiple(entries, 11);
|
|
|
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, universal_address_get_num_used_entries());
|
|
|
|
|
|
|
|
|
|
fib_remove_entry((uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry(test_fib_table, (uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
|
|
|
|
|
#if (TEST_FIB_SHOW_OUTPUT == 1)
|
|
|
|
|
fib_print_fib_table();
|
|
|
|
|
fib_print_fib_table(test_fib_table);
|
|
|
|
|
puts("");
|
|
|
|
|
universal_address_print_table();
|
|
|
|
|
puts("");
|
|
|
|
|
#endif
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(19, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(19, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, universal_address_get_num_used_entries());
|
|
|
|
|
fib_deinit();
|
|
|
|
|
fib_deinit(test_fib_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -240,23 +242,23 @@ static void test_fib_07_remove_one_entry_multiple_times(void)
|
|
|
|
|
size_t entries = 20;
|
|
|
|
|
_fill_FIB_multiple(entries, 11);
|
|
|
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, universal_address_get_num_used_entries());
|
|
|
|
|
|
|
|
|
|
fib_remove_entry((uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry((uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry((uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry((uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry(test_fib_table, (uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry(test_fib_table, (uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry(test_fib_table, (uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry(test_fib_table, (uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
|
|
|
|
|
#if (TEST_FIB_SHOW_OUTPUT == 1)
|
|
|
|
|
fib_print_fib_table();
|
|
|
|
|
fib_print_fib_table(test_fib_table);
|
|
|
|
|
puts("");
|
|
|
|
|
universal_address_print_table();
|
|
|
|
|
puts("");
|
|
|
|
|
#endif
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(19, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(19, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(19, universal_address_get_num_used_entries());
|
|
|
|
|
fib_deinit();
|
|
|
|
|
fib_deinit(test_fib_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -271,22 +273,22 @@ static void test_fib_08_remove_unknown(void)
|
|
|
|
|
size_t entries = 20;
|
|
|
|
|
_fill_FIB_multiple(entries, 11);
|
|
|
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, universal_address_get_num_used_entries());
|
|
|
|
|
|
|
|
|
|
fib_remove_entry((uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry((uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry((uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry(test_fib_table, (uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry(test_fib_table, (uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
fib_remove_entry(test_fib_table, (uint8_t *)addr_dst, add_buf_size - 1);
|
|
|
|
|
|
|
|
|
|
#if (TEST_FIB_SHOW_OUTPUT == 1)
|
|
|
|
|
fib_print_fib_table();
|
|
|
|
|
fib_print_fib_table(test_fib_table);
|
|
|
|
|
puts("");
|
|
|
|
|
universal_address_print_table();
|
|
|
|
|
puts("");
|
|
|
|
|
#endif
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, universal_address_get_num_used_entries());
|
|
|
|
|
fib_deinit();
|
|
|
|
|
fib_deinit(test_fib_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -305,21 +307,21 @@ static void test_fib_09_update_entry(void)
|
|
|
|
|
size_t entries = 20;
|
|
|
|
|
_fill_FIB_multiple(entries, 11);
|
|
|
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, universal_address_get_num_used_entries());
|
|
|
|
|
|
|
|
|
|
fib_update_entry((uint8_t *)addr_dst13, add_buf_size - 1,
|
|
|
|
|
fib_update_entry(test_fib_table, (uint8_t *)addr_dst13, add_buf_size - 1,
|
|
|
|
|
(uint8_t *)addr_nxt2, add_buf_size - 1, 0x99, 9999);
|
|
|
|
|
fib_update_entry((uint8_t *)addr_dst07, add_buf_size - 1,
|
|
|
|
|
fib_update_entry(test_fib_table, (uint8_t *)addr_dst07, add_buf_size - 1,
|
|
|
|
|
(uint8_t *)addr_nxt77, add_buf_size - 1, 0x77, 7777);
|
|
|
|
|
|
|
|
|
|
#if (TEST_FIB_SHOW_OUTPUT == 1)
|
|
|
|
|
fib_print_fib_table();
|
|
|
|
|
fib_print_fib_table(test_fib_table);
|
|
|
|
|
puts("");
|
|
|
|
|
universal_address_print_table();
|
|
|
|
|
puts("");
|
|
|
|
|
#endif
|
|
|
|
|
fib_deinit();
|
|
|
|
|
fib_deinit(test_fib_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -335,23 +337,23 @@ static void test_fib_10_add_exceed(void)
|
|
|
|
|
size_t entries = 20;
|
|
|
|
|
_fill_FIB_unique(entries);
|
|
|
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(40, universal_address_get_num_used_entries());
|
|
|
|
|
|
|
|
|
|
int ret = fib_add_entry(42, (uint8_t *)addr_dst, add_buf_size - 1, 0x98,
|
|
|
|
|
int ret = fib_add_entry(test_fib_table, 42, (uint8_t *)addr_dst, add_buf_size - 1, 0x98,
|
|
|
|
|
(uint8_t *)addr_nxt, add_buf_size - 1, 0x99, 9999);
|
|
|
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(-ENOMEM, ret);
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(40, universal_address_get_num_used_entries());
|
|
|
|
|
|
|
|
|
|
#if (TEST_FIB_SHOW_OUTPUT == 1)
|
|
|
|
|
fib_print_fib_table();
|
|
|
|
|
fib_print_fib_table(test_fib_table);
|
|
|
|
|
puts("");
|
|
|
|
|
universal_address_print_table();
|
|
|
|
|
puts("");
|
|
|
|
|
#endif
|
|
|
|
|
fib_deinit();
|
|
|
|
|
fib_deinit(test_fib_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -370,26 +372,26 @@ static void test_fib_11_get_next_hop_success(void)
|
|
|
|
|
size_t entries = 20;
|
|
|
|
|
_fill_FIB_multiple(entries, 11);
|
|
|
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, universal_address_get_num_used_entries());
|
|
|
|
|
int ret = fib_get_next_hop(&iface_id,
|
|
|
|
|
int ret = fib_get_next_hop(test_fib_table, &iface_id,
|
|
|
|
|
(uint8_t *)addr_nxt, &add_buf_size, &next_hop_flags,
|
|
|
|
|
(uint8_t *)addr_dst, add_buf_size - 1, 0x13);
|
|
|
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(0, ret);
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, universal_address_get_num_used_entries());
|
|
|
|
|
|
|
|
|
|
ret = strncmp(addr_expect, addr_nxt, add_buf_size);
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(0, ret);
|
|
|
|
|
|
|
|
|
|
#if (TEST_FIB_SHOW_OUTPUT == 1)
|
|
|
|
|
fib_print_fib_table();
|
|
|
|
|
fib_print_fib_table(test_fib_table);
|
|
|
|
|
puts("");
|
|
|
|
|
universal_address_print_table();
|
|
|
|
|
puts("");
|
|
|
|
|
#endif
|
|
|
|
|
fib_deinit();
|
|
|
|
|
fib_deinit(test_fib_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -406,21 +408,21 @@ static void test_fib_12_get_next_hop_fail(void)
|
|
|
|
|
|
|
|
|
|
size_t entries = 20;
|
|
|
|
|
_fill_FIB_multiple(entries, 11);
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, universal_address_get_num_used_entries());
|
|
|
|
|
int ret = fib_get_next_hop(&iface_id,
|
|
|
|
|
int ret = fib_get_next_hop(test_fib_table, &iface_id,
|
|
|
|
|
(uint8_t *)addr_nxt, &add_buf_size, &next_hop_flags,
|
|
|
|
|
(uint8_t *)addr_dst, add_buf_size - 1, 0x99);
|
|
|
|
|
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(-EHOSTUNREACH, ret);
|
|
|
|
|
|
|
|
|
|
#if (TEST_FIB_SHOW_OUTPUT == 1)
|
|
|
|
|
fib_print_fib_table();
|
|
|
|
|
fib_print_fib_table(test_fib_table);
|
|
|
|
|
puts("");
|
|
|
|
|
universal_address_print_table();
|
|
|
|
|
puts("");
|
|
|
|
|
#endif
|
|
|
|
|
fib_deinit();
|
|
|
|
|
fib_deinit(test_fib_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -438,10 +440,10 @@ static void test_fib_13_get_next_hop_fail_on_buffer_size(void)
|
|
|
|
|
|
|
|
|
|
size_t entries = 20;
|
|
|
|
|
_fill_FIB_multiple(entries, 11);
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries());
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, fib_get_num_used_entries(test_fib_table));
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(20, universal_address_get_num_used_entries());
|
|
|
|
|
|
|
|
|
|
int ret = fib_get_next_hop(&iface_id,
|
|
|
|
|
int ret = fib_get_next_hop(test_fib_table, &iface_id,
|
|
|
|
|
(uint8_t *)addr_nxt, &add_buf_size_nxt, &next_hop_flags,
|
|
|
|
|
(uint8_t *)addr_dst, add_buf_size - 1, 0x13);
|
|
|
|
|
|
|
|
|
@ -449,12 +451,12 @@ static void test_fib_13_get_next_hop_fail_on_buffer_size(void)
|
|
|
|
|
TEST_ASSERT_EQUAL_INT(add_buf_size_nxt, add_buf_size - 1);
|
|
|
|
|
|
|
|
|
|
#if (TEST_FIB_SHOW_OUTPUT == 1)
|
|
|
|
|
fib_print_fib_table();
|
|
|
|
|
fib_print_fib_table(test_fib_table);
|
|
|
|
|
puts("");
|
|
|
|
|
universal_address_print_table();
|
|
|
|
|
puts("");
|
|
|
|
|
#endif
|
|
|
|
|
fib_deinit();
|
|
|
|
|
fib_deinit(test_fib_table);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
@ -475,23 +477,23 @@ static void test_fib_14_exact_and_prefix_match(void)
|
|
|
|
|
|
|
|
|
|
snprintf(addr_dst, add_buf_size, "Test addr12");
|
|
|
|
|
snprintf(addr_nxt, add_buf_size, "Test address %02d", 12);
|
|
|
|
|
fib_add_entry(42, (uint8_t *)addr_dst, add_buf_size - 1, 0x12,
|
|
|
|
|
fib_add_entry(test_fib_table, 42, (uint8_t *)addr_dst, add_buf_size - 1, 0x12,
|
|
|
|
|
(uint8_t *)addr_nxt, add_buf_size - 1, 0x12, 100000);
|
|
|
|
|
|
|
|
|
|
snprintf(addr_dst, add_buf_size, "Test addr123");
|
|
|
|
|
snprintf(addr_nxt, add_buf_size, "Test address %02d", 23);
|
|
|
|
|
fib_add_entry(42, (uint8_t *)addr_dst, add_buf_size - 1, 0x123,
|
|
|
|
|
fib_add_entry(test_fib_table, 42, (uint8_t *)addr_dst, add_buf_size - 1, 0x123,
|
|
|
|
|
(uint8_t *)addr_nxt, add_buf_size - 1, 0x23, 100000);
|
|
|
|
|
|
|
|
|
|
snprintf(addr_dst, add_buf_size, "Test addr1234");
|
|
|
|
|
snprintf(addr_nxt, add_buf_size, "Test address %02d", 34);
|
|
|
|
|
fib_add_entry(42, (uint8_t *)addr_dst, add_buf_size - 1, 0x1234,
|
|
|
|
|
fib_add_entry(test_fib_table, 42, (uint8_t *)addr_dst, add_buf_size - 1, 0x1234,
|
|
|
|
|
(uint8_t *)addr_nxt, add_buf_size - 1, 0x34, 100000);
|
|
|
|
|
|
|
|
|
|
memset(addr_lookup, 0, add_buf_size);
|
|
|
|
|
/* exact match */
|
|
|
|
|
snprintf(addr_lookup, add_buf_size, "Test addr123");
|
|
|
|
|
int ret = fib_get_next_hop(&iface_id,
|
|
|
|
|
int ret = fib_get_next_hop(test_fib_table, &iface_id,
|
|
|
|
|
(uint8_t *)addr_nxt, &add_buf_size, &next_hop_flags,
|