Interface definition for the global network buffer. More...
Interface definition for the global network buffer.
Network devices and layers can allocate space for packets here.
Definition in file pktbuf.h.
#include <stdbool.h>#include <stdlib.h>#include <string.h>#include "cpu_conf.h"#include "mutex.h"#include "net/gnrc/pkt.h"#include "net/gnrc/neterr.h"#include "net/gnrc/nettype.h"#include "utlist.h"
Include dependency graph for pktbuf.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Macros | |
| #define | CONFIG_GNRC_PKTBUF_SIZE (6144) |
| Maximum size of the static packet buffer. More... | |
| #define | CONFIG_GNRC_PKTBUF_CHECK_USE_AFTER_FREE (0) |
| Enable use-after-free/out of bounds write detection in gnrc_pktbuf. | |
| #define | GNRC_PKTBUF_CANARY (0x55) |
| Canary value for free pktbuf memory when. More... | |
Functions | |
| void | gnrc_pktbuf_init (void) |
| Initializes packet buffer module. | |
| gnrc_pktsnip_t * | gnrc_pktbuf_add (gnrc_pktsnip_t *next, const void *data, size_t size, gnrc_nettype_t type) |
| Adds a new gnrc_pktsnip_t and its packet to the packet buffer. More... | |
| gnrc_pktsnip_t * | gnrc_pktbuf_mark (gnrc_pktsnip_t *pkt, size_t size, gnrc_nettype_t type) |
Marks the first size bytes in a received packet with a new packet snip that is appended to the packet. More... | |
| int | gnrc_pktbuf_realloc_data (gnrc_pktsnip_t *pkt, size_t size) |
Reallocates gnrc_pktsnip_t::data of pkt in the packet buffer, without changing the content. More... | |
| void | gnrc_pktbuf_hold (gnrc_pktsnip_t *pkt, unsigned int num) |
Increases gnrc_pktsnip_t::users of pkt atomically. More... | |
| void | gnrc_pktbuf_release_error (gnrc_pktsnip_t *pkt, uint32_t err) |
Decreases gnrc_pktsnip_t::users of pkt atomically and removes it if it reaches 0 and reports a possible error through an error code, if Error reporting is included. More... | |
| static void | gnrc_pktbuf_release (gnrc_pktsnip_t *pkt) |
Decreases gnrc_pktsnip_t::users of pkt atomically and removes it if it reaches 0 and reports GNRC_NETERR_SUCCESS. More... | |
| gnrc_pktsnip_t * | gnrc_pktbuf_start_write (gnrc_pktsnip_t *pkt) |
| Must be called once before there is a write operation on a packet snip in a thread. More... | |
| gnrc_pktsnip_t * | gnrc_pktbuf_remove_snip (gnrc_pktsnip_t *pkt, gnrc_pktsnip_t *snip) |
| Deletes a snip from a packet and the packet buffer. More... | |
| gnrc_pktsnip_t * | gnrc_pktbuf_reverse_snips (gnrc_pktsnip_t *pkt) |
| Reverses snip order of a packet in a write-protected manner. More... | |
| int | gnrc_pktbuf_merge (gnrc_pktsnip_t *pkt) |
| Merge pktsnip chain to single pktsnip. More... | |
| void | gnrc_pktbuf_stats (void) |
| Prints some statistics about the packet buffer to stdout. More... | |
| bool | gnrc_pktbuf_is_empty (void) |
| Checks if packet buffer is empty. More... | |
| bool | gnrc_pktbuf_is_sane (void) |
| Checks if the implementation's internal invariants still uphold. More... | |