IPv6 extension headers.

Implementation of IPv6 extension headers. More...

Detailed Description

Implementation of IPv6 extension headers.

See also
RFC 2460, section 4

Files

file  gnrc/ipv6/ext.h
 Definititions for IPv6 extension headers.
 

Functions

void gnrc_ipv6_ext_demux (kernel_pid_t iface, gnrc_pktsnip_t *current, gnrc_pktsnip_t *pkt, uint8_t nh)
 Demultiplex extension headers according to nh. More...
 
gnrc_pktsnip_tgnrc_ipv6_ext_build (gnrc_pktsnip_t *ipv6, gnrc_pktsnip_t *next, uint8_t nh, size_t size)
 Builds an extension header for sending. More...
 

Function Documentation

◆ gnrc_ipv6_ext_build()

gnrc_pktsnip_t* gnrc_ipv6_ext_build ( gnrc_pktsnip_t ipv6,
gnrc_pktsnip_t next,
uint8_t  nh,
size_t  size 
)

Builds an extension header for sending.

Parameters
[in]ipv6The IPv6 header. Can be NULL.
[in]nextThe next header. Must be a successor to ipv6 if it is not NULL.
[in]nhProtocol Numbers of the next header.
[in]sizeSize of the extension header.
Returns
The extension header on success.
NULL, on error.

◆ gnrc_ipv6_ext_demux()

void gnrc_ipv6_ext_demux ( kernel_pid_t  iface,
gnrc_pktsnip_t current,
gnrc_pktsnip_t pkt,
uint8_t  nh 
)

Demultiplex extension headers according to nh.

About current and pkt:

                current     pkt
                |           |
                v           v

IPv6 <- IPv6_EXT <- IPv6_EXT <- UNDEF

This situation may happen when the packet has a source routing extension header (RFC 6554), and the packet is forwarded from an interface to another.