opendsme.h
1 /*
2  * Copyright (C) 2022 HAW Hamburg
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
187 #ifndef OPENDSME_OPENDSME_H
188 #define OPENDSME_OPENDSME_H
189 
190 #include <stdbool.h>
191 #include "byteorder.h"
192 #include "net/gnrc/netif.h"
193 #include "net/gnrc/pktbuf.h"
194 
198 #ifndef CONFIG_OPENDSME_GNRC_PKTSNIP_TYPE
199 #define CONFIG_OPENDSME_GNRC_PKTSNIP_TYPE GNRC_NETTYPE_UNDEF
200 #endif
201 
205 #ifndef CONFIG_OPENDSME_MAX_NEIGHBOURS
206 #define CONFIG_OPENDSME_MAX_NEIGHBOURS (20U)
207 #endif
208 
218 #ifndef CONFIG_OPENDSME_MAX_LOST_BEACONS
219 #define CONFIG_OPENDSME_MAX_LOST_BEACONS (8U)
220 #endif
221 
229 #ifndef CONFIG_OPENDSME_CAP_QUEUE_SIZE
230 #define CONFIG_OPENDSME_CAP_QUEUE_SIZE (8U)
231 #endif
232 
241 #ifndef CONFIG_OPENDSME_CFP_QUEUE_SIZE
242 #define CONFIG_OPENDSME_CFP_QUEUE_SIZE (22U)
243 #endif
244 
245 #ifdef __cplusplus
246 extern "C" {
247 #endif
248 
252 typedef struct {
254  uint8_t superframe_id;
255  uint8_t slot_id;
256  uint8_t channel_id;
257  bool tx;
259 
275 int gnrc_netif_opendsme_create(gnrc_netif_t *netif, char *stack, int stacksize,
276  char priority, const char *name, netdev_t *dev);
277 
278 #ifdef __cplusplus
279 }
280 #endif
281 
282 #endif /* OPENDSME_OPENDSME_H */
283 
Functions to work with different byte orders.
Definition for GNRC's network interfaces.
int gnrc_netif_opendsme_create(gnrc_netif_t *netif, char *stack, int stacksize, char priority, const char *name, netdev_t *dev)
Creates an openDSME network interface.
Interface definition for the global network buffer.
Representation of a network interface.
Definition: netif.h:135
DSME Allocation descriptor.
Definition: opendsme.h:252
bool tx
whether the GTS is TX
Definition: opendsme.h:257
uint8_t slot_id
slot ID
Definition: opendsme.h:255
uint8_t channel_id
channel ID
Definition: opendsme.h:256
uint8_t superframe_id
superframe ID
Definition: opendsme.h:254
network_uint16_t addr
neighbour address
Definition: opendsme.h:253
Structure to hold driver state.
Definition: netdev.h:365
A 16 bit integer in big endian aka network byte order.
Definition: byteorder.h:74