tinydtls  0.8.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
netq.h
Go to the documentation of this file.
1 /* netq.h -- Simple packet queue
2  *
3  * Copyright (C) 2010--2012 Olaf Bergmann <bergmann@tzi.org>
4  *
5  * This file is part of the library tinyDTLS. Please see the file
6  * LICENSE for terms of use.
7  */
8 
9 #ifndef _DTLS_NETQ_H_
10 #define _DTLS_NETQ_H_
11 
12 #include "tinydtls.h"
13 #include "global.h"
14 #include "dtls.h"
15 #include "dtls_time.h"
16 
25 #ifndef NETQ_MAXCNT
26 #ifdef DTLS_ECC
27 #define NETQ_MAXCNT 5
28 #elif defined(DTLS_PSK)
29 #define NETQ_MAXCNT 3
30 #endif
31 #endif
32 
36 typedef unsigned char netq_packet_t[DTLS_MAX_BUF];
37 
38 typedef struct netq_t {
39  struct netq_t *next;
40 
42  unsigned int timeout;
45  uint16_t epoch;
46  uint8_t type;
47  unsigned char retransmit_cnt;
49  size_t length;
50 #ifndef WITH_CONTIKI
51  unsigned char data[];
52 #else
54 #endif
55 } netq_t;
56 
57 #ifndef WITH_CONTIKI
58 static inline void netq_init()
59 { }
60 #else
61 void netq_init();
62 #endif
63 
73 int netq_insert_node(list_t queue, netq_t *node);
74 
77 void netq_node_free(netq_t *node);
78 
80 void netq_delete_all(list_t queue);
81 
83 netq_t *netq_node_new(size_t size);
84 
89 netq_t *netq_head(list_t queue);
90 
92 void netq_remove(list_t queue, netq_t *p);
93 
100 
103 #endif /* _DTLS_NETQ_H_ */
unsigned char retransmit_cnt
Definition: netq.h:47
public tinydtls API
struct netq_t * next
Definition: netq.h:39
netq_t * netq_next(netq_t *p)
Definition: netq.c:88
unsigned char data[]
Definition: netq.h:51
Definition: netq.h:38
netq_t * netq_node_new(size_t size)
Definition: netq.c:111
uint32_t clock_time_t
Definition: dtls_time.h:55
void ** list_t
Definition: t_list.h:79
unsigned char netq_packet_t[DTLS_MAX_BUF]
Definition: netq.h:36
struct netq_t netq_t
Clock Handling.
clock_time_t t
Definition: netq.h:41
static void netq_init()
Definition: netq.h:58
netq_t * netq_head(list_t queue)
Definition: netq.c:80
dtls_peer_t * peer
Definition: netq.h:44
uint16_t epoch
Definition: netq.h:45
High level DTLS API and visible structures.
unsigned int timeout
Definition: netq.h:42
netq_t * netq_pop_first(list_t queue)
Definition: netq.c:103
uint8_t type
Definition: netq.h:46
void netq_remove(list_t queue, netq_t *p)
Definition: netq.c:96
void netq_node_free(netq_t *node)
Definition: netq.c:127
#define DTLS_MAX_BUF
Definition: global.h:64
size_t length
Definition: netq.h:49
void netq_delete_all(list_t queue)
Definition: netq.c:133
int netq_insert_node(list_t queue, netq_t *node)
Definition: netq.c:61