Contiki 2.5
Functions | Variables
uip-ds6.c File Reference

    IPv6 data structures handling functions
    Comprises part of the Neighbor discovery (RFC 4861)
    and auto configuration (RFC 4862 )state machines
More...

#include <string.h>
#include <stdlib.h>
#include "lib/random.h"
#include "net/uip-nd6.h"
#include "net/uip-ds6.h"
#include "net/uip-packetqueue.h"
#include "net/uip-debug.h"

Go to the source code of this file.

Functions

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.
 
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
 
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 *ifaddr)
 Perform Duplicate Address Selection on one address.
 
int uip_ds6_dad_failed (uip_ds6_addr_t *ifaddr)
 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.
 
Neighbor Cache basic routines
uip_ds6_nbr_tuip_ds6_nbr_add (uip_ipaddr_t *ipaddr, uip_lladdr_t *lladdr, uint8_t isrouter, uint8_t state)
 
void uip_ds6_nbr_rm (uip_ds6_nbr_t *nbr)
 
uip_ds6_nbr_tuip_ds6_nbr_lookup (uip_ipaddr_t *ipaddr)
 
Default router list basic routines
uip_ds6_defrt_tuip_ds6_defrt_add (uip_ipaddr_t *ipaddr, unsigned long interval)
 
void uip_ds6_defrt_rm (uip_ds6_defrt_t *defrt)
 
uip_ds6_defrt_tuip_ds6_defrt_lookup (uip_ipaddr_t *ipaddr)
 
uip_ipaddr_tuip_ds6_defrt_choose (void)
 
Prefix list basic routines
uip_ds6_prefix_tuip_ds6_prefix_add (uip_ipaddr_t *ipaddr, uint8_t ipaddrlen, unsigned long interval)
 
void uip_ds6_prefix_rm (uip_ds6_prefix_t *prefix)
 
uip_ds6_prefix_tuip_ds6_prefix_lookup (uip_ipaddr_t *ipaddr, uint8_t ipaddrlen)
 
uint8_t uip_ds6_is_addr_onlink (uip_ipaddr_t *ipaddr)
 
Unicast address list basic routines
uip_ds6_addr_tuip_ds6_addr_add (uip_ipaddr_t *ipaddr, unsigned long vlifetime, uint8_t type)
 
void uip_ds6_addr_rm (uip_ds6_addr_t *addr)
 
uip_ds6_addr_tuip_ds6_addr_lookup (uip_ipaddr_t *ipaddr)
 
uip_ds6_addr_tuip_ds6_get_link_local (int8_t state)
 
uip_ds6_addr_tuip_ds6_get_global (int8_t state)
 
Multicast address list basic routines
uip_ds6_maddr_tuip_ds6_maddr_add (uip_ipaddr_t *ipaddr)
 
void uip_ds6_maddr_rm (uip_ds6_maddr_t *maddr)
 
uip_ds6_maddr_tuip_ds6_maddr_lookup (uip_ipaddr_t *ipaddr)
 
Anycast address list basic routines
uip_ds6_aaddr_tuip_ds6_aaddr_add (uip_ipaddr_t *ipaddr)
 
void uip_ds6_aaddr_rm (uip_ds6_aaddr_t *aaddr)
 
uip_ds6_aaddr_tuip_ds6_aaddr_lookup (uip_ipaddr_t *ipaddr)
 
Routing Table basic routines
uip_ds6_route_tuip_ds6_route_lookup (uip_ipaddr_t *destipaddr)
 
uip_ds6_route_tuip_ds6_route_add (uip_ipaddr_t *ipaddr, uint8_t length, uip_ipaddr_t *nexthop, uint8_t metric)
 
void uip_ds6_route_rm (uip_ds6_route_t *route)
 
void uip_ds6_route_rm_by_nexthop (uip_ipaddr_t *nexthop)
 

Variables

struct etimer uip_ds6_timer_rs
 Timer for maintenance of data structures.
 
"DS6" Data structures

number of rs already sent

uip_ds6_netif_t uip_ds6_if
 
uip_ds6_nbr_t uip_ds6_nbr_cache [UIP_DS6_NBR_NB]
 The single interface.
 
uip_ds6_defrt_t uip_ds6_defrt_list [UIP_DS6_DEFRT_NB]
 Neighor cache.
 
uip_ds6_prefix_t uip_ds6_prefix_list [UIP_DS6_PREFIX_NB]
 Default rt list.
 
uip_ds6_route_t uip_ds6_routing_table [UIP_DS6_ROUTE_NB]
 Prefix list.
 

Detailed Description

    IPv6 data structures handling functions
    Comprises part of the Neighbor discovery (RFC 4861)
    and auto configuration (RFC 4862 )state machines
Author
Mathilde Durvy mdurv.nosp@m.y@ci.nosp@m.sco.c.nosp@m.om
Julien Abeille jabei.nosp@m.lle@.nosp@m.cisco.nosp@m..com

Definition in file uip-ds6.c.