Definition for GNRC's network interfaces. More...
Definition for GNRC's network interfaces.
Definition in file netif.h.
#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
#include "sched.h"
#include "msg.h"
#include "event.h"
#include "net/ipv6/addr.h"
#include "net/gnrc/netapi.h"
#include "net/gnrc/pkt.h"
#include "net/gnrc/netif/conf.h"
#include "net/gnrc/netif/flags.h"
#include "net/ndp.h"
#include "net/netdev.h"
#include "net/netopt.h"
#include "rmutex.h"
#include "net/netif.h"
Go to the source code of this file.
Data Structures | |
struct | gnrc_netif_t |
Representation of a network interface. More... | |
struct | gnrc_netif_ops |
Typedefs | |
typedef struct gnrc_netif_ops | gnrc_netif_ops_t |
Operations to an interface. | |
Enumerations | |
enum | gnrc_netif_bus_t { GNRC_NETIF_BUS_IPV6, GNRC_NETIF_BUS_NUMOF } |
Per-Interface Event Message Buses. More... | |
enum | gnrc_ipv6_event_t { GNRC_IPV6_EVENT_ADDR_VALID } |
Event types for GNRC_NETIF_BUS_IPV6 per-interface message bus. More... | |
Functions | |
void | gnrc_netif_init_devs (void) |
Initialize all available network interfaces. More... | |
int | gnrc_netif_create (gnrc_netif_t *netif, char *stack, int stacksize, char priority, const char *name, netdev_t *dev, const gnrc_netif_ops_t *ops) |
Creates a network interface. More... | |
unsigned | gnrc_netif_numof (void) |
Get number of network interfaces actually allocated. More... | |
static bool | gnrc_netif_highlander (void) |
Check if there can only be one gnrc_netif_t interface. More... | |
gnrc_netif_t * | gnrc_netif_iter (const gnrc_netif_t *prev) |
Iterate over all network interfaces. More... | |
gnrc_netif_t * | gnrc_netif_get_by_pid (kernel_pid_t pid) |
Get network interface by PID. More... | |
static int | gnrc_netif_ipv6_addrs_get (const gnrc_netif_t *netif, ipv6_addr_t *addrs, size_t max_len) |
Gets the (unicast on anycast) IPv6 address of an interface (if IPv6 is supported) More... | |
static int | gnrc_netif_ipv6_addr_add (const gnrc_netif_t *netif, ipv6_addr_t *addr, unsigned pfx_len, uint8_t flags) |
Adds an (unicast or anycast) IPv6 address to an interface (if IPv6 is supported) More... | |
static int | gnrc_netif_ipv6_addr_remove (const gnrc_netif_t *netif, ipv6_addr_t *addr) |
Removes a (unicast or anycast) IPv6 address from an interface (if IPv6 is supported) More... | |
static int | gnrc_netif_ipv6_groups_get (const gnrc_netif_t *netif, ipv6_addr_t *groups, size_t max_len) |
Gets the IPv6 multicast groups an interface is joined to (if IPv6 is supported) More... | |
static int | gnrc_netif_ipv6_group_join (const gnrc_netif_t *netif, ipv6_addr_t *group) |
Joins an IPv6 multicast group on an interface (if IPv6 is supported) More... | |
static int | gnrc_netif_ipv6_group_leave (const gnrc_netif_t *netif, ipv6_addr_t *group) |
Leaves an IPv6 multicast group on an interface (if IPv6 is supported) More... | |
void | gnrc_netif_default_init (gnrc_netif_t *netif) |
Default operation for gnrc_netif_ops_t::init() More... | |
int | gnrc_netif_get_from_netdev (gnrc_netif_t *netif, gnrc_netapi_opt_t *opt) |
Default operation for gnrc_netif_ops_t::get() More... | |
int | gnrc_netif_set_from_netdev (gnrc_netif_t *netif, const gnrc_netapi_opt_t *opt) |
Default operation for gnrc_netif_ops_t::set() More... | |
static char * | gnrc_netif_addr_to_str (const uint8_t *addr, size_t addr_len, char *out) |
Converts a hardware address to a human readable string. More... | |
static size_t | gnrc_netif_addr_from_str (const char *str, uint8_t *out) |
Parses a string of colon-separated hexadecimals to a hardware address. More... | |
static int | gnrc_netif_send (gnrc_netif_t *netif, gnrc_pktsnip_t *pkt) |
Send a GNRC packet via a given gnrc_netif_t interface. More... | |
static msg_bus_t * | gnrc_netif_get_bus (gnrc_netif_t *netif, gnrc_netif_bus_t type) |
Get a message bus of a given gnrc_netif_t interface. More... | |