source: azure_iot_hub/trunk/asp3_dcre/tinet/tinet_config.h@ 388

Last change on this file since 388 was 388, checked in by coas-nagasima, 5 years ago

Azure IoT Hub Device C SDK を使ったサンプルの追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-chdr
File size: 13.7 KB
Line 
1/*
2 * TINET (TCP/IP Protocol Stack)
3 *
4 * Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
5 * Tomakomai National College of Technology, JAPAN
6 *
7 * 上記著作権者
8は,以下の (1)~(4) の条件か,Free Software Foundation
9 * によってå…
10¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
11 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
12 * を改変したものを含む.以下同じ)を使用・複製・改変・再é…
13å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
14 * 利用と呼ぶ)することを無償で許諾する.
15 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
16 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
17 * スコード中に含まれていること.
18 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
19 * 用できる形で再é…
20å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
21å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
22 * 者
23マニュアルなど)に,上記の著作権表示,この利用条件および下記
24 * の無保証規定を掲載すること.
25 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
26 * 用できない形で再é…
27å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®æ¡ä»¶ã‚’満たすこと.
28 * (a) 再é…
29å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
30マニュアルなど)に,上記の著
31 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
32 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
33 * 害からも,上記著作権者
34およびTOPPERSプロジェクトをå…
35è²¬ã™ã‚‹ã“と.
36 *
37 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
38お
39 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
40 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
41 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
42 *
43 * @(#) $Id: tinet_config.h 388 2019-05-22 11:25:18Z coas-nagasima $
44 */
45
46#ifndef _TINET_CONFIG_H_
47#define _TINET_CONFIG_H_
48
49/*
50 * TINET 1.2 との互換性のための定義
51 */
52
53/* TCPの受動オープンをサポートする【TINET 1.7 以降不要になった】。*/
54
55#if 0
56#define TCP_CFG_PASSIVE_OPEN
57#endif
58
59/* TCPのノンブロッキングコール機能を組込む。*/
60
61#define TCP_CFG_NON_BLOCKING
62
63/* UDPのノンブロッキングコール機能を組込む。*/
64
65#define UDP_CFG_NON_BLOCKING
66
67/*
68 * NIC、システム、CPU、応用プログラムに
69 * 依存する定義ファイルをインクルードする。
70 */
71
72#if defined(TARGET_KERNEL_JSP)
73
74#ifdef SUPPORT_ETHER
75
76#include "tinet_nic_config.h"
77
78#endif /* of #ifdef SUPPORT_ETHER */
79
80#include "tinet_sys_config.h"
81#include "tinet_cpu_config.h"
82#include "tinet_app_config.h"
83
84#elif defined(TARGET_KERNEL_ASP)
85
86#ifdef SUPPORT_ETHER
87
88#include "tinet_nic_config.h"
89
90#endif /* of #ifdef SUPPORT_ETHER */
91
92#include "tinet_target_config.h"
93#include "tinet_app_config.h"
94
95#endif /* of #if defined(TARGET_KERNEL_JSP) */
96
97/*
98 * TINET 1.1 との互換性のための定義
99 */
100
101#ifdef TMO_ICMP4_OUTPUT
102#define TMO_ICMP_OUTPUT TMO_ICMP4_OUTPUT
103#endif
104
105/*
106 * TINET 1.2 との互換性のための定義
107 */
108
109#ifdef NUM_MPF_NET_BUF_4096
110#define NUM_MPF_NET_BUF_REASSM NUM_MPF_NET_BUF_4096
111#endif
112
113/*
114 * TINET 1.3 との互換性のための定義
115
116#ifdef NUM_MPF_NET_BUF_REASSM
117#define NUM_MPF_NET_BUF4_REASSM NUM_MPF_NET_BUF_REASSM
118#endif
119 */
120
121/*
122 * TINET 1.5 との互換性のための定義
123 */
124
125/* ルーティング表のエントリ数の定義 */
126
127#define NUM_IN6_ROUTE_ENTRY \
128 (NUM_IN6_STATIC_ROUTE_ENTRY + NUM_IN6_REDIRECT_ROUTE_ENTRY)
129 /* ルーティング表のエントリ数 */
130
131#define NUM_IN4_ROUTE_ENTRY \
132 (NUM_IN4_STATIC_ROUTE_ENTRY + NUM_IN4_REDIRECT_ROUTE_ENTRY)
133 /* ルーティング表のエントリ数 */
134
135#if defined(SUPPORT_INET6)
136
137#if defined(SUPPORT_INET4)
138
139#else /* #if defined(SUPPORT_INET4) */
140
141#ifndef NUM_IN6_STATIC_ROUTE_ENTRY
142#define NUM_IN6_STATIC_ROUTE_ENTRY NUM_STATIC_ROUTE_ENTRY
143#endif
144
145#ifndef NUM_IN6_REDIRECT_ROUTE_ENTRY
146#define NUM_IN6_REDIRECT_ROUTE_ENTRY NUM_REDIRECT_ROUTE_ENTRY
147#endif
148
149#ifdef NUM_ROUTE_ENTRY
150#undef NUM_ROUTE_ENTRY
151#endif
152#define NUM_ROUTE_ENTRY NUM_IN6_ROUTE_ENTRY
153
154#endif /* #if defined(SUPPORT_INET4) */
155
156#else /* of #if defined(SUPPORT_INET6) */
157
158#if defined(SUPPORT_INET4)
159
160#ifndef NUM_IN4_STATIC_ROUTE_ENTRY
161#define NUM_IN4_STATIC_ROUTE_ENTRY NUM_STATIC_ROUTE_ENTRY
162#endif
163
164#ifndef NUM_IN4_REDIRECT_ROUTE_ENTRY
165#define NUM_IN4_REDIRECT_ROUTE_ENTRY NUM_REDIRECT_ROUTE_ENTRY
166#endif
167
168#ifdef NUM_ROUTE_ENTRY
169#undef NUM_ROUTE_ENTRY
170#endif
171#define NUM_ROUTE_ENTRY NUM_IN4_ROUTE_ENTRY
172
173#endif /* of #if defined(SUPPORT_INET4) */
174
175#endif /* of #if defined(SUPPORT_INET6) */
176
177/* DHCP の定義 */
178
179#ifdef DHCP4_CLI_CFG
180#define DHCP_CFG
181#endif
182
183/*
184 * IPv6/IPv4 に関する定義
185 */
186
187/*
188 * 指定されたマクロに対する TINET 内
189部のマクロの定義
190 *
191 * SUPPORT_INET6 . . ON ON ON ON
192 * SUPPORT_INET4 ON ON . . ON ON
193 * API_CFG_IP4MAPPED_ADDR . ON . ON . ON
194 * ---------------------- ----------------------
195 * _IP6_CFG . . ON ON ON ON
196 * _IP4_CFG ON ON . ON ON ON
197 *
198 */
199
200#if !defined(SUPPORT_INET6) && defined(API_CFG_IP4MAPPED_ADDR)
201#error option selection: !defined(SUPPORT_INET6) && defined(API_CFG_IP4MAPPED_ADDR)
202#endif
203
204#if defined(SUPPORT_INET6)
205#define _IP6_CFG
206#endif
207
208#if defined(SUPPORT_INET4) || (defined(SUPPORT_INET6) && defined(API_CFG_IP4MAPPED_ADDR))
209#define _IP4_CFG
210#endif
211
212/*
213 * TCP に関する定義
214 */
215
216/*
217 * MAX_TCP_RCV_SEG: 受信セグメントサイズの最大値
218 *
219 * 注意: 変更すべきではない。
220 */
221
222#ifndef MAX_TCP_RCV_SEG
223#define MAX_TCP_RCV_SEG (IF_MTU - (IP_HDR_SIZE + TCP_HDR_SIZE))
224#endif
225
226/*
227 * DEF_TCP_SND_SEG: 送信セグメントサイズの規定値
228 */
229
230#ifndef DEF_TCP_SND_SEG
231#define DEF_TCP_SND_SEG MAX_TCP_SND_SEG
232#endif
233
234/*
235 * TCP 通信端点の送受信ウィンドバッファの省コピー機能
236 */
237
238#ifdef TCP_CFG_SWBUF_CSAVE_ONLY
239#ifndef TCP_CFG_SWBUF_CSAVE
240#define TCP_CFG_SWBUF_CSAVE
241#endif
242#endif /* of #ifdef TCP_CFG_SWBUF_CSAVE_ONLY */
243
244#ifdef TCP_CFG_RWBUF_CSAVE_ONLY
245#ifndef TCP_CFG_RWBUF_CSAVE
246#define TCP_CFG_RWBUF_CSAVE
247#endif
248#endif /* of #ifdef TCP_CFG_RWBUF_CSAVE_ONLY */
249
250/*
251 * TCP_CFG_URG_OFFSET: 緊急データの最後のバイトのオフセット
252 *
253 * -1: BSD の実装
254、緊急ポインタは、緊急データの最後のバイトの次のバイトを差す。
255 * 0: RFC1122 の規定、緊急ポインタは、緊急データの最後のバイトを差す。
256 */
257
258#ifndef TCP_CFG_URG_OFFSET
259#define TCP_CFG_URG_OFFSET -1
260#endif
261
262/*
263 * ARP に関する定義
264 */
265
266#ifndef ARP_CACHE_KEEP
267#define ARP_CACHE_KEEP (20*60*NET_TIMER_HZ) /* ARP キャッシュのタイムアウト */
268#endif
269
270/*
271 * ループバックインタフェースに関する定義
272 */
273
274#ifndef LOMTU
275#define LOMTU 1500 /* ループバックの MTU */
276#endif
277
278/*
279 * TINET サポート関数に関する定義
280 */
281
282#ifndef NUM_IPV4ADDR_STR_BUFF /* ip2str における IP アドレス文字列用バッファ数 */
283
284#if defined(SUPPORT_PPP)
285
286#define NUM_IPV4ADDR_STR_BUFF 2
287
288#else /* of #if defined(SUPPORT_PPP) */
289
290#define NUM_IPV4ADDR_STR_BUFF 1
291
292#endif /* of #if defined(SUPPORT_PPP) */
293
294#endif /* of #ifndef NUM_IPV4ADDR_STR_BUFF */
295
296#ifndef NUM_IPV6ADDR_STR_BUFF
297#define NUM_IPV6ADDR_STR_BUFF 2 /* ip62str における IP アドレス文字列用バッファ数 */
298#endif
299
300#ifndef NUM_MACADDR_STR_BUFF /* macstr における MAC アドレス文字列用バッファ数 */
301
302#if defined(SUPPORT_INET4) && defined(ETHER_CFG_ACCEPT_ALL) && defined(ETHER_CFG_MCAST_WARNING)
303
304#define NUM_MACADDR_STR_BUFF 2
305
306#else /* of #if defined(SUPPORT_INET4) && defined(ETHER_CFG_ACCEPT_ALL) && defined(ETHER_CFG_MCAST_WARNING) */
307
308#define NUM_MACADDR_STR_BUFF 1
309
310#endif /* of #if defined(SUPPORT_INET4) && defined(ETHER_CFG_ACCEPT_ALL) && defined(ETHER_CFG_MCAST_WARNING) */
311
312#endif /* of #ifndef NUM_MACADDR_STR_BUFF */
313
314/*
315 * TINET 内
316部のタイムアウト値の設定
317 */
318
319#ifndef TMO_IP4_FRAG_GET_NET_BUF
320#define TMO_IP4_FRAG_GET_NET_BUF ULONG_C(1000000) /* [us]、IPv4 データグラム再構成用ネットワークバッファ獲得タイムアウト */
321#endif
322
323#ifndef TMO_IP6_FRAG_GET_NET_BUF
324#define TMO_IP6_FRAG_GET_NET_BUF ULONG_C(1000000) /* [us]、IPv6 データグラム再構成用ネットワークバッファ獲得タイムアウト */
325#endif
326
327#ifndef TMO_PPP_GET_NET_BUF
328#define TMO_PPP_GET_NET_BUF ULONG_C(1000000) /* [us]、PPP 受信用ネットワークバッファ獲得タイムアウト */
329#endif
330
331#ifndef TMO_ARP_GET_NET_BUF
332#define TMO_ARP_GET_NET_BUF ULONG_C(1000000) /* [us]、ARP のネットワークバッファ獲得タイムアウト */
333#endif
334
335#ifndef TMO_TCP_GET_NET_BUF
336#define TMO_TCP_GET_NET_BUF ULONG_C(1000000) /* [us]、TCP のネットワークバッファ獲得タイムアウト */
337#endif
338
339#ifndef TMO_TCP_OUTPUT
340#define TMO_TCP_OUTPUT ULONG_C(1000000) /* [us]、TCP 出力タイムアウト */
341#endif
342
343#ifndef TMO_UDP_OUTPUT
344#define TMO_UDP_OUTPUT ULONG_C(1000000) /* [us]、UDP 出力タイムアウト */
345#endif
346
347#ifndef TMO_ICMP_OUTPUT
348#define TMO_ICMP_OUTPUT ULONG_C(1000000) /* [us]、ICMP 出力タイムアウト */
349#endif
350
351#ifndef TMO_IGMP_OUTPUT
352#define TMO_IGMP_OUTPUT ULONG_C(1000000) /* [us]、IGMP 出力タイムアウト */
353#endif
354
355#ifndef TMO_ND6_NS_OUTPUT
356#define TMO_ND6_NS_OUTPUT ULONG_C(1000000) /* [us]、近隣要請出力タイムアウト */
357#endif
358
359#ifndef TMO_ND6_NA_OUTPUT
360#define TMO_ND6_NA_OUTPUT ULONG_C(1000000) /* [us]、近隣通知出力タイムアウト */
361#endif
362
363#ifndef TMO_ND6_RS_OUTPUT
364#define TMO_ND6_RS_OUTPUT ULONG_C(1000000) /* [us]、ルータ要請出力タイムアウト */
365#endif
366
367#ifndef TMO_ARP_OUTPUT
368#define TMO_ARP_OUTPUT ULONG_C(1000000) /* [us]、アドレス解決要求出力タイムアウト */
369#endif
370
371#ifndef TMO_ND6_RTR_SOL_DELAY
372#define TMO_ND6_RTR_SOL_DELAY ULONG_C(1000000) /* [us]、ルータ要請出力遅
373延 */
374#endif
375
376#ifndef TMO_ND6_RTR_SOL_INTERVAL
377#define TMO_ND6_RTR_SOL_INTERVAL ULONG_C(4000000) /* [us]、ルータ要請出力間隔 */
378#endif
379
380#ifndef TMO_IN_REDIRECT
381 /* [s]、向け直しルーティングエントリタイムアウト*/
382#define TMO_IN_REDIRECT (10*60*NET_TIMER_HZ)
383#endif
384
385/*
386 * TINET 内
387部のタスクのスタックサイズの設定
388 */
389
390#ifndef TCP_OUT_TASK_STACK_SIZE
391#define TCP_OUT_TASK_STACK_SIZE 1024 /* TCP 出力タスクのスタックサイズ */
392#endif
393
394#ifndef UDP_OUT_TASK_STACK_SIZE
395#define UDP_OUT_TASK_STACK_SIZE 1024 /* UDP 出力タスクのスタックサイズ */
396#endif
397
398#ifndef PPP_INPUT_STACK_SIZE
399#define PPP_INPUT_STACK_SIZE 1024 /* PPP タスクのスタックサイズ */
400#endif
401
402#ifndef PPP_OUTPUT_STACK_SIZE
403#define PPP_OUTPUT_STACK_SIZE 1024 /* PPP 出力タスクのスタックサイズ */
404#endif
405
406#ifndef ETHER_INPUT_STACK_SIZE
407#define ETHER_INPUT_STACK_SIZE 1024 /* Ethernet å…
408¥åŠ›ã‚¿ã‚¹ã‚¯ã®ã‚¹ã‚¿ãƒƒã‚¯ã‚µã‚¤ã‚º */
409#endif
410
411#ifndef ETHER_OUTPUT_STACK_SIZE
412#define ETHER_OUTPUT_STACK_SIZE 1024 /* Ethernet 出力タスクのスタックサイズ */
413#endif
414
415#ifndef LOOP_INPUT_STACK_SIZE
416#define LOOP_INPUT_STACK_SIZE 1024 /* ループバックå…
417¥åŠ›ã‚¿ã‚¹ã‚¯ã®ã‚¹ã‚¿ãƒƒã‚¯ã‚µã‚¤ã‚º */
418#endif
419
420#ifndef LOOP_OUTPUT_STACK_SIZE
421#define LOOP_OUTPUT_STACK_SIZE 1024 /* ループバック出力タスクのスタックサイズ */
422#endif
423
424#ifndef NET_TIMER_STACK_SIZE
425#define NET_TIMER_STACK_SIZE 1024 /* ネットワークタイマタスクのスタックサイズ */
426#endif
427
428/*
429 * TINET 内
430部のタスクの優å…
431ˆåº¦ã®è¨­å®š
432 */
433
434#ifndef TCP_OUT_TASK_PRIORITY
435#define TCP_OUT_TASK_PRIORITY 5 /* TCP 出力タスクの優å…
436ˆåº¦ */
437#endif
438
439#ifndef UDP_OUT_TASK_PRIORITY
440#define UDP_OUT_TASK_PRIORITY 5 /* UDP 出力タスクの優å…
441ˆåº¦ */
442#endif
443
444#ifndef PPP_INPUT_PRIORITY
445#define PPP_INPUT_PRIORITY 5 /* PPP タスクの優å…
446ˆåº¦ */
447#endif
448
449#ifndef PPP_OUTPUT_PRIORITY
450#define PPP_OUTPUT_PRIORITY 5 /* PPP タスクの優å…
451ˆåº¦ */
452#endif
453
454#ifndef ETHER_INPUT_PRIORITY
455#define ETHER_INPUT_PRIORITY 5 /* Ethernet å…
456¥åŠ›ã‚¿ã‚¹ã‚¯ã®å„ªå…
457ˆåº¦ */
458#endif
459
460#ifndef ETHER_OUTPUT_PRIORITY
461#define ETHER_OUTPUT_PRIORITY 5 /* Ethernet 出力タスクの優å…
462ˆåº¦ */
463#endif
464
465#ifndef LOOP_INPUT_PRIORITY
466#define LOOP_INPUT_PRIORITY 5 /* ループバックå…
467¥åŠ›ã‚¿ã‚¹ã‚¯ã®å„ªå…
468ˆåº¦ */
469#endif
470
471#ifndef LOOP_OUTPUT_PRIORITY
472#define LOOP_OUTPUT_PRIORITY 5 /* ループバック出力タスクの優å…
473ˆåº¦ */
474#endif
475
476#ifndef NET_TIMER_PRIORITY
477#define NET_TIMER_PRIORITY 5 /* ネットワークタイマタスクの優å…
478ˆåº¦ */
479#endif
480
481/*
482 * TINET 内
483部のデータキューのエントリ数の設定
484 */
485
486/* UDP 受信キューサイズ */
487
488#ifndef NUM_DTQ_UDP_RCVQ
489#define NUM_DTQ_UDP_RCVQ 1 /* 非コールバック用 */
490#endif
491
492#ifndef NUM_DTQ_UDP_OUTPUT
493#define NUM_DTQ_UDP_OUTPUT 1 /* UDP 出力データキューサイズ */
494#endif
495
496#ifndef NUM_DTQ_PPP_OUTPUT
497#define NUM_DTQ_PPP_OUTPUT 2 /* PPP 出力データキューサイズ、2 以上 */
498#endif
499
500#ifndef NUM_DTQ_ETHER_OUTPUT
501#define NUM_DTQ_ETHER_OUTPUT 2 /* Ethernet 出力データキューサイズ */
502#endif
503
504#ifndef NUM_DTQ_LOOP_INPUT
505#define NUM_DTQ_LOOP_INPUT 0 /* ループバックå…
506¥åŠ›ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‚µã‚¤ã‚º */
507#endif
508
509#ifndef NUM_DTQ_LOOP_OUTPUT
510#define NUM_DTQ_LOOP_OUTPUT 0 /* ループバック出力データキューサイズ */
511#endif
512
513/*
514 * TINET プロトコルスタック内
515部のリネーム
516 */
517
518#include <net/net_rename.h>
519#include <netinet/in_rename.h>
520#include <netinet6/in6_rename.h>
521
522#endif /* _TINET_CONFIG_H_ */
Note: See TracBrowser for help on using the repository browser.