48 #ifdef NETSTACK_CONF_ROUTING 49 #define NETSTACK_ROUTING NETSTACK_CONF_ROUTING 51 #if ROUTING_CONF_RPL_LITE 52 #define NETSTACK_ROUTING rpl_lite_driver 53 #elif ROUTING_CONF_RPL_CLASSIC 54 #define NETSTACK_ROUTING rpl_classic_driver 55 #elif ROUTING_CONF_NULLROUTING 56 #define NETSTACK_ROUTING nullrouting_driver 58 #error Unknown ROUTING configuration 64 #ifdef NETSTACK_CONF_NETWORK 65 #define NETSTACK_NETWORK NETSTACK_CONF_NETWORK 67 #if NETSTACK_CONF_WITH_IPV6 68 #define NETSTACK_NETWORK sicslowpan_driver 69 #elif NETSTACK_CONF_WITH_NULLNET 70 #define NETSTACK_NETWORK nullnet_driver 72 #error Unknown NET configuration 78 #ifdef NETSTACK_CONF_MAC 79 #define NETSTACK_MAC NETSTACK_CONF_MAC 81 #if MAC_CONF_WITH_NULLMAC 82 #define NETSTACK_MAC nullmac_driver 83 #elif MAC_CONF_WITH_CSMA 84 #define NETSTACK_MAC csma_driver 85 #elif MAC_CONF_WITH_TSCH 86 #define NETSTACK_MAC tschmac_driver 87 #elif MAC_CONF_WITH_BLE 88 #define NETSTACK_MAC ble_l2cap_driver 90 #error Unknown MAC configuration 95 #ifdef NETSTACK_CONF_RADIO 96 #define NETSTACK_RADIO NETSTACK_CONF_RADIO 98 #define NETSTACK_RADIO nullradio_driver 103 #ifdef NETSTACK_CONF_FRAMER 104 #define NETSTACK_FRAMER NETSTACK_CONF_FRAMER 106 #define NETSTACK_FRAMER framer_802154 127 uint8_t (*
output)(
const linkaddr_t *localdest);
134 extern const struct framer NETSTACK_FRAMER;
136 void netstack_init(
void);
141 enum netstack_ip_action {
142 NETSTACK_IP_PROCESS = 0,
143 NETSTACK_IP_DROP = 1,
146 enum netstack_ip_callback_type {
147 NETSTACK_IP_INPUT = 0,
148 NETSTACK_IP_OUTPUT = 1,
151 struct netstack_ip_packet_processor {
152 struct netstack_ip_packet_processor *next;
153 enum netstack_ip_action (*process_input)(void);
154 enum netstack_ip_action (*process_output)(
const linkaddr_t * localdest);
159 enum netstack_ip_action netstack_process_ip_callback(uint8_t type,
const linkaddr_t *localdest);
161 void netstack_ip_packet_processor_add(
struct netstack_ip_packet_processor *p);
162 void netstack_ip_packet_processor_remove(
struct netstack_ip_packet_processor *p);
166 struct netstack_sniffer {
167 struct netstack_sniffer *next;
168 void (*input_callback)(void);
169 void (*output_callback)(
int mac_status);
172 #define NETSTACK_SNIFFER(name, input_callback, output_callback) \ 173 static struct netstack_sniffer name = { NULL, input_callback, output_callback } 175 void netstack_sniffer_add(
struct netstack_sniffer *s);
176 void netstack_sniffer_remove(
struct netstack_sniffer *s);
The structure of a MAC protocol driver in Contiki.
Header file for the radio API
Header file for the link-layer address representation
The structure of a device driver for a radio in Contiki.
The structure of a network driver in Contiki.
void(* init)(void)
Initialize the network driver.
void(* input)(void)
Callback for getting notified of incoming packet in packetbuf.
A MAC framer is responsible for constructing and parsing the header in MAC frames...
The structure of a routing protocol driver.
uint8_t(* output)(const linkaddr_t *localdest)
Output funtion, sends from uipbuf.