source: asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/tinet_config.h@ 337

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

ASP3版ECNLを追加

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