Merge pull request #4124 from cgundogan/pr/netif/xtimer_valid_timeout

netif: use xtimer for gnrc_ipv6_netif_addr_t::valid_timeout
This commit is contained in:
Martine Lenders 2015-10-26 12:23:05 +01:00
commit 5b37e1ad0c
3 changed files with 9 additions and 5 deletions

View File

@ -31,6 +31,7 @@
#include "net/ipv6.h" #include "net/ipv6.h"
#include "net/ipv6/addr.h" #include "net/ipv6/addr.h"
#include "vtimer.h" #include "vtimer.h"
#include "xtimer.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@ -258,7 +259,8 @@ typedef struct {
/** /**
* @brief Validity timeout timer. * @brief Validity timeout timer.
*/ */
vtimer_t valid_timeout; xtimer_t valid_timeout;
msg_t valid_timeout_msg; /**< msg_t for gnrc_ipv6_netif_addr_t::valid_timeout */
/** /**
* @} * @}
*/ */

View File

@ -151,6 +151,9 @@ static ipv6_addr_t *_add_addr_to_entry(gnrc_ipv6_netif_t *entry, const ipv6_addr
* source address. */ * source address. */
} }
tmp_addr->valid_timeout_msg.type = GNRC_NDP_MSG_ADDR_TIMEOUT;
tmp_addr->valid_timeout_msg.content.ptr = (char *) &tmp_addr->addr;
return &(tmp_addr->addr); return &(tmp_addr->addr);
} }

View File

@ -750,11 +750,10 @@ bool gnrc_ndp_internal_pi_opt_handle(kernel_pid_t iface, uint8_t icmpv6_type,
} }
netif_addr->valid = byteorder_ntohl(pi_opt->valid_ltime); netif_addr->valid = byteorder_ntohl(pi_opt->valid_ltime);
netif_addr->preferred = byteorder_ntohl(pi_opt->pref_ltime); netif_addr->preferred = byteorder_ntohl(pi_opt->pref_ltime);
vtimer_remove(&netif_addr->valid_timeout);
if (netif_addr->valid != UINT32_MAX) { if (netif_addr->valid != UINT32_MAX) {
vtimer_set_msg(&netif_addr->valid_timeout, xtimer_set_msg(&netif_addr->valid_timeout,
timex_set(byteorder_ntohl(pi_opt->valid_ltime), 0), (byteorder_ntohl(pi_opt->valid_ltime) * SEC_IN_USEC),
thread_getpid(), GNRC_NDP_MSG_ADDR_TIMEOUT, &netif_addr->addr); &netif_addr->valid_timeout_msg, thread_getpid());
} }
/* TODO: preferred lifetime for address auto configuration */ /* TODO: preferred lifetime for address auto configuration */
/* on-link flag MUST stay set if it was */ /* on-link flag MUST stay set if it was */