Contiki-NG
|
IPv6 data structure manipulation. More...
#include <string.h>
#include <stdlib.h>
#include <stddef.h>
#include "lib/random.h"
#include "net/ipv6/uip-nd6.h"
#include "net/ipv6/uip-ds6-nbr.h"
#include "net/ipv6/uip-ds6.h"
#include "net/ipv6/multicast/uip-mcast6.h"
#include "net/ipv6/uip-packetqueue.h"
#include "sys/log.h"
Go to the source code of this file.
Functions | |
const uip_ip6addr_t * | uip_ds6_default_prefix () |
Retrieve the Default IPv6 prefix. More... | |
void | uip_ds6_set_default_prefix (const uip_ip6addr_t *prefix) |
Set the Default IPv6 prefix. More... | |
void | uip_ds6_init (void) |
Initialize data structures. | |
void | uip_ds6_periodic (void) |
Periodic processing of data structures. | |
uint8_t | uip_ds6_list_loop (uip_ds6_element_t *list, uint8_t size, uint16_t elementsize, uip_ipaddr_t *ipaddr, uint8_t ipaddrlen, uip_ds6_element_t **out_element) |
Generic loop routine on an abstract data structure, which generalizes all data structures used in DS6. | |
uip_ds6_addr_t * | uip_ds6_addr_add (uip_ipaddr_t *ipaddr, unsigned long vlifetime, uint8_t type) |
Add a unicast address to the interface. | |
void | uip_ds6_select_src (uip_ipaddr_t *src, uip_ipaddr_t *dst) |
Source address selection, see RFC 3484. | |
void | uip_ds6_set_addr_iid (uip_ipaddr_t *ipaddr, uip_lladdr_t *lladdr) |
set the last 64 bits of an IP address based on the MAC address | |
void | uip_ds6_set_lladdr_from_iid (uip_lladdr_t *lladdr, const uip_ipaddr_t *ipaddr) |
Build a link-layer address from an IPv6 address based on its UUID64. | |
uint8_t | get_match_length (uip_ipaddr_t *src, uip_ipaddr_t *dst) |
Get the number of matching bits of two addresses. | |
void | uip_ds6_dad (uip_ds6_addr_t *addr) |
Perform Duplicate Address Selection on one address. | |
int | uip_ds6_dad_failed (uip_ds6_addr_t *addr) |
Callback when DAD failed. | |
void | uip_ds6_send_rs (void) |
Send periodic RS to find router. | |
uint32_t | uip_ds6_compute_reachable_time (void) |
Compute the reachable time based on base reachable time, see RFC 4861. | |
Variables | |
struct etimer | uip_ds6_timer_periodic |
Timer for maintenance of data structures. | |
struct etimer | uip_ds6_timer_rs |
RS timer, to schedule RS sending. | |
static uint8_t | rscount |
number of rs already sent | |
"DS6" Data structures | |
uip_ds6_netif_t | uip_ds6_if |
The single interface. | |
uip_ds6_prefix_t | uip_ds6_prefix_list [UIP_DS6_PREFIX_NB] |
Prefix list. | |
uint8_t | uip_ds6_addr_size |
uint8_t | uip_ds6_netif_addr_list_offset |
IPv6 data structure manipulation.
Comprises part of the Neighbor discovery (RFC 4861) and auto configuration (RFC 4862) state machines.
Definition in file uip-ds6.c.