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 100 #define nullradio_driver_max_payload_len ((unsigned short)-1) 105 #ifdef NETSTACK_CONF_FRAMER 106 #define NETSTACK_FRAMER NETSTACK_CONF_FRAMER 108 #define NETSTACK_FRAMER framer_802154 113 #define NETSTACK_RADIO_MAX_PAYLOAD_LEN_XX(radio) radio##_max_payload_len 114 #define NETSTACK_RADIO_MAX_PAYLOAD_LEN_X(radio) NETSTACK_RADIO_MAX_PAYLOAD_LEN_XX(radio) 115 #define NETSTACK_RADIO_MAX_PAYLOAD_LEN NETSTACK_RADIO_MAX_PAYLOAD_LEN_X(NETSTACK_RADIO) 135 uint8_t (*
output)(
const linkaddr_t *localdest);
142 extern const struct framer NETSTACK_FRAMER;
144 void netstack_init(
void);
149 enum netstack_ip_action {
150 NETSTACK_IP_PROCESS = 0,
151 NETSTACK_IP_DROP = 1,
154 enum netstack_ip_callback_type {
155 NETSTACK_IP_INPUT = 0,
156 NETSTACK_IP_OUTPUT = 1,
159 struct netstack_ip_packet_processor {
160 struct netstack_ip_packet_processor *next;
161 enum netstack_ip_action (*process_input)(void);
162 enum netstack_ip_action (*process_output)(
const linkaddr_t * localdest);
167 enum netstack_ip_action netstack_process_ip_callback(uint8_t type,
const linkaddr_t *localdest);
169 void netstack_ip_packet_processor_add(
struct netstack_ip_packet_processor *p);
170 void netstack_ip_packet_processor_remove(
struct netstack_ip_packet_processor *p);
174 struct netstack_sniffer {
175 struct netstack_sniffer *next;
176 void (*input_callback)(void);
177 void (*output_callback)(
int mac_status);
180 #define NETSTACK_SNIFFER(name, input_callback, output_callback) \ 181 static struct netstack_sniffer name = { NULL, input_callback, output_callback } 183 void netstack_sniffer_add(
struct netstack_sniffer *s);
184 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.