The friendly Operating System for the Internet of Things

GNRC's IPv6 implementation. More...

Detailed Description

The IPv6 control thread understands messages of type


 GNRC's implementation of ICMPv6.
 IPv6 address blacklist
 This refuses IPv6 addresses that are defined in this list.
 IPv6 address whitelist
 This allows you to only accept IPv6 addresses that are defined in this list.
 IPv6 extension headers.
 Implementation of IPv6 extension headers.
 IPv6 header defintions
 IPv6 neighbor cache
 Translates IPv6 addresses to link layer addresses.
 IPv6 network interfaces
 IPv6 specific information on Network interfaces.


file  gnrc/ipv6.h
 Definitions for GNRC's IPv6 implementation.


 Default stack size to use for the IPv6 thread.
 Default priority for the IPv6 thread.
 Default message queue size to use for the IPv6 thread.
 Add a static IPv6 link local address to any network interface. More...


kernel_pid_t gnrc_ipv6_init (void)
 Initialization of the IPv6 thread. More...
void gnrc_ipv6_demux (kernel_pid_t iface, gnrc_pktsnip_t *current, gnrc_pktsnip_t *pkt, uint8_t nh)
 Demultiplexes a packet according to nh.
ipv6_hdr_tgnrc_ipv6_get_header (gnrc_pktsnip_t *pkt)
 Get the IPv6 header from a given list of gnrc_pktsnip_t. More...


kernel_pid_t gnrc_ipv6_pid
 The PID to the IPv6 thread. More...

Macro Definition Documentation


This macro allows to specify a certain link local IPv6 address to be assigned to a network interface on startup, which might be handy for testing. Note: a) a interface will keep its auto-generated link local address, too b) the address is incremented by 1, if multiple interfaces are present

To use the macro just add it to CFLAGS in the application's Makefile, like:

1 IPV6_STATIC_LLADDR ?= '"fe80::cafe:cafe:cafe:1"'

Definition at line 87 of file gnrc/ipv6.h.

Function Documentation

ipv6_hdr_t* gnrc_ipv6_get_header ( gnrc_pktsnip_t pkt)

This function may be used with e.g. a pointer to a (full) UDP datagram.

[in]pktThe pointer to the first gnrc_pktsnip_t of the packet.
A pointer to the ipv6_hdr_t of the packet.
NULL if the packet does not contain an IPv6 header.
kernel_pid_t gnrc_ipv6_init ( void  )
The PID to the IPv6 thread, on success.
a negative errno on error.
-EOVERFLOW, if there are too many threads running already
-EEXIST, if IPv6 was already initialized.

Variable Documentation

kernel_pid_t gnrc_ipv6_pid
Use gnrc_ipv6_init() to initialize. Do not set by hand.

This variable is preferred for IPv6 internal communication only. Please use Network protocol registry for external communication.