source: asp3_tinet_ecnl_arm/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_config.h@ 352

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

arm向けASP3版ECNLを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 16.9 KB
Line 
1/*
2 * TINET (TCP/IP Protocol Stack)
3 *
4 * Copyright (C) 2001-2009 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_TARGET_CONFIG_H_
35#define _TINET_TARGET_CONFIG_H_
36
37/*
38 * TCP/IP に関する定義
39 */
40
41/* TCP に関する定義 */
42
43/*
44 * MAX_TCP_SND_SEG: 送信セグメントサイズの最大値
45 *
46 * 相手から MSS オプションでセグメントサイズを指定されても、
47 * この値で、セグメントサイズを制限できる。
48 */
49
50#ifndef MAX_TCP_SND_SEG
51#define MAX_TCP_SND_SEG (IF_MTU - (IP_HDR_SIZE + TCP_HDR_SIZE))
52#endif /* of #ifndef MAX_TCP_SND_SEG */
53
54/*
55 * DEF_TCP_RCV_SEG: 受信セグメントサイズの規定値
56 */
57
58#ifndef DEF_TCP_RCV_SEG
59#define DEF_TCP_RCV_SEG (IF_MTU - (IP_HDR_SIZE + TCP_HDR_SIZE))
60#endif /* of #ifndef DEF_TCP_RCV_SEG */
61
62/*
63 * セグメントの順番を入れ替えるときに新たにネットワークバッファを割当てて、
64 * データをコピーするサイズのしきい値
65 */
66#define MAX_TCP_REALLOC_SIZE 1024
67
68#define TCP_CFG_OPT_MSS /* コネクション開設時に、セグメントサイズオプションをつけて送信する。*/
69#define TCP_CFG_DELAY_ACK /* ACK を遅らせるときはコメントを外す。 */
70#define TCP_CFG_ALWAYS_KEEP /* 常にキープアライブする時はコメントを外す。 */
71
72/* UDP に関する定義 */
73
74#define UDP_CFG_IN_CHECKSUM /* UDP の入力チェックサムを行う場合はコメントを外す。 */
75#define UDP_CFG_OUT_CHECKSUM /* UDP の出力チェックサムを行う場合はコメントを外す。 */
76
77/* ICMPv4/v6 に関する定義 */
78
79#define ICMP_REPLY_ERROR /* ICMP エラーメッセージを送信する場合はコメントを外す。*/
80
81/* IPv4 に関する定義 */
82
83#define IP4_CFG_FRAGMENT /* データグラムの分割・再構成行う場合はコメントを外す。 */
84#define NUM_IP4_FRAG_QUEUE 2 /* データグラム再構成キューサイズ */
85#define IP4_CFG_FRAG_REASSM_SIZE 4096 /* IPv4 再構成バッファサイズ */
86
87/* IPv6 に関する定義 */
88
89#define NUM_IP6_DAD_COUNT 1 /* 重複アドレス検出で送信する近隣要請の回数、 */
90 /* 0 を指定すると、重複アドレス検出を行わない。 */
91#define NUM_ND6_CACHE_ENTRY 10 /* 近隣キャッシュのエントリ数 */
92
93/*
94 * IPv6 用ホストキャッシュのエントリ数。
95 * 0 を指定するとIPv6 用ホストキャッシュを組込まない。
96 */
97#define NUM_IN6_HOSTCACHE_ENTRY 4
98
99#ifdef SUPPORT_ETHER
100
101#define IP6_CFG_AUTO_LINKLOCAL /* リンクローカルアドレスの自動設定を行う場合はコメントを外す。*/
102
103/*
104 * ディフォルトルータリストに関する定義
105 */
106
107/*
108 * ディフォルトルータリストのエントリ数。
109 * 最大値は 16、0 を指定するとルータ通知を受信しない。
110 */
111#define NUM_ND6_DEF_RTR_ENTRY 4
112
113/*
114 * プレフィックスリストに関する定義。
115 * 最大値は 16。
116 */
117#define NUM_ND6_PREFIX_ENTRY 4 /* プレフィックスリストのエントリ数 */
118
119/*
120 * 起動時のルータ要請出力回数。
121 * 0 を指定するとルータ要請を出力しない。
122 */
123#define NUM_ND6_RTR_SOL_RETRY 3
124
125#define IP6_CFG_FRAGMENT /* データグラムの分割・再構成行う場合はコメントを外す。 */
126#define NUM_IP6_FRAG_QUEUE 2 /* データグラム再構成キューサイズ */
127#define IP6_CFG_FRAG_REASSM_SIZE 4096 /* IPv6 再構成バッファサイズ */
128
129#endif /* of #ifdef SUPPORT_ETHER */
130
131/*
132 * データリンク層 (ネットワークインタフェース) に関する定義
133 */
134
135/*
136 * PPP、モデムに関する定義
137 */
138
139#define MODEM_CFG_DIAL "ATD" /* ダイアルコマンド文字列 */
140#define MODEM_CFG_RETRY_CNT 3 /* ダイアルリトライ回数 */
141#define MODEM_CFG_RETRY_WAIT 10000 /* ダイアルリトライまでの待ち時間 [ms] */
142
143/*
144 * PPP、HDLC に関する定義
145 */
146
147#define DEF_LOCAL_ACCM ULONG_C(0x000a0000) /* 自分の ACCM、XON と XOFF のみ変換 */
148#define DEF_REMOTE_ACCM ULONG_C(0xffffffff) /* 相手の ACCM、初期値は全て変換 */
149
150/*
151 * PPP、LCP に関する定義
152 */
153
154#define LCP_CFG_MRU UINT_C(0x0001) /* MRU */
155#define LCP_CFG_ACCM UINT_C(0x0002) /* ACCM */
156#define LCP_CFG_MAGIC UINT_C(0x0004) /* マジック番号 */
157#define LCP_CFG_PCOMP UINT_C(0x0008) /* プロトコル部圧縮機能 */
158#define LCP_CFG_ACCOMP UINT_C(0x0010) /* アドレス・制御部圧縮 */
159#define LCP_CFG_PAP UINT_C(0x0020) /* PAP */
160/*#define LCP_CFG_CHAP UINT_C(0x0040) CHAP は実装予定 */
161
162#ifdef LCP_CFG_MAGIC
163
164#define LCP_ECHO_INTERVAL (20*NET_TIMER_HZ) /* インターバル時間 */
165#define LCP_ECHO_FAILS 9 /* 失敗閾値 */
166
167#endif /* of #ifdef LCP_CFG_MAGIC */
168
169/*
170 * PPP、PAP に関する定義
171 */
172
173#define DEF_PAP_TIMEOUT (3*NET_TIMER_HZ)
174#define DEF_PAP_REQTIME (30*NET_TIMER_HZ) /* タイムアウト処理を行うときはコメントを外す。*/
175#define MAX_PAP_REXMT 10 /* 認証要求の最大再送回数 */
176
177/*
178 * MBED Ethernet Controler に関する定義
179 */
180
181#define NUM_IF_MBED_TXBUF NUM_OF_TX_DESCRIPTOR /* 送信バッファ数 */
182#define NUM_IF_MBED_RXBUF NUM_OF_RX_DESCRIPTOR /* 受信バッファ数 */
183
184#define TMO_IF_MBED_GET_NET_BUF 1000 /* [us]、受信用 net_buf 獲得タイムアウト */
185 /* [s]、 送信タイムアウト */
186#define TMO_IF_MBED_XMIT (2*IF_TIMER_HZ)
187
188/*#define IF_MBED_CFG_ACCEPT_ALL マルチキャスト、エラーフレームも受信するときはコメントを外す。*/
189
190/*
191 * Bluetooth USB PAN に関する定義
192 */
193
194#define NUM_IF_BTUSB_TXBUF 2 /* 送信バッファ数 */
195#define NUM_IF_BTUSB_RXBUF 2 /* 受信バッファ数 */
196#define IF_BTUSB_BUF_PAGE_SIZE 1518 /* バッファサイズ */
197
198#define TMO_IF_BTUSB_GET_NET_BUF 1000 /* [us]、受信用 net_buf 獲得タイムアウト */
199 /* [s]、 送信タイムアウト */
200#define TMO_IF_BTUSB_XMIT (2*IF_TIMER_HZ)
201
202/*
203 * イーサネット出力時に、NIC で net_buf を開放する場合に指定する。
204 *
205 * 注意: 以下の指定は、指定例であり、if_mbed では、
206 * 開放しないので、以下のコメントを外してはならない。
207 */
208
209/*#define ETHER_NIC_CFG_RELEASE_NET_BUF*/
210
211/*
212 * MBED Ethernet Controler に関する定義
213 */
214
215#define INHNO_IF_MBED ETHERI_IRQn /* IRQ5 */
216#define INTNO_IF_MBED ETHERI_IRQn /* IRQ5 */
217#define INTATR_IF_MBED (TA_NULL) /* 割込み属性 */
218#define INTPRI_IF_MBED (-1) /* 割込み優先度 */
219
220/*
221 * ARP に関する定義
222 */
223
224#define NUM_ARP_ENTRY 10 /* ARP キャッシュエントリ数 */
225
226/*
227 * DHCP に関する定義
228 *
229 * ・注意: TINET は、DHCP を実装していない。応用プログラムで、
230 * DHCP メッセージを受信するための定義である。
231 * また、現在は IPv4 のみ有効である。
232 */
233
234/*#define DHCP_CFG DHCP を処理する場合はコメントを外す。*/
235
236/*
237 * Ethernet に関する定義
238 */
239
240/*#define ETHER_CFG_ACCEPT_ALL マルチキャスト、エラーフレームも受信するときはコメントを外す。 */
241/*#define ETHER_CFG_UNEXP_WARNING 非サポートフレームの警告を表示するときはコメントを外す。 */
242/*#define ETHER_CFG_802_WARNING IEEE 802.3 フレームの警告を表示するときはコメントを外す。 */
243/*#define ETHER_CFG_MCAST_WARNING マルチキャストの警告を表示するときはコメントを外す。 */
244#define ETHER_CFG_MULTICAST /* マルチキャストを送受信 */
245
246/*
247 * アドレスリストに関する定義。
248 */
249#define NUM_IN6_IFADDR_ENTRY 5 /* インタフェースのアドレスリストのエントリ数 */
250
251/*
252 * 汎用ネットワークに関する定義
253 */
254
255/*
256 * ネットワークバッファに関する定義
257 */
258
259/* ネットワークバッファ数 */
260
261#ifdef SUPPORT_PPP
262
263/*
264 * PPP では、受信用の ネットワークバッファは PDU (1502) サイズを常に
265 * 割り当てなければならないので PDU サイズを多めに確保する。
266 */
267
268#ifndef NUM_MPF_NET_BUF_CSEG
269#define NUM_MPF_NET_BUF_CSEG 2 /* IF + IP + TCP、2 以上*/
270#endif /* of #ifndef NUM_MPF_NET_BUF_CSEG */
271
272#ifndef NUM_MPF_NET_BUF_64
273#define NUM_MPF_NET_BUF_64 0 /* 64 オクテット */
274#endif /* of #ifndef NUM_MPF_NET_BUF_64 */
275
276#ifndef NUM_MPF_NET_BUF_128
277#define NUM_MPF_NET_BUF_128 0 /* 128 オクテット */
278#endif /* of #ifndef NUM_MPF_NET_BUF_128 */
279
280#ifndef NUM_MPF_NET_BUF_256
281#define NUM_MPF_NET_BUF_256 0 /* 256 オクテット */
282#endif /* of #ifndef NUM_MPF_NET_BUF_256 */
283
284#ifndef NUM_MPF_NET_BUF_512
285#define NUM_MPF_NET_BUF_512 0 /* 512 オクテット */
286#endif /* of #ifndef NUM_MPF_NET_BUF_512 */
287
288#ifndef NUM_MPF_NET_BUF_1024
289#define NUM_MPF_NET_BUF_1024 0 /* 1024 オクテット */
290#endif /* of #ifndef NUM_MPF_NET_BUF_1024 */
291
292#ifndef NUM_MPF_NET_BUF_IF_PDU
293#define NUM_MPF_NET_BUF_IF_PDU 2 /* IF 最大 PDU サイズ */
294#endif /* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
295
296#ifndef NUM_MPF_NET_BUF4_REASSM
297
298#if defined(SUPPORT_INET4) && defined(IP4_CFG_FRAGMENT)
299#define NUM_MPF_NET_BUF4_REASSM 2 /* IPv4 再構成バッファサイズ */
300#else
301#define NUM_MPF_NET_BUF4_REASSM 0 /* IPv4 再構成バッファサイズ */
302#endif
303
304#endif /* of #ifndef NUM_MPF_NET_BUF4_REASSM */
305
306#ifndef NUM_MPF_NET_BUF6_REASSM
307
308#if defined(SUPPORT_INET6) && defined(IP6_CFG_FRAGMENT)
309#define NUM_MPF_NET_BUF6_REASSM 2 /* IPv6 再構成バッファサイズ */
310#else
311#define NUM_MPF_NET_BUF6_REASSM 0 /* IPv6 再構成バッファサイズ */
312#endif
313
314#endif /* of #ifndef NUM_MPF_NET_BUF6_REASSM */
315
316#endif /* of #ifdef SUPPORT_PPP */
317
318#ifdef SUPPORT_ETHER
319
320/*
321 * イーサネットの場合のネットワークバッファ数の割り当て
322 */
323
324/*
325 * 注意!!
326 *
327 * MBED Ethernet Controler のディバイスドライバ(if_mbed)の最低割当て長は
328 * 60(アラインして 62)オクテットのため IF + IP +TCP よりは
329 * 64 オクテットのネットワークバッファの方が最適である。
330 */
331
332#ifndef NUM_MPF_NET_BUF_CSEG
333#define NUM_MPF_NET_BUF_CSEG 0 /* IF + IP + TCP */
334#endif /* of #ifndef NUM_MPF_NET_BUF_CSEG */
335
336#ifndef NUM_MPF_NET_BUF_64
337#define NUM_MPF_NET_BUF_64 2 /* 64 オクテット */
338#endif /* of #ifndef NUM_MPF_NET_BUF_64 */
339
340#ifndef NUM_MPF_NET_BUF_128
341#define NUM_MPF_NET_BUF_128 0 /* 128 オクテット */
342#endif /* of #ifndef NUM_MPF_NET_BUF_128 */
343
344#ifndef NUM_MPF_NET_BUF_256
345#define NUM_MPF_NET_BUF_256 0 /* 256 オクテット */
346#endif /* of #ifndef NUM_MPF_NET_BUF_256 */
347
348#ifndef NUM_MPF_NET_BUF_512
349#define NUM_MPF_NET_BUF_512 0 /* 512 オクテット */
350#endif /* of #ifndef NUM_MPF_NET_BUF_512 */
351
352#if defined(SUPPORT_INET4)
353
354#ifndef NUM_MPF_NET_BUF_IP_MSS
355#define NUM_MPF_NET_BUF_IP_MSS 0 /* IF + 576 オクテット */
356#endif /* of #ifndef NUM_MPF_NET_BUF_IP_MSS */
357
358#endif /* of #if defined(SUPPORT_INET4) */
359
360#ifndef NUM_MPF_NET_BUF_1024
361#define NUM_MPF_NET_BUF_1024 0 /* 1024 オクテット */
362#endif /* of #ifndef NUM_MPF_NET_BUF_1024 */
363
364#if defined(SUPPORT_INET6)
365
366#ifndef NUM_MPF_NET_BUF_IPV6_MMTU
367#define NUM_MPF_NET_BUF_IPV6_MMTU 0 /* IF + 1280 */
368#endif /* of #ifndef NUM_MPF_NET_BUF_IPV6_MMTU */
369
370#endif /* of #if defined(SUPPORT_INET6) */
371
372#ifndef NUM_MPF_NET_BUF_IF_PDU
373#define NUM_MPF_NET_BUF_IF_PDU 4 /* IF 最大 PDU サイズ */
374#endif /* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
375
376#ifndef NUM_MPF_NET_BUF4_REASSM
377
378#if defined(SUPPORT_INET4) && defined(IP4_CFG_FRAGMENT)
379#define NUM_MPF_NET_BUF4_REASSM 2 /* IPv4 再構成バッファサイズ */
380#else
381#define NUM_MPF_NET_BUF4_REASSM 0 /* IPv4 再構成バッファサイズ */
382#endif
383
384#endif /* of #ifndef NUM_MPF_NET_BUF4_REASSM */
385
386#ifndef NUM_MPF_NET_BUF6_REASSM
387
388#if defined(SUPPORT_INET6) && defined(IP6_CFG_FRAGMENT)
389#define NUM_MPF_NET_BUF6_REASSM 2 /* IPv6 再構成バッファサイズ */
390#else
391#define NUM_MPF_NET_BUF6_REASSM 0 /* IPv6 再構成バッファサイズ */
392#endif
393
394#endif /* of #ifndef NUM_MPF_NET_BUF6_REASSM */
395
396#endif /* of #ifdef SUPPORT_ETHER */
397
398#ifdef SUPPORT_LOOP
399
400#ifndef NUM_MPF_NET_BUF_CSEG
401#define NUM_MPF_NET_BUF_CSEG 2 /* IF + IP + TCP */
402#endif /* of #ifndef NUM_MPF_NET_BUF_CSEG */
403
404#ifndef NUM_MPF_NET_BUF_64
405#define NUM_MPF_NET_BUF_64 0 /* 64 オクテット */
406#endif /* of #ifndef NUM_MPF_NET_BUF_64 */
407
408#ifndef NUM_MPF_NET_BUF_128
409#define NUM_MPF_NET_BUF_128 0 /* 128 オクテット、2 以上 */
410#endif /* of #ifndef NUM_MPF_NET_BUF_128 */
411
412#ifndef NUM_MPF_NET_BUF_256
413#define NUM_MPF_NET_BUF_256 0 /* 256 オクテット */
414#endif /* of #ifndef NUM_MPF_NET_BUF_256 */
415
416#ifndef NUM_MPF_NET_BUF_512
417#define NUM_MPF_NET_BUF_512 0 /* 512 オクテット */
418#endif /* of #ifndef NUM_MPF_NET_BUF_512 */
419
420#ifndef NUM_MPF_NET_BUF_1024
421#define NUM_MPF_NET_BUF_1024 0 /* 1024 オクテット */
422#endif /* of #ifndef NUM_MPF_NET_BUF_1024 */
423
424#ifndef NUM_MPF_NET_BUF_IF_PDU
425#define NUM_MPF_NET_BUF_IF_PDU 4 /* IF 最大 PDU サイズ */
426#endif /* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
427
428#endif /* of #ifdef SUPPORT_PPP */
429
430/*
431 * ネットワーク統計情報の計測
432 *
433 * ネットワーク統計情報の計測を行う場合は、tinet/include/net/net.h
434 * で定義されているプロトコル識別フラグを指定する。
435 */
436
437#if 1
438
439#ifdef SUPPORT_INET6
440
441#ifdef SUPPORT_INET4
442
443#define NET_COUNT_ENABLE (0 \
444 | PROTO_FLG_PPP_HDLC \
445 | PROTO_FLG_PPP_PAP \
446 | PROTO_FLG_PPP_LCP \
447 | PROTO_FLG_PPP_IPCP \
448 | PROTO_FLG_PPP \
449 | PROTO_FLG_LOOP \
450 | PROTO_FLG_ETHER_NIC \
451 | PROTO_FLG_ETHER \
452 | PROTO_FLG_IP6 \
453 | PROTO_FLG_ICMP6 \
454 | PROTO_FLG_ND6 \
455 | PROTO_FLG_ARP \
456 | PROTO_FLG_IP4 \
457 | PROTO_FLG_ICMP4 \
458 | PROTO_FLG_TCP \
459 | PROTO_FLG_UDP \
460 | PROTO_FLG_NET_BUF \
461 )
462
463#else /* of #ifdef SUPPORT_INET4 */
464
465#define NET_COUNT_ENABLE (0 \
466 | PROTO_FLG_PPP_HDLC \
467 | PROTO_FLG_PPP_PAP \
468 | PROTO_FLG_PPP_LCP \
469 | PROTO_FLG_PPP_IPCP \
470 | PROTO_FLG_PPP \
471 | PROTO_FLG_LOOP \
472 | PROTO_FLG_ETHER_NIC \
473 | PROTO_FLG_ETHER \
474 | PROTO_FLG_IP6 \
475 | PROTO_FLG_ICMP6 \
476 | PROTO_FLG_ND6 \
477 | PROTO_FLG_TCP \
478 | PROTO_FLG_UDP \
479 | PROTO_FLG_NET_BUF \
480 )
481
482#endif /* of #ifdef SUPPORT_INET4 */
483
484#else /* of #ifdef SUPPORT_INET6 */
485
486#ifdef SUPPORT_INET4
487
488#define NET_COUNT_ENABLE (0 \
489 | PROTO_FLG_PPP_HDLC \
490 | PROTO_FLG_PPP_PAP \
491 | PROTO_FLG_PPP_LCP \
492 | PROTO_FLG_PPP_IPCP \
493 | PROTO_FLG_PPP \
494 | PROTO_FLG_LOOP \
495 | PROTO_FLG_ETHER_NIC \
496 | PROTO_FLG_ETHER \
497 | PROTO_FLG_ARP \
498 | PROTO_FLG_IP4 \
499 | PROTO_FLG_ICMP4 \
500 | PROTO_FLG_TCP \
501 | PROTO_FLG_UDP \
502 | PROTO_FLG_NET_BUF \
503 )
504
505#endif /* of #ifdef SUPPORT_INET4 */
506
507#endif /* of #ifdef SUPPORT_INET6 */
508
509#else /* of #if 0 */
510
511#define NET_COUNT_ENABLE (0 \
512 )
513
514#endif /* of #if 0 */
515
516#ifndef TOPPERS_MACRO_ONLY
517
518/*
519 * 関数
520 */
521
522extern void mbed_bus_init (void);
523extern void mbed_inter_init (void);
524
525#endif /* of #ifndef TOPPERS_MACRO_ONLY */
526
527#endif /* _TINET_TARGET_CONFIG_H_ */
Note: See TracBrowser for help on using the repository browser.