source: EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_config.h@ 331

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

prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 16.5 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 /* [ms]、受信用 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 * イーサネット出力時に、NIC で net_buf を開放する場合に指定する。
192 *
193 * 注意: 以下の指定は、指定例であり、if_mbed では、
194 * 開放しないので、以下のコメントを外してはならない。
195 */
196
197/*#define ETHER_NIC_CFG_RELEASE_NET_BUF*/
198
199/*
200 * MBED Ethernet Controler に関する定義
201 */
202
203#define INHNO_IF_MBED ETHERI_IRQn /* IRQ5 */
204#define INTNO_IF_MBED ETHERI_IRQn /* IRQ5 */
205#define INTATR_IF_MBED (TA_NULL) /* 割込み属性 */
206#define INTPRI_IF_MBED (-1) /* 割込み優先度 */
207
208/*
209 * ARP に関する定義
210 */
211
212#define NUM_ARP_ENTRY 10 /* ARP キャッシュエントリ数 */
213
214/*
215 * DHCP に関する定義
216 *
217 * ・注意: TINET は、DHCP を実装していない。応用プログラムで、
218 * DHCP メッセージを受信するための定義である。
219 * また、現在は IPv4 のみ有効である。
220 */
221
222/*#define DHCP_CFG DHCP を処理する場合はコメントを外す。*/
223
224/*
225 * Ethernet に関する定義
226 */
227
228/*#define ETHER_CFG_ACCEPT_ALL マルチキャスト、エラーフレームも受信するときはコメントを外す。 */
229/*#define ETHER_CFG_UNEXP_WARNING 非サポートフレームの警告を表示するときはコメントを外す。 */
230/*#define ETHER_CFG_802_WARNING IEEE 802.3 フレームの警告を表示するときはコメントを外す。 */
231/*#define ETHER_CFG_MCAST_WARNING マルチキャストの警告を表示するときはコメントを外す。 */
232#define ETHER_CFG_MULTICAST /* マルチキャストを送受信 */
233
234/*
235 * アドレスリストに関する定義。
236 */
237#define NUM_IN6_IFADDR_ENTRY 5 /* インタフェースのアドレスリストのエントリ数 */
238
239/*
240 * 汎用ネットワークに関する定義
241 */
242
243/*
244 * ネットワークバッファに関する定義
245 */
246
247/* ネットワークバッファ数 */
248
249#ifdef SUPPORT_PPP
250
251/*
252 * PPP では、受信用の ネットワークバッファは PDU (1502) サイズを常に
253 * 割り当てなければならないので PDU サイズを多めに確保する。
254 */
255
256#ifndef NUM_MPF_NET_BUF_CSEG
257#define NUM_MPF_NET_BUF_CSEG 2 /* IF + IP + TCP、2 以上*/
258#endif /* of #ifndef NUM_MPF_NET_BUF_CSEG */
259
260#ifndef NUM_MPF_NET_BUF_64
261#define NUM_MPF_NET_BUF_64 0 /* 64 オクテット */
262#endif /* of #ifndef NUM_MPF_NET_BUF_64 */
263
264#ifndef NUM_MPF_NET_BUF_128
265#define NUM_MPF_NET_BUF_128 0 /* 128 オクテット */
266#endif /* of #ifndef NUM_MPF_NET_BUF_128 */
267
268#ifndef NUM_MPF_NET_BUF_256
269#define NUM_MPF_NET_BUF_256 0 /* 256 オクテット */
270#endif /* of #ifndef NUM_MPF_NET_BUF_256 */
271
272#ifndef NUM_MPF_NET_BUF_512
273#define NUM_MPF_NET_BUF_512 0 /* 512 オクテット */
274#endif /* of #ifndef NUM_MPF_NET_BUF_512 */
275
276#ifndef NUM_MPF_NET_BUF_1024
277#define NUM_MPF_NET_BUF_1024 0 /* 1024 オクテット */
278#endif /* of #ifndef NUM_MPF_NET_BUF_1024 */
279
280#ifndef NUM_MPF_NET_BUF_IF_PDU
281#define NUM_MPF_NET_BUF_IF_PDU 2 /* IF 最大 PDU サイズ */
282#endif /* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
283
284#ifndef NUM_MPF_NET_BUF4_REASSM
285
286#if defined(SUPPORT_INET4) && defined(IP4_CFG_FRAGMENT)
287#define NUM_MPF_NET_BUF4_REASSM 2 /* IPv4 再構成バッファサイズ */
288#else
289#define NUM_MPF_NET_BUF4_REASSM 0 /* IPv4 再構成バッファサイズ */
290#endif
291
292#endif /* of #ifndef NUM_MPF_NET_BUF4_REASSM */
293
294#ifndef NUM_MPF_NET_BUF6_REASSM
295
296#if defined(SUPPORT_INET6) && defined(IP6_CFG_FRAGMENT)
297#define NUM_MPF_NET_BUF6_REASSM 2 /* IPv6 再構成バッファサイズ */
298#else
299#define NUM_MPF_NET_BUF6_REASSM 0 /* IPv6 再構成バッファサイズ */
300#endif
301
302#endif /* of #ifndef NUM_MPF_NET_BUF6_REASSM */
303
304#endif /* of #ifdef SUPPORT_PPP */
305
306#ifdef SUPPORT_ETHER
307
308/*
309 * イーサネットの場合のネットワークバッファ数の割り当て
310 */
311
312/*
313 * 注意!!
314 *
315 * MBED Ethernet Controler のディバイスドライバ(if_mbed)の最低割当て長は
316 * 60(アラインして 62)オクテットのため IF + IP +TCP よりは
317 * 64 オクテットのネットワークバッファの方が最適である。
318 */
319
320#ifndef NUM_MPF_NET_BUF_CSEG
321#define NUM_MPF_NET_BUF_CSEG 0 /* IF + IP + TCP */
322#endif /* of #ifndef NUM_MPF_NET_BUF_CSEG */
323
324#ifndef NUM_MPF_NET_BUF_64
325#define NUM_MPF_NET_BUF_64 2 /* 64 オクテット */
326#endif /* of #ifndef NUM_MPF_NET_BUF_64 */
327
328#ifndef NUM_MPF_NET_BUF_128
329#define NUM_MPF_NET_BUF_128 0 /* 128 オクテット */
330#endif /* of #ifndef NUM_MPF_NET_BUF_128 */
331
332#ifndef NUM_MPF_NET_BUF_256
333#define NUM_MPF_NET_BUF_256 0 /* 256 オクテット */
334#endif /* of #ifndef NUM_MPF_NET_BUF_256 */
335
336#ifndef NUM_MPF_NET_BUF_512
337#define NUM_MPF_NET_BUF_512 0 /* 512 オクテット */
338#endif /* of #ifndef NUM_MPF_NET_BUF_512 */
339
340#if defined(SUPPORT_INET4)
341
342#ifndef NUM_MPF_NET_BUF_IP_MSS
343#define NUM_MPF_NET_BUF_IP_MSS 0 /* IF + 576 オクテット */
344#endif /* of #ifndef NUM_MPF_NET_BUF_IP_MSS */
345
346#endif /* of #if defined(SUPPORT_INET4) */
347
348#ifndef NUM_MPF_NET_BUF_1024
349#define NUM_MPF_NET_BUF_1024 0 /* 1024 オクテット */
350#endif /* of #ifndef NUM_MPF_NET_BUF_1024 */
351
352#if defined(SUPPORT_INET6)
353
354#ifndef NUM_MPF_NET_BUF_IPV6_MMTU
355#define NUM_MPF_NET_BUF_IPV6_MMTU 0 /* IF + 1280 */
356#endif /* of #ifndef NUM_MPF_NET_BUF_IPV6_MMTU */
357
358#endif /* of #if defined(SUPPORT_INET6) */
359
360#ifndef NUM_MPF_NET_BUF_IF_PDU
361#define NUM_MPF_NET_BUF_IF_PDU 4 /* IF 最大 PDU サイズ */
362#endif /* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
363
364#ifndef NUM_MPF_NET_BUF4_REASSM
365
366#if defined(SUPPORT_INET4) && defined(IP4_CFG_FRAGMENT)
367#define NUM_MPF_NET_BUF4_REASSM 2 /* IPv4 再構成バッファサイズ */
368#else
369#define NUM_MPF_NET_BUF4_REASSM 0 /* IPv4 再構成バッファサイズ */
370#endif
371
372#endif /* of #ifndef NUM_MPF_NET_BUF4_REASSM */
373
374#ifndef NUM_MPF_NET_BUF6_REASSM
375
376#if defined(SUPPORT_INET6) && defined(IP6_CFG_FRAGMENT)
377#define NUM_MPF_NET_BUF6_REASSM 2 /* IPv6 再構成バッファサイズ */
378#else
379#define NUM_MPF_NET_BUF6_REASSM 0 /* IPv6 再構成バッファサイズ */
380#endif
381
382#endif /* of #ifndef NUM_MPF_NET_BUF6_REASSM */
383
384#endif /* of #ifdef SUPPORT_ETHER */
385
386#ifdef SUPPORT_LOOP
387
388#ifndef NUM_MPF_NET_BUF_CSEG
389#define NUM_MPF_NET_BUF_CSEG 2 /* IF + IP + TCP */
390#endif /* of #ifndef NUM_MPF_NET_BUF_CSEG */
391
392#ifndef NUM_MPF_NET_BUF_64
393#define NUM_MPF_NET_BUF_64 0 /* 64 オクテット */
394#endif /* of #ifndef NUM_MPF_NET_BUF_64 */
395
396#ifndef NUM_MPF_NET_BUF_128
397#define NUM_MPF_NET_BUF_128 0 /* 128 オクテット、2 以上 */
398#endif /* of #ifndef NUM_MPF_NET_BUF_128 */
399
400#ifndef NUM_MPF_NET_BUF_256
401#define NUM_MPF_NET_BUF_256 0 /* 256 オクテット */
402#endif /* of #ifndef NUM_MPF_NET_BUF_256 */
403
404#ifndef NUM_MPF_NET_BUF_512
405#define NUM_MPF_NET_BUF_512 0 /* 512 オクテット */
406#endif /* of #ifndef NUM_MPF_NET_BUF_512 */
407
408#ifndef NUM_MPF_NET_BUF_1024
409#define NUM_MPF_NET_BUF_1024 0 /* 1024 オクテット */
410#endif /* of #ifndef NUM_MPF_NET_BUF_1024 */
411
412#ifndef NUM_MPF_NET_BUF_IF_PDU
413#define NUM_MPF_NET_BUF_IF_PDU 4 /* IF 最大 PDU サイズ */
414#endif /* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
415
416#endif /* of #ifdef SUPPORT_PPP */
417
418/*
419 * ネットワーク統計情報の計測
420 *
421 * ネットワーク統計情報の計測を行う場合は、tinet/include/net/net.h
422 * で定義されているプロトコル識別フラグを指定する。
423 */
424
425#if 1
426
427#ifdef SUPPORT_INET6
428
429#ifdef SUPPORT_INET4
430
431#define NET_COUNT_ENABLE (0 \
432 | PROTO_FLG_PPP_HDLC \
433 | PROTO_FLG_PPP_PAP \
434 | PROTO_FLG_PPP_LCP \
435 | PROTO_FLG_PPP_IPCP \
436 | PROTO_FLG_PPP \
437 | PROTO_FLG_LOOP \
438 | PROTO_FLG_ETHER_NIC \
439 | PROTO_FLG_ETHER \
440 | PROTO_FLG_IP6 \
441 | PROTO_FLG_ICMP6 \
442 | PROTO_FLG_ND6 \
443 | PROTO_FLG_ARP \
444 | PROTO_FLG_IP4 \
445 | PROTO_FLG_ICMP4 \
446 | PROTO_FLG_TCP \
447 | PROTO_FLG_UDP \
448 | PROTO_FLG_NET_BUF \
449 )
450
451#else /* of #ifdef SUPPORT_INET4 */
452
453#define NET_COUNT_ENABLE (0 \
454 | PROTO_FLG_PPP_HDLC \
455 | PROTO_FLG_PPP_PAP \
456 | PROTO_FLG_PPP_LCP \
457 | PROTO_FLG_PPP_IPCP \
458 | PROTO_FLG_PPP \
459 | PROTO_FLG_LOOP \
460 | PROTO_FLG_ETHER_NIC \
461 | PROTO_FLG_ETHER \
462 | PROTO_FLG_IP6 \
463 | PROTO_FLG_ICMP6 \
464 | PROTO_FLG_ND6 \
465 | PROTO_FLG_TCP \
466 | PROTO_FLG_UDP \
467 | PROTO_FLG_NET_BUF \
468 )
469
470#endif /* of #ifdef SUPPORT_INET4 */
471
472#else /* of #ifdef SUPPORT_INET6 */
473
474#ifdef SUPPORT_INET4
475
476#define NET_COUNT_ENABLE (0 \
477 | PROTO_FLG_PPP_HDLC \
478 | PROTO_FLG_PPP_PAP \
479 | PROTO_FLG_PPP_LCP \
480 | PROTO_FLG_PPP_IPCP \
481 | PROTO_FLG_PPP \
482 | PROTO_FLG_LOOP \
483 | PROTO_FLG_ETHER_NIC \
484 | PROTO_FLG_ETHER \
485 | PROTO_FLG_ARP \
486 | PROTO_FLG_IP4 \
487 | PROTO_FLG_ICMP4 \
488 | PROTO_FLG_TCP \
489 | PROTO_FLG_UDP \
490 | PROTO_FLG_NET_BUF \
491 )
492
493#endif /* of #ifdef SUPPORT_INET4 */
494
495#endif /* of #ifdef SUPPORT_INET6 */
496
497#else /* of #if 0 */
498
499#define NET_COUNT_ENABLE (0 \
500 )
501
502#endif /* of #if 0 */
503
504#ifndef TOPPERS_MACRO_ONLY
505
506/*
507 * 関数
508 */
509
510extern void mbed_bus_init (void);
511extern void mbed_inter_init (void);
512
513#endif /* of #ifndef TOPPERS_MACRO_ONLY */
514
515#endif /* _TINET_TARGET_CONFIG_H_ */
Note: See TracBrowser for help on using the repository browser.