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