1 #ifndef COAP_CONFIG_H_ 2 #define COAP_CONFIG_H_ 3 4 #include "contiki.h" 5 #include "contiki-lib.h" 6 #include "contiki-net.h" 7 8 #define WITH_CONTIKI 1 9 10 #ifndef COAP_CONSTRAINED_STACK 11 #define COAP_CONSTRAINED_STACK 1 12 #endif 13 14 #ifndef COAP_DISABLE_TCP 15 #define COAP_DISABLE_TCP 1 16 #endif 17 18 #define PACKAGE_STRING "libcoap" 19 #define PACKAGE_NAME "libcoap" 20 21 #ifndef COAP_DEFAULT_PDU_SIZE 22 #define COAP_DEFAULT_PDU_SIZE 64 23 #endif /* COAP_DEFAULT_PDU_SIZE */ 24 #ifndef COAP_RXBUFFER_SIZE 25 #define COAP_RXBUFFER_SIZE 64 26 #endif /* COAP_RXBUFFER_SIZE */ 27 28 /** Number of resources that can be handled by a CoAP server in addition to 29 * @c /.well-known/core */ 30 #ifndef COAP_MAX_RESOURCES 31 #define COAP_MAX_RESOURCES 3 32 #endif /* COAP_MAX_RESOURCES */ 33 34 /** Number of attributes that can be handled (should be at least 35 * @c 2 * COAP_MAX_RESOURCES. to carry the content type and the 36 * resource type. */ 37 #ifndef COAP_MAX_ATTRIBUTES 38 #define COAP_MAX_ATTRIBUTES 4 39 #endif /* COAP_MAX_ATTRIBUTES */ 40 41 /** 42 * Number of PDUs that can be stored simultaneously. This number 43 * includes both, the PDUs stored for retransmission as well as the 44 * PDUs received. Beware that choosing a too small value can lead to 45 * many retransmissions to be dealt with. 46 */ 47 #ifndef COAP_PDU_MAXCNT 48 #define COAP_PDU_MAXCNT 4 49 #endif /* COAP_PDU_MAXCNT */ 50 51 /** 52 * Maximum number of sessions. 53 */ 54 #ifndef COAP_MAX_SESSIONS 55 #define COAP_MAX_SESSIONS 2 56 #endif /* COAP_MAX_SESSIONS */ 57 58 /** 59 * Maximum number of subscriptions. Every additional subscriber costs 60 * 36 B. 61 */ 62 #ifndef COAP_MAX_SUBSCRIBERS 63 #define COAP_MAX_SUBSCRIBERS 3 64 #endif /* COAP_MAX_SUBSCRIBERS */ 65 66 /** 67 * The maximum number of cache-key entries that allocate 68 * fixed-size memory blocks. 69 */ 70 #ifndef COAP_MAX_CACHE_KEYS 71 #define COAP_MAX_CACHE_KEYS (2U) 72 #endif /* COAP_MAX_CACHE_KEYS */ 73 74 /** 75 * The maximum number of cache-entry entries that allocate 76 * fixed-size memory blocks. 77 */ 78 #ifndef COAP_MAX_CACHE_ENTRIES 79 #define COAP_MAX_CACHE_ENTRIES (2U) 80 #endif /* COAP_MAX_CACHE_ENTRIES */ 81 82 /** 83 * Maximum number of large body transmissions. 84 */ 85 #ifndef COAP_MAX_LG_XMIT 86 #define COAP_MAX_LG_XMIT 2 87 #endif /* COAP_MAX_LG_XMIT */ 88 89 /** 90 * Maximum number of large body client receives. 91 */ 92 #ifndef COAP_MAX_LG_CRCV 93 #define COAP_MAX_LG_CRCV 2 94 #endif /* COAP_MAX_LG_CRCV */ 95 96 /** 97 * Maximum number of large body server receives. 98 */ 99 #ifndef COAP_MAX_LG_SRCV 100 #define COAP_MAX_LG_SRCV 2 101 #endif /* COAP_MAX_LG_SRCV */ 102 103 /** 104 * Number of notifications that may be sent non-confirmable before a 105 * confirmable message is sent to detect if observers are alive. The 106 * maximum allowed value here is @c 15. 107 */ 108 #ifndef COAP_OBS_MAX_NON 109 #define COAP_OBS_MAX_NON 5 110 #endif /* COAP_OBS_MAX_NON */ 111 112 /** 113 * Number of confirmable notifications that may fail (i.e. time out 114 * without being ACKed) before an observer is removed. The maximum 115 * value for COAP_OBS_MAX_FAIL is @c 3. 116 */ 117 #ifndef COAP_OBS_MAX_FAIL 118 #define COAP_OBS_MAX_FAIL 3 119 #endif /* COAP_OBS_MAX_FAIL */ 120 121 #ifndef DEBUG 122 # define DEBUG DEBUG_PRINT 123 #endif 124 125 #define HAVE_STRNLEN 1 126 #define HAVE_SNPRINTF 1 127 #define HAVE_STRINGS_H 1 128 129 /* there is no file-oriented output */ 130 #define COAP_DEBUG_FD NULL 131 #define COAP_ERR_FD NULL 132 133 #include "contiki-conf.h" 134 135 #if (defined(PLATFORM) && PLATFORM == PLATFORM_MC1322X) || defined(CONTIKI_TARGET_ECONOTAG) 136 /* Redbee econotags get a special treatment here: endianness is set 137 * explicitly, and 138 */ 139 140 #define BYTE_ORDER UIP_LITTLE_ENDIAN 141 142 #define HAVE_ASSERT_H 143 #define HAVE_UNISTD_H 144 #define HAVE_SYS_TYPES_H 145 #define HAVE_LIMITS_H 146 #endif /* PLATFORM_MC1322X || CONTIKI_TARGET_ECONOTAG */ 147 148 #if defined(TMOTE_SKY) || defined(CONTIKI_TARGET_SKY) || defined(CONTIKI_TARGET_WISMOTE) 149 /* Need to set the byte order for TMote Sky explicitely */ 150 151 #define BYTE_ORDER UIP_LITTLE_ENDIAN 152 #undef COAP_DEFAULT_PDU_SIZE 153 #undef COAP_RXBUFFER_SIZE 154 #define COAP_DEFAULT_PDU_SIZE 100 155 #define COAP_RXBUFFER_SIZE 100 156 157 #define COAP_MAX_BLOCK_SZX 2 158 159 typedef int ssize_t; 160 typedef void FILE; 161 162 #define HAVE_LIMITS_H 1 163 #undef HAVE_ASSERT_H 164 #define HAVE_VPRINTF 1 165 #endif /* defined(TMOTE_SKY) */ 166 167 #ifdef CONTIKI_TARGET_MINIMAL_NET 168 #undef COAP_DEFAULT_PDU_SIZE 169 #undef COAP_RXBUFFER_SIZE 170 #define COAP_DEFAULT_PDU_SIZE 1152 171 #define COAP_RXBUFFER_SIZE 1472 172 #define HAVE_ASSERT_H 1 173 #define HAVE_VPRINTF 1 174 #define HAVE_SYS_TYPES_H 1 175 #endif /* CONTIKI_TARGET_MINIMAL_NET */ 176 177 #ifdef CONTIKI_TARGET_CC2538DK 178 #define BYTE_ORDER UIP_LITTLE_ENDIAN 179 #undef COAP_DEFAULT_PDU_SIZE 180 #undef COAP_RXBUFFER_SIZE 181 #define COAP_DEFAULT_PDU_SIZE 100 182 #define COAP_RXBUFFER_SIZE 100 183 184 #undef COAP_MAX_BLOCK_SZX 185 #define COAP_MAX_BLOCK_SZX 2 186 187 #define HAVE_LIMITS_H 1 188 #endif /* CONTIKI_TARGET_CC2538DK */ 189 190 #ifndef BYTE_ORDER 191 # ifdef UIP_CONF_BYTE_ORDER 192 # define BYTE_ORDER UIP_CONF_BYTE_ORDER 193 # else 194 # error "UIP_CONF_BYTE_ORDER not defined" 195 # endif /* UIP_CONF_BYTE_ORDER */ 196 #endif /* BYTE_ORDER */ 197 198 /* Define assert() as empty directive unless HAVE_ASSERT_H is given. */ 199 #ifndef HAVE_ASSERT_H 200 # define assert(x) 201 #endif 202 203 #define ntohs uip_ntohs 204 205 #include <stdio.h> 206 #define coap_log(fd, ...) printf(__VA_ARGS__) 207 208 #endif /* COAP_CONFIG_H_ */ 209 210