Contiki 3.x
contiki-conf.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015, Nordic Semiconductor
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  * notice, this list of conditions and the following disclaimer in the
12  * documentation and/or other materials provided with the distribution.
13  * 3. Neither the name of the Institute nor the names of its contributors
14  * may be used to endorse or promote products derived from this software
15  * without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
18  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20  * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
21  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27  * SUCH DAMAGE.
28  *
29  */
30 /**
31  * \addtogroup nrf52dk
32  * @{
33  *
34  * \addtogroup nrf52dk-contikic-conf Contiki configuration
35  * @{
36  *
37  * \file
38  * Contiki configuration for the nRF52 DK
39  */
40 #ifndef CONTIKI_CONF_H
41 #define CONTIKI_CONF_H
42 
43 #include <stdint.h>
44 /*---------------------------------------------------------------------------*/
45 /* Include Project Specific conf */
46 #ifdef PROJECT_CONF_H
47 #include PROJECT_CONF_H
48 #endif /* PROJECT_CONF_H */
49 /*---------------------------------------------------------------------------*/
50 /* Include platform peripherals configuration */
51 #include "platform-conf.h"
52 /*---------------------------------------------------------------------------*/
53 /**
54  * \name Network Stack Configuration
55  *
56  * @{
57  */
58 #ifndef NETSTACK_CONF_NETWORK
59 #define NETSTACK_CONF_NETWORK sicslowpan_driver
60 #endif /* NETSTACK_CONF_NETWORK */
61 
62 #ifndef NETSTACK_CONF_MAC
63 #define NETSTACK_CONF_MAC ble_ipsp_mac_driver
64 #endif /* NETSTACK_CONF_MAC */
65 
66 /* 6LoWPAN */
67 #define SICSLOWPAN_CONF_MAC_MAX_PAYLOAD 1280
68 #define SICSLOWPAN_CONF_COMPRESSION SICSLOWPAN_COMPRESSION_HC06
69 #define SICSLOWPAN_CONF_COMPRESSION_THRESHOLD 0 /**< Always compress IPv6 packets. */
70 #define SICSLOWPAN_CONF_FRAG 0 /**< We don't use 6LoWPAN fragmentation as IPSP takes care of that for us.*/
71 #define SICSLOWPAN_FRAMER_HDRLEN 0 /**< Use fixed header len rather than framer.length() function */
72 
73 /* Packet buffer */
74 #define PACKETBUF_CONF_SIZE 1280 /**< Required IPv6 MTU size */
75 /** @} */
76 
77 /**
78  * \name BLE configuration
79  * @{
80  */
81 #ifndef DEVICE_NAME
82 #define DEVICE_NAME "Contiki nRF52dk" /**< Device name used in BLE undirected advertisement. */
83 #endif
84 /**
85  * @}
86  */
87 
88 /**
89  * \name IPv6 network buffer configuration
90  *
91  * @{
92  */
93 /* Don't let contiki-default-conf.h decide if we are an IPv6 build */
94 #ifndef NETSTACK_CONF_WITH_IPV6
95 #define NETSTACK_CONF_WITH_IPV6 0
96 #endif
97 
98 #if NETSTACK_CONF_WITH_IPV6
99 /*---------------------------------------------------------------------------*/
100 /* Addresses, Sizes and Interfaces */
101 #define LINKADDR_CONF_SIZE 8
102 #define UIP_CONF_LL_802154 1
103 #define UIP_CONF_LLH_LEN 0
104 
105 /* The size of the uIP main buffer */
106 #ifndef UIP_CONF_BUFFER_SIZE
107 #define UIP_CONF_BUFFER_SIZE 1280
108 #endif
109 
110 /* ND and Routing */
111 #define UIP_CONF_ROUTER 0 /**< BLE master role, which allows for routing, isn't supported. */
112 #define UIP_CONF_ND6_SEND_NA 1
113 #define UIP_CONF_IP_FORWARD 0 /**< No packet forwarding. */
114 
115 #define UIP_CONF_ND6_REACHABLE_TIME 600000
116 #define UIP_CONF_ND6_RETRANS_TIMER 10000
117 
118 #ifndef NBR_TABLE_CONF_MAX_NEIGHBORS
119 #define NBR_TABLE_CONF_MAX_NEIGHBORS 20
120 #endif
121 
122 #ifndef UIP_CONF_MAX_ROUTES
123 #define UIP_CONF_MAX_ROUTES 20
124 #endif
125 
126 #ifndef UIP_CONF_TCP
127 #define UIP_CONF_TCP 1
128 #endif
129 
130 #ifndef UIP_CONF_TCP_MSS
131 #define UIP_CONF_TCP_MSS 64
132 #endif
133 
134 #define UIP_CONF_UDP 1
135 #define UIP_CONF_UDP_CHECKSUMS 1
136 #define UIP_CONF_ICMP6 1
137 #endif /* NETSTACK_CONF_WITH_IPV6 */
138 /** @} */
139 /*---------------------------------------------------------------------------*/
140 /**
141  * \name Generic Configuration directives
142  *
143  * @{
144  */
145 #ifndef ENERGEST_CONF_ON
146 #define ENERGEST_CONF_ON 1 /**< Energest Module */
147 #endif
148 /** @} */
149 #endif /* CONTIKI_CONF_H */
150 /**
151  * @}
152  * @}
153  */
Platform features configuration.