source: rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_sample.txt@ 313

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

ソースを追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/plain
File size: 49.3 KB
Line 
1 TCP/IP プロトコルスタック(TINET)
2 サンプルアプリケーション(リリース 1.7)[2017/5/15]
3
41. サンプルアプリケーション
5
6 サンプルとして、以下のアプリケーションを提供している。【】内
7は【アプ
8リケーション名、対応するネットワーク層】である。IPv64 はネットワーク層
9として IPv6 と IPv4 の両方を使用することを意味しており、 IPv64m は、
10IPv4 は IPv6 の IPv4 射影アドレスにより実装
11している。
12
13 (1) IPv6 TCP ECHO サーバ【echos6、IPv6】
14 ネットワークアプリケーションに必
15要な各ファイルの設定方法の
16 参考となる、 TCP エコーサーバ機能のみのシンプルなアプリケーショ
17 ンである。
18 (2) IPv4 TCP ECHO サーバ【echos4、IPv4】
19 ネットワークアプリケーションに必
20要な各ファイルの設定方法の
21 参考となる、 TCP エコーサーバ機能のみのシンプルなアプリケーショ
22 ンである。
23 (3) IPv6 UDP ECHO サーバ【usrv6、IPv6】
24 ネットワークアプリケーションに必
25要な各ファイルの設定方法の
26 参考となる、 UDP エコーサーバ機能のみのシンプルなアプリケーショ
27 ンである。
28 (4) IPv4 UDP ECHO サーバ【usrv4、IPv4】
29 ネットワークアプリケーションに必
30要な各ファイルの設定方法の
31 参考となる、 UDP エコーサーバ機能のみのシンプルなアプリケーショ
32 ンである。
33 (5) クライアントサーバ・セット【nserv、IPv64/IPv6/IPv64m/IPv4】
34 以下に示すサーバが提供されており、 必
35要に応じて組み込むサー
36 バを選択できる。
37
38 [1] WWW サーバ
39 [2] TCP エコーサーバ
40 [3] UDP エコーサーバ
41 [4] TCP ディスカードサーバ
42 [5] 簡易コンソール
43
44 また、クライアントとしては以下の機能が提供されており、 必
45要に
46 応じて組み込むクライアントを選択できる。
47
48 [1] TCP エコークライアント
49 [2] UDP エコークライアント
50 [3] TCP ディスカードクライアント
51 [4] UDP ディスカードクライアント
52 [5] DNS リゾルバー
53 [6] DHCPv6 クライアント
54 [7] DHCPv4 クライアント
55 [8] ping
56
57 (6) TOPPERS ASP/JSP サンプルプログラム sample1 のネットワーク対応
58 プログラム【sample1n、IPv6/IPv4】
59 TOPPERS/ASP と TOPPERS/JSP のサンプルプログラム sample1 の
60 ネットワーク対応プログラムである。telnet で接続すると、シリア
61 ルのå…
62¥å‡ºåŠ›ã‚’引き継いで実行する。切断すると、 å…
63ƒã®ã‚·ãƒªã‚¢ãƒ«ã«å…
64¥
65 出力を戻す。
66 (7) 最小構成サーバ【minsv、IPv4】
67 WWW サーバ・タスクと TCP エコーサーバ・タスクのみからなる最
68 小構成のサーバである。H8/3069F が内
69蔵している RAM(16K バイト)
70 と ROM(512K バイト)に収まり、外部メモリは不要である。現在は、
71 品川通信計装
72サービス製 NKEV-010H8(TOPPERS/JSP リリース 1.4.2
73 のみ)と秋月電子通商製 H8/3069F(TOPPERS/JSP リリース 1.4.1
74 以降と TOPPERS/ASP)のシステムに対応している。
75
762. サンプルアプリケーションの構築
77
78 TINET サンプルアプリケーションの構築は、 TOPPERS/ASP 環境と
79TOPPERS/JSP 環境におけるのサンプルアプリケーションの構築とほぼ同じであ
80る。
81
82 (1) TINET コンフィギュレーションスクリプトの実行
83 TINET サンプルアプリケーションの構築用ディレクトリを作成し、
84 TINET コンフィギュレーションスクリプトを実行する。
85
86 [1] TOPPERS/ASP 用 TINET コンフィギュレーションスクリプトの
87 実行
88
89 $ mkdir NETOBJ
90 $ cd NETOBJ
91 $ perl ../tinet/tinet_asp_configure -T akih8_3069f_gcc -A echos6
92 -i ether -v if_ed -n inet6 -s tcp
93
94 オプション(-T、-A、-a、-U、-L、-f、-D、-l、-t、-d、 -r、
95 -p、 -g)は、TOPPERS/ASP コンフィギュレーションスクリプ
96 トと同じである。 TOPPERS/ASP カーネルユーザーズマニュア
97 ル(user.txt)の「 5.コンフィギュレーションスクリプト
98 の使い方 」を参ç…
99§ã™ã‚‹ã“と。その他のオプションについては、
100 「9.2 TINET コンフィギュレーションスクリプトのオプショ
101 ン 」を参ç…
102§ã™ã‚‹ã“と。
103 アプリケーションとカーネルを別々
104に構築する方法につい
105 ては、 TOPPERS/ASP 環境におけるサンプルアプリケーション
106 の構築と同じである。 TOPPERS/ASP カーネルユーザーズマニュ
107 アル(user.txt)の「3.5 アプリケーションとカーネルを別
108 々
109に構築する方法 」を参ç…
110§ã™ã‚‹ã“と。
111 [2] TOPPERS/JSP 用 TINET コンフィギュレーションスクリプトの実行
112
113 $ mkdir NETOBJ
114 $ cd NETOBJ
115 $ perl ../tinet/tinet_jsp_configure -C h8 -S akih8_3069f -A echos6
116 -i ether -v if_ed -n inet6 -s tcp
117
118 オプション(-C、 -S、-T、-A、-U、-L、-D、-P、-p、-l)は、
119 TOPPERS/JSP コンフィギュレーションスクリプトと同じであ
120 る。 TOPPERS/JSP カーネルユーザーズマニュアル(user.txt)
121 の「 7.6 コンフィギュレーションスクリプトの使い方 」を
122 参ç…
123§ã™ã‚‹ã“と。 その他のオプションについては、「TINET コ
124 ンフィギュレーションスクリプトのオプション 」を参ç…
125§ã™ã‚‹ã“と。
126 アプリケーションとカーネルを別々
127に構築する方法につい
128 ては、 TOPPERS/JSP 環境におけるサンプルアプリケーション
129 の構築と同じである。 TOPPERS/JSP カーネルユーザーズマニュ
130 アル(user.txt)の「7.5 アプリケーションとカーネルを別
131 々
132に構築する方法 」を参ç…
133§ã™ã‚‹ã“と。
134
135 上記の例で、TOPPERS/ASP 環境と TOPPERS/JSP 環境のいずれの場
136 合も、ディレクトリ NETOBJ に以下のファイルが生成される。
137
138 Makefile Makefile
139 echos6.c サンプルプログラム本体
140 echos6.h サンプルプログラムのヘッダファイル
141 echos6.cfg サンプルプログラム用 ASP コンフィ
142 ギュレーションファイル
143 tinet_echos6.cfg サンプルプログラム用 TINET コンフィ
144 ギュレーションファイル
145 route_cfg.c サンプルプログラム用ルーティング表
146 tinet_app_config.h サンプルプログラム用コンパイル時指
147 定コンフィギュレーション
148
149 必
150要であれば、 Makefile を修正する。 修正については、
151 TOPPERS/ASP 環境では「7.3 アプリケーションの Makefile」、
152 TOPPERS/JSP 環境では「8.3 アプリケーションの Makefile」を参ç…
153§
154 すること。
155 以下のサンプルアプリケーションでは、構築上の注意がある。 各
156 章を参ç…
157§ã™ã‚‹ã“と。
158
159 [1] 「9.3 クライアントサーバ・セット」
160 [2] 「9.4 TOPPERS ASP/JSP サンプルプログラム sample1 の
161 ネットワーク対応プログラム」
162 [3] 「9.5 最小構成サーバ」
163
164 (2) tinet_app_config.h の設定
165 IPv4 の場合、 IP アドレス、サブネットマスク、ディフォルトゲー
166 トウェイを指定する。
167
168 [1] IPV4_ADDR_LOCAL
169 自分の IP アドレスを指定する。ただし、 PPP を使用すると
170 き、相手に割当ててもらう場合は 0 を指定すること。なお、
171 PPP は参考実装
172である。
173 [2] IPV4_ADDR_REMOTE
174 相手の IP アドレスを指定する。 ただし、PPP を使用すると
175 き、相手に割当ててもらう場合は 0 を指定すること。なお、
176 PPP は参考実装
177である。
178 [3] IPV4_ADDR_LOCAL_MASK
179 サブネットマスクを指定する。ただし、 ネットワークインタ
180 フェースがイーサネットのとき有効である。
181 [4] IPV4_ADDR_DEFAULT_GW
182 ディフォルトゲートウェイを指定する。ただし、 ネットワー
183 クインタフェースがイーサネットのとき有効である。
184
185 (3) route_cfg.c の設定
186 ネットワークインタフェースがイーサネットの場合は、 ルーティ
187 ング表 routing_tbl を設定する。ただし、ディフォルトゲートウェ
188 イのみのシンプルなネットワークでは、 変更する必
189要はない。
190
191 (4) サンプルプログラムのコンパイル・リンク
192 TINET サンプルアプリケーションの構築用ディレクトリで、 サン
193 プルプログラムをコンパイル・リンクする。 コンパイル・リンクの
194 方法を以下に示す。
195
196 $ make depend
197 $ make
198
1993. TINET コンフィギュレーションスクリプトのオプション
200
2013. 1 TOPPERS/APS 用 TINET コンフィギュレーションスクリプトのオプション
202
203 TOPPERS/ASP 環境では、オプション(-T、-A、-a、-U、-L、-f、-D、-l、-d、
204-r、-p、-g)は、TOPPERS/ASP コンフィギュレーションスクリプトと同じであ
205る。 TOPPERS/ASP 用 TINET コンフィギュレーションスクリプト特有のオプショ
206ンを以下に示す。
207
208 -e <tinetdir> TINET のソースの置かれているディレクトリ
209 -i <net_if> ネットワークインタフェース(必
210須)
211 <net_if> には ether、ppp、loop の何れかを
212 指定する。
213
214 -v <net_dev> イーサネット・ディバイスドライバ
215 (ネットワークインタフェースに ether を指
216 定した場合は必
217須)
218 -n <net_proto> ネットワーク層プロトコル(必
219須)
220 <net_proto> に指定できるプロトコルを以下
221 に示す。
222
223 inet6 IPv6 のみ
224 inet4 IPv4 のみ
225 inet6/inet4 IPv6/IPv4 の両方
226 (デュアルスタック)
227 inet6m IPv6 のみで、 IPv4 射
228 影アドレス指定可能
229 inet6m/inet4 IPv6/IPv4 の両方と
230 IPv4 射影アドレス指定可能
231
232 -s <trans_proto> トランスポート層プロトコル(必
233須)
234 <trans_proto> には tcp、udp、tcp/udp の何
235 れかを指定する。
236 -t <templatedir> TINET テンプレートディレクトリ
237 デフォルトは tinet/asp_sample である。 な
238 お、 TOPPERS/ASP の同じオプションのデフォ
239 ルトは sample である。
240 -m <asptemplatedir> ASP テンプレートディレクトリ
241 デフォルトは sample である。
242
2433. 2 TOPPERS/JPS 用 TINET コンフィギュレーションスクリプトのオプション
244
245 TOPPERS/JSP 環境では、オプション(-C、-S、-T、-A、-U、-L、-D、-P、-p、
246-l)は、 TOPPERS/JSP コンフィギュレーションスクリプトと同じである。
247TOPPERS/ASP 用 TINET コンフィギュレーションスクリプト特有のオプション
248を以下に示す。
249
250 -e <tinetdir> TINET のソースの置かれているディレクトリ
251 -i <net_if> ネットワークインタフェース(必
252須)
253 <net_if> には ether、ppp、loop の何れかを
254 指定する。
255 -v <net_dev> イーサネット・ディバイスドライバ
256 (ネットワークインタフェースに ether を指
257 定した場合は必
258須)
259 -n <net_proto> ネットワーク層プロトコル(必
260須)
261 <net_proto> に指定できるプロトコルを以下
262 に示す。
263
264 inet6 IPv6 のみ
265 inet4 IPv4 のみ
266 inet6/inet4 IPv6/IPv4 の両方
267 (デュアルスタック)
268 inet6m IPv6 のみで、 IPv4 射
269 影アドレス指定可能
270 inet6m/inet4 IPv6/IPv4 の両方と
271 IPv4 射影アドレス指定
272 可能
273
274 -s <trans_proto> トランスポート層プロトコル(必
275須)
276 <trans_proto> には tcp、udp、tcp/udp の何
277 れかを指定する。
278 -d <dir> TINET テンプレートディレクトリ
279 デフォルトは tinet/jsp_sample である。 な
280 お、 TOPPERS/JSP の同じオプションのデフォ
281 ルトは sample である。
282 -m <jsptemplatedir> JSP テンプレートディレクトリ
283 デフォルトは sample である。
284
2854. クライアントサーバ・セットの構築
286
287 以下に示すサーバが提供されており、必
288要に応じて組み込むサーバを選択で
289きる。()内
290は、tinet/netapp 内
291にあるソースファイル名である。なお、 ディ
292フォルトで、 ITRON TCP/IP API 仕様の TCP と UDP の拡張機能が組込まれて
293いるので、「9.3.2 簡易コンソールのコマンド 」の wtw (wtw4)、wte (wte4)、
294wue、wtd コマンドで、それぞれのサーバ・タスクを起動する必
295要がある。
296
297 [1] WWW サーバ・タスク(wwws.c)
298 ルートページの他に、ネットワーク統計情
299報を表示する 2 ページか
300 ら構成され、タスク数は最大 2 である。
301 [2] TCP エコーサーバ・タスク
302 tcp_echo_srv1.c と tcp_echo_srv2.c のどちらかを選択する。
303 tcp_echo_srv1.c を選択した場合、省コピー API を使用して、ノン
304 ブロッキングコールを使用しない時は、タスク数を 8 まで指定可能
305 である。
306 [3] UDP エコーサーバ・タスク(udp_echo_srv.c)
307 [4] TCP ディスカードサーバ・タスク(tcp_discard_srv.c)
308 [5] 簡易コンソール・タスク(dbg_cons.c)
309 シリアルインタフェースだけでなく、telnet プロトコルを使用して、
310 ネットワーク経由で利用することも可能である。telnet で接続する
311 と、シリアルのå…
312¥å‡ºåŠ›ã‚’引き継いで実行する。切断すると、 å…
313ƒã®ã‚·
314 リアルにå…
315¥å‡ºåŠ›ã‚’戻す。 ただし、TCP のノンブロッキングコールを
316 組込む必
317要がある。
318
319また、クライアントとしては以下の機能が提供されており、必
320要に応じて組み
321込むクライアントを選択できる。
322
323 [1] TCP エコークライアント・タスク(tcp_echo_cli.c)
324 [2] UDP エコークライアント・タスク(udp_echo_cli.c)
325 [3] TCP ディスカードクライアント・タスク(tcp_discard_cli.c)
326 [4] UDP ディスカードクライアント・タスク(udp_discard_cli.c)
327 [5] ping(ping.c)
328
3294. 1 Makefile の設定
330
331 (1) 組込む機能の選択
332
333 [1] TCP の受信ウィンドバッファの省コピー機能
334 サンプルアプリケーションで、 TCP の受信ウィンドバッファ
335 の省コピー機能を組込む場合は、
336
337 TCP_CFG_RWBUF_CSAVE_ONLY = true
338
339 または、
340
341 TCP_CFG_RWBUF_CSAVE = true
342
343 を選択する。 TCP_CFG_RWBUF_CSAVE_ONLY を選択すると、TCP
344 通信端点を生成する静的 API である TCP_CRE_CEP で、 受信
345 ウィンドバッファ rbuf に、 メモリアドレスを指定しても、
346 プロトコルスタックは、この指定を無視して、 TCP の受信ウィ
347 ンドバッファの省コピー機能により処理する。 また、
348 TCP_CFG_RWBUF_CSAVE を選択すると、TCP_CRE_CEP で、 受信
349 ウィンドバッファ rbuf に、 NADR(NULL)を指定したときの
350 み、プロトコルスタックは TCP の受信ウィンドバッファの省
351 コピー機能により処理する。
352
353 [2] TCP の送信ウィンドバッファの省コピー機能
354 サンプルアプリケーションで、 TCP の送信ウィンドバッファ
355 の省コピー機能を組込む場合は、
356
357 TCP_CFG_SWBUF_CSAVE_ONLY = true
358
359 または、
360
361 TCP_CFG_SWBUF_CSAVE = true
362
363 を選択する。 TCP_CFG_SWBUF_CSAVE_ONLY を選択すると、TCP
364 通信端点を生成する静的 API である TCP_CRE_CEP で、 送信
365 ウィンドバッファ rbuf に、 メモリアドレスを指定しても、
366 プロトコルスタックは、この指定を無視して、 TCP の送信ウィ
367 ンドバッファの省コピー機能により処理する。 また、
368 TCP_CFG_SWBUF_CSAVE を選択すると、TCP_CRE_CEP で、 送信
369 ウィンドバッファ rbuf に、 NADR(NULL)を指定したときの
370 み、プロトコルスタックは TCP の送信ウィンドバッファの省
371 コピー機能により処理する。
372
373 [3] TCP のノンブロッキングコール
374 サンプルアプリケーションで、 TCP のノンブロッキングコー
375 ルを組込む場合は、
376
377 TCP_CFG_NON_BLOCKING = true
378
379 を選択する。
380
381 [4] UDP のノンブロッキングコール
382 サンプルアプリケーションで、 UDP のノンブロッキングコー
383 ルを組込む場合は、
384
385 UDP_CFG_NON_BLOCKING = true
386
387 を選択する。
388
389 [5] ITRON TCP/IP API 仕様の TCP の拡張機能
390 サンプルアプリケーションで、 ITRON TCP/IP API 仕様の
391 TCP の拡張機能を組込む場合は、
392
393 TCP_CFG_EXTENTIONS = true
394
395 を選択する。ディフォルトで true に設定されている。
396
397 [6] ITRON TCP/IP API 仕様の UDP の拡張機能
398 サンプルアプリケーションで、 ITRON TCP/IP API 仕様の
399 UDP の拡張機能を組込む場合は、
400
401 UDP_CFG_EXTENTIONS = true
402
403 を選択する。ディフォルトで true に設定されている。
404
405 (2) ノンブロッキングコール、ITRON TCP/IP API 仕様の拡張機能と省コ
406 ピー API の選択
407
408 [1] TCP のノンブロッキングコール
409 サンプルアプリケーションで、 TCP のノンブロッキングコー
410 ルを使用する場合は、
411
412 USE_TCP_NON_BLOCKING = true
413
414 を選択する。
415
416 [2] ITRON TCP/IP API 仕様の TCP の拡張機能
417 サンプルアプリケーションで、 ITRON TCP/IP API 仕様の
418 TCP の拡張機能を使用する場合は、
419
420 USE_TCP_EXTENTIONS = true
421
422 を選択する。ディフォルトで true に設定されている。
423
424 [3] 省コピー API
425 サンプルアプリケーションで、省コピー API を使用する場合は、
426
427 USE_COPYSAVE_API = true
428
429 を選択する。
430
431 [4] UDP のノンブロッキングコール
432 サンプルアプリケーションで、 UDP のノンブロッキングコー
433 ルを使用する場合は、
434
435 USE_UDP_NON_BLOCKING = true
436
437 を選択する。 ただし、 コールバックとは同時に使用できない。
438
439 [5] ITRON TCP/IP API 仕様の UDP の拡張機能
440 サンプルアプリケーションで、 ITRON TCP/IP API 仕様の
441 UDP の拡張機能を使用する場合は、
442
443 USE_UDP_EXTENTIONS = true
444
445 を選択する。ディフォルトで true に設定されている。
446
447 [6] UDP のコールバック
448 サンプルアプリケーションで、 UDP のコールバックを使用
449 する場合は、
450
451 USE_UDP_CALL_BACK = true
452
453 を選択する。ただし、 ノンブロッキングコールとは同時に使
454 用できない。
455
456 (3) å…
457±é€šã‚µãƒ¼ãƒãƒ—ログラムの選択
458
459 [1] WWW サーバプログラムを使用する場合は、 以下の行を有効にする。
460
461 USE_WWW_SRV = ture
462
463 [2] WWW サーバプログラム(IPv4 優å…
464ˆæŽ¥ç¶šå¾…
465ち)を使用する場合
466 は、以下の行を有効にする。
467
468 USE_WWW4_SRV = ture
469
470 [3] UDP エコーサーバプログラムを使用する場合は、 以下の行を
471 有効にする。
472
473 USE_UDP_ECHO_SRV = ture
474
475 [4] UDP エコーサーバプログラム(IPv4 優å…
476ˆæŽ¥ç¶šå¾…
477ち)を使用す
478 る場合は、以下の行を有効にする。
479
480 USE_UDP4_ECHO_SRV = ture
481
482 [5] TCP ディスカードサーバプログラムを使用する場合は、 以下
483 の行を有効にする。
484
485 USE_TCP_DISCARD_SRV = ture
486
487 [6] 送受信タスク同一型の TCP エコーサーバプログラムを使用す
488 る場合は、以下の行を有効にする。
489
490 TCP_ECHO_SRV = tcp_echo_srv1
491
492 [7] 送受信タスク分離型の TCP エコーサーバプログラムを使用す
493 る場合は、以下の行を有効にする。
494
495 TCP_ECHO_SRV = tcp_echo_srv2
496
497 [8] TCP エコーサーバプログラム(IPv4 優å…
498ˆæŽ¥ç¶šå¾…
499ち)を使用す
500 る場合は、以下の行を有効にする。ただし、 送受信タスク同
501 一型の TCP エコーサーバプログラムを使用する場合のみ有効
502 である。
503
504 USE_TCP4_ECHO_SRV = ture
505
506 [9] シリアル経由のみコンソールå…
507¥å‡ºåŠ›ã‚’使用する場合は、 以下
508 の行を有効にする。
509
510 USE_DBG_CONS = true
511
512 [10] シリアルとネットワーク経由のコンソールå…
513¥å‡ºåŠ›ã‚’使用する
514 場合は、以下の行を有効にする。
515
516 USE_NET_CONS = true
517
518 ただし、 ノンブロッキングコールを組込んだ時のみ有効である。
519
520 (4) å…
521±é€šã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆãƒ—ログラムの選択
522
523 [1] TCP エコークライアントプログラムを使用する場合は、 以下
524 の行を有効にする。
525
526 USE_TCP_ECHO_CLI = ture
527
528 [2] TCP エコークライアントプログラムで、IPv4 アドレスを指定
529 した時、tcp_con_cep を呼出し、IPv4 により接続する場合は
530 以下の行を有効にする。 なお、 ネットワーク層の選択で、
531 IPv6 と IPv4 の両方を指定した場合、この指定を行わないと
532 tcp_con_cep ではなく、 tcp6_con_cep を呼出す。 従って、
533 API_CFG_IP4MAPPED_ADDR を指定していないと、E_PAR が返さ
534 れるが、tcp6_con_cep のテストのためであり、問題はない。
535
536 USE_TCP4_ECHO_CLI = ture
537
538 [3] UDP エコークライアントプログラムを使用する場合は、 以下
539 の行を有効にする。
540
541 USE_UDP_ECHO_CLI = ture
542
543 [4] UDP エコークライアントプログラム(IPv4 優å…
544ˆæŽ¥ç¶šå¾…
545ち)を
546 使用する場合は、 以下の行を有効にする。
547
548 USE_UDP4_ECHO_CLI = ture
549
550 [5] TCP ディスカードクライアントプログラムを使用する場合は、
551 以下の行を有効にする。
552
553 USE_TCP_DISCARD_CLI = ture
554
555 [6] UDP ディスカードクライアントプログラムを使用する場合は、
556 以下の行を有効にする。
557
558 USE_UDP_DISCARD_CLI = ture
559
560 [7] DHCPv6 クライアントプログラムを使用する場合は、以下の行
561 を有効にする。
562
563 USE_DHCP6_CLI = true
564
565 [8] DHCPv4 クライアントプログラムを使用する場合は、以下の行
566 を有効にする。
567
568 USE_DHCP4_CLI = true
569
570 [9] DNS リゾルバーを使用する場合は、以下の行を有効にする。
571
572 USE_RESOLVER = true
573
574 [10] PING クライアントプログラムを使用する場合は、以下の行を
575 有効にする。
576
577 USE_PING = true
578
579 (5) å…
580±é€šã‚µãƒ¼ãƒã‚¿ã‚¹ã‚¯æ•°ã®é¸æŠž
581
582 [1] WWW サーバタスク数は以下の行で選択する。ただし最大 2 タ
583 スクである。
584
585 CDEFS := $(CDEFS) -DNUM_WWW_SRV_TASKS=2
586
587 [2] TCP ECHO サーバタスク数を選択する。ただし以下の条件のと
588 き有効である。
589
590 ・tcp_echo_srv1.c を選択した。
591 ・省コピー API を使用する。
592 ・ノンブロッキングコールを使用しない。
593
594 TCP ECHO サーバタスク数は以下の行で選択する。ただし最大
595 8 タスクである。
596
597 CDEFS := $(CDEFS) -DNUM_TCP_ECHO_SRV_TASKS=8
598
599 (6) 予約 ID 数の選択
600
601 [1] TCP/IPv4 受付口予約 ID 数は以下の行で選択する。ただし最
602 大 2 である。
603
604 CDEFS := $(CDEFS) -DNUM_VRID_TCP_REPS=2
605
606 [2] TCP/IPv4 通信端点予約 ID 数は以下の行で選択する。ただし
607 最大 4 である。
608
609 CDEFS := $(CDEFS) -DNUM_VRID_TCP_CEPS=4
610
611 [3] UDP/IPv4 通信端点予約 ID 数は以下の行で選択する。ただし
612 最大 2 である。
613
614 CDEFS := $(CDEFS) -DNUM_VRID_UDP_CEPS=2
615
616 [4] TCP/IPv6 受付口予約 ID 数は以下の行で選択する。ただし最
617 大 2 である。
618
619 CDEFS := $(CDEFS) -DNUM_VRID_TCP6_REPS=2
620
621 [5] TCP/IPv6 通信端点予約 ID 数は以下の行で選択する。ただし
622 最大 4 である。
623
624 CDEFS := $(CDEFS) -DNUM_VRID_TCP6_CEPS=4
625
626 [6] UDP/IPv6 通信端点予約 ID 数は以下の行で選択する。ただし
627 最大 2 である。
628
629 CDEFS := $(CDEFS) -DNUM_VRID_UDP6_CEPS=2
630
631 (7) その他
632
633 [1] TCP のセグメントサイズを MSS にする場合は、以下の行を有
634 効にする。
635
636 CDEFS := $(CDEFS) -DUSE_TCP_MSS_SEG
637
638 [2] IPv6 MMTU サイズのネットワークバッファを組込む場合は、
639 以下の行を有効にする。
640
641 CDEFS := $(CDEFS) -DUSE_IPV6_MMTU
642
6434. 2 サンプルアプリケーションのコンパイル時コンフィギュレーション
644
645 (1) DHCPv6 クライアント
646
647 [1] DHCP6_CLI_CFG_MODE
648 DHCPv6 クライアントの動作モードを指定する。
649 ステートレスモードを選択する時は
650 fDHCP6_CLI_CFG_STATELESS、 ステートフルモードを選択する
651 時は fDHCP6_CLI_CFG_STATEFULL を指定する。 ステートレス
652 モードでは、IPv6 アドレスを取得せず、DNS サーバの情
653報な
654 どのみ取得する。
655
656 [2] DHCP6_CLI_CFG_REQUIRED_OLIST
657 DHCPv6 サーバから取得する必
658須オプションリストをé…
659åˆ—の初
660 期化形式で指定する。指定例を以下に示す。
661 #define DHCP6_CLI_CFG_REQUIRED_OLIST { \
662 DHCP6_OPT_NAME_SERVERS, \
663 }
664
665 オプションは tinet/netapp/dhcp6.h を参ç…
666§ã™ã‚‹ã“と。
667
668 [3] DHCP6_CLI_CFG_REQUEST_OLIST
669 DHCPv6 サーバから取得する必
670須オプションリストをé…
671åˆ—の初
672 期化形式で指定する。 指定例を以下に示す。
673 #define DHCP6_CLI_CFG_REQUEST_OLIST { \
674 DHCP6_OPT_DOMAIN_SEARCH, \
675 }
676
677 オプションは tinet/netapp/dhcp6.h を参ç…
678§ã™ã‚‹ã“と。
679
680 (2) DHCPv4 クライアント
681
682 [1] DHCP4_CLI_CFG_REQUIRED_OLIST
683 DHCPv4 サーバから取得する必
684須オプションリストをé…
685åˆ—の初
686 期化形式で指定する。指定例を以下に示す。
687 #define DHCP4_CLI_CFG_REQUIRED_OLIST { \
688 DHCP4_OPT_NAME_SERVERS, \
689 }
690
691 オプションは tinet/netapp/dhcp4.h を参ç…
692§ã™ã‚‹ã“と。
693
694 [2] DHCP4_CLI_CFG_REQUEST_OLIST
695 DHCPv4 サーバから取得する必
696須オプションリストをé…
697åˆ—の初
698 期化形式で指定する。 指定例を以下に示す。
699 #define DHCP4_CLI_CFG_REQUEST_OLIST { \
700 DHCP4_OPT_DOMAIN_SEARCH, \
701 }
702
703 オプションは tinet/netapp/dhcp6.h を参ç…
704§ã™ã‚‹ã“と。
705
706 (3) DNS リゾルバー
707
708 [1] RSLV_CFG_DNS_DOMAIN_NAME_STR
709 ドメイン名の文字列を指定する。DHCPv6 クライアント、また
710 は DHCPv4 クライアントにより取得することも可能である。
711
712 [2] IPV6_ADDR_DNS_INIT
713 DNS サーバの IPv6 アドレスをé…
714åˆ—の初期化形式で指定する。
715 DHCPv6 クライアントにより取得することも可能である。 DNS
716 サーバの IPv6 アドレスが、
717 fd90:cce5:25f6:ff81:201:2ff:fe81:e7c9 の場合の指定例を
718 以下に示す。
719
720 #define IPV6_ADDR_DNS_INIT \
721 {{{ UINT_C(0xfd), UINT_C(0x90), UINT_C(0xcc), UINT_C(0xe5), \
722 UINT_C(0x25), UINT_C(0xf6), UINT_C(0xff), UINT_C(0x81), \
723 UINT_C(0x02), UINT_C(0x01), UINT_C(0x02), UINT_C(0xff), \
724 UINT_C(0xfe), UINT_C(0x81), UINT_C(0xe7), UINT_C(0xc9) }}}
725
726 [3] IPV4_ADDR_DNS
727 DNS サーバの IPv4 アドレスを指定する。DHCPv4 クライアン
728 トにより取得することも可能である。 DNS サーバの IPv4 ア
729 ドレスが、172.25.129.140 の場合の指定例を以下に示す。
730
731 #define IPV4_ADDR_DNS MAKE_IPV4_ADDR(172,25,129,140)
732
7334. 3 簡易コンソールコマンド
734
735 インターネットサーバ・セットに組み込まれている簡易コンソールのコマン
736ドを以下に示す。
737
738 cf tinet_app_config.h 等で指定された、コンパイル時
739 コンフィギュレーションを表示する。
740
741 ct <cepid> [<fncd>]
742 ペンディングしている TCP 通信端点 <cepid> の処
743 理をキャンセルする。キャンセルする処理は <fncd>
744 で指定する。<fncd> を省略した場合は、å…
745¨ã¦ã®å‡¦ç†
746 をキャンセルする。
747
748 cu <cepid> [<fncd>]
749 ペンディングしている UDP 通信端点 <cepid> の処
750 理をキャンセルする。キャンセルする処理は <fncd>
751 で指定する。<fncd> を省略した場合は、å…
752¨ã¦ã®å‡¦ç†
753 をキャンセルする。
754
755 dc ネットワークインタフェースが PPP の時、または、
756 シリアルとネットワーク経由のコンソールå…
757¥å‡ºåŠ›ã‚’
758 使用する時に有効であり、 接続を切断する。なお、
759 PPP は参考実装
760である。
761
762 dh DHCPv6 と DHCPv4 クライアントの情
763報を出力する。
764 dh6 DHCPv6 クライアントの情
765報を出力する。
766 dh6n IPv6 アドレス情
767報を解放して、 DHCPv6 サーバから
768 IPv6 アドレス情
769報を再取得する。
770 dh6r IPv6 アドレス情
771報を解放する。
772 dh4 DHCPv4 クライアントの情
773報を出力する。
774 dh4n IPv4 アドレス情
775報を解放して、 DHCPv4 サーバから
776 IPv4 アドレス情
777報を再取得する。
778 dh4r IPv4 アドレス情
779報を解放する。
780
781 dt <host> [<portno> [<repeat>]]
782 TCP ディスカードクライアント・タスクを起動し、
783 ディスカードサーバ <host> にディスカードパター
784 ンを送信する。<portno> は、ディスカードサーバの
785 ポート番号で、省略時(- を指定する)は 9 である。
786 <repeat> は、繰り返し回数で、省略時は 1 である。
787 dts TCP ディスカードクライアント・タスクの繰り返し
788 動作を停止する。
789
790 du <host> [<portno>]]
791 ディスカードサーバ <host> にディスカードパター
792 UDP ディスカードクライアント・タスクを起動し、
793 ンを繰り返し送信する。<portno> は、ディスカード
794 サーバのポート番号で、省略時は 9 である。
795 dus UDP ディスカードクライアント・タスクの繰り返し
796 動作を停止する。
797
798 et <host> [<portno> [<repeat>]]
799 et4 <host> [<portno> [<repeat>]]
800 et では TCP エコークライアント・タスクを起動す
801 る。et4 では IPv4 専用 TCP エコークライアント・
802 タスクを起動する。 何れも、 エコーサーバ <host>
803 にエコーパターンを送信する。<portno> は、エコー
804 サーバのポート番号で、 省略時(- を指定する)は
805 7 である。<repeat> は、繰り返し回数で、省略時は
806 1 である。
807 ets TCP エコークライアント・タスクの繰り返し動作を
808 停止する。
809 ets4 IPv4 専用 TCP エコークライアント・タスクの繰り
810 返し動作を停止する。
811
812 eu <host> [<portno>] [<msg> | <repeat>]
813 eu4 <host> [<portno>] [<msg> | <repeat>]
814 eu では UDP エコークライアント・タスクを起動す
815 る。eu4 では IPv4 専用 UDP エコークライアント・
816 タスクを起動する。 何れも、 エコーサーバ <host>
817 にエコーパターンを送信する。<portno> は、エコー
818 サーバのポート番号で、 省略時(- を指定する)は
819 7 である。<repeat>(数字)を指定した場合は、 定
820 型のメッセージを <repeat> 回繰り返し送信する。
821 <msg>(数字以外)を指定した場合は、 メッセージ
822 <msg> を送信する。
823 eus UDP エコークライアント・タスクの繰り返し動作を
824 停止する。
825 eus4 IPv4 専用 UDP エコークライアント・タスクの繰り
826 返し動作を停止する。
827
828 i ネットワークインタフェースが PPP の時に有効であ
829 る。直接接続の場合は、直ちに LCP を起動して、サー
830 バに接続する。モデム接続の場合は、 コンパイル時
831 コンフィギュレーションの MODEM_CFG_PHONE_NUMBER
832 パラメータで指定されているサーバに発呼する。 な
833 お、PPP は参考実装
834である。
835
836 if [<addr> <mask>] ネットワークインタフェースが PPP の時は、 IP ア
837 ドレス、 サブネットマスク、ブロードキャストアド
838 レスを出力する。 ネットワークインタフェースがイー
839 サネットで、 ネットワーク層が IPv4 の時は、
840 [<addr> <mask>] を指定できる。 [<addr> <mask>]
841 を指定しなければ、MAC アドレス、IPv4 アドレス、
842 サブネットマスク、 ブロードキャストアドレスの出
843 力のみ行う。 [<addr> <mask>] を指定した時は、
844 IPv4 アドレスとサブネットマスクを変更した後、
845 MAC アドレス、IPv4 アドレス、サブネットマスク、
846 ブロードキャストアドレスを出力する。<addr> は、
847 IPv4 アドレス、 <mask> は、サブネットマスクであ
848 る。なお、PPP は参考実装
849である。
850
851 na ネットワークインタフェースがイーサネットの時に
852 有効である。IPv6 では近隣アドレスキャッシュの状
853 æ…
854‹ã€IPv4 では ARP キャッシュを出力する。
855
856 nb ネットワークバッファの統計情
857報を出力する。
858
859 nc ネットワーク統計情
860報を表示する。
861
862 nr [<index> <target> <mask> <gateway>]
863 ネットワークインタフェースがイーサネットのとき
864 有効である。 ネットワーク層が IPv4 の時は、
865 [<index> <target> <mask> <gateway>] を指定でき
866 る。 [<index> <target> <mask> <gateway>] を指定
867 しなければ、 ルーティング表の出力のみ行う。
868 [<index> <target> <mask> <gateway>] を指定した
869 時は、 ルーティング表を変更した後、ルーティング
870 表を出力する。<index> は、 経路エントリのインデッ
871 クス、<target> は、目標ネットワークの IP アドレ
872 ス、<mask> は、目標ネットワークのサブネットマス
873 ク、 <gateway> は、ゲートウェイの IP アドレスである。
874
875 nrl ネットワークインタフェースがイーサネットで、 ネッ
876 トワーク層が IPv6 の時に有効である。 ディフォル
877 トルータ・リストを出力する。
878
879 nrp ネットワークインタフェースがイーサネットで、 ネッ
880 トワーク層が IPv6 の時に有効である。 プレフィッ
881 クスリストを出力する。
882
883 ns [<name>|<addr>] DNS サーバに正引きでホスト名 <name>、または、逆
884 引きで IP アドレス <addr> のアドレス情
885報をç…
886§ä¼š
887 し出力する。いずれも指定しない時は、 ドメイン名
888 と DNS サーバの IP アドレスを出力する。
889
890 nt TCP 通信端点と TCP 受付口の状æ…
891‹ã‚’表示する。
892
893 nu UDP 通信端点の状æ…
894‹ã‚’表示する。
895
896 p <host> [ <tmo> [<size>] ]
897 ホスト <host> に ICMP パケットを送信する。<tmo>
898 はタイムアウト値(単位は秒)で、 省略時(- を指
899 定する)は 3 秒である。 <size> はデータサイズで、
900 指定しない場合は 64 オクテットである。
901
902 ps タスクの状æ…
903‹ã‚’表示する。
904
905 r <tskid> タスク <tskid> の待
906ち状æ…
907‹ã‚’強制的に解除する。
908
909 tt <repid> ITRON TCP/IP API の TCP の拡張機能を組込む必
910要
911 がある。TCP 受付口 <repid> を削除し、対応するサー
912 バを停止する。
913
914 tu <cepid> ITRON TCP/IP API の UDP の拡張機能を組込む必
915要
916 がある。UDP 通信端点 <cepid> を削除し、対応する
917 サーバを停止する。
918
919 w <tskid> タスク <tskid> を起床する。
920
921 wtd ITRON TCP/IP API の TCP の拡張機能を組込む必
922要
923 がある。TCP ディスカードサーバ・タスクに TCP 受
924 付口と TCP 通信端点を割当て、TCP ディスカードサー
925 バ・タスクを起動する。
926
927 wte ITRON TCP/IP API の TCP の拡張機能を組込む必
928要
929 がある。TCP エコーサーバ・タスクに TCP 受付口と
930 TCP 通信端点を割当て、 TCP エコーサーバ・タスク
931 を起動する。
932
933 wte4 ITRON TCP/IP API の TCP の拡張機能を組込む必
934要
935 がある。 TCP エコーサーバ・タスクに IPv4 用 TCP
936 受付口と IPv4 用 TCP 通信端点を割当て、TCP エコー
937 サーバ・タスクを起動する。
938
939 wtw4 ITRON TCP/IP API の TCP の拡張機能を組込む必
940要
941 がある。WWW サーバ・タスクに IPv4 用 TCP 受付口
942 と IPv4 用 TCP 通信端点を割当て、WWW サーバ・タ
943 スクを起動する。
944 wtw ITRON TCP/IP API の TCP の拡張機能を組込む必
945要
946 がある。 WWW サーバ・タスクに TCP 受付口と TCP
947 通信端点を割当て、WWW サーバ・タスクを起動する。
948
949 wue ITRON UDP/IP API の UDP の拡張機能を組込む必
950要
951 がある。UDP エコーサーバ・タスクに UDP 通信端点
952 を割当て、UDP エコーサーバ・タスクを起動する。
953
9544. 4 DNSリゾルバーによるホスト名の指定
955
956 Makefile の組み込む機能の選択で、
957
958 USE_RESOLVER = true
959
960を指定して DNS リゾルバーを使用すると、簡易コンソールコマンドの <host>
961に指定したホスト名を、DNS サーバにç…
962§ä¼šã—て IP アドレスを得ることができ
963る(正引き)。
964 <host> の書式を以下に示す。
965 [-[6|4][A|a|Q|q]] <name>
966
967 各オプションを以下に示す。
968
969 6 ネットワーク層のプロトコルとして IPv6 により DNS サーバにç…
970§
971 会する。
972 4 ネットワーク層のプロトコルとして IPv4 により DNS サーバにç…
973§
974 会する。
975 q AAAA レコードのみç…
976§ä¼šã™ã‚‹ã€‚
977 Q AAAA レコードのみç…
978§ä¼šã™ã‚‹ã€‚
979 a A レコードのみç…
980§ä¼šã™ã‚‹ã€‚
981 A A レコードのみç…
982§ä¼šã™ã‚‹ã€‚
983
984 6 と 4 のどちらも指定しない時は、まず IPv6 で DNS サーバにç…
985§ä¼šã™ã‚‹ãŒã€
986応答がない場合は IPv4 にフォールバックして DNS サーバにç…
987§ä¼šã™ã‚‹ã€‚ ただ
988し、ネットワーク層としてどちらか一方のみ組込んだ場合は、このオプション
989は無視される。
990 q、 Q、a、A のいずれも指定しない時は、AAAA レコードの次に A レコード
991の順で DNS サーバにç…
992§ä¼šã™ã‚‹ã€‚
993
9945. sample1 のネットワーク対応プログラム(sample1n)の構築
995
996 TOPPERS/ASP と TOPPERS/JSP のサンプルプログラム sample1 のネットワー
997ク対応プログラムである。telnet で接続すると、 シリアルのå…
998¥å‡ºåŠ›ã‚’引き継
999いで実行する。 切断すると、 å…
1000ƒã®ã‚·ãƒªã‚¢ãƒ«ã«å…
1001¥å‡ºåŠ›ã‚’戻す。
1002 以下に構築方法を述べる。
1003
1004 (1) ASP/JSP コンフィギュレーションスクリプトの実行
1005 それぞれの環境におけるコンフィギュレーションスクリプトを実
1006 行する。以下は、 TOPPERS/ASP 環境におけるコンフィギュレーショ
1007 ンスクリプトの実行例である。
1008
1009 $ mkdir NETOBJ
1010 $ cd NETOBJ
1011 $ perl ../configure -T akih8_3069f_gcc
1012
1013 (2) TINET コンフィギュレーションスクリプトの実行
1014 それぞれの環境における TINET コンフィギュレーションスクリプ
1015 トを実行する。 この時、 アプリケーションプログラム名として
1016 sample1n を指定する。 以下は、 TOPPERS/ASP 環境における TINET
1017 コンフィギュレーションスクリプトの実行例である。
1018
1019 $ perl ../tinet/tinet_asp_configure -T akih8_3069f_gcc -A sample1n
1020 -i ether -v if_ed -n inet6 -s tcp
1021
1022 なお、オプション -n に inet6/inet4 を指定しても、 IPv6 でのみ
1023 接続できる。
1024
1025 (3) Makefile の修正
1026 アプリケーション本体(sample1n.c)と TOPPERS/ASP と
1027 TOPPERS/JSP の sample1.c を一緒にコンパイル・リンクするため、
1028 Makefile を修正する。
1029
1030 [1] TOPPERS/ASP 環境
1031 Makefile の APPL_COBJS に sample1.o を追加する。
1032
1033 APPL_COBJS = $(APPLNAME).o sample1.o
1034
1035 [2] TOPPERS/JSP 環境
1036 Makefile の UTASK_COBJS に sample1.o を追加する。
1037
1038 UTASK_COBJS = $(UNAME).o sample1.o
1039
1040 (4) sample1.c の修正
1041 TOPPERS/ASP と TOPPERS/JSP の sample1.c のインクルードファ
1042 イルの指定
1043
1044 #include "sample1.h"
1045
1046 の前に、 以下のインクルードファイルを追加する。
1047
1048 #include "sample1n.h"
1049
1050 (5) tinet_app_config.h の設定
1051 IPv4 の場合、IP アドレス、サブネットマスク、 ディフォルトゲー
1052 トウェイを指定する。
1053
10546. 最小構成サーバの構築
1055
1056 WWW サーバ・タスクと TCP エコーサーバ・タスクのみからなる最小構成の
1057サーバである。H8/3069F が内
1058蔵している RAM(16K バイト)と ROM(512K バ
1059イト)に収まり、外部メモリは不要である。現在は、品川通信計装
1060サービス製
1061NKEV-010H8(TOPPERS/JSP リリース 1.4.2 のみ)と秋月電子通商製 H8/3069F
1062(TOPPERS/JSP リリース 1.4.1 以降と TOPPERS/ASP)のシステムに対応して
1063いる。
1064 各システム依存部の Makefile.config の「実行環境の定義」で、
1065
1066 # ROM化 外部RAM未使用
1067 #DBGENV := INMEM_ONLY
1068
1069を有効にして、 コンパイル・リンクする。
Note: See TracBrowser for help on using the repository browser.