Definitions low-level network driver interface. More...

Detailed Description

#include <stdint.h>
#include <errno.h>
#include "iolist.h"
#include "net/netopt.h"
#include "kernel_defines.h"
+ Include dependency graph for netdev.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  netdev_radio_rx_info
 Received frame status information for most radios. More...
 
struct  netdev
 Structure to hold driver state. More...
 
struct  netdev_driver
 Structure to hold driver interface -> function mapping. More...
 

Typedefs

typedef struct netdev netdev_t
 Forward declaration for netdev struct.
 
typedef void(* netdev_event_cb_t) (netdev_t *dev, netdev_event_t event)
 Event callback for signaling event to upper layers. More...
 
typedef struct netdev_driver netdev_driver_t
 Structure to hold driver interface -> function mapping. More...
 

Enumerations

enum  netdev_event_t {
  NETDEV_EVENT_ISR, NETDEV_EVENT_RX_STARTED, NETDEV_EVENT_RX_COMPLETE, NETDEV_EVENT_TX_STARTED,
  NETDEV_EVENT_TX_COMPLETE, NETDEV_EVENT_TX_COMPLETE_DATA_PENDING, NETDEV_EVENT_TX_NOACK, NETDEV_EVENT_TX_MEDIUM_BUSY,
  NETDEV_EVENT_LINK_UP, NETDEV_EVENT_LINK_DOWN, NETDEV_EVENT_TX_TIMEOUT, NETDEV_EVENT_RX_TIMEOUT,
  NETDEV_EVENT_CRC_ERROR, NETDEV_EVENT_FHSS_CHANGE_CHANNEL, NETDEV_EVENT_CAD_DONE
}
 Possible event types that are send from the device driver to the upper layer. More...
 

Functions

static void netdev_register (struct netdev *dev, netdev_type_t type, uint8_t index)
 Register a device with netdev. More...
 
static int netdev_get_notsup (netdev_t *dev, netopt_t opt, void *value, size_t max_len)
 Convenience function for declaring get() as not supported in general. More...
 
static int netdev_set_notsup (netdev_t *dev, netopt_t opt, const void *value, size_t value_len)
 Convenience function for declaring set() as not supported in general. More...
 
static void netdev_trigger_event_isr (netdev_t *netdev)
 Informs netdev there was an interrupt request from the network device. More...
 

Network device types

Attention
When implementing a new type that is able to carry IPv6, have a look if you need to update Stack-independent helpers for IPv6 over X as well.
enum  {
  NETDEV_TYPE_UNKNOWN, NETDEV_TYPE_TEST, NETDEV_TYPE_RAW, NETDEV_TYPE_ETHERNET,
  NETDEV_TYPE_IEEE802154, NETDEV_TYPE_BLE, NETDEV_TYPE_CC110X, NETDEV_TYPE_LORA,
  NETDEV_TYPE_NRFMIN, NETDEV_TYPE_SLIP, NETDEV_TYPE_ESP_NOW
}
 
enum  netdev_type_t {
  NETDEV_ANY = 0, NETDEV_AT86RF215, NETDEV_AT86RF2XX, NETDEV_CC2538,
  NETDEV_DOSE, NETDEV_ENC28J60, NETDEV_KW41ZRF, NETDEV_MRF24J40,
  NETDEV_NRF802154
}
 Driver types for netdev. More...