source: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/tinet_target_config.h@ 315

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

SVNプロパティを設定

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