Merge pull request #11011 from miri64/ndp/enh/add-hop-limit-define
ndp: provide define for common hop-limit
This commit is contained in:
commit
83b9f72f83
@ -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
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user