Merge pull request #11011 from miri64/ndp/enh/add-hop-limit-define

ndp: provide define for common hop-limit
This commit is contained in:
Martine Lenders 2019-03-26 20:18:07 +01:00 committed by GitHub
commit 83b9f72f83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 98 additions and 75 deletions

View File

@ -193,6 +193,18 @@ extern "C" {
#define NDP_MAX_RANDOM_FACTOR (1500U) /**< MAX_RANDOM_FACTOR (x 1000) */
/** @} */
/**
* @brief Hop-limit required for most NDP messages to ensure link-local
* communication
*
* @see [RFC 4861, section 4.1](https://tools.ietf.org/html/rfc4861#section-4.1)
* @see [RFC 4861, section 4.2](https://tools.ietf.org/html/rfc4861#section-4.2)
* @see [RFC 4861, section 4.3](https://tools.ietf.org/html/rfc4861#section-4.3)
* @see [RFC 4861, section 4.4](https://tools.ietf.org/html/rfc4861#section-4.4)
* @see [RFC 4861, section 4.5](https://tools.ietf.org/html/rfc4861#section-4.5)
*/
#define NDP_HOP_LIMIT (255U)
/**
* @brief Router solicitation message format.
* @extends icmpv6_hdr_t

View File

@ -440,12 +440,13 @@ static void _handle_rtr_sol(gnrc_netif_t *netif, const ipv6_hdr_t *ipv6,
assert(netif != NULL);
/* check validity, see: https://tools.ietf.org/html/rfc4861#section-6.1.1 */
/* checksum is checked by GNRC's ICMPv6 module */
if (!(gnrc_netif_is_rtr(netif)) || (ipv6->hl != 255U) ||
if (!(gnrc_netif_is_rtr(netif)) || (ipv6->hl != NDP_HOP_LIMIT) ||
(rtr_sol->code != 0U) || (icmpv6_len < sizeof(ndp_rtr_sol_t))) {
DEBUG("nib: Received router solicitation is invalid (or interface %i "
"is not a forwarding interface). Discarding silently\n",
netif->pid);
DEBUG(" - IP Hop Limit: %u (should be 255)\n", ipv6->hl);
DEBUG(" - IP Hop Limit: %u (should be %u)\n", ipv6->hl,
NDP_HOP_LIMIT);
DEBUG(" - ICMP code: %u (should be 0)\n", rtr_sol->code);
DEBUG(" - ICMP length: %u (should > %u)\n", (unsigned)icmpv6_len,
(unsigned)sizeof(ndp_rtr_sol_t));
@ -549,13 +550,14 @@ static void _handle_rtr_adv(gnrc_netif_t *netif, const ipv6_hdr_t *ipv6,
/* check validity, see: https://tools.ietf.org/html/rfc4861#section-6.1.1 */
/* checksum is checked by GNRC's ICMPv6 module */
if (!(ipv6_addr_is_link_local(&ipv6->src)) ||
(ipv6->hl != 255U) || (rtr_adv->code != 0U) ||
(ipv6->hl != NDP_HOP_LIMIT) || (rtr_adv->code != 0U) ||
(icmpv6_len < sizeof(ndp_rtr_adv_t)) ||
(!gnrc_netif_is_6ln(netif) &&
(byteorder_ntohs(rtr_adv->ltime) > NDP_RTR_ADV_LTIME_SEC_MAX))) {
DEBUG("nib: Received router advertisement is invalid. "
"Discarding silently\n");
DEBUG(" - IP Hop Limit: %u (should be 255)\n", ipv6->hl);
DEBUG(" - IP Hop Limit: %u (should be %u)\n", ipv6->hl,
NDP_HOP_LIMIT);
DEBUG(" - ICMP code: %u (should be 0)\n", rtr_adv->code);
DEBUG(" - ICMP length: %u (should > %u)\n", (unsigned)icmpv6_len,
(unsigned)sizeof(ndp_rtr_adv_t));
@ -819,7 +821,7 @@ static void _send_delayed_nbr_adv(const gnrc_netif_t *netif,
if ((payload = _check_release_pkt(pkt, payload)) == NULL) {
return;
}
((ipv6_hdr_t *)payload->data)->hl = 255;
((ipv6_hdr_t *)payload->data)->hl = NDP_HOP_LIMIT;
pkt = gnrc_netif_hdr_build(NULL, 0, NULL, 0);
if ((pkt = _check_release_pkt(pkt, payload)) == NULL) {
return;
@ -839,13 +841,14 @@ static void _handle_nbr_sol(gnrc_netif_t *netif, const ipv6_hdr_t *ipv6,
/* check validity, see: https://tools.ietf.org/html/rfc4861#section-7.1.1 */
/* checksum is checked by GNRC's ICMPv6 module */
if ((ipv6->hl != 255U) || (nbr_sol->code != 0U) ||
if ((ipv6->hl != NDP_HOP_LIMIT) || (nbr_sol->code != 0U) ||
(icmpv6_len < sizeof(ndp_nbr_sol_t)) ||
ipv6_addr_is_multicast(&nbr_sol->tgt) ||
(ipv6_addr_is_unspecified(&ipv6->src) &&
!ipv6_addr_is_solicited_node(&ipv6->dst))) {
DEBUG("nib: Received neighbor solicitation is invalid. Discarding silently\n");
DEBUG(" - IP Hop Limit: %u (should be 255)\n", ipv6->hl);
DEBUG(" - IP Hop Limit: %u (should be %u)\n", ipv6->hl,
NDP_HOP_LIMIT);
DEBUG(" - ICMP code: %u (should be 0)\n", nbr_sol->code);
DEBUG(" - ICMP length: %u (should > %u)\n", (unsigned)icmpv6_len,
(unsigned)sizeof(ndp_nbr_sol_t));
@ -972,13 +975,14 @@ static void _handle_nbr_adv(gnrc_netif_t *netif, const ipv6_hdr_t *ipv6,
/* check validity, see: https://tools.ietf.org/html/rfc4861#section-7.1.2 */
/* checksum is checked by GNRC's ICMPv6 module */
if ((ipv6->hl != 255U) || (nbr_adv->code != 0U) ||
if ((ipv6->hl != NDP_HOP_LIMIT) || (nbr_adv->code != 0U) ||
(icmpv6_len < sizeof(ndp_nbr_adv_t)) ||
ipv6_addr_is_multicast(&nbr_adv->tgt) ||
(ipv6_addr_is_multicast(&ipv6->dst) &&
(nbr_adv->flags & NDP_NBR_ADV_FLAGS_S))) {
DEBUG("nib: Received neighbor advertisement is invalid. Discarding silently\n");
DEBUG(" - IP Hop Limit: %u (should be 255)\n", ipv6->hl);
DEBUG(" - IP Hop Limit: %u (should be %u)\n", ipv6->hl,
NDP_HOP_LIMIT);
DEBUG(" - ICMP code: %u (should be 0)\n", nbr_adv->code);
DEBUG(" - ICMP length: %u (should > %u)\n", (unsigned)icmpv6_len,
(unsigned)sizeof(ndp_nbr_adv_t));

View File

@ -601,7 +601,7 @@ static gnrc_pktsnip_t *_build_headers(gnrc_netif_t *netif,
DEBUG("ndp: error allocating IPv6 header.\n");
return NULL;
}
((ipv6_hdr_t *)iphdr->data)->hl = 255;
((ipv6_hdr_t *)iphdr->data)->hl = NDP_HOP_LIMIT;
/* add netif header for send interface specification */
l2hdr = gnrc_netif_hdr_build(NULL, 0, NULL, 0);
if (l2hdr == NULL) {

View File

@ -245,7 +245,7 @@ void _simulate_ndp_handshake(const ipv6_addr_t *src, const ipv6_addr_t *dst,
gnrc_pktbuf_release(msg.content.ptr);
/* generate neighbor advertisement */
ipv6_hdr_set_version(ipv6);
ipv6->hl = 255U;
ipv6->hl = NDP_HOP_LIMIT;
/* this simulates a reply, so dst and src need to be switched */
memcpy(&ipv6->src, dst, sizeof(ipv6->src));
memcpy(&ipv6->dst, src, sizeof(ipv6->dst));
@ -316,7 +316,7 @@ static void test_handle_pkt__unknown_type(void)
void *state = NULL;
ipv6_hdr_set_version(ipv6);
ipv6->hl = 255U;
ipv6->hl = NDP_HOP_LIMIT;
memcpy(&ipv6->src, &_loc_ll, sizeof(ipv6->src));
memcpy(&ipv6->dst, &_rem_ll, sizeof(ipv6->dst));
icmpv6->type = ICMPV6_ECHO_REQ;
@ -376,8 +376,8 @@ static void test_handle_pkt__nbr_sol__invalid_code(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_sol_nodes, 255U, 201U,
&_loc_ll, _rem_l2, sizeof(_rem_l2));
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_sol_nodes, NDP_HOP_LIMIT,
201U, &_loc_ll, _rem_l2, sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
TEST_ASSERT_MESSAGE(!gnrc_ipv6_nib_nc_iter(0, &state, &nce),
@ -391,8 +391,8 @@ static void test_handle_pkt__nbr_sol__invalid_icmpv6_len(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
_set_nbr_sol(&_rem_ll, &_loc_sol_nodes, 255U, 0U, &_loc_ll, _rem_l2,
sizeof(_rem_l2));
_set_nbr_sol(&_rem_ll, &_loc_sol_nodes, NDP_HOP_LIMIT, 0U, &_loc_ll,
_rem_l2, sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6,
sizeof(ndp_nbr_sol_t) - 1);
@ -406,9 +406,9 @@ static void test_handle_pkt__nbr_sol__invalid_tgt(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_sol_nodes, 255U, 0U,
&ipv6_addr_all_routers_site_local, _rem_l2,
sizeof(_rem_l2));
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_sol_nodes, NDP_HOP_LIMIT,
0U, &ipv6_addr_all_routers_site_local,
_rem_l2, sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
TEST_ASSERT_MESSAGE(!gnrc_ipv6_nib_nc_iter(0, &state, &nce),
@ -421,8 +421,8 @@ static void test_handle_pkt__nbr_sol__invalid_opt_len(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_sol_nodes, 255U, 0U,
&_loc_ll, _rem_l2, sizeof(_rem_l2));
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_sol_nodes, NDP_HOP_LIMIT,
0U, &_loc_ll, _rem_l2, sizeof(_rem_l2));
ndp_opt_t *opt = (ndp_opt_t *)&_buffer[icmpv6_len];
opt->type = NDP_OPT_SL2A;
@ -439,8 +439,8 @@ static void test_handle_pkt__nbr_sol__invalid_dst(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&ipv6_addr_unspecified, &_loc_ll, 255U, 0U,
&_loc_ll, NULL, 0);
size_t icmpv6_len = _set_nbr_sol(&ipv6_addr_unspecified, &_loc_ll,
NDP_HOP_LIMIT, 0U, &_loc_ll, NULL, 0);
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
TEST_ASSERT_MESSAGE(!gnrc_ipv6_nib_nc_iter(0, &state, &nce),
@ -513,7 +513,7 @@ static void test_handle_pkt__nbr_sol__invalid_sl2ao(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&ipv6_addr_unspecified, &_loc_sol_nodes,
255U, 0U, &_loc_ll, _rem_l2,
NDP_HOP_LIMIT, 0U, &_loc_ll, _rem_l2,
sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
@ -537,7 +537,7 @@ static void test_handle_pkt__nbr_sol__tgt_not_assigned(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_sol_nodes,
255U, 0U, &_rem_ll, _rem_l2,
NDP_HOP_LIMIT, 0U, &_rem_ll, _rem_l2,
sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
@ -554,7 +554,7 @@ static void test_handle_pkt__nbr_sol__ll_src(unsigned exp_nud_state,
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_sol_nodes,
255U, 0U, &_loc_ll, _rem_l2,
NDP_HOP_LIMIT, 0U, &_loc_ll, _rem_l2,
sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
@ -598,7 +598,7 @@ static void test_handle_pkt__nbr_sol__ll_src_no_sl2ao(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_sol_nodes,
255U, 0U, &_loc_ll, NULL, 0);
NDP_HOP_LIMIT, 0U, &_loc_ll, NULL, 0);
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
TEST_ASSERT_MESSAGE(!gnrc_ipv6_nib_nc_iter(0, &state, &nce),
@ -663,7 +663,7 @@ static void test_handle_pkt__nbr_adv__invalid_code(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, 255U, 201U,
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, NDP_HOP_LIMIT, 201U,
NDP_NBR_ADV_FLAGS_S, &_loc_ll, _rem_l2,
sizeof(_rem_l2));
@ -679,7 +679,7 @@ static void test_handle_pkt__nbr_adv__invalid_icmpv6_len(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
_set_nbr_adv(&_rem_ll, &_loc_ll, 255U, 0U, NDP_NBR_ADV_FLAGS_S,
_set_nbr_adv(&_rem_ll, &_loc_ll, NDP_HOP_LIMIT, 0U, NDP_NBR_ADV_FLAGS_S,
&_loc_ll, _rem_l2,
sizeof(_rem_l2));
@ -695,7 +695,7 @@ static void test_handle_pkt__nbr_adv__invalid_tgt(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, 255U, 0U,
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, NDP_HOP_LIMIT, 0U,
NDP_NBR_ADV_FLAGS_S,
&ipv6_addr_all_routers_site_local, _rem_l2,
sizeof(_rem_l2));
@ -712,8 +712,8 @@ static void test_handle_pkt__nbr_adv__invalid_flags(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &ipv6_addr_all_nodes_link_local,
255U, 0U, NDP_NBR_ADV_FLAGS_S, &_loc_ll,
NULL, 0);
NDP_HOP_LIMIT, 0U, NDP_NBR_ADV_FLAGS_S,
&_loc_ll, NULL, 0);
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
TEST_ASSERT_MESSAGE(!gnrc_ipv6_nib_nc_iter(0, &state, &nce),
@ -726,7 +726,7 @@ static void test_handle_pkt__nbr_adv__invalid_opt_len(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, 255U, 0U,
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, NDP_HOP_LIMIT, 0U,
NDP_NBR_ADV_FLAGS_S, &_loc_ll, _rem_l2,
sizeof(_rem_l2));
ndp_opt_t *opt = (ndp_opt_t *)&_buffer[icmpv6_len];
@ -745,8 +745,9 @@ static void test_handle_pkt__nbr_adv__unspecified_src(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_adv(&ipv6_addr_unspecified, &_loc_ll, 255U, 0U,
NDP_NBR_ADV_FLAGS_S, &_loc_ll, _rem_l2,
size_t icmpv6_len = _set_nbr_adv(&ipv6_addr_unspecified, &_loc_ll,
NDP_HOP_LIMIT, 0U, NDP_NBR_ADV_FLAGS_S,
&_loc_ll, _rem_l2,
sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
@ -760,8 +761,8 @@ static void test_handle_pkt__nbr_adv__unsolicited(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_sol_nodes, 255U, 0U,
NDP_NBR_ADV_FLAGS_S, &_loc_ll,
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_sol_nodes, NDP_HOP_LIMIT,
0U, NDP_NBR_ADV_FLAGS_S, &_loc_ll,
_rem_l2, sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
@ -803,7 +804,8 @@ static void test_handle_pkt__rtr_sol(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_rtr_sol(&_rem_ll, &_loc_ll,
255U, 0U, _rem_l2, sizeof(_rem_l2));
NDP_HOP_LIMIT, 0U,
_rem_l2, sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
TEST_ASSERT_MESSAGE(!gnrc_ipv6_nib_nc_iter(0, &state, &nce),
@ -919,7 +921,7 @@ static void test_handle_pkt__rtr_adv__invalid_src(void)
gnrc_ipv6_nib_ft_t route;
void *state = NULL;
size_t icmpv6_len = _set_rtr_adv(&_rem_gb,
255U, 0U, true, 0U,
NDP_HOP_LIMIT, 0U, true, 0U,
_loc_l2, sizeof(_loc_l2),
32397U, &_loc_gb, _LOC_GB_PFX_LEN,
NDP_OPT_PI_FLAGS_L | NDP_OPT_PI_FLAGS_A);
@ -965,7 +967,7 @@ static void test_handle_pkt__rtr_adv__invalid_code(void)
gnrc_ipv6_nib_ft_t route;
void *state = NULL;
size_t icmpv6_len = _set_rtr_adv(&_rem_ll,
255U, 201U, true, 0U,
NDP_HOP_LIMIT, 201U, true, 0U,
_loc_l2, sizeof(_loc_l2),
32397U, &_loc_gb, _LOC_GB_PFX_LEN,
NDP_OPT_PI_FLAGS_L | NDP_OPT_PI_FLAGS_A);
@ -990,7 +992,8 @@ static void test_handle_pkt__rtr_adv__invalid_icmpv6_len(void)
_netif_exp_t exp_netif;
_get_netif_exp(_mock_netif, &exp_netif);
_set_rtr_adv(&_rem_ll, 255U, 201U, true, 0U, _loc_l2, sizeof(_loc_l2),
_set_rtr_adv(&_rem_ll, NDP_HOP_LIMIT, 201U, true, 0U,
_loc_l2, sizeof(_loc_l2),
32397U, &_loc_gb, _LOC_GB_PFX_LEN,
NDP_OPT_PI_FLAGS_L | NDP_OPT_PI_FLAGS_A);
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6,
@ -1010,7 +1013,7 @@ static void test_handle_pkt__rtr_adv__invalid_opt_len(void)
gnrc_ipv6_nib_ft_t route;
void *state = NULL;
size_t icmpv6_len = _set_rtr_adv(&_rem_ll,
255U, 201U, true, 0U,
NDP_HOP_LIMIT, 201U, true, 0U,
_loc_l2, sizeof(_loc_l2),
32397U, &_loc_gb, _LOC_GB_PFX_LEN,
NDP_OPT_PI_FLAGS_L | NDP_OPT_PI_FLAGS_A);
@ -1041,7 +1044,7 @@ static void test_handle_pkt__rtr_adv__success(uint8_t rtr_adv_flags,
gnrc_ipv6_nib_nc_t nce;
gnrc_ipv6_nib_ft_t route;
void *state = NULL;
size_t icmpv6_len = _set_rtr_adv(&_rem_ll, 255U, 0U,
size_t icmpv6_len = _set_rtr_adv(&_rem_ll, NDP_HOP_LIMIT, 0U,
set_rtr_adv_fields, rtr_adv_flags,
(sl2ao) ? _rem_l2 : NULL, sizeof(_rem_l2),
(mtuo) ? 32397U : 0U,

View File

@ -189,7 +189,7 @@ static void test_handle_pkt__unknown_type(void)
void *state = NULL;
ipv6_hdr_set_version(ipv6);
ipv6->hl = 255U;
ipv6->hl = NDP_HOP_LIMIT;
memcpy(&ipv6->src, &_loc_ll, sizeof(ipv6->src));
memcpy(&ipv6->dst, &_rem_ll, sizeof(ipv6->dst));
icmpv6->type = ICMPV6_ECHO_REQ;
@ -249,7 +249,7 @@ static void test_handle_pkt__nbr_sol__invalid_code(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_ll, 255U, 201U,
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_ll, NDP_HOP_LIMIT, 201U,
&_loc_ll, _rem_l2, sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
@ -264,7 +264,7 @@ static void test_handle_pkt__nbr_sol__invalid_icmpv6_len(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
_set_nbr_sol(&_rem_ll, &_loc_ll, 255U, 0U, &_loc_ll, _rem_l2,
_set_nbr_sol(&_rem_ll, &_loc_ll, NDP_HOP_LIMIT, 0U, &_loc_ll, _rem_l2,
sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6,
@ -279,7 +279,7 @@ static void test_handle_pkt__nbr_sol__invalid_tgt(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_ll, 255U, 0U,
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_ll, NDP_HOP_LIMIT, 0U,
&ipv6_addr_all_routers_site_local, _rem_l2,
sizeof(_rem_l2));
@ -294,7 +294,7 @@ static void test_handle_pkt__nbr_sol__invalid_opt_len(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_ll, 255U, 0U,
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_ll, NDP_HOP_LIMIT, 0U,
&_loc_ll, _rem_l2, sizeof(_rem_l2));
ndp_opt_t *opt = (ndp_opt_t *)&_buffer[icmpv6_len];
@ -312,8 +312,8 @@ static void test_handle_pkt__nbr_sol__invalid_dst(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&ipv6_addr_unspecified, &_loc_ll, 255U, 0U,
&_loc_ll, NULL, 0);
size_t icmpv6_len = _set_nbr_sol(&ipv6_addr_unspecified, &_loc_ll,
NDP_HOP_LIMIT, 0U, &_loc_ll, NULL, 0);
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
TEST_ASSERT_MESSAGE(!gnrc_ipv6_nib_nc_iter(0, &state, &nce),
@ -327,7 +327,7 @@ static void test_handle_pkt__nbr_sol__invalid_sl2ao(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&ipv6_addr_unspecified, &_loc_ll,
255U, 0U, &_loc_ll, _rem_l2,
NDP_HOP_LIMIT, 0U, &_loc_ll, _rem_l2,
sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
@ -342,7 +342,7 @@ static void test_handle_pkt__nbr_sol__tgt_not_assigned(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_ll,
255U, 0U, &_rem_ll, _rem_l2,
NDP_HOP_LIMIT, 0U, &_rem_ll, _rem_l2,
sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
@ -396,7 +396,7 @@ static void test_handle_pkt__nbr_sol__ll_src(unsigned exp_nud_state,
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_ll,
255U, 0U, &_loc_ll, _rem_l2,
NDP_HOP_LIMIT, 0U, &_loc_ll, _rem_l2,
sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
@ -439,7 +439,7 @@ static void test_handle_pkt__nbr_sol__ll_src_no_sl2ao(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_sol(&_rem_ll, &_loc_ll,
255U, 0U, &_loc_ll, NULL, 0);
NDP_HOP_LIMIT, 0U, &_loc_ll, NULL, 0);
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
TEST_ASSERT_MESSAGE(!gnrc_ipv6_nib_nc_iter(0, &state, &nce),
@ -515,7 +515,7 @@ static void test_handle_pkt__nbr_adv__invalid_code(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, 255U, 201U,
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, NDP_HOP_LIMIT, 201U,
NDP_NBR_ADV_FLAGS_S, &_loc_ll, _rem_l2,
sizeof(_rem_l2), NULL, 0U);
@ -531,7 +531,7 @@ static void test_handle_pkt__nbr_adv__invalid_icmpv6_len(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
_set_nbr_adv(&_rem_ll, &_loc_ll, 255U, 0U, NDP_NBR_ADV_FLAGS_S,
_set_nbr_adv(&_rem_ll, &_loc_ll, NDP_HOP_LIMIT, 0U, NDP_NBR_ADV_FLAGS_S,
&_loc_ll, _rem_l2,
sizeof(_rem_l2), NULL, 0U);
@ -547,7 +547,7 @@ static void test_handle_pkt__nbr_adv__invalid_tgt(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, 255U, 0U,
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, NDP_HOP_LIMIT, 0U,
NDP_NBR_ADV_FLAGS_S,
&ipv6_addr_all_routers_site_local, _rem_l2,
sizeof(_rem_l2), NULL, 0U);
@ -564,8 +564,8 @@ static void test_handle_pkt__nbr_adv__invalid_flags(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &ipv6_addr_all_nodes_link_local,
255U, 0U, NDP_NBR_ADV_FLAGS_S, &_loc_ll,
NULL, 0, NULL, 0U);
NDP_HOP_LIMIT, 0U, NDP_NBR_ADV_FLAGS_S,
&_loc_ll, NULL, 0, NULL, 0U);
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
TEST_ASSERT_MESSAGE(!gnrc_ipv6_nib_nc_iter(0, &state, &nce),
@ -578,7 +578,7 @@ static void test_handle_pkt__nbr_adv__invalid_opt_len(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, 255U, 0U,
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, NDP_HOP_LIMIT, 0U,
NDP_NBR_ADV_FLAGS_S, &_loc_ll, _rem_l2,
sizeof(_rem_l2), NULL, 0U);
ndp_opt_t *opt = (ndp_opt_t *)&_buffer[icmpv6_len];
@ -597,9 +597,10 @@ static void test_handle_pkt__nbr_adv__unspecified_src(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_adv(&ipv6_addr_unspecified, &_loc_ll, 255U, 0U,
NDP_NBR_ADV_FLAGS_S, &_loc_ll, _rem_l2,
sizeof(_rem_l2), NULL, 0U);
size_t icmpv6_len = _set_nbr_adv(&ipv6_addr_unspecified, &_loc_ll,
NDP_HOP_LIMIT, 0U, NDP_NBR_ADV_FLAGS_S,
&_loc_ll, _rem_l2, sizeof(_rem_l2),
NULL, 0U);
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
TEST_ASSERT_MESSAGE(!gnrc_ipv6_nib_nc_iter(0, &state, &nce),
@ -612,7 +613,7 @@ static void test_handle_pkt__nbr_adv__unsolicited(void)
{
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, 255U, 0U,
size_t icmpv6_len = _set_nbr_adv(&_rem_ll, &_loc_ll, NDP_HOP_LIMIT, 0U,
NDP_NBR_ADV_FLAGS_S, &_loc_ll,
_rem_l2, sizeof(_rem_l2), NULL, 0U);
@ -624,8 +625,8 @@ static void test_handle_pkt__nbr_adv__unsolicited(void)
static void test_handle_pkt__nbr_adv__aro_not_my_eui64(void)
{
size_t icmpv6_len = _set_nbr_adv(&_rem_gb, &_loc_gb, 255U, 0U, 0U, &_rem_ll,
0U, 0U, (eui64_t *)&_rem_l2,
size_t icmpv6_len = _set_nbr_adv(&_rem_gb, &_loc_gb, NDP_HOP_LIMIT, 0U, 0U,
&_rem_ll, 0U, 0U, (eui64_t *)&_rem_l2,
SIXLOWPAN_ND_STATUS_SUCCESS);
int idx;
@ -640,8 +641,8 @@ static void test_handle_pkt__nbr_adv__aro_not_my_eui64(void)
static void test_handle_pkt__nbr_adv__aro_duplicate(void)
{
size_t icmpv6_len = _set_nbr_adv(&_rem_gb, &_loc_gb, 255U, 0U, 0U, &_rem_ll,
NULL, 0U, (eui64_t *)&_loc_l2,
size_t icmpv6_len = _set_nbr_adv(&_rem_gb, &_loc_gb, NDP_HOP_LIMIT, 0U, 0U,
&_rem_ll, NULL, 0U, (eui64_t *)&_loc_l2,
SIXLOWPAN_ND_STATUS_DUP);
int idx;
@ -687,7 +688,8 @@ static void test_handle_pkt__rtr_sol(void)
gnrc_ipv6_nib_nc_t nce;
void *state = NULL;
size_t icmpv6_len = _set_rtr_sol(&_rem_ll, &_loc_ll,
255U, 0U, _rem_l2, sizeof(_rem_l2));
NDP_HOP_LIMIT, 0U,
_rem_l2, sizeof(_rem_l2));
gnrc_ipv6_nib_handle_pkt(_mock_netif, ipv6, icmpv6, icmpv6_len);
TEST_ASSERT_MESSAGE(!gnrc_ipv6_nib_nc_iter(0, &state, &nce),
@ -824,7 +826,7 @@ static void test_handle_pkt__rtr_adv__invalid_src(void)
gnrc_ipv6_nib_ft_t route;
void *state = NULL;
size_t icmpv6_len = _set_rtr_adv(&_rem_gb,
255U, 0U, true, 0U,
NDP_HOP_LIMIT, 0U, true, 0U,
_loc_l2, sizeof(_loc_l2),
32397U, &_loc_gb, _LOC_GB_PFX_LEN,
NDP_OPT_PI_FLAGS_L | NDP_OPT_PI_FLAGS_A,
@ -872,7 +874,7 @@ static void test_handle_pkt__rtr_adv__invalid_code(void)
gnrc_ipv6_nib_ft_t route;
void *state = NULL;
size_t icmpv6_len = _set_rtr_adv(&_rem_ll,
255U, 201U, true, 0U,
NDP_HOP_LIMIT, 201U, true, 0U,
_loc_l2, sizeof(_loc_l2),
32397U, &_loc_gb, _LOC_GB_PFX_LEN,
NDP_OPT_PI_FLAGS_L | NDP_OPT_PI_FLAGS_A,
@ -898,7 +900,8 @@ static void test_handle_pkt__rtr_adv__invalid_icmpv6_len(void)
_netif_exp_t exp_netif;
_get_netif_exp(_mock_netif, &exp_netif);
_set_rtr_adv(&_rem_ll, 255U, 201U, true, 0U, _loc_l2, sizeof(_loc_l2),
_set_rtr_adv(&_rem_ll, NDP_HOP_LIMIT, 201U, true, 0U,
_loc_l2, sizeof(_loc_l2),
32397U, &_loc_gb, _LOC_GB_PFX_LEN,
NDP_OPT_PI_FLAGS_L | NDP_OPT_PI_FLAGS_A,
true, &_abr_gb, _ABR_VERSION);
@ -919,7 +922,7 @@ static void test_handle_pkt__rtr_adv__invalid_opt_len(void)
gnrc_ipv6_nib_ft_t route;
void *state = NULL;
size_t icmpv6_len = _set_rtr_adv(&_rem_ll,
255U, 201U, true, 0U,
NDP_HOP_LIMIT, 201U, true, 0U,
_loc_l2, sizeof(_loc_l2),
32397U, &_loc_gb, _LOC_GB_PFX_LEN,
NDP_OPT_PI_FLAGS_L | NDP_OPT_PI_FLAGS_A,
@ -950,7 +953,8 @@ static void test_handle_pkt__rtr_adv__invalid_no_abro(void)
_netif_exp_t exp_netif;
_get_netif_exp(_mock_netif, &exp_netif);
_set_rtr_adv(&_rem_ll, 255U, 201U, true, 0U, _loc_l2, sizeof(_loc_l2),
_set_rtr_adv(&_rem_ll, NDP_HOP_LIMIT, 201U, true, 0U,
_loc_l2, sizeof(_loc_l2),
32397U, &_loc_gb, _LOC_GB_PFX_LEN,
NDP_OPT_PI_FLAGS_L | NDP_OPT_PI_FLAGS_A,
true, NULL, 0);
@ -975,7 +979,7 @@ static void test_handle_pkt__rtr_adv__success(uint8_t rtr_adv_flags,
gnrc_ipv6_nib_nc_t nce;
gnrc_ipv6_nib_ft_t route;
void *state = NULL;
size_t icmpv6_len = _set_rtr_adv(&_rem_ll, 255U, 0U,
size_t icmpv6_len = _set_rtr_adv(&_rem_ll, NDP_HOP_LIMIT, 0U,
set_rtr_adv_fields, rtr_adv_flags,
(sl2ao) ? _rem_l2 : NULL, sizeof(_rem_l2),
(mtuo) ? 32397U : 0U,