uip-nd6.c File Reference

Neighbor discovery (RFC 4861) More...

#include <string.h>
#include <inttypes.h>
#include "net/ipv6/uip-icmp6.h"
#include "net/ipv6/uip-nd6.h"
#include "net/ipv6/uip-ds6.h"
#include "net/ipv6/uip-nameserver.h"
#include "lib/random.h"
#include "sys/log.h"

Go to the source code of this file.


#define ND6_OPT(opt)   ((unsigned char *)(UIP_ICMP_PAYLOAD + (opt)))
 Pointer to ND option.
Pointers to the header structures.
#define UIP_ND6_RS_BUF   ((uip_nd6_rs *)UIP_ICMP_PAYLOAD)
#define UIP_ND6_RA_BUF   ((uip_nd6_ra *)UIP_ICMP_PAYLOAD)
#define UIP_ND6_NS_BUF   ((uip_nd6_ns *)UIP_ICMP_PAYLOAD)
#define UIP_ND6_NA_BUF   ((uip_nd6_na *)UIP_ICMP_PAYLOAD)


static int extract_lladdr_from_llao_aligned (uip_lladdr_t *dest)
 Pointer to a prefix list entry.
void uip_nd6_rs_output (void)
 Neighbor Solicitation Processing. More...
void ra_input (void)
 Process a Router Advertisement. More...
void uip_nd6_init ()
 Initialise the uIP ND core.


static uint8_t * nd6_opt_llao
 Offset from the end of the icmpv6 header to the option in uip_buf.
static uip_ds6_nbr_tnbr
 Pointer to llao option in uip_buf.
static uip_ds6_addr_taddr
 Pointer to a nbr cache entry.
static uip_ds6_defrt_tdefrt
 Pointer to an interface address.
static uip_nd6_opt_prefix_infond6_opt_prefix_info
 Pointer to a router list entry.
static uip_ipaddr_t ipaddr
 Pointer to prefix information option in uip_buf.

Detailed Description

Neighbor discovery (RFC 4861)

Mathilde Durvy
Julien Abeille

Definition in file uip-nd6.c.

Function Documentation

◆ ra_input()

void ra_input ( void  )

Process a Router Advertisement.

  • Possible actions when receiving a RA: add router to router list, recalculate reachable time, update link hop limit, update retrans timer.
  • If MTU option: update MTU.
  • If SLLAO option: update entry in neighbor cache
  • If prefix option: start autoconf, add prefix to prefix list

Definition at line 864 of file uip-nd6.c.