Loading...
Searching...
No Matches
ext.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2015 Martine Lenders <mlenders@inf.fu-berlin.de>
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser General
5 * Public License v2.1. See the file LICENSE in the top level directory for
6 * more details.
7 */
8
22#ifndef NET_GNRC_IPV6_EXT_H
23#define NET_GNRC_IPV6_EXT_H
24
25#include <stdbool.h>
26#include <stdint.h>
27#include <stdlib.h>
28
29#include "net/gnrc/pkt.h"
30#include "net/ipv6/ext.h"
31#include "timex.h"
32
33#ifdef MODULE_GNRC_IPV6_EXT_RH
35#endif
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
54#ifndef CONFIG_GNRC_IPV6_EXT_FRAG_SEND_SIZE
55#define CONFIG_GNRC_IPV6_EXT_FRAG_SEND_SIZE (1U)
56#endif
57
65#ifndef CONFIG_GNRC_IPV6_EXT_FRAG_RBUF_SIZE
66#define CONFIG_GNRC_IPV6_EXT_FRAG_RBUF_SIZE (1U)
67#endif
68
77#ifndef CONFIG_GNRC_IPV6_EXT_FRAG_LIMITS_POOL_SIZE
78#define CONFIG_GNRC_IPV6_EXT_FRAG_LIMITS_POOL_SIZE (CONFIG_GNRC_IPV6_EXT_FRAG_RBUF_SIZE * 2U)
79#endif
80
86#ifndef CONFIG_GNRC_IPV6_EXT_FRAG_RBUF_TIMEOUT_US
87#define CONFIG_GNRC_IPV6_EXT_FRAG_RBUF_TIMEOUT_US (10U * US_PER_SEC)
88#endif
89
99#ifdef DOXYGEN
100#define CONFIG_GNRC_IPV6_EXT_FRAG_RBUF_DO_NOT_OVERRIDE
101#endif
102
118 uint8_t nh, size_t size);
119
120#if defined(MODULE_GNRC_IPV6_EXT) || defined(DOXYGEN)
153 uint8_t *protnum);
154
184 uint8_t *protnum);
185#else /* defined(MODULE_GNRC_IPV6_EXT) || defined(DOXYGEN) */
186/* NOPs to make the usage code more readable */
187#define gnrc_ipv6_ext_process_hopopt(pkt, protnum) (pkt)
188#define gnrc_ipv6_ext_process_all(pkt, protnum) (pkt)
189#endif /* defined(MODULE_GNRC_IPV6_EXT) || defined(DOXYGEN) */
190
191#ifdef __cplusplus
192}
193#endif
194
195#endif /* NET_GNRC_IPV6_EXT_H */
GNRC routing extension header definitions.
gnrc_pktsnip_t * gnrc_ipv6_ext_process_hopopt(gnrc_pktsnip_t *pkt, uint8_t *protnum)
Processes a packet's payload as hop-by-hop option if protnum is pointing to a value equal to PROTNUM_...
gnrc_pktsnip_t * gnrc_ipv6_ext_process_all(gnrc_pktsnip_t *pkt, uint8_t *protnum)
Processes a packet's extension headers after a potential initial hop-by-hop header.
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.
IPv6 extension header definitions.
General definitions for network packets and their helper functions.
Type to represent parts (either headers or payload) of a packet, called snips.
Definition pkt.h:108
Utility library for comparing and computing timestamps.