Changeset 315 for rubycfg_asp/trunk/asp_dcre/tinet/doc
- Timestamp:
- Jul 23, 2017, 2:29:40 PM (7 years ago)
- Location:
- rubycfg_asp/trunk/asp_dcre/tinet/doc
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet-1.7.txt
-
Property svn:mime-type
changed from
text/plain
totext/plane; charset=UTF-8
r313 r315 1 TCP/IP ãããã³ã«ã¹ã¿ãã¯ï¼TINETï¼ 2 ãªãªã¼ã¹ 1.5 ãããªãªã¼ã¹ 1.7 ã¸ã®ç§»è¡ï¼»2014/11/13ï¼½ 3 4 1. 移è¡æ¹æ³ 5 6 TINET ãªãªã¼ã¹ 1.5 ãã TINET ãªãªã¼ã¹ 1.7 ã¸ç§»è¡ã§ã¯ã TINET ãªãªã¼ 7 ã¹ 1.7 ã®é 8 å¸ãã¡ã¤ã«ã TINET ãªãªã¼ã¹ 1.5 ã«ä¸æ¸ããããã¨ã¯æ¨å¥¨ã㪠9 ãã ããã¯ãTINET ãªãªã¼ã¹ 1.7 ã®é 10 å¸ãã¡ã¤ã«ã«å«ã¾ãã¦ããã³ã³ãã¤ã« 11 æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãã¡ã¤ã«ï¼tinet_cpu_config.h çï¼ã« 12 ããã TINET ãªãªã¼ã¹ 1.5 ç¨ã®ç¬èªã®ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ 13 ãã©ã¡ã¼ã¿ãã¡ã¤ã«ã®å 14 容ã失ãããå¯è½æ§ãããããã§ããã å¾ã£ã¦ã 15 TINET ãªãªã¼ã¹ 1.7 ã®é 16 å¸ãã¡ã¤ã«ãå¿ 17 ãç°ãªããã£ã¬ã¯ããªã«å±éãã¦ã 18 ã移è¡ãããã¨ãæ¨å¥¨ããã 19 ããã§ã¯ã IPv4 ã«ããå¿ç¨ããã°ã©ã ã® TINET ãã TINET ãªãªã¼ã¹ 1.5 20 ãã TINET ãªãªã¼ã¹ 1.7 ã«ç§»è¡ããä¾ãè¿°ã¹ãã 21 22 1. 1 TOPPERS/ASP ç°å¢ã«ããã移è¡æ¹æ³ 23 24 (1) TINET ãªãªã¼ã¹ 1.5 ã® ASP ã«ã¼ããã£ã¬ã¯ããªã $(DIR_1.5)ã 25 TINET ãªãªã¼ã¹ 1.7 ã® ASP ã«ã¼ããã£ã¬ã¯ããªã $(DIR_1.7) ã¨ããã 26 (2) $(DIR_1.7) ã«ã TINET ãªãªã¼ã¹ 1.7 ã®é 27 å¸ãã¡ã¤ã« 28 tinet-1.7.tar.gz ãå±éããã 29 (3) $(DIR_1.5) ã®ãã£ã¬ã¯ã㪠tinet ãåé¤ããã 30 (4) $(DIR_1.7) ã®ãã£ã¬ã¯ã㪠tinet ã $(DIR_1.5) ã«ã³ãã¼ããã 31 (5) ã«ã¼ãã£ã³ã°è¡¨åã®å¤æ´ï¼å¤æ´å¿ 32 é é 33 ç®ï¼ 34 ãã¥ã¢ã«ã¹ã¿ãã¯å¯¾å¿ã®ããã«ã¼ãã£ã³ã°è¡¨åããIPv6 㨠IPv4 㧠35 åå¥ã«æå®ããå¿ 36 è¦ãããã route_cfg.c ã§å®ç¾©ãã¦ããã«ã¼ã㣠37 ã³ã°è¡¨åãã 以ä¸ã®ããã«å¤æ´ããã 38 39 [1] IPv6 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨å routing_tbl ã routing6_tbl 40 ã«å¤æ´ããã 41 [2] IPv4 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨å routing_tbl ã routing4_tbl 42 ã«å¤æ´ããã 43 44 (6) ã«ã¼ãã£ã³ã°è¡¨åã®å¤æ´å¾ã®å¿ç¨ããã°ã©ã ã®çæ㯠TINET ãªãªã¼ 45 ã¹ 1.5 ã¨åãã§ããã 46 47 1. 2 TOPPERS/JSP ç°å¢ã«ããã移è¡æ¹æ³ 48 49 (1) TINET ãªãªã¼ã¹ 1.5 ã® JSP ã«ã¼ããã£ã¬ã¯ããªã $(DIR_1.5)ã 50 TINET ãªãªã¼ã¹ 1.7 ã® JSP ã«ã¼ããã£ã¬ã¯ããªã $(DIR_1.7) ã¨ããã 51 52 (2) $(DIR_1.7) ã«ã TINET ãªãªã¼ã¹ 1.7 ã®é 53 å¸ãã¡ã¤ã« 54 tinet-1.7.tar.gz ãå±éããã 55 56 (3) $(DIR_1.5) ã®ãã£ã¬ã¯ã㪠tinet ãåé¤ããã 57 58 (4) $(DIR_1.7) ã®ãã£ã¬ã¯ã㪠tinet ã $(DIR_1.5) ã«ã³ãã¼ããã 59 60 (5) $(DIR_1.5)/tinet/cfg ã§ã TINET-1.7 ã® TINET ã³ã³ãã£ã®ã¥ã¬ã¼ 61 ã¿ãçæããã 62 63 (6) ã«ã¼ãã£ã³ã°è¡¨åã®å¤æ´ï¼å¤æ´å¿ 64 é é 65 ç®ï¼ 66 ãã¥ã¢ã«ã¹ã¿ãã¯å¯¾å¿ã®ããã«ã¼ãã£ã³ã°è¡¨åããIPv6 㨠IPv4 㧠67 åå¥ã«æå®ããå¿ 68 è¦ãããã route_cfg.c ã§å®ç¾©ãã¦ããã«ã¼ã㣠69 ã³ã°è¡¨åãã 以ä¸ã®ããã«å¤æ´ããã 70 71 [1] IPv6 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨å routing_tbl ã routing6_tbl 72 ã«å¤æ´ããã 73 [2] IPv4 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨å routing_tbl ã routing4_tbl 74 ã«å¤æ´ããã 75 76 (7) ã«ã¼ãã£ã³ã°è¡¨åã®å¤æ´å¾ã®å¿ç¨ããã°ã©ã ã®çæ㯠TINET ãªãªã¼ 77 ã¹ 1.5 ã¨åãã§ããã 78 79 1. 3 TOPPERS/JSP ç°å¢â TOPPERS/ASP ç°å¢ã¸ã®ç§»è¡æ¹æ³ 80 81 æ¨æºçãªã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ã®ç§»è¡æ¹æ³ã«ã¤ãã¦è¿°ã¹ãã 82 83 (1) Makefileï¼Makefileï¼ 84 TINET ç¨ã®å®ç¾©ã®å¤æ´ã¯ãªããã ããããã®ç°å¢ã® Makefile 㯠85 å 86 ¨ãäºææ§ããªãã®ã§ã TINET ã¦ã¼ã¶ãºããã¥ã¢ã«ã®ã7.3 ã¢ã㪠87 ã±ã¼ã·ã§ã³ã® Makefileããåç 88 §ãã¦å¤æ´ãããã¨ã 89 (2) ãµã³ãã«ããã°ã©ã æ¬ä½ï¼$(UNAME).cï¼ 90 TOPPERS/ASP ã§ã¯ããã¼ã¿åããã³ãã¯ã㯠C99 ã«æºæ ãããã® 91 ã«å¤æ´ããã¦ããã®ã§ã ããã«åããã¦å¤æ´ããå¿ 92 è¦ãããã 93 ã¾ããã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãç°ãªã£ã¦ããã TOPPERS/JSP ç°å¢ 94 ã§ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®æå® 1 TCP/IP プロトコルスタック(TINET) 2 リリース 1.5 からリリース 1.7 への移行[2014/11/13] 3 4 1. 移行方法 5 6 TINET リリース 1.5 から TINET リリース 1.7 へ移行では、 TINET リリー 7 ス 1.7 の配布ファイルを TINET リリース 1.5 に上書きすることは推奨しな 8 い。 これは、TINET リリース 1.7 の配布ファイルに含まれているコンパイル 9 時コンフィギュレーションパラメータファイル(tinet_cpu_config.h 等)に 10 より、 TINET リリース 1.5 用の独自のコンパイル時コンフィギュレーション 11 パラメータファイルの内容が失われる可能性があるためである。 従って、 12 TINET リリース 1.7 の配布ファイルを必ず異なるディレクトリに展開してか 13 ら移行することを推奨する。 14 ここでは、 IPv4 による応用プログラムの TINET を、 TINET リリース 1.5 15 から TINET リリース 1.7 に移行する例を述べる。 16 17 1. 1 TOPPERS/ASP 環境における移行方法 18 19 (1) TINET リリース 1.5 の ASP ルートディレクトリを $(DIR_1.5)、 20 TINET リリース 1.7 の ASP ルートディレクトリを $(DIR_1.7) とする。 21 (2) $(DIR_1.7) に、 TINET リリース 1.7 の配布ファイル 22 tinet-1.7.tar.gz を展開する。 23 (3) $(DIR_1.5) のディレクトリ tinet を削除する。 24 (4) $(DIR_1.7) のディレクトリ tinet を $(DIR_1.5) にコピーする。 25 (5) ルーティング表名の変更(変更必須項目) 26 デュアルスタック対応のためルーティング表名を、IPv6 と IPv4 で 27 個別に指定する必要がある。 route_cfg.c で定義しているルーティ 28 ング表名を、 以下のように変更する。 29 30 [1] IPv6 用のルーティング表名 routing_tbl を routing6_tbl 31 に変更する。 32 [2] IPv4 用のルーティング表名 routing_tbl を routing4_tbl 33 に変更する。 34 35 (6) ルーティング表名の変更後の応用プログラムの生成は TINET リリー 36 ス 1.5 と同じである。 37 38 1. 2 TOPPERS/JSP 環境における移行方法 39 40 (1) TINET リリース 1.5 の JSP ルートディレクトリを $(DIR_1.5)、 41 TINET リリース 1.7 の JSP ルートディレクトリを $(DIR_1.7) とする。 42 43 (2) $(DIR_1.7) に、 TINET リリース 1.7 の配布ファイル 44 tinet-1.7.tar.gz を展開する。 45 46 (3) $(DIR_1.5) のディレクトリ tinet を削除する。 47 48 (4) $(DIR_1.7) のディレクトリ tinet を $(DIR_1.5) にコピーする。 49 50 (5) $(DIR_1.5)/tinet/cfg で、 TINET-1.7 の TINET コンフィギュレー 51 タを生成する。 52 53 (6) ルーティング表名の変更(変更必須項目) 54 デュアルスタック対応のためルーティング表名を、IPv6 と IPv4 で 55 個別に指定する必要がある。 route_cfg.c で定義しているルーティ 56 ング表名を、 以下のように変更する。 57 58 [1] IPv6 用のルーティング表名 routing_tbl を routing6_tbl 59 に変更する。 60 [2] IPv4 用のルーティング表名 routing_tbl を routing4_tbl 61 に変更する。 62 63 (7) ルーティング表名の変更後の応用プログラムの生成は TINET リリー 64 ス 1.5 と同じである。 65 66 1. 3 TOPPERS/JSP 環境→ TOPPERS/ASP 環境への移行方法 67 68 標準的なアプリケーションプログラムの移行方法について述べる。 69 70 (1) Makefile(Makefile) 71 TINET 用の定義の変更はないが、 それぞれの環境の Makefile は 72 全く互換性がないので、 TINET ユーザズマニュアルの「7.3 アプリ 73 ケーションの Makefile」を参照して変更すること。 74 (2) サンプルプログラム本体($(UNAME).c) 75 TOPPERS/ASP では、データ型およびマクロは C99 に準拠したもの 76 に変更されているので、 これに合わせて変更する必要がある。 77 また、インクルードファイルが異なっている。 TOPPERS/JSP 環境 78 でのインクルードファイルの指定 95 79 96 80 #include <t_services.h> … … 98 82 #include "tinet_id.h" 99 83 100 ããTOPPERS/ASP ç°å¢ã§ã¯ã以ä¸ã®ããã«å¤æ´ããã84 を、TOPPERS/ASP 環境では、以下のように変更する。 101 85 102 86 #include <kernel.h> … … 105 89 #include "tinet_cfg.h" 106 90 107 (3) ãµã³ãã«ããã°ã©ã ã®ããããã¡ã¤ã«ï¼$(UNAME).hï¼ 108 TOPPERS/ASP ã§ã¯ããã¼ã¿åããã³ãã¯ã㯠C99 ã«æºæ ãããã® 109 ã«å¤æ´ããã¦ããã®ã§ã ããã«åããã¦å¤æ´ããå¿ 110 è¦ãããã 111 ã¾ããã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãç°ãªã£ã¦ããã TOPPERS/JSP ç°å¢ 112 ã§ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®æå® 91 (3) サンプルプログラムのヘッダファイル($(UNAME).h) 92 TOPPERS/ASP では、データ型およびマクロは C99 に準拠したもの 93 に変更されているので、 これに合わせて変更する必要がある。 94 また、インクルードファイルが異なっている。 TOPPERS/JSP 環境 95 でのインクルードファイルの指定 113 96 114 97 #include <t_services.h> 115 98 116 ããTOPPERS/ASP ç°å¢ã§ã¯ã以ä¸ã®ããã«å¤æ´ããã99 を、TOPPERS/ASP 環境では、以下のように変更する。 117 100 118 101 #include <tinet_defs.h> 119 102 120 (4) ãµã³ãã«ããã°ã©ã ç¨ ASP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã« 121 ï¼$(UNAME).cfgï¼ 122 #include 㨠INCLUDE ã®åæ±ããç°ãªã£ã¦ããã®ã§ã ããã«åã 123 ãã¦å¤æ´ããå¿ 124 è¦ãããã以ä¸ã«å¤æ´ä¾ã示ãã TOPPERS/JSP ç°å¢ 125 ã§ã®æå® 103 (4) サンプルプログラム用 ASP コンフィギュレーションファイル 104 ($(UNAME).cfg) 105 #include と INCLUDE の取扱いが異なっているので、 これに合わ 106 せて変更する必要がある。以下に変更例を示す。 TOPPERS/JSP 環境 107 での指定 126 108 127 109 #include "echos4.h" … … 133 115 INCLUDE("\"echos4.h\""); 134 116 135 ããTOPPERS/ASP ç°å¢ã§ã¯ã以ä¸ã®ããã«å¤æ´ããã117 を、TOPPERS/ASP 環境では、以下のように変更する。 136 118 137 119 #include "echos4.h" … … 141 123 INCLUDE("../tinet_asp.cfg"); 142 124 143 (5) ãµã³ãã«ããã°ã©ã ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã« 144 ï¼tinet_$(UNAME).cfgï¼ 145 #include 㨠INCLUDE ã®åæ±ããç°ãªã£ã¦ããã®ã§ã ããã«åã 146 ãã¦å¤æ´ããå¿ 147 è¦ãããã以ä¸ã«å¤æ´ä¾ã示ãã TOPPERS/JSP ç°å¢ 148 ã§ã®æå® 125 (5) サンプルプログラム用 TINET コンフィギュレーションファイル 126 (tinet_$(UNAME).cfg) 127 #include と INCLUDE の取扱いが異なっているので、 これに合わ 128 せて変更する必要がある。以下に変更例を示す。 TOPPERS/JSP 環境 129 での指定 149 130 150 131 #include "echos4.h" 151 132 INCLUDE("\"echos4.h\""); 152 133 153 ããTOPPERS/ASP ç°å¢ã§ã¯ã以ä¸ã®ããã«å¤æ´ããã154 155 #include "echos4.h" 156 157 (6) ãµã³ãã«ããã°ã©ã ç¨ã«ã¼ãã£ã³ã°è¡¨ï¼route_cfg.cï¼158 ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãç°ãªã£ã¦ããã TOPPERS/JSP ç°å¢ã§ã®ã¤159 ã³ã¯ã«ã¼ããã¡ã¤ã«ã®æå®134 を、TOPPERS/ASP 環境では、以下のように変更する。 135 136 #include "echos4.h" 137 138 (6) サンプルプログラム用ルーティング表(route_cfg.c) 139 インクルードファイルが異なっている。 TOPPERS/JSP 環境でのイ 140 ンクルードファイルの指定 160 141 161 142 #include <s_services.h> 162 143 #include <t_services.h> 163 144 164 ããTOPPERS/ASP ç°å¢ã§ã¯ã以ä¸ã®ããã«å¤æ´ããã145 を、TOPPERS/ASP 環境では、以下のように変更する。 165 146 166 147 #include <kernel.h> 167 148 168 (7) ãµã³ãã«ããã°ã©ã ç¨ã³ã³ãã¤ã«ææå®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ 169 ï¼tinet_app_config.hï¼ 170 å¤æ´ç¹ã¯ãªãã 171 172 2. å¤æ´å¿ 173 é é 174 ç® 175 176 以ä¸ã«ãTINET ãªãªã¼ã¹ 1.7 ã§å¤æ´ãããå¤æ´ãå¿ 177 é ã®é 178 ç®ã示ãã 179 180 (1) ã«ã¼ãã£ã³ã°è¡¨ï¼route_cfg.cï¼ 181 182 [1] ã«ã¼ãã£ã³ã°è¡¨å 183 ãã¥ã¢ã«ã¹ã¿ãã¯å¯¾å¿ã®ããã«ã¼ãã£ã³ã°è¡¨åãã IPv6 㨠184 IPv4 ã§åå¥ã«æå®ããå¿ 185 è¦ããããroute_cfg.c ã§å®ç¾©ã㦠186 ããã«ã¼ãã£ã³ã°è¡¨åãã 以ä¸ã®ããã«å¤æ´ããã 187 188 [1] IPv6 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨å routing_tbl ã 189 routing6_tbl ã«å¤æ´ããã 190 [2] IPv4 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨å routing_tbl ã 191 routing4_tbl ã«å¤æ´ããã 192 193 [2] IPv4 ç¨ã«ã¼ãã£ã³ã°è¡¨ã®æ§é ä½åï¼TINET ãªãªã¼ã¹ 1.1ï¼ 194 T_RT_ENTRY ã T_IN4_RTENTRY ã«å¤æ´ããã 195 196 (2) ã«ã¼ãã£ã³ã°ã«é¢ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ 197 ã¿ 198 ãã¥ã¢ã«ã¹ã¿ãã¯ï¼SUPPORT_INET6 㨠SUPPORT_INET4 ã®ä¸¡æ¹ï¼ã 199 é¸æããå ´åã 以ä¸ã®é 200 ç®ãåå¥ã«æå®ããå¿ 201 è¦ãããã 149 (7) サンプルプログラム用コンパイル時指定コンフィギュレーション 150 (tinet_app_config.h) 151 変更点はない。 152 153 2. 変更必須項目 154 155 以下に、TINET リリース 1.7 で変更され、変更が必須の項目を示す。 156 157 (1) ルーティング表(route_cfg.c) 158 159 [1] ルーティング表名 160 デュアルスタック対応のためルーティング表名を、 IPv6 と 161 IPv4 で個別に指定する必要がある。route_cfg.c で定義して 162 いるルーティング表名を、 以下のように変更する。 163 164 [1] IPv6 用のルーティング表名 routing_tbl を 165 routing6_tbl に変更する。 166 [2] IPv4 用のルーティング表名 routing_tbl を 167 routing4_tbl に変更する。 168 169 [2] IPv4 用ルーティング表の構造体名(TINET リリース 1.1) 170 T_RT_ENTRY を T_IN4_RTENTRY に変更する。 171 172 (2) ルーティングに関するコンパイル時コンフィギュレーションパラメー 173 タ 174 デュアルスタック(SUPPORT_INET6 と SUPPORT_INET4 の両方)を 175 選択した場合、 以下の項目を個別に指定する必要がある。 202 176 203 177 [1] NUM_STATIC_ROUTE_ENTRY 204 NUM_IN6_STATIC_ROUTE_ENTRY ï¼IPv6 ç¨ï¼ã¨205 NUM_IN4_STATIC_ROUTE_ENTRY ï¼IPv4 ç¨ï¼178 NUM_IN6_STATIC_ROUTE_ENTRY(IPv6 用)と 179 NUM_IN4_STATIC_ROUTE_ENTRY(IPv4 用) 206 180 [2] NUM_REDIRECT_ROUTE_ENTRY 207 NUM_IN6_REDIRECT_ROUTE_ENTRY ï¼IPv6 ç¨ï¼ã¨208 NUM_IN4_REDIRECT_ROUTE_ENTRY ï¼IPv4 ç¨ï¼209 210 (3) TINET ãªãªã¼ã¹ 1.1 ã¨ã®äºææ§ã®ããã®ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥211 ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿181 NUM_IN6_REDIRECT_ROUTE_ENTRY(IPv6 用)と 182 NUM_IN4_REDIRECT_ROUTE_ENTRY(IPv4 用) 183 184 (3) TINET リリース 1.1 との互換性のためのコンパイル時コンフィギュ 185 レーションパラメータ 212 186 213 187 [1] NUM_ROUTE_ENTRY 214 NUM_IN4_STATIC_ROUTE_ENTRY ã«å¤æ´ããã188 NUM_IN4_STATIC_ROUTE_ENTRY に変更する。 215 189 [2] NUM_IN4_REDIRECT_ROUTE_ENTRY 216 æ°ãã«è¿½å ããã 217 218 3. å¤æ´æ¨å¥¨é 219 ç® 220 221 以ä¸ã«ãTINET ãªãªã¼ã¹ 1.7 ã§å¤æ´ãããTINET ãªãªã¼ã¹ 1.5 ãã TINET 222 ãªãªã¼ã¹ 1.7 ã¸ç§»è¡ã«ããã¦ãå¤æ´ã¾ãã¯æ°ãã«å®ç¾©ãã¹ãæ¨å¥¨é 223 ç®ã示ãã 224 225 (1) ã«ã¼ãã£ã³ã°ã«é¢ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ 226 ã¿ 227 以ä¸ã®é 228 ç®ãåå¥ã«æå®ããäºãæ¨å¥¨ããã ãã ãããã¥ã¢ã«ã¹ 229 ã¿ãã¯ï¼SUPPORT_INET6 㨠SUPPORT_INET4 ã®ä¸¡æ¹ï¼ãé¸æããå ´å 230 ã¯å¤æ´å¿ 231 é é 232 ç®ã§ããã 190 新たに追加する。 191 192 3. 変更推奨項目 193 194 以下に、TINET リリース 1.7 で変更され、TINET リリース 1.5 から TINET 195 リリース 1.7 へ移行において、変更または新たに定義すべき推奨項目を示す。 196 197 (1) ルーティングに関するコンパイル時コンフィギュレーションパラメー 198 タ 199 以下の項目を個別に指定する事を推奨する。 ただし、デュアルス 200 タック(SUPPORT_INET6 と SUPPORT_INET4 の両方)を選択した場合 201 は変更必須項目である。 233 202 234 203 [1] NUM_STATIC_ROUTE_ENTRY 235 NUM_IN6_STATIC_ROUTE_ENTRY ï¼IPv6 ç¨ï¼ã¨236 NUM_IN4_STATIC_ROUTE_ENTRY ï¼IPv4 ç¨ï¼204 NUM_IN6_STATIC_ROUTE_ENTRY(IPv6 用)と 205 NUM_IN4_STATIC_ROUTE_ENTRY(IPv4 用) 237 206 [2] NUM_REDIRECT_ROUTE_ENTRY 238 NUM_IN6_REDIRECT_ROUTE_ENTRY ï¼IPv6 ç¨ï¼ã¨239 NUM_IN4_REDIRECT_ROUTE_ENTRY ï¼IPv4 ç¨ï¼207 NUM_IN6_REDIRECT_ROUTE_ENTRY(IPv6 用)と 208 NUM_IN4_REDIRECT_ROUTE_ENTRY(IPv4 用) -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet.txt
-
Property svn:mime-type
changed from
text/plain
totext/plane; charset=UTF-8
r313 r315 1 TCP/IP ãããã³ã«ã¹ã¿ãã¯ï¼TINETï¼2 ã¦ã¼ã¶ãºããã¥ã¢ã«ï¼ãªãªã¼ã¹ 1.7ï¼ï¼»2017/4/5ï¼½3 4 1. TCP/IP ãããã³ã«ã¹ã¿ãã¯ï¼TINETï¼ã®æ¦è¦5 6 TINET ã¯ãTOPPERS/ASP 㨠TOPPERS/JSP ç¨ã® IPv6/IPv4 ãã¥ã¢ã«ã¹ã¿ãã¯7 ã® TCP/IP ãããã³ã«ã¹ã¿ãã¯ã§ããã 8 9 1. 1 æ©è½ä¸è¦§10 11 以ä¸ã«ãTINET ãªãªã¼ã¹ 1.7 ã®æ©è½ä¸è¦§ã示ãã1 TCP/IP プロトコルスタック(TINET) 2 ユーザズマニュアル(リリース 1.7)[2017/4/5] 3 4 1. TCP/IP プロトコルスタック(TINET)の概要 5 6 TINET は、TOPPERS/ASP と TOPPERS/JSP 用の IPv6/IPv4 デュアルスタック 7 の TCP/IP プロトコルスタックである。 8 9 1. 1 機能一覧 10 11 以下に、TINET リリース 1.7 の機能一覧を示す。 12 12 13 13 (1) API 14 14 15 ã»ITRON TCP/IP API ä»æ§ã®æ¨æºæ©è½16 ã»æ«å®ç㪠ITRON TCP/IPï¼ãã¼ã¸ã§ã³ 6ï¼API ä»æ§ã®æ¨æºæ©è½17 ã»ITRON TCP/IP API ä»æ§ã®æ¡å¼µæ©è½15 ・ITRON TCP/IP API 仕様の標準機能 16 ・暫定的な ITRON TCP/IP(バージョン 6)API 仕様の標準機能 17 ・ITRON TCP/IP API 仕様の拡張機能 18 18 19 19 (2) TCP 20 20 21 ã»BSD ã®éä¿¡æ©è½ 22 ã»æ大ã»ã°ã¡ã³ããµã¤ãºï¼MSSï¼ãªãã·ã§ã³ 23 ã»çã³ãã¼ API 24 ã»ãã³ããããã³ã°ã³ã¼ã«ï¼çµè¾¼ã¿é¸æå¯ï¼ 25 ã»ã¿ã¹ã¯ããã® Time Wait ç¶æ 26 ã® TCP é信端ç¹åé¢æ©è½ï¼çµè¾¼ã¿ 27 é¸æå¯ï¼ 28 ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ï¼çµè¾¼ã¿é¸æå¯ï¼ 29 ã»TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ï¼çµè¾¼ã¿é¸æå¯ï¼ 21 ・BSD の通信機能 22 ・最大セグメントサイズ(MSS)オプション 23 ・省コピー API 24 ・ノンブロッキングコール(組込み選択可) 25 ・タスクからの Time Wait 状態の TCP 通信端点分離機能(組込み 26 選択可) 27 ・送受信ウィンドバッファの省コピー機能(組込み選択可) 28 ・TCP ヘッダのトレース出力機能(組込み選択可) 30 29 31 30 (3) UDP 32 31 33 ã»ãã³ããããã³ã°ã³ã¼ã«ï¼çµè¾¼ã¿é¸æå¯ï¼34 35 (4) è¿é£æ¢ç´¢36 37 ã»è¿é£æ¢ç´¢è¦è«ã®éåä¿¡38 ã»è¿é£æ¢ç´¢éç¥ã®éåä¿¡39 ã»ã«ã¼ã¿éç¥ã¡ãã»ã¼ã¸ã®åä¿¡40 ã»ã«ã¼ã¿è¦è«ã¡ãã»ã¼ã¸ã®éä¿¡41 ã»ã¢ãã¬ã¹éè¤æ¤åºæ©è½32 ・ノンブロッキングコール(組込み選択可) 33 34 (4) 近隣探索 35 36 ・近隣探索要請の送受信 37 ・近隣探索通知の送受信 38 ・ルータ通知メッセージの受信 39 ・ルータ要請メッセージの送信 40 ・アドレス重複検出機能 42 41 43 42 (5) ICMPv6 44 43 45 ã»ã¨ã³ã¼è¦æ±ã»å¿çã®éåä¿¡46 ã»ã¨ã©ã¼ã®éä¿¡ï¼çµè¾¼ã¿é¸æå¯ï¼47 ã»åãç´ãã¡ãã»ã¼ã¸ã®åä¿¡ï¼çµè¾¼ã¿é¸æå¯ï¼48 ã»Path MTU44 ・エコー要求・応答の送受信 45 ・エラーの送信(組込み選択可) 46 ・向け直しメッセージの受信(組込み選択可) 47 ・Path MTU 49 48 50 49 (6) ICMPv4 51 50 52 ã»ã¨ã³ã¼è¦æ±ã»å¿çã®éåä¿¡53 ã»ã¨ã©ã¼ã®éä¿¡ï¼çµè¾¼ã¿é¸æå¯ï¼54 ã»åãç´ãã¡ãã»ã¼ã¸ã®åä¿¡ï¼çµè¾¼ã¿é¸æå¯ï¼51 ・エコー要求・応答の送受信 52 ・エラーの送信(組込み選択可) 53 ・向け直しメッセージの受信(組込み選択可) 55 54 56 55 (7) IPv6 57 56 58 ã»ã¢ãã¬ã¹ã®èªåè¨å® 59 ã»éççµè·¯è¡¨ 60 ã»é PC ç³»ãã£ã¸ã¿ã«æ©å¨ã¸ã®é©ç¨ã«åãã IPv6 æå°è¦æ±ä»æ§ã® 61 IPv6 æå°ãã¹ãä»æ§ã«æºæ 62 ã»æ¡å¼µãããã®ã¨ã©ã¼ã®éç¥ 63 ã»æçãããï¼çµè¾¼ã¿é¸æå¯ï¼ 64 ã»ãã¹ãæ 65 å ±ãã£ãã·ã¥ï¼çµè¾¼ã¿é¸æå¯ï¼ 66 ã»IPv6/IPv4 å®å 67 ¨ãã¥ã¢ã«ã¹ã¿ãã¯ããªãªã¼ã¹ 1.7 æ°è¦ã 68 ã»IPv4 å°å½±ã¢ãã¬ã¹ï¼çµè¾¼ã¿é¸æå¯ï¼ããªãªã¼ã¹ 1.7 æ°è¦ã 57 ・アドレスの自動設定 58 ・静的経路表 59 ・非 PC 系ディジタル機器への適用に向けた IPv6 最小要求仕様の 60 IPv6 最小ホスト仕様に準拠 61 ・拡張ヘッダのエラーの通知 62 ・断片ヘッダ(組込み選択可) 63 ・ホスト情報キャッシュ(組込み選択可) 64 ・IPv6/IPv4 完全デュアルスタック【リリース 1.7 新規】 65 ・IPv4 射影アドレス(組込み選択可)【リリース 1.7 新規】 69 66 70 67 (8) IPv4 71 68 72 ã»éççµè·¯è¡¨ 73 ã»IP ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æï¼çµè¾¼ã¿é¸æå¯ï¼ 74 ã»IPSECï¼çµè¾¼ã¿é¸æå¯ãããã¯ã®ã¿å®è£ 75 ï¼ 76 77 (9) ãã®ä» 78 79 ã»ARP è¦æ±ã»å¿çã®éåä¿¡ 80 ã»ARP ã§ã® IPv4 ã¢ãã¬ã¹éè¤æ¤åºæ©è½ 81 ã»DHCP ã¸ã®å¯¾å¿ 82 ã»SNMP ç¨ç®¡çæ 83 å ±ãã¼ã¹ï¼MIBï¼ã®æä¾ 84 85 1. 2 å¶éäºé 86 87 88 以ä¸ã«ãTINET ãªãªã¼ã¹ 1.7 ã®å¶ç´äºé 89 ãè¿°ã¹ãã 90 91 (1) IPv6 ã§ã¯ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã¯ã¤ã¼ãµãããã®ã¿é¸æã§ããã 92 (2) IPv6 ã§ã¯ãTCP 㨠UDP ã®ä¸¡æ¹ãé¸æãããã ã©ã¡ããä¸ã¤ãé¸æ 93 ããªããã°ãªããªãã ã¾ããUDP ã®ã¿ãé¸æããå ´åã¯ããã³ããã 94 ãã³ã°æ©è½ãçµã¿è¾¼ãå¿ 95 è¦ãããã 96 (3) ãã³ããããã³ã°ã³ã¼ã«ã«ããã¦ãã é信端ç¹ã®æä»å¶å¾¡ã®ããã 97 çæéã§ããããããã¯ãããã¨ãããã 98 (4) IPv6 ã«é¢ãã ITRON TCP/IP API 2.0 ä»æ§ã«ã¯æªå¯¾å¿ã§ããã 99 TINET ãªãªã¼ã¹ 1.2 ããã®æ«å®ç㪠ITRON TCP/IPï¼ãã¼ã¸ã§ã³ 6ï¼ 100 API ä»æ§ã«ã®ã¿å¯¾å¿ãã¦ããã 101 (5) ITRON TCP/IP API é¨åã®ã©ã¤ãã©ãªåã¯è¡ããã¦ããããã©ã¤ãã© 102 ãªã¨ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ãå¥ã 103 ã«æ§ç¯ãã¦ããã å¾ã§ãªã³ 104 ã¯ããæ¹æ³ã¯ãµãã¼ããã¦ããªãã 105 (6) è¨å®ã¨èªåºãå¯è½ãª TCP é信端ç¹ãªãã·ã§ã³ã¯ç¡ããããTCP éä¿¡ 106 端ç¹ãªãã·ã§ã³ã®è¨å® API ã¨èªåºã API ã®æ»ãå¤ã¯ E_PAR ã§ããã 107 (7) è¨å®ã¨èªåºãå¯è½ãª UDP é信端ç¹ãªãã·ã§ã³ã¯ç¡ããããUDP éä¿¡ 108 端ç¹ãªãã·ã§ã³ã®è¨å® API ã¨èªåºã API ã®æ»ãå¤ã¯ E_PAR ã§ããã 109 110 1. 3 ãã£ã¬ã¯ããªæ§æ 111 112 TINET ã®ãã£ã¬ã¯ããªã¯ã TOPPERS/ASP ã¾ã㯠TOPPERS/JSP ã®ã«ã¼ãã㣠113 ã¬ã¯ããªã®ä¸ã«ç½®ããã¨ãæ³å®ãã¦ããã以ä¸ã®ãã£ã¬ã¯ããªããæ§æãã㦠114 ããã 115 116 tinet TINET ã®ã«ã¼ããã£ã¬ã¯ã㪠117 tinet/cfg TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ï¼TOPPERS/JSP ç¨ã®ã¿ï¼ 118 tinet/doc ããã¥ã¡ã³ãé¡ 119 tinet/net æ±ç¨ãããã¯ã¼ã¯ 120 tinet/netapp ãµã³ãã«ã®ãããã¯ã¼ã¯ããã°ã©ã 121 tinet/netdev ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã©ã¤ã 69 ・静的経路表 70 ・IP データグラムの分割・再構成(組込み選択可) 71 ・IPSEC(組込み選択可、フックのみ実装) 72 73 (9) その他 74 75 ・ARP 要求・応答の送受信 76 ・ARP での IPv4 アドレス重複検出機能 77 ・DHCP への対応 78 ・SNMP 用管理情報ベース(MIB)の提供 79 80 1. 2 制限事項 81 82 以下に、TINET リリース 1.7 の制約事項を述べる。 83 84 (1) IPv6 では、ネットワークインタフェースはイーサネットのみ選択できる。 85 (2) IPv6 では、TCP と UDP の両方を選択するか、 どちらか一つを選択 86 しなければならない。 また、UDP のみを選択した場合は、ノンブロッ 87 キング機能を組み込む必要がある。 88 (3) ノンブロッキングコールにおいても、 通信端点の排他制御のため、 89 短時間であるがブロックすることがある。 90 (4) IPv6 に関する ITRON TCP/IP API 2.0 仕様には未対応である。 91 TINET リリース 1.2 からの暫定的な ITRON TCP/IP(バージョン 6) 92 API 仕様にのみ対応している。 93 (5) ITRON TCP/IP API 部分のライブラリ化は行われているが、ライブラ 94 リとアプリケーションプログラムを別々に構築しておき、 後でリン 95 クする方法はサポートしていない。 96 (6) 設定と読出し可能な TCP 通信端点オプションは無いため、TCP 通信 97 端点オプションの設定 API と読出し API の戻り値は E_PAR である。 98 (7) 設定と読出し可能な UDP 通信端点オプションは無いため、UDP 通信 99 端点オプションの設定 API と読出し API の戻り値は E_PAR である。 100 101 1. 3 ディレクトリ構成 102 103 TINET のディレクトリは、 TOPPERS/ASP または TOPPERS/JSP のルートディ 104 レクトリの下に置くことを想定しており、以下のディレクトリから構成されて 105 いる。 106 107 tinet TINET のルートディレクトリ 108 tinet/cfg TINET コンフィギュレータ(TOPPERS/JSP 用のみ) 109 tinet/doc ドキュメント類 110 tinet/net 汎用ネットワーク 111 tinet/netapp サンプルのネットワークプログラム 112 tinet/netdev ネットワークインタフェースのドライバ 122 113 tinet/netinet IPv4/TCP/UDP/ICMP 123 114 tinet/netinet6 IPv6/ICMPv6/NDP 124 115 125 1. 4 ããã¥ã¡ã³ãé¡ 126 127 ããã¥ã¡ã³ãé¡ã以ä¸ã«ç¤ºããå 128 ¨ã¦ã®ãã¡ã¤ã«ã¯ PDF ã§ãæä¾ãã¦ããã 129 130 tinet.txt ã¦ã¼ã¶ãºããã¥ã¢ã« 131 tinet_gcc.txt ã¦ã¼ã¶ãºããã¥ã¢ã«ãGCC ç°å¢ã 132 tinet_cs.txt ã¦ã¼ã¶ãºããã¥ã¢ã«ãCS+ ç°å¢ï¼åèï¼ã 133 tinet_sample.txt ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ 134 tinet_config.txt ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ 135 tinet_defs.txt ããã»ããµãã·ã¹ãã ä¾åå®ç¾© 136 137 138 139 140 141 è«å°ç§å·¥æ¥é«çå°éå¦æ ¡ - 2 - æ 142 å ±å·¥å¦ç§ 143 144 145 146 147 TINET ã¦ã¼ã¶ãºããã¥ã¢ã« 1. 4 ããã¥ã¡ã³ãé¡ 148 149 tinet_chg.txt å¤æ´ã¡ã¢ 150 tinet_ether.pdf TINET-1.4 ã«ãããã¤ã¼ãµãããã®å®è£ 151 ï¼PDFã®ã¿ï¼ 152 153 2. TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¨ TINET ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã« 116 1. 4 ドキュメント類 117 118 ドキュメント類を以下に示す。全てのファイルは PDF でも提供している。 119 120 tinet.txt ユーザズマニュアル 121 tinet_gcc.txt ユーザズマニュアル【GCC 環境】 122 tinet_cs.txt ユーザズマニュアル【CS+ 環境(参考)】 123 tinet_sample.txt サンプルアプリケーション 124 tinet_config.txt コンパイル時コンフィギュレーション 125 tinet_defs.txt プロセッサ、システム依存定義 126 127 128 129 130 131 苫小牧工業高等専門学校 - 2 - 情報工学科 132 133 134 135 136 TINET ユーザズマニュアル 1. 4 ドキュメント類 137 138 tinet_chg.txt 変更メモ 139 tinet_ether.pdf TINET-1.4 におけるイーサネットの実装(PDFのみ) 140 141 2. TINET コンフィギュレータと TINET コンフィグレーションファイル 154 142 155 143 2. 1 TOPPERS/ASP 156 144 157 TOPPERS/ASP ã§ã¯ã TOPPERS/ASP ç¨ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãæµç¨ããããã158 TINET ç¬èªã®ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ãªãã159 TOPPERS/ASP ç¨ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãæµç¨ãã¦ãTINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§160 ã³ãã¡ã¤ã«ï¼æ¨æºã¯ tinet_$(APPLNAME).cfgï¼ãã以ä¸ã®ãã¡ã¤ã«ãçæããã 145 TOPPERS/ASP では、 TOPPERS/ASP 用コンフィギュレータを流用するため、 146 TINET 独自のコンフィギュレータはない。 147 TOPPERS/ASP 用コンフィギュレータを流用して、TINET コンフィギュレーショ 148 ンファイル(標準は tinet_$(APPLNAME).cfg)から以下のファイルを生成する。 161 149 162 150 (1) tinet_cfg.c 163 TINET ã«ã¼ãã«æ§æãã¡ã¤ã«ã§ã ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ã 164 TINET ã¨å 165 ±ã«ã³ã³ãã¤ã«ãã¦ãªã³ã¯ããã 151 TINET カーネル構成ファイルで、 アプリケーションプログラム、 152 TINET と共にコンパイルしてリンクする。 166 153 167 154 (2) tinet_kern.cfg 168 TINET å 169 é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã®éç API ãçæããã 170 TOPPERS/ASP ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ï¼æ¨æºã¯ 171 $(APPLNAME).cfgï¼ã«ã¤ã³ã¯ã«ã¼ãããã 155 TINET 内部で使用するカーネルオブジェクトの静的 API が生成され、 156 TOPPERS/ASP システムコンフィギュレーションファイル(標準は 157 $(APPLNAME).cfg)にインクルードする。 172 158 173 159 (3) tinet_cfg.h 174 TINET å 175 é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã® ID èªåå²ä»çµæãã¡ 176 ã¤ã«ã§ããã 160 TINET 内部で使用するカーネルオブジェクトの ID 自動割付結果ファ 161 イルである。 177 162 178 163 2. 2 TOPPERS/JSP 179 164 180 TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ tinet/cfg/tinet_cfg (cygwin ã§ã¯ 181 tinet_cfg.exe) ã§ãããã¿ã¼ã²ããã«ã¯ä¾åãã¦ããªãã TINET ã³ã³ãã£ã° 182 ã¬ã¼ã¿ã®çæã«ã¤ãã¦ã¯ã8. TOPPERS/JSP ç°å¢ã«ãããã¤ã³ã¹ãã¼ã«ã¨ãã¡ 183 ã¤ã«ã®ä½æã»å¤æ´ ããåç 184 §ãããã¨ã 185 TOPPERS/JSP ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ 186 ã³ãã¡ã¤ã«ï¼æ¨æºã¯ tinet_$(UNAME).cfgï¼ãã以ä¸ã®ãã¡ã¤ã«ãçæããã 165 TINET コンフィギュレータは tinet/cfg/tinet_cfg (cygwin では 166 tinet_cfg.exe) であり、ターゲットには依存していない。 TINET コンフィグ 167 レータの生成については「8. TOPPERS/JSP 環境におけるインストールとファ 168 イルの作成・変更 」を参照すること。 169 TOPPERS/JSP 用 TINET コンフィギュレータは TINET コンフィギュレーショ 170 ンファイル(標準は tinet_$(UNAME).cfg)から以下のファイルを生成する。 187 171 188 172 (1) tinet_cfg.c 189 TINET ã«ã¼ãã«æ§æãã¡ã¤ã«ã§ã ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ã 190 TINET ã¨å 191 ±ã«ã³ã³ãã¤ã«ãã¦ãªã³ã¯ããã 173 TINET カーネル構成ファイルで、 アプリケーションプログラム、 174 TINET と共にコンパイルしてリンクする。 192 175 193 176 (2) tinet_kern.cfg 194 TINET å 195 é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã®éç API ãçæããã 196 TOPPERS/JSP ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ï¼æ¨æºã¯ 197 $(UNAME).cfgï¼ã«ã¤ã³ã¯ã«ã¼ãããã 177 TINET 内部で使用するカーネルオブジェクトの静的 API が生成され、 178 TOPPERS/JSP システムコンフィギュレーションファイル(標準は 179 $(UNAME).cfg)にインクルードする。 198 180 199 181 (3) tinet_id.h 200 TINET å 201 é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã® ID èªåå²ä»çµæãã¡ 202 ã¤ã«ã§ããã 203 204 3. ITRON TCP/IP APIä»æ§ 205 206 3. 1 æ«å®çãªITRON TCP/IPï¼ãã¼ã¸ã§ã³6ï¼APIä»æ§ 207 208 IPv6 ã«é¢ãã ITRON TCP/IP API 2.0 ä»æ§ã«ã¯æªå¯¾å¿ã§ããã TINET ãªãªã¼ 209 ã¹ 1.2 ããã®æ«å®ç㪠ITRON TCP/IPï¼ãã¼ã¸ã§ã³ 6ï¼API ä»æ§ã«ã®ã¿å¯¾å¿ã 210 ã¦ããã 211 212 (1) 1.5.1 ãã¼ã¿æ§é ï¼ãã¼ã¿å (1) IP ã¢ãã¬ã¹ï¼ãã¼ãçªå·ãå 213 ¥ã 214 ããã¼ã¿æ§é 215 216 /* IPv6 ã¢ãã¬ã¹ */ 182 TINET 内部で使用するカーネルオブジェクトの ID 自動割付結果ファ 183 イルである。 184 185 3. ITRON TCP/IP API仕様 186 187 3. 1 暫定的なITRON TCP/IP(バージョン6)API仕様 188 189 IPv6 に関する ITRON TCP/IP API 2.0 仕様には未対応である。 TINET リリー 190 ス 1.2 からの暫定的な ITRON TCP/IP(バージョン 6)API 仕様にのみ対応し 191 ている。 192 193 (1) 1.5.1 データ構造/データ型 (1) IP アドレス/ポート番号を入れ 194 るデータ構造 195 196 /* IPv6 アドレス */ 217 197 struct t_in6_addr { 218 198 union { … … 224 204 225 205 typedef struct t_ipv6ep { 226 T_IN6_ADDR ipaddr; /* IPv6 ã¢ãã¬ã¹*/227 uint16_t portno; /* ãã¼ãçªå·*/206 T_IN6_ADDR ipaddr; /* IPv6 アドレス */ 207 uint16_t portno; /* ポート番号 */ 228 208 } T_IPV6EP; 229 209 230 (2) 1.5.1 ãã¼ã¿æ§é ï¼ãã¼ã¿å (2) ãªãã¸ã§ã¯ãçæç¨ã®ãã¼ã¿æ§é210 (2) 1.5.1 データ構造/データ型 (2) オブジェクト生成用のデータ構造 231 211 232 212 typedef struct t_tcp6_crep { 233 /* æ¨æº */ 234 ATR repatr; /* åä»å£å±æ§ */ 235 T_IPV6EP myaddr; /* èªåã®ã¢ãã¬ã¹ */ 236 /* å®è£ 237 ä¾å */ 213 /* 標準 */ 214 ATR repatr; /* 受付口属性 */ 215 T_IPV6EP myaddr; /* 自分のアドレス */ 216 /* 実装依存 */ 238 217 } T_TCP6_CREP; 239 218 240 (3) 1.5.1 ãã¼ã¿æ§é ï¼ãã¼ã¿å (5) ç¹æ®ãª IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·219 (3) 1.5.1 データ構造/データ型 (5) 特殊な IP アドレスとポート番号 241 220 242 221 #define IPV6_ADDR_UNSPECIFIED_INIT \ … … 245 224 #define IPV6_ADDRANY IPV6_ADDR_UNSPECIFIED_INIT 246 225 247 (4) 2.2 TCP åä»å£ã®çæï¼åé¤248 ãéç APIã226 (4) 2.2 TCP 受付口の生成/削除 227 【静的 API】 249 228 TCP6_CRE_REP(ID repid, { ATR repatr, 250 229 { T_IN6_ADDR myipaddr, uint16_t myportno } } ); 251 230 252 ãAPI ã®æ©è½ã 253 myipaddr ã®åã T_IN6_ADDR ã«ãªã£ã以å¤ã¯ã ITRON 254 TCP/IP API ä»æ§ã¨åãã§ãããmyipaddr ã«ã¯ IPV6_ADDRANY 255 ãæå®ã§ããã 256 257 (5) 2.4 æ¥ç¶ï¼åæãæ¥ç¶è¦æ±å¾ 258 ã¡ï¼ååãªã¼ãã³ï¼ã 259 ãC è¨èª APIã 231 【API の機能】 232 myipaddr の型が T_IN6_ADDR になった以外は、 ITRON 233 TCP/IP API 仕様と同じである。myipaddr には IPV6_ADDRANY 234 を指定できる。 235 236 (5) 2.4 接続/切断「接続要求待ち(受動オープン)」 237 【C 言語 API】 260 238 ER ercd = tcp6_acp_cep(ID cepid, ID repid, 261 239 T_IPV6EP *p_dstaddr, TMO tmout); 262 240 263 ãAPI ã®æ©è½ã264 p_dstaddr ã®åãã T_IPV6EP* ã«ãªã£ã以å¤ã¯ãITRON265 TCP/IP API ä»æ§ã¨åãã§ããã266 267 (6) 2.4 æ¥ç¶ï¼åæãæ¥ç¶è¦æ±ï¼è½åãªã¼ãã³ï¼ã268 ãC è¨èª APIã241 【API の機能】 242 p_dstaddr の型が、 T_IPV6EP* になった以外は、 ITRON 243 TCP/IP API 仕様と同じである。 244 245 (6) 2.4 接続/切断「接続要求(能動オープン)」 246 【C 言語 API】 269 247 ER ercd = tcp6_con_cep(ID cepid, T_IPV6EP *p_myaddr, 270 248 T_IPV6EP *p_dstaddr, TMO tmout); 271 249 272 ãæ©è½ã273 p_myaddr 㨠p_dstaddr ã®åãã T_IPV6EP* ã«ãªã£ã以å¤274 ã¯ãITRON TCP/IP API ä»æ§ã¨åãã§ããã275 276 (7) 3.2 UDP é信端ç¹ã®çæï¼åé¤277 ãéç APIã250 【機能】 251 p_myaddr と p_dstaddr の型が、 T_IPV6EP* になった以外 252 は、ITRON TCP/IP API 仕様と同じである。 253 254 (7) 3.2 UDP 通信端点の生成/削除 255 【静的 API】 278 256 UDP6_CRE_CEP(ID cepid, { ATR cepatr, 279 257 { T_IN6_ADDR myipaddr, uint16_t myportno }, 280 258 FP callback } ); 281 259 282 ãæ©è½ã283 myipaddr ã®åã T_IN6_ADDR ã«ãªã£ã以å¤ã¯ãITRON284 TCP/IP API ä»æ§ã¨åãã§ãããmyipaddr ã«ã¯IPV6_ADDRANY285 ãæå®ã§ããã286 287 (8) 3.3 ãã¼ã¿ã®éåä¿¡ããã±ããã®éä¿¡ã288 ãC è¨èª APIã260 【機能】 261 myipaddr の型が T_IN6_ADDR になった以外は、 ITRON 262 TCP/IP API 仕様と同じである。myipaddr には IPV6_ADDRANY 263 を指定できる。 264 265 (8) 3.3 データの送受信「パケットの送信」 266 【C 言語 API】 289 267 ER ercd = udp6_snd_dat(ID cepid, T_IPV6EP *p_dstaddr, 290 268 void *data, int_t len, TMO tmout); 291 269 292 ãæ©è½ã293 p_dstaddr ã®åãã T_IPV6EP* ã«ãªã£ã以å¤ã¯ãITRON294 TCP/IP API ä»æ§ã¨åãã§ããã295 296 (9) 3.4 ãã¼ã¿ã®éåä¿¡ããã±ããã®åä¿¡ã297 ãC è¨èª APIã270 【機能】 271 p_dstaddr の型が、 T_IPV6EP* になった以外は、 ITRON 272 TCP/IP API 仕様と同じである。 273 274 (9) 3.4 データの送受信「パケットの受信」 275 【C 言語 API】 298 276 ER ercd = udp6_rcv_dat(ID cepid, T_IPV6EP *p_dstaddr, 299 277 void *data, int_t len, TMO tmout); 300 278 301 ãæ©è½ã302 p_dstaddr ã®åãã T_IPV6EP* ã«ãªã£ã以å¤ã¯ãITRON303 TCP/IP API ä»æ§ã¨åãã§ããã304 305 3. 2 ãµãã¼ããããªãã¸ã§ã¯ãã®å®ç¾©306 307 ãµãã¼ããããªãã¸ã§ã¯ãã®å®ç¾©ã¯ã以ä¸ã«ç¤ºã ITRON TCP/IP API ä»æ§ã®308 éç APIã æ«å®ç㪠ITRON TCP/IPï¼ãã¼ã¸ã§ã³ 6ï¼API ä»æ§ã®éç APIã 309 TINET ç¬èªã®éç APIããã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ãã§ããã310 311 (1) TCP åä»å£ï¼IPv4ï¼312 ãéç APIã279 【機能】 280 p_dstaddr の型が、 T_IPV6EP* になった以外は、 ITRON 281 TCP/IP API 仕様と同じである。 282 283 3. 2 サポートするオブジェクトの定義 284 285 サポートするオブジェクトの定義は、以下に示す ITRON TCP/IP API 仕様の 286 静的 API、 暫定的な ITRON TCP/IP(バージョン 6)API 仕様の静的 API、 287 TINET 独自の静的 API、ファイルのインクルードである。 288 289 (1) TCP 受付口(IPv4) 290 【静的 API】 313 291 TCP_CRE_REP(ID repid, { ATR repatr, 314 292 { uint32_t myipaddr, uint16_t myportno } } ); 315 293 316 ããã©ã¡ã¼ã¿ã 317 ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãITRON TCP/IP API ä»æ§ã¨åãã§ã 318 ããå®è£ 319 ä¾åã® TCP åä»å£å±æ§ã¯ãªãã 320 ãTCP åä»å£æ°ã®å®ç¾©ã 321 TCP åä»å£æ°ãå®ç¾©ããããªããã»ããµãã£ã¬ã¯ãã£ã㧠322 ãããtinet_cfg.c ã«åºåãããã 323 #define TNUM_TCP_REPID <TCPåä»å£æ°> 324 325 ãTCP åä»å£ ID ã®æ大å¤ã®å¤æ°ã®å®ç¾©ã 326 TCP åä»å£ ID ã®æ大å¤ã®å¤æ°ã®å®ç¾©ã§ãããtinet_cfg.c 327 ã«åºåãããã 294 【パラメータ】 295 パラメータについては、ITRON TCP/IP API 仕様と同じであ 296 り、実装依存の TCP 受付口属性はない。 297 【TCP 受付口数の定義】 298 TCP 受付口数を定義するプリプロセッサディレクティブで 299 あり、tinet_cfg.c に出力される。 300 #define TNUM_TCP_REPID <TCP受付口数> 301 302 【TCP 受付口 ID の最大値の変数の定義】 303 TCP 受付口 ID の最大値の変数の定義であり、tinet_cfg.c 304 に出力される。 328 305 const ID tmax_tcp_repid = 329 306 (TMIN_TCP_REPID + TNUM_TCP_REPID - 1); 330 307 331 (2) TCP é信端ç¹ï¼IPv4ï¼332 ãéç APIã308 (2) TCP 通信端点(IPv4) 309 【静的 API】 333 310 TCP_CRE_CEP(ID cepid, { ATR cepatr, void *sbuf, int_t sbufsz, 334 311 void *rbuf, int_t rbufsz, 335 312 FP callback } ); 336 313 337 ããã©ã¡ã¼ã¿ã 338 ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãITRON TCP/IP API ä»æ§ã¨åãã§ã 339 ããå®è£ 340 ä¾åã® TCP é信端ç¹å±æ§ã¯ãªãã 341 ãTCP é信端ç¹æ°ã®å®ç¾©ã 342 TCP é信端ç¹æ°ãå®ç¾©ããããªããã»ããµãã£ã¬ã¯ãã£ã 343 ã§ãããtinet_cfg.c ã«åºåãããã 344 #define TNUM_TCP_CEPID <TCPé信端ç¹æ°> 345 346 ãTCP éä¿¡ç«¯ç¹ ID ã®æ大å¤ã®å¤æ°ã®å®ç¾©ã 347 TCP éä¿¡ç«¯ç¹ ID ã®æ大å¤ã®å¤æ°ã®å®ç¾©ã§ããã 348 tinet_cfg.c ã«åºåãããã 314 【パラメータ】 315 パラメータについては、ITRON TCP/IP API 仕様と同じであ 316 り、実装依存の TCP 通信端点属性はない。 317 【TCP 通信端点数の定義】 318 TCP 通信端点数を定義するプリプロセッサディレクティブ 319 であり、tinet_cfg.c に出力される。 320 #define TNUM_TCP_CEPID <TCP通信端点数> 321 322 【TCP 通信端点 ID の最大値の変数の定義】 323 TCP 通信端点 ID の最大値の変数の定義であり、 324 tinet_cfg.c に出力される。 349 325 const ID tmax_tcp_cepid = 350 326 (TMIN_TCP_CEPID + TNUM_TCP_CEPID - 1); 351 327 352 (3) UDP é信端ç¹ï¼IPv4ï¼353 ãéç APIã328 (3) UDP 通信端点(IPv4) 329 【静的 API】 354 330 UDP_CRE_CEP(ID cepid, { ATR cepatr, 355 331 { uint32_t myipaddr, uint16_t myportno }, 356 332 FP callback } ); 357 333 358 ããã©ã¡ã¼ã¿ã 359 ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãITRON UDP/IP API ä»æ§ã¨åãã§ã 360 ããå®è£ 361 ä¾åã® UDP é信端ç¹å±æ§ã¯ãªãã 362 ãUDP é信端ç¹æ°ã®å®ç¾©ã 363 UDP é信端ç¹æ°ãå®ç¾©ããããªããã»ããµãã£ã¬ã¯ãã£ã 364 ã§ãããtinet_cfg.c ã«åºåãããã 365 #define TNUM_UDP_CEPID <UDPé信端ç¹æ°> 366 367 ãUDP éä¿¡ç«¯ç¹ ID ã®æ大å¤ã®å¤æ°ã®å®ç¾©ã 368 UDP éä¿¡ç«¯ç¹ ID ã®æ大å¤ã®å¤æ°ãå®ç¾©ã§ããã 369 tinet_cfg.c ã«åºåãããã 334 【パラメータ】 335 パラメータについては、ITRON UDP/IP API 仕様と同じであ 336 り、実装依存の UDP 通信端点属性はない。 337 【UDP 通信端点数の定義】 338 UDP 通信端点数を定義するプリプロセッサディレクティブ 339 であり、tinet_cfg.c に出力される。 340 #define TNUM_UDP_CEPID <UDP通信端点数> 341 342 【UDP 通信端点 ID の最大値の変数の定義】 343 UDP 通信端点 ID の最大値の変数を定義であり、 344 tinet_cfg.c に出力される。 370 345 const ID tmax_udp_cepid = 371 346 (TMIN_UDP_CEPID + TNUM_UDP_CEPID - 1); 372 347 373 (4) TCP åä»å£ï¼IPv6ï¼374 ãéç APIã348 (4) TCP 受付口(IPv6) 349 【静的 API】 375 350 TCP6_CRE_REP(ID repid, { ATR repatr, 376 351 { T_IN6_ADDR myipaddr, uint16_t myportno } } ); 377 352 378 ããã©ã¡ã¼ã¿ã 379 ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãmyipaddr ã§æå®ãã IP ã¢ãã¬ã¹ 380 㯠IPv6 ã§ããã IPv4 ã® IP_ADDRANY ã®ä»£ããã«ãIPv6 㧠381 㯠IPV6_ADDRANY ãæå®ã§ããããã以å¤ã¯ã ITRON TCP/IP 382 API ä»æ§ã¨åãã§ãããå®è£ 383 ä¾åã® TCP åä»å£å±æ§ã¯ãªãã 384 ãTCP åä»å£æ°ã®å®ç¾©ã 385 TCP åä»å£æ°ãå®ç¾©ããããªããã»ããµãã£ã¬ã¯ãã£ã㧠386 ãããtinet_cfg.c ã«åºåãããã 387 #define TNUM_TCP_REPID <TCPåä»å£æ°> 388 389 ãTCP åä»å£ ID ã®æ大å¤ã®å¤æ°ã®å®ç¾©ã 390 TCP åä»å£ ID ã®æ大å¤ã®å¤æ°ãå®ç¾©ã§ãããtinet_cfg.c 391 ã«åºåãããã 353 【パラメータ】 354 パラメータについては、myipaddr で指定する IP アドレス 355 は IPv6 であり、 IPv4 の IP_ADDRANY の代わりに、IPv6 で 356 は IPV6_ADDRANY を指定できる。これ以外は、 ITRON TCP/IP 357 API 仕様と同じであり、実装依存の TCP 受付口属性はない。 358 【TCP 受付口数の定義】 359 TCP 受付口数を定義するプリプロセッサディレクティブで 360 あり、tinet_cfg.c に出力される。 361 #define TNUM_TCP_REPID <TCP受付口数> 362 363 【TCP 受付口 ID の最大値の変数の定義】 364 TCP 受付口 ID の最大値の変数を定義であり、tinet_cfg.c 365 に出力される。 392 366 const ID tmax_tcp_repid = 393 367 (TMIN_TCP_REPID + TNUM_TCP_REPID - 1); 394 368 395 (5) TCP é信端ç¹ï¼IPv6ï¼396 ãéç APIã369 (5) TCP 通信端点(IPv6) 370 【静的 API】 397 371 TCP6_CRE_CEP(ID cepid, { ATR cepatr, void *sbuf, int_t sbufsz, 398 372 void *rbuf, int_t rbufsz, 399 373 FP callback } ); 400 374 401 ããã©ã¡ã¼ã¿ã 402 ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãITRON TCP/IP API ä»æ§ã¨åãã§ã 403 ããå®è£ 404 ä¾åã® TCP é信端ç¹å±æ§ã¯ãªãã 405 406 ãTCP é信端ç¹æ°ã®å®ç¾©ã 407 TCP é信端ç¹æ°ãå®ç¾©ããããªããã»ããµãã£ã¬ã¯ãã£ã 408 ã§ãããtinet_cfg.c ã«åºåãããã 409 #define TNUM_TCP_CEPID <TCPé信端ç¹æ°> 410 411 ãTCP éä¿¡ç«¯ç¹ ID ã®æ大å¤ã®å¤æ°ã®å®ç¾©ã 412 æ大㮠TCP éä¿¡ç«¯ç¹ ID ã®æ大å¤ã®å¤æ°ãå®ç¾©ã§ããã 413 tinet_cfg.c ã«åºåãããã 375 【パラメータ】 376 パラメータについては、ITRON TCP/IP API 仕様と同じであ 377 り、実装依存の TCP 通信端点属性はない。 378 379 【TCP 通信端点数の定義】 380 TCP 通信端点数を定義するプリプロセッサディレクティブ 381 であり、tinet_cfg.c に出力される。 382 #define TNUM_TCP_CEPID <TCP通信端点数> 383 384 【TCP 通信端点 ID の最大値の変数の定義】 385 最大の TCP 通信端点 ID の最大値の変数を定義であり、 386 tinet_cfg.c に出力される。 414 387 const ID tmax_tcp_cepid = 415 388 (TMIN_TCP_CEPID + TNUM_TCP_CEPID - 1); 416 389 417 (6) UDP é信端ç¹ï¼IPv6ï¼418 ãéç APIã390 (6) UDP 通信端点(IPv6) 391 【静的 API】 419 392 UDP6_CRE_CEP(ID cepid, { ATR cepatr, 420 393 { T_IN6_ADDR myipaddr, uint16_t myportno }, 421 394 FP callback } ); 422 395 423 ããã©ã¡ã¼ã¿ã 424 ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãmyipaddr ã§æå®ãã IP ã¢ãã¬ã¹ 425 㯠IPv6 ã§ããã IPv4 ã® IP_ADDRANY ã®ä»£ããã«ãIPv6 㧠426 㯠IPV6_ADDRANY ãæå®ã§ããããã以å¤ã¯ã ITRON TCP/IP 427 API ä»æ§ã¨åãã§ãããå®è£ 428 ä¾åã® TCP åä»å£å±æ§ã¯ãªãã 429 ãUDP é信端ç¹æ°ã®å®ç¾©ã 430 UDP é信端ç¹æ°ãå®ç¾©ããããªããã»ããµãã£ã¬ã¯ãã£ã 431 ã§ãããtinet_cfg.c ã«åºåãããã 432 #define TNUM_UDP_CEPID <UDPé信端ç¹æ°> 433 434 ãUDP éä¿¡ç«¯ç¹ ID ã®æ大å¤ã®å¤æ°ã®å®ç¾©ã 435 UDP éä¿¡ç«¯ç¹ ID ã®æ大å¤ã®å¤æ°ãå®ç¾©ã§ããã 436 tinet_cfg.c ã«åºåãããã 396 【パラメータ】 397 パラメータについては、myipaddr で指定する IP アドレス 398 は IPv6 であり、 IPv4 の IP_ADDRANY の代わりに、IPv6 で 399 は IPV6_ADDRANY を指定できる。これ以外は、 ITRON TCP/IP 400 API 仕様と同じであり、実装依存の TCP 受付口属性はない。 401 【UDP 通信端点数の定義】 402 UDP 通信端点数を定義するプリプロセッサディレクティブ 403 であり、tinet_cfg.c に出力される。 404 #define TNUM_UDP_CEPID <UDP通信端点数> 405 406 【UDP 通信端点 ID の最大値の変数の定義】 407 UDP 通信端点 ID の最大値の変数を定義であり、 408 tinet_cfg.c に出力される。 437 409 const ID tmax_udp_cepid = 438 410 (TMIN_UDP_CEPID + TNUM_UDP_CEPID - 1); 439 411 440 (7) TCP åä»å£ã®äºç´ IDï¼IPv4ãTINET ç¬èªï¼441 ãéç APIã412 (7) TCP 受付口の予約 ID(IPv4、TINET 独自) 413 【静的 API】 442 414 VRID_TCP_REP(ID repid); 443 415 444 ããã©ã¡ã¼ã¿ã445 ID repid äºç´ããTCPåä»å£ID446 447 (8) TCP é信端ç¹ã®äºç´ IDï¼IPv4ãTINET ç¬èªï¼448 ãéç APIã416 【パラメータ】 417 ID repid 予約するTCP受付口ID 418 419 (8) TCP 通信端点の予約 ID(IPv4、TINET 独自) 420 【静的 API】 449 421 VRID_TCP_CEP(ID cepid); 450 422 451 ããã©ã¡ã¼ã¿ã452 ID repid äºç´ããTCPé信端ç¹ID453 454 (9) UDP é信端ç¹ã®äºç´ IDï¼IPv4ãTINET ç¬èªï¼455 ãéç APIã423 【パラメータ】 424 ID repid 予約するTCP通信端点ID 425 426 (9) UDP 通信端点の予約 ID(IPv4、TINET 独自) 427 【静的 API】 456 428 VRID_UDP_CEP(ID cepid); 457 429 458 ããã©ã¡ã¼ã¿ã459 ID repid äºç´ããUDPé信端ç¹ID460 461 (10) TCP åä»å£ã®äºç´ IDï¼IPv6ãTINET ç¬èªï¼462 ãéç APIã430 【パラメータ】 431 ID repid 予約するUDP通信端点ID 432 433 (10) TCP 受付口の予約 ID(IPv6、TINET 独自) 434 【静的 API】 463 435 VRID_TCP6_REP(ID repid); 464 436 465 ããã©ã¡ã¼ã¿ã466 ID repid äºç´ããTCPåä»å£ID467 468 (11) TCP é信端ç¹ã®äºç´ IDï¼IPv6ãTINET ç¬èªï¼469 ãéç APIã437 【パラメータ】 438 ID repid 予約するTCP受付口ID 439 440 (11) TCP 通信端点の予約 ID(IPv6、TINET 独自) 441 【静的 API】 470 442 VRID_TCP6_CEP(ID cepid); 471 443 472 ããã©ã¡ã¼ã¿ã473 ID repid äºç´ããTCPé信端ç¹ID474 475 (12) UDP é信端ç¹ã®äºç´ IDï¼IPv6ãTINET ç¬èªï¼476 ãéç APIã444 【パラメータ】 445 ID repid 予約するTCP通信端点ID 446 447 (12) UDP 通信端点の予約 ID(IPv6、TINET 独自) 448 【静的 API】 477 449 VRID_UDP6_CEP(ID cepid); 478 450 479 ããã©ã¡ã¼ã¿ã480 ID repid äºç´ããUDPé信端ç¹ID481 482 4. ITRON TCP/IP API æ¡å¼µæ©è½483 484 TINET ãªãªã¼ã¹ 1.3 ã¾ã§ã¯ãITRON TCP/IP API ã®æ¨æºæ©è½ã®ã¿ã«å¯¾å¿ãã¦485 ãããã ãªãªã¼ã¹ 1.4 ããã¯ãæ¡å¼µæ©è½ã«ã対å¿ããããã ããå¿ç¨ããã° 486 ã©ã ãã使ç¨ããå ´åã¯ã以ä¸ã«ç¤ºãã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã 487 ã©ã¡ã¼ã¿ãæå®ããªããã°ãªããªãã451 【パラメータ】 452 ID repid 予約するUDP通信端点ID 453 454 4. ITRON TCP/IP API 拡張機能 455 456 TINET リリース 1.3 までは、ITRON TCP/IP API の標準機能のみに対応して 457 いたが、 リリース 1.4 からは、拡張機能にも対応した。ただし、応用プログ 458 ラムから使用する場合は、以下に示すコンパイル時コンフィギュレーションパ 459 ラメータを指定しなければならない。 488 460 489 461 (1) TCP_CFG_EXTENTIONS 490 ITRON TCP/IP API ã® TCP ã®æ¡å¼µæ©è½ãæå¹ã«ããã462 ITRON TCP/IP API の TCP の拡張機能を有効にする。 491 463 492 464 (2) UDP_CFG_EXTENTIONS 493 ITRON TCP/IP API ã® UDP ã®æ¡å¼µæ©è½ãæå¹ã«ããã 494 495 4. 1 TCP ã® ITRON TCP/IP API æ¡å¼µæ©è½ 496 497 TCP_CFG_EXTENTIONS ãæå®ãããã¨ã«ãã使ç¨å¯è½ã¨ãªã API ã以ä¸ã«ç¤º 498 ãã 499 500 ã»TCP åä»å£ã®äºç´ IDãéç APIãVRID_TCP_REPãï¼IPv4ãTINET ç¬èªï¼ 501 ã»TCP åä»å£ã®äºç´ IDãéç APIãVRID_TCP6_REPãï¼IPv6ãTINET ç¬èªï¼ 502 ã»TCP é信端ç¹ã®äºç´ IDãéç APIãVRID_TCP_CEPãï¼IPv4ãTINET ç¬èªï¼ 503 ã»TCP é信端ç¹ã®äºç´ IDãéç APIã VRID_TCP6_CEPãï¼IPv6ãTINET ç¬èªï¼ 504 ã»TCP åä»å£ã®çæãåç APIãtcp_cre_repãï¼IPv4ï¼ 505 ã»TCP åä»å£ã®çæãåç APIãtcp6_cre_repãï¼IPv6ãTINET ç¬èªï¼ 506 ã»TCP åä»å£ã®åé¤ãåç APIãtcp_del_repã 507 ã»TCP é信端ç¹ã®çæãåç APIãtcp_cre_cepã 508 ã»TCP é信端ç¹ã®åé¤ãåç APIãtcp_del_cepã 509 ã»ç·æ¥ãã¼ã¿ã®éä¿¡ãtcp_snd_oobã 510 ã»ç·æ¥ãã¼ã¿ã®åä¿¡ãtcp_rcv_oobã 511 ã»TCP é信端ç¹ãªãã·ã§ã³ã®è¨å®ãtcp_set_optã 512 ã»TCP é信端ç¹ãªãã·ã§ã³ã®èªåºããtcp_get_optã 513 ã»ç·æ¥ãã¼ã¿åä¿¡ãã³ã¼ã«ããã¯ãTEV_TCP_RCV_OOBã 514 515 (1) TCP åä»å£ã®çæã¨åé¤ 516 ãã®æ©è½ã«ããã1 åã® TCP åä»å£ãè¤æ°ã®ã¿ã¹ã¯ã§å 517 ±æããã 518 ã¨ãã§ããããã ãã1 åã«ä½¿ç¨ã§ããã®ã¯ 1 åã®ã¿ã¹ã¯ã«éå®ã 519 ããã 以ä¸ã«æ¨æºçãªä½¿ç¨æ¹æ³ãè¿°ã¹ãã ãªãã ç 520 ©éã«ãªããã 521 IPv6 ã«é¢ãã¦ã®èª¬æã¯ãä¸é¨çç¥ãã¦ããã 522 523 [1] TCP åä»å£ã®äºç´ IDãéç APIã VRID_TCP_REPã 524 VRID_TCP6_REPãã«ãããTCP åä»å£ ID ãäºç´ããã 525 526 VRID_TCP_REP ã®æ¸å¼ã以ä¸ã«ç¤ºãã 465 ITRON TCP/IP API の UDP の拡張機能を有効にする。 466 467 4. 1 TCP の ITRON TCP/IP API 拡張機能 468 469 TCP_CFG_EXTENTIONS を指定することにより使用可能となる API を以下に示 470 す。 471 472 ・TCP 受付口の予約 ID【静的 API、VRID_TCP_REP】(IPv4、TINET 独自) 473 ・TCP 受付口の予約 ID【静的 API、VRID_TCP6_REP】(IPv6、TINET 独自) 474 ・TCP 通信端点の予約 ID【静的 API、VRID_TCP_CEP】(IPv4、TINET 独自) 475 ・TCP 通信端点の予約 ID【静的 API、 VRID_TCP6_CEP】(IPv6、TINET 独自) 476 ・TCP 受付口の生成【動的 API、tcp_cre_rep】(IPv4) 477 ・TCP 受付口の生成【動的 API、tcp6_cre_rep】(IPv6、TINET 独自) 478 ・TCP 受付口の削除【動的 API、tcp_del_rep】 479 ・TCP 通信端点の生成【動的 API、tcp_cre_cep】 480 ・TCP 通信端点の削除【動的 API、tcp_del_cep】 481 ・緊急データの送信【tcp_snd_oob】 482 ・緊急データの受信【tcp_rcv_oob】 483 ・TCP 通信端点オプションの設定【tcp_set_opt】 484 ・TCP 通信端点オプションの読出し【tcp_get_opt】 485 ・緊急データ受信【コールバック、TEV_TCP_RCV_OOB】 486 487 (1) TCP 受付口の生成と削除 488 この機能により、1 個の TCP 受付口を複数のタスクで共有するこ 489 とができる。ただし、1 回に使用できるのは 1 個のタスクに限定さ 490 れる。 以下に標準的な使用方法を述べる。 なお、 煩雑になるため 491 IPv6 に関しての説明は、一部省略している。 492 493 [1] TCP 受付口の予約 ID【静的 API、 VRID_TCP_REP、 494 VRID_TCP6_REP】により、TCP 受付口 ID を予約する。 495 496 VRID_TCP_REP の書式を以下に示す。 527 497 528 498 VRID_TCP_REP(ID repid); 529 499 530 ãã©ã¡ã¼ã¿ repid ã¯äºç´ãã TCP åä»å£ ID ã§ããã ä¸è¬531 çã«ã¯ã TINET ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«ä»¥ä¸ã®ãã532 ã«æå®ããã500 パラメータ repid は予約する TCP 受付口 ID であり、 一般 501 的には、 TINET コンフィグレーションファイルに以下のよう 502 に指定する。 533 503 534 504 VRID_TCP_REP (TCP_RSV_REPID1); 535 505 536 ããã«ããã TCP åä»å£ç¨ã®ã¡ã¢ãªé åã確ä¿ããã TINET 537 å 538 é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã® ID èªåå²ä»çµæãã¡ 539 ã¤ã«ï¼TOPPERS/ASP 㯠tinet_cfg.hã TOPPERS/JSP 㯠540 tinet_id.hï¼ã«ã 対å¿ãããã¯ãå®ç¾©ã以ä¸ã®ããã«åºåãããã 506 これにより、 TCP 受付口用のメモリ領域が確保され、 TINET 507 内部で使用するカーネルオブジェクトの ID 自動割付結果ファ 508 イル(TOPPERS/ASP は tinet_cfg.h、 TOPPERS/JSP は 509 tinet_id.h)に、 対応するマクロ定義が以下のように出力される。 541 510 542 511 #define TCP_RSV_REPID1 1 543 512 544 [2] TCP åä»å£ã®çæãåç APIãtcp_cre_repãtcp6_cre_repã 545 ã«ãããTCP åä»å£ãçæããã 546 547 ã¾ããTCP åä»å£çææ 548 å ±æ§é ä½ã«æ 549 å ±ãè¨å®ãããIPv4 ã® 550 å ´åã®ä¾ã以ä¸ã«ç¤ºãã 513 [2] TCP 受付口の生成【動的 API、tcp_cre_rep、tcp6_cre_rep】 514 により、TCP 受付口を生成する。 515 516 まず、TCP 受付口生成情報構造体に情報を設定する。IPv4 の 517 場合の例を以下に示す。 551 518 552 519 T_TCP_CREP crep; … … 555 522 crep.myaddr.ipaddr = IPV4_ADDRANY; 556 523 557 ã¾ã IPv6 ã®å ´åã®ä¾ã以ä¸ã«ç¤ºãã524 また IPv6 の場合の例を以下に示す。 558 525 559 526 T_TCP6_CREP crep; … … 562 529 memcpy(&crep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR)); 563 530 564 ããããã åä»ããèªåã® IP ã¢ãã¬ã¹ã¯è¦å®å¤ï¼å 565 ¨ã¦ï¼ã§ããã 566 次ã«ãtcp_cre_rep ã®æ¸å¼ã示ãã 531 いずれも、 受付ける自分の IP アドレスは規定値(全て)である。 532 次に、tcp_cre_rep の書式を示す。 567 533 568 534 ER ercd = tcp_cre_rep(ID repid, T_TCP_CREP *pk_crep); 569 535 570 ãã©ã¡ã¼ã¿ repid ã«ã¯ [1] ã§äºç´ãã TCP åä»å£ ID ãæ 571 å®ããpk_crep ã«ã¯ä¸è¨ã§è¨å®æ¸ã¿ã® TCP åä»å£çææ 572 å ±ã¸ 573 ã®ãã¤ã³ã¿ãæå®ãããä¸è¬çãªä¾ã以ä¸ã«ç¤ºãã 536 パラメータ repid には [1] で予約した TCP 受付口 ID を指 537 定し、pk_crep には上記で設定済みの TCP 受付口生成情報へ 538 のポインタを指定する。一般的な例を以下に示す。 574 539 575 540 ercd = tcp_cre_rep(TCP_RSV_REPID1, &crep); 576 541 577 ããã«ããã VRID_TCP_REP ã§ç¢ºä¿ããã TCP åä»å£ç¨ã®ã¡ 578 ã¢ãªé åã« TCP åä»å£çææ 579 å ±ãæ¸è¾¼ã¾ããã 580 581 [3] æ¥ç¶è¦æ±å¾ 582 ã¡ï¼ååãªã¼ãã³ï¼ãtcp_acp_cepãtcp6_acp_cepã 583 ã«ãããæ¥ç¶è¦æ±å¾ 584 ã¡ï¼ååãªã¼ãã³ï¼ããã 585 586 tcp_acp_cep ã®æ¸å¼ã示ãã 542 これにより、 VRID_TCP_REP で確保された TCP 受付口用のメ 543 モリ領域に TCP 受付口生成情報が書込まれる。 544 545 [3] 接続要求待ち(受動オープン)【tcp_acp_cep、tcp6_acp_cep】 546 により、接続要求待ち(受動オープン)する。 547 548 tcp_acp_cep の書式を示す。 587 549 588 550 ER ercd = tcp_acp_cep(ID cepid, ID repid, 589 551 T_IPV4EP *p_dstaddr, TMO tmout); 590 552 591 ãã©ã¡ã¼ã¿ repid ã« [1] ã§äºç´ãã TCP åä»å£ ID ãæå® 592 ãã以å¤ã¯ã é常ã®å¼ã³åºãã¨åãã§ããã 593 594 [4] TCP åä»å£ã®åé¤ãåç APIãtcp_del_repãã«ãããTCP å 595 ä»å£ãåé¤ããã 596 597 é常ã¯ã æ¥ç¶è¦æ±å¾ 598 ã¡ï¼ååãªã¼ãã³ï¼ãçµäºããå¾ã«ã 599 TCP åä»å£ãåé¤ãããã æ¥ç¶è¦æ±å¾ 600 ã¡ï¼ååãªã¼ãã³ï¼ä¸ 601 ã«ãtcp_del_cep ã«ããã TCP é信端ç¹ãåé¤ãããã¨ãå¯ 602 è½ã§ããã ãã®å ´åãtcp_acp_cep ã®æ»ãå¤ã«ã¯ãE_DLT ã 603 è¿ããããTCP åä»å£ãåé¤ããã¨ã ä»ã®ã¿ã¹ã¯ãåã TCP 604 åä»å£ ID ãå©ç¨ã§ãããtcp_del_rep ã®æ¸å¼ã示ãã 553 パラメータ repid に [1] で予約した TCP 受付口 ID を指定 554 する以外は、 通常の呼び出しと同じである。 555 556 [4] TCP 受付口の削除【動的 API、tcp_del_rep】により、TCP 受 557 付口を削除する。 558 559 通常は、 接続要求待ち(受動オープン)が終了した後に、 560 TCP 受付口を削除するが、 接続要求待ち(受動オープン)中 561 に、tcp_del_cep により、 TCP 通信端点を削除することも可 562 能である。 この場合、tcp_acp_cep の戻り値には、E_DLT が 563 返される。TCP 受付口を削除すると、 他のタスクが同じ TCP 564 受付口 ID を利用できる。tcp_del_rep の書式を示す。 605 565 606 566 ER ercd = tcp_del_rep(ID cepid); 607 567 608 ãã©ã¡ã¼ã¿ repid ã«ã¯ [1] ã§äºç´ãã TCP åä»å£ ID ãæ 609 å®ããã 610 611 (2) TCP é信端ç¹ã®çæã¨åé¤ 612 ãã®æ©è½ã«ããã1 åã® TCP é信端ç¹ãè¤æ°ã®ã¿ã¹ã¯ã§å 613 ±æãã 614 ãã¨ãã§ããããã ãã1 åã«ä½¿ç¨ã§ããã®ã¯ 1 åã®ã¿ã¹ã¯ã«éå® 615 ãããã 以ä¸ã«æ¨æºçãªä½¿ç¨æ¹æ³ãè¿°ã¹ãããªããç 616 ©éã«ãªããã 617 IPv6 ã«é¢ãã¦ã®èª¬æã¯ãä¸é¨çç¥ãã¦ããã 618 619 [1] TCP é信端ç¹ã®äºç´ IDãéç APIã VRID_TCP_CEPã 620 VRID_TCP6_CEPãã«ãããTCP éä¿¡ç«¯ç¹ ID ãäºç´ããã 621 622 VRID_TCP_CEP ã®æ¸å¼ã以ä¸ã«ç¤ºãã 568 パラメータ repid には [1] で予約した TCP 受付口 ID を指 569 定する。 570 571 (2) TCP 通信端点の生成と削除 572 この機能により、1 個の TCP 通信端点を複数のタスクで共有する 573 ことができる。ただし、1 回に使用できるのは 1 個のタスクに限定 574 される。 以下に標準的な使用方法を述べる。なお、煩雑になるため 575 IPv6 に関しての説明は、一部省略している。 576 577 [1] TCP 通信端点の予約 ID【静的 API、 VRID_TCP_CEP、 578 VRID_TCP6_CEP】により、TCP 通信端点 ID を予約する。 579 580 VRID_TCP_CEP の書式を以下に示す。 623 581 624 582 VRID_TCP_CEP(ID cepid); 625 583 626 ãã©ã¡ã¼ã¿ cepid ã¯äºç´ãã TCP éä¿¡ç«¯ç¹ ID ã§ããã ä¸627 è¬çã«ã¯ã TINET ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«ä»¥ä¸ã®ã628 ãã«æå®ããã584 パラメータ cepid は予約する TCP 通信端点 ID であり、 一 585 般的には、 TINET コンフィグレーションファイルに以下のよ 586 うに指定する。 629 587 630 588 VRID_TCP_CEP (TCP_RSV_CEPID1); 631 589 632 ããã«ãããTCP é信端ç¹ç¨ã®ã¡ã¢ãªé åã確ä¿ãããTINET 633 å 634 é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã® ID èªåå²ä»çµæãã¡ 635 ã¤ã«ï¼TOPPERS/ASP 㯠tinet_cfg.hã TOPPERS/JSP 㯠636 tinet_id.hï¼ã«ã 対å¿ãããã¯ãå®ç¾©ã以ä¸ã®ããã«åºåãããã 590 これにより、TCP 通信端点用のメモリ領域が確保され、TINET 591 内部で使用するカーネルオブジェクトの ID 自動割付結果ファ 592 イル(TOPPERS/ASP は tinet_cfg.h、 TOPPERS/JSP は 593 tinet_id.h)に、 対応するマクロ定義が以下のように出力される。 637 594 638 595 #define TCP_RSV_CEPID1 1 639 596 640 [2] TCP é信端ç¹ã®çæãåç APIã tcp_cre_cepãã«ãããTCP 641 é信端ç¹ãçæããã 642 643 ã¾ããTCP é信端ç¹çææ 644 å ±æ§é ä½ã«æ 645 å ±ãè¨å®ããã ä¸è¬ 646 çãªä¾ã以ä¸ã«ç¤ºãã 597 [2] TCP 通信端点の生成【動的 API、 tcp_cre_cep】により、TCP 598 通信端点を生成する。 599 600 まず、TCP 通信端点生成情報構造体に情報を設定する。 一般 601 的な例を以下に示す。 647 602 648 603 T_TCP_CCEP ccep; … … 654 609 ccep.callback = (FP)callback_nblk_tcp_echo_srv; 655 610 656 次ã«ãtcp_cre_cep ã®æ¸å¼ã示ãã611 次に、tcp_cre_cep の書式を示す。 657 612 658 613 ER ercd = tcp_cre_cep(ID cepid, T_TCP_CCEP *pk_ccep); 659 614 660 ãã©ã¡ã¼ã¿ cepid ã«ã¯ [1] ã§äºç´ãã TCP éä¿¡ç«¯ç¹ ID ã 661 æå®ããpk_ccep ã«ã¯ä¸è¨ã§è¨å®æ¸ã¿ã® TCP é信端ç¹çææ 662 663 å ±ã¸ã®ãã¤ã³ã¿ãæå®ããã ä¸è¬çãªä¾ã以ä¸ã«ç¤ºãã 615 パラメータ cepid には [1] で予約した TCP 通信端点 ID を 616 指定し、pk_ccep には上記で設定済みの TCP 通信端点生成情 617 報へのポインタを指定する。 一般的な例を以下に示す。 664 618 665 619 ercd = tcp_cre_cep(TCP_RSV_CEPID1, &ccep); 666 620 667 ããã«ããã VRID_TCP_CEP ã§ç¢ºä¿ããã TCP é信端ç¹ç¨ã® 668 ã¡ã¢ãªé åã« TCP é信端ç¹çææ 669 å ±ãæ¸è¾¼ã¾ããã 670 ãã®å¾ãTCP ã®å API ã®ãã©ã¡ã¼ã¿ cepid ã« [1] ã§äºç´ 671 ãã TCP éä¿¡ç«¯ç¹ ID ãæå®ãã以å¤ã¯ã é常㮠TCP éä¿¡ 672 端ç¹ã¨åãããã«ä½¿ç¨ã§ããã 673 674 [3] TCP é信端ç¹ã®åé¤ãåç APIãtcp_del_cepãã«ããã TCP 675 é信端ç¹ãåé¤ããã 676 677 tcp_cls_cep ãå¼ã³åºãã¾ã§ã¯ã TCP é信端ç¹ãåé¤ã§ã 678 ãªãããtcp_cls_cep ã®å¾ã¯ TCP é信端ç¹ãåé¤ã§ããä»ã® 679 ã¿ã¹ã¯ãåã TCP éä¿¡ç«¯ç¹ ID ãå©ç¨ã§ããã tcp_del_cep 680 ã®æ¸å¼ã示ãã 621 これにより、 VRID_TCP_CEP で確保された TCP 通信端点用の 622 メモリ領域に TCP 通信端点生成情報が書込まれる。 623 この後、TCP の各 API のパラメータ cepid に [1] で予約 624 した TCP 通信端点 ID を指定する以外は、 通常の TCP 通信 625 端点と同じように使用できる。 626 627 [3] TCP 通信端点の削除【動的 API、tcp_del_cep】により、 TCP 628 通信端点を削除する。 629 630 tcp_cls_cep を呼び出すまでは、 TCP 通信端点を削除でき 631 ないが、tcp_cls_cep の後は TCP 通信端点を削除でき、他の 632 タスクが同じ TCP 通信端点 ID を利用できる。 tcp_del_cep 633 の書式を示す。 681 634 682 635 ER ercd = tcp_del_cep(ID cepid); 683 636 684 ãã©ã¡ã¼ã¿ cepid ã«ã¯ [1] ã§äºç´ãã TCP éä¿¡ç«¯ç¹ ID ã685 æå®ããã686 687 (3) ç·æ¥ãã¼ã¿ã®éåä¿¡688 689 [1] ç·æ¥ãã¼ã¿ã®éä¿¡ãtcp_snd_oobã690 691 tcp_snd_oob ã®æ¸å¼ã以ä¸ã«ç¤ºãã637 パラメータ cepid には [1] で予約した TCP 通信端点 ID を 638 指定する。 639 640 (3) 緊急データの送受信 641 642 [1] 緊急データの送信【tcp_snd_oob】 643 644 tcp_snd_oob の書式を以下に示す。 692 645 693 646 ER_UINT ercd = tcp_snd_oob(ID cepid, void *data, int_t len, TMO tmout); 694 647 695 ãªãã 以ä¸ã«ç¤ºããããªå¶ç´ãããã 696 697 ã»ç·æ¥ãã¼ã¿ã ããã¨ãã£ã¦ã ãã§ã«éä¿¡ã¦ã£ã³ããããã¡ 698 ã«ããé常ã®ãã¼ã¿ããå 699 ã«éä¿¡ãããããã§ã¯ãªãã 700 ã»tcp_snd_oob ã§ãè¤æ°ãã¤ãã®ãã¼ã¿ãéä¿¡ãã¦ãï¼len > 701 1ï¼ãåä¿¡å´ã§åä¿¡ã§ããã®ã¯ãéä¿¡ãã data ã®æå¾ã® 1 702 ãã¤ãã®ã¿ã§ãããã¾ãã ããããåã®ãã¼ã¿ã¯é常ã®ãã¼ 703 ã¿ã¨ãã¦åä¿¡ãããã 704 705 [2] ç·æ¥ãã¼ã¿ã®åä¿¡ãtcp_rcv_oobã 706 707 tcp_rcv_oob ã®æ¸å¼ã以ä¸ã«ç¤ºãã 648 なお、 以下に示すような制約がある。 649 650 ・緊急データだからといって、 すでに送信ウィンドバッファ 651 にある通常のデータより先に送信されるわけではない。 652 ・tcp_snd_oob で、複数バイトのデータを送信しても(len > 653 1)、受信側で受信できるのは、送信した data の最後の 1 654 バイトのみである。また、 これより前のデータは通常のデー 655 タとして受信される。 656 657 [2] 緊急データの受信【tcp_rcv_oob】 658 659 tcp_rcv_oob の書式を以下に示す。 708 660 709 661 ER_UINT ercd = tcp_rcv_oob(ID cepid, void *data, int_t len); 710 662 711 ãªãã 以ä¸ã«ç¤ºããããªå¶ç´ãããã 712 713 ã»ç·æ¥ãã¼ã¿åä¿¡ã®ã³ã¼ã«ããã¯é¢æ°å 714 ã§å¼ã³åºããã¨ãæ³ 715 å®ãã¦ããã 716 ã»åä¿¡ã§ããã®ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã® 1 ãã¤ãã®ã¿ã§ããã 717 å¾ã£ã¦ãæ£å¸¸ã« tcp_rcv_oob ããæ»ã£ã¦ããæã®æ»ãå¤ã¯ã 718 常㫠1 ã§ããã 719 720 [3] ç·æ¥ãã¼ã¿åä¿¡ãã³ã¼ã«ããã¯ãTEV_TCP_RCV_OOBã 721 ç·æ¥ãã¼ã¿ãåä¿¡ããæã TCP é信端ç¹ã«æå®ããã¦ãã 722 ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã ãã®æã®äºè±¡ã®ç¨®é¡ã 723 TEV_TCP_RCV_OOB ã§ããããã ãã TCP é信端ç¹ã«ã³ã¼ã«ãã 724 ã¯é¢æ°ãæå®ããã¦ããªãå ´åã ã¾ãã¯ãã³ã¼ã«ããã¯é¢æ° 725 å 726 㧠tcp_rcv_oob ãå¼ã³åºãããªããã°ãåä¿¡ããç·æ¥ãã¼ 727 ã¿ã¯é常ã®ãã¼ã¿ã¨ãã¦åä¿¡ããã 728 729 [4] ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ 663 なお、 以下に示すような制約がある。 664 665 ・緊急データ受信のコールバック関数内で呼び出すことを想 666 定している。 667 ・受信できるのは、緊急データの最後の 1 バイトのみである。 668 従って、正常に tcp_rcv_oob から戻ってきた時の戻り値は、 669 常に 1 である。 670 671 [3] 緊急データ受信【コールバック、TEV_TCP_RCV_OOB】 672 緊急データを受信した時、 TCP 通信端点に指定されている 673 コールバック関数を呼び出す。 この時の事象の種類が 674 TEV_TCP_RCV_OOB である。ただし、 TCP 通信端点にコールバッ 675 ク関数が指定されていない場合、 または、コールバック関数 676 内で tcp_rcv_oob が呼び出されなければ、受信した緊急デー 677 タは通常のデータとして受信する。 678 679 [4] コンパイル時コンフィギュレーションパラメータ 730 680 731 681 TCP_CFG_URG_OFFSET 732 682 733 ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ããã å¤ã -1 ã®å ´å㯠734 BSD ã®å®è£ 735 ã¨åãã§ã ç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã® 736 ãã¤ãã®æ¬¡ã®ãã¤ããå·®ãã å¤ã 0 ã®å ´å㯠RFC1122 ã®è¦ 737 å®ã¨åãã§ã ç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã 738 å·®ããæ¢å®å¤ã¯ -1 ã§ããã 739 740 (4) TCP é信端ç¹ãªãã·ã§ã³ã®è¨å®ã¨èªåºã 741 è¨å®å¯è½ãª TCP é信端ç¹ãªãã·ã§ã³ã¯ç¡ããããã©ã¡ãã®é¢æ°ã 742 æ»ãå¤ã¨ã㦠E_PAR ãè¿ãããã 743 744 4. 2 UDP ã® ITRON TCP/IP API æ¡å¼µæ©è½ 745 746 UDP_CFG_EXTENTIONS ãæå®ãããã¨ã«ãã使ç¨å¯è½ã¨ãªã API ã以ä¸ã«ç¤º 747 ãã 748 749 ã»UDP é信端ç¹ã®äºç´ IDãéç APIãVRID_UDP_CEPãï¼IPv4ãTINET ç¬èªï¼ 750 ã»UDP é信端ç¹ã®äºç´ IDãéç APIãVRID_UDP6_CEPãï¼IPv6ãTINET ç¬èªï¼ 751 ã»UDP é信端ç¹ã®çæãåç APIãudp_cre_cepãï¼IPv4ï¼ 752 ã»UDP é信端ç¹ã®çæãåç APIãudp6_cre_cepãï¼IPv6ãTINET ç¬èªï¼ 753 ã»UDP é信端ç¹ã®åé¤ãåç APIãudp_del_cepã 754 ã»UDP é信端ç¹ãªãã·ã§ã³ã®è¨å®ãudp_set_optã 755 ã»UDP é信端ç¹ãªãã·ã§ã³ã®èªåºããudp_get_optã 756 757 (1) UDP é信端ç¹ã®çæã¨åé¤ 758 ãã®æ©è½ã«ããã1 åã® UDP é信端ç¹ãè¤æ°ã®ã¿ã¹ã¯ã§å 759 ±æãã 760 ãã¨ãã§ããããã ãã1 åã«ä½¿ç¨ã§ããã®ã¯ 1 åã®ã¿ã¹ã¯ã«éå® 761 ãããã 以ä¸ã«æ¨æºçãªä½¿ç¨æ¹æ³ãè¿°ã¹ãããªããç 762 ©éã«ãªããã 763 IPv6 ã«é¢ãã¦ã®èª¬æã¯ãä¸é¨çç¥ãã¦ããã 764 765 [1] UDP é信端ç¹ã®äºç´ IDãéç APIã VRID_UDP_CEPã 766 VRID_UDP6_CEPãã«ãããUDP éä¿¡ç«¯ç¹ ID ãäºç´ããã 767 768 VRID_UDP_CEP ã®æ¸å¼ã以ä¸ã«ç¤ºãã 683 緊急データの最後のバイトのオフセット、 値が -1 の場合は 684 BSD の実装と同じで、 緊急ポインタは、緊急データの最後の 685 バイトの次のバイトを差す。 値が 0 の場合は RFC1122 の規 686 定と同じで、 緊急ポインタは、緊急データの最後のバイトを 687 差す。既定値は -1 である。 688 689 (4) TCP 通信端点オプションの設定と読出し 690 設定可能な TCP 通信端点オプションは無いため、どちらの関数も 691 戻り値として E_PAR が返される。 692 693 4. 2 UDP の ITRON TCP/IP API 拡張機能 694 695 UDP_CFG_EXTENTIONS を指定することにより使用可能となる API を以下に示 696 す。 697 698 ・UDP 通信端点の予約 ID【静的 API、VRID_UDP_CEP】(IPv4、TINET 独自) 699 ・UDP 通信端点の予約 ID【静的 API、VRID_UDP6_CEP】(IPv6、TINET 独自) 700 ・UDP 通信端点の生成【動的 API、udp_cre_cep】(IPv4) 701 ・UDP 通信端点の生成【動的 API、udp6_cre_cep】(IPv6、TINET 独自) 702 ・UDP 通信端点の削除【動的 API、udp_del_cep】 703 ・UDP 通信端点オプションの設定【udp_set_opt】 704 ・UDP 通信端点オプションの読出し【udp_get_opt】 705 706 (1) UDP 通信端点の生成と削除 707 この機能により、1 個の UDP 通信端点を複数のタスクで共有する 708 ことができる。ただし、1 回に使用できるのは 1 個のタスクに限定 709 される。 以下に標準的な使用方法を述べる。なお、煩雑になるため 710 IPv6 に関しての説明は、一部省略している。 711 712 [1] UDP 通信端点の予約 ID【静的 API、 VRID_UDP_CEP、 713 VRID_UDP6_CEP】により、UDP 通信端点 ID を予約する。 714 715 VRID_UDP_CEP の書式を以下に示す。 769 716 770 717 VRID_UDP_CEP(ID cepid); 771 718 772 ãã©ã¡ã¼ã¿ cepid ã¯äºç´ãã UDP éä¿¡ç«¯ç¹ ID ã§ããã ä¸773 è¬çã«ã¯ã TINET ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«ä»¥ä¸ã®ã774 ãã«æå®ããã719 パラメータ cepid は予約する UDP 通信端点 ID であり、 一 720 般的には、 TINET コンフィグレーションファイルに以下のよ 721 うに指定する。 775 722 776 723 VRID_UDP_CEP (UDP_RSV_CEPID1); 777 724 778 ããã«ãããUDP é信端ç¹ç¨ã®ã¡ã¢ãªé åã確ä¿ãããTINET 779 å 780 é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã® ID èªåå²ä»çµæãã¡ 781 ã¤ã«ï¼TOPPERS/ASP 㯠tinet_cfg.hã TOPPERS/JSP 㯠782 tinet_id.hï¼ã«ã 対å¿ãããã¯ãå®ç¾©ã以ä¸ã®ããã«åºåãããã 725 これにより、UDP 通信端点用のメモリ領域が確保され、TINET 726 内部で使用するカーネルオブジェクトの ID 自動割付結果ファ 727 イル(TOPPERS/ASP は tinet_cfg.h、 TOPPERS/JSP は 728 tinet_id.h)に、 対応するマクロ定義が以下のように出力される。 783 729 784 730 #define UDP_RSV_CEPID1 1 785 731 786 [2] UDP é信端ç¹ã®çæãåç APIã udp_cre_cepãã«ãããUDP 787 é信端ç¹ãçæããã 788 789 ã¾ããUDP é信端ç¹çææ 790 å ±æ§é ä½ã«æ 791 å ±ãè¨å®ããã éä¿¡ 792 ç¸æããã®ãã¼ã¿ã®åä¿¡ãå¾ 793 ã¤å¿ç¨ã¢ããªã±ã¼ã·ã§ã³ã§ã 794 IPv4 ã®å ´åã®ä¾ã以ä¸ã«ç¤ºãã 732 [2] UDP 通信端点の生成【動的 API、 udp_cre_cep】により、UDP 733 通信端点を生成する。 734 735 まず、UDP 通信端点生成情報構造体に情報を設定する。 通信 736 相手からのデータの受信を待つ応用アプリケーションで、 737 IPv4 の場合の例を以下に示す。 795 738 796 739 T_UDP_CCEP ccep; … … 799 742 ccep.myaddr.ipaddr = IPV4_ADDRANY; 800 743 801 ã¾ã IPv6 ã®å ´åã®ä¾ã以ä¸ã«ç¤ºãã744 また IPv6 の場合の例を以下に示す。 802 745 803 746 T_UDP_CCEP ccep; … … 806 749 memcpy(&ccep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR)); 807 750 808 ããããã åä»ããèªåã® IP ã¢ãã¬ã¹ã¯è¦å®å¤ï¼å 809 ¨ã¦ï¼ã§ããã 810 次ã«ãudp_cre_cep ã®æ¸å¼ã示ãã 751 いずれも、 受付ける自分の IP アドレスは規定値(全て)である。 752 次に、udp_cre_cep の書式を示す。 811 753 812 754 ER ercd = udp_cre_cep(ID cepid, T_UDP_CCEP *pk_ccep); 813 755 814 ãã©ã¡ã¼ã¿ cepid ã«ã¯ [1] ã§äºç´ãã UDP éä¿¡ç«¯ç¹ ID ã 815 æå®ããpk_ccep ã«ã¯ä¸è¨ã§è¨å®æ¸ã¿ã® UDP é信端ç¹çææ 816 817 å ±ã¸ã®ãã¤ã³ã¿ãæå®ããã ä¸è¬çãªä¾ã以ä¸ã«ç¤ºãã 756 パラメータ cepid には [1] で予約した UDP 通信端点 ID を 757 指定し、pk_ccep には上記で設定済みの UDP 通信端点生成情 758 報へのポインタを指定する。 一般的な例を以下に示す。 818 759 819 760 ercd = udp_cre_cep(UDP_RSV_CEPID1, &ccep); 820 761 821 ããã«ããã VRID_UDP_CEP ã§ç¢ºä¿ããã UDP é信端ç¹ç¨ã® 822 ã¡ã¢ãªé åã« UDP é信端ç¹çææ 823 å ±ãæ¸è¾¼ã¾ããã 824 ãã®å¾ãUDP ã®å API ã®ãã©ã¡ã¼ã¿ cepid ã« [1] ã§äºç´ 825 ãã UDP éä¿¡ç«¯ç¹ ID ãæå®ãã以å¤ã¯ã é常㮠UDP éä¿¡ 826 端ç¹ã¨åãããã«ä½¿ç¨ã§ããã 827 828 [3] UDP é信端ç¹ã®åé¤ãåç APIã udp_del_cepãã«ãããUDP 829 é信端ç¹ãåé¤ããã 830 831 UDP é信端ç¹ã¯ãã¤ã§ãåé¤ã§ãã ä»ã®ã¿ã¹ã¯ãåã UDP 832 éä¿¡ç«¯ç¹ ID ãå©ç¨ã§ããã ãªããudp_snd_dat ã§éä¿¡å¾ 833 ã¡ 834 ã®æãã¾ãã¯ãudp_rcv_dat ã§åä¿¡å¾ 835 ã¡ã®æã«ãudp_del_cep 836 ã«ãããUDP é信端ç¹ãåé¤ããã¨ã ããããã®é¢æ°ã®æ»ã 837 å¤ã«ã¯ãE_DLT ãè¿ãããã 838 次ã«ãudp_del_cep ã®æ¸å¼ã示ãã 762 これにより、 VRID_UDP_CEP で確保された UDP 通信端点用の 763 メモリ領域に UDP 通信端点生成情報が書込まれる。 764 この後、UDP の各 API のパラメータ cepid に [1] で予約 765 した UDP 通信端点 ID を指定する以外は、 通常の UDP 通信 766 端点と同じように使用できる。 767 768 [3] UDP 通信端点の削除【動的 API、 udp_del_cep】により、UDP 769 通信端点を削除する。 770 771 UDP 通信端点はいつでも削除でき、 他のタスクが同じ UDP 772 通信端点 ID を利用できる。 なお、udp_snd_dat で送信待ち 773 の時、または、udp_rcv_dat で受信待ちの時に、udp_del_cep 774 により、UDP 通信端点を削除すると、 それぞれの関数の戻り 775 値には、E_DLT が返される。 776 次に、udp_del_cep の書式を示す。 839 777 840 778 ER ercd = udp_del_cep(ID cepid); 841 779 842 ãã©ã¡ã¼ã¿ cepid ã«ã¯ [1] ã§äºç´ãã UDP éä¿¡ç«¯ç¹ ID ã 843 æå®ããã 844 845 (2) UDP é信端ç¹ãªãã·ã§ã³ã®è¨å®ã¨èªåºã 846 è¨å®å¯è½ãª TCP é信端ç¹ãªãã·ã§ã³ã¯ç¡ããããã©ã¡ãã®é¢æ°ã 847 æ»ãå¤ã¨ã㦠E_PAR ãè¿ãããã 848 849 5. ã«ã¼ãã£ã³ã°ã®è¨å® 850 851 ã«ã¼ãã£ã³ã°ã¨ã³ããªã«ã¯ãéçã«ã¼ãã£ã³ã°ã¨ã³ããªã¨åãç´ãï¼ICMPï¼ 852 ã«ããã«ã¼ãã£ã³ã°ã¨ã³ããªãããã 853 éçã«ã¼ãã£ã³ã°ã¨ã³ããªã¯ãäºã決ããããã«ã¼ãã£ã³ã°æ 854 å ±ã§ãããã«ã¼ 855 ãã£ã³ã°è¨å®ãã¡ã¤ã« route_cfg.c ã®ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªé 856 åã«è¨å®ã 857 ãããªãããã£ãã©ã«ãã²ã¼ãã¦ã§ã¤ã®ã¿ã®ã·ã³ãã«ãªãããã¯ã¼ã¯ã§ã¯ããµ 858 ã³ãã«ã¢ããªã±ã¼ã·ã§ã³ echos ã® route_cfg.c ããã®ã¾ã¾æµç¨ã§ããã 859 åãç´ãï¼ICMPï¼ã«ããã«ã¼ãã£ã³ã°ã¨ã³ããªã¯ãTINET ã³ã³ãã£ã®ã¥ã¬ã¼ 860 ã·ã§ã³ã»ãã©ã¡ã¼ã¿å®ç¾©ãã¡ã¤ã«ã§ãã«ã¼ãã£ã³ã°è¡¨ã§äºã確ä¿ããã¨ã³ã㪠861 æ°ãå®ç¾©ãã ã«ã¼ãã£ã³ã°è¨å®ãã¡ã¤ã« route_cfg.c ã®ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ 862 ããªé 863 åã«ã 空ã®ã¨ã³ããªã¨ãã¦ç¢ºä¿ããã 864 865 (1) ã«ã¼ãã£ã³ã°è¡¨ã®ã¨ã³ããªæ°ã®è¨å® 866 ã¨ã³ããªæ°ã®è¨å®ãããã¯ãã¯ã TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã» 867 ãã©ã¡ã¼ã¿å®ç¾©ãã¡ã¤ã«ã§å®ç¾©ããã 780 パラメータ cepid には [1] で予約した UDP 通信端点 ID を 781 指定する。 782 783 (2) UDP 通信端点オプションの設定と読出し 784 設定可能な TCP 通信端点オプションは無いため、どちらの関数も 785 戻り値として E_PAR が返される。 786 787 5. ルーティングの設定 788 789 ルーティングエントリには、静的ルーティングエントリと向け直し(ICMP) 790 によるルーティングエントリがある。 791 静的ルーティングエントリは、予め決められたルーティング情報であり、ルー 792 ティング設定ファイル route_cfg.c のルーティング表エントリ配列に設定す 793 る。なお、ディフォルトゲートウェイのみのシンプルなネットワークでは、サ 794 ンプルアプリケーション echos の route_cfg.c をそのまま流用できる。 795 向け直し(ICMP)によるルーティングエントリは、TINET コンフィギュレー 796 ション・パラメータ定義ファイルで、ルーティング表で予め確保するエントリ 797 数を定義し、 ルーティング設定ファイル route_cfg.c のルーティング表エン 798 トリ配列に、 空のエントリとして確保する。 799 800 (1) ルーティング表のエントリ数の設定 801 エントリ数の設定するマクロは、 TINET コンフィギュレーション・ 802 パラメータ定義ファイルで定義する。 868 803 869 804 [1] NUM_IN6_STATIC_ROUTE_ENTRY 870 IPv6 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨ã®éçã«ã¼ãã£ã³ã°ã¨ã³ããªæ°ãæ871 å®ããã805 IPv6 用のルーティング表の静的ルーティングエントリ数を指 806 定する。 872 807 [2] NUM_IN6_REDIRECT_ROUTE_ENTRY 873 IPv6 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨ã§äºã確ä¿ãããåãç´ãï¼ICMPï¼874 ã«ããã«ã¼ãã£ã³ã°ã¨ã³ããªæ°ãæå®ããã 0 ãæå®ããã¨ã875 åãç´ãï¼ICMPv6ï¼ãç¡è¦ããã808 IPv6 用のルーティング表で予め確保する、向け直し(ICMP) 809 によるルーティングエントリ数を指定する。 0 を指定すると、 810 向け直し(ICMPv6)を無視する。 876 811 [3] NUM_IN4_STATIC_ROUTE_ENTRY 877 IPv4 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨ã®éçã«ã¼ãã£ã³ã°ã¨ã³ããªæ°ãæ878 å®ããã812 IPv4 用のルーティング表の静的ルーティングエントリ数を指 813 定する。 879 814 [4] NUM_IN4_REDIRECT_ROUTE_ENTRY 880 IPv4 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨ã§äºã確ä¿ãããåãç´ãï¼ICMPï¼881 ã«ããã«ã¼ãã£ã³ã°ã¨ã³ããªæ°ãæå®ããã 0 ãæå®ããã¨ã882 åãç´ãï¼ICMPï¼ãç¡è¦ããã883 884 (2) ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ï¼IPv6ï¼885 IPv6 ã§ã¯ã#include <netinet6/in6_var.h> ã§å®ç¾©ããã¦ããã886 åãã£ã¼ã«ãã®æå³ã以ä¸ã«ç¤ºãã887 888 T_IN6_ADDR target ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹889 T_IN6_ADDR gateway ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹890 uint32_t expire æå¹æéãåããæå»ã0xffffffff ãæå®ãããã¨ã891 uint8_t flags ãã©ã°ã0x01 ãæå®ãããã¨ã892 uint8_t prefix_len ãã¬ãã£ãã¯ã¹é·893 894 IP ã¢ãã¬ã¹ã¯ã{{{ 㨠}}} ã§å²ã¿ã 1 ãªã¯ãããåä½ã§æå®ããã895 ä¾ã以ä¸ã«ç¤ºãã815 IPv4 用のルーティング表で予め確保する、向け直し(ICMP) 816 によるルーティングエントリ数を指定する。 0 を指定すると、 817 向け直し(ICMP)を無視する。 818 819 (2) ルーティング表エントリ構造体(IPv6) 820 IPv6 では、#include <netinet6/in6_var.h> で定義されている。 821 各フィールドの意味を以下に示す。 822 823 T_IN6_ADDR target 目標ネットワークアドレス 824 T_IN6_ADDR gateway ゲートウェイの IP アドレス 825 uint32_t expire 有効時間が切れる時刻、0xffffffff を指定すること。 826 uint8_t flags フラグ、0x01 を指定すること。 827 uint8_t prefix_len プレフィックス長 828 829 IP アドレスは、{{{ と }}} で囲み、 1 オクテット単位で指定する。 830 例を以下に示す。 896 831 897 832 { { { 0xfe, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x41, 898 833 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } } 899 834 900 (3) ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ï¼IPv4ï¼ 901 IPv4 ã§ã¯ã#include <netinet/in_var.h> ã§å®ç¾©ããã¦ãããå 902 ãã£ã¼ã«ãã®æå³ã以ä¸ã«ç¤ºãã 903 904 T_IN4_ADDR targe ç®æ¨ãããã¯ã¼ã¯ã®IPã¢ãã¬ã¹ã 905 ãã£ãã©ã«ãã²ã¼ãã¦ã§ã¤ã§ã¯0ãæå®ããã 906 T_IN4_ADDR mask ç®æ¨ãããã¯ã¼ã¯ã®ãµãããããã¹ã¯ã 907 ãã£ãã©ã«ãã²ã¼ãã¦ã§ã¤ã§ã¯0ãæå®ããã 908 T_IN4_ADDR gateway ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹ã 909 èªãããã¯ã¼ã¯å 910 ã§ã¯0ãæå®ããã 911 912 (4) ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« 913 以ä¸ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãæå®ãããã¨ã 835 (3) ルーティング表エントリ構造体(IPv4) 836 IPv4 では、#include <netinet/in_var.h> で定義されている。各 837 フィールドの意味を以下に示す。 838 839 T_IN4_ADDR targe 目標ネットワークのIPアドレス、 840 ディフォルトゲートウェイでは0を指定する。 841 T_IN4_ADDR mask 目標ネットワークのサブネットマスク、 842 ディフォルトゲートウェイでは0を指定する。 843 T_IN4_ADDR gateway ゲートウェイの IP アドレス、 844 自ネットワーク内では0を指定する。 845 846 (4) インクルードファイル 847 以下のインクルードファイルを指定すること。 914 848 915 849 [1] TOPPERS/ASP … … 930 864 #include <netinet/in_var.h> 931 865 932 (5) ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªé 933 åï¼IPv6ï¼ 934 以ä¸ã®ããã«æå®ãããã¨ã 866 (5) ルーティング表エントリ配列(IPv6) 867 以下のように指定すること。 935 868 936 869 T_IN6_RTENTRY routing6_tbl[NUM_ROUTE_ENTRY] = { 937 < ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½1>,938 < ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½2>,870 <ルーティング表エントリ構造体 1>, 871 <ルーティング表エントリ構造体 2>, 939 872 ... 940 < ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½n>,873 <ルーティング表エントリ構造体 n>, 941 874 }; 942 875 943 (6) ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªé 944 åï¼IPv4ï¼ 945 以ä¸ã®ããã«æå®ãããã¨ã 876 (6) ルーティング表エントリ配列(IPv4) 877 以下のように指定すること。 946 878 947 879 T_IN4_RTENTRY routing4_tbl[NUM_ROUTE_ENTRY] = { 948 < ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½1>,949 < ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½2>,880 <ルーティング表エントリ構造体 1>, 881 <ルーティング表エントリ構造体 2>, 950 882 ... 951 < ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½n>,883 <ルーティング表エントリ構造体 n>, 952 884 }; 953 885 954 (7) æ¢ç´¢é åº 955 æ¢ç´¢ã¯ãã¤ã³ããã¯ã¹ã大ããªé ãã¤ã¾ãã ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ 956 ããªé 957 åã®æå¾ã® <ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ n> ããã æå 958 ã® <ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ 1> ã«åã£ã¦è¡ãããã 959 960 6. TINET ç¬èªæ©è½ 961 962 6. 1 ã¿ã¹ã¯ããã® Time Wait ç¶æ 963 ã® TCP é信端ç¹åé¢æ©è½ 964 965 TCP é信端ç¹ã¯ãã½ã±ããã¤ã³ã¿ãã§ã¼ã¹ã«ããããã¡ã¤ã«ãã£ã¹ã¯ãªãã¿ 966 ã¨ç°ãªãã TCP ã®æ¥ç¶ç¶æ 967 ãå®å 968 ¨ã«çµäºããã¾ã§åå©ç¨å¯è½ã¨ã¯ãªããªãã 969 TCP/IP ãããã³ã«ã®ä»æ§ã«å¾ãã¨ã æ¥ç¶ç¶æ 970 ãå®å 971 ¨ã«çµäºããã¾ã§æ°åãã 972 ãå ´åããããåé¡ã«ãªãã®ã¯ãå 973 ã«ãTCP é信端ç¹ã®ã³ãã¯ã·ã§ã³åæ API 974 ã® tcp_sht_cep ãå¼åºãã ã³ãã¯ã·ã§ã³ãåæããå ´åã§ããã ãã®æã 975 tcp_sht_cep ã§æå®ããã TCP é信端ç¹ã¯ãæçµçã« Time Wait ç¶æ 976 ã«ãªãã 977 TCP é信端ç¹ã®ã¯ãã¼ãº API ã® tcp_cls_cep ãå¼åºããã¿ã¹ã¯ããã¿ã¤ã 㢠978 ã¦ãå¾ 979 ã¡ç¶æ 980 ã«ãªããå¾ã£ã¦ããµã¼ãå´ããåæããå¿ç¨ããã°ã©ã ï¼WWW 㪠981 ã©ï¼ã®ã¿ã¹ã¯ã§ã¯ãã¿ã¤ã ã¢ã¦ãããã¾ã§ã次ã®æ¥ç¶è¦æ±ãåä¿¡ãããã¨ã㧠982 ããªãã 983 ããã«å¯¾å¿ããããã TINET ã¯ãçµäºå¾ 984 ã¡ã® TCP é信端ç¹ãã¿ã¹ã¯ããå 985 ãé¢ããã¨ã«ãããã¿ã¹ã¯ãå¾ 986 ã¡ç¶æ 987 ã«ãªããªãããã«ããæ©è½ãæã£ã¦ããã 988 æå¹ã«ããããã«ã¯ã ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ 989 NUM_TCP_TW_CEP_ENTRY ã tinet_app_config.h çã«æå®ãã 確ä¿ãã TW ç¨ 990 TCP é信端ç¹ã®æ°ï¼1 以ä¸ã®å¤ï¼ãå®ç¾©ããã 991 TCP é信端ç¹ã Time Wait ã«ãªãã¨ãTCP é信端ç¹ããã Time Wait ã«å¿ 992 993 è¦ãªé信管çãã¼ã¿ã TW ç¨ TCP é信端ç¹ã«ã³ãã¼ããå 994 ã® TCP é信端ç¹ã 995 éæ¾ããã ããã«ä¼´ã£ã¦ã ã¿ã¹ã¯ãå¾ 996 ã¡ç¶æ 997 ããéæ¾ãããã ã¾ããTW ç¨ 998 TCP é信端ç¹ã«ã¯ Time Wait ã«å¿ 999 è¦ãªé信管çãã¼ã¿ã®ã¿ãã³ãã¼ããã㨠1000 ã§ãã¡ã¢ãªã®æ¶è²»ãæãã¦ããã 1001 ãã ãããã®æ©è½ãæå¹ã«ãã¦ãã¦ããã³ãã¯ã·ã§ã³ã®åæåæã®ã¿ã¤ãã³ 1002 ã°ã«ãã£ã¦ã¯ãåé¢ãããªãå ´åãããã 1003 1004 6. 2 åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ 1005 1006 ITRON TCP/IP API ä»æ§ã§ã¯ãTCP é信端ç¹ãçæããéç API ã§ãå信㦠1007 ã¤ã³ããããã¡ã®å 1008 é ã¢ãã¬ã¹ã®æå®ã«ã NADR ãæå®ããã¨ããããã³ã«ã¹ 1009 ã¿ãã¯ã§ã åä¿¡ã¦ã¤ã³ããããã¡ã確ä¿ãããã¨ã«ãªã£ã¦ããã 1010 TINET ã§ã¯ããããã¯ã¼ã¯ãããã¡ããåä¿¡ã¦ã¤ã³ããããã¡ã¨ãããã¨ã§ã 1011 NADR ã®æå®ã«å¯¾å¿ãã¦ããã ããã«ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã§åä¿¡ã 1012 ããããã«ã³ãã¼ã¿ãä¿æãããããã¯ã¼ã¯ãããã¡ãããã®ã¾ã¾åä¿¡ã¦ã¤ã³ 1013 ããããã¡ã¨ãããã¨ã§ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã¨ãTINET å 1014 é¨ã§ããã¼ 1015 ã¿ã®ã³ãã¼ãçãã¦ãããç¹ã«ã çã³ãã¼ API ã使ç¨ãããã¨ã«ããã API 1016 ã«ããããã¼ã¿ã®ã³ãã¼ãè¡ããªããã¨ãå¯è½ã§ããã 1017 ãã®æ©è½ã«é¢ä¿ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãã以 1018 ä¸ã«ç¤ºãã 886 (7) 探索順序 887 探索は、インデックスが大きな順、つまり、 ルーティング表エン 888 トリ配列の最後の <ルーティング表エントリ構造体 n> から、 最初 889 の <ルーティング表エントリ構造体 1> に向って行われる。 890 891 6. TINET 独自機能 892 893 6. 1 タスクからの Time Wait 状態の TCP 通信端点分離機能 894 895 TCP 通信端点は、ソケットインタフェースにおけるファイルディスクリプタ 896 と異なり、 TCP の接続状態が完全に終了するまで再利用可能とはならない。 897 TCP/IP プロトコルの仕様に従うと、 接続状態が完全に終了するまで数分かか 898 る場合がある。問題になるのは、先に、TCP 通信端点のコネクション切断 API 899 の tcp_sht_cep を呼出し、 コネクションを切断する場合である。 この時、 900 tcp_sht_cep で指定された TCP 通信端点は、最終的に Time Wait 状態になり、 901 TCP 通信端点のクローズ API の tcp_cls_cep を呼出したタスクも、タイムア 902 ウト待ち状態になる。従って、サーバ側から切断する応用プログラム(WWW な 903 ど)のタスクでは、タイムアウトするまで、次の接続要求を受信することがで 904 きない。 905 これに対応するため、 TINET は、終了待ちの TCP 通信端点をタスクから切 906 り離すことにより、タスクが待ち状態にならないようにする機能を持っており、 907 有効にするためには、 コンパイル時コンフィギュレーションパラメータ 908 NUM_TCP_TW_CEP_ENTRY を tinet_app_config.h 等に指定し、 確保する TW 用 909 TCP 通信端点の数(1 以上の値)を定義する。 910 TCP 通信端点が Time Wait になると、TCP 通信端点から、 Time Wait に必 911 要な通信管理データを TW 用 TCP 通信端点にコピーし、元の TCP 通信端点を 912 開放する。 これに伴って、 タスクも待ち状態から開放される。 また、TW 用 913 TCP 通信端点には Time Wait に必要な通信管理データのみをコピーすること 914 で、メモリの消費を抑えている。 915 ただし、この機能を有効にしていても、コネクションの同時切断のタイミン 916 グによっては、分離されない場合がある。 917 918 6. 2 受信ウィンドバッファの省コピー機能 919 920 ITRON TCP/IP API 仕様では、TCP 通信端点を生成する静的 API で、受信ウ 921 インドバッファの先頭アドレスの指定に、 NADR を指定すると、プロトコルス 922 タックで、 受信ウインドバッファを確保することになっている。 923 TINET では、ネットワークバッファを、受信ウインドバッファとすることで、 924 NADR の指定に対応している。 さらに、ネットワークインタフェースで受信し 925 たプロトルコデータを保持するネットワークバッファを、そのまま受信ウイン 926 ドバッファとすることで、ネットワークインタフェースと、TINET 内部で、デー 927 タのコピーを省いている。特に、 省コピー API を使用することにより、 API 928 におけるデータのコピーも行わないことも可能である。 929 この機能に関係するコンパイル時コンフィギュレーションパラメータを、以 930 下に示す。 1019 931 1020 932 (1) TCP_CFG_RWBUF_CSAVE_ONLY 1021 TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ã¿ã ã 1022 ã®æ©è½ã®ã¿ä½¿ç¨ãããTCP é信端ç¹ãçæããéç API ã§ãå信㦠1023 ã¤ã³ããããã¡ã®å 1024 é ã¢ãã¬ã¹ã®æå®ã«ã å¿ç¨ããã°ã©ã ãç¨æã 1025 ããããã¡ãæå®ãã¦ãç¡è¦ããã 933 TCP 通信端点の受信ウィンドバッファの省コピー機能を組込み、 こ 934 の機能のみ使用する。TCP 通信端点を生成する静的 API で、受信ウ 935 インドバッファの先頭アドレスの指定に、 応用プログラムが用意し 936 たバッファを指定しても無視する。 1026 937 1027 938 (2) TCP_CFG_RWBUF_CSAVE 1028 TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ããTCP 1029 é信端ç¹ãçæããéç API ã§ãåä¿¡ã¦ã¤ã³ããããã¡ã®å 1030 é ã¢ã 1031 ã¬ã¹ã®æå®ã«ãNADR ãæå®ããå ´åã¯ãåä¿¡ã¦ã£ã³ããããã¡ã®ç 1032 ã³ãã¼æ©è½ã使ç¨ãããã å¿ç¨ããã°ã©ã ãç¨æãããããã¡ãæ 1033 å®ããå ´åã¯ã åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã使ç¨ããªãã 939 TCP 通信端点の受信ウィンドバッファの省コピー機能を組込む。TCP 940 通信端点を生成する静的 API で、受信ウインドバッファの先頭アド 941 レスの指定に、NADR を指定した場合は、受信ウィンドバッファの省 942 コピー機能を使用するが、 応用プログラムが用意したバッファを指 943 定した場合は、 受信ウィンドバッファの省コピー機能を使用しない。 1034 944 1035 945 (3) TCP_CFG_RWBUF_CSAVE_MAX_QUEUES 1036 TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã åä¿¡ã¦ã£ 1037 ã³ããããã¡ãã¥ã¼ã®æ大ã¨ã³ããªæ°ã§ããã ãã ããæ£å¸¸ã«åä¿¡ 1038 ããã»ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ãããã¾ãã æå® 1039 ããªãã¨å¶éããªãã 1040 1041 ãªããTCP_CFG_RWBUF_CSAVE_ONLY 㨠TCP_CFG_RWBUF_CSAVE ã®ãããããæå® 1042 ããªãå ´åã¯ã TCP é信端ç¹ãçæããéç API ã§ãåä¿¡ã¦ã¤ã³ããããã¡ 1043 ã®å 1044 é ã¢ãã¬ã¹ã®æå®ã«ãNADR ãæå®ãããã¨ãã§ããªãã 1045 1046 6. 3 éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ 1047 1048 ITRON TCP/IP API ä»æ§ã§ã¯ãTCP é信端ç¹ãçæããéç API ã§ãå信㦠1049 ã¤ã³ããããã¡ã¨åæ§ã«ã éä¿¡ã¦ã¤ã³ããããã¡ã®å 1050 é ã¢ãã¬ã¹ã®æå®ã«ã 1051 NADR ãæå®ããã¨ã ãããã³ã«ã¹ã¿ãã¯ã§ãéä¿¡ã¦ã¤ã³ããããã¡ã確ä¿ã 1052 ããã¨ã«ãªã£ã¦ããã 1053 TINET ã§ã¯ããããã¯ã¼ã¯ãããã¡ããéä¿¡ã¦ã¤ã³ããããã¡ã¨ãããã¨ã§ã 1054 NADR ã®æå®ã«å¯¾å¿ãã¦ãããããã«ã æ¸è¾¼ã¾ãããã¼ã¿ã®åã«å¿ 1055 è¦ãªããã 1056 ãä»å ãã¦ããã®ã¾ã¾ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«æ¸¡ããã¨ã«ãããããã 1057 ã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã¨ãTINET å 1058 é¨ã§ããã¼ã¿ã®ã³ãã¼ãçãã¦ãããç¹ã«ã 1059 çã³ãã¼ API ã使ç¨ãããã¨ã§ã API ã«ããããã¼ã¿ã®ã³ãã¼ãè¡ããªãã 1060 ã¨ãå¯è½ã§ããã 1061 ãã ãã ã¤ã¼ãµãããåºåæã«ã NIC ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ãã 1062 ï¼ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ 1063 ETHER_NIC_CFG_RELEASE_NET_BUF ããæå®ããå¿ 1064 è¦ãããï¼ãã£ãã¤ã¹ãã©ã¤ 1065 ãã§ã¯ã ãã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãå©ç¨ãããã¨ã¯ã§ããªãã 1066 ãã®æ©è½ã«é¢ä¿ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãã以 1067 ä¸ã«ç¤ºãã 946 TCP 通信端点の受信ウィンドバッファの省コピー機能の、 受信ウィ 947 ンドバッファキューの最大エントリ数である。 ただし、正常に受信 948 したセグメントも破棄するため、再送回数が増加する。また、 指定 949 しないと制限しない。 950 951 なお、TCP_CFG_RWBUF_CSAVE_ONLY と TCP_CFG_RWBUF_CSAVE の、いずれも指定 952 しない場合は、 TCP 通信端点を生成する静的 API で、受信ウインドバッファ 953 の先頭アドレスの指定に、NADR を指定することができない。 954 955 6. 3 送信ウィンドバッファの省コピー機能 956 957 ITRON TCP/IP API 仕様では、TCP 通信端点を生成する静的 API で、受信ウ 958 インドバッファと同様に、 送信ウインドバッファの先頭アドレスの指定に、 959 NADR を指定すると、 プロトコルスタックで、送信ウインドバッファを確保す 960 ることになっている。 961 TINET では、ネットワークバッファを、送信ウインドバッファとすることで、 962 NADR の指定に対応している。さらに、 書込まれたデータの前に必要なヘッダ 963 を付加して、そのままネットワークインタフェースに渡すことにより、ネット 964 ワークインタフェースと、TINET 内部で、データのコピーを省いている。特に、 965 省コピー API を使用することで、 API におけるデータのコピーも行わないこ 966 とも可能である。 967 ただし、 イーサネット出力時に、 NIC でネットワークバッファを開放する 968 (コンパイル時コンフィギュレーションパラメータ 969 ETHER_NIC_CFG_RELEASE_NET_BUF を、指定する必要がある)ディバイスドライ 970 バでは、 この送信ウィンドバッファの省コピー機能を利用することはできない。 971 この機能に関係するコンパイル時コンフィギュレーションパラメータを、以 972 下に示す。 1068 973 1069 974 (1) TCP_CFG_SWBUF_CSAVE_ONLY 1070 TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ã¿ã ã 1071 ã®æ©è½ã®ã¿ä½¿ç¨ãããTCP é信端ç¹ãçæããéç API ã§ãé信㦠1072 ã¤ã³ããããã¡ã®å 1073 é ã¢ãã¬ã¹ã®æå®ã«ã å¿ç¨ããã°ã©ã ãç¨æã 1074 ããããã¡ãæå®ãã¦ãç¡è¦ããã 975 TCP 通信端点の送信ウィンドバッファの省コピー機能を組込み、 こ 976 の機能のみ使用する。TCP 通信端点を生成する静的 API で、送信ウ 977 インドバッファの先頭アドレスの指定に、 応用プログラムが用意し 978 たバッファを指定しても無視する。 1075 979 1076 980 (2) TCP_CFG_SWBUF_CSAVE 1077 TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ããTCP 1078 é信端ç¹ãçæããéç API ã§ãéä¿¡ã¦ã¤ã³ããããã¡ã®å 1079 é ã¢ã 1080 ã¬ã¹ã®æå®ã«ãNADR ãæå®ããå ´åã¯ãéä¿¡ã¦ã£ã³ããããã¡ã®ç 1081 ã³ãã¼æ©è½ã使ç¨ãããã å¿ç¨ããã°ã©ã ãç¨æãããããã¡ãæ 1082 å®ããå ´åã¯ã éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã使ç¨ããªãã 981 TCP 通信端点の送信ウィンドバッファの省コピー機能を組込む。TCP 982 通信端点を生成する静的 API で、送信ウインドバッファの先頭アド 983 レスの指定に、NADR を指定した場合は、送信ウィンドバッファの省 984 コピー機能を使用するが、 応用プログラムが用意したバッファを指 985 定した場合は、 送信ウィンドバッファの省コピー機能を使用しない。 1083 986 1084 987 (3) TCP_CFG_SWBUF_CSAVE_MAX_SIZE 1085 TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ã éä¿¡ã¦ã£1086 ã³ããããã¡ã«ä½¿ç¨ãããããã¯ã¼ã¯ãããã¡ã®æ大ãµã¤ãºã§ããã1087 æ¨æºå¤ã¯ IF_PDU_SIZE ã§ããã988 TCP 通信端点の送信ウィンドバッファの省コピー機能で、 送信ウィ 989 ンドバッファに使用するネットワークバッファの最大サイズであり、 990 標準値は IF_PDU_SIZE である。 1088 991 1089 992 (4) TCP_CFG_SWBUF_CSAVE_MIN_SIZE 1090 TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ã éä¿¡ã¦ã£ 1091 ã³ããããã¡ã«ä½¿ç¨ãããããã¯ã¼ã¯ãããã¡ã®æå°ãµã¤ãºã§ããã 1092 æ¨æºå¤ã¯ 0 ã§ããã 1093 1094 ãªããTCP_CFG_SWBUF_CSAVE_ONLY 㨠TCP_CFG_SWBUF_CSAVE ã®ãããããæå® 1095 ããªãå ´åã¯ãTCP é信端ç¹ãçæããéç API ã§ã éä¿¡ã¦ã¤ã³ããããã¡ 1096 ã®å 1097 é ã¢ãã¬ã¹ã®æå®ã«ãNADR ãæå®ãããã¨ãã§ããªãã 1098 1099 6. 4 ãã³ããããã³ã°ã³ã¼ã«ã®ç¡å¹å 1100 1101 å¿ç¨ããã¯ã©ã ã§ã ãã³ããããã³ã°ã³ã¼ã«ã使ç¨ããªãå ´åã¯ã TCP 㨠1102 UDP ã®ãã³ããããã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ã¾ãªãã§ãã¡ã¢ãªãç¯ç´ãããã¨ã 1103 ã§ããã 1104 ãã®æ©è½ã«é¢ä¿ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãã以 1105 ä¸ã«ç¤ºãã 993 TCP 通信端点の送信ウィンドバッファの省コピー機能で、 送信ウィ 994 ンドバッファに使用するネットワークバッファの最小サイズであり、 995 標準値は 0 である。 996 997 なお、TCP_CFG_SWBUF_CSAVE_ONLY と TCP_CFG_SWBUF_CSAVE の、いずれも指定 998 しない場合は、TCP 通信端点を生成する静的 API で、 送信ウインドバッファ 999 の先頭アドレスの指定に、NADR を指定することができない。 1000 1001 6. 4 ノンブロッキングコールの無効化 1002 1003 応用プロクラムで、 ノンブロッキングコールを使用しない場合は、 TCP と 1004 UDP のノンブロッキングコール機能を組込まないで、メモリを節約することが 1005 できる。 1006 この機能に関係するコンパイル時コンフィギュレーションパラメータを、以 1007 下に示す。 1106 1008 1107 1009 (1) TCP_CFG_NON_BLOCKING 1108 TCP ã®ãã³ããããã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã1010 TCP のノンブロッキングコール機能を組込む。 1109 1011 1110 1012 (2) UDP_CFG_NON_BLOCKING 1111 UDP ã®ãã³ããããã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã1112 1113 ãã ãã éå»ã®ãªãªã¼ã¹ã¨ã®äºææ§ã®ããã ã©ã¡ãã®ãã©ã¡ã¼ã¿ãã 1114 tinet/tinet_config.h ã«æå®ããã¦ããã æ¢å®ã§ã¯ããã³ããããã³ã°ã³ã¼1115 ã«æ©è½ãçµè¾¼ã¾ããããã«ãªã£ã¦ããã ãªãã ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã® 1116 tinet_app_config.h ã«ã¯ã æå®ã解é¤ãããã¯ããå®ç¾©ããã¦ãããçµè¾¼ã¾1117 ãªãå ´åã¯ã以ä¸ã®ãã¯ãã Makefile ã«å®ç¾©ããã 1013 UDP のノンブロッキングコール機能を組込む。 1014 1015 ただし、 過去のリリースとの互換性のため、 どちらのパラメータも、 1016 tinet/tinet_config.h に指定されており、 既定では、ノンブロッキングコー 1017 ル機能が組込まれるようになっている。 なお、 サンプルアプリケーションの 1018 tinet_app_config.h には、 指定を解除するマクロが定義されている。組込ま 1019 ない場合は、以下のマクロを Makefile に定義する。 1118 1020 1119 1021 UNDEF_TCP_CFG_NON_BLOCKING 1120 1022 UNDEF_UDP_CFG_NON_BLOCKING 1121 1023 1122 6. 5 TINETã®ã©ã¤ãã©ãªå 1123 1124 TINET ã®ã©ã¤ãã©ãªåã¯ãã¡ã¢ãªä½¿ç¨éãåæ¸ãããã¨ãç®çã«å®è£ 1125 ãã¦ã 1126 ãããã®ãããã©ã¤ãã©ãªåããã¦ããã®ã¯ ITRON TCP/IP API é¨åã®ã¿ã§ã 1127 ããTINET ã®ã³ã¢é¨åã®ã©ã¤ãã©ãªåã¯è¡ããã¦ããªããã¾ããã³ã³ãã¤ã«æ 1128 ãªãã·ã§ã³ã«ãããå¦çå 1129 容ãå¤ãããããã©ã¤ãã©ãªãåæ§ç¯ããå¿ 1130 è¦ãã 1131 ããå¾ã£ã¦ãã©ã¤ãã©ãªã¨ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ãå¥ã 1132 ã«æ§ç¯ãã¦ããã 1133 å¾ã§ãªã³ã¯ããæ¹æ³ã¯ãµãã¼ããã¦ããªãã 1134 ITRON TCP/IP API é¨åãã©ã¤ãã©ãªåãããªãããã«ã¯ã ã¢ããªã±ã¼ã·ã§ 1135 ã³ã® Makefile ã« NO_USE_TINET_LIBRARY = true ãæå®ããã 1136 1137 6. 6 TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ 1138 1139 éåä¿¡ãã TCP ã»ã°ã¡ã³ãã® TCP ããã㨠TCP é信端ç¹ã®æ 1140 å ±ãåºåã 1141 ãæ©è½ã§ããããªãã CONSOLE_PORTID ã§æå®ãããã·ãªã¢ã«ãã¼ãã«ç´æ¥åº 1142 åããã®ã§ã SYSLOG åºåãä¹±ãããã¨ããããåä¿¡æã®åºåä¾ã¨æå³ãä»¥ä¸ 1143 ã«ç¤ºãã 1024 6. 5 TINETのライブラリ化 1025 1026 TINET のライブラリ化は、メモリ使用量を削減することを目的に実装してい 1027 る。このため、ライブラリ化されているのは ITRON TCP/IP API 部分のみであ 1028 り、TINET のコア部分のライブラリ化は行われていない。また、コンパイル時 1029 オプションにより、処理内容が変わるため、ライブラリも再構築する必要があ 1030 る。従って、ライブラリとアプリケーションプログラムを別々に構築しておき、 1031 後でリンクする方法はサポートしていない。 1032 ITRON TCP/IP API 部分もライブラリ化させないためには、 アプリケーショ 1033 ンの Makefile に NO_USE_TINET_LIBRARY = true を指定する。 1034 1035 6. 6 TCP ヘッダのトレース出力機能 1036 1037 送受信する TCP セグメントの TCP ヘッダと TCP 通信端点の情報を出力す 1038 る機能である。なお、 CONSOLE_PORTID で指定されるシリアルポートに直接出 1039 力するので、 SYSLOG 出力が乱れることがある。受信時の出力例と意味を以下 1040 に示す。 1144 1041 1145 1042 <I 329.599=c: 4 s:CW f:60c00:--A---- a: 74461 s: 76082 w:58400 l: 0= 1146 1043 1147 329.599 åä¿¡ããæéã1/1000 ç§åä½ãã¾ã㯠1 ç§åä½ 1148 c: 4 TCP éä¿¡ç«¯ç¹ ID 1149 s:CW TCP FSM ç¶æ 1150 ï¼tinet/netinet/tcp_fsm.h åç 1151 §ï¼ 1152 f:60c00 TCP é信端ç¹ã®ç¶æ 1153 ãã©ã°ï¼16 é²æ°ã 1154 tinet/netinet/tcp_var.h åç 1155 §ï¼ 1156 :--A---- TCP ãããã®ãã©ã°ãã£ã¼ã«ãã®å¤ï¼tinet/netinet/tcp.h 1157 åç 1158 §ï¼ 1159 a: 74461 TCP ãããã®ç¢ºèªå¿ççªå·ï¼ã³ãã¯ã·ã§ã³ç¢ºç«æããã®ç¸ 1160 対å¤ï¼ 1161 s: 76082 TCP ãããã®ã·ã¼ã±ã³ã¹çªå·ï¼ã³ãã¯ã·ã§ã³ç¢ºç«æããã® 1162 ç¸å¯¾å¤ï¼ 1163 w:58400 TCP ãããã®ã¦ã¤ã³ããµã¤ãº 1164 l:0 åä¿¡ãã¤ãã¼ããã¼ã¿æ° 1165 1166 éä¿¡æã®åºåä¾ã¨æå³ã以ä¸ã«ç¤ºãã 1044 329.599 受信した時間、1/1000 秒単位、または 1 秒単位 1045 c: 4 TCP 通信端点 ID 1046 s:CW TCP FSM 状態(tinet/netinet/tcp_fsm.h 参照) 1047 f:60c00 TCP 通信端点の状態フラグ(16 進数、 1048 tinet/netinet/tcp_var.h 参照) 1049 :--A---- TCP ヘッダのフラグフィールドの値(tinet/netinet/tcp.h 1050 参照) 1051 a: 74461 TCP ヘッダの確認応答番号(コネクション確立時からの相 1052 対値) 1053 s: 76082 TCP ヘッダのシーケンス番号(コネクション確立時からの 1054 相対値) 1055 w:58400 TCP ヘッダのウインドサイズ 1056 l:0 受信ペイロードデータ数 1057 1058 送信時の出力例と意味を以下に示す。 1167 1059 1168 1060 =O 329.627=c: 4 s:CW f:60d20:--AP--- s: 74461 a: 76082 w: 2920 l:1460> 1169 1061 1170 329.627 éä¿¡ããæéã1/1000 ç§åä½ãã¾ã㯠1 ç§åä½ 1171 c: 4 TCP éä¿¡ç«¯ç¹ ID 1172 s:CW TCP FSM ç¶æ 1173 ï¼tinet/netinet/tcp_fsm.h åç 1174 §ï¼ 1175 f:60d20 TCP é信端ç¹ã®ç¶æ 1176 ãã©ã°ï¼16 é²æ°ã 1177 tinet/netinet/tcp_var.h åç 1178 §ï¼ 1179 :--AP--- TCP ãããã®ãã©ã°ãã£ã¼ã«ãã®å¤ï¼tinet/netinet/tcp.h 1180 åç 1181 §ï¼ 1182 s: 74461 TCP ãããã®ã·ã¼ã±ã³ã¹çªå·ï¼ã³ãã¯ã·ã§ã³ç¢ºç«æããã® 1183 ç¸å¯¾å¤ï¼ 1184 a: 76082 TCP ãããã®ç¢ºèªå¿ççªå·ï¼ã³ãã¯ã·ã§ã³ç¢ºç«æããã®ç¸ 1185 対å¤ï¼ 1186 w: 2920 TCP ãããã®ã¦ã¤ã³ããµã¤ãº 1187 l:1460 éä¿¡ãã¤ãã¼ããã¼ã¿æ° 1188 1189 ãã®æ©è½ã«é¢ä¿ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãã以 1190 ä¸ã«ç¤ºãã 1062 329.627 送信した時間、1/1000 秒単位、または 1 秒単位 1063 c: 4 TCP 通信端点 ID 1064 s:CW TCP FSM 状態(tinet/netinet/tcp_fsm.h 参照) 1065 f:60d20 TCP 通信端点の状態フラグ(16 進数、 1066 tinet/netinet/tcp_var.h 参照) 1067 :--AP--- TCP ヘッダのフラグフィールドの値(tinet/netinet/tcp.h 1068 参照) 1069 s: 74461 TCP ヘッダのシーケンス番号(コネクション確立時からの 1070 相対値) 1071 a: 76082 TCP ヘッダの確認応答番号(コネクション確立時からの相 1072 対値) 1073 w: 2920 TCP ヘッダのウインドサイズ 1074 l:1460 送信ペイロードデータ数 1075 1076 この機能に関係するコンパイル時コンフィギュレーションパラメータを、以 1077 下に示す。 1191 1078 1192 1079 (1) TCP_CFG_TRACE 1193 TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ãçµè¾¼ãã1080 TCP ヘッダのトレース出力機能を組込む。 1194 1081 1195 1082 (2) TCP_CFG_TRACE_IPV4_RADDR 1196 ãã¬ã¼ã¹åºå対象ã®ãªã¢ã¼ããã¹ãã® IPv4 ã¢ãã¬ã¹ãæå®ããã 1197 IPV4_ADDRANY ãæå®ããã¨ãå 1198 ¨ã¦ã®ãã¹ãã対象ã¨ããã 1083 トレース出力対象のリモートホストの IPv4 アドレスを指定する。 1084 IPV4_ADDRANY を指定すると、全てのホストを対象とする。 1199 1085 1200 1086 (3) TCP_CFG_TRACE_LPORTNO 1201 ãã¬ã¼ã¹åºå対象ã®ãã¼ã«ã«ãã¹ãã®ãã¼ãçªå·ãæå®ããã 1202 TCP_PORTANY ãæå®ããã¨ãå 1203 ¨ã¦ã®ãã¼ãçªå·ã対象ã«ããã 1087 トレース出力対象のローカルホストのポート番号を指定する。 1088 TCP_PORTANY を指定すると、全てのポート番号を対象にする。 1204 1089 1205 1090 (4) TCP_CFG_TRACE_RPORTNO 1206 ãã¬ã¼ã¹åºå対象ã®ãªã¢ã¼ããã¹ãã®ãã¼ãçªå·ãæå®ããã 1207 TCP_PORTANY ãæå®ããã¨ãå 1208 ¨ã¦ã®ãã¼ãçªå·ã対象ã«ããã 1209 1210 6. 7 IPv6ã«ãããã¢ãã¬ã¹ç®¡çã¨Path MTUã¸ã®å¯¾å¿ 1211 1212 TINET ãªãªã¼ã¹ 1.3 ã¾ã§ãIPv6 ã«ãããã¢ãã¬ã¹ç®¡çã¯éå®çãªå¯¾å¿ã®ã¿ 1213 ã§ããã Path MTU ã«ã対å¿ãã¦ããªãã£ããããã¹ãæ 1214 å ±ã®ãã£ãã·ã¥ãå® 1215 è£ 1216 ãããã¨ã«ãããTINET ãªãªã¼ã¹ 1.4 ããã¯ãã»ã¼å®å 1217 ¨ã«å¯¾å¿ããã 1218 ãã®æ©è½ã«é¢ä¿ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãã以 1219 ä¸ã«ç¤ºãã 1091 トレース出力対象のリモートホストのポート番号を指定する。 1092 TCP_PORTANY を指定すると、全てのポート番号を対象にする。 1093 1094 6. 7 IPv6におけるアドレス管理とPath MTUへの対応 1095 1096 TINET リリース 1.3 まで、IPv6 におけるアドレス管理は限定的な対応のみ 1097 であり、 Path MTU にも対応していなかったが、ホスト情報のキャッシュを実 1098 装することにより、TINET リリース 1.4 からは、ほぼ完全に対応した。 1099 この機能に関係するコンパイル時コンフィギュレーションパラメータを、以 1100 下に示す。 1220 1101 1221 1102 (1) NUM_IN6_IFADDR_ENTRY 1222 ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãªã¹ãï¼IPv6ï¼ã®ã¨ã³ããªæ°ã§ããã1103 インタフェースのアドレスリスト(IPv6)のエントリ数である。 1223 1104 1224 1105 (2) NUM_ND6_DEF_RTR_ENTRY 1225 ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã®ã¨ã³ããªæ°ã§ãæ大å¤ã¯ 16 ã§ããã01226 ãæå®ããã¨ã«ã¼ã¿éç¥ãåä¿¡ããªãããã ããç¾å¨ã¯ã ã«ã¼ã¿é1227 ç¥ã®å信以å¤ã«ãµã¤ããã¼ã«ã«ã¢ãã¬ã¹çãè¨å®ããæ¹æ³ããªãã1106 ディフォルトルータリストのエントリ数で、最大値は 16 である。0 1107 を指定するとルータ通知を受信しない。ただし、現在は、 ルータ通 1108 知の受信以外にサイトローカルアドレス等を設定する方法がない。 1228 1109 1229 1110 (3) NUM_ND6_PREFIX_ENTRY 1230 ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã¨ã³ããªæ°ã§ãæ大å¤ã¯ 16 ã§ããã1111 プレフィックスリストのエントリ数で、最大値は 16 である。 1231 1112 1232 1113 (4) NUM_IN6_HOSTCACHE_ENTRY 1233 IPv6 ç¨ãã¹ãæ 1234 å ±ãã£ãã·ã¥ã®ã¨ã³ããªæ°ã§ã 0 ãæå®ãã㨠1235 IPv6 ç¨ãã¹ãæ 1236 å ±ãã£ãã·ã¥ãçµè¾¼ã¾ãªããã¾ãããã®å ´åãPath 1237 MTU ã¸ã®å¯¾å¿ãéå®çã«ãªãã 1238 1239 6. 8 IPv6/IPv4å®å 1240 ¨ãã¥ã¢ã«ã¹ã¿ã㯠1241 1242 TINET ãªãªã¼ã¹ 1.5 ã¾ã§ã çµè¾¼ã¿å¯è½ãªãããã¯ã¼ã¯å±¤ã¯ IPv6 ã IPv4 1243 ã®ããããã§ãã£ããã TINET ãªãªã¼ã¹ 1.7 ããã¯ä¸¡æ¹ãçµè¾¼ããã¨ããå¯ 1244 è½ã«ãªã£ãã 1245 ãããã¯ã¼ã¯å±¤ã¨ã㦠IPv6 ãé¸æããå ´åã¯ã IPv6 ã® API ã«ããã 1246 IPv6 ã¢ãã¬ã¹ã¨ã㦠IPv4 å°å½±ã¢ãã¬ã¹ã使ç¨ãããã¨ãå¯è½ã§ããã 1247 ãã®æ©è½ãæå¹ã«ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãã 1248 以ä¸ã«ç¤ºãã 1114 IPv6 用ホスト情報キャッシュのエントリ数で、 0 を指定すると 1115 IPv6 用ホスト情報キャッシュを組込まない。また、この場合、Path 1116 MTU への対応も限定的になる。 1117 1118 6. 8 IPv6/IPv4完全デュアルスタック 1119 1120 TINET リリース 1.5 まで、 組込み可能なネットワーク層は IPv6 か IPv4 1121 のいずれかであったが、 TINET リリース 1.7 からは両方を組込むことがが可 1122 能になった。 1123 ネットワーク層として IPv6 を選択した場合は、 IPv6 の API における 1124 IPv6 アドレスとして IPv4 射影アドレスを使用することが可能である。 1125 この機能を有効にするコンパイル時コンフィギュレーションパラメータを、 1126 以下に示す。 1249 1127 API_CFG_IP4MAPPED_ADDR 1250 ãã®ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãããªãæã¯ã以ä¸ã®ç¤º 1251 ã API ã®å¼æ°ã¨ã㦠IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããã¨ã æ»ãå¤ã¨ãã¦E_PAR1252 ãè¿ãããã 1128 このコンパイル時コンフィギュレーションパラメータをしない時は、以下の示 1129 す API の引数として IPv4 射影アドレスを指定すると、 戻り値として E_PAR 1130 が返される。 1253 1131 1254 1132 [1] tcp_cre_rep … … 1258 1136 [5] udp_snd_dat 1259 1137 1260 7. TINET ç¬èª API 1261 1262 7. 1 ãããã¯ã¼ã¯çµ±è¨æ 1263 å ± 1264 1265 éåä¿¡ãªã¯ãããæ°ã éåä¿¡ãã±ããæ°çã®çµ±è¨æ 1266 å ±ã®ã«ã¦ã³ã¿ 1267 ï¼net_countï¼ããåç´å¤æ°ãæ§é ä½ãé 1268 åã«ããçµè¾¼ã¾ãã¦ããã 1269 1270 (1) ãããã¯ã¼ã¯çµ±è¨æ 1271 å ±ã®æå¹å 1272 ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã»ãã¡ã¤ã«ã®ããããã§ã 1273 ãããã³ã«æ¯ã«ãããã¯ã¼ã¯çµ±è¨æ 1274 å ±ãæå¹ã«ããäºãå¿ 1275 è¦ã§ããã 1276 æå¹ã«ããããã«ã¯ããã¯ã NET_COUNT_ENABLE ã«ã ãããã³ã«è 1277 å¥ãã©ã°ï¼ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« net/net.h ã§å®ç¾©ããã¦ããï¼ã 1278 ãããè«çåã«ããè¨å®ããã 1279 1280 (2) ãããã¯ã¼ã¯çµ±è¨æ 1281 å ±ã®æ¨æºãã¼ã¿åã¨æ¨æºæ§é ä½ 1282 ããããã¤ã³ã¯ã«ã¼ããã¡ã¤ã« net/net_count.h ã«å®ç¾©ããã¦ããã 1138 7. TINET 独自 API 1139 1140 7. 1 ネットワーク統計情報 1141 1142 送受信オクテット数、 送受信パケット数等の統計情報のカウンタ 1143 (net_count)が、単純変数、構造体、配列により組込まれている。 1144 1145 (1) ネットワーク統計情報の有効化 1146 コンパイル時コンフィギュレーション・ファイルのいずれかで、 1147 プロトコル毎にネットワーク統計情報を有効にする事が必要である。 1148 有効にするためには、マクロ NET_COUNT_ENABLE に、 プロトコル識 1149 別フラグ(インクルードファイル net/net.h で定義されている)を 1150 ビット論理和により設定する。 1151 1152 (2) ネットワーク統計情報の標準データ型と標準構造体 1153 いずれもインクルードファイル net/net_count.h に定義されている。 1283 1154 1284 1155 typedef UD T_NET_COUNT_VAL; 1285 1156 1286 1157 typedef struct t_net_count { 1287 T_NET_COUNT_VAL in_octets; /* åä¿¡ãªã¯ãããæ°*/1288 T_NET_COUNT_VAL out_octets; /* éä¿¡ãªã¯ãããæ°*/1289 T_NET_COUNT_VAL in_packets; /* åä¿¡ãã±ããæ°*/1290 T_NET_COUNT_VAL out_packets; /* éä¿¡ãã±ããæ°*/1291 T_NET_COUNT_VAL in_err_packets; /* åä¿¡ã¨ã©ã¼ãã±ããæ°*/1292 T_NET_COUNT_VAL out_err_packets; /* éä¿¡ã¨ã©ã¼ãã±ããæ°*/1158 T_NET_COUNT_VAL in_octets; /* 受信オクテット数 */ 1159 T_NET_COUNT_VAL out_octets; /* 送信オクテット数 */ 1160 T_NET_COUNT_VAL in_packets; /* 受信バケット数 */ 1161 T_NET_COUNT_VAL out_packets; /* 送信バケット数 */ 1162 T_NET_COUNT_VAL in_err_packets; /* 受信エラーバケット数 */ 1163 T_NET_COUNT_VAL out_err_packets; /* 送信エラーバケット数 */ 1293 1164 } T_NET_COUNT; 1294 1165 1295 (3) ãããã³ã«æ¯ã®ãããã¯ã¼ã¯çµ±è¨æ 1296 å ± 1297 以ä¸ã«ã ãããã³ã«æ¯ã®ãããã¯ã¼ã¯çµ±è¨æ 1298 å ±ã®å¤æ°ã¾ãã¯é 1299 å 1300 ã示ããï¼ï¼å 1301 ã¯ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« net/net.h ã«å®ç¾©ããã¦ã 1302 ããããã³ã«èå¥ãã©ã°ã§ãããã¾ããé 1303 åå¤æ°ã®å ´åã é 1304 åã®å 1305 1306 容ã¯ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã« net/net_count.h ãåç 1307 §ãããã¨ã 1308 1309 [1] PPP ã® HDLCï¼PROTO_FLG_PPP_HDLCï¼ 1310 æ¨æºæ§é ä½å¤æ°ã§ãå¤æ°å㯠net_count_hdlc ã§ããã 1311 1312 [2] PPP ã®èªè¨¼ãããã³ã«ï¼PROTO_FLG_PPP_PAPï¼ 1313 æ¨æºãã¼ã¿åå¤æ°ã§ã å¤æ°åã¯ãåä¿¡ãªã¯ãããæ°ã 1166 (3) プロトコル毎のネットワーク統計情報 1167 以下に、 プロトコル毎のネットワーク統計情報の変数または配列 1168 を示す。()内はインクルードファイル net/net.h に定義されてい 1169 るプロトコル識別フラグである。また、配列変数の場合、 配列の内 1170 容は、インクルードファイル net/net_count.h を参照すること。 1171 1172 [1] PPP の HDLC(PROTO_FLG_PPP_HDLC) 1173 標準構造体変数で、変数名は net_count_hdlc である。 1174 1175 [2] PPP の認証プロトコル(PROTO_FLG_PPP_PAP) 1176 標準データ型変数で、 変数名は、受信オクテット数が 1314 1177 1315 1178 net_count_ppp_upap_in_octets 1316 1179 1317 éä¿¡ãªã¯ãããæ°ã1180 送信オクテット数が 1318 1181 1319 1182 net_count_ppp_upap_out_octets 1320 1183 1321 [3] PPP ã®ãªã³ã¯å¶å¾¡ãããã³ã«ï¼PROTO_FLG_PPP_LCPï¼1322 æ¨æºãã¼ã¿åå¤æ°ã§ãå¤æ°åã¯ã åä¿¡ãªã¯ãããæ°ã1184 [3] PPP のリンク制御プロトコル(PROTO_FLG_PPP_LCP) 1185 標準データ型変数で、変数名は、 受信オクテット数が 1323 1186 1324 1187 net_count_ppp_lcp_in_octets 1325 1188 1326 éä¿¡ãªã¯ãããæ°ã1189 送信オクテット数が 1327 1190 1328 1191 net_count_ppp_lcp_out_octets 1329 1192 1330 [4] PPP ã® IP ä¾åå¶å¾¡ãããã³ã«ï¼PROTO_FLG_PPP_IPCPï¼1331 æ¨æºãã¼ã¿åå¤æ°ã§ã å¤æ°åã¯ãåä¿¡ãªã¯ãããæ°ã1193 [4] PPP の IP 依存制御プロトコル(PROTO_FLG_PPP_IPCP) 1194 標準データ型変数で、 変数名は、受信オクテット数が 1332 1195 1333 1196 net_count_ppp_ipcp_in_octets 1334 1197 1335 éä¿¡ãªã¯ãããæ°ã1198 送信オクテット数が 1336 1199 1337 1200 net_count_ppp_ipcp_out_octets 1338 1201 1339 [5] PPP å 1340 ¨ä½ï¼PROTO_FLG_PPPï¼ 1341 PPP å 1342 ¨ä½ã®ãããã¯ã¼ã¯çµ±è¨æ 1343 å ±ã¯ã æ¨æºæ§é ä½å¤æ°ã§ã 1344 å¤æ°å㯠net_count_ppp ã§ããã ã¾ãã PPP ã§ã® net_buf 1345 ã®å²å½ã¦å¤±ææ°ã¯ã æ¨æºãã¼ã¿åå¤æ°ã§ã å¤æ°å㯠1346 net_count_ppp_no_buf ã§ããã 1347 1348 [6] ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ï¼PROTO_FLG_LOOPï¼ 1349 æ¨æºæ§é ä½å¤æ°ã§ãå¤æ°å㯠net_count_loop ã§ããã 1350 1351 [7] ã¤ã¼ãµããããã£ãã¤ã¹ãã©ã¤ã NICï¼PROTO_FLG_ETHER_NICï¼ 1352 æ¨æºãã¼ã¿åé 1353 åå¤æ°ã§ã å¤æ°å㯠net_count_ether_nic 1354 ã§ããã 1355 1356 [8] ï¼PROTO_FLG_ETHERï¼ 1357 æ¨æºæ§é ä½å¤æ°ã§ãå¤æ°å㯠net_count_ether ã§ããã 1358 1359 [9] ï¼PROTO_FLG_ARPï¼ 1360 æ¨æºæ§é ä½å¤æ°ã§ãå¤æ°å㯠net_count_arp ã§ããã 1361 1362 [10] ï¼PROTO_FLG_IP4ï¼ 1363 æ¨æºãã¼ã¿åé 1364 åå¤æ°ã§ãå¤æ°å㯠net_count_ip4 ã§ããã 1365 1366 [11] ï¼PROTO_FLG_IP6ï¼ 1367 æ¨æºãã¼ã¿åé 1368 åå¤æ°ã§ãå¤æ°å㯠net_count_ip6 ã§ããã 1369 1370 [12] ï¼PROTO_FLG_ICMP4ï¼ 1371 æ¨æºæ§é ä½å¤æ°ã§ãå¤æ°å㯠net_count_icmp4 ã§ããã 1372 1373 [13] ï¼PROTO_FLG_ICMP6ï¼ 1374 æ¨æºãã¼ã¿åé 1375 åå¤æ°ã§ãå¤æ°å㯠net_count_icmp6 ã§ããã 1376 1377 [14] ï¼PROTO_FLG_ND6ï¼ 1378 æ¨æºãã¼ã¿åé 1379 åå¤æ°ã§ãå¤æ°å㯠net_count_nd6 ã§ããã 1380 1381 [15] ï¼PROTO_FLG_UDPï¼ 1382 æ¨æºæ§é ä½å¤æ°ã§ãå¤æ°å㯠net_count_udp ã§ããã 1383 1384 [16] ï¼PROTO_FLG_TCPï¼ 1385 æ¨æºãã¼ã¿åé 1386 åå¤æ°ã§ãå¤æ°å㯠net_count_tcp ã§ããã 1387 1388 [17] ï¼PROTO_FLG_NET_BUFï¼ 1389 net_buf ã«é¢ãã¦ã¯ã ç¹æ®ã§ãããããµã³ãã«ã¢ããªã±ã¼ 1390 ã·ã§ã³ nserv ã§ä½¿ç¨ãã¦ãã netapp/dbg_cons.c ã®é¢æ° 1391 net_count ãåç 1392 §ãããã¨ã 1393 1394 7. 2 SNMP ç¨ç®¡çæ 1395 å ±ãã¼ã¹ï¼MIBï¼ 1396 1397 ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã»ãã¡ã¤ã«ã®ããããã§ã ãã¯ã 1398 SUPPORT_MIB ãå®ç¾©ãããã¨ã«ãããSNMP ç¨ç®¡çæ 1399 å ±ãã¼ã¹ï¼MIBï¼ã«æºæ ã 1400 ããããã¯ã¼ã¯çµ±è¨ã®åå¾ãå¯è½ã§ããããã ããTINET èªä½ã¯ã管çæ 1401 å ±ãã¼ 1402 ã¹ï¼MIBï¼ã«æºæ ãããããã¯ã¼ã¯çµ±è¨ãæä¾ããã ãã§ï¼SNMP ããµãã¼ãã 1403 ã¦ããªããã¾ããRFC1213ãRFC2465ãRFC2466 ã«å®ç¾©ããã¦ããå 1404 ¨ã¦ã®æ 1405 å ±ã 1406 åå¾ã§ããããã§ã¯ãªããåå¾ã§ããæ 1407 å ±ã¯ãé¢ä¿ããã¤ã³ã¯ã«ã¼ããã¡ã¤ã« 1408 ã®æ§é ä½ã®å®ç¾©ãåç 1409 §ãããã¨ã 1410 以ä¸ã«ãã°ã«ã¼ããæ§é ä½ãå®ç¾©ãã¦ããã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãæ§é ä½åã 1411 æ§é ä½å¤æ°åã示ãã 1412 1413 (1) TCP ã°ã«ã¼ã 1414 1415 ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« netinet/tcp_var.h 1416 æ§é ä½å T_TCP_STATS 1417 å¤æ°å tcp_stats 1418 1419 (2) UDP ã°ã«ã¼ã 1420 1421 ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« netinet/udp_var.h 1422 æ§é ä½å T_UDP_STATS 1423 å¤æ°å udp_stats 1424 1425 (3) ICMPv4 ã°ã«ã¼ã 1426 1427 ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« netinet/icmp_var.h 1428 æ§é ä½å T_ICMP_STATS 1429 å¤æ°å icmp_stats 1430 1431 (4) IPv4 ã°ã«ã¼ã 1432 1433 ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« netinet/ip_var.h 1434 æ§é ä½å T_IP_STATS 1435 å¤æ°å ip_stats 1436 1437 (5) ICMPv6 ã°ã«ã¼ã 1438 1439 ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« netinet/icmp6.h 1440 æ§é ä½å T_ICMP6_IFSTAT 1441 å¤æ°å icmp6_ifstat 1442 1443 (6) IPv6 ã°ã«ã¼ã 1444 1445 ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« netinet6/ip6_var.h 1446 æ§é ä½å T_IN6_IFSTAT 1447 å¤æ°å in6_ifstat 1448 1449 (7) ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ï¼ã¤ã¼ãµãããï¼ã°ã«ã¼ã 1450 1451 ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« net/if_var.h 1452 æ§é ä½å T_IF_STATS 1453 å¤æ°å if_stats 1454 1455 7. 3 TINET å 1456 é¨ã¢ã¯ã»ã¹é¢æ°ããµãã¼ãé¢æ°ãå 1457 ¨åå¤æ°ã¨ãã¯ã 1458 1459 å¿ç¨ããã°ã©ã ãã TINET å 1460 é¨ã«ã¢ã¯ã»ã¹ããããã®é¢æ°ã ãµãã¼ãé¢æ°ã 1461 å 1462 ¨åå¤æ°ã¨ãã¯ãã§ããã 1463 1464 (1) IPv6 ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ï¼æååï¼ã«å¤æããé¢æ° 1465 ãC è¨èª APIã 1202 [5] PPP 全体(PROTO_FLG_PPP) 1203 PPP 全体のネットワーク統計情報は、 標準構造体変数で、 1204 変数名は net_count_ppp である。 また、 PPP での net_buf 1205 の割当て失敗数は、 標準データ型変数で、 変数名は 1206 net_count_ppp_no_buf である。 1207 1208 [6] ループバックインタフェース(PROTO_FLG_LOOP) 1209 標準構造体変数で、変数名は net_count_loop である。 1210 1211 [7] イーサネットディバイスドライバ NIC(PROTO_FLG_ETHER_NIC) 1212 標準データ型配列変数で、 変数名は net_count_ether_nic 1213 である。 1214 1215 [8] (PROTO_FLG_ETHER) 1216 標準構造体変数で、変数名は net_count_ether である。 1217 1218 [9] (PROTO_FLG_ARP) 1219 標準構造体変数で、変数名は net_count_arp である。 1220 1221 [10] (PROTO_FLG_IP4) 1222 標準データ型配列変数で、変数名は net_count_ip4 である。 1223 1224 [11] (PROTO_FLG_IP6) 1225 標準データ型配列変数で、変数名は net_count_ip6 である。 1226 1227 [12] (PROTO_FLG_ICMP4) 1228 標準構造体変数で、変数名は net_count_icmp4 である。 1229 1230 [13] (PROTO_FLG_ICMP6) 1231 標準データ型配列変数で、変数名は net_count_icmp6 である。 1232 1233 [14] (PROTO_FLG_ND6) 1234 標準データ型配列変数で、変数名は net_count_nd6 である。 1235 1236 [15] (PROTO_FLG_UDP) 1237 標準構造体変数で、変数名は net_count_udp である。 1238 1239 [16] (PROTO_FLG_TCP) 1240 標準データ型配列変数で、変数名は net_count_tcp である。 1241 1242 [17] (PROTO_FLG_NET_BUF) 1243 net_buf に関しては、 特殊であるためサンプルアプリケー 1244 ション nserv で使用している netapp/dbg_cons.c の関数 1245 net_count を参照すること。 1246 1247 7. 2 SNMP 用管理情報ベース(MIB) 1248 1249 コンパイル時コンフィギュレーション・ファイルのいずれかで、 マクロ 1250 SUPPORT_MIB を定義することにより、SNMP 用管理情報ベース(MIB)に準拠し 1251 たネットワーク統計の取得が可能である。ただし、TINET 自体は、管理情報ベー 1252 ス(MIB)に準拠したネットワーク統計を提供するだけで,SNMP をサポートし 1253 ていない。また、RFC1213、RFC2465、RFC2466 に定義されている全ての情報が 1254 取得できるわけではない。取得できる情報は、関係するインクルードファイル 1255 の構造体の定義を参照すること。 1256 以下に、グループ、構造体を定義しているインクルードファイル、構造体名、 1257 構造体変数名を示す。 1258 1259 (1) TCP グループ 1260 1261 インクルードファイル netinet/tcp_var.h 1262 構造体名 T_TCP_STATS 1263 変数名 tcp_stats 1264 1265 (2) UDP グループ 1266 1267 インクルードファイル netinet/udp_var.h 1268 構造体名 T_UDP_STATS 1269 変数名 udp_stats 1270 1271 (3) ICMPv4 グループ 1272 1273 インクルードファイル netinet/icmp_var.h 1274 構造体名 T_ICMP_STATS 1275 変数名 icmp_stats 1276 1277 (4) IPv4 グループ 1278 1279 インクルードファイル netinet/ip_var.h 1280 構造体名 T_IP_STATS 1281 変数名 ip_stats 1282 1283 (5) ICMPv6 グループ 1284 1285 インクルードファイル netinet/icmp6.h 1286 構造体名 T_ICMP6_IFSTAT 1287 変数名 icmp6_ifstat 1288 1289 (6) IPv6 グループ 1290 1291 インクルードファイル netinet6/ip6_var.h 1292 構造体名 T_IN6_IFSTAT 1293 変数名 in6_ifstat 1294 1295 (7) ネットワークインタフェース(イーサネット)グループ 1296 1297 インクルードファイル net/if_var.h 1298 構造体名 T_IF_STATS 1299 変数名 if_stats 1300 1301 7. 3 TINET 内部アクセス関数、サポート関数、全域変数とマクロ 1302 1303 応用プログラムから TINET 内部にアクセスするための関数、 サポート関数、 1304 全域変数とマクロである。 1305 1306 (1) IPv6 アドレスをリテラル表現(文字列)に変換する関数 1307 【C 言語 API】 1466 1308 char *p_retbuf = ipv62str (char *p_buf, const T_IN6_ADDR *p_addr); 1467 1309 1468 ããã©ã¡ã¼ã¿ã1469 char buf ãªãã©ã«è¡¨ç¾ã®IPv6ã¢ãã¬ã¹ãæ ¼ç´ãããããã¡1470 const T_IN6_ADDR addr IPv6 ã¢ãã¬ã¹1471 1472 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã1473 char retbuf ãªãã©ã«è¡¨ç¾ã® IPv6 ã¢ãã¬ã¹ãæ ¼ç´ããããããã¡1474 1475 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã1310 【パラメータ】 1311 char buf リテラル表現のIPv6アドレスを格納するバッファ 1312 const T_IN6_ADDR addr IPv6アドレス 1313 1314 【リターンパラメータ】 1315 char retbuf リテラル表現の IPv6 アドレスが格納されたバッファ 1316 1317 【インクルードファイル】 1476 1318 <netinet/in.h> 1477 1319 1478 ãæ©è½ã 1479 IPv6 ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ï¼æååï¼ã«å¤æããããã© 1480 ã¡ã¼ã¿ buf ã«ã¯ãæä½ 46 ãã¤ãã®é åãå¿ 1481 è¦ã§ãããã¾ãã 1482 ãã©ã¡ã¼ã¿ buf ã«ã NULL ãæå®ããã¨ãTINET å 1483 é¨ã§ç¢ºä¿ 1484 ãã¦ãããããã¡ã« IPv6 ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ã«å¤æã 1485 ã¦æ¸ãè¾¼ã¿ããã®ã¢ãã¬ã¹ãè¿ãã ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ 1486 ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_IPADDR_STR_BUFF ã«ãããããã¡ 1487 æ°ãæå®ãããã¨ãåºæ¥ãã ãã ãããããã¡æ°ãè¶ 1488 ãã¦é£ 1489 ç¶çã«å¼åºãã¨ãããã¡ãä¸æ¸ãããã 1490 1491 (2) è¨å®å¯è½ãªæ大 IPv6 ã¢ãã¬ã¹æ°ãè¿ãé¢æ° 1492 ãC è¨èª APIã 1320 【機能】 1321 IPv6 アドレスをリテラル表現(文字列)に変換する。パラ 1322 メータ buf には、最低 46 バイトの領域が必要である。また、 1323 パラメータ buf に、 NULL を指定すると、TINET 内部で確保 1324 してあるバッファに IPv6 アドレスをリテラル表現に変換し 1325 て書き込み、そのアドレスを返す。 コンパイル時コンフィギュ 1326 レーションパラメータ NUM_IPADDR_STR_BUFF によりバッファ 1327 数を指定することが出来る。 ただし、バッファ数を超えて連 1328 続的に呼出すとバッファを上書きする。 1329 1330 (2) 設定可能な最大 IPv6 アドレス数を返す関数 1331 【C 言語 API】 1493 1332 u_int num = in6_get_maxnum_ifaddr (void); 1494 1333 1495 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã1496 u_int num è¨å®å¯è½ãªæ大IPv6ã¢ãã¬ã¹æ°1497 1498 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã1334 【リターンパラメータ】 1335 u_int num 設定可能な最大IPv6アドレス数 1336 1337 【インクルードファイル】 1499 1338 <netinet/in.h> 1500 1339 1501 ãæ©è½ã1502 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®å¯è½ãªæ大 IPv6 ã¢ã1503 ã¬ã¹æ°ãè¿ãé¢æ°ã§ããã ãªãã ç¾å¨è¨å®ããã¦ããIPv61504 ã¢ãã¬ã¹æ°ã¨ã¯ç°ãªãã1505 1506 (3) è¨å®ããã¦ãã IPv6 ã¢ãã¬ã¹ãè¿ãé¢æ°1507 ãC è¨èª APIã1340 【機能】 1341 ネットワークインタフェースに設定可能な最大 IPv6 アド 1342 レス数を返す関数である。 なお、 現在設定されている IPv6 1343 アドレス数とは異なる。 1344 1345 (3) 設定されている IPv6 アドレスを返す関数 1346 【C 言語 API】 1508 1347 const T_IN6_ADDR *p_addr = in6_get_ifaddr (int_t index); 1509 1348 1510 ããã©ã¡ã¼ã¿ã1511 int_t index IPv6 ã¢ãã¬ã¹ã®ã¤ã³ããã¯ã¹å¤1512 1513 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã1514 T_IN6_ADDR addr è¨å®ããã¦ããIPv6ã¢ãã¬ã¹ãæ ¼ç´ããããããã¡1515 1516 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã1349 【パラメータ】 1350 int_t index IPv6アドレスのインデックス値 1351 1352 【リターンパラメータ】 1353 T_IN6_ADDR addr 設定されているIPv6アドレスが格納されたバッファ 1354 1355 【インクルードファイル】 1517 1356 <netinet/in.h> 1518 1357 1519 ãæ©è½ã1520 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®ããã¦ãã IPv6 ã¢ã1521 ã¬ã¹ãè¿ãé¢æ°ã§ããããã ãã æªå®ç¾©ã®å ´å㯠NULL ãè¿1522 ãã index ã«ã¯ 0 ï½ ( è¨å®å¯è½ãªæ大 IPv6 ã¢ãã¬ã¹æ°1523 -1) ãæå®ã§ããã1524 1525 (4) è¨å®ããã¦ãã IPv6 ã¢ãã¬ã¹ãæ´æ°ããé¢æ°1526 ãC è¨èª APIã1358 【機能】 1359 ネットワークインタフェースに設定されている IPv6 アド 1360 レスを返す関数である。ただし、 未定義の場合は NULL を返 1361 す。 index には 0 ~ ( 設定可能な最大 IPv6 アドレス数 1362 -1) を指定できる。 1363 1364 (4) 設定されている IPv6 アドレスを更新する関数 1365 【C 言語 API】 1527 1366 ER ercd = in6_upd_ifaddr (T_IN6_ADDR *p_addr, 1528 1367 uint_t prefixlen, … … 1530 1369 uint32_t pltime); 1531 1370 1532 ããã©ã¡ã¼ã¿ã1533 T_IN6_ADDR addr æ´æ°ããIPv6ã¢ãã¬ã¹1534 int_t prefixlen ãã¬ãã£ãã¯ã¹é·1535 int32_t vltime æå¹æéï¼åä½ã¯ç§ï¼1536 int32_t pltime æ¨å¥¨æå¹æéï¼åä½ã¯ç§ï¼1537 1538 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã1539 ER ercd ã¨ã©ã¼ã³ã¼ã1540 1541 ãã¨ã©ã¼ã³ã¼ãã1542 E_OBJ 空ãããªãã1543 E_PAR ãã©ã¡ã¼ã¿ã¨ã©ã¼ï¼p_addrãNULLçï¼ã1544 1545 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã1371 【パラメータ】 1372 T_IN6_ADDR addr 更新するIPv6アドレス 1373 int_t prefixlen プレフィックス長 1374 int32_t vltime 有効時間(単位は秒) 1375 int32_t pltime 推奨有効時間(単位は秒) 1376 1377 【リターンパラメータ】 1378 ER ercd エラーコード 1379 1380 【エラーコード】 1381 E_OBJ 空きがない。 1382 E_PAR パラメータエラー(p_addrがNULL等)。 1383 1384 【インクルードファイル】 1546 1385 <netinet/in.h> 1547 1386 1548 ãæ©è½ã1549 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®ããã¦ãã IPv6 ã¢ã1550 ã¬ã¹ã®ãã¬ãã£ãã¯ã¹é·ãæå¹æéã æ¨å¥¨æå¹æéãæ´æ°ã1551 ãã ãã ããæªå®ç¾©ã®å ´åã¯è¿½å ããã1552 1553 (5) è¨å®ããã¦ãã IPv6 ã¢ãã¬ã¹ãåé¤ããé¢æ°1554 ãC è¨èª APIã1387 【機能】 1388 ネットワークインタフェースに設定されている IPv6 アド 1389 レスのプレフィックス長、有効時間、 推奨有効時間を更新す 1390 る。 ただし、未定義の場合は追加する。 1391 1392 (5) 設定されている IPv6 アドレスを削除する関数 1393 【C 言語 API】 1555 1394 ER ercd = in6_del_ifaddr (T_IN6_ADDR *p_addr); 1556 1395 1557 ããã©ã¡ã¼ã¿ã1558 T_IN6_ADDR addr åé¤ããIPv6ã¢ãã¬ã¹1559 1560 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã1561 ER ercd ã¨ã©ã¼ã³ã¼ã1562 1563 ãã¨ã©ã¼ã³ã¼ãã1564 E_PAR ãã©ã¡ã¼ã¿ã¨ã©ã¼ï¼æå®ãããã¢ãã¬ã¹ããªãçï¼ã1565 1566 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã1396 【パラメータ】 1397 T_IN6_ADDR addr 削除するIPv6アドレス 1398 1399 【リターンパラメータ】 1400 ER ercd エラーコード 1401 1402 【エラーコード】 1403 E_PAR パラメータエラー(指定されたアドレスがない等)。 1404 1405 【インクルードファイル】 1567 1406 <netinet/in.h> 1568 1407 1569 ãæ©è½ã1570 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®ããã¦ãã IPv6 ã¢ã1571 ã¬ã¹ãåé¤ããã1572 1573 (6) è¨å®å¯è½ãªæ大 IPv4 ã¢ãã¬ã¹æ°ãè¿ãé¢æ°1574 ãC è¨èª APIã1408 【機能】 1409 ネットワークインタフェースに設定されている IPv6 アド 1410 レスを削除する。 1411 1412 (6) 設定可能な最大 IPv4 アドレス数を返す関数 1413 【C 言語 API】 1575 1414 uint_t num = in4_get_maxnum_ifaddr (void); 1576 1415 1577 1416 1578 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã1579 uint_t num è¨å®å¯è½ãªæ大IPv4ã¢ãã¬ã¹æ°ãè¿ãé¢æ°1580 1581 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã1417 【リターンパラメータ】 1418 uint_t num 設定可能な最大IPv4アドレス数を返す関数 1419 1420 【インクルードファイル】 1582 1421 <netinet/in.h> 1583 1422 1584 ãæ©è½ã1585 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«è¨å®å¯è½ãªæ大 IPv4 ã¢ã1586 ã¬ã¹æ°ãè¿ãé¢æ°ã§ããããªããç¾å¨ã¯å¸¸ã« 1 ãè¿ãã1587 1588 (7) ã¤ã³ã¿ãã§ã¼ã¹ã« IPv4 ã¢ãã¬ã¹ãè¨å®ããé¢æ°1589 ãC è¨èª APIã1423 【機能】 1424 ネットワークインタフェースに設定可能な最大 IPv4 アド 1425 レス数を返す関数である。なお、現在は常に 1 を返す。 1426 1427 (7) インタフェースに IPv4 アドレスを設定する関数 1428 【C 言語 API】 1590 1429 ER ercd = in4_add_ifaddr (T_IN4_ADDR addr, T_IN4_ADDR mask); 1591 1430 1592 ããã©ã¡ã¼ã¿ã1593 T_IN4_ADDR addr IP ã¢ãã¬ã¹1594 T_IN4_ADDR mask ãµãããããã¹ã¯1595 1596 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã1597 ER ercd ã¨ã©ã¼ã³ã¼ãï¼ç¾å¨ã¯å¸¸ã«E_OKï¼1598 1599 ãã¨ã©ã¼ã³ã¼ãã1600 E_OK ç¾å¨ã¯å¸¸ã«E_OK1601 1602 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã1431 【パラメータ】 1432 T_IN4_ADDR addr IPアドレス 1433 T_IN4_ADDR mask サブネットマスク 1434 1435 【リターンパラメータ】 1436 ER ercd エラーコード(現在は常にE_OK) 1437 1438 【エラーコード】 1439 E_OK 現在は常にE_OK 1440 1441 【インクルードファイル】 1603 1442 <netinet/in.h> 1604 1443 1605 ãæ©è½ã 1606 ã¤ã³ã¿ãã§ã¼ã¹ã« IPv4 ã¢ãã¬ã¹ãè¨å®ããã 1607 1608 (8) IPv4 ç¨éççµè·¯è¡¨ã«çµè·¯æ 1609 å ±ãè¨å®ããé¢æ° 1610 ãC è¨èª APIã 1444 【機能】 1445 インタフェースに IPv4 アドレスを設定する。 1446 1447 (8) IPv4 用静的経路表に経路情報を設定する関数 1448 【C 言語 API】 1611 1449 ER ercd = in4_add_route (int index, T_IN4_ADDR target, 1612 1450 T_IN4_ADDR mask, 1613 1451 T_IN4_ADDR gateway); 1614 1452 1615 ããã©ã¡ã¼ã¿ã1616 int index ã¨ã³ããªã®ã¤ã³ããã¯ã¹1617 T_IN4_ADDR target ç®æ¨ãããã¯ã¼ã¯ã®IPã¢ãã¬ã¹1618 T_IN4_ADDR mask ç®æ¨ãããã¯ã¼ã¯ã®ãµãããããã¹ã¯1619 T_IN4_ADDR gateway ã²ã¼ãã¦ã§ã¤ã®IPã¢ãã¬ã¹1620 1621 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã1622 ER ercd ã¨ã©ã¼ã³ã¼ã1623 1624 ãã¨ã©ã¼ã³ã¼ãã1625 E_PAR å¼æ°indexã®å¤ãè² ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³1626 ãã©ã¡ã¼ã¿NUM_ROUTE_ENTRY以ä¸ã®ã¨ãE_PAR1627 1628 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã1453 【パラメータ】 1454 int index エントリのインデックス 1455 T_IN4_ADDR target 目標ネットワークのIPアドレス 1456 T_IN4_ADDR mask 目標ネットワークのサブネットマスク 1457 T_IN4_ADDR gateway ゲートウェイのIPアドレス 1458 1459 【リターンパラメータ】 1460 ER ercd エラーコード 1461 1462 【エラーコード】 1463 E_PAR 引数indexの値が負か、コンパイル時コンフィギュレーション 1464 パラメータNUM_ROUTE_ENTRY以上のときE_PAR 1465 1466 【インクルードファイル】 1629 1467 <netinet/in.h> 1630 1468 1631 ãæ©è½ã 1632 IPv4 ç¨éççµè·¯è¡¨ã«çµè·¯æ 1633 å ±ãè¨å®ããã 1634 1635 (9) IPv4 ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ï¼æååï¼ã«å¤æããé¢æ° 1636 ãC è¨èª APIã 1469 【機能】 1470 IPv4 用静的経路表に経路情報を設定する。 1471 1472 (9) IPv4 アドレスをリテラル表現(文字列)に変換する関数 1473 【C 言語 API】 1637 1474 char *p_retbuf = ip2str (char *p_buf, const T_IN4_ADDR *p_ipaddr); 1638 1475 1639 ããã©ã¡ã¼ã¿ã1640 char buf ãªãã©ã«è¡¨ç¾ã®IPv4ã¢ãã¬ã¹ãæ ¼ç´ãããããã¡1641 const T_IN4_ADDR ipaddr IPv4 ã¢ãã¬ã¹1642 1643 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã1644 char retbuf ãªãã©ã«è¡¨ç¾ã® IPv4 ã¢ãã¬ã¹ãæ ¼ç´ããããããã¡1645 1646 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã1476 【パラメータ】 1477 char buf リテラル表現のIPv4アドレスを格納するバッファ 1478 const T_IN4_ADDR ipaddr IPv4アドレス 1479 1480 【リターンパラメータ】 1481 char retbuf リテラル表現の IPv4 アドレスが格納されたバッファ 1482 1483 【インクルードファイル】 1647 1484 <netinet/in.h> 1648 1485 1649 ãæ©è½ã 1650 IPv4 ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ï¼æååï¼ã«å¤æããããã© 1651 ã¡ã¼ã¿ buf ã«ã¯ãæä½ 16 ãã¤ãã®é åãå¿ 1652 è¦ã§ãããã¾ãã 1653 ãã©ã¡ã¼ã¿ buf ã«ã NULL ãæå®ããã¨ãTINET å 1654 é¨ã§ç¢ºä¿ 1655 ãã¦ãããããã¡ã« IPv4 ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ã«å¤æã 1656 ã¦æ¸ãè¾¼ã¿ããã®ã¢ãã¬ã¹ãè¿ãã ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ 1657 ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_IPADDR_STR_BUFF ã«ãããããã¡ 1658 æ°ãæå®ãããã¨ãåºæ¥ãã ãã ãããããã¡æ°ãè¶ 1659 ãã¦é£ 1660 ç¶çã«å¼åºãã¨ãããã¡ãä¸æ¸ãããã 1661 1662 (10) ITRON TCP/IP API æ©è½ã³ã¼ããæå表ç¾ã«å¤æããé¢æ° 1663 ãC è¨èª APIã 1486 【機能】 1487 IPv4 アドレスをリテラル表現(文字列)に変換する。パラ 1488 メータ buf には、最低 16 バイトの領域が必要である。また、 1489 パラメータ buf に、 NULL を指定すると、TINET 内部で確保 1490 してあるバッファに IPv4 アドレスをリテラル表現に変換し 1491 て書き込み、そのアドレスを返す。 コンパイル時コンフィギュ 1492 レーションパラメータ NUM_IPADDR_STR_BUFF によりバッファ 1493 数を指定することが出来る。 ただし、バッファ数を超えて連 1494 続的に呼出すとバッファを上書きする。 1495 1496 (10) ITRON TCP/IP API 機能コードを文字表現に変換する関数 1497 【C 言語 API】 1664 1498 const char *p_str = in_strtfn (FN fncd); 1665 1499 1666 ããã©ã¡ã¼ã¿ã1667 FN fncd ITRON TCP/IP API æ©è½ã³ã¼ã1668 1669 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã1670 const char str ITRON TCP/IP API æ©è½ã³ã¼ãã®æå表ç¾1671 1672 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã1500 【パラメータ】 1501 FN fncd ITRON TCP/IP API 機能コード 1502 1503 【リターンパラメータ】 1504 const char str ITRON TCP/IP API 機能コードの文字表現 1505 1506 【インクルードファイル】 1673 1507 <netinet/in.h> 1674 1508 1675 ãæ©è½ã1676 ITRON TCP/IP API æ©è½ã³ã¼ããæå表ç¾ã«å¤æããã1677 1678 (11) MAC ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ï¼æååï¼ã«å¤æããé¢æ°1679 ãC è¨èª APIã1509 【機能】 1510 ITRON TCP/IP API 機能コードを文字表現に変換する。 1511 1512 (11) MAC アドレスをリテラル表現(文字列)に変換する関数 1513 【C 言語 API】 1680 1514 char *p_retbuf = mac2str (char *p_buf, uint8_t *p_macaddr); 1681 1515 1682 ããã©ã¡ã¼ã¿ã 1683 char buf ãªãã©ã«è¡¨ç¾ã®MACã¢ãã¬ã¹ãæ ¼ç´ãããããã¡ 1684 uint8_t macaddr MACã¢ãã¬ã¹ 1685 1686 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã 1687 char retbuf ãªãã©ã«è¡¨ç¾ã® MAC ã¢ãã¬ã¹ãæ ¼ç´ããããããã¡ 1688 1689 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã 1690 <sil.h> TOPPERS/ASP ã§ã¯å¿ 1691 è¦ 1516 【パラメータ】 1517 char buf リテラル表現のMACアドレスを格納するバッファ 1518 uint8_t macaddr MACアドレス 1519 1520 【リターンパラメータ】 1521 char retbuf リテラル表現の MAC アドレスが格納されたバッファ 1522 1523 【インクルードファイル】 1524 <sil.h> TOPPERS/ASP では必要 1692 1525 <net/net.h> 1693 1526 1694 ãæ©è½ã 1695 MAC ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ï¼æååï¼ã«å¤æããã ãã© 1696 ã¡ã¼ã¿ buf ã«ã¯ãæä½ 18 ãã¤ãã®é åãå¿ 1697 è¦ã§ãããã¾ãã 1698 ãã©ã¡ã¼ã¿ buf ã«ãNULL ãæå®ããã¨ã TINET å 1699 é¨ã§ç¢ºä¿ 1700 ãã¦ãããããã¡ã« MAC ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ã«å¤æã㦠1701 æ¸ãè¾¼ã¿ã ãã®ã¢ãã¬ã¹ãè¿ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ 1702 ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_MACADDR_STR_BUFF ã«ãããããã¡ 1703 æ°ãæå®ãããã¨ãåºæ¥ãããã ãã ãããã¡æ°ãè¶ 1704 ãã¦é£ 1705 ç¶çã«å¼åºãã¨ãããã¡ãä¸æ¸ãããã 1706 1707 (12) IPv4 ã¢ãã¬ã¹ã IPv6 ã® IPv4 å°å½±ã¢ãã¬ã¹ã«å¤æããé¢æ° 1708 ãC è¨èª APIã 1527 【機能】 1528 MAC アドレスをリテラル表現(文字列)に変換する。 パラ 1529 メータ buf には、最低 18 バイトの領域が必要である。また、 1530 パラメータ buf に、NULL を指定すると、 TINET 内部で確保 1531 してあるバッファに MAC アドレスをリテラル表現に変換して 1532 書き込み、 そのアドレスを返す。コンパイル時コンフィギュ 1533 レーションパラメータ NUM_MACADDR_STR_BUFF によりバッファ 1534 数を指定することが出来る。ただし、 バッファ数を超えて連 1535 続的に呼出すとバッファを上書きする。 1536 1537 (12) IPv4 アドレスを IPv6 の IPv4 射影アドレスに変換する関数 1538 【C 言語 API】 1709 1539 T_IN6_ADDR *p_dstaddr = in6_make_ipv4mapped (T_IN6_ADDR *dst, 1710 1540 T_IN4_ADDR src); 1711 1541 1712 ããã©ã¡ã¼ã¿ã 1713 T_IN6_ADDR *dst æ ¼ç´å 1714 ã®IPv6ã¢ãã¬ã¹å¤æ°ã¸ã®ãã¤ã³ã¿ 1715 T_IN4_ADDR src å¤æããIPv4ã¢ãã¬ã¹ 1716 1717 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã 1718 T_IN6_ADDR *p_dstaddr æ ¼ç´å 1719 ã®IPv6ã¢ãã¬ã¹å¤æ°ã¸ã®ãã¤ã³ã¿ 1720 1721 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã 1542 【パラメータ】 1543 T_IN6_ADDR *dst 格納先のIPv6アドレス変数へのポインタ 1544 T_IN4_ADDR src 変換するIPv4アドレス 1545 1546 【リターンパラメータ】 1547 T_IN6_ADDR *p_dstaddr 格納先のIPv6アドレス変数へのポインタ 1548 1549 【インクルードファイル】 1722 1550 <netinet/in.h> 1723 1551 1724 ãæ©è½ã1725 IPv4 ã¢ãã¬ã¹ã IPv6 ã® IPv4 å°å½±ã¢ãã¬ã¹ã«å¤æããã1726 1727 (13) æå®ãã IPv6 ã¢ãã¬ã¹ã IPv4 å°å½±ã¢ãã¬ã¹ããå¤å®ããé¢æ°1728 ãC è¨èª APIã1552 【機能】 1553 IPv4 アドレスを IPv6 の IPv4 射影アドレスに変換する。 1554 1555 (13) 指定した IPv6 アドレスが IPv4 射影アドレスかを判定する関数 1556 【C 言語 API】 1729 1557 bool_t ret = in6_is_addr_ipv4mapped (const T_IN6_ADDR *addr); 1730 1558 1731 ããã©ã¡ã¼ã¿ã1732 T_IN6_ADDR *p_dstaddr å¤å®ããIPv6ã¢ãã¬ã¹å¤æ°ã¸ã®ãã¤ã³ã¿1733 1734 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã1735 bool_t ret IPv6 ã¢ãã¬ã¹ãIPv4å°å½±ã¢ãã¬ã¹ã§ããã°trueãè¿ãããã1736 1737 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã1559 【パラメータ】 1560 T_IN6_ADDR *p_dstaddr 判定するIPv6アドレス変数へのポインタ 1561 1562 【リターンパラメータ】 1563 bool_t ret IPv6アドレスがIPv4射影アドレスであればtrueが返される。 1564 1565 【インクルードファイル】 1738 1566 <netinet/in.h> 1739 1567 1740 ãæ©è½ã 1741 æå®ãã IPv6 ã¢ãã¬ã¹ã IPv4 å°å½±ã¢ãã¬ã¹ããå¤å®ã 1742 ããIPv6 ã¢ãã¬ã¹ã IPv4 å°å½±ã¢ãã¬ã¹ã§ããã° true ãè¿ 1743 ãããã 1744 1745 (14) IPv6 ã®ç¹æ®ãªã¢ãã¬ã¹ã«å¯¾å¿ããå 1746 ¨åå¤æ° 1747 ãC è¨èª APIã 1568 【機能】 1569 指定した IPv6 アドレスが IPv4 射影アドレスかを判定す 1570 る。IPv6 アドレスが IPv4 射影アドレスであれば true が返 1571 される。 1572 1573 (14) IPv6 の特殊なアドレスに対応する全域変数 1574 【C 言語 API】 1748 1575 const T_IN6_ADDR in6_addr_unspecified; 1749 1576 const T_IN6_ADDR in6_addr_linklocal_allnodes; 1750 1577 const T_IN6_ADDR in6_addr_linklocal_allrouters; 1751 1578 1752 ãæ©è½ã 1753 IPv6 ã§ã¯ãã¢ãã¬ã¹é·ã 128 ãããï¼16 ãã¤ãï¼ã§ãå¤ 1754 ããã¯ãã§å®ç¾©ãããã¨ãã§ããªãããã«ç¨æããå 1755 ¨åå¤æ° 1756 ã§ããã以ä¸ã®ããã«ã ã¡ã¢ãªæä½é¢æ°ãå¼ã³åºãã¦ã³ãã¼ããã 1579 【機能】 1580 IPv6 では、アドレス長が 128 ビット(16 バイト)で、値 1581 をマクロで定義することができないために用意した全域変数 1582 であり、以下のように、 メモリ操作関数を呼び出してコピーする。 1757 1583 memcpy(&myaddr.ipaddr, &in6_addr_unspecified, sizeof(T_IN6_ADDR)); 1758 1584 1759 (15) IPv6 ã® IPV6_ADDRANY ã«å¯¾å¿ããå 1760 ¨åå¤æ° 1761 ãC è¨èª APIã 1585 (15) IPv6 の IPV6_ADDRANY に対応する全域変数 1586 【C 言語 API】 1762 1587 const T_IN6_ADDR ipv6_addrany; 1763 1588 1764 ãæ©è½ã 1765 T_IPV6EP ã® ipaddr ãã£ã¼ã«ãã«ãå¤ IPV4_ADDRANY ã代 1766 å 1767 ¥ããã¨ããIPv4 ã§ã¯ã 1589 【機能】 1590 T_IPV6EP の ipaddr フィールドに、値 IPV4_ADDRANY を代 1591 入するとき、IPv4 では、 1768 1592 myaddr.ipaddr = IPV4_ADDRANY; 1769 1593 1770 ã¨æå®ã§ããããIPv6 ã§ã¯ãåæ§ã®æå®ãã§ããªãããã«ç¨ 1771 æããå 1772 ¨åå¤æ°ã§ããã 以ä¸ã®ããã«ãã¡ã¢ãªæä½é¢æ°ãå¼ 1773 ã³åºãã¦ã³ãã¼ããã 1594 と指定できるが、IPv6 では、同様の指定ができないために用 1595 意した全域変数であり、 以下のように、メモリ操作関数を呼 1596 び出してコピーする。 1774 1597 memcpy(&myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR)); 1775 1598 1776 ãªãããã®å 1777 ¨åå¤æ°ã¯ãã¯ãã§å®ç¾©ãã¦ããã 1778 1779 (16) TINET ã®ãã¼ã¸ã§ã³æ 1780 å ±ãã¯ã 1781 ãC è¨èª APIã 1599 なお、この全域変数はマクロで定義している。 1600 1601 (16) TINET のバージョン情報マクロ 1602 【C 言語 API】 1782 1603 TINET_PRVER 1783 1604 1784 ããããé 1785 åã 1786 ããã12ï½15 ã¡ã¸ã£ã¼ãªãªã¼ã¹ï¼ç¾å¨ã®å¤ã¯1ï¼ 1787 ããã4ï½11 ãã¤ãã¼ãªãªã¼ã¹ï¼ç¾å¨ã®å¤ã¯7ï¼ 1788 ããã3ï½0 ãããã¬ãã«ï¼ç¾å¨ã®å¤ã¯0ï¼ 1789 1790 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã 1605 【ビット配分】 1606 ビット12~15 メジャーリリース(現在の値は1) 1607 ビット4~11 マイナーリリース(現在の値は7) 1608 ビット3~0 パッチレベル(現在の値は0) 1609 1610 【インクルードファイル】 1791 1611 <net/net.h> 1792 1612 1793 (17) 8 ãããæ¯ã«æå®ãã IPv4 ã¢ãã¬ã¹ã 32 ãããã«ãããã¯ã1794 ãC è¨èª APIã1613 (17) 8 ビット毎に指定した IPv4 アドレスを 32 ビットにするマクロ 1614 【C 言語 API】 1795 1615 T_IN4_ADDR addr = MAKE_IPV4_ADDR(uint8_t a, uint8_t b, 1796 1616 uint8_t c, uint8_t d); 1797 1617 1798 ããã©ã¡ã¼ã¿ã1799 uint8_t a IPv4 ã¢ãã¬ã¹ã®ããã24ï½311800 uint8_t b IPv4 ã¢ãã¬ã¹ã®ããã16ï½231801 uint8_t c IPv4 ã¢ãã¬ã¹ã®ããã8ï½151802 uint8_t d IPv4 ã¢ãã¬ã¹ã®ããã0ï½71803 1804 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã1805 T_IN4_ADDR addr 32 ãããã®IPv4ã¢ãã¬ã¹1806 1807 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã1618 【パラメータ】 1619 uint8_t a IPv4アドレスのビット24~31 1620 uint8_t b IPv4アドレスのビット16~23 1621 uint8_t c IPv4アドレスのビット8~15 1622 uint8_t d IPv4アドレスのビット0~7 1623 1624 【リターンパラメータ】 1625 T_IN4_ADDR addr 32ビットのIPv4アドレス 1626 1627 【インクルードファイル】 1808 1628 <netinet/in.h> 1809 1629 1810 ãæ©è½ã 1811 åãªã¯ãããã®å¤ãã IPv4 ã¢ãã¬ã¹ãçæããã 1812 1813 (18) ä¸è¬å®æ°ãã¯ã 1814 1815 TCP_REP_NONE 該å½ãã TCP åä»å£ãç¡ããå¤ã¯ï¼0ï¼ã 1816 TCP_CEP_NONE 該å½ãã TCP é信端ç¹ãç¡ããå¤ã¯ï¼0ï¼ã 1817 UDP_CEP_NONE 該å½ãã UDP é信端ç¹ãç¡ããå¤ã¯ï¼0ï¼ã 1818 1819 7. 4 å¿ç¨ããã°ã©ã ã³ã¼ã«ããã¯é¢æ° 1820 1821 TINET ããå¼åºãããå¿ç¨ããã°ã©ã ã³ã¼ã«ããã¯é¢æ°ã§ãããå¿ç¨ããã° 1822 ã©ã å´ã§ç¨æããå¿ 1823 è¦ãããã 1824 1825 (1) IPv4 ã¢ãã¬ã¹éè¤æ¤åºæã®ã³ã¼ã«ããã¯é¢æ° 1826 ãC è¨èª APIã 1630 【機能】 1631 各オクテットの値から IPv4 アドレスを生成する。 1632 1633 (18) 一般定数マクロ 1634 1635 TCP_REP_NONE 該当する TCP 受付口が無い。値は(0)。 1636 TCP_CEP_NONE 該当する TCP 通信端点が無い。値は(0)。 1637 UDP_CEP_NONE 該当する UDP 通信端点が無い。値は(0)。 1638 1639 7. 4 応用プログラムコールバック関数 1640 1641 TINET から呼出される応用プログラムコールバック関数であり、応用プログ 1642 ラム側で用意する必要がある。 1643 1644 (1) IPv4 アドレス重複検出時のコールバック関数 1645 【C 言語 API】 1827 1646 boot_t reply = arp_callback_duplicated(uint8_t *shost); 1828 1647 1829 ããã©ã¡ã¼ã¿ã1830 uint8_t shost éè¤ç¸æã®MACã¢ãã¬ã¹1831 1832 ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã1833 bool_t reply éè¤ã®éç¥1834 1835 ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã1648 【パラメータ】 1649 uint8_t shost 重複相手のMACアドレス 1650 1651 【リターンパラメータ】 1652 bool_t reply 重複の通知 1653 1654 【インクルードファイル】 1836 1655 <netinet/if_ether.h> 1837 1656 1838 ãã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã1657 【コンパイル時コンフィギュレーションパラメータ】 1839 1658 ARP_CFG_CALLBACK_DUPLICATED 1840 1659 1841 ãæ©è½ã 1842 æ»ãå¤ã« TRUE ãæå®ããã¨ãTINET ã§éè¤ç¸æã® MAC 㢠1843 ãã¬ã¹ã syslog ã«åºåãã éè¤ç¸æã«ãéè¤ãããã¨ãä¼ 1844 ãããFALSE ãæå®ããã¨ä½ãããªãã 1845 1846 8. è¬è¾ 1847 1848 æ¬ TCP/IP ãããã³ã«ã¹ã¿ãã¯ã¯ã次ã®çµç¹ã®çæ§ã®å¾¡æ¯æ´ã«ããç 究ã»é 1849 çºãè¡ãã¾ãããé¢ä¿åä½ã«æè¬ãããã¾ãã 1850 1851 (1) 財å£æ³äººé央ç£æ¥æè¡æ¯èæ©æ§æ§ 1852 1853 [1] äºæ¥åï¼å®æ½å¹´åº¦ï¼ 1854 é«åº¦æè¡éçºå§è¨äºæ¥ï¼å¹³æ 12 å¹´åº¦ï¼ 1855 [2] ãã¼ãå 1856 çµè¾¼ã¿åå¶å¾¡ã·ã¹ãã ç¨ TCP/IP ãããã³ã«ã¹ã¿ãã¯ã®éçº 1857 1858 (2) æ ªå¼ä¼ç¤¾ NTT ãã³ã¢åæµ·éè«å°ç§æ¯åºæ§ 1859 (3) çµæ¸ç£æ¥çæ±åçµæ¸ç£æ¥å±ï¼å§è¨å 1860 管çæ³äºº: 財å£æ³äººã¿ããç£æ¥ 1861 æ¯èæ©æ§ï¼æ§ 1862 1863 [1] äºæ¥åï¼å®æ½å¹´åº¦ï¼ 1864 å°åæ°çã³ã³ã½ã¼ã·ã¢ã ç 究éçºäºæ¥ï¼å¹³æ14年度ï½15å¹´åº¦ï¼ 1865 [2] ãã¼ãå 1866 çµè¾¼ã¿ã·ã¹ãã ã»ãªã¼ãã³ãã©ãããã¼ã ã®æ§ç¯ã¨ãã®å®ç¨åéçº 1867 1868 (4) å®®åçç£æ¥æè¡ç·åã»ã³ã¿ã¼æ§ 1869 (5) TOPPERS ããã¸ã§ã¯ãæ§ 1870 (6) æ ªå¼ä¼ç¤¾ã´ã£ããæ§ 1871 (7) 財å£æ³äººé»æ°ã»é»åæ 1872 å ±å¦è¡æ¯è財å£æ§ 1873 1874 [1] 第 6 å LSI IP ãã¶ã¤ã³ã»ã¢ã¯ã¼ã IP åè³ 1875 ï¼2004 å¹´ã å¹³æ 16 å¹´ 5 æ 20 æ¥ï¼ 1876 ãªã¼ãã³ã½ã¼ã¹ã®çµè¾¼ã¿ã·ã¹ãã ç¨ TCP/IP 1877 ãããã³ã«ã¹ã¿ã㯠: TINET 1878 [2] 第 7 å LSI IP ãã¶ã¤ã³ã»ã¢ã¯ã¼ã IP åè³ 1879 ï¼2005 å¹´ã å¹³æ 17 å¹´ 5 æ 19 æ¥ï¼ 1880 çµè¾¼ã¿ã·ã¹ãã ç¨ IP ãã¼ã¸ã§ã³ 6 å¯¾å¿ TCP/IP 1881 ãããã³ã«ã¹ã¿ã㯠: TINET-1.2 1882 1883 (8) æ ªå¼ä¼ç¤¾åæé»åæ§ 1884 (9) æéä¼ç¤¾åå·éä¿¡è¨è£ 1885 ãµã¼ãã¹æ§ 1886 (10) åæµ·éç«å·¥æ¥è©¦é¨å ´æ§ 1887 1888 [1] äºæ¥åï¼å®æ½å¹´åº¦ï¼ 1889 éç¹é åç¹å¥ç 究ï¼å¹³æ 17 å¹´åº¦ï½ 18 å¹´åº¦ï¼ 1890 [2] ãã¼ãå 1891 çµè¾¼ã¿ã·ã¹ãã åããããã¯ã¼ã¯æ¥ç¶ã½ããã¦ã§ã¢ç¾¤ã®éçº 1892 1893 (11) ç·åçåæµ·éç·åéä¿¡å±æ§ 1894 1895 [1] äºæ¥åï¼å®æ½å¹´åº¦ï¼ 1896 æ¦ç¥çæ 1897 å ±éä¿¡ç 究éçºæ¨é²å¶åº¦ãSCOPEããå°å ICT æ¯è 1898 åç 究éçºãï¼å¹³æ 22 年度ï½å¹³æ 23 å¹´åº¦ï¼ 1899 [2] ãã¼ãå 1900 ã¦ããã¿ã¹ãµã¼ãã¹ãã©ãããã©ã¼ã ã«å¯¾å¿ããçµè¾¼ã¿ã·ã¹ 1901 ãã ç¨ TCP/IP ãããã³ã«ã¹ã¿ãã¯ã¨ãµãã¼ãã·ã¹ãã ã®ç 究éçº 1902 1903 (12) ã«ããµã¹ã¨ã¬ã¯ãããã¯ã¹æ ªå¼ä¼ç¤¾æ§ 1904 1905 (13) çµæ¸ç£æ¥çåæµ·éçµæ¸ç£æ¥å±æ§ 1906 1907 [1] äºæ¥åï¼å®æ½å¹´åº¦ï¼ 1908 ä¸å°ä¼æ¥çµå¶æ¯æ´ç対çè²»è£å©éãæ¦ç¥çåºç¤æè¡é«åº¦åæ¯æ´äºæ¥ã 1909 ï¼å¹³æ 26 年度ï½å¹³æ 28 å¹´åº¦ï¼ 1910 [2] ãã¼ãå 1911 è¾²æ¥æ©æ¢°ã®ãããªãé«åº¦åã¨æµ·å¤é²åºã«è³ãã 1912 次ä¸ä»£é»åå¶å¾¡ã½ããã¦ã§ã¢åºç¤ã®éçº 1913 1914 9. ã©ã¤ã»ã³ã¹ 1915 1916 TINET 㯠FreeBSD ãå 1917 ã«éçºãè¡ã£ãããã TINET ãå«ãã½ããã¦ã§ã¢ãã 1918 ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ç¨ã§ããªãå½¢ã§åé 1919 å¸ããå ´åï¼TOPPERS ã©ã¤ã»ã³ 1920 ã¹ (3) ã«è¦ç¨ããã¦ããå½¢æ 1921 ï¼ã¯ã TOPPERS ã©ã¤ã»ã³ã¹ (3) ã® (b) ã®å ±å 1922 ã ãã§ã¯ä¸ååã§ã(a) ã«ããæ¹æ³ãå¿ 1923 è¦ã§ããã 1924 以ä¸ã«ç¤ºã TOPPERSã FreeBSD ããã³ FreeBSD ã¸ã®ã½ããã¦ã§ã¢ã®å¯è´è 1925 1926 ã®ã©ã¤ã»ã³ã¹è¦å®ã«å¾ã£ã¦ãåé 1927 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 1928 ããã¥ã¢ã«ãª 1929 ã©ï¼ã«ãã©ã¤ã»ã³ã¹è¡¨ç¤ºãè¡ãã¨ã 1660 【機能】 1661 戻り値に TRUE を指定すると、TINET で重複相手の MAC ア 1662 ドレスを syslog に出力し、 重複相手にも重複したことを伝 1663 える。FALSE を指定すると何もしない。 1664 1665 8. 謝辞 1666 1667 本 TCP/IP プロトコルスタックは、次の組織の皆様の御支援により研究・開 1668 発を行いました。関係各位に感謝いたします。 1669 1670 (1) 財団法人道央産業技術振興機構様 1671 1672 [1] 事業名(実施年度) 1673 高度技術開発委託事業(平成 12 年度) 1674 [2] テーマ名 1675 組込み型制御システム用 TCP/IP プロトコルスタックの開発 1676 1677 (2) 株式会社 NTT ドコモ北海道苫小牧支店様 1678 (3) 経済産業省東北経済産業局(委託先管理法人: 財団法人みやぎ産業 1679 振興機構)様 1680 1681 [1] 事業名(実施年度) 1682 地域新生コンソーシアム研究開発事業(平成14年度~15年度) 1683 [2] テーマ名 1684 組込みシステム・オープンプラットホームの構築とその実用化開発 1685 1686 (4) 宮城県産業技術総合センター様 1687 (5) TOPPERS プロジェクト様 1688 (6) 株式会社ヴィッツ様 1689 (7) 財団法人電気・電子情報学術振興財団様 1690 1691 [1] 第 6 回 LSI IP デザイン・アワード IP 受賞 1692 (2004 年、 平成 16 年 5 月 20 日) 1693 オープンソースの組込みシステム用 TCP/IP 1694 プロトコルスタック : TINET 1695 [2] 第 7 回 LSI IP デザイン・アワード IP 受賞 1696 (2005 年、 平成 17 年 5 月 19 日) 1697 組込みシステム用 IP バージョン 6 対応 TCP/IP 1698 プロトコルスタック : TINET-1.2 1699 1700 (8) 株式会社北斗電子様 1701 (9) 有限会社品川通信計装サービス様 1702 (10) 北海道立工業試験場様 1703 1704 [1] 事業名(実施年度) 1705 重点領域特別研究(平成 17 年度~ 18 年度) 1706 [2] テーマ名 1707 組込みシステム向けネットワーク接続ソフトウェア群の開発 1708 1709 (11) 総務省北海道総合通信局様 1710 1711 [1] 事業名(実施年度) 1712 戦略的情報通信研究開発推進制度【SCOPE】「地域 ICT 振興 1713 型研究開発」(平成 22 年度~平成 23 年度) 1714 [2] テーマ名 1715 ユビキタスサービスプラットフォームに対応した組込みシス 1716 テム用 TCP/IP プロトコルスタックとサポートシステムの研究開発 1717 1718 (12) ルネサスエレクトロニクス株式会社様 1719 1720 (13) 経済産業省北海道経済産業局様 1721 1722 [1] 事業名(実施年度) 1723 中小企業経営支援等対策費補助金「戦略的基盤技術高度化支援事業」 1724 (平成 26 年度~平成 28 年度) 1725 [2] テーマ名 1726 農業機械のさらなる高度化と海外進出に資する 1727 次世代電子制御ソフトウェア基盤の開発 1728 1729 9. ライセンス 1730 1731 TINET は FreeBSD を元に開発を行ったため、 TINET を含むソフトウェアを、 1732 他のソフトウェア開発に使用できない形で再配布する場合(TOPPERS ライセン 1733 ス (3) に規程されている形態)は、 TOPPERS ライセンス (3) の (b) の報告 1734 だけでは不十分で、(a) による方法が必要である。 1735 以下に示す TOPPERS、 FreeBSD および FreeBSD へのソフトウェアの寄贈者 1736 のライセンス規定に従って、再配布に伴うドキュメント(利用者マニュアルな 1737 ど)に、ライセンス表示を行うと。 1930 1738 1931 1739 (1)FreeBSD … … 1995 1803 */ 1996 1804 1997 (3) ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ã1805 (3)イーサネット・ディバイスドライバ 1998 1806 1999 1807 /* … … 2091 1899 * Graduate School of Information Science, Nagoya Univ., JAPAN 2092 1900 * 2093 * ä¸è¨èä½æ¨©è 2094 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 2095 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 2096 * å¤ã»åé 2097 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 2098 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 2099 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 2100 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 2101 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 2102 * ç¨ã§ããå½¢ã§åé 2103 å¸ããå ´åã«ã¯ï¼åé 2104 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 2105 * è 2106 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 2107 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 2108 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 2109 * ç¨ã§ããªãå½¢ã§åé 2110 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 2111 * ã¨ï¼ 2112 * (a) åé 2113 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 2114 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 2115 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 2116 * (b) åé 2117 å¸ã®å½¢æ 2118 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 2119 * å ±åãããã¨ï¼ 2120 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 2121 * 害ãããï¼ä¸è¨èä½æ¨©è 2122 ããã³TOPPERSããã¸ã§ã¯ããå 2123 責ãããã¨ï¼ 2124 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 2125 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 2126 ããã³TOPPERSããã¸ã§ã¯ãã 2127 * å 2128 責ãããã¨ï¼ 1901 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 1902 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 1903 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 1904 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 1905 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 1906 * スコード中に含まれていること. 1907 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 1908 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 1909 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 1910 * の無保証規定を掲載すること. 1911 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 1912 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 1913 * と. 1914 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 1915 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 1916 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 1917 * 報告すること. 1918 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 1919 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 1920 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 1921 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 1922 * 免責すること. 2129 1923 * 2130 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 2131 ã 2132 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 2133 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 2134 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 2135 * ã®è²¬ä»»ãè² ããªãï¼ 1924 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 1925 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 1926 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 1927 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 1928 * の責任を負わない. 2136 1929 * 2137 1930 * $Id$ … … 2150 1943 * Graduate School of Information Science, Nagoya Univ., JAPAN 2151 1944 * 2152 * ä¸è¨èä½æ¨©è 2153 ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 2154 * ã«ãã£ã¦å 2155 ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨ 2156 * è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢ 2157 * ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé 2158 å¸ï¼ä»¥ä¸ï¼ 2159 * å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 2160 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 2161 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 2162 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 2163 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 2164 * ç¨ã§ããå½¢ã§åé 2165 å¸ããå ´åã«ã¯ï¼åé 2166 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 2167 * è 2168 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 2169 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 2170 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 2171 * ç¨ã§ããªãå½¢ã§åé 2172 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 2173 * ã¨ï¼ 2174 * (a) åé 2175 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 2176 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 2177 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 2178 * (b) åé 2179 å¸ã®å½¢æ 2180 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 2181 * å ±åãããã¨ï¼ 2182 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 2183 * 害ãããï¼ä¸è¨èä½æ¨©è 2184 ããã³TOPPERSããã¸ã§ã¯ããå 2185 責ãããã¨ï¼ 1945 * 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation 1946 * によって公表されている GNU General Public License の Version 2 に記 1947 * 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア 1948 * を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下, 1949 * 利用と呼ぶ)することを無償で許諾する. 1950 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 1951 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 1952 * スコード中に含まれていること. 1953 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 1954 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 1955 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 1956 * の無保証規定を掲載すること. 1957 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 1958 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 1959 * と. 1960 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 1961 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 1962 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 1963 * 報告すること. 1964 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 1965 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 2186 1966 * 2187 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 2188 ã 2189 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 2190 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 2191 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 1967 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 1968 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 1969 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 1970 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 2192 1971 * 2193 1972 * @(#) $Id$ … … 2202 1981 * Copyright (C) 2007-2012 by TAKAGI Nobuhisa 2203 1982 * 2204 * ä¸è¨èä½æ¨©è 2205 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 2206 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 2207 * å¤ã»åé 2208 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 2209 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 2210 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 2211 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 2212 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 2213 * ç¨ã§ããå½¢ã§åé 2214 å¸ããå ´åã«ã¯ï¼åé 2215 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 2216 * è 2217 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 2218 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 2219 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 2220 * ç¨ã§ããªãå½¢ã§åé 2221 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 2222 * ã¨ï¼ 2223 * (a) åé 2224 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 2225 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 2226 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 2227 * (b) åé 2228 å¸ã®å½¢æ 2229 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 2230 * å ±åãããã¨ï¼ 2231 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 2232 * 害ãããï¼ä¸è¨èä½æ¨©è 2233 ããã³TOPPERSããã¸ã§ã¯ããå 2234 責ãããã¨ï¼ 2235 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 2236 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 2237 ããã³TOPPERSããã¸ã§ã¯ãã 2238 * å 2239 責ãããã¨ï¼ 1983 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 1984 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 1985 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 1986 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 1987 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 1988 * スコード中に含まれていること. 1989 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 1990 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 1991 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 1992 * の無保証規定を掲載すること. 1993 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 1994 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 1995 * と. 1996 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 1997 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 1998 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 1999 * 報告すること. 2000 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 2001 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 2002 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 2003 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 2004 * 免責すること. 2240 2005 * 2241 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 2242 ã 2243 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 2244 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 2245 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 2246 * ã®è²¬ä»»ãè² ããªãï¼ 2006 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 2007 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 2008 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 2009 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 2010 * の責任を負わない. 2247 2011 * 2248 2012 */ … … 2256 2020 * Tomakomai National College of Technology, JAPAN 2257 2021 * 2258 * ä¸è¨èä½æ¨©è 2259 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 2260 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 2261 * å¤ã»åé 2262 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 2263 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 2264 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 2265 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 2266 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 2267 * ç¨ã§ããå½¢ã§åé 2268 å¸ããå ´åã«ã¯ï¼åé 2269 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 2270 * è 2271 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 2272 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 2273 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 2274 * ç¨ã§ããªãå½¢ã§åé 2275 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 2276 * ã¨ï¼ 2277 * (a) åé 2278 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 2279 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 2280 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 2281 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 2282 * 害ãããï¼ä¸è¨èä½æ¨©è 2283 ããã³TOPPERSããã¸ã§ã¯ããå 2284 責ãããã¨ï¼ 2285 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 2286 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 2287 ããã³TOPPERSããã¸ã§ã¯ãã 2288 * å 2289 責ãããã¨ï¼ 2022 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 2023 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 2024 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 2025 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 2026 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 2027 * スコード中に含まれていること. 2028 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 2029 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 2030 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 2031 * の無保証規定を掲載すること. 2032 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 2033 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 2034 * と. 2035 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 2036 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 2037 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 2038 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 2039 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 2040 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 2041 * 免責すること. 2290 2042 * 2291 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 2292 ã 2293 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 2294 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 2295 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 2296 * ã®è²¬ä»»ãè² ããªãï¼ 2043 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 2044 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 2045 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 2046 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 2047 * の責任を負わない. 2297 2048 * 2298 2049 * @(#) $Id$ -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_chg.txt
-
Property svn:mime-type
changed from
text/plain
totext/plane; charset=UTF-8
r313 r315 1 TINET å¤æ´ã¡ã¢ [2017/4/5] 2 3 1. ãªãªã¼ã¹ 1.5.x ãã 1.7 ã¾ã§ã®å¤æ´ 4 5 (1) IPv6/IPv4 ãã¥ã¢ã«ã¹ã¿ãã¯åãè¡ã£ãããªãªã¼ã¹ 1.7 以åã§ã¯ã 6 Makefile ã§ã ãããã¯ã¼ã¯å±¤ã®é¸æ㯠SUPPORT_INET6 㨠7 SUPPORT_INET4 ã®æå®ã¯ä½ããä¸ã¤ã®ã¿é¸æã§ãããã ãªãªã¼ã¹ 8 1.7 ãã㯠SUPPORT_INET6 㨠SUPPORT_INET4 ã®ä¸¡æ¹ãæå®ã§ãã 9 ããã«ãªã£ãã 10 11 (2) IPv6 ã«å¯¾å¿ããã¢ããªã±ã¼ã·ã§ã³ã§ IPv4 å°å½±ã¢ãã¬ã¹ãå©ç¨ãã¦ã 12 IPv4 ãã¼ã¿ã°ã©ã ãæ±ãå ´åã«æå®ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ 13 ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ API_CFG_IP4MAPPED_ADDR ã追å ããã 14 15 (3) IPv6/IPv4 ãã¥ã¢ã«ã¹ã¿ãã¯åã®ãããMakefile.tinet ã§ã¯ãIPv6 16 å°ç¨ã¢ã¸ã¥ã¼ã«ã¨ IPv4 å°ç¨ã¢ã¸ã¥ã¼ã«ã®åºå¥ãããã å 17 ¨ã¦ã³ã³ã 18 ã¤ã«ããããã«å¤æ´ããã 19 20 (4) IPv6/IPv4 ãã¥ã¢ã«ã¹ã¿ãã¯åã®ããã IPv6 å°ç¨ã¢ã¸ã¥ã¼ã«ã¨ 21 IPv4 å°ç¨ã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã¤ã«ã®æå¹ã»ç¡å¹ãã½ã¼ã¹ã³ã¼ãã§è¡ 22 ãããã«å¤æ´ããã 23 24 (5) IPv6/IPv4 ãã¥ã¢ã«ã¹ã¿ãã¯å㨠IPv4 å°å½±ã¢ãã¬ã¹ã®å®è£ 25 ã®ããã 26 IPv6 å°ç¨ã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã¤ã«ãæå¹ã«ãããã¯ã _IP6_CFG ã¨ã 27 IPv4 å°ç¨ã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã¤ã«ãæå¹ã«ãããã¯ã _IP4_CFG ã 28 追å ããã以ä¸ã«è¨å®ããæ¡ä»¶ã示ãã 1 TINET 変更メモ [2017/4/5] 2 3 1. リリース 1.5.x から 1.7 までの変更 4 5 (1) IPv6/IPv4 デュアルスタック化を行った。リリース 1.7 以前では、 6 Makefile で、 ネットワーク層の選択は SUPPORT_INET6 と 7 SUPPORT_INET4 の指定は何れか一つのみ選択できたが、 リリース 8 1.7 からは SUPPORT_INET6 と SUPPORT_INET4 の両方を指定できる 9 ようになった。 10 11 (2) IPv6 に対応するアプリケーションで IPv4 射影アドレスを利用して、 12 IPv4 データグラムを扱う場合に指定するコンパイル時コンフィギュ 13 レーションパラメータ API_CFG_IP4MAPPED_ADDR を追加した。 14 15 (3) IPv6/IPv4 デュアルスタック化のため、Makefile.tinet では、IPv6 16 専用モジュールと IPv4 専用モジュールの区別をせず、 全てコンパ 17 イルするように変更した。 18 19 (4) IPv6/IPv4 デュアルスタック化のため、 IPv6 専用モジュールと 20 IPv4 専用モジュールのコンパイルの有効・無効をソースコードで行 21 うように変更した。 22 23 (5) IPv6/IPv4 デュアルスタック化と IPv4 射影アドレスの実装のため、 24 IPv6 専用モジュールのコンパイルを有効にするマクロ _IP6_CFG と、 25 IPv4 専用モジュールのコンパイルを有効にするマクロ _IP4_CFG を 26 追加した。以下に設定する条件を示す。 29 27 30 28 SUPPORT_INET6 . . ON ON ON ON … … 35 33 _IP4_CFG ON ON . ON ON ON 36 34 37 (6) çµè·¯é¸æã«é¢ããå¤æ´ã以ä¸ã«ç¤ºãã 38 39 [1] route_cfg.c ã® IPv6 ç¨ã® routing_tbl ã routing6_tbl ã« 40 å¤æ´ããã 41 [2] route_cfg.c ã® IPv4 ç¨ã® routing_tbl ã routing4_tbl ã« 42 å¤æ´ããã 43 [3] NUM_STATIC_ROUTE_ENTRY ãã IPv6 ã§ã¯ 44 NUM_IN6_STATIC_ROUTE_ENTRYã IPv4 ã§ã¯ 45 NUM_IN4_STATIC_ROUTE_ENTRY ã¨åå¥ã«å®ç¾©ããããã«å¤æ´ããã 46 [4] NUM_REDIRECT_ROUTE_ENTRY ãã IPv6 ã§ã¯ 47 NUM_IN6_REDIRECT_ROUTE_ENTRYã IPv4 ã§ã¯ 48 NUM_IN4_REDIRECT_ROUTE_ENTRY ã¨åå¥ã«å®ç¾©ããããã«å¤æ´ããã 49 50 (7) if_ed.c ã§ãåä¿¡ãããã¬ã¼ã å½¢å¼ã«é¢ããå¤æ´ã以ä¸ã«ç¤ºãã 51 52 [1] SUPPORT_INET6 㨠SUPPORT_INET4 ãæå®ããã¨ãã¯ãèªåã® 53 ä»ã«ã ããã¼ããã£ã¹ãã¨ãã«ããã£ã¹ããåä¿¡ããããã« 54 è¨å®ããã 55 [2] SUPPORT_INET6 ã®ã¿æå®ããæã¯ãèªåã®ä»ã«ã ãã«ãã㣠56 ã¹ãã®ã¿åä¿¡ããããã«è¨å®ããã 57 [3] SUPPORT_INET4 ã®ã¿æå®ããæã¯ã èªåã®ä»ã«ãããã¼ãã㣠58 ã¹ãã®ã¿åä¿¡ããããã«è¨å®ããã 59 60 (8) TCP é信端ç¹ã«é¢ããå¤æ´ã以ä¸ã«ç¤ºãã 61 62 [1] TCP é信端ç¹ã®å®ç¾©ã¯ãTINET å 63 é¨ã®å®è£ 64 ä¸ã IPv6 㨠IPv4 65 ã§åºå¥ããªãããã«å¤æ´ããã 66 [2] TCP é信端ç¹æ§é ä½ã®å¤§å 67 ã®å®ç¾©ã¯ã t_tcp_cep 㨠68 T_TCP_CEP ã§ããã 69 [3] TCP é信端ç¹æ§é ä½ã®å®ç¾©ã§ãã IPv6 ç¨ã® T_TCP6_CEP 㨠70 IPv4 ç¨ã® T_TCP4_CEP ã¯ããã¯ãã§å®ç¾©ãã¦ããã 71 [4] éç API ã® CRE6_TCP_CEP 㨠CRE_TCP_CEP ã«ãã£ã¦å®ç¾©ã 72 ã TCP é信端ç¹ã¯ãå®ç¾©ä¸å¥ã®ãªãã¸ã§ã¯ãã¨ãã¦èå¥ãã 73 ããTCP éä¿¡ç«¯ç¹ ID ã®å¤ã¯é£ç¶ãã¦å²å½ã¦ãã TCP é信端 74 ç¹ ID ã®å¤ã®å²å½ã¦é çªã以ä¸ã«ç¤ºãã 75 76 ã»IPv6 ç¨ã® TCP é信端ç¹ãå²å½ã¦ãéç API ã® 77 TCP6_CRE_CEPã 78 ã»IPv6 ç¨ã® TCP é信端ç¹ã®äºç´ ID ãå²å½ã¦ãéç API ã® 79 VRID_TCP6_CEPã 80 ã»IPv4 ç¨ã® TCP é信端ç¹ãå²å½ã¦ãéç API ã® 81 TCP_CRE_CEPã 82 ã»IPv4 ç¨ã® TCP é信端ç¹ã®äºç´ ID ãå²å½ã¦ãéç API ã® 83 VRID_TCP_CEPã 84 85 [5] TCP é信端ç¹é 86 å tcp_cep ã§ã¯ã IPv6 ç¨ã¨ IPv4 ç¨ãåºå¥ 87 ããªãããªããIPv4 ç¨ã® T_TCP4_CEP ã«ãã£ã¦å®ç¾©ãã TCP 88 é信端ç¹ã®ã¨ã³ããªã®ã¡ã³ã flagsï¼é信端ç¹ãã©ã°ã 89 netinet/tcp_var.h åç 90 §ï¼ã«ã¯ TCP_CEP_FLG_IPV4 ãä»å ããã 91 [6] TCP éä¿¡ç«¯ç¹ ID ã®æ大å¤ã表ãå¤æ° tmax_tcp_cep 㯠IPv6 92 㨠IPv4 ã®åè¨ï¼æ£ç¢ºã«ã¯ tinet_cfg.c ã®å®ç¾©ãåç 93 §ï¼ã§ã 94 ãã ã¾ãã IPv6 ç¨ã® tmax_tcp6_cep 㨠IPv4 ç¨ã® 95 tmax_tcp4_cep ã tinet_cfg.c ã«åºåããSUPPORT_INET6 㨠96 SUPPORT_INET4 ã®ä¸¡æ¹ãæå®ããå ´åã«æå¹ã«ãªãã 97 [7] TCP é信端ç¹æ°ã表ããã¯ã TNUM_TCP_CEPID ã«é¢ãã¦ã 98 IPv6 ç¨ã® TNUM_TCP6_CEPID 㨠IPv4 ç¨ã® TNUM_TCP4_CEPID 99 ã®å®ç¾©ã追å ãã tinet_cfg.hï¼TOPPERS/ASPï¼ãtinet_id.h 100 ï¼TOPPERS/JSPï¼ã«åºåããã 101 [8] 以ä¸ã® API ã§ã¯ãIPv6 ç¨ã® TCP éä¿¡ç«¯ç¹ ID 㨠IPv4 ç¨ã® 102 TCP éä¿¡ç«¯ç¹ ID ãåºå¥ãã¦æå®ããªããã°ãªããªãã ç°ãª 103 ã TCP éä¿¡ç«¯ç¹ ID ãæå®ãããå ´åã¯ãã¨ã©ã¼ E_ID ãè¿ãã 104 105 ã»tcp_acp_cep 106 ã»tcp_con_cep 107 ã»tcp6_acp_cep 108 ã»tcp6_con_cep 109 110 (9) TCP åä»å£ã«é¢ããå¤æ´ã以ä¸ã«ç¤ºãã 111 112 [1] TCP åä»å£é 113 å tcp_rep ã¯ã SUPPORT_INET6 㨠114 SUPPORT_INET4 ã®æå®ã«ããã ãã¯ãã§å®ç¾©ãã IPv6 ç¨ã® 115 tcp6_rep 㨠IPv4 ç¨ã® tcp4_rep ãåå¥ã«å²å½ã¦ãã 116 [2] TCP åä»å£ ID ã®æ大å¤ã表ãå¤æ° tmax_tcp_rep 㯠IPv6 117 㨠IPv4 ã®åè¨ï¼æ£ç¢ºã«ã¯ tinet_cfg.c ã®å®ç¾©ãåç 118 §ï¼ã§ã 119 ãã ã¾ãã IPv6 ç¨ã® tmax_tcp6_rep 㨠IPv4 ç¨ã® 120 tmax_tcp4_rep ã tinet_cfg.c ã«åºåããSUPPORT_INET6 㨠121 SUPPORT_INET4 ã®ä¸¡æ¹ãæå®ããå ´åã«æå¹ã«ãªãã ãã¯ã 122 ã§å®ç¾©ããã 123 [3] TCP é信端ç¹æ°ã表ããã¯ã TNUM_TCP_REPID ã«é¢ãã¦ã 124 IPv6 ç¨ã® TNUM_TCP6_REPID 㨠IPv4 ç¨ã® TNUM_TCP4_REPID 125 ã®å®ç¾©ã追å ãã tinet_cfg.hï¼TOPPERS/ASPï¼ãtinet_id.h 126 ï¼TOPPERS/JSPï¼ã«åºåããã ããã«ä¼´ãã 127 TCP_CFG_PASSIVE_OPEN ã®æå®ã¯ä¸è¦ã«ãªã£ãã 128 129 (10) UDP é信端ç¹ã«é¢ããå¤æ´ã以ä¸ã«ç¤ºãã 130 131 [1] UDP é信端ç¹é 132 å udp_cep ã¯ã SUPPORT_INET6 㨠133 SUPPORT_INET4 ã®æå®ã«ããã ãã¯ãã§å®ç¾©ãã IPv6 ç¨ã® 134 udp6_cep 㨠IPv4 ç¨ã® udp4_cep ãåå¥ã«å²å½ã¦ãã 135 [2] UDP éä¿¡ç«¯ç¹ ID ã®æ大å¤ã表ãå¤æ° tmax_tcp_rep 㯠IPv6 136 㨠IPv4 ã®åè¨ï¼æ£ç¢ºã«ã¯ tinet_cfg.c ã®å®ç¾©ãåç 137 §ï¼ã§ã 138 ãã ã¾ãã IPv6 ç¨ã® tmax_udp6_cep 㨠IPv4 ç¨ã® 139 tmax_udp4_cep ã tinet_cfg.c ã«åºåããSUPPORT_INET6 㨠140 SUPPORT_INET4 ã®ä¸¡æ¹ãæå®ããå ´åã«æå¹ã«ãªãã ãã¯ã 141 ã§å®ç¾©ããã 142 [3] UDP é信端ç¹æ°ã表ããã¯ã TNUM_UDP_REPID ã«é¢ãã¦ã 143 IPv6 ç¨ã® TNUM_UDP6_REPID 㨠IPv4 ç¨ã® TNUM_UDP4_REPID 144 ã®å®ç¾©ã追å ãã tinet_cfg.hï¼TOPPERS/ASPï¼ãtinet_id.h 145 ï¼TOPPERS/JSPï¼ã«åºåããã 146 [4] SEM_UDP_CEP_LOCK<n> ã«é¢ãã¦ã 147 IPv6 ç¨ã® SEM_UDP6_CEP_LOCK<n> 㨠IPv4 ç¨ã® 148 SEM_UDP4_CEP_LOCK<n> ã«å¤æ´ããã 149 [5] DTQ_UDP_RCVQ<n> ã«é¢ãã¦ã 150 IPv6 ç¨ã® DTQ_UDP6_RCVQ<n> 㨠IPv4 ç¨ã® 151 DTQ_UDP4_RCVQ<n> ã«å¤æ´ããã 152 [6] IPv6/IPv4 ãã¥ã¢ã«ã¹ã¿ãã¯åã«ä¼´ããIPv6 㨠IPv4 ã§å 153 ±é 154 ã«ä½¿ç¨ãããé¢æ°çããã¯ãã®è¨å®ã§åãæ¿ããã½ã¼ã¹ãã¡ 155 ã¤ã«ã追å ããã 以ä¸ã«ã½ã¼ã¹ãã¡ã¤ã«ã®ä¸è¦§ã示ãã 35 (6) 経路選択に関する変更を以下に示す。 36 37 [1] route_cfg.c の IPv6 用の routing_tbl を routing6_tbl に 38 変更した。 39 [2] route_cfg.c の IPv4 用の routing_tbl を routing4_tbl に 40 変更した。 41 [3] NUM_STATIC_ROUTE_ENTRY を、 IPv6 では 42 NUM_IN6_STATIC_ROUTE_ENTRY、 IPv4 では 43 NUM_IN4_STATIC_ROUTE_ENTRY と個別に定義するように変更した。 44 [4] NUM_REDIRECT_ROUTE_ENTRY を、 IPv6 では 45 NUM_IN6_REDIRECT_ROUTE_ENTRY、 IPv4 では 46 NUM_IN4_REDIRECT_ROUTE_ENTRY と個別に定義するように変更した。 47 48 (7) if_ed.c で、受信するフレーム形式に関する変更を以下に示す。 49 50 [1] SUPPORT_INET6 と SUPPORT_INET4 を指定したときは、自分の 51 他に、 ブロードキャストとマルチキャストを受信するように 52 設定する。 53 [2] SUPPORT_INET6 のみ指定した時は、自分の他に、 マルチキャ 54 ストのみ受信するように設定する。 55 [3] SUPPORT_INET4 のみ指定した時は、 自分の他に、ブロードキャ 56 ストのみ受信するように設定する。 57 58 (8) TCP 通信端点に関する変更を以下に示す。 59 60 [1] TCP 通信端点の定義は、TINET 内部の実装上、 IPv6 と IPv4 61 で区別しないように変更した。 62 [2] TCP 通信端点構造体の大元の定義は、 t_tcp_cep と 63 T_TCP_CEP である。 64 [3] TCP 通信端点構造体の定義である IPv6 用の T_TCP6_CEP と 65 IPv4 用の T_TCP4_CEP は、マクロで定義している。 66 [4] 静的 API の CRE6_TCP_CEP と CRE_TCP_CEP によって定義す 67 る TCP 通信端点は、定義上別のオブジェクトとして識別する 68 が、TCP 通信端点 ID の値は連続して割当てる。 TCP 通信端 69 点 ID の値の割当て順番を以下に示す。 70 71 ・IPv6 用の TCP 通信端点を割当てる静的 API の 72 TCP6_CRE_CEP。 73 ・IPv6 用の TCP 通信端点の予約 ID を割当てる静的 API の 74 VRID_TCP6_CEP。 75 ・IPv4 用の TCP 通信端点を割当てる静的 API の 76 TCP_CRE_CEP。 77 ・IPv4 用の TCP 通信端点の予約 ID を割当てる静的 API の 78 VRID_TCP_CEP。 79 80 [5] TCP 通信端点配列 tcp_cep では、 IPv6 用と IPv4 用を区別 81 しない。なお、IPv4 用の T_TCP4_CEP によって定義する TCP 82 通信端点のエントリのメンバ flags(通信端点フラグ、 83 netinet/tcp_var.h 参照)には TCP_CEP_FLG_IPV4 を付加する。 84 [6] TCP 通信端点 ID の最大値を表す変数 tmax_tcp_cep は IPv6 85 と IPv4 の合計(正確には tinet_cfg.c の定義を参照)であ 86 る。 また、 IPv6 用の tmax_tcp6_cep と IPv4 用の 87 tmax_tcp4_cep も tinet_cfg.c に出力し、SUPPORT_INET6 と 88 SUPPORT_INET4 の両方を指定した場合に有効になる。 89 [7] TCP 通信端点数を表すマクロ TNUM_TCP_CEPID に関して、 90 IPv6 用の TNUM_TCP6_CEPID と IPv4 用の TNUM_TCP4_CEPID 91 の定義も追加し、 tinet_cfg.h(TOPPERS/ASP)、tinet_id.h 92 (TOPPERS/JSP)に出力する。 93 [8] 以下の API では、IPv6 用の TCP 通信端点 ID と IPv4 用の 94 TCP 通信端点 ID を区別して指定しなければならない。 異な 95 る TCP 通信端点 ID が指定された場合は、エラー E_ID を返す。 96 97 ・tcp_acp_cep 98 ・tcp_con_cep 99 ・tcp6_acp_cep 100 ・tcp6_con_cep 101 102 (9) TCP 受付口に関する変更を以下に示す。 103 104 [1] TCP 受付口配列 tcp_rep は、 SUPPORT_INET6 と 105 SUPPORT_INET4 の指定により、 マクロで定義し、 IPv6 用の 106 tcp6_rep と IPv4 用の tcp4_rep を個別に割当てる。 107 [2] TCP 受付口 ID の最大値を表す変数 tmax_tcp_rep は IPv6 108 と IPv4 の合計(正確には tinet_cfg.c の定義を参照)であ 109 る。 また、 IPv6 用の tmax_tcp6_rep と IPv4 用の 110 tmax_tcp4_rep も tinet_cfg.c に出力し、SUPPORT_INET6 と 111 SUPPORT_INET4 の両方を指定した場合に有効になる。 マクロ 112 で定義する。 113 [3] TCP 通信端点数を表すマクロ TNUM_TCP_REPID に関して、 114 IPv6 用の TNUM_TCP6_REPID と IPv4 用の TNUM_TCP4_REPID 115 の定義も追加し、 tinet_cfg.h(TOPPERS/ASP)、tinet_id.h 116 (TOPPERS/JSP)に出力する。 これに伴い、 117 TCP_CFG_PASSIVE_OPEN の指定は不要になった。 118 119 (10) UDP 通信端点に関する変更を以下に示す。 120 121 [1] UDP 通信端点配列 udp_cep は、 SUPPORT_INET6 と 122 SUPPORT_INET4 の指定により、 マクロで定義し、 IPv6 用の 123 udp6_cep と IPv4 用の udp4_cep を個別に割当てる。 124 [2] UDP 通信端点 ID の最大値を表す変数 tmax_tcp_rep は IPv6 125 と IPv4 の合計(正確には tinet_cfg.c の定義を参照)であ 126 る。 また、 IPv6 用の tmax_udp6_cep と IPv4 用の 127 tmax_udp4_cep も tinet_cfg.c に出力し、SUPPORT_INET6 と 128 SUPPORT_INET4 の両方を指定した場合に有効になる。 マクロ 129 で定義する。 130 [3] UDP 通信端点数を表すマクロ TNUM_UDP_REPID に関して、 131 IPv6 用の TNUM_UDP6_REPID と IPv4 用の TNUM_UDP4_REPID 132 の定義も追加し、 tinet_cfg.h(TOPPERS/ASP)、tinet_id.h 133 (TOPPERS/JSP)に出力する。 134 [4] SEM_UDP_CEP_LOCK<n> に関して、 135 IPv6 用の SEM_UDP6_CEP_LOCK<n> と IPv4 用の 136 SEM_UDP4_CEP_LOCK<n> に変更した。 137 [5] DTQ_UDP_RCVQ<n> に関して、 138 IPv6 用の DTQ_UDP6_RCVQ<n> と IPv4 用の 139 DTQ_UDP4_RCVQ<n> に変更した。 140 [6] IPv6/IPv4 デュアルスタック化に伴い、IPv6 と IPv4 で共通 141 に使用される関数等をマクロの設定で切り替えるソースファ 142 イルを追加した。 以下にソースファイルの一覧を示す。 156 143 157 144 netinet/tcpn_usrreq.c … … 162 149 netinet/udpn_usrreq_nblk.c 163 150 164 (11) ãã°ãã£ãã¯ã¹ï¼toppers-users é¢ä¿ï¼ 165 166 [1] ãªãã«ã¨ã³ãã£ã¢ã³ã®ããã»ããµã§ãICMP ã¨ã©ã¼ã®å®å 167 ã¢ã 168 ã¬ã¹ã®ãã¤ããªã¼ãã¼ãéã«ãªãåé¡ãä¿®æ£ããã 169 [2] ICMP ã®ã¨ã³ã¼å¿çã§ãéä¿¡å 170 ã¢ãã¬ã¹ãåä¿¡ããã¡ãã»ã¼ã¸ 171 ã®å®å 172 ã¢ãã¬ã¹ã§ã¯ãªãã èª IPv4 ã¢ãã¬ã¹ãè¨å®ãããã 173 ã«ä¿®æ£ããï¼toppers-users 4113ï¼ã 174 [3] tcp_rcv_dat() ãããããã³ã°ãã¦å¼åºãã åä¿¡å¾ 175 ã¡ã®ç¶æ 176 177 ã§ãç¸æãã FIN ã»ã°ã¡ã³ããåä¿¡ãã¦ã復帰ããªãäºãã 178 ãåé¡ãä¿®æ£ããï¼toppers-users 4351ï¼ã 179 [4] tcp_cls_cep() ãããããã³ã°ãã¦å¼åºããåæãã¦ãã ã³ã¼ 180 ã«ããã¯ãããªãåé¡ãä¿®æ£ããï¼toppers-users 4612ï¼ã 181 182 (12) éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããæã TCP ã®åé 183 å¶å¾¡ãæ£ããåä½ããªããã¨ãããåé¡ãä¿®æ£ããã 184 185 (13) ãã¼ã¿ãªã³ã¯å±¤ã®ãã¬ã¼ã æçé·ãå®ç¾©ãã IF_MIN_LEN ã追å ããã 186 187 (14) ã¤ã¼ãµãããã®ãã¬ã¼ã æçé·ãå®ç¾©ãã ETHER_MIN_LEN ã追å ããã 188 189 (15) net/net.h ãããã¤ããªã¼ãã¼é¢ä¿ã®å®ç¾©ã net/net_endian.h ã« 190 åé¢ãããã 191 192 (16) ååãªã¼ãã³ãã¦ããªããã¼ãã«æ¥ç¶è¦æ±ããã£ãå ´åã ç°å¢ã«ã㣠193 ã¦ã¯ä¾å¤ãçºçãããã¨ãããåé¡ãä¿®æ£ããã 194 195 (17) ip_output.c ã§ãSUPPORT_IPSEC ã®æ¡ä»¶ if æã®è¡¨è¨ãä¿®æ£ããã 196 197 (18) TCP_CFG_RWBUF_CSAVE_MAX_QUEUES ãæ¢å®å¤ã§ã¯æªå®ç¾©ã«ããã 198 199 (19) TCP ã®ã³ãã¯ã·ã§ã³ã®ç¢ºç«æã®ã¿ã¤ã ã¢ã¦ãã BSD ã¨åãç´ 75 ç§ 200 ã«è¨å®ããã 201 202 (20) TCP ã®ã³ãã¯ã·ã§ã³ã®ç¢ºç«æã«ããã¦ãããã¯ã¼ã¯ãããã¡ã«ç©ºã 203 ããªãæã«ã åéãè¡ããªãåé¡ãä¿®æ£ããã 204 205 (21) TCP ã®å¦çããã£ã³ã»ã«ããæã åä¿¡åæ§æãã¥ã¼ã¨ã¦ã£ã³ããã 206 ãã¡ãã¥ã¼ãæ£ãã解æ¾ãããªãåé¡ãä¿®æ£ããã 207 208 (22) ãªãã«ã¨ã³ãã£ã¢ã³ã®ããã»ããµããã¦ãåä¸ LAN å 209 ã¸ã®ããã¼ã 210 ãã£ã¹ãã¢ãã¬ã¹ã® UDP ã®åä¿¡ãã§ããªãåé¡ãä¿®æ£ããã 211 212 (23) DHCP_CFG ãæå®ããæã IPV4_ADDR_DEFAULT_GW ãæªå®ç¾©ãªãåé¡ 213 ã«é¢ãã¦ã ãµã³ãã«ããã°ã©ã ã® tinet_app_config.h ã« 214 IPV4_ADDR_DEFAULT_GW ã®å®ç¾©ã追å ããã 215 216 (24) UDP 㧠ICMP/ICMPv6 éç¥ã¡ãã»ã¼ã¸ãå¦çããããã«å¤æ´ãããã 217 ã ããéç¥ã¡ãã»ã¼ã¸ã¯ UDP ã§åä¿¡ãããããã®å¾ã®å¦çã¯æªå®ã§ããã 218 219 (25) in_strtfn() ã§è¡¨ç¤ºããã TFN_TCP_CRE_REP ã TEV_TCP_RCV_OOB 220 ã«å¤æ´ããã 221 222 (26) in_strtfn() ã§è¡¨ç¤ºããã TFN_UDP_CRE_CEP ã TEV_UDP_RCV_DAT 223 ã«å¤æ´ããã 224 225 (27) tinet ã®ç¬èª API ã¨ãã¦ã IPv6 ã¢ãã¬ã¹ãæ´æ°ï¼ç»é²ããã¦ã㪠226 ããã°è¿½å ï¼ããé¢æ° in6_upd_ifaddr ã追å ããã 227 228 (28) ä¹±æ°ã®æ´æ°ã«ä½¿ç¨ãããã ETHER_CFG_COLLECT_ADDR ãå®ç¾©ããã 229 æå®ããã¨ä¸å®å¨æï¼256 åã®ãã¬ã¼ã åä¿¡æ¯ï¼ã«éä¿¡å 230 ã® MAC 㢠231 ãã¬ã¹ã«ããä¹±æ°ãæ´æ°ããã 232 233 (29) DHCP ã使ç¨ããã¨ãã«å®ç¾©ãã DHCP_CFG ã DHCP4_CLI_CFG ã«å¤ 234 æ´ããã ãªããDHCP_CFG ãæå®ãã㨠DHCP4_CLI_CFG ãå®ç¾©ãããã 235 236 (30) DHCPv6 ã使ç¨ããã¨ãã«å®ç¾©ãã DHCP6_CLI_CFG ã追å ããã 237 238 (31) ppp_ccp.c ãã #include <net/net_debug.h> ãåé¤ããã 239 240 (32) TINET ãªãªã¼ã¹ 1.2 ã® tinet/doc/tinet-1.2.txtï¼ï¼ãªãªã¼ã¹ 241 1.1.1 ãããªãªã¼ã¹ 1.2 ã¸ã®ç§»è¡ï¼»2004/7/27ï¼½ï¼ã®ãã3. å¤æ´æ¨ 242 奨é 243 ç®ãã(1) ãã (3) ã«è¿°ã¹ããã¦ãã以ä¸ã®ã³ã³ãã¤ã«æã³ã³ 244 ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã¨æ§é ä½åã¯ãå¤æ´å¿ 245 é é 246 ç®ãã«ãªã£ãã 151 (11) バグフィックス(toppers-users 関係) 152 153 [1] リトルエンディアンのプロセッサで、ICMP エラーの宛先アド 154 レスのバイトオーダーが逆になる問題を修正した。 155 [2] ICMP のエコー応答で、送信元アドレスを受信したメッセージ 156 の宛先アドレスではなく、 自 IPv4 アドレスを設定するよう 157 に修正した(toppers-users 4113)。 158 [3] tcp_rcv_dat() をブロッキングして呼出し、 受信待ちの状態 159 で、相手から FIN セグメントを受信しても復帰しない事があ 160 る問題を修正した(toppers-users 4351)。 161 [4] tcp_cls_cep() をブロッキングして呼出し、切断しても、 コー 162 ルバックされない問題を修正した(toppers-users 4612)。 163 164 (12) 送信ウィンドバッファの省コピー機能を有効にした時、 TCP の再送 165 制御が正しく動作しないことがある問題を修正した。 166 167 (13) データリンク層のフレーム最短長を定義する IF_MIN_LEN を追加した。 168 169 (14) イーサネットのフレーム最短長を定義する ETHER_MIN_LEN を追加した。 170 171 (15) net/net.h からバイトオーダー関係の定義を net/net_endian.h に 172 分離しした。 173 174 (16) 受動オープンしていないポートに接続要求があった場合、 環境によっ 175 ては例外が発生することがある問題を修正した。 176 177 (17) ip_output.c で、SUPPORT_IPSEC の条件 if 文の表記を修正した。 178 179 (18) TCP_CFG_RWBUF_CSAVE_MAX_QUEUES を既定値では未定義にした。 180 181 (19) TCP のコネクションの確立時のタイムアウトを BSD と同じ約 75 秒 182 に設定した。 183 184 (20) TCP のコネクションの確立時においてネットワークバッファに空き 185 がない時に、 再送を行わない問題を修正した。 186 187 (21) TCP の処理をキャンセルした時、 受信再構成キューとウィンドバッ 188 ファキューが正しく解放されない問題を修正した。 189 190 (22) リトルエンディアンのプロセッサおいて、同一 LAN 内へのブロード 191 キャストアドレスの UDP の受信ができない問題を修正した。 192 193 (23) DHCP_CFG を指定した時、 IPV4_ADDR_DEFAULT_GW が未定義なる問題 194 に関して、 サンプルプログラムの tinet_app_config.h に 195 IPV4_ADDR_DEFAULT_GW の定義を追加した。 196 197 (24) UDP で ICMP/ICMPv6 通知メッセージを処理するように変更した。た 198 だし、通知メッセージは UDP で受信するが、その後の処理は未定である。 199 200 (25) in_strtfn() で表示される TFN_TCP_CRE_REP を TEV_TCP_RCV_OOB 201 に変更した。 202 203 (26) in_strtfn() で表示される TFN_UDP_CRE_CEP を TEV_UDP_RCV_DAT 204 に変更した。 205 206 (27) tinet の独自 API として、 IPv6 アドレスを更新(登録されていな 207 ければ追加)する関数 in6_upd_ifaddr を追加した。 208 209 (28) 乱数の更新に使用するため ETHER_CFG_COLLECT_ADDR を定義した。 210 指定すると一定周期(256 回のフレーム受信毎)に送信元の MAC ア 211 ドレスにより乱数を更新する。 212 213 (29) DHCP を使用するときに定義する DHCP_CFG を DHCP4_CLI_CFG に変 214 更した。 なお、DHCP_CFG を指定すると DHCP4_CLI_CFG も定義される。 215 216 (30) DHCPv6 を使用するときに定義する DHCP6_CLI_CFG を追加した。 217 218 (31) ppp_ccp.c から #include <net/net_debug.h> を削除した。 219 220 (32) TINET リリース 1.2 の tinet/doc/tinet-1.2.txt((リリース 221 1.1.1 からリリース 1.2 への移行[2004/7/27])の、「3. 変更推 222 奨項目」、(1) から (3) に述べられている以下のコンパイル時コン 223 フィギュレーションパラメータと構造体名は「変更必須項目」になった。 247 224 248 225 [1] NUM_ROUTE_ENTRY 249 NUM_IN4_STATIC_ROUTE_ENTRY ã«å¤æ´ããã226 NUM_IN4_STATIC_ROUTE_ENTRY に変更する。 250 227 [2] NUM_IN4_REDIRECT_ROUTE_ENTRY 251 æ°ãã«å®ç¾©ããã228 新たに定義する。 252 229 [3] T_RT_ENTRY 253 T_IN4_RTENTRY ã«å¤æ´ããã 254 255 (33) NUM_IN4_ROUTE_ENTRY ãå®ç¾©ãããã¡ã¤ã«ãã 以ä¸ã®ããã«å¤æ´ããã 256 tinet/netinet/in4_var.h â tinet/tinet_config.h 257 258 (34) NUM_IN6_ROUTE_ENTRY ãå®ç¾©ãããã¡ã¤ã«ãã 以ä¸ã®ããã«å¤æ´ããã 259 tinet/netinet6/in6_var.h â tinet/tinet_config.h 260 261 (35) ARP ã®éè¤æ¤åºã§ã èªåã¨ç¸æã®ã¢ãã¬ã¹ãæªå®ç¾©ã®æã¯ä½ãã㪠262 ãããã«å¤æ´ããã 263 264 (36) in6.h ã«å®ç¾©ããã¦ãããã¤ããªã¼ãã¼ã«ä¾åãã ç¹å¥ãªã¢ãã¬ã¹ 265 ã®ãã§ãã¯ãããã¯ãï¼IN6_IS_ADDR_V4COMPAT çï¼ã in6_var.h 266 ã«ç§»ããã 267 268 (37) IPv6 ã«ã¼ã¿éç¥ãåä¿¡ããæã®ãã°æ 269 å ±ãåãã¦åä¿¡ããæã®ã¿è¡¨ 270 示ããããã«ã«å¤æ´ããã 271 272 (38) ICMPv6 ã§ãµãã¼ããã¦ããªãã¿ã¤ãã®ãã¼ã¿èµãåä¿¡ããæã®è¡¨ç¤º 273 ã®ãã°æ 274 å ±ã®éè¦åº¦ã LOG_NOTICE ãã LOG_INFO ã«å¤æ´ããã 275 276 (39) tinet.pdfã ã7.2 ãã¡ã¤ã«ã®ä½æã è¨å®ãã§ã $(APP_DIR) ã 277 $(APPLDIR) ã«å¤æ´ããã 278 279 (40) tinet.pdfã ã8.2 ãã¡ã¤ã«ã®ä½æãè¨å®ãã§ã$(APP_DIR) ã®è¨è¿° 280 å 281 容ãå¤æ´ããã 282 283 (41) tinet_sample.pdfãã3. TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªãã 284 ã®ãªãã·ã§ã³ãã®è¨è¿°ãå 285 ¨é¢çã«è¦ç´ããã 286 287 (42) Makefile ã« 230 T_IN4_RTENTRY に変更する。 231 232 (33) NUM_IN4_ROUTE_ENTRY を定義するファイルを、 以下のように変更した。 233 tinet/netinet/in4_var.h → tinet/tinet_config.h 234 235 (34) NUM_IN6_ROUTE_ENTRY を定義するファイルを、 以下のように変更した。 236 tinet/netinet6/in6_var.h → tinet/tinet_config.h 237 238 (35) ARP の重複検出で、 自分と相手のアドレスが未定義の時は何もしな 239 いように変更した。 240 241 (36) in6.h に定義されているバイトオーダーに依存し、 特別なアドレス 242 のチェックするマクロ(IN6_IS_ADDR_V4COMPAT 等)を in6_var.h 243 に移した。 244 245 (37) IPv6 ルータ通知を受信した時のログ情報を初めて受信した時のみ表 246 示するようにに変更した。 247 248 (38) ICMPv6 でサポートしていないタイプのデータ蔵を受信した時の表示 249 のログ情報の重要度を LOG_NOTICE から LOG_INFO に変更した。 250 251 (39) tinet.pdf、 「7.2 ファイルの作成、 設定」で、 $(APP_DIR) を 252 $(APPLDIR) に変更した。 253 254 (40) tinet.pdf、 「8.2 ファイルの作成、設定」で、$(APP_DIR) の記述 255 内容を変更した。 256 257 (41) tinet_sample.pdf、「3. TINET コンフィギュレーションスクリプト 258 のオプション」の記述を全面的に見直した。 259 260 (42) Makefile に 288 261 NO_USE_TINET_LIBRARY = true 289 ãæå®ãã¦ã TINET ã®ã©ã¤ãã©ãªãä½æããªãããã«ããå ´åã㪠290 ã³ã¯ãã§ããªãåé¡ãä¿®æ£ããã 291 292 (43) NE2000 äºæ NIC(if_ed) ç¨ã¤ã¼ãµãããã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã§ã 293 éä¿¡ãããã¬ã¼ã ã®ãã¼ã¿é¨ã®é·ãã 46 ãªã¯ãããæªæºã®å ´åã¯ã 294 ãã¼ã¿ã®çµããããã¬ã¼ã ã®çµããï¼CRC ãé¤ãï¼ã¾ã§ 0 ã§åãã 295 ããã«å¤æ´ããã 296 297 (44) ASP ã¸ã®å¯¾å¿ã«é¢ããå¤æ´ã以ä¸ã«ç¤ºãã 298 299 [1] ASP ç¨ TINET ã«ãã㦠TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ã§ã 300 TCP_CFG_TRACE ãæå®ããã¨ã³ã³ãã¤ã«ã§ããªãåé¡ãä¿®æ£ããã 301 [2] ã¿ã¼ã²ãã OS ã ASPããããã¯ã¼ã¯å±¤ã IPv4 ã§ã ãã¼ã¿ 302 ã°ã©ã ã®åå²ã»åæ§æè¡ããã¨ãæå®ãã IP4_CFG_FRAGMENT 303 ãå®ç¾©ããæãSEM_IP4_FRAG_QUEUE ãæªå®ç¾©ã®ã¨ã©ã¼ã¨ãªã 304 åé¡ãä¿®æ£ããã 305 [3] if_loop.c ã ASP ã«å¯¾å¿ãããã 306 [4] TINET ã®ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã® Makefile ã ASP ã®ã 307 ã³ãã¬ã¼ããã£ã¬ã¯ã㪠sample ã® Makefile ããçæãã 308 ããã«å¤æ´ããã 309 [5] ASP ãã³ãã¬ã¼ããã£ã¬ã¯ããªãæå®ãããªãã·ã§ã³ 310 -m <asptemplatedir> ã tinet_asp_configure ã«è¿½å ããã 311 [6] ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ï¼cfgï¼ã®ãã¹åãæå®ãããªãã·ã§ã³ 312 -g <cfg> ã tinet_asp_configure ã«è¿½å ããã 313 [7] ASP-1.7 以éã® cfg1_out.c ã¸ã®å¯¾å¿ãè¡ã£ãã 314 [8] ASP-1.8 以éã® Makefile ã¸ã®å¯¾å¿ãè¡ãããã ã 315 Makefile.tinet ã® ASP ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ 316 ã¤ã«ã«é¢ä¿ããã«ã¼ã«ã»å¤æ°çãå¤æ´ããã ASP-1.8 ãã 317 $(LDFLAGS) 㨠$(CFG1_OUT_LDFLAGS) ã®å®ç¾©ãå¥ã«ãªã£ãã 318 $(CFG1_OUT_LDFLAGS) ãæªå®ç¾©ã§ããã°ã ASP-1.7 以åã®å¦ 319 çãè¡ãããã«å¤æ´ããã 320 [9] tinet/tinet_asp.cfg ã« #include "target_sil.h" ã追å ããã 321 [10] tinet/net/net.h ã®ãã¤ããªã¼ãã¼ã®å®ç¾©ã«é¢ãã¦ã ã¿ã¼ã²ã 322 ãã ASP ã®å ´åãSIL_ENDIAN_BIG 㨠SIL_ENDIAN_LITTLE ã® 323 å®ç¾©ãå¤æ´ããªãããã«ä¿®æ£ããã 324 ããã«å¯¾å¿ãã¦ã _NET_CFG_BYTE_ORDERã 325 _NET_CFG_LITTLE_ENDIANã 326 _NET_CFG_BIG_ENDIAN ãå®ç¾©ãã TINET ã®å 327 é¨ã§ã 328 SIL_ENDIANã SIL_ENDIAN_BIGãSIL_ENDIAN_LITTLE ãåç 329 §ã 330 ãªãããã«ä¿®æ£ããã 331 332 (45) JSP ã¸ã®å¯¾å¿ã«é¢ããå¤æ´ã以ä¸ã«ç¤ºãã 333 334 [1] JSP ãªãªã¼ã¹ 1.4.4 ã§ã³ã³ãã¤ã«ã§ããªãåé¡ï¼Makefile 335 ã®ä¸æ´åï¼ãä¿®æ£ããã 336 [2] JSP ãã³ãã¬ã¼ããã£ã¬ã¯ããªãæå®ãããªãã·ã§ã³ 337 -m <jsptemplatedir> ã tinet_jsp_configure ã«è¿½å ããã 338 [3] tinet_sample.pdfãã2. ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®æ§ç¯ãã 339 ã(1) TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®å®è¡ãã 340 ã[2] TOPPERS/JSP ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãª 341 ããã®å®è¡ãããããªãã·ã§ã³ -d ãåé¤ããã 342 343 2. ãªãªã¼ã¹ 1.4.x ãã 1.5 ã¾ã§ã®å¤æ´ 344 345 (1) ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ã®å®ç¾©ã«ã 346 IF_ETHER_NIC_NET_BUF_ALIGN ãä¸è¶³ãã¦ããåé¡ãä¿®æ£ããã 347 348 (2) TINET ãããã³ã«ã¹ã¿ãã¯ã®è¨è¿°ãã TOPPERS/ASP ã«ã¼ãã«ã§è¦å® 349 ããã¦ãã TOPPERS å 350 ±éãã¼ã¿åã«å¤æ´ããã 351 352 (3) UDP ã§ã ãã³ããããã³ã°ã³ã¼ã«æ©è½ãçµã¿è¾¼ã¾ããUDP éä¿¡ç«¯ç¹ 353 ã« UDP_PORTANY ãæå®ããã¨ãããã¼ãçªå·ãèªåçã«å²ãå½ã¦ã 354 ããªãåé¡ãä¿®æ£ããã 355 356 (4) ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ SUPPORT_IPSEC ã 357 æ°è¨ãããããã¯ãIPSEC ãå¦çããããã®æå®ã§ããã ãã ãã 358 TINET ã¯ã IPSEC ãå¦çããããã®ããã¯ã®ã¿ã ip_input.c 㨠359 ip_output.c ç¨æãã¦ããããã§ã IPSEC èªä½ã¯å®è£ 360 ãã¦ããªãã® 361 ã§ãå¥ã«çµã¿è¾¼ãå¿ 362 è¦ãããã 363 364 (5) TOPPERS/ASP ã«å¯¾å¿ããã 365 366 (6) ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã® PPP ã¨ã«ã¼ãããã¯ãåèå®è£ 367 ã¨ããã 368 369 (7) IPv4/IPv4 ãã¼ã¿ã°ã©ã ã®è¨å®ã®ã 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ 370 ã°ã§åããå¦çã§ã ãããã¯ã¼ã¯ãããã¡ã®é åå¤ã«ããã£ã³ã°ã 371 æ¸ãè¾¼ããã¨ãããåé¡ãä¿®æ£ããã 372 373 (8) PPP ã§ã ãµã¼ãããã® IP ã¢ãã¬ã¹èªååå¾ãã§ããªãåé¡ãä¿®æ£ããã 374 375 (9) IPv4 ã®å 376 ¥åå¦çã§ãä¸ä½å±¤ã ICMP 以å¤ã®å ´åã«è¡ããªãã·ã§ã³ã® 377 æ¶å»ãããããã§ãã¯ãµã ã®æ¤æ»ã®å¾ã«å¤æ´ããã 378 379 (10) IPv4 ã®å 380 ¥åå¦çã§ãåå²ã®ãã§ãã¯ãã RF ããããå¤ããã 381 382 (11) IPv6 ã§ãé信帯åãé£ãã¤ã¶ãæ»æã¸ã®å¯¾å¿ã®ããã ã¿ã¤ã 0 çµ 383 è·¯å¶å¾¡ãããã®å¦çãè¡ããªãããã«å¤æ´ããã 384 385 (12) TCP ã®åºåã§ã éä¿¡ãµã¤ãºãéä¿¡ç¸æã®æ大ã»ã°ã¡ã³ããµã¤ãºã«èª¿ 386 æ´ããå ´åã 誤ã£ããµã¤ãºã«èª¿æ´ãããã¨ãããåé¡ãä¿®æ£ããã 387 388 (13) éä¿¡ç¸æã® TCP ã® MSS ãªãã·ã§ã³ã®å¦çã§ã è¨é²ããå¤ãã 389 TCP_MINMSSï¼216ï¼ãã MAX_TCP_SND_SEGï¼æ¨æºã¯ã IPv4 ã 512ã 390 IPv6 ã 1024ï¼ã«å¶éããããã«å¤æ´ããã 391 392 (14) IPv6 ã§ããªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ã®éè¤ãæ¤åºããå ´åããã以é 393 ã®è¿é£æ¢ç´¢ãã±ãããåºåããªããã«å¤æ´ããã 394 395 (15) IPv6 ã§ãã«ã¼ã¿éç¥ã®ãã¬ãã£ãã¯ã¹é·ãä¸æ£ã§ãå¦çãç¶ç¶ãã 396 ãã¬ãã£ãã¯ã¹ãªã¹ãã«ç»é²ããã ã¾ãããªã³ãªã³ã¯ã»ãã©ã°ãæ 397 å¹ã§ããã°ãåä¸ LAN å 398 ã®ã¢ãã¬ã¹ã¨ãã¦æå¹ã¨ãªãããã«å¤æ´ããã 399 400 (16) ITRON TCP/IP API ã®ä»æ§ã«å®ç¾©ããã¦ããã³ã¼ã«ããã¯é¢æ°ã®å¼æ° 401 p_parblk ã«é¢ãã¦ãã¢ãã¬ã¹æ¸¡ããæ£ããããå¤æ¸¡ãã¨ãã¦ããå® 402 è£ 403 ä¸ã®èª¤ããä¿®æ£ãããã¾ããTINET ãªãªã¼ã¹ 1.4 以åã¨äºææ§ã 404 ç¶æããããã«å¤æ¸¡ãã«ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ 405 ãã©ã¡ã¼ã¿ TCP_CFG_NON_BLOCKING_COMPAT14 㨠406 UDP_CFG_NON_BLOCKING_COMPAT14 ãæ°è¨ããã 407 408 (17) è½åãªã¼ãã³ï¼TCP_CON_CEP å¼åºãï¼ã§ãã³ããããã³ã°ã³ã¼ã«ã 409 è¡ã£ãæã«ãåæãªã¼ãã³ï¼TCP ã®ç¶æ 410 é·ç§»ããSYN éä¿¡ãâãSYN 411 åä¿¡ãâãã³ãã¯ã·ã§ã³ç¢ºç«ãï¼ãçºçããå ´åã ã³ã¼ã«ããã¯é¢ 412 æ°ãå¼åºãããªãåé¡ãä¿®æ£ããã 413 414 (18) ã¿ã¹ã¯ããã® Time Wait ç¶æ 415 ã® TCP éä¿¡åç¹åé¢æ©è½ãçµè¾¼ãã 416 å ´åã«ã ACK ã»ã°ã¡ã³ããåéããæããã¼ãçªå·ã®ãã¤ããªã¼ãã¼ 417 ã®å¤æã誤ã£ã¦ããåé¡ãä¿®æ£ããã 418 419 (19) TCP 㧠Keep Alive ãæå¹ã«ããæãã¦ã£ã³ããµã¤ãºã 0 ã®ã»ã°ã¡ 420 ã³ããéä¿¡ãããåé¡ãä¿®æ£ããã 421 422 (20) Makefile ã« NO_USE_TINET_LIBRARY = true ãæå®ãã¦ã ã©ã¤ãã© 423 ãªåãããªãæ¹æ³ã«ãããåé¡ãä¿®æ£ããã 424 425 (21) TOPPERS/ASP ã®å®è¡ç°å¢ã GCC 3.x ç³»ã®éçºç°å¢ã§ã¢ããªã±ã¼ã·ã§ 426 ã³ããã°ã©ã ãæ§ç¯ããæãethernet ãããæ§é ä½ã®ãµã¤ãºãä¸ä¸ 427 è´ã«ãªãã åä½ãä¸å®å®ã«ãªããã¨ãããåé¡ãä¿®æ£ããã 428 429 (22) H8 ä¾åé¨ã§ã tinet_sys_config.h ã«æå®ããã¦ãã ED_IPM ã®è¨ 430 å®ããIPM_LEVEL1 ãã IPM_LEVEL0 ã«å¤æ´ããã 431 432 3. ãªãªã¼ã¹ 1.3.x ãã 1.4 ã¾ã§ã®å¤æ´ 433 434 (1) tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã« TCP/IPv4 åä»å£ã®äºç´ ID ãå® 435 義ãã VRID_TCP_REP ã追å ããã 436 437 (2) tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã« TCP/IPv4 é信端ç¹ã®äºç´ ID ã 438 å®ç¾©ãã VRID_TCP_CEP ã追å ããã 439 440 (3) tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã« UDP/IPv4 é信端ç¹ã®äºç´ ID ã 441 å®ç¾©ãã VRID_UDP_CEP ã追å ããã 442 443 (4) tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã« TCP/IPv6 åä»å£ã®äºç´ ID ãå® 444 義ãã VRID_TCP6_REP ã追å ããã 445 446 (5) tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã« TCP/IPv6 é信端ç¹ã®äºç´ ID ã 447 å®ç¾©ãã VRID_TCP6_CEP ã追å ããã 448 449 (6) tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã« UDP/IPv6 é信端ç¹ã®äºç´ ID ã 450 å®ç¾©ãã VRID_UDP6_CEP ã追å ããã 451 452 (7) ITRON TCP/IP API ã® TCP ã®æ¡å¼µæ©è½ãæå¹ã«ããã³ã³ãã¤ã«æã³ 453 ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ TCP_CFG_EXTENTIONS ã追å ããã 454 455 (8) ITRON TCP/IP API ã® UDP ã®æ¡å¼µæ©è½ãæå¹ã«ããã³ã³ãã¤ã«æã³ 456 ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ UDP_CFG_EXTENTIONS ã追å ããã 457 458 (9) ä¸è¬å®æ°ãã¯ã TCP_REP_NONE ã追å ãããå¤ã¯ï¼0ï¼ã 459 460 (10) ä¸è¬å®æ°ãã¯ã TCP_CEP_NONE ã追å ãããå¤ã¯ï¼0ï¼ã 461 462 (11) ä¸è¬å®æ°ãã¯ã UDP_CEP_NONE ã追å ãããå¤ã¯ï¼0ï¼ã 463 464 (12) å 465 ¨åå¤æ°ã¨ãã¦ã ipv6_addrany ããã¯ãã§å®ç¾©ããã å®ä½ã¯ã 466 in6_addr_unspecified ã§ãããããã«ä¼´ã£ã¦ããããã³ã«ã¹ã¿ã㯠467 å 468 é¨åã®ãªãã¼ã ãããin6_addr_unspecified ãå¤ããã 469 470 (13) UDP ã®é信端ç¹ã® myportno ã« UDP_PORTANY ãæå®ã§ããªãåé¡ã 471 ä¿®æ£ããã 472 473 (14) ITRON TCP/IP API ã® TCP/IPv4 åä»å£ãåçã«çæãã API ã® 474 cre_tcp_rep ã追å ããã 475 476 (15) ITRON TCP/IP API ã® TCP é信端ç¹ãåçã«çæãã API ã® 477 cre_tcp_cep ã追å ããã 478 479 (16) ITRON TCP/IP API ã® UDP/IPv4 é信端ç¹ãåçã«çæãã API ã® 480 cre_udp_cep ã追å ããã 481 482 (17) ITRON TCP/IP API ã® TCP åä»å£ãåçã«åé¤ãã API ã® 483 del_tcp_rep ã追å ããã 484 485 (18) ITRON TCP/IP API ã® TCP é信端ç¹ãåçã«åé¤ãã API ã® 486 del_tcp_cep ã追å ããã 487 488 (19) ITRON TCP/IP API ã® UDP é信端ç¹ãåçã«åé¤ãã API ã® 489 del_udp_cep ã追å ããã 490 491 (20) ITRON TCP/IP API ã® TCP/IPv6 åä»å£ãåçã«çæãã API ã® 492 cre_tcp6_rep ã追å ããã 493 494 (21) ITRON TCP/IP API ã® UDP/IPv6 é信端ç¹ãåçã«çæãã API ã® 495 cre_udp6_cep ã追å ããã 496 497 (22) ITRON TCP/IP API ã® TCP é信端ç¹ãªãã·ã§ã³ãè¨å®ãã API ã® 498 tcp_set_opt ã追å ããã 499 500 (23) ITRON TCP/IP API ã® TCP é信端ç¹ãªãã·ã§ã³ãèªåºã API ã® 501 tcp_get_opt ã追å ããã 502 503 (24) ITRON TCP/IP API ã® UDP é信端ç¹ãªãã·ã§ã³ãè¨å®ãã API ã® 504 udp_set_opt ã追å ããã 505 506 (25) ITRON TCP/IP API ã® UDP é信端ç¹ãªãã·ã§ã³ãèªåºã API ã® 507 udp_get_opt ã追å ããã 508 509 (26) å 510 é¨çã«ä½¿ç¨ãã¦ããæ§é ä½åãå¤æ´ããã 511 512 [1] struct t_tcp4_ccep â struct t_tcp4_cep 513 [2] struct t_tcp6_ccep â struct t_tcp6_cep 514 [3] T_TCP_CCEP â T_TCP_IN_CCEP â T_TCP_CEP 515 [4] T_TCP_TW_CCEP â T_TCP_TWCEP 516 [5] T_TCP4_CCEP â T_TCP4_CEP 517 [6] T_TCP4_TW_CCEP â T_TCP4_TWCEP 518 [7] T_TCP6_CCEP â T_TCP6_CEP 519 [8] T_TCP4_TW_CCEP â T_TCP4_TWCEP 520 [9] T_TCP_CREP â T_TCP_IN_CREP â T_TCP_REP 521 [10] T_TCP4_CREP â T_TCP4_REP 522 [11] T_TCP6_CREP â T_TCP6_REP 523 [12] T_UDP_CCEP â T_UDP_IN_CCEP â T_UDP_CEP 524 [13] T_UDP4_CCEP â T_UDP4_CEP 525 [14] T_UDP6_CCEP â T_UDP6_CEP 526 527 (27) å 528 é¨çã«ä½¿ç¨ãã¦ããå¤æ°ã»é 529 ååãå¤æ´ããã 530 531 [1] tcp_crep â tcp_rep 532 [2] tcp_ccep â tcp_cep 533 [3] tcp_tw_ccep â tcp_twcep 534 [4] udp_ccep â udp_cep 535 [5] tmax_tcp_crepid â tmax_tcp_repid 536 [6] tmax_tcp_ccepid â tmax_tcp_cepid 537 [7] tmax_udp_ccepid â tmax_udp_cepid 538 539 (28) å 540 é¨çã«ä½¿ç¨ãã¦ãããã¯ãåãå¤æ´ããã 541 542 [1] VAID_TCP_CREPID â VAID_TCP_REPID 543 [2] VAID_TCP_CCEPID â VAID_TCP_CEPID 544 [3] VAID_UDP_CCEPID â VAID_UDP_CEPID 545 [4] INDEX_TCP_CREP â INDEX_TCP_REP 546 [5] INDEX_TCP_CCEP â INDEX_TCP_CEP 547 [6] INDEX_UDP_CCEP â INDEX_UDP_CEP 548 [7] GET_TCP_CREP â GET_TCP_REP 549 [8] GET_TCP_CCEP â GET_TCP_CEP 550 [9] GET_UDP_CCEP â GET_UDP_CEP 551 [10] GET_TCP_CREPID â GET_TCP_REPID 552 [11] GET_TCP_CCEPID â GET_TCP_CEPID 553 [12] GET_UDP_CCEPID â GET_UDP_CEPID 554 [13] GET_TCP_TW_CCEPID â GET_TCP_TWCEPID 555 [14] TMIN_TCP_RCEPID â TMIN_TCP_REPID 556 [15] TMIN_TCP_CCEPID â TMIN_TCP_CEPID 557 [16] TMIN_UDP_CCEPID â TMIN_UDP_CEPID 558 [17] TMIN_TCP_TW_CCEPID â TMIN_TCP_TWCEPID 559 [18] TNUM_TCP_RCEPID â TNUM_TCP_REPID 560 [19] TNUM_TCP_CCEPID â TNUM_TCP_CEPID 561 [20] TNUM_UDP_CCEPID â TNUM_UDP_CEPID 562 563 (29) å 564 é¨çã«ä½¿ç¨ãã¦ããã«ã¼ãã«ãªãã¸ã§ã¯ãåãå¤æ´ããã 565 566 [1] SEM_TCP_CCEP â SEM_TCP_CEP 567 [2] SEM_UDP_CCEP â SEM_UDP_CEP 568 569 (30) TW ç¨ TCP é信端ç¹ã§ãä¸è¦ãªã¡ã³ããåé¤ããã 570 571 (31) ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ãããè¦å®ããã³ã³ãã¤ã«æã³ 572 ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ TCP_CFG_URG_OFFSET ã追å ããã 573 574 (32) ITRON TCP/IP API ã®ç·æ¥ãã¼ã¿åä¿¡ API ã® tcp_rcv_oob ã追å ããã 575 576 (33) ITRON TCP/IP API ã®ç·æ¥ãã¼ã¿éä¿¡ API ã® tcp_snd_oob ã追å ããã 577 578 (34) UDP ã®ã³ã¼ã«ããã¯ç¨åä¿¡ãã¼ã¿ãã¥ã¼ã使ç¨ããªãããã«ããã 579 580 (35) ãã³ããããã³ã°ã³ã¼ã«ãçµè¾¼ãå ´åã«ãªã³ã¯ãããé¢æ°ã®å®ç¾©ãã 581 udp_usrreq.c ããåé¢ãã udp_usrreq_nblk.c ã«ç§»åããã 582 udp_usrreq_nblk.c ã¯ãudp_usrreq.c ã«ã¤ã³ã¯ã«ã¼ãããã 583 584 (36) TCP ã§ãåéã 12 åè¡ãªã£ã¦ããéä¿¡ãå復ããªãã¨ãã ã³ã㯠585 ã·ã§ã³ãç ´æ£ãããªã»ããã»ã°ã¡ã³ããéä¿¡ãããªãåé¡ãä¿®æ£ããã 586 587 (37) TCP ã§ãACK ãæ£å¸¸ã«éä¿¡ããªããã¨ãããåé¡ãä¿®æ£ããã 588 589 (38) TCP ã§ã é«éå転éã¨é«éãªã«ããªãæ£å¸¸ã«è¡ãªãããªããã¨ãã 590 ãåé¡ãä¿®æ£ããã 591 592 (39) åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã使ç¨ããã¨ãã TCP ã®ãã¼ 593 ãã¯ãã¼ãºç¶æ 594 ã§ã ãã¼ã¿ãå 595 ¨ã¦åä¿¡ã§ããªããã¨ãããåé¡ãä¿® 596 æ£ããã 597 598 (40) ããã°ã¨ã³ãã£ã¢ã³ã®ããã»ããµã«ããã¦ã TCP ãããã®ãã¬ã¼ã¹ 599 åºåã§ã æ£ããå¤ã表示ããªãåé¡ãä¿®æ£ããã 600 601 (41) TCP ãããã®ãã¬ã¼ã¹åºåã§ã éåä¿¡ãæ··ããå ´åãããåé¡ãä¿® 602 æ£ããã 603 604 (42) ã³ã¼ã«ããã¯ç¨ UDP åä¿¡ãã¥ã¼ãµã¤ãºãæå®ãã 605 NUM_DTQ_UDP_CB_RCVQ ã¯ãã¢ã«ã´ãªãºã ã®å¤æ´ã«ããä¸è¦ã«ãªã£ãã 606 607 (43) TCP åä»å£ã tinet_$(UNAME).cfg ã«æå®ããã¦ããªãå ´åã 608 TCP_CFG_PASSIVE_OPEN ãæªå®ç¾©ã«ããªããã°ããªã³ã¯æã«æªå®ç¾©ã¨ 609 ã©ã¼ã«ãªãåé¡ãä¿®æ£ããã 610 611 (44) T_NET_BUF_IF_PDU ã§ããã¬ã¼ã ã®çµããã®å¢çã®èª¿æ´éãæå®ãã 612 ã¤ã¼ãµãããã¤ã³ã¿ãã§ã¼ã¹ä¾åãã©ã¡ã¼ã¿å®ç¾© 613 IF_PDU_HDR_PADDING ã追å ããã 614 615 (45) å 616 é¨çã«ä½¿ç¨ãã¦ããæ§é ä½åãå¤æ´ããã 617 618 [1] t_net_buf_reassm â t_net_buf4_reassm 619 [2] T_NET_BUF_REASSM â T_NET_BUF4_REASSM 620 621 (46) åæ§æãããã¡ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã³ã³ã 622 ã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_MPF_NET_BUF_REASSM 623 ã NUM_MPF_NET_BUF4_REASSM ã«å¤æ´ãã IPv4 ç¨ã®åæ§æãããã¡ 624 ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ãããã©ã¡ã¼ã¿ã¨ããã 625 626 (47) ICMP6 ã¨ã©ã¼ã®åºåæã«ãIPv6 MMTUï¼1,280 ãªã¯ãããï¼ãè¶ 627 ãã 628 ãã¼ã¿ã°ã©ã ãåºåããåé¡ãä¿®æ£ããã 629 630 (48) IPv6 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã 631 ãæå®ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ 632 TMO_IP6_FRAG_GET_NET_BUF ã追å ããã 633 634 (49) IPv6 ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ãå ´åã«æå®ããã³ã³ãã¤ã«æ 635 ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ IP6_CFG_FRAGMENT ã追å ããã 636 637 (50) IPv6 ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ãµã¤ãºãæå®ããã³ã³ãã¤ã«æã³ã³ 638 ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_IP6_FRAG_QUEUE ã追å ããã 639 æ¨æºå¤ã¯ 2 ã§ããã 640 641 (51) IPv6 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºãæå®ã 642 ãã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ 643 IP6_CFG_FRAG_REASSM_SIZE ã追å ãããæ¨æºå¤ã¯ 4096 ã§ããã 644 645 (52) ICMPv6 ã§ãåä¿¡ãããã§ãã¯ãµã ã®è¨ç®ã誤ããã¨ãããåé¡ãä¿® 646 æ£ããã 647 648 (53) IPv6 ã§ã èªèã§ããªã次ãããã³ã¼ããå 649 ¥åããã¨ãã éä¿¡ãã 650 ICMPv6 ã¨ã©ã¼ã¡ãã»ã¼ã¸ã«èª¤ããããåé¡ãä¿®æ£ããã 651 652 (54) IPv6 ã® Traffic Class 㨠Flow Label ããµãã¼ãããªããã ãã 653 ãã« 0 以å¤ã®å¤ãè¨å®ãã¦éä¿¡ãããã¨ãããåé¡ãä¿®æ£ããã 654 655 (55) IPv6 ã§ã ããããªãããã 0 ã® ICMPv6 ã¨ã³ã¼è¦æ±ãã±ãããå 656 ä¿¡ããã¨ãã éä¿¡ãã ICMPv6 ã¨ã³ã¼ã¡ãã»ã¼ã¸ã«èª¤ããããåé¡ 657 ãä¿®æ£ããã 658 659 (56) IPv6 ã§ãéè¤ã¢ãã¬ã¹æ¤åºæã«ã誤ã£ããã¦å 660 ã¢ãã¬ã¹ã®ãã¼ã¿ã° 661 ã©ã ãåä¿¡ããã¨ãã 誤ã£ã¦èªã¢ãã¬ã¹ãéè¤ãã¦ããã¨èªèã㦠662 ãã¾ããã¨ãããåé¡ãä¿®æ£ããã 663 664 (57) IPv6 ã§ãçåæéãåãããã¬ãã£ãã¯ã¹ã®ã¢ãã¬ã¹ãæå¹ã«ãªã 665 äºãããåé¡ãä¿®æ£ããã 666 667 (58) IPv6 ã§ãè¿é£æ¢ç´¢ãã£ãã·ã¥ã®ç¶æ 668 é·ç§»ã«ä¸é¨èª¤ãããã£ãåé¡ã 669 ä¿®æ£ããã 670 671 (59) IPv6 ã§ãè¿é£æ¢ç´¢è¦è«ãã«ããã£ã¹ããã¼ã¿ã°ã©ã ã®éä¿¡å 672 ã¢ã㬠673 ã¹ã¨ãã¦èª¤ã£ãã¢ãã¬ã¹ãè¨å®ããäºãããåé¡ãä¿®æ£ããã 674 675 (60) IPv6 ã§ãã«ã¼ã¿è¦è«ã®åéæéééãã誤ã£ã¦ããåé¡ï¼3 ç§â 4 676 ç§ï¼ãä¿®æ£ããã 677 678 (61) ã»ã°ã¡ã³ãã®ç°ãªããã¹ãã«éä¿¡ããã¨ãã ãã£ãã©ã«ãã«ã¼ã¿ã® 679 æ¤ç´¢ã«å¤±æãããã¨ãããåé¡ãä¿®æ£ããã 680 681 (62) èªèã§ããªãè¿é£æ¢ç´¢ãªãã·ã§ã³ã®å¦çã«é¢ããåé¡ãä¿®æ£ããã 682 683 (63) IPv6 ã§ãã«ã¼ã¿ããéç¥ãããããããªããããæ£ããå¦çãã¦ã 684 ãªãåé¡ãä¿®æ£ããã 685 686 (64) IPv6 ã§ãéè¤ã¢ãã¬ã¹æ¤åºä¸ã« E_QOVR ã¨ã©ã¼ãçºçãããã¨ãã 687 ãåé¡ãä¿®æ£ããã 688 689 (65) IPv6 ã®è¿é£éç¥ã§ã誤ã£ããã©ã°ãè¨å®ãã¦ããåé¡ãä¿®æ£ããã 690 691 (66) IPv6 ã§ã 次ãããã 0 ã® IPv6 ãã¼ã¿ã°ã©ã ãåä¿¡ããã¨ããé 692 ä¿¡ãã ICMPv6 ã¨ã³ã¼ã¡ãã»ã¼ã¸ã«èª¤ããããåé¡ãä¿®æ£ããã 693 694 (67) IPv6 ã§ãè¿é£éç¥ã®ã«ã¼ã¿ãã©ã°ãæ£ããå¦çããªãåé¡ãä¿®æ£ããã 695 696 (68) IPv6 ã§ãè¿é£è¦è«ã®åéæéééããæ¨æºããé·ããªããã¨ããã 697 åé¡ãä¿®æ£ããã 698 699 (69) ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã¨ã³ããªæ°ãæå®ããã³ã³ãã¤ã«æã³ã³ã㣠700 ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_ND6_PREFIX_ENTRY ã追å ããã 701 702 (70) ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãªã¹ãï¼IPv6ï¼ã®ã¨ã³ããªæ°ãæå®ãã 703 ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ 704 NUM_IN6_IFADDR_ENTRY ã追å ããã 705 706 (71) 次ãããç¡ãã® IP ãã¼ã¿ã°ã©ã ãåä¿¡ããã¨ãã誤ã£ã ICMP6 㨠707 ã©ã¼ã¡ãã»ã¼ã¸ãåºåãã¦ããåé¡ãä¿®æ£ããã 708 709 (72) ãã£ãã©ã«ãã«ã¼ã¿ã®æå¹æéãåããæã«ã å¥ã®ãã£ãã©ã«ãã«ã¼ 710 ã¿ã«æ¥ç¶ã§ããªãåé¡ãä¿®æ£ããã 711 712 (73) IPv6 ã§ãã«ã¼ã¿ããéç¥ãããå°éå¯è½ç¶æ 713 ã®æå¹æéãæ£ããå¦ 714 çãã¦ããªãåé¡ãä¿®æ£ããã 715 716 (74) IPv6 ã§ãã«ã¼ã¿ããéç¥ãããã«ã¼ã¿æå¹æéãæ£ããå¦çãã¦ã 717 ãªãåé¡ãä¿®æ£ããã 718 719 (75) ãã«ããã£ã¹ãå®ã® ICMPv6 ã¨ã³ã¼ãªã¯ã¨ã¹ãã¸ã®å¿çã§ã éä¿¡å 720 721 ã¢ãã¬ã¹ãæ£ããè¨å®ãã¦ããªãåé¡ãä¿®æ£ããã 722 723 (76) Path MTU ã¨ãã¹ãæ 724 å ±ãã£ãã·ã¥ãå®è£ 725 ããã 726 727 (77) IPv6 ç¨ãã¹ããã£ãã·ã¥ã®ã¨ã³ããªæ°ãæå®ããã³ã³ãã¤ã«æã³ã³ 728 ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_IN6_HOSTCACHE_ENTRY ã追å ããã 729 730 (78) ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã« PPP ãé¸æããã¨ããã³ã³ãã¤ã«ã¨ 731 ã©ã¼ã«ãªãåé¡ãä¿®æ£ããã 732 733 (79) ãªãã«ã¨ã³ãã£ã¢ã³ã®ããã»ããµã§ã ã«ã¼ã¿éç¥ãæ£ããå¦çã㪠734 ãåé¡ãä¿®æ£ããã 735 736 (80) ãªãã«ã¨ã³ãã£ã¢ã³ã®ããã»ããµã§ã æçããããæ£ããå¦çã㪠737 ãåé¡ãä¿®æ£ããã 738 739 (81) ESP ç¨ã¨ãã¦ã ãããã¯ã¼ã¯ãããã¡ã®ãã©ã°ã« NB_FLG_DECRYPED 740 ã追å ããããã ããTINET ã¯ãIPSec ãç´æ¥ãµãã¼ãããªãã 741 742 (82) if_ed.c ã§ãIF_ETHER_NIC_HDR_ALIGN åã®ã¢ãã¬ã¹ã調ç¯ãããã 743 ã«å¤æ´ããã 744 745 (83) if_ed.c ã® NIC å²ãè¾¼ã¿ãã³ãã© if_ed_handler ã§ã ã¿ã¼ã²ãã 746 ä¾åé¨ã®å²è¾¼ã¿ã¯ãªã¢é¢æ° ed_inter_clear ãå¼åºãããã«å¤æ´ããã 747 748 (84) config/h8 ã«ãtinet_cpu_config.c ãæ°è¨ããã¿ã¼ã²ããä¾åé¨ã® 749 å²è¾¼ã¿ã¯ãªã¢é¢æ° ed_inter_clear ã追å ããããã ããH8 ã§ã¯ã 750 æ示çã«ããã»ããµã®å²ãè¾¼ã¿ãã¯ãªã¢ããå¿ 751 è¦ã¯ãªãããã ä½ã 752 ããªãé¢æ°ã«ãªã£ã¦ããã 753 754 (85) config/h8 ã® tinet_cpu_config.h ã«ã ã¿ã¼ã²ããä¾åé¨ã®å²è¾¼ã¿ 755 ã¯ãªã¢é¢æ° ed_inter_clear ã®ãããã¿ã¤ã宣è¨ã追å ããã 756 757 (86) config/h8 ã«ã tinet_cpu_config.c ãæ°è¨ãããã¨ã«ä¼´ãã 758 Makefile.tinet ã追å ããã 759 760 (87) IPv6 ã§ã ã«ã¼ã¿ããéç¥ãããå°éå¯è½ç¶æ 761 ã®æå¹æé 762 ï¼Reachable Timeï¼ã®åè¨ç®ã¯ãä»æ§ä¸ã¯ã0.5 ï½ 1.5 åã®ç¯å²ã§ 763 ã©ã³ãã ãªå¤ã«è¨å®ãããã ã¿ã¤ãã¼ã®èµ·åééãèæ 764 ®ãã¦ã 0.5 765 ï½ 1.45 ã®ç¯å²ã«ãªããã調æ´ããã 766 767 (88) ã¤ã¼ãµããããã£ãã¤ã¹ãã©ã¤ãã«ããã ãããã¯ã¼ã¯ãããã¡ã§ã 768 ã¢ã©ã¤ã³èª¿æ´ãè¡ã IF_ETHER_NIC_NET_BUF_ALIGN ã追å ããã 769 770 (89) IPv6 ã§ãã«ã¼ã¿ããéç¥ããããã¬ãã£ãã¯ã¹ã®æå¹æéãéãã 771 ç´å¾ã«ã æå¹ãªã¢ãã¬ã¹ã¨ãã¦å¦çãããã¨ãããåé¡ãä¿®æ£ããã 772 773 (90) ãªãã«ã¨ã³ãã£ã¢ã³ã®ããã»ããµã®ãã§ãã¯ãµã è¨ç®ã®å¦çå¹çã 774 æ¹åããã 775 776 4. ãªãªã¼ã¹ 1.2.x ãããªãªã¼ã¹ 1.3 ã¾ã§ã®å¤æ´ 777 778 (1) IPv6 ã§ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ 779 ã¹ãæå®ããã¨ãã ã³ã³ãã¤ã«ã¨ã©ã¼ãçºçããåé¡ãä¿®æ£ããã 780 781 (2) ãã§ãã¯ãµã è¨ç®ã§ã¨ã©ã¼ã«ãªãåé¡ãä¿®æ£ããï¼TOPPERS/TINET 782 ãã°ãã©ãã¯ã·ã¹ãã ID:1ï¼ã 783 784 (3) echos ã§ã TCP_ECHO_SRV_STACK_SIZE ã®äºéå®ç¾©è¦åãåºãåé¡ã 785 ä¿®æ£ããï¼TOPPERS/TINET ãã°ãã©ãã¯ã·ã¹ãã ID:2ï¼ã 786 787 (4) ãããã¯ã¼ã¯ãããã¡ã®åå¾å¤±æã®æã 常ã«è¦åãåºåããããã« 788 å¤æ´ããï¼TOPPERS/TINET ãã°ãã©ãã¯ã·ã¹ãã ID:3ï¼ã 789 790 (5) echos/echos ã®åé¡ãä¿®æ£ããï¼toppers-users 1724ï¼ã 791 792 (6) IP4_CFG_FRAGMENT ãæå®ããã¨ãã tinet/netapp/dbg_cons.c 㨠793 tinet/netinet/ip_output.c ã§ã ã³ã³ãã¤ã«ã¨ã©ã¼ã«ãªãåé¡ãä¿® 794 æ£ããã 795 796 (7) æ¡å¼µãããã®ä»ãã ICMPv6 ã¨ã³ã¼ãªã¯ã¨ã¹ãã«å¯¾ããå¿çã®åé¡ 797 ãä¿®æ£ããã 798 799 (8) è¿é£æ¢ç´¢ã®å°éå¯è½æ§ã®ç¢ºèªã§ã¿ã¤ã ã¢ã¦ãããå¾ã ã¢ãã¬ã¹è§£æ±º 800 ãåºæ¥ãªãåé¡ãä¿®æ£ããã 801 802 (9) TCP ã®å 803 ¥åã»ã°ã¡ã³ãã®åæ§æé¢æ°ã®æ½å¨çãªåé¡ç¹ãä¿®æ£ããã 804 805 (10) UDP ã®ã¿ä½¿ç¨ããã¨ãã® icmp6.c ã§ã_tinet_tcp_notify ã®åç 806 §ã¨ 807 ã©ã¼ãçºçããåé¡ãä¿®æ£ããã 808 809 (11) UDP ã®éä¿¡ã§ã ã¿ã¤ã ã¢ã¦ãããã¨ãããããã¯ã¼ã¯ãããã¡ãé 810 æ¾ããªãåé¡ãä¿®æ£ããã 811 812 (12) TCP ã®å¿çã§ã IP ã®ãã¤ãã¼ããµã¤ãºã誤ãåé¡ãä¿®æ£ãã 813 ï¼TOPPERS/TINET ãã°ãã©ãã¯ã·ã¹ãã ID:5ï¼ã 814 815 (13) udp_rcv_dat ã§ã ã¿ã¤ã ã¢ã¦ãã«æéãæå®ããã¨ããã¿ã¹ã¯ã®å® 816 è¡ããããã¯ãããåé¡ãä¿®æ£ããã 817 818 (14) ãããã¯ã¼ã¯çµ±è¨æ 819 å ±ã®è¨æ¸¬ã®å¤æ°ãµã¤ãºãã _int64_ ãå®ç¾©ãã 820 ã¦ããå ´åã®ã¿ UD ã¨ãªãããã«å¤æ´ããã 821 822 (15) JSP ãªãªã¼ã¹ 1.4.2 ã«æ«å®å¯¾å¿ãããå¤æ´å 823 容ã以ä¸ã«ç¤ºãã 824 825 [1] H8 ä¾åé¨ã®å²è¾¼ã¿ã¬ãã«å°å 826 ¥ã«ä¼´ããif_ed ã¤ã¼ãµãããã» 827 ãã£ãã¤ã¹ãã©ã¤ãã®å²è¾¼ã¿å¦çãå®è£ 828 ãã 829 config/h8/akih8_3069f/tinet_sys_config.c ã追å ããã 830 [2] ed_ena_interãed_dis_inter ã®å¼æ°ã¨æ»ãå¤ãå¤æ´ããã 831 [3] ed_ena_interãed_dis_inter ã®å¼æ°ã¨æ»ãå¤ã®å¤æ´ã«ä¼´ãã 832 tinet/netdev/if_ed/if_ed.c ãå¤æ´ããã 833 [4] ed_ena_interã ed_dis_inter ã®å®ç¾©ãã 834 tinet/netdev/if_ed/if_edreg.h ããã 835 config/h8/akih8_3069f/tinet_sys_config.c ã«å¤æ´ããã 836 837 (16) tcp_cls_cep ã§ã ã¿ã¤ã ã¢ã¦ãããå¾ãtcp_acp_cep ãã¨ã©ã¼ã«ãª 838 ãåé¡ãä¿®æ£ããã 839 840 (17) 誤ã£ã IP SDU é·ã® TCP ãªã»ããã»ã°ã¡ã³ããéä¿¡ããåé¡ãä¿®æ£ããã 841 842 (18) TCP ã®ã·ã¼ã±ã³ã¹çªå·ãã©ã³ãã ã«åæåãããªãåé¡ãä¿®æ£ããã 843 844 (19) ãªãã«ã¨ã³ãã£ã¢ã³ã®ããã»ããµã§ãIPv6 ãããã®ãã¼ã¸ã§ã³ãã 845 ã©ããã¯ã¯ã©ã¹ã ããã¼ã©ãã«ãã£ã¼ã«ãã誤ã£ã¦åç 846 §ã»å¤æ´ãã 847 åé¡ãä¿®æ£ããã 848 849 (20) ãªãã«ã¨ã³ãã£ã¢ã³ã®ããã»ããµã«ãããåé¡ã«å¯¾å¿ããããã®å¤ 850 æ´å 851 容ã以ä¸ã«ç¤ºãã 852 853 [1] tinet/net/net.h ã§ã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³æã«ã¨ã©ã¼ã 854 çºçããåé¡ãä¿®æ£ããã 855 [2] ã«ã¼ã¿éç¥ã®åä¿¡ã§ãæå¹æéã誤ãåé¡ãä¿®æ£ããã 856 857 (21) JSP ãªãªã¼ã¹ 1.4.2 ã«å¯¾å¿ãããå¤æ´å 858 容ã以ä¸ã«ç¤ºãã 859 860 [1] å²è¾¼ã¿ãã¯ã¿ã®çæã§ã¨ã©ã¼ã¨ãªãåé¡ãä¿®æ£ããã 861 [2] NE2000 äºæ NIC ã®ãã£ãã¤ã¹ãã©ã¤ã if_ed ã«ããã¦ãã· 862 ã¹ãã ä¾åã§ãã¹ã®åæåãè¡ã ed_bus_init ã¨ãå²è¾¼ã¿ã® 863 ã®åæåãè¡ã ed_inter_init ãæ°è¨ããã 864 [3] åå·éä¿¡è¨è£ 865 ãµã¼ãã¹è£½ NKEV-010H8ï¼H8/3069Fï¼ããµãã¼ãããã 866 867 (22) TCP ã«ããã¦ãéä¿¡å´ã§åæ§æããã åå¾ã¨éãªããããã»ã°ã¡ã³ 868 ãã®åæ§æãæ£ããè¡ãããªãåé¡ãä¿®æ£ããï¼TOPPERS/TINET ã 869 ã°ãã©ãã¯ã·ã¹ãã ID:8ï¼ã 870 871 (23) 以ä¸ã®ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãå¤æ´ããã 262 を指定して、 TINET のライブラリを作成しないようにした場合、リ 263 ンクができない問題を修正した。 264 265 (43) NE2000 互換 NIC(if_ed) 用イーサネットインタフェースドライバで、 266 送信するフレームのデータ部の長さが 46 オクテット未満の場合は、 267 データの終りからフレームの終わり(CRC を除く)まで 0 で埋める 268 ように変更した。 269 270 (44) ASP への対応に関する変更を以下に示す。 271 272 [1] ASP 用 TINET において TCP ヘッダのトレース出力機能で、 273 TCP_CFG_TRACE を指定するとコンパイルできない問題を修正した。 274 [2] ターゲット OS が ASP、ネットワーク層が IPv4 で、 データ 275 グラムの分割・再構成行うことを指定する IP4_CFG_FRAGMENT 276 を定義した時、SEM_IP4_FRAG_QUEUE が未定義のエラーとなる 277 問題を修正した。 278 [3] if_loop.c を ASP に対応させた。 279 [4] TINET のサンプルアプリケーションの Makefile を ASP のテ 280 ンプレートディレクトリ sample の Makefile から生成する 281 ように変更した。 282 [5] ASP テンプレートディレクトリを指定するオプション 283 -m <asptemplatedir> を tinet_asp_configure に追加した。 284 [6] コンフィギュレータ(cfg)のパス名を指定するオプション 285 -g <cfg> を tinet_asp_configure に追加した。 286 [7] ASP-1.7 以降の cfg1_out.c への対応を行った。 287 [8] ASP-1.8 以降の Makefile への対応を行うため、 。 288 Makefile.tinet の ASP 用 TINET コンフィギュレーションファ 289 イルに関係するルール・変数等を変更した。 ASP-1.8 から 290 $(LDFLAGS) と $(CFG1_OUT_LDFLAGS) の定義が別になった。 291 $(CFG1_OUT_LDFLAGS) が未定義であれば、 ASP-1.7 以前の処 292 理を行うように変更した。 293 [9] tinet/tinet_asp.cfg に #include "target_sil.h" を追加した。 294 [10] tinet/net/net.h のバイトオーダーの定義に関して、 ターゲッ 295 トが ASP の場合、SIL_ENDIAN_BIG と SIL_ENDIAN_LITTLE の 296 定義を変更しないように修正した。 297 これに対応して、 _NET_CFG_BYTE_ORDER、 298 _NET_CFG_LITTLE_ENDIAN、 299 _NET_CFG_BIG_ENDIAN を定義し、 TINET の内部で、 300 SIL_ENDIAN、 SIL_ENDIAN_BIG、SIL_ENDIAN_LITTLE を参照し 301 ないように修正した。 302 303 (45) JSP への対応に関する変更を以下に示す。 304 305 [1] JSP リリース 1.4.4 でコンパイルできない問題(Makefile 306 の不整合)を修正した。 307 [2] JSP テンプレートディレクトリを指定するオプション 308 -m <jsptemplatedir> を tinet_jsp_configure に追加した。 309 [3] tinet_sample.pdf、「2. サンプルアプリケーションの構築」、 310 「(1) TINET コンフィギュレーションスクリプトの実行」、 311 「[2] TOPPERS/JSP 用 TINET コンフィギュレーションスクリ 312 プトの実行」から、オプション -d を削除した。 313 314 2. リリース 1.4.x から 1.5 までの変更 315 316 (1) データグラム再構成用ネットワークバッファの定義に、 317 IF_ETHER_NIC_NET_BUF_ALIGN が不足していた問題を修正した。 318 319 (2) TINET プロトコルスタックの記述を、 TOPPERS/ASP カーネルで規定 320 されている TOPPERS 共通データ型に変更した。 321 322 (3) UDP で、 ノンブロッキングコール機能を組み込まず、UDP 通信端点 323 に UDP_PORTANY を指定したとき、ポート番号が自動的に割り当てら 324 れない問題を修正した。 325 326 (4) コンパイル時コンフィギュレーションパラメータ SUPPORT_IPSEC を 327 新設した。これは、IPSEC を処理するための指定である。 ただし、 328 TINET は、 IPSEC を処理するためのフックのみを ip_input.c と 329 ip_output.c 用意しているたけで、 IPSEC 自体は実装していないの 330 で、別に組み込む必要がある。 331 332 (5) TOPPERS/ASP に対応した。 333 334 (6) ネットワークインタフェースの PPP とループバックを参考実装とした。 335 336 (7) IPv4/IPv4 データグラムの設定の、 4 オクテット境界までパディン 337 グで埋める処理で、 ネットワークバッファの領域外にパディングを 338 書き込むことがある問題を修正した。 339 340 (8) PPP で、 サーバからの IP アドレス自動取得ができない問題を修正した。 341 342 (9) IPv4 の入力処理で、上位層が ICMP 以外の場合に行うオプションの 343 消去をヘッダチェックサムの検査の後に変更した。 344 345 (10) IPv4 の入力処理で、分割のチェックから RF ビットを外した。 346 347 (11) IPv6 で、通信帯域を食いつぶす攻撃への対応のため、 タイプ 0 経 348 路制御ヘッダの処理を行わないように変更した。 349 350 (12) TCP の出力で、 送信サイズを通信相手の最大セグメントサイズに調 351 整する場合、 誤ったサイズに調整することがある問題を修正した。 352 353 (13) 通信相手の TCP の MSS オプションの処理で、 記録する値を、 354 TCP_MINMSS(216)から MAX_TCP_SND_SEG(標準は、 IPv4 が 512、 355 IPv6 が 1024)に制限するように変更した。 356 357 (14) IPv6 で、リンクローカルアドレスの重複を検出した場合、それ以降 358 の近隣探索パケットを出力しなように変更した。 359 360 (15) IPv6 で、ルータ通知のプレフィックス長が不正でも処理を継続し、 361 プレフィックスリストに登録する。 また、オンリンク・フラグが有 362 効であれば、同一 LAN 内のアドレスとして有効となるように変更した。 363 364 (16) ITRON TCP/IP API の仕様に定義されているコールバック関数の引数 365 p_parblk に関して、アドレス渡しが正しいが、値渡しとしていた実 366 装上の誤りを修正した。また、TINET リリース 1.4 以前と互換性を 367 維持するために値渡しにするコンパイル時コンフィギュレーション 368 パラメータ TCP_CFG_NON_BLOCKING_COMPAT14 と 369 UDP_CFG_NON_BLOCKING_COMPAT14 を新設した。 370 371 (17) 能動オープン(TCP_CON_CEP 呼出し)でノンブロッキングコールを 372 行った時に、同時オープン(TCP の状態遷移が「SYN 送信」→「SYN 373 受信」→「コネクション確立」)が発生した場合、 コールバック関 374 数が呼出されない問題を修正した。 375 376 (18) タスクからの Time Wait 状態の TCP 通信単点分離機能を組込んだ 377 場合に、 ACK セグメントを再送する時、ポート番号のバイトオーダー 378 の変換が誤っていた問題を修正した。 379 380 (19) TCP で Keep Alive を有効にした時、ウィンドサイズが 0 のセグメ 381 ントが送信される問題を修正した。 382 383 (20) Makefile に NO_USE_TINET_LIBRARY = true を指定して、 ライブラ 384 リ化させない方法における問題を修正した。 385 386 (21) TOPPERS/ASP の実行環境、 GCC 3.x 系の開発環境でアプリケーショ 387 ンプログラムを構築した時、ethernet ヘッダ構造体のサイズが不一 388 致になり、 動作が不安定になることがある問題を修正した。 389 390 (22) H8 依存部で、 tinet_sys_config.h に指定されている ED_IPM の設 391 定を、IPM_LEVEL1 から IPM_LEVEL0 に変更した。 392 393 3. リリース 1.3.x から 1.4 までの変更 394 395 (1) tinet コンフィギュレーションに TCP/IPv4 受付口の予約 ID を定 396 義する VRID_TCP_REP を追加した。 397 398 (2) tinet コンフィギュレーションに TCP/IPv4 通信端点の予約 ID を 399 定義する VRID_TCP_CEP を追加した。 400 401 (3) tinet コンフィギュレーションに UDP/IPv4 通信端点の予約 ID を 402 定義する VRID_UDP_CEP を追加した。 403 404 (4) tinet コンフィギュレーションに TCP/IPv6 受付口の予約 ID を定 405 義する VRID_TCP6_REP を追加した。 406 407 (5) tinet コンフィギュレーションに TCP/IPv6 通信端点の予約 ID を 408 定義する VRID_TCP6_CEP を追加した。 409 410 (6) tinet コンフィギュレーションに UDP/IPv6 通信端点の予約 ID を 411 定義する VRID_UDP6_CEP を追加した。 412 413 (7) ITRON TCP/IP API の TCP の拡張機能を有効にするコンパイル時コ 414 ンフィギュレーションパラメータ TCP_CFG_EXTENTIONS を追加した。 415 416 (8) ITRON TCP/IP API の UDP の拡張機能を有効にするコンパイル時コ 417 ンフィギュレーションパラメータ UDP_CFG_EXTENTIONS を追加した。 418 419 (9) 一般定数マクロ TCP_REP_NONE を追加した。値は(0)。 420 421 (10) 一般定数マクロ TCP_CEP_NONE を追加した。値は(0)。 422 423 (11) 一般定数マクロ UDP_CEP_NONE を追加した。値は(0)。 424 425 (12) 全域変数として、 ipv6_addrany をマクロで定義した。 実体は、 426 in6_addr_unspecified であり、これに伴って、プロトコルスタック 427 内部名のリネームから、in6_addr_unspecified を外した。 428 429 (13) UDP の通信端点の myportno に UDP_PORTANY を指定できない問題を 430 修正した。 431 432 (14) ITRON TCP/IP API の TCP/IPv4 受付口を動的に生成する API の 433 cre_tcp_rep を追加した。 434 435 (15) ITRON TCP/IP API の TCP 通信端点を動的に生成する API の 436 cre_tcp_cep を追加した。 437 438 (16) ITRON TCP/IP API の UDP/IPv4 通信端点を動的に生成する API の 439 cre_udp_cep を追加した。 440 441 (17) ITRON TCP/IP API の TCP 受付口を動的に削除する API の 442 del_tcp_rep を追加した。 443 444 (18) ITRON TCP/IP API の TCP 通信端点を動的に削除する API の 445 del_tcp_cep を追加した。 446 447 (19) ITRON TCP/IP API の UDP 通信端点を動的に削除する API の 448 del_udp_cep を追加した。 449 450 (20) ITRON TCP/IP API の TCP/IPv6 受付口を動的に生成する API の 451 cre_tcp6_rep を追加した。 452 453 (21) ITRON TCP/IP API の UDP/IPv6 通信端点を動的に生成する API の 454 cre_udp6_cep を追加した。 455 456 (22) ITRON TCP/IP API の TCP 通信端点オプションを設定する API の 457 tcp_set_opt を追加した。 458 459 (23) ITRON TCP/IP API の TCP 通信端点オプションを読出す API の 460 tcp_get_opt を追加した。 461 462 (24) ITRON TCP/IP API の UDP 通信端点オプションを設定する API の 463 udp_set_opt を追加した。 464 465 (25) ITRON TCP/IP API の UDP 通信端点オプションを読出す API の 466 udp_get_opt を追加した。 467 468 (26) 内部的に使用している構造体名を変更した。 469 470 [1] struct t_tcp4_ccep → struct t_tcp4_cep 471 [2] struct t_tcp6_ccep → struct t_tcp6_cep 472 [3] T_TCP_CCEP → T_TCP_IN_CCEP → T_TCP_CEP 473 [4] T_TCP_TW_CCEP → T_TCP_TWCEP 474 [5] T_TCP4_CCEP → T_TCP4_CEP 475 [6] T_TCP4_TW_CCEP → T_TCP4_TWCEP 476 [7] T_TCP6_CCEP → T_TCP6_CEP 477 [8] T_TCP4_TW_CCEP → T_TCP4_TWCEP 478 [9] T_TCP_CREP → T_TCP_IN_CREP → T_TCP_REP 479 [10] T_TCP4_CREP → T_TCP4_REP 480 [11] T_TCP6_CREP → T_TCP6_REP 481 [12] T_UDP_CCEP → T_UDP_IN_CCEP → T_UDP_CEP 482 [13] T_UDP4_CCEP → T_UDP4_CEP 483 [14] T_UDP6_CCEP → T_UDP6_CEP 484 485 (27) 内部的に使用している変数・配列名を変更した。 486 487 [1] tcp_crep → tcp_rep 488 [2] tcp_ccep → tcp_cep 489 [3] tcp_tw_ccep → tcp_twcep 490 [4] udp_ccep → udp_cep 491 [5] tmax_tcp_crepid → tmax_tcp_repid 492 [6] tmax_tcp_ccepid → tmax_tcp_cepid 493 [7] tmax_udp_ccepid → tmax_udp_cepid 494 495 (28) 内部的に使用しているマクロ名を変更した。 496 497 [1] VAID_TCP_CREPID → VAID_TCP_REPID 498 [2] VAID_TCP_CCEPID → VAID_TCP_CEPID 499 [3] VAID_UDP_CCEPID → VAID_UDP_CEPID 500 [4] INDEX_TCP_CREP → INDEX_TCP_REP 501 [5] INDEX_TCP_CCEP → INDEX_TCP_CEP 502 [6] INDEX_UDP_CCEP → INDEX_UDP_CEP 503 [7] GET_TCP_CREP → GET_TCP_REP 504 [8] GET_TCP_CCEP → GET_TCP_CEP 505 [9] GET_UDP_CCEP → GET_UDP_CEP 506 [10] GET_TCP_CREPID → GET_TCP_REPID 507 [11] GET_TCP_CCEPID → GET_TCP_CEPID 508 [12] GET_UDP_CCEPID → GET_UDP_CEPID 509 [13] GET_TCP_TW_CCEPID → GET_TCP_TWCEPID 510 [14] TMIN_TCP_RCEPID → TMIN_TCP_REPID 511 [15] TMIN_TCP_CCEPID → TMIN_TCP_CEPID 512 [16] TMIN_UDP_CCEPID → TMIN_UDP_CEPID 513 [17] TMIN_TCP_TW_CCEPID → TMIN_TCP_TWCEPID 514 [18] TNUM_TCP_RCEPID → TNUM_TCP_REPID 515 [19] TNUM_TCP_CCEPID → TNUM_TCP_CEPID 516 [20] TNUM_UDP_CCEPID → TNUM_UDP_CEPID 517 518 (29) 内部的に使用しているカーネルオブジェクト名を変更した。 519 520 [1] SEM_TCP_CCEP → SEM_TCP_CEP 521 [2] SEM_UDP_CCEP → SEM_UDP_CEP 522 523 (30) TW 用 TCP 通信端点で、不要なメンバを削除した。 524 525 (31) 緊急データの最後のバイトのオフセットを規定するコンパイル時コ 526 ンフィギュレーションパラメータ TCP_CFG_URG_OFFSET を追加した。 527 528 (32) ITRON TCP/IP API の緊急データ受信 API の tcp_rcv_oob を追加した。 529 530 (33) ITRON TCP/IP API の緊急データ送信 API の tcp_snd_oob を追加した。 531 532 (34) UDP のコールバック用受信データキューを使用しないようにした。 533 534 (35) ノンブロッキングコールを組込む場合にリンクされる関数の定義を、 535 udp_usrreq.c から分離し、 udp_usrreq_nblk.c に移動した。 536 udp_usrreq_nblk.c は、udp_usrreq.c にインクルードする。 537 538 (36) TCP で、再送を 12 回行なっても、通信が回復しないとき、 コネク 539 ションを破棄するリセットセグメントが送信されない問題を修正した。 540 541 (37) TCP で、ACK を正常に送信しないことがある問題を修正した。 542 543 (38) TCP で、 高速再転送と高速リカバリが正常に行なわれないことがあ 544 る問題を修正した。 545 546 (39) 受信ウィンドバッファの省コピー機能を使用したとき、 TCP のハー 547 フクローズ状態で、 データを全て受信できないことがある問題を修 548 正した。 549 550 (40) ビッグエンディアンのプロセッサにおいて、 TCP ヘッダのトレース 551 出力で、 正しい値を表示しない問題を修正した。 552 553 (41) TCP ヘッダのトレース出力で、 送受信が混ざる場合がある問題を修 554 正した。 555 556 (42) コールバック用 UDP 受信キューサイズを指定する 557 NUM_DTQ_UDP_CB_RCVQ は、アルゴリズムの変更により不要になった。 558 559 (43) TCP 受付口が tinet_$(UNAME).cfg に指定されていない場合、 560 TCP_CFG_PASSIVE_OPEN を未定義にしなければ、リンク時に未定義エ 561 ラーになる問題を修正した。 562 563 (44) T_NET_BUF_IF_PDU で、フレームの終わりの境界の調整量を指定する 564 イーサネットインタフェース依存パラメータ定義 565 IF_PDU_HDR_PADDING を追加した。 566 567 (45) 内部的に使用している構造体名を変更した。 568 569 [1] t_net_buf_reassm → t_net_buf4_reassm 570 [2] T_NET_BUF_REASSM → T_NET_BUF4_REASSM 571 572 (46) 再構成バッファサイズのネットワークバッファ数を指定するコンパ 573 イル時コンフィギュレーションパラメータ NUM_MPF_NET_BUF_REASSM 574 を NUM_MPF_NET_BUF4_REASSM に変更し、 IPv4 用の再構成バッファ 575 サイズのネットワークバッファ数を指定するパラメータとした。 576 577 (47) ICMP6 エラーの出力時に、IPv6 MMTU(1,280 オクテット)を超える 578 データグラムを出力する問題を修正した。 579 580 (48) IPv6 データグラム再構成用ネットワークバッファ獲得タイムアウト 581 を指定するコンパイル時コンフィギュレーションパラメータ 582 TMO_IP6_FRAG_GET_NET_BUF を追加した。 583 584 (49) IPv6 データグラムの分割・再構成行う場合に指定するコンパイル時 585 コンフィギュレーションパラメータ IP6_CFG_FRAGMENT を追加した。 586 587 (50) IPv6 データグラム再構成キューサイズを指定するコンパイル時コン 588 フィギュレーションパラメータ NUM_IP6_FRAG_QUEUE を追加した。 589 標準値は 2 である。 590 591 (51) IPv6 データグラム再構成用ネットワークバッファのサイズを指定す 592 るコンパイル時コンフィギュレーションパラメータ 593 IP6_CFG_FRAG_REASSM_SIZE を追加した。標準値は 4096 である。 594 595 (52) ICMPv6 で、受信したチェックサムの計算を誤ることがある問題を修 596 正した。 597 598 (53) IPv6 で、 認識できない次ヘッダコードを入力したとき、 送信する 599 ICMPv6 エラーメッセージに誤りがある問題を修正した。 600 601 (54) IPv6 の Traffic Class と Flow Label をサポートしないが、 これ 602 らに 0 以外の値を設定して送信することがある問題を修正した。 603 604 (55) IPv6 で、 ホップリミットが 0 の ICMPv6 エコー要求パケットを受 605 信したとき、 送信する ICMPv6 エコーメッセージに誤りがある問題 606 を修正した。 607 608 (56) IPv6 で、重複アドレス検出時に、誤ったあて先アドレスのデータグ 609 ラムを受信したとき、 誤って自アドレスが重複していると認識して 610 しまうことがある問題を修正した。 611 612 (57) IPv6 で、生存期間が切れたプレフィックスのアドレスが有効になる 613 事がある問題を修正した。 614 615 (58) IPv6 で、近隣探索キャッシュの状態遷移に一部誤りがあった問題を 616 修正した。 617 618 (59) IPv6 で、近隣探索要請マルチキャストデータグラムの送信元アドレ 619 スとして誤ったアドレスを設定する事がある問題を修正した。 620 621 (60) IPv6 で、ルータ要請の再送時間間隔が、誤っていた問題(3 秒→ 4 622 秒)を修正した。 623 624 (61) セグメントの異なるホストに送信するとき、 ディフォルトルータの 625 検索に失敗することがある問題を修正した。 626 627 (62) 認識できない近隣探索オプションの処理に関する問題を修正した。 628 629 (63) IPv6 で、ルータから通知されたホップリミットを正しく処理してい 630 ない問題を修正した。 631 632 (64) IPv6 で、重複アドレス検出中に E_QOVR エラーが発生することがあ 633 る問題を修正した。 634 635 (65) IPv6 の近隣通知で、誤ったフラグを設定していた問題を修正した。 636 637 (66) IPv6 で、 次ヘッダが 0 の IPv6 データグラムを受信したとき、送 638 信する ICMPv6 エコーメッセージに誤りがある問題を修正した。 639 640 (67) IPv6 で、近隣通知のルータフラグを正しく処理しない問題を修正した。 641 642 (68) IPv6 で、近隣要請の再送時間間隔が、標準より長くなることがある 643 問題を修正した。 644 645 (69) プレフィックスリストのエントリ数を指定するコンパイル時コンフィ 646 ギュレーションパラメータ NUM_ND6_PREFIX_ENTRY を追加した。 647 648 (70) インタフェースのアドレスリスト(IPv6)のエントリ数を指定する 649 コンパイル時コンフィギュレーションパラメータ 650 NUM_IN6_IFADDR_ENTRY を追加した。 651 652 (71) 次ヘッダ無しの IP データグラムを受信したとき、誤った ICMP6 エ 653 ラーメッセージを出力していた問題を修正した。 654 655 (72) ディフォルトルータの有効時間が切れた時に、 別のディフォルトルー 656 タに接続できない問題を修正した。 657 658 (73) IPv6 で、ルータから通知された到達可能状態の有効時間を正しく処 659 理していない問題を修正した。 660 661 (74) IPv6 で、ルータから通知されたルータ有効時間を正しく処理してい 662 ない問題を修正した。 663 664 (75) マルチキャスト宛の ICMPv6 エコーリクエストへの応答で、 送信元 665 アドレスを正しく設定していない問題を修正した。 666 667 (76) Path MTU とホスト情報キャッシュを実装した。 668 669 (77) IPv6 用ホストキャッシュのエントリ数を指定するコンパイル時コン 670 フィギュレーションパラメータ NUM_IN6_HOSTCACHE_ENTRY を追加した。 671 672 (78) ネットワークインタフェースに PPP を選択したとき、コンパイルエ 673 ラーになる問題を修正した。 674 675 (79) リトルエンディアンのプロセッサで、 ルータ通知を正しく処理しな 676 い問題を修正した。 677 678 (80) リトルエンディアンのプロセッサで、 断片ヘッダを正しく処理しな 679 い問題を修正した。 680 681 (81) ESP 用として、 ネットワークバッファのフラグに NB_FLG_DECRYPED 682 を追加した。ただし、TINET は、IPSec を直接サポートしない。 683 684 (82) if_ed.c で、IF_ETHER_NIC_HDR_ALIGN 分のアドレスを調節するよう 685 に変更した。 686 687 (83) if_ed.c の NIC 割り込みハンドラ if_ed_handler で、 ターゲット 688 依存部の割込みクリア関数 ed_inter_clear を呼出すように変更した。 689 690 (84) config/h8 に、tinet_cpu_config.c を新設し、ターゲット依存部の 691 割込みクリア関数 ed_inter_clear を追加した。ただし、H8 では、 692 明示的にプロセッサの割り込みをクリアする必要はないため、 何も 693 しない関数になっている。 694 695 (85) config/h8 の tinet_cpu_config.h に、 ターゲット依存部の割込み 696 クリア関数 ed_inter_clear のプロトタイプ宣言を追加した。 697 698 (86) config/h8 に、 tinet_cpu_config.c を新設したことに伴い、 699 Makefile.tinet も追加した。 700 701 (87) IPv6 で、 ルータから通知された到達可能状態の有効時間 702 (Reachable Time)の再計算は、仕様上は、0.5 ~ 1.5 倍の範囲で 703 ランダムな値に設定するが、 タイマーの起動間隔を考慮して、 0.5 704 ~ 1.45 の範囲になるよう調整した。 705 706 (88) イーサネットディバイスドライバにより、 ネットワークバッファで、 707 アライン調整を行う IF_ETHER_NIC_NET_BUF_ALIGN を追加した。 708 709 (89) IPv6 で、ルータから通知されたプレフィックスの有効時間が過ぎた 710 直後に、 有効なアドレスとして処理することがある問題を修正した。 711 712 (90) リトルエンディアンのプロセッサのチェックサム計算の処理効率を 713 改善した。 714 715 4. リリース 1.2.x からリリース 1.3 までの変更 716 717 (1) IPv6 で、ネットワークインタフェースにループバックインタフェー 718 スを指定したとき、 コンパイルエラーが発生する問題を修正した。 719 720 (2) チェックサム計算でエラーになる問題を修正した(TOPPERS/TINET 721 バグトラックシステム ID:1)。 722 723 (3) echos で、 TCP_ECHO_SRV_STACK_SIZE の二重定義警告が出る問題を 724 修正した(TOPPERS/TINET バグトラックシステム ID:2)。 725 726 (4) ネットワークバッファの取得失敗の時、 常に警告を出力するように 727 変更した(TOPPERS/TINET バグトラックシステム ID:3)。 728 729 (5) echos/echos の問題を修正した(toppers-users 1724)。 730 731 (6) IP4_CFG_FRAGMENT を指定したとき、 tinet/netapp/dbg_cons.c と 732 tinet/netinet/ip_output.c で、 コンパイルエラーになる問題を修 733 正した。 734 735 (7) 拡張ヘッダの付いた ICMPv6 エコーリクエストに対する応答の問題 736 を修正した。 737 738 (8) 近隣探索の到達可能性の確認でタイムアウトした後、 アドレス解決 739 が出来ない問題を修正した。 740 741 (9) TCP の入力セグメントの再構成関数の潜在的な問題点を修正した。 742 743 (10) UDP のみ使用するときの icmp6.c で、_tinet_tcp_notify の参照エ 744 ラーが発生する問題を修正した。 745 746 (11) UDP の送信で、 タイムアウトしたとき、ネットワークバッファを開 747 放しない問題を修正した。 748 749 (12) TCP の応答で、 IP のペイロードサイズを誤る問題を修正した 750 (TOPPERS/TINET バグトラックシステム ID:5)。 751 752 (13) udp_rcv_dat で、 タイムアウトに時間を指定したとき、タスクの実 753 行がブロックされる問題を修正した。 754 755 (14) ネットワーク統計情報の計測の変数サイズを、 _int64_ が定義され 756 ている場合のみ UD となるように変更した。 757 758 (15) JSP リリース 1.4.2 に暫定対応した。変更内容を以下に示す。 759 760 [1] H8 依存部の割込みレベル導入に伴い。if_ed イーサネット・ 761 ディバイスドライバの割込み処理を実装する 762 config/h8/akih8_3069f/tinet_sys_config.c を追加した。 763 [2] ed_ena_inter、ed_dis_inter の引数と戻り値を変更した。 764 [3] ed_ena_inter、ed_dis_inter の引数と戻り値の変更に伴い、 765 tinet/netdev/if_ed/if_ed.c も変更した。 766 [4] ed_ena_inter、 ed_dis_inter の定義を、 767 tinet/netdev/if_ed/if_edreg.h から、 768 config/h8/akih8_3069f/tinet_sys_config.c に変更した。 769 770 (16) tcp_cls_cep で、 タイムアウトした後、tcp_acp_cep がエラーにな 771 る問題を修正した。 772 773 (17) 誤った IP SDU 長の TCP リセットセグメントを送信する問題を修正した。 774 775 (18) TCP のシーケンス番号がランダムに初期化されない問題を修正した。 776 777 (19) リトルエンディアンのプロセッサで、IPv6 ヘッダのバージョン、ト 778 ラヒッククラス、 フローラベルフィールドを誤って参照・変更する 779 問題を修正した。 780 781 (20) リトルエンディアンのプロセッサにおける問題に対応するための変 782 更内容を以下に示す。 783 784 [1] tinet/net/net.h で、 コンフィギュレーション時にエラーが 785 発生する問題を修正した。 786 [2] ルータ通知の受信で、有効時間を誤る問題を修正した。 787 788 (21) JSP リリース 1.4.2 に対応した。変更内容を以下に示す。 789 790 [1] 割込みベクタの生成でエラーとなる問題を修正した。 791 [2] NE2000 互換 NIC のディバイスドライバ if_ed において、シ 792 ステム依存でバスの初期化を行う ed_bus_init と、割込みの 793 の初期化を行う ed_inter_init を新設した。 794 [3] 品川通信計装サービス製 NKEV-010H8(H8/3069F)をサポートした。 795 796 (22) TCP において、送信側で再構成され、 前後と重なりがあるセグメン 797 トの再構成が正しく行われない問題を修正した(TOPPERS/TINET バ 798 グトラックシステム ID:8)。 799 800 (23) 以下のコンパイル時コンフィギュレーションパラメータを変更した。 872 801 873 802 NUM_MPF_NET_BUF_4096 874 â803 ↓ 875 804 NUM_MPF_NET_BUF_REASSM 876 805 877 ãã ãã tinet_config.h ã§ããªãªã¼ã¹ 1.2 ã¨ã®äºææ§ã確ä¿ãã¦ããã 878 879 (24) ãããã¯ã¼ã¯ãããã¡ã®åé·ãã®æå®ã§ãç¡æå®ã¾ã㯠0 ãæå®ã 880 ãå ´åã¯ã 対å¿ããåºå®ã¡ã¢ãªãã¼ã«ãå²å½ã¦ãªãããã«å¤æ´ããã 881 882 (25) ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã«ã åæ§æãããã¡ 883 ãµã¤ãºãæå®ãã IP4_CFG_FRAG_REASSM_SIZE ãæ°è¨ããã 884 885 (26) ãããã¯ã¼ã¯ãããã¡ã«æ°ãããµã¤ãºã追å ããã 886 887 [1] T_NET_BUF_IPV6_CSEGããµã¤ãºã¯ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ 888 ã®ããããµã¤ãº + IP ããããµã¤ãº + TCP ããããµã¤ãº 889 [2] T_NET_BUF_IP_MSS ã§ã ãµã¤ãºã¯ IP_MSSï¼ãããã¯ã¼ã¯ã¤ã³ 890 ã¿ãã§ã¼ã¹ã®ããããµã¤ãº + 576 ãªã¯ãããï¼ã 891 [3] T_NET_BUF_IPV6_MMTUããµã¤ãºã¯ IPV6_MMTUï¼ãããã¯ã¼ã¯ã¤ 892 ã³ã¿ãã§ã¼ã¹ã®ããããµã¤ãº + 1280 ãªã¯ãããï¼ã 893 894 (27) TINET å 895 é¨ã®ã¿ã¤ã ã¢ã¦ãå¤ã ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãå 896 é¨ã®ã¿ 897 ã¹ã¯ã®åªå 898 度ããã¼ã¿ãã¥ã¼ã®ã¨ã³ããªæ°ã åã³ä»¥ä¸ã®ã³ã³ãã¤ã« 899 æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã¯ãtinet/tinet_config.h 㧠900 å®ç¾©ããããã«å¤æ´ããã 806 ただし、 tinet_config.h で、リリース 1.2 との互換性を確保してある。 807 808 (24) ネットワークバッファの各長さの指定で、無指定または 0 を指定し 809 た場合は、 対応する固定メモリプールを割当てないように変更した。 810 811 (25) コンパイル時コンフィギュレーションパラメータに、 再構成バッファ 812 サイズを指定する IP4_CFG_FRAG_REASSM_SIZE を新設した。 813 814 (26) ネットワークバッファに新しいサイズを追加した。 815 816 [1] T_NET_BUF_IPV6_CSEG、サイズはネットワークインタフェース 817 のヘッダサイズ + IP ヘッダサイズ + TCP ヘッダサイズ 818 [2] T_NET_BUF_IP_MSS で、 サイズは IP_MSS(ネットワークイン 819 タフェースのヘッダサイズ + 576 オクテット)。 820 [3] T_NET_BUF_IPV6_MMTU、サイズは IPV6_MMTU(ネットワークイ 821 ンタフェースのヘッダサイズ + 1280 オクテット)。 822 823 (27) TINET 内部のタイムアウト値、 タスクのスタックサイズ、内部のタ 824 スクの優先度、データキューのエントリ数、 及び以下のコンパイル 825 時コンフィギュレーションパラメータは、tinet/tinet_config.h で 826 定義するように変更した。 901 827 902 828 MAX_TCP_RCV_SEG … … 905 831 LOMTU 906 832 907 (28) TCP ã®ååãªã¼ãã³ããµãã¼ãããå ´åã«æå®ãã 908 SUPPORT_TCP_POPEN ã追å ããã 909 910 (29) ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã«ã 911 NUM_TCP_TW_CEP_ENTRY ã追å ãããããã¯ãã¿ã¹ã¯ãã Time Wait 912 ç¶æ 913 ã® TCP é信端ç¹ãåé¢ããæ©è½ã§ã Time Wait ç¶æ 914 ã® TCP é 915 信端ç¹ã®ã¨ã³ããªæ°ãæå®ãããæå®ããªããã 0 ãæå®ããã¨ã¿ 916 ã¹ã¯ãã Time Wait ç¶æ 917 ã® TCP é信端ç¹ãåé¢ããæ©è½ãçµè¾¼ã¾ãªãã 918 919 (30) TCP ã®ååãªã¼ãã³ããµãã¼ãããå ´åã«æå®ãã 920 SUPPORT_TCP_POPEN 㯠TCP_CFG_PASSIVE_OPEN ã®ããã¥ã¡ã³ã誤ãã 921 922 (31) tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãã tinet_cfg.c ã® TCP_CRE_CEP 923 ã«å¯¾å¿ããæ§é ä½ T_TCP_CCEP ã®ãã£ã¼ã«ã sbuf 㨠rbuf ã®å¤ã® 924 åã« (VP) ãã ãã£ã¼ã«ã callback ã®å¤ã®åã« (FP) ãåºåãã 925 ããã«å¤æ´ããã 926 927 (32) tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãã tinet_cfg.c ã® 928 TCP6_CRE_CEP ã«å¯¾å¿ããæ§é ä½ T_TCP6_CCEP ã®ãã£ã¼ã«ã sbuf 929 㨠rbuf ã®å¤ã®åã« (VP) ãã ãã£ã¼ã«ã callback ã®å¤ã®åã« 930 (FP) ãåºåããããã«å¤æ´ããã 931 932 (33) tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãã tinet_cfg.c ã« 833 (28) TCP の受動オープンをサポートする場合に指定する 834 SUPPORT_TCP_POPEN を追加した。 835 836 (29) コンパイル時コンフィギュレーションパラメータに、 837 NUM_TCP_TW_CEP_ENTRY を追加した。これは、タスクから Time Wait 838 状態の TCP 通信端点を分離する機能で、 Time Wait 状態の TCP 通 839 信端点のエントリ数を指定する。指定しないか、 0 を指定するとタ 840 スクから Time Wait 状態の TCP 通信端点を分離する機能を組込まない。 841 842 (30) TCP の受動オープンをサポートする場合に指定する 843 SUPPORT_TCP_POPEN は TCP_CFG_PASSIVE_OPEN のドキュメント誤り。 844 845 (31) tinet コンフィギュレータが生成する tinet_cfg.c の TCP_CRE_CEP 846 に対応する構造体 T_TCP_CCEP のフィールド sbuf と rbuf の値の 847 前に (VP) を、 フィールド callback の値の前に (FP) を出力する 848 ように変更した。 849 850 (32) tinet コンフィギュレータが生成する tinet_cfg.c の 851 TCP6_CRE_CEP に対応する構造体 T_TCP6_CCEP のフィールド sbuf 852 と rbuf の値の前に (VP) を、 フィールド callback の値の前に 853 (FP) を出力するように変更した。 854 855 (33) tinet コンフィギュレータが生成する tinet_cfg.c に 933 856 934 857 #include <netinet/in_itron.h> 935 858 936 ãåºåããããã«å¤æ´ããã 937 938 (34) TCP é信端ç¹ã§ã éåä¿¡ç¨ã®äºã¤ã®ã»ããã©ãã¤ãã³ããã©ã°ã«ã 939 ãå®è£ 940 ããã 941 942 (35) TCP é信端ç¹ã®éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãå®è£ 943 ããã 944 945 (36) TCP é信端ç¹ã®éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨ã«ã ä»¥ä¸ 946 ã«ç¤ºãã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã追å ããã 947 948 [1] TCP_CFG_RWBUF_CSAVE_ONLYã TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããã 949 ãã¡ã®çã³ãã¼æ©è½ãçµè¾¼ã¿ã ãã®æ©è½ã®ã¿ä½¿ç¨ããã 950 [2] TCP_CFG_RWBUF_CSAVEãTCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ 951 ã®çã³ãã¼æ©è½ãçµè¾¼ãã 952 [3] TCP_CFG_SWBUF_CSAVE_ONLYã TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããã 953 ãã¡ã®çã³ãã¼æ©è½ãçµè¾¼ã¿ã ãã®æ©è½ã®ã¿ä½¿ç¨ããã 954 [4] TCP_CFG_SWBUF_CSAVEãTCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ 955 ã®çã³ãã¼æ©è½ãçµè¾¼ãã 956 [5] TCP_CFG_RWBUF_CSAVE_MAX_QUEUESã TCP é信端ç¹ã®åä¿¡ã¦ã£ 957 ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ 958 ã®æ大ã¨ã³ããªæ°ããã ãã æ£å¸¸ã«åä¿¡ããã»ã°ã¡ã³ããç ´ 959 æ£ããããã åéåæ°ãå¢å ãããã¾ããæå®ããªãã¨å¶é 960 ããªããæ¨æºå¤ã¯ 2 ã§ããã 961 [6] TCP_CFG_SWBUF_CSAVE_MAX_SIZEã TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ 962 ããããã¡ã®çã³ãã¼æ©è½ã§ã éä¿¡ã¦ã£ã³ããããã¡ã«ä½¿ç¨ 963 ãããããã¯ã¼ã¯ãããã¡ã®æ大ãµã¤ãºã æ¨æºå¤ã¯ 964 IF_PDU_SIZE ã§ããã 965 [7] TCP_CFG_SWBUF_CSAVE_MIN_SIZEã TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ 966 ããããã¡ã®çã³ãã¼æ©è½ã§ã éä¿¡ã¦ã£ã³ããããã¡ã«ä½¿ç¨ 967 ãããããã¯ã¼ã¯ãããã¡ã®æ大ãµã¤ãºã æ¨æºå¤ã¯ 0 ã§ããã 968 969 (37) TCP 㨠UDP ã®ãã³ããããã³ã°ã³ã¼ã«æ©è½ã®çµè¾¼ã¿ãæå®ããã³ã³ 970 ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã追å ããã 971 972 [1] TCP_CFG_NON_BLOCKINGã TCP ã®ãã³ããããã³ã°ã³ã¼ã«æ©è½ 973 ãçµè¾¼ãã 974 [2] UDP_CFG_NON_BLOCKINGã UDP ã®ãã³ããããã³ã°ã³ã¼ã«æ©è½ 975 ãçµè¾¼ãã 976 977 (38) netinet/in.h ã«ã TINET ã®ãã¼ã¸ã§ã³æ 978 å ± TINET_PRVER ãå®ç¾©ããã 979 980 (39) netinet/in.h ã«ã8 ãããæ¯ã«æå®ãã IPv4 ã¢ãã¬ã¹ã 32 ãã 981 ãã«ãããã¯ã MAKE_IPV4_ADDR ã追å ããã 982 983 (40) TCP 㨠UDP ã®ä¸é¨ãã©ã¤ãã©ãªåããã 984 985 (41) ã¢ããªã±ã¼ã·ã§ã³ã® Makefile ã«ã¤ã³ã¯ã«ã¼ããã TINET ã® 986 Makefile.config ã Makefile.tinet ã«å¤æ´ããã 987 988 (42) int ã®ãµã¤ãºã 16 ãããã®å¦çç³»ã«å¯¾å¿ããï¼åä½ç¢ºèªã¯ã ( æ ª 989 ) ã«ããµã¹è£½ã³ã³ãã¤ã© H8C ã§è¡ã£ãï¼ãå¤æ´å 990 容ã以ä¸ã«ç¤ºãã 991 992 [1] tcp_seq.h ã®ã¤ã³ã©ã¤ã³é¢æ°ã®è¨è¿°ãå¤æ´ããã 993 [2] é¢æ° timeout ã¨é¢æ° untimeout ã®ç¬¬ 1 å¼æ°ã (FP) åã«æ 994 示çã«ãã£ã¹ãããã 995 [3] ãã¯ãå 996 ã§ã·ããæ¼ç®ã®ãªãã©ã³ãã¨ãã¦ä½¿ç¨ããã¦ããå¼ 997 æ°ã®æ¹ãæ示çã«ãã£ã¹ãããã 998 [4] ãã¯ã GET_TCP_CREPIDã GET_TCP_CCEPIDã 999 GET_TCP_TW_CCEPIDã 1000 GET_UDP_CCEPID ã®æ»ãå¤ã ID åã«æ示çã«ãã£ã¹ãããã 1001 [5] tinet/net/net_buf.hããããã¯ã¼ã¯ãããã¡ã®ãã³ãã¬ã¼ã 1002 ã®å®ç¾© struct t_net_buf ã§ã ãããã¡æ¬ä½ã®å¤§ããã 1003 buf[4] ã«å¤æ´ããã 1004 [6] ä¹±æ°é¢æ° rand() ã®é¢æ°åã net_rand() ã«å¤æ´ãã æ»ãå¤ 1005 ã®åã UW ã«å¤æ´ããã 1006 [7] ä¹±æ°åæåé¢æ° srand() ã®é¢æ°åã net_srand() ã«å¤æ´ãã 1007 å¼æ°ã®åã UW ã«å¤æ´ããã 1008 [8] tcp_read_rwbuf_cs() ã®ã³ã³ãã¤ã«ã¨ã©ã¼ï¼(UB*)data += 1009 blenï¼ã®åé¡ãä¿®æ£ããã 1010 [9] MAKE_IPV4_ADDR ã®åå¼æ°ã¸ã®ãã£ã¹ãã UB ãã UW ã«å¤æ´ããã 1011 [10] SYSTIM_HZ ã®å®ç¾©ã§ãå®æ°ã«ãã£ã¹ã (SYSTIM) ã追å ããã 1012 [11] IS_PTR_DEFINED ã®å®ç¾©ã§ã(a) ã«ãã£ã¹ã (VP) ã追å ããã 1013 [12] UB åå¤æ°ãUH åå¤æ°ã¸ã®ä»£å 1014 ¥ã§ã®è¦åã®åé¡ãä¿®æ£ããã 1015 [13] 32 ãããå¹ 1016 ãå¿ 1017 è¦ãªå¤æ°ã®åã«ã¯ã æ示çã« W ã¾ã㯠UW 1018 ã使ç¨ããã 1019 [14] syslog ã®å¼æ°ã®åãæ確ã«ããã 1020 [15] è¦åãåºãé¢æ°ã®å¼æ°ããã£ã¹ãããã 1021 [16] è¦åãåºãé¢æ°ã®æ»ãå¤ããã£ã¹ãããã 1022 [17] 精度ã«é¢ããè¦åãåºã代å 1023 ¥ã®å³è¾ºããã£ã¹ãããã 1024 1025 (43) ãã¯ã ntohs 㨠htons ã®å®ç¾©ã§ã ããã°ã¨ã³ãã£ã¢ã³ã®ããã»ã 1026 ãµã§ã¯ãUH ã®æ»ãå¤ãè¿ãããã«å¤æ´ããã 1027 1028 (44) ãã¯ã ntohl 㨠htonl ã®å®ç¾©ã§ã ããã°ã¨ã³ãã£ã¢ã³ã®ããã»ã 1029 ãµã§ã¯ãUW ã®æ»ãå¤ãè¿ãããã«å¤æ´ããã 1030 1031 (45) TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ã®çµè¾¼ã¿ãæå®ããã³ã³ãã¤ã«æã³ 1032 ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã追å ããã 1033 1034 [1] TCP_CFG_TRACEãTCP ãããã®ãã¬ã¼ã¹åºåæ©è½ãçµè¾¼ãã 1035 [2] TCP_CFG_TRACE_IPV4_RADDRã ãã¬ã¼ã¹åºå対象ã®ãªã¢ã¼ãã 1036 ã¹ãã® IPv4 ã¢ãã¬ã¹ãæå®ãããIPV4_ADDRANY ãæå®ãã 1037 ã¨ãå 1038 ¨ã¦ã®ãã¹ãã対象ã¨ããã 1039 [3] TCP_CFG_TRACE_LPORTNOããã¬ã¼ã¹åºå対象ã®ãã¼ã«ã«ãã¹ã 1040 ã®ãã¼ãçªå·ãæå®ããã TCP_PORTANY ãæå®ããã¨ãå 1041 ¨ã¦ 1042 ã®ãã¼ãçªå·ã対象ã«ããã 1043 [4] TCP_CFG_TRACE_RPORTNOããã¬ã¼ã¹åºå対象ã®ãªã¢ã¼ããã¹ã 1044 ã®ãã¼ãçªå·ãæå®ãããTCP_PORTANY ãæå®ããã¨ã å 1045 ¨ã¦ 1046 ã®ãã¼ãçªå·ã対象ã«ããã 1047 1048 (46) ãµãã¼ãé¢æ° ip2str ã§ã 第 1 å¼æ°ã« NULL ãæå®ããã¨ãTINET 1049 å 1050 é¨ã§ç¢ºä¿ãã¦ãããããã¡ã«æååãæ¸ãè¾¼ã¿ã ãã®ã¢ãã¬ã¹ã 1051 è¿ãããã«å¤æ´ããã ããã«ä¼´ãããããã¡æ°ãæå®ããã³ã³ã㤠1052 ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_IPV4ADDR_STR_BUFF ã 1053 追å ããã 1054 1055 (47) ãµãã¼ãé¢æ° ipv62str ã§ã 第 1 å¼æ°ã« NULL ãæå®ããã¨ã 1056 TINET å 1057 é¨ã§ç¢ºä¿ãã¦ãããããã¡ã«æååãæ¸ãè¾¼ã¿ã ãã®ã¢ã 1058 ã¬ã¹ãè¿ãããã«å¤æ´ãããããã«ä¼´ãã ãããã¡æ°ãæå®ããã³ 1059 ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ 1060 NUM_IPV6ADDR_STR_BUFF ã追å ããã 1061 1062 (48) ãµãã¼ãé¢æ° mac2str ã§ã第 1 å¼æ°ã« NULL ãæå®ããã¨ãTINET 1063 å 1064 é¨ã§ç¢ºä¿ãã¦ãããããã¡ã«æååãæ¸ãè¾¼ã¿ã ãã®ã¢ãã¬ã¹ã 1065 è¿ãããã«å¤æ´ãããããã«ä¼´ãã ãããã¡æ°ãæå®ããã³ã³ã㤠1066 ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_MACADDR_STR_BUFF ã 1067 追å ããã 1068 1069 (49) tinet 㨠tinet/netdev/if_ed ã«ããã Makefile ã®ã¤ã³ã¯ã«ã¼ã 1070 ãã¡ã¤ã«ã Makefile.tinet ã«å¤æ´ããã 1071 1072 (50) éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ãTCP_CFG_SWBUF_SAVE ãæ 1073 å®ããTCP é信端ç¹ãçæããéç API ã«ããã¦ããéä¿¡ã¦ã£ã³ã 1074 ãããã¡ãæå®ããå ´åã 誤ã£ããã¼ã¿ãéä¿¡ããåé¡ãä¿®æ£ããã 1075 1076 (51) tinet/Makefile.tinet ã«ããã TINET_KERNEL_CFG ã®å®ç¾©ãã 1077 tinet_cfg.c ãããtinet_kern.cfgãtinet.cfgãTINET å 1078 é¨ã§ä½¿ç¨ 1079 ããã«ã¼ãã«ãªãã¸ã§ã¯ããå®ç¾©ãã¦ããã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ 1080 ãã¡ã¤ã«ã«å¤æ´ããã 1081 1082 (52) 8 ãããæ¯ã«æå®ãã IPv4 ã¢ãã¬ã¹ã 32 ãããã«ãããã¯ã 1083 MAKE_IPV4_ADDR ã追å ããï¼TOPPERS/TINET ãã°ãã©ãã¯ã·ã¹ãã 1084 ID:4ï¼ã 1085 1086 (53) åã½ã¼ã¹ã³ã¼ãã®ã³ãã¼ã©ã¤ããä¿®æ£ããï¼TOPPERS/TINET ãã°ã 1087 ã©ãã¯ã·ã¹ãã ID:6ï¼ã 1088 1089 5. ãªãªã¼ã¹ 1.1.x ãã 1.2 ã¾ã§ã®å¤æ´ 1090 1091 (1) TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã§ã TCP åä»å£ãæå®ã㪠1092 ãã£ãã¨ãã®åé¡ã¯ã tinet/cfg/tinet_parser.cpp ã§ã 1093 tinet_cfg.c ã«ããã¼ã® TCP åä»å£å¤æ°ãåºåããããã«ä¿®æ£ããã 1094 1095 (2) UDP ã®ã¿ä½¿ç¨ããã¨ãã® kernel_cfg.c ã§ã ã³ã³ãã¤ã«ã¨ã©ã¼ãçº 1096 çããåé¡ã¯ãtinet/netinet/tcp.cfg ãã 859 を出力するように変更した。 860 861 (34) TCP 通信端点で、 送受信用の二つのセマフォをイベントフラグによ 862 り実装した。 863 864 (35) TCP 通信端点の送受信ウィンドバッファの省コピー機能を実装した。 865 866 (36) TCP 通信端点の送受信ウィンドバッファの省コピー機能用に、 以下 867 に示すコンパイル時コンフィギュレーションパラメータを追加した。 868 869 [1] TCP_CFG_RWBUF_CSAVE_ONLY、 TCP 通信端点の受信ウィンドバッ 870 ファの省コピー機能を組込み、 この機能のみ使用する。 871 [2] TCP_CFG_RWBUF_CSAVE、TCP 通信端点の受信ウィンドバッファ 872 の省コピー機能を組込む。 873 [3] TCP_CFG_SWBUF_CSAVE_ONLY、 TCP 通信端点の送信ウィンドバッ 874 ファの省コピー機能を組込み、 この機能のみ使用する。 875 [4] TCP_CFG_SWBUF_CSAVE、TCP 通信端点の送信ウィンドバッファ 876 の省コピー機能を組込む。 877 [5] TCP_CFG_RWBUF_CSAVE_MAX_QUEUES、 TCP 通信端点の受信ウィ 878 ンドバッファの省コピー機能の、 受信ウィンドバッファキュー 879 の最大エントリ数。ただし、 正常に受信したセグメントも破 880 棄するため、 再送回数が増加する。また、指定しないと制限 881 しない。標準値は 2 である。 882 [6] TCP_CFG_SWBUF_CSAVE_MAX_SIZE、 TCP 通信端点の送信ウィン 883 ドバッファの省コピー機能で、 送信ウィンドバッファに使用 884 するネットワークバッファの最大サイズ。 標準値は 885 IF_PDU_SIZE である。 886 [7] TCP_CFG_SWBUF_CSAVE_MIN_SIZE、 TCP 通信端点の送信ウィン 887 ドバッファの省コピー機能で、 送信ウィンドバッファに使用 888 するネットワークバッファの最大サイズ。 標準値は 0 である。 889 890 (37) TCP と UDP のノンブロッキングコール機能の組込みを指定するコン 891 パイル時コンフィギュレーションパラメータを追加した。 892 893 [1] TCP_CFG_NON_BLOCKING、 TCP のノンブロッキングコール機能 894 を組込む。 895 [2] UDP_CFG_NON_BLOCKING、 UDP のノンブロッキングコール機能 896 を組込む。 897 898 (38) netinet/in.h に、 TINET のバージョン情報 TINET_PRVER を定義した。 899 900 (39) netinet/in.h に、8 ビット毎に指定した IPv4 アドレスを 32 ビッ 901 トにするマクロ MAKE_IPV4_ADDR を追加した。 902 903 (40) TCP と UDP の一部をライブラリ化した。 904 905 (41) アプリケーションの Makefile にインクルードする TINET の 906 Makefile.config を Makefile.tinet に変更した。 907 908 (42) int のサイズが 16 ビットの処理系に対応した(動作確認は、 ( 株 909 ) ルネサス製コンパイラ H8C で行った)。変更内容を以下に示す。 910 911 [1] tcp_seq.h のインライン関数の記述を変更した。 912 [2] 関数 timeout と関数 untimeout の第 1 引数を (FP) 型に明 913 示的にキャストした。 914 [3] マクロ内でシフト演算のオペランドとして使用されている引 915 数の方を明示的にキャストした。 916 [4] マクロ GET_TCP_CREPID、 GET_TCP_CCEPID、 917 GET_TCP_TW_CCEPID、 918 GET_UDP_CCEPID の戻り値を ID 型に明示的にキャストした。 919 [5] tinet/net/net_buf.h、ネットワークバッファのテンプレート 920 の定義 struct t_net_buf で、 バッファ本体の大きさを 921 buf[4] に変更した。 922 [6] 乱数関数 rand() の関数名を net_rand() に変更し、 戻り値 923 の型を UW に変更した。 924 [7] 乱数初期化関数 srand() の関数名を net_srand() に変更し、 925 引数の型を UW に変更した。 926 [8] tcp_read_rwbuf_cs() のコンパイルエラー((UB*)data += 927 blen)の問題を修正した。 928 [9] MAKE_IPV4_ADDR の各引数へのキャストを UB から UW に変更した。 929 [10] SYSTIM_HZ の定義で、定数にキャスト (SYSTIM) を追加した。 930 [11] IS_PTR_DEFINED の定義で、(a) にキャスト (VP) を追加した。 931 [12] UB 型変数、UH 型変数への代入での警告の問題を修正した。 932 [13] 32 ビット幅が必要な変数の型には、 明示的に W または UW 933 を使用した。 934 [14] syslog の引数の型を明確にした。 935 [15] 警告が出る関数の引数をキャストした。 936 [16] 警告が出る関数の戻り値をキャストした。 937 [17] 精度に関する警告が出る代入の右辺をキャストした。 938 939 (43) マクロ ntohs と htons の定義で、 ビッグエンディアンのプロセッ 940 サでは、UH の戻り値を返すように変更した。 941 942 (44) マクロ ntohl と htonl の定義で、 ビッグエンディアンのプロセッ 943 サでは、UW の戻り値を返すように変更した。 944 945 (45) TCP ヘッダのトレース出力機能の組込みを指定するコンパイル時コ 946 ンフィギュレーションパラメータを追加した。 947 948 [1] TCP_CFG_TRACE、TCP ヘッダのトレース出力機能を組込む。 949 [2] TCP_CFG_TRACE_IPV4_RADDR、 トレース出力対象のリモートホ 950 ストの IPv4 アドレスを指定する。IPV4_ADDRANY を指定する 951 と、全てのホストを対象とする。 952 [3] TCP_CFG_TRACE_LPORTNO、トレース出力対象のローカルホスト 953 のポート番号を指定する。 TCP_PORTANY を指定すると、全て 954 のポート番号を対象にする。 955 [4] TCP_CFG_TRACE_RPORTNO、トレース出力対象のリモートホスト 956 のポート番号を指定する。TCP_PORTANY を指定すると、 全て 957 のポート番号を対象にする。 958 959 (46) サポート関数 ip2str で、 第 1 引数に NULL を指定すると、TINET 960 内部で確保してあるバッファに文字列を書き込み、 そのアドレスを 961 返すように変更した。 これに伴い、バッファ数を指定するコンパイ 962 ル時コンフィギュレーションパラメータ NUM_IPV4ADDR_STR_BUFF を 963 追加した。 964 965 (47) サポート関数 ipv62str で、 第 1 引数に NULL を指定すると、 966 TINET 内部で確保してあるバッファに文字列を書き込み、 そのアド 967 レスを返すように変更した。これに伴い、 バッファ数を指定するコ 968 ンパイル時コンフィギュレーションパラメータ 969 NUM_IPV6ADDR_STR_BUFF を追加した。 970 971 (48) サポート関数 mac2str で、第 1 引数に NULL を指定すると、TINET 972 内部で確保してあるバッファに文字列を書き込み、 そのアドレスを 973 返すように変更した。これに伴い、 バッファ数を指定するコンパイ 974 ル時コンフィギュレーションパラメータ NUM_MACADDR_STR_BUFF を 975 追加した。 976 977 (49) tinet と tinet/netdev/if_ed における Makefile のインクルード 978 ファイルを Makefile.tinet に変更した。 979 980 (50) 送信ウィンドバッファの省コピー機能で、TCP_CFG_SWBUF_SAVE を指 981 定し、TCP 通信端点を生成する静的 API においても、送信ウィンド 982 バッファを指定した場合、 誤ったデータを送信する問題を修正した。 983 984 (51) tinet/Makefile.tinet における TINET_KERNEL_CFG の定義を、 985 tinet_cfg.c から、tinet_kern.cfg、tinet.cfg、TINET 内部で使用 986 するカーネルオブジェクトを定義しているコンフィギュレーション 987 ファイルに変更した。 988 989 (52) 8 ビット毎に指定した IPv4 アドレスを 32 ビットにするマクロ 990 MAKE_IPV4_ADDR を追加した(TOPPERS/TINET バグトラックシステム 991 ID:4)。 992 993 (53) 各ソースコードのコピーライトを修正した(TOPPERS/TINET バグト 994 ラックシステム ID:6)。 995 996 5. リリース 1.1.x から 1.2 までの変更 997 998 (1) TINET コンフィギュレーションファイルで、 TCP 受付口を指定しな 999 かったときの問題は、 tinet/cfg/tinet_parser.cpp で、 1000 tinet_cfg.c にダミーの TCP 受付口変数を出力するように修正した。 1001 1002 (2) UDP のみ使用するときの kernel_cfg.c で、 コンパイルエラーが発 1003 生する問題は、tinet/netinet/tcp.cfg から 1097 1004 1098 1005 INCLUDE("<netinet/in.h>"); 1099 1006 1100 ãåé¤ããtinet/netinet/ip.cfg ã«1007 を削除し、tinet/netinet/ip.cfg に 1101 1008 1102 1009 INCLUDE("<netinet/in.h>"); 1103 1010 1104 ã追å ããã 1105 1106 (3) UDP ã®ã¿ä½¿ç¨ããã¨ãã® ip_icmp.c ã§ã_tinet_tcp_notify ã®åç 1107 § 1108 ã¨ã©ã¼ãçºçããåé¡ã¯ã tinet/netinet/ip_icmp.c ã§ã ICMP 1109 UNREACH ã¡ãã»ã¼ã¸ãç¡è¦ããããã«ä¿®æ£ããã 1110 1111 (4) ã«ã¼ãããã¯ã»ã¤ã³ã¿ãã§ã¼ã¹ã® IP ã¢ãã¬ã¹ãã¹ã¯ã ãã¼ã«ã«ã 1112 ãã¼ããã£ã¹ãã¢ãã¬ã¹ã®å®ç¾©èª¤ããä¿®æ£ããã 1113 1114 (5) tinet/netdev/if_ed/if_ed.c ã§ã ã¬ã¸ã¹ã¿ã SIL çµç±ã§ã¢ã¯ã»ã¹ 1115 ããããã«ä¿®æ£ããã 1116 1117 (6) IPv6 ã«å¯¾å¿ããã 1118 1119 (7) ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã«ã ãã£ãã©ã«ãã» 1120 ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹ãæå®ãã 1121 IPV4_ADDR_LOCAL_DEFAULT_GW ãæ°è¨ãããããã«ããããã£ãã©ã« 1122 ãã»ã²ã¼ãã¦ã§ã¤ã®ã¿ã®ãããã¯ã¼ã¯ã§ã¯ã éçã«ã¼ãã£ã³ã°æ 1123 å ± 1124 è¨å®ãã¡ã¤ã« route_cfg.c ã®å¤æ´ãä¸è¦ã«ããã 1125 1126 (8) UDP ã®åä¿¡æã åä¿¡ãã¼ãçªå·ãæªå®ç¾©ã®å ´åããããã¯ã¼ã¯ãã 1127 ãã¡ãæ£ãã解æ¾ããªãåé¡ã¨ãICMP ã®ã¨ã©ã¼éç¥ãæ£ããè¡ã㪠1128 ãåé¡ãä¿®æ£ããã 1129 1130 (9) TCP ã®åä¿¡æãåä¿¡ãã¼ãçªå·ãæªå®ç¾©ã®å ´åã ãªã»ããã»ã°ã¡ã³ 1131 ããæ£ããè¿éããªãåé¡ãä¿®æ£ããã 1132 1133 (10) ãããã¯ã¼ã¯çµ±è¨æ 1134 å ±ï¼net_countï¼ã®åå¤æ°ã _tinet_ ã§ãªãã¼ 1135 ã ããªãããã«å¤æ´ããã 1136 1137 (11) ãã¤ããªã¼ãå¤æã®å®ç¾©ã netinet/in.h ããã net/net.h ã«éç´ 1138 ãã ãªãã«ã¨ã³ãã£ã¢ã³ç¨ã®ãã¯ãã追å ããã 1139 1140 (12) ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã»ãã¡ã¤ã«ã®ããããã§ã ã 1141 ã¯ã SUPPORT_MIB ãå®ç¾©ãããã¨ã«ããã SNMP ç¨ç®¡çæ 1142 å ±ãã¼ã¹ 1143 ï¼MIBï¼ã«æºæ ãããããã¯ã¼ã¯çµ±è¨ã®åå¾ãå¯è½ã¨ãªã£ãããã ãã 1144 TINET èªä½ã¯ã管çæ 1145 å ±ãã¼ã¹ï¼MIBï¼ã«æºæ ãããããã¯ã¼ã¯çµ±è¨ 1146 ãæä¾ããã ãã§ï¼SNMP ããµãã¼ããã¦ããªããã¾ãã RFC1213ã 1147 RFC2465ãRFC2466 ã«å®ç¾©ããã¦ããå 1148 ¨ã¦ã®æ 1149 å ±ãåå¾ã§ãããã㧠1150 ã¯ãªãã åå¾ã§ããæ 1151 å ±ã¯ãé¢ä¿ããã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®æ§é 1152 ä½ã®å®ç¾©ãåç 1153 §ãããã¨ã 1154 1155 (13) PPP ã® HDLC å 1156 ¥åã«ãããåé¡ãä¿®æ£ããã 1157 1158 (14) èªèã§ããªãä¸ä½ãããã³ã«ã¾ãã¯æ¡å¼µããããåä¿¡ããã¨ãã ã³ã¼ 1159 ãçªå· ICMP6_PARAMPROB_NEXTHEADERï¼1ï¼ã® ICMP6_PARAM_PROBï¼4ï¼ 1160 ã¡ãã»ã¼ã¸ãè¿éããããå¤æ´ããã 1161 1162 6. ãªãªã¼ã¹ 1.0 ãã 1.1 ã¾ã§ã®å¤æ´ 1163 1164 (1) TINET ã³ã³ãã£ã°ã¬ã¼ã¿ã®çæã§ããªã³ã¯ãä¸è¦ã«ããã 1165 1166 (2) ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ããè¦ç´ãã cpu_config.h ãã 1167 tinet_config.hãcpu_defs.h ãã tinet_defs.h ãåé¤ããã 1168 1169 (3) ã¢ããªã±ã¼ã·ã§ã³ã® Makefile ã®æå®å 1170 容ãä¸é¨å¤æ´ããã 1171 1172 [1] TCP ã®çµè¾¼ã¿ãSUPPORT_TCP ã®æå®ã 1173 [2] UDP ã®çµè¾¼ã¿ãSUPPORT_UDP ã®æå®ã 1174 1175 (4) ãµã³ãã« nserv.c ãã WWW ãµã¼ãæ©è½ã tinet/netapp/wwws.c ã« 1176 移ããã 1177 1178 (5) JSP ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã« $(UNAME).cfg ã§ã¯ã 1179 tinet/tinet.cfg ãæå®ããã ãã§ã ãããã³ã«ã¹ã¿ãã¯å 1180 é¨ã®ã«ã¼ 1181 ãã«ãªãã¸ã§ã¯ããåãè¾¼ããããã«å¤æ´ããã 1182 1183 (6) TINET ãããã³ã«ã¹ã¿ãã¯å 1184 é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã® 1185 æå®ãã¡ã¤ã« tinet/tinet.cfg ã§ã®ãINCLUDEãéç API ããå㢠1186 ã¸ã¥ã¼ã«ã® JSP ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«ç§»åããã 1187 1188 (7) tinet/include ã¯å»æ¢ãã ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã以ä¸ã®ããã«ç§» 1189 åããã 1190 1191 [1] tinet/include/net â tinet/netã 1192 [2] tinet/include/netdev â tinet/netdevã 1193 [3] tinet/include/netinet â tinet/netinetã 1194 [4] tinet/include/netapp â tinet/netappã 1195 [5] tinet/include/tinet_config.h â tinet/tinet_config.hã 1196 [6] tinet/include/tinet_defs.h â tinet/tinet_defs.hã 1197 1198 (8) ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã£ãã¤ã¹ä¾åé¨ãç¬ç«ããããã® 1199 å¤æ´ãè¡ã£ãã 1200 1201 [1] tinet/netdev ã«ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ä¾åé¨ãé 1202 ç½® 1203 ãããã£ã¬ã¯ããªãæ°è¨ããã NE2000 äºæ NIC ã§ã¯ if_ed 1204 ã§ããã以ä¸ãã® NIC ã®è¨å®ã«ã¤ãã¦è¿°ã¹ãã 1205 [2] æ±ç¨ã® JSP ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã« 1206 nic.cfg ãæ°è¨ããã ç¾å¨ã¯ãif_ed.cfg ãã¤ã³ã¯ã«ã¼ãã 1207 ãããã«ãªã£ã¦ããã 1208 [3] æ±ç¨ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ 1209 ã³ãã¡ã¤ã« tinet_nic_config.h ãæ°è¨ãããç¾å¨ã¯ã æ±ç¨ 1210 ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å¥ååãã¡ã¤ã« 1211 nic_rename.h 㨠if_ed.h ãã¤ã³ã¯ã«ã¼ãããããã«ãªã£ã¦ããã 1212 [4] æ±ç¨ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å¥ååãã¡ã¤ã« 1213 nic_rename.h ãæ°è¨ããã 1214 [5] if_ed.c 㨠if_ed.cfg 以å¤ã®ãã¡ã¤ã«ãã if_ed.h 㨠1215 if_edreg.h ãåé¤ããã 1216 [6] tinet/tinet_config.h ã®å¤æ´ 1217 #include <tinet_nic_config.h> ã追å ãã ã¤ã³ã¯ã«ã¼ãã® 1218 é çªãè¦ç´ããã 1011 を追加した。 1012 1013 (3) UDP のみ使用するときの ip_icmp.c で、_tinet_tcp_notify の参照 1014 エラーが発生する問題は、 tinet/netinet/ip_icmp.c で、 ICMP 1015 UNREACH メッセージを無視するように修正した。 1016 1017 (4) ループバック・インタフェースの IP アドレスマスク、 ローカルブ 1018 ロードキャストアドレスの定義誤りを修正した。 1019 1020 (5) tinet/netdev/if_ed/if_ed.c で、 レジスタを SIL 経由でアクセス 1021 するように修正した。 1022 1023 (6) IPv6 に対応した。 1024 1025 (7) コンパイル時コンフィギュレーションパラメータに、 ディフォルト・ 1026 ゲートウェイの IP アドレスを指定する 1027 IPV4_ADDR_LOCAL_DEFAULT_GW を新設した。これにより、ディフォル 1028 ト・ゲートウェイのみのネットワークでは、 静的ルーティング情報 1029 設定ファイル route_cfg.c の変更を不要にした。 1030 1031 (8) UDP の受信時、 受信ポート番号が未定義の場合、ネットワークバッ 1032 ファを正しく解放しない問題と、ICMP のエラー通知を正しく行わな 1033 い問題を修正した。 1034 1035 (9) TCP の受信時、受信ポート番号が未定義の場合、 リセットセグメン 1036 トを正しく返送しない問題を修正した。 1037 1038 (10) ネットワーク統計情報(net_count)の各変数を _tinet_ でリネー 1039 ムしないように変更した。 1040 1041 (11) バイトオーダ変換の定義を netinet/in.h から、 net/net.h に集約 1042 し、 リトルエンディアン用のマクロを追加した。 1043 1044 (12) コンパイル時コンフィギュレーション・ファイルのいずれかで、 マ 1045 クロ SUPPORT_MIB を定義することにより、 SNMP 用管理情報ベース 1046 (MIB)に準拠したネットワーク統計の取得が可能となった。ただし、 1047 TINET 自体は、管理情報ベース(MIB)に準拠したネットワーク統計 1048 を提供するだけで,SNMP をサポートしていない。また、 RFC1213、 1049 RFC2465、RFC2466 に定義されている全ての情報が取得できるわけで 1050 はない。 取得できる情報は、関係するインクルードファイルの構造 1051 体の定義を参照すること。 1052 1053 (13) PPP の HDLC 入力における問題を修正した。 1054 1055 (14) 認識できない上位プロトコルまたは拡張ヘッダを受信したとき、 コー 1056 ド番号 ICMP6_PARAMPROB_NEXTHEADER(1)の ICMP6_PARAM_PROB(4) 1057 メッセージを返送するよう変更した。 1058 1059 6. リリース 1.0 から 1.1 までの変更 1060 1061 (1) TINET コンフィグレータの生成で、リンクを不要にした。 1062 1063 (2) ファイルのインクルードを見直し、 cpu_config.h から 1064 tinet_config.h、cpu_defs.h から tinet_defs.h を削除した。 1065 1066 (3) アプリケーションの Makefile の指定内容を一部変更した。 1067 1068 [1] TCP の組込み、SUPPORT_TCP の指定。 1069 [2] UDP の組込み、SUPPORT_UDP の指定。 1070 1071 (4) サンプル nserv.c から WWW サーバ機能を tinet/netapp/wwws.c に 1072 移した。 1073 1074 (5) JSP システムコンフィギュレーションファイル $(UNAME).cfg では、 1075 tinet/tinet.cfg を指定するだけで、 プロトコルスタック内部のカー 1076 ネルオブジェクトを取り込めるように変更した。 1077 1078 (6) TINET プロトコルスタック内部で使用するカーネルオブジェクトの 1079 指定ファイル tinet/tinet.cfg での「INCLUDE」静的 API を、各モ 1080 ジュールの JSP システムコンフィギュレーションファイルに移動した。 1081 1082 (7) tinet/include は廃止し、 インクルードファイルを以下のように移 1083 動した。 1084 1085 [1] tinet/include/net → tinet/net。 1086 [2] tinet/include/netdev → tinet/netdev。 1087 [3] tinet/include/netinet → tinet/netinet。 1088 [4] tinet/include/netapp → tinet/netapp。 1089 [5] tinet/include/tinet_config.h → tinet/tinet_config.h。 1090 [6] tinet/include/tinet_defs.h → tinet/tinet_defs.h。 1091 1092 (8) ネットワークインタフェースのディバイス依存部を独立するための 1093 変更を行った。 1094 1095 [1] tinet/netdev に、ネットワークインタフェース依存部を配置 1096 するディレクトリを新設した。 NE2000 互換 NIC では if_ed 1097 であり、以下この NIC の設定について述べる。 1098 [2] 汎用の JSP システムコンフィギュレーションファイル 1099 nic.cfg を新設した。 現在は、if_ed.cfg をインクルードす 1100 るようになっている。 1101 [3] 汎用のネットワークインタフェース・コンフィギュレーショ 1102 ンファイル tinet_nic_config.h を新設した。現在は、 汎用 1103 のネットワークインタフェース・別名化ファイル 1104 nic_rename.h と if_ed.h をインクルードするようになっている。 1105 [4] 汎用のネットワークインタフェース・別名化ファイル 1106 nic_rename.h を新設した。 1107 [5] if_ed.c と if_ed.cfg 以外のファイルから if_ed.h と 1108 if_edreg.h を削除した。 1109 [6] tinet/tinet_config.h の変更 1110 #include <tinet_nic_config.h> を追加し、 インクルードの 1111 順番を見直した。 1219 1112 1220 1113 #include "tinet_app_config.h" 1221 1114 #include "tinet_sys_config.h" 1222 1115 #include "tinet_cpu_config.h" 1223 â1116 ↓ 1224 1117 #ifdef SUPPORT_ETHER 1225 1118 #include "tinet_nic_config.h" … … 1229 1122 #include "tinet_app_config.h" 1230 1123 1231 [7] tinet/net/ethernet.h ã®å¤æ´1232 1233 ã»tinet/netdev/if_ed/if_ed.h ã® t_ed_softc ããããã£ã1234 ã¤ã¹éä¾åé¨ã t_if_softc ã¨ãã¦ç¬ç«ãã¦å®ç¾©ããã1124 [7] tinet/net/ethernet.h の変更 1125 1126 ・tinet/netdev/if_ed/if_ed.h の t_ed_softc から、ディバ 1127 イス非依存部を t_if_softc として独立して定義した。 1235 1128 1236 1129 struct t_if_softc { … … 1243 1136 typedef struct t_if_softc T_IF_SOFTC; 1244 1137 1245 ã»ã¡ã³ã timer ã¯ããã£ãã¤ã¹éä¾åé¨ã«ç§»åããã1246 ã»ãã¤ã³ã¿ãã§ã¼ã¹é¸æãã¯ãããã T_IF_SOFTC ãåé¤ããã1247 1248 [8] tinet/net/ethernet.c ã tinet/net/if.cã1249 tinet/netinet/tcp_subr.c ã®å¤æ´1250 #include <netdev/if_ed.h> ãåé¤ããT_IF_ETHER_SOFTC ã1251 ããT_IF_SOFTC ã«å¤æ´ããã1138 ・メンバ timer は、ディバイス非依存部に移動した。 1139 ・「インタフェース選択マクロ」から T_IF_SOFTC を削除した。 1140 1141 [8] tinet/net/ethernet.c、 tinet/net/if.c、 1142 tinet/netinet/tcp_subr.c の変更 1143 #include <netdev/if_ed.h> を削除し、T_IF_ETHER_SOFTC か 1144 ら、T_IF_SOFTC に変更した。 1252 1145 1253 1146 T_IF_ETHER_SOFTC *sc; 1254 â1147 ↓ 1255 1148 T_IF_SOFTC *ic; 1256 1149 1257 [9] tinet/netdev/if_ed/if_ed.h ã®å¤æ´1258 1259 ã»t_ed_softc å®ç¾©ã tinet/netdev/if_ed/if_ed.c ã«ç§»åããã1260 ã»ãNIC é¸æãã¯ããã® T_IF_ETHER_SOFTC ãT_ED_SOFTC1261 ãã struct t_ed_softc ã«å¤æ´ããã1262 ã»ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®é¢æ°ã®å¼æ°ãT_ED_SOFTC1263 ãã T_IF_SOFTC ã«å¤æ´ããã1264 ã»é¢æ° ed_watchdog ã®å¼æ°ã«ãT_IF_SOFTC* ãæå®ãããã1265 ã«å¤æ´ããã1266 1267 [10] tinet/netdev/if_ed/if_ed.c ã®å¤æ´1268 1269 ã»#include <netdev/if_ed.h> ãåé¤ããã1270 ã»if_edreg.h ã®ã¤ã³ã¯ã«ã¼ãæå®ã®å¤æ´1150 [9] tinet/netdev/if_ed/if_ed.h の変更 1151 1152 ・t_ed_softc 定義を tinet/netdev/if_ed/if_ed.c に移動した。 1153 ・「NIC 選択マクロ」の T_IF_ETHER_SOFTC を T_ED_SOFTC 1154 から struct t_ed_softc に変更した。 1155 ・ネットワークインタフェースの関数の引数を T_ED_SOFTC 1156 から T_IF_SOFTC に変更した。 1157 ・関数 ed_watchdog の引数に、T_IF_SOFTC* を指定するよう 1158 に変更した。 1159 1160 [10] tinet/netdev/if_ed/if_ed.c の変更 1161 1162 ・#include <netdev/if_ed.h> を削除した。 1163 ・if_edreg.h のインクルード指定の変更 1271 1164 1272 1165 #include <netdev/if_edreg.h> 1273 â1166 ↓ 1274 1167 #include "if_edreg.h" 1275 1168 1276 ã»t_ed_softc ã®å®ç¾©ãã tinet/netdev/if_ed/if_ed.h ãã1277 移åããã1278 ã»t_ed_softc ã¯ããã£ãã¤ã¹ä¾åé¨ã®ã¿å®ç¾©ããããã«å¤æ´ããã1279 ã»ä»¥ä¸ã®å±æé¢æ°ã®å¼æ°ã T_ED_SOFTC ãã T_IF_SOFTC ã«1280 å¤æ´ããã1169 ・t_ed_softc の定義を、 tinet/netdev/if_ed/if_ed.h から 1170 移動した。 1171 ・t_ed_softc は、ディバイス依存部のみ定義するように変更した。 1172 ・以下の局所関数の引数を T_ED_SOFTC から T_IF_SOFTC に 1173 変更した。 1281 1174 1282 1175 ed_xmit 1283 1176 ed_init_sub 1284 1177 1285 ã»é¢æ°ã®å¼æ°ã T_ED_SOFTC ãã T_IF_SOFTC ã«ä»£ãã£ããã1178 ・関数の引数が T_ED_SOFTC から T_IF_SOFTC に代わったが、 1286 1179 1287 1180 T_ED_SOFTC *sc = ic->sc; 1288 1181 1289 ã§ãT_ED_SOFTC ãåãåºããã¨ãåºæ¥ãã1290 1291 [11] tinet/netdev/if_ed/if_ed.cfg ã®å¤æ´1182 で、T_ED_SOFTC を取り出すことが出来る。 1183 1184 [11] tinet/netdev/if_ed/if_ed.cfg の変更 1292 1185 1293 1186 INCLUDE("<netdev/if_ed.h>"); 1294 1187 INCLUDE("<netdev/if_edreg.h>"); 1295 â1188 ↓ 1296 1189 INCLUDE("\"if_edreg.h\""); 1297 1190 1298 [12] tinet/net_rename.h ã®å¤æ´1299 if_ed ã®é¢æ°ã®ãªãã¼ã å®ç¾©ãã1300 tinet/netdev/if_ed/nic_rename.h ã«ç§»åããã1301 [13] tinet/tinet.cfg ã®å¤æ´1191 [12] tinet/net_rename.h の変更 1192 if_ed の関数のリネーム定義を、 1193 tinet/netdev/if_ed/nic_rename.h に移動した。 1194 [13] tinet/tinet.cfg の変更 1302 1195 1303 1196 #ifdef IF_ETHER_CFG_ED 1304 1197 #include "netdev/if_ed.cfg" 1305 1198 #endif /* of #ifdef IF_ETHER_CFG_ED */ 1306 â1199 ↓ 1307 1200 #include "nic.cfg" 1308 1201 1309 [14] tinet_cpu_config.h 㨠tinet_sys_config.h ã®å¤æ´1310 ãNIC (NE2000 äºæ ) ã«é¢ããå®ç¾©ãã1311 tinet_sys_config.h ã«ç§»åããã1312 [15] $(CPU)/$(SYS)/Makefile.config ã®å¤æ´1313 1314 ã»ãã³ã³ãã¤ã«ãªãã·ã§ã³ãã®å¤æ´1315 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã£ã¬ã¯ããªãå«ããããã1316 INCLUDES ã®å®ç¾©ã®å¾ã«è¿½å ããã1202 [14] tinet_cpu_config.h と tinet_sys_config.h の変更 1203 「NIC (NE2000 互換 ) に関する定義」を 1204 tinet_sys_config.h に移動した。 1205 [15] $(CPU)/$(SYS)/Makefile.config の変更 1206 1207 ・「コンパイルオプション」の変更 1208 ネットワークインタフェースのディレクトリを含めるため、 1209 INCLUDES の定義の後に追加した。 1317 1210 1318 1211 ifdef TINET_ROOT … … 1320 1213 endif 1321 1214 1322 ã»ãã«ã¼ãã«ã«é¢ããå®ç¾©ãã®å¤æ´1323 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã£ã¬ã¯ããªã¨ãããã¯ã¼1324 ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãªãã¸ã§ã¯ããå«ããããã1325 KERNEL_COBJS ã®å®ç¾©ã®å¾ã«è¿½å ããã1215 ・「カーネルに関する定義」の変更 1216 ネットワークインタフェースのディレクトリとネットワー 1217 クインタフェースのオブジェクトを含めるため、 1218 KERNEL_COBJS の定義の後に追加した。 1326 1219 1327 1220 ifdef TINET_ROOT … … 1330 1223 endif 1331 1224 1332 [16] åã½ã¼ã¹ãã IF_ETHER_CFG_ED ãåé¤ããã1333 [17] if_ed.h 㨠if_edreg.h ã§ãSUPPORT_ETHER ãåé¤ããã1334 [18] åã½ã¼ã¹ã® PROTO_FLG_ETHER_ED ã PROTO_FLG_ETHER_NIC ã«1335 å¤æ´ããã1336 [19] åã½ã¼ã¹ã® net_count_ether_ed åã³ net_count_ether_ed* ã1337 net_count_ether_nic åã³ net_count_ether_nic* ã«å¤æ´ããã1338 [20] åã½ã¼ã¹ã® NET_COUNT_ETHER_ED åã³ NET_COUNT_ETHER_ED* ã1339 NET_COUNT_ETHER_NIC åã³ NET_COUNT_ETHER_NIC* ã«å¤æ´ããã1340 [21] åã½ã¼ã¹ã® IF_ETHER_CFG_ACCEPT_ALL ã1341 ETHER_CFG_ACCEPT_ALL ã«å¤æ´ããã1342 [22] åã½ã¼ã¹ã® IF_ETHER_* ã IF_ETHER_NIC_* ã«å¤æ´ããã1343 1344 (9) tinet/cfg/tinet_parser.cpp ã®å¤æ´1345 1346 [1] tinet_cfg.c ã«åºåããæ¨æºã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã«1347 tinet_config.h ã追å ããã1348 [2] tinet_cfg.c ã«åºåããæ¨æºã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®ã¤ã³1349 ã¯ã«ã¼ãé çªã以ä¸ã®ããã«å¤æ´ããã1225 [16] 各ソースから IF_ETHER_CFG_ED を削除した。 1226 [17] if_ed.h と if_edreg.h で、SUPPORT_ETHER を削除した。 1227 [18] 各ソースの PROTO_FLG_ETHER_ED を PROTO_FLG_ETHER_NIC に 1228 変更した。 1229 [19] 各ソースの net_count_ether_ed 及び net_count_ether_ed* を 1230 net_count_ether_nic 及び net_count_ether_nic* に変更した。 1231 [20] 各ソースの NET_COUNT_ETHER_ED 及び NET_COUNT_ETHER_ED* を 1232 NET_COUNT_ETHER_NIC 及び NET_COUNT_ETHER_NIC* に変更した。 1233 [21] 各ソースの IF_ETHER_CFG_ACCEPT_ALL を 1234 ETHER_CFG_ACCEPT_ALL に変更した。 1235 [22] 各ソースの IF_ETHER_* を IF_ETHER_NIC_* に変更した。 1236 1237 (9) tinet/cfg/tinet_parser.cpp の変更 1238 1239 [1] tinet_cfg.c に出力する標準のインクルードファイルに 1240 tinet_config.h を追加した。 1241 [2] tinet_cfg.c に出力する標準のインクルードファイルのイン 1242 クルード順番を以下のように変更した。 1350 1243 1351 1244 tinet_defs.h 1352 1245 tinet_config.h 1353 1246 1354 [3] tinet_cfg.c ã«åºåããæ¨æºã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã§ã 以1355 ä¸ã®ãã¡ã¤ã«æå®ãåé¤ããã1247 [3] tinet_cfg.c に出力する標準のインクルードファイルで、 以 1248 下のファイル指定を削除した。 1356 1249 1357 1250 #include <netinet/in_rename.h> 1358 1251 1359 (10) tinet/tinet_defs.h ã« tinet_nic_defs.h ã追å ããã1360 1361 (11) tinet/netdev/if_ed ã« tinet_nic_defs.h ã追å ããã1362 1363 (12) åã½ã¼ã¹ãã¡ã¤ã«ã«ãtinet_defs.hãtinet_config.h ã追å ããã1364 1365 (13) åã½ã¼ã¹ãã¡ã¤ã«ã§ãtinet_defs.hãtinet_config.h ã®é çªã«ã¤ã³1366 ã¯ã«ã¼ãããããã«å¤æ´ããã1367 1368 (14) tinet_nic_defs.h ã« IF_ETHER_NIC_HDR_ALIGN ã追å ãããããã¯ã1369 以ä¸ã®ãã¡ã¤ã«ã«ããã¤ã¼ãµããããããã®å®ç¾©ã§ã æåã«ã¢ã©ã¤1370 ã³ã調æ´ããå ´åã«ã 調æ´éãæå®ããã1252 (10) tinet/tinet_defs.h に tinet_nic_defs.h を追加した。 1253 1254 (11) tinet/netdev/if_ed に tinet_nic_defs.h を追加した。 1255 1256 (12) 各ソースファイルに、tinet_defs.h、tinet_config.h を追加した。 1257 1258 (13) 各ソースファイルで、tinet_defs.h、tinet_config.h の順番にイン 1259 クルードするように変更した。 1260 1261 (14) tinet_nic_defs.h に IF_ETHER_NIC_HDR_ALIGN を追加した。これは、 1262 以下のファイルにあるイーサネットヘッダの定義で、 最初にアライ 1263 ンを調整する場合に、 調整量を指定する。 1371 1264 1372 1265 tinet/net/ethernet.h 1373 1266 1374 (15) TINET ãããã³ã«ã¹ã¿ãã¯å 1375 é¨ã®ãªãã¼ã æå®ãã¡ã¤ã« 1376 tinet/net/net_rename.h 㨠tinet/netinet/in_rename.h ã®ã¤ã³ã¯ 1377 ã«ã¼ãããtinet/tinet_config.h ã§æå®ããããã«å¤æ´ããåã½ã¼ 1378 ã¹ãã¡ã¤ã«ãã以ä¸ã®ãã¡ã¤ã«ãåé¤ããã 1267 (15) TINET プロトコルスタック内部のリネーム指定ファイル 1268 tinet/net/net_rename.h と tinet/netinet/in_rename.h のインク 1269 ルードを、tinet/tinet_config.h で指定するように変更し、各ソー 1270 スファイルから以下のファイルを削除した。 1379 1271 1380 1272 #include <net/net_rename.h> 1381 1273 #include <netinet/in_rename.h> 1382 1274 1383 (16) TINET ã®æ¨æº Makefile.config ãä½æãã ã¢ããªã±ã¼ã·ã§ã³ã® 1384 Makefile ããã¤ã³ã¯ã«ã¼ãããããã«å¤æ´ããã 1385 1386 (17) tinet/netdev/if_ed/if_ed.c ã®ä»¥ä¸ã®é¢æ°ã§ããã£ã¹ãããç¦æ¢ç¶ 1387 æ 1388 ã«ãªããªãããã«å¤æ´ããã 1275 (16) TINET の標準 Makefile.config を作成し、 アプリケーションの 1276 Makefile からインクルードするように変更した。 1277 1278 (17) tinet/netdev/if_ed/if_ed.c の以下の関数で、ディスパッチ禁止状 1279 態にならないように変更した。 1389 1280 1390 1281 ed_pio_readmem 1391 1282 ed_pio_writemem 1392 1283 1393 (18) ã·ã¹ãã æå» (SYSTIM) ã®å¨æ³¢æ°ãSYSTIM_HZ ãå®ç¾©ããã1394 1395 (19) cygwin 㧠g++ ã®ãã¼ã¸ã§ã³ã«ãã£ã¦ã TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã¿1396 ã®çææã«ã¨ã©ã¼ãçºçããåé¡ãä¿®æ£ããã1397 1398 (20) Makefile.config ã«ãããæå®ã®å¤æ´1399 1400 [1] tinet/netdev/if_ed/if_ed.c ã« Makefile.config ãä½æãã1401 TINET ã®æ¨æº Makefile.config ããã¤ã³ã¯ã«ã¼ãããããã«1402 å¤æ´ããã1403 [2] JSP ã®ã·ã¹ãã ä¾åé¨ã® $(CPU)/$(SYS)/Makefile.config ã1404 ãã TINET ã®ãããã¯ã¼ã¯ã»ãã£ãã¤ã¹ã®ä¾åé¨ã®å®ç¾©ãå1405 é¤ããã1406 [3] ã¢ããªã±ã¼ã·ã§ã³ã® Makefile ã«ã¯ã1407 1408 # ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ãã®é¸æ1284 (18) システム時刻 (SYSTIM) の周波数、SYSTIM_HZ を定義した。 1285 1286 (19) cygwin で g++ のバージョンによって、 TINET コンフィギュレータ 1287 の生成時にエラーが発生する問題を修正した。 1288 1289 (20) Makefile.config における指定の変更 1290 1291 [1] tinet/netdev/if_ed/if_ed.c に Makefile.config を作成し、 1292 TINET の標準 Makefile.config からインクルードするように 1293 変更した。 1294 [2] JSP のシステム依存部の $(CPU)/$(SYS)/Makefile.config か 1295 ら、 TINET のネットワーク・ディバイスの依存部の定義を削 1296 除した。 1297 [3] アプリケーションの Makefile には、 1298 1299 # イーサネット・ディバイスドライバの選択 1409 1300 NET_DEV = if_ed 1410 1301 1411 ãæå®ããå¿ 1412 è¦ãããã 1413 1414 (21) tinet/netapp/netapp.h ã«ã ã³ã³ã½ã¼ã«ã«ç¨ããã·ãªã¢ã«ãã¼ãçª 1415 å·ã®å®ç¾©ã追å ããã 1302 を指定する必要がある。 1303 1304 (21) tinet/netapp/netapp.h に、 コンソールに用いるシリアルポート番 1305 号の定義を追加した。 1416 1306 1417 1307 /* 1418 * ã³ã³ã½ã¼ã«ã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·1308 * コンソールに用いるシリアルポート番号 1419 1309 */ 1420 1310 #ifndef CONSOLE_PORTID … … 1422 1312 #endif /* of #ifndef CONSOLE_PORTID */ 1423 1313 1424 (22) tcp_cls_cep() ã§ãä»æ§ã§ã¯ã FIN ãéã£ã¦ã³ãã¯ã·ã§ã³ãåæã 1425 ããã¨ã«ãªã£ã¦ãããã æ£ããå®è£ 1426 ãã¦ããªãåé¡ãä¿®æ£ããã 1427 1428 (23) tinet_cpu_config.h ã§å®ç¾©ãã¦ããåä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤ 1429 ï¼MAX_TCP_RCV_SEGï¼ã éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤ 1430 ï¼MAX_TCP_SND_SEGï¼ã éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤ 1431 ï¼DEF_TCP_SND_SEGï¼ã åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤ 1432 ï¼DEF_TCP_RCV_SEGï¼ã®å¤ã«é¢ãã¦ãã¤ã¼ãµãããã使ç¨ããå ´åã 1433 å 1434 ¨ã¦ã®å¤ã 1,460 ã«å¤æ´ããã 1435 1436 (24) ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã¨ãã¦ã TCP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ã 1437 ã追å ããã 1438 1439 (25) TCP ã® MSS (TCP_MSS) ã«é¢ãã¦ã 1314 (22) tcp_cls_cep() で、仕様では、 FIN を送ってコネクションを切断す 1315 ることになっているが、 正しく実装していない問題を修正した。 1316 1317 (23) tinet_cpu_config.h で定義している受信セグメントサイズの最大値 1318 (MAX_TCP_RCV_SEG)、 送信セグメントサイズの最大値 1319 (MAX_TCP_SND_SEG)、 送信セグメントサイズの規定値 1320 (DEF_TCP_SND_SEG)、 受信セグメントサイズの規定値 1321 (DEF_TCP_RCV_SEG)の値に関して、イーサネットを使用する場合、 1322 全ての値を 1,460 に変更した。 1323 1324 (24) サンプルアプリケーションとして、 TCP ディスカードクライアント 1325 を追加した。 1326 1327 (25) TCP の MSS (TCP_MSS) に関して、 1440 1328 1441 1329 #define TCP_MSS (IP4_MSS - (IP4_HDR_SIZE + TCP_HDR_SIZE)) 1442 1330 1443 ãããBSD ã®æ¨æºå¤1331 から、BSD の標準値 1444 1332 1445 1333 #define TCP_MSS 512 1446 1334 1447 ã«å¤æ´ããã 1448 1449 (26) tcp_con_cep ã§ã ã¿ã¤ã ã¢ã¦ãã«ãã³ããããã³ã°ä»¥å¤ãæå®ãã 1450 å ´åã ã¿ã¤ã ã¢ã¦ãåã«ã¨ã©ã¼ã«ãªãå¯è½æ§ãããåé¡ãä¿®æ£ããã 1451 1452 (27) ãããã¯ã¼ã¯ã¿ã¤ãã§ã è¤æ°ã®ã¨ã³ããªãåæã«ã¿ã¤ã ã¢ã¦ãã㦠1453 ãã ç»é²ããã¦ããå 1454 ¨ã¦ã®é¢æ°ãå¼ã³åºããªãåé¡ãä¿®æ£ããã 1455 1456 (28) ããã¼ããã£ã¹ãéä¿¡ãæ£ããå¦çãã¦ããªãã£ãåé¡ãä¿®æ£ããã 1457 次ã®å ´åã¯ãã¤ã¼ãµãããã®éä¿¡å 1458 MAC ã«ã¯ããã¼ããã£ã¹ãã¢ã 1459 ã¬ã¹ãè¨å®ããã 1460 1461 ã»IP ã¢ãã¬ã¹ã®å 1462 ¨ãããã 1 1463 ã»IP ã¢ãã¬ã¹ã®ãã¹ãé¨ã®å 1464 ¨ãããã 1 ã§ã ãããã¯ã¼ã¯é¨ããã¼ 1465 ã«ã«ã¢ãã¬ã¹ 1466 1467 åæã«ã IP ã¢ãã¬ã¹ã®å 1468 ¨ãããã 1 ã®ããã¼ããã£ã¹ãã«å¯¾å¿ã 1469 ããããéççµè·¯è¡¨ (route_cfg.c) ã«ã¯ãæå¾ã®ã¨ã³ããªã¨ãã¦ä»¥ 1470 ä¸ã®è¡ã追å ããã 1335 に変更した。 1336 1337 (26) tcp_con_cep で、 タイムアウトにノンブロッキング以外を指定した 1338 場合、 タイムアウト前にエラーになる可能性がある問題を修正した。 1339 1340 (27) ネットワークタイマで、 複数のエントリが同時にタイムアウトして 1341 も、 登録されている全ての関数を呼び出さない問題を修正した。 1342 1343 (28) ブロードキャスト送信を正しく処理していなかった問題を修正した。 1344 次の場合は、イーサネットの送信先 MAC にはブロードキャストアド 1345 レスを設定する。 1346 1347 ・IP アドレスの全ビットが 1 1348 ・IP アドレスのホスト部の全ビットが 1 で、 ネットワーク部がロー 1349 カルアドレス 1350 1351 同時に、 IP アドレスの全ビットが 1 のブロードキャストに対応す 1352 るため、静的経路表 (route_cfg.c) には、最後のエントリとして以 1353 下の行を追加した。 1471 1354 1472 1355 { 0xffffffff, 0xffffffff, 0 }, 1473 1356 1474 ã¾ãã ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ 1475 NUM_ROUTE_ENTRY ã 1 å¢å ããã 1476 1477 (29) é¢æ° ntohl() ã使ãã¹ãã¨ããã§é¢æ° ntohs() ã使ã£ã¦ããåé¡ 1478 ãä¿®æ£ããã 1479 1480 (30) IP åã³ UDP ã®ãã§ãã¯ãµã ã®å¤ãé¢æ° htons() ã使ã£ã¦ã代å 1481 ¥ã 1482 ã¦ããåé¡ãä¿®æ£ããã 1483 1484 (31) (SIL_ENDIAN == SIL_ENDIAN_LITTLE ã®ãHTONL() HTONS() ã®å®ç¾©èª¤ 1485 ããä¿®æ£ããã 1486 1487 (32) UDP ã®å 1488 ¥åé¢æ° udp_input ã§ãå®å 1489 ã¢ãã¬ã¹ã¨ãã¦æ£ããããã§ã 1490 ã¯ããé¢æ° dstaddr_accept ãå¼åºãåã«ã ãããã¯ã¼ã¯ãã¤ããªã¼ 1491 ããããã¹ããã¤ããªã¼ãã«å¤æãã¦ããªãåé¡ãä¿®æ£ããã 1492 1493 (33) NE2000 äºæ NIC ã®éåä¿¡ãããã¡ãã¼ã¸ãµã¤ãºã®å®ç¾©èª¤ããä¿®æ£ããã 1494 1495 (34) NE2000 äºæ NIC ã§ã NIC ã®å 1496 èµ SRAM ã¸ã®ãã¼ã¿ã®æ¸è¾¼ã¿çµäºå¾ã 1497 ä¸è¦ã®ããæ¸è¾¼ã¿å®äºãå¾ 1498 ããªãããã«å¤æ´ããã 1499 1500 (35) UDP ã§ã ããã¼ããã£ã¹ãã»ãã¼ã¿ã°ã©ã ãåä¿¡ããããã«ä¿®æ£ããã 1501 1502 (36) ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ DHCP_CFG ãæ°è¨ 1503 ãããããã¯ãDHCP ã¡ãã»ã¼ã¸ãåä¿¡ããå ´åã«æå®ããããã ãã 1504 TINET ã¯ãDHCP ãå®è£ 1505 ãã¦ããªããå¿ç¨ããã°ã©ã ã§ã DHCP ã¡ã 1506 ã»ã¼ã¸ãåä¿¡ããããã®å®ç¾©ã§ããã DHCP_CFG ãæå®ããã¨ã 1507 IPV4_ADDR_LOCAL ãæªå®ç¾©ï¼å 1508 ¨ã¦ 0ï¼ã§ããUDP ã«éããDHCP ã¡ã 1509 ã»ã¼ã¸ãåä¿¡ãããã¨ãå¯è½ã«ãªãã 1510 1511 (37) ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ 1512 IPV4_ADDR_LOCAL_BC ãåé¤ããèªåã® IP ã¢ãã¬ã¹ã®ãµããããã 1513 ã¹ã¯ãæå®ãã IPV4_ADDR_LOCAL_MASK ãæ°è¨ããã 1514 1515 (38) ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã« IPv4 ã¢ãã¬ã¹ã追å ããé¢æ° 1516 in4_add_ifaddr ãæ°è¨ããã ãã ãã ãã®é¢æ°ã¯ ITRON TCP/IP 1517 API éäºæã§ããã ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã¤ã¼ãµãããã® 1518 ã¨ãã®ã¿æå¹ã§ããã 1519 1520 (39) çµè·¯è¡¨ã«ã¨ã³ããªã追å ããé¢æ° in4_add_route ãæ°è¨ããããã 1521 ãã ãã®é¢æ°ã¯ ITRON TCP/IP API éäºæã§ããããããã¯ã¼ã¯ã¤ 1522 ã³ã¿ãã§ã¼ã¹ãã¤ã¼ãµãããã®ã¨ãã®ã¿æå¹ã§ããã 1523 1524 (40) ARP ãã£ãã·ã¥ã§ã 空ãããªãã£ãå ´åãã¿ã¤ã ã¢ã¦ãã¾ã§æéã 1525 æçã®ã¨ã³ããªã¼ãæ¢ç´¢ããé¨åã®åé¡ãä¿®æ£ããã 1526 1527 (41) ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ 1528 ETHER_NIC_CFG_RELEASE_NET_BUF ãæ°è¨ããã ããã¯ã¤ã¼ãµããã 1529 åºåæã«ãNIC 㧠net_buf ãéæ¾ããå ´åã«æå®ããã 1530 1531 (42) ARP å 1532 ¥åã§ãIP ã¢ãã¬ã¹ã®éè¤æ¤åºãè¡ãããã«å¤æ´ãããæ¤åºã 1533 ãå ´åã¯ãéè¤ç¸æã® MAC ã¢ãã¬ã¹ã syslog ã«åºåããéè¤ç¸æ 1534 ã«ãéè¤ãããã¨ãä¼ããã 1535 1536 (43) ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ 1537 ARP_CFG_CALLBACK_DUPLICATED ãæ°è¨ããããããæå®ããã¨ãARP 1538 å 1539 ¥å㧠IP ã¢ãã¬ã¹ã®éè¤ãæ¤åºããæã«ã å¿ç¨ããã°ã©ã ã§ç¨æ 1540 ããã³ã¼ã«ããã¯é¢æ° arp_callback_duplicated ãå¼ã³åºãã 1541 1542 (44) IP åºåæã«ãARP ãã£ãã·ã¥ã®ã¿ã¤ã ã¢ã¦ãå¤ãæ´æ°ãã¦ãããã 1543 FreeBSD ã®å®è£ 1544 ã«ãããã¦ã æ´æ°ããªãããã«å¤æ´ãããARP ãã£ã 1545 ã·ã¥ã®ã¿ã¤ã ã¢ã¦ãå¤ã¯ ARP å 1546 ¥åã§ã®ã¿æ´æ°ãããã 1547 1548 (45) tinet/net/net.h ã§ããã¤ããªã¼ãã®å®ç¾©ãè¡ã£ã¦ãããã 1549 tinet/net/net.h ãã¤ã³ã¯ã«ã¼ãããªãã¢ããªã±ã¼ã·ã§ã³ããã°ã© 1550 ã ç¨ã«ã¿ã¼ã²ããä¾åããªããã¤ããªã¼ãé¢æ°ã 1551 tinet/netinet/in.h 㨠tinet/netinet/in_subr.c ã«å®ç¾©ããã 1357 また、 コンパイル時コンフィギュレーションパラメータ 1358 NUM_ROUTE_ENTRY を 1 増加した。 1359 1360 (29) 関数 ntohl() を使うべきところで関数 ntohs() を使っていた問題 1361 を修正した。 1362 1363 (30) IP 及び UDP のチェックサムの値を関数 htons() を使って、代入し 1364 ていた問題を修正した。 1365 1366 (31) (SIL_ENDIAN == SIL_ENDIAN_LITTLE の、HTONL() HTONS() の定義誤 1367 りを修正した。 1368 1369 (32) UDP の入力関数 udp_input で、宛先アドレスとして正しいかチェッ 1370 クする関数 dstaddr_accept を呼出す前に、 ネットワークバイトオー 1371 ダからホストバイトオーダに変換していない問題を修正した。 1372 1373 (33) NE2000 互換 NIC の送受信バッファページサイズの定義誤りを修正した。 1374 1375 (34) NE2000 互換 NIC で、 NIC の内蔵 SRAM へのデータの書込み終了後、 1376 不要のため書込み完了を待たないように変更した。 1377 1378 (35) UDP で、 ブロードキャスト・データグラムも受信するように修正した。 1379 1380 (36) コンパイル時コンフィギュレーションパラメータ DHCP_CFG を新設 1381 した。これは、DHCP メッセージを受信する場合に指定する。ただし、 1382 TINET は、DHCP を実装していない。応用プログラムで、 DHCP メッ 1383 セージを受信するための定義である。 DHCP_CFG を指定すると、 1384 IPV4_ADDR_LOCAL が未定義(全て 0)でも、UDP に限り、DHCP メッ 1385 セージを受信することが可能になる。 1386 1387 (37) コンパイル時コンフィギュレーションパラメータ 1388 IPV4_ADDR_LOCAL_BC を削除し、自分の IP アドレスのサブネットマ 1389 スクを指定する IPV4_ADDR_LOCAL_MASK を新設した。 1390 1391 (38) ネットワークインタフェースに IPv4 アドレスを追加する関数 1392 in4_add_ifaddr を新設した。 ただし、 この関数は ITRON TCP/IP 1393 API 非互換であり、 ネットワークインタフェースがイーサネットの 1394 ときのみ有効である。 1395 1396 (39) 経路表にエントリを追加する関数 in4_add_route を新設した。ただ 1397 し、 この関数は ITRON TCP/IP API 非互換であり、ネットワークイ 1398 ンタフェースがイーサネットのときのみ有効である。 1399 1400 (40) ARP キャッシュで、 空きがなかった場合、タイムアウトまで時間が 1401 最短のエントリーを探索する部分の問題を修正した。 1402 1403 (41) コンパイル時コンフィギュレーションパラメータ 1404 ETHER_NIC_CFG_RELEASE_NET_BUF を新設した。 これはイーサネット 1405 出力時に、NIC で net_buf を開放する場合に指定する。 1406 1407 (42) ARP 入力で、IP アドレスの重複検出を行うように変更した。検出し 1408 た場合は、重複相手の MAC アドレスを syslog に出力し、重複相手 1409 にも重複したことを伝える。 1410 1411 (43) コンパイル時コンフィギュレーションパラメータ 1412 ARP_CFG_CALLBACK_DUPLICATED を新設した。これを指定すると、ARP 1413 入力で IP アドレスの重複を検出した時に、 応用プログラムで用意 1414 したコールバック関数 arp_callback_duplicated を呼び出す。 1415 1416 (44) IP 出力時に、ARP キャッシュのタイムアウト値を更新していたが、 1417 FreeBSD の実装にあわせて、 更新しないように変更した。ARP キャッ 1418 シュのタイムアウト値は ARP 入力でのみ更新される。 1419 1420 (45) tinet/net/net.h でもバイトオーダの定義を行っているが、 1421 tinet/net/net.h をインクルードしないアプリケーションプログラ 1422 ム用にターゲット依存しないバイトオーダ関数を 1423 tinet/netinet/in.h と tinet/netinet/in_subr.c に定義した。 -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_config.txt
-
Property svn:mime-type
changed from
text/plain
totext/plane; charset=UTF-8
r313 r315 1 ãªãªã¼ã¹ 1.7ãã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ï¼»2014/11/13ï¼½2 3 1. ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã«ã¤ãã¦4 5 TCP/IP ãããã³ã«ã¹ã¿ãã¯ï¼ä»¥ä¸ TINETï¼ã®å種ã¿ã¤ãã³ã°ããã©ã¡ã¼ã¿6 ãã ã³ã³ãã¤ã«æã«æå®ããããã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã解説ããã7 TINET ããå¤æ§ãªã¿ã¼ã²ããã«å¯¾å¿ããããã以ä¸ã®ãã¡ã¤ã«ã使ç¨ãã¦ã8 ãã æå®ãããã©ã¡ã¼ã¿ã¯ã ãããã®ãã¡ã¤ã«ã§æå®ãã¦ãããã ã¾ãã 9 Makefile ã§æå®ãããã¨ãå¯è½ã§ããã1 リリース 1.7、コンパイル時コンフィギュレーション[2014/11/13] 2 3 1. コンパイル時コンフィギュレーションについて 4 5 TCP/IP プロトコルスタック(以下 TINET)の各種タイミングやパラメータ 6 を、 コンパイル時に指定するためのコンフィギュレーションを解説する。 7 TINET を、多様なターゲットに対応するため、以下のファイルを使用してい 8 る。 指定するパラメータは、 いずれのファイルで指定してもよい。 また、 9 Makefile で指定することも可能である。 10 10 11 11 (1) tinet_config.h 12 TINET å 13 ¨ä½ãã©ã¡ã¼ã¿ãå®ç¾©ãã 以ä¸ã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ã 14 ãã¦ãããTINET ã®ã«ã¼ããã£ã¬ã¯ããªã«ç½®ãã 15 16 (2) tinet_target_config.hï¼TOPPERS/ASPï¼ 17 ã¿ã¼ã²ããã«ä¾åãããã©ã¡ã¼ã¿ãå®ç¾©ããã åã·ã¹ãã ã®ã¿ã¼ 18 ã²ããä¾åé¨ã®ãã£ã¬ã¯ããªã«ç½®ãã 19 20 (3) tinet_cpu_config.hï¼TOPPERS/JSPï¼ 21 ããã»ããµã«ä¾åãããã©ã¡ã¼ã¿ãå®ç¾©ãããconfig ã®ããã»ã 22 ãµç¥ç§°ã®ãã£ã¬ã¯ããªã«ç½®ãã 23 24 (4) tinet_sys_config.hï¼TOPPERS/JSPï¼ 25 ã·ã¹ãã ã«ä¾åãããã©ã¡ã¼ã¿ãå®ç¾©ãããconfig ã®ã·ã¹ãã ç¥ 26 称ã®ãã£ã¬ã¯ããªã«ç½®ãã 12 TINET 全体パラメータを定義し、 以下のファイルをインクルード 13 している。TINET のルートディレクトリに置く。 14 15 (2) tinet_target_config.h(TOPPERS/ASP) 16 ターゲットに依存するパラメータを定義する。 各システムのター 17 ゲット依存部のディレクトリに置く。 18 19 (3) tinet_cpu_config.h(TOPPERS/JSP) 20 プロセッサに依存するパラメータを定義する。config のプロセッ 21 サ略称のディレクトリに置く。 22 23 (4) tinet_sys_config.h(TOPPERS/JSP) 24 システムに依存するパラメータを定義する。config のシステム略 25 称のディレクトリに置く。 27 26 28 27 (5) tinet_app_config.h 29 ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ã«ä¾åãããã©ã¡ã¼ã¿ãå®ç¾©ããã30 ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã ã®ãã£ã¬ã¯ããªã«ç½®ãã28 アプリケーションプログラムに依存するパラメータを定義する。 29 アプリケーションプログラムのディレクトリに置く。 31 30 32 31 (6) tinet_nic_config.h 33 ã¤ã¼ãµãããã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åãããã©ã¡ã¼ã¿ãå®ç¾©ããã34 tinet/netdev ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã£ã¬ã¯ããªã«ç½®ãã35 ãã ãã æ±ç¨ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å¥ååãã¡ã¤ã«36 nic_rename.h ã¨ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®å¶å¾¡é¢æ°ãå®ç¾©ãã37 ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããããã«ãªã£ã¦ããã38 39 2. ãµãã¼ããããããã¯ã¼ã¯æ©è½32 イーサネットインタフェースに依存するパラメータを定義する。 33 tinet/netdev のネットワークインタフェースのディレクトリに置く。 34 ただし、 汎用のネットワークインタフェース・別名化ファイル 35 nic_rename.h とネットワークインタフェースの制御関数を定義する 36 ファイルをインクルードするようになっている。 37 38 2. サポートするネットワーク機能 40 39 41 40 (1) SUPPORT_INET6 42 IPv6 ãæå¹ã«ããã41 IPv6 を有効にする。 43 42 44 43 (2) SUPPORT_INET4 45 IPv4 ãæå¹ã«ããã44 IPv4 を有効にする。 46 45 47 46 (3) API_CFG_IP4MAPPED_ADDR 48 ãããã¯ã¼ã¯å±¤ã¨ã㦠IPv6 ãé¸æããå ´åã IPv6 ã® API ã«ãã49 ã IPv6 ã¢ãã¬ã¹ã¨ã㦠IPv4 å°å½±ã¢ãã¬ã¹ã使ç¨ãããã¨ãå¯è½50 ã«ããã47 ネットワーク層として IPv6 を選択した場合、 IPv6 の API におけ 48 る IPv6 アドレスとして IPv4 射影アドレスを使用することを可能 49 にする。 51 50 52 51 (4) SUPPORT_TCP 53 TCP ãæå¹ã«ããã52 TCP を有効にする。 54 53 55 54 (5) SUPPORT_UDP 56 UDP ãæå¹ã«ããã55 UDP を有効にする。 57 56 58 57 (6) SUPPORT_PPP 59 PPP ãæå¹ã«ããã ãã ããSUPPORT_LOOP 㨠SUPPORT_ETHER ã¨ã¯ 60 æä»ã§ãããããããä¸ã¤æå®ã§ããããªãã PPP ã¯åèå®è£ 61 ã§ããã 58 PPP を有効にする。 ただし、SUPPORT_LOOP と SUPPORT_ETHER とは 59 排他であり、いずれか一つ指定できる。なお、 PPP は参考実装である。 62 60 63 61 (7) SUPPORT_LOOP 64 ã«ã¼ãããã¯ãæå¹ã«ããã ãã ãã SUPPORT_PPP 㨠65 SUPPORT_ETHER ã¨ã¯æä»ã§ãããããããä¸ã¤æå®ã§ããã ãªãã 66 ã«ã¼ãããã¯ã¯åèå®è£ 67 ã§ããã 62 ループバックを有効にする。 ただし、 SUPPORT_PPP と 63 SUPPORT_ETHER とは排他であり、いずれか一つ指定できる。 なお、 64 ループバックは参考実装である。 68 65 69 66 (8) SUPPORT_ETHER 70 ã¤ã¼ãµãããã¤ã³ã¿ãã§ã¼ã¹ãæå¹ã«ããã ãã ããSUPPORT_PPP71 㨠SUPPORT_LOOP ã¨ã¯æä»ã§ãããããããä¸ã¤æå®ã§ããã67 イーサネットインタフェースを有効にする。 ただし、 SUPPORT_PPP 68 と SUPPORT_LOOP とは排他であり、いずれか一つ指定できる。 72 69 73 70 (9) SUPPORT_MIB 74 SNMP ç¨ç®¡çæ 75 å ±ãã¼ã¹ï¼MIBï¼ã«æºæ ãããããã¯ã¼ã¯çµ±è¨ã®åå¾ 76 ãæå¹ã«ããããã ããTINET èªä½ã¯ã管çæ 77 å ±ãã¼ã¹ï¼MIBï¼ã«æº 78 æ ãããããã¯ã¼ã¯çµ±è¨ãæä¾ããã ãã§ï¼SNMP ããµãã¼ããã¦ããªãã 79 80 3. ãããã¯ã¼ã¯å 81 ¨ä½ã«é¢ä¿ãããã©ã¡ã¼ã¿ 71 SNMP 用管理情報ベース(MIB)に準拠したネットワーク統計の取得 72 を有効にする。ただし、TINET 自体は、管理情報ベース(MIB)に準 73 拠したネットワーク統計を提供するだけで,SNMP をサポートしていない。 74 75 3. ネットワーク全体に関係するパラメータ 82 76 83 77 (1) NET_TIMER_STACK_SIZE 84 ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã78 ネットワークタイマタスクのスタックサイズを指定する。 85 79 86 80 (2) NET_TIMER_PRIORITY 87 ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã®åªå 88 度ãæå®ããã 81 ネットワークタイマタスクの優先度を指定する。 89 82 90 83 (3) NUM_NET_CALLOUT 91 ã¿ã¤ã ã¢ã¦ãå¼åºãæ°ã10 以ä¸ã®å¤ãæå®ãããã¨ã84 タイムアウト呼出し数、10 以上の値を指定すること。 92 85 93 86 (4) NUM_IN6_IFADDR_ENTRY 94 ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãªã¹ãï¼IPv6ï¼ã®ã¨ã³ããªæ°ã§ããã87 インタフェースのアドレスリスト(IPv6)のエントリ数である。 95 88 96 89 (5) NUM_MPF_NET_BUF_CSEG 97 ãã¬ã¼ã ããã + IP ããã + TCP ããããµã¤ãºã®ãããã¯ã¼ã¯ãã98 ãã¡æ°ãæå®ããã90 フレームヘッダ + IP ヘッダ + TCP ヘッダサイズのネットワークバッ 91 ファ数を指定する。 99 92 100 93 (6) NUM_MPF_NET_BUF_64 101 ãµã¤ãº 64 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã94 サイズ 64 オクテットのネットワークバッファ数を指定する。 102 95 103 96 (7) NUM_MPF_NET_BUF_128 104 ãµã¤ãº 128 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã97 サイズ 128 オクテットのネットワークバッファ数を指定する。 105 98 106 99 (8) NUM_MPF_NET_BUF_256 107 ãµã¤ãº 256 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã100 サイズ 256 オクテットのネットワークバッファ数を指定する。 108 101 109 102 (9) NUM_MPF_NET_BUF_512 110 ãµã¤ãº 512 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã103 サイズ 512 オクテットのネットワークバッファ数を指定する。 111 104 112 105 (10) NUM_MPF_NET_BUF_1024 113 ãµã¤ãº 1024 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã106 サイズ 1024 オクテットのネットワークバッファ数を指定する。 114 107 115 108 (11) NUM_MPF_NET_BUF_IF_PDU 116 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ大 PDUï¼ãã¬ã¼ã ãããé· + MTUï¼117 ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã109 ネットワークインタフェースの最大 PDU(フレームヘッダ長 + MTU) 110 サイズのネットワークバッファ数を指定する。 118 111 119 112 (12) NUM_MPF_NET_BUF_IPV6_MMTU 120 ãã¬ã¼ã ããã + IPv6 MMTUï¼1280ï¼ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡121 æ°ãæå®ããã113 フレームヘッダ + IPv6 MMTU(1280)サイズのネットワークバッファ 114 数を指定する。 122 115 123 116 (13) NUM_MPF_NET_BUF_IP_MSS 124 ãã¬ã¼ã ããã + IP MSSï¼576ï¼ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡æ°125 ãæå®ããã117 フレームヘッダ + IP MSS(576)サイズのネットワークバッファ数 118 を指定する。 126 119 127 120 (14) NUM_MPF_NET_BUF4_REASSM 128 IPv4 ç¨ã®åæ§æãããã¡ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã121 IPv4 用の再構成バッファサイズのネットワークバッファ数を指定する。 129 122 130 123 (15) NET_COUNT_ENABLE 131 è¨æ¸¬ãããããã¯ã¼ã¯çµ±è¨æ 132 å ±ãã ãããã³ã«èå¥ãã©ã°ã® OR 㧠133 æå®ããã 134 135 PROTO_FLG_PPP_HDLC PPP ã® HDLC ã®çµ±è¨æ 136 å ± 137 PROTO_FLG_PPP_AUTH PPP ã®èªè¨¼ã«é¢ããçµ±è¨æ 138 å ± 139 PROTO_FLG_PPP_LCP PPP ã® LCP ã®çµ±è¨æ 140 å ± 141 PROTO_FLG_PPP_IPCP PPP ã® IPCP ã®çµ±è¨æ 142 å ± 143 PROTO_FLG_PPP PPP ã®çµ±è¨æ 144 å ± 145 PROTO_FLG_LOOP ã«ã¼ãããã¯ã®çµ±è¨æ 146 å ± 147 PROTO_FLG_ETHER_NIC ã¤ã¼ãµãããã¤ã³ã¿ãã§ã¼ã¹ã®çµ±è¨æ 148 å ± 149 PROTO_FLG_ETHER ã¤ã¼ãµãããã®çµ±è¨æ 150 å ± 151 PROTO_FLG_IP6 IPv6 ã®çµ±è¨æ 152 å ± 153 PROTO_FLG_ICMPv6 ICMPv6 ã®çµ±è¨æ 154 å ± 155 PROTO_FLG_ND6 è¿é£æ¢ç´¢ã®çµ±è¨æ 156 å ± 157 PROTO_FLG_IP4 IPv4 ã®çµ±è¨æ 158 å ± 159 PROTO_FLG_ICMPv4 ICMPv4 ã®çµ±è¨æ 160 å ± 161 PROTO_FLG_ARP ARP ã®çµ±è¨æ 162 å ± 163 PROTO_FLG_TCP TCP ã®çµ±è¨æ 164 å ± 165 PROTO_FLG_UDP UDP ã®çµ±è¨æ 166 å ± 167 PROTO_FLG_NET_BUF ãããã¯ã¼ã¯ãããã¡ã®çµ±è¨æ 168 å ± 169 170 4. ãµãã¼ãé¢æ°ã«é¢ä¿ãããã©ã¡ã¼ã¿ 124 計測するネットワーク統計情報を、 プロトコル識別フラグの OR で 125 指定する。 126 127 PROTO_FLG_PPP_HDLC PPP の HDLC の統計情報 128 PROTO_FLG_PPP_AUTH PPP の認証に関する統計情報 129 PROTO_FLG_PPP_LCP PPP の LCP の統計情報 130 PROTO_FLG_PPP_IPCP PPP の IPCP の統計情報 131 PROTO_FLG_PPP PPP の統計情報 132 PROTO_FLG_LOOP ループバックの統計情報 133 PROTO_FLG_ETHER_NIC イーサネットインタフェースの統計情報 134 PROTO_FLG_ETHER イーサネットの統計情報 135 PROTO_FLG_IP6 IPv6 の統計情報 136 PROTO_FLG_ICMPv6 ICMPv6 の統計情報 137 PROTO_FLG_ND6 近隣探索の統計情報 138 PROTO_FLG_IP4 IPv4 の統計情報 139 PROTO_FLG_ICMPv4 ICMPv4 の統計情報 140 PROTO_FLG_ARP ARP の統計情報 141 PROTO_FLG_TCP TCP の統計情報 142 PROTO_FLG_UDP UDP の統計情報 143 PROTO_FLG_NET_BUF ネットワークバッファの統計情報 144 145 4. サポート関数に関係するパラメータ 171 146 172 147 (1) NUM_IPV6ADDR_STR_BUFF 173 ãµãã¼ãé¢æ° ipv62str ã«ããã¦ã TINET å 174 é¨ã§ç¢ºä¿ããæååãã 175 ãã¡æ°ãæå®ããã 148 サポート関数 ipv62str において、 TINET 内部で確保する文字列バッ 149 ファ数を指定する。 176 150 177 151 (2) NUM_IPV4ADDR_STR_BUFF 178 ãµãã¼ãé¢æ° ip2str ã«ããã¦ã TINET å 179 é¨ã§ç¢ºä¿ããæååãã 180 ãã¡æ°ãæå®ããã 152 サポート関数 ip2str において、 TINET 内部で確保する文字列バッ 153 ファ数を指定する。 181 154 182 155 (3) NUM_MACADDR_STR_BUFF 183 ãµãã¼ãé¢æ° mac2str ã«ããã¦ãTINET å 184 é¨ã§ç¢ºä¿ããæååãã 185 ãã¡æ°ãæå®ããã 186 187 5. ã¤ã¼ãµãããé¢ä¿ã®ãã©ã¡ã¼ã¿ 188 189 5. 1 ã¤ã¼ãµãããå 190 ¨ä½ã«é¢ä¿ãããã©ã¡ã¼ã¿ 156 サポート関数 mac2str において、TINET 内部で確保する文字列バッ 157 ファ数を指定する。 158 159 5. イーサネット関係のパラメータ 160 161 5. 1 イーサネット全体に関係するパラメータ 191 162 192 163 (1) NUM_DTQ_ETHER_OUTPUT 193 ã¤ã¼ãµãããåºåãã¼ã¿ãã¥ã¼ãµã¤ãºãæå®ããã 2 以ä¸ã®å¤ãæ194 å®ãããã¨ã164 イーサネット出力データキューサイズを指定する。 2 以上の値を指 165 定すること。 195 166 196 167 (2) ETHER_INPUT_STACK_SIZE 197 ã¤ã¼ãµãããå 198 ¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã 168 イーサネット入力タスクのスタックサイズを指定する。 199 169 200 170 (3) ETHER_OUTPUT_STACK_SIZE 201 ã¤ã¼ãµãããåºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã171 イーサネット出力タスクのスタックサイズを指定する。 202 172 203 173 (4) ETHER_INPUT_PRIORITY 204 ã¤ã¼ãµãããå 205 ¥åã¿ã¹ã¯ã®åªå 206 度ãæå®ããã 174 イーサネット入力タスクの優先度を指定する。 207 175 208 176 (5) ETHER_OUTPUT_PRIORITY 209 ã¤ã¼ãµãããåºåã¿ã¹ã¯ã®åªå 210 度ãæå®ããã 177 イーサネット出力タスクの優先度を指定する。 211 178 212 179 (6) ETHER_CFG_UNEXP_WARNING 213 éãµãã¼ããã¬ã¼ã ã®è¦åã表示ããå ´åæå®ããã180 非サポートフレームの警告を表示する場合指定する。 214 181 215 182 (7) ETHER_CFG_802_WARNING 216 IEEE 802.3 ãã¬ã¼ã ã®è¦åã表示ããå ´åæå®ããã ãªããIEEE217 802.3 ãã¬ã¼ã ã¯ãµãã¼ããã¦ããªãã183 IEEE 802.3 フレームの警告を表示する場合指定する。 なお、 IEEE 184 802.3 フレームはサポートしていない。 218 185 219 186 (8) ETHER_CFG_MCAST_WARNING 220 ãã«ããã£ã¹ãã®è¦åã表示ããå ´åæå®ããã187 マルチキャストの警告を表示する場合指定する。 221 188 222 189 (9) ETHER_CFG_ACCEPT_ALL 223 ãã«ããã£ã¹ãã ã¨ã©ã¼ãã¬ã¼ã ãåä¿¡ããå ´åæå®ããã190 マルチキャスト、 エラーフレームも受信する場合指定する。 224 191 225 192 (10) ETHER_NIC_CFG_RELEASE_NET_BUF 226 ã¤ã¼ãµãããåºåæã«ãNIC 㧠net_buf ãéæ¾ããå ´åã«æå®ããã193 イーサネット出力時に、NIC で net_buf を開放する場合に指定する。 227 194 228 195 (11) ETHER_CFG_COLLECT_ADDR 229 æå®ããã¨ä¸å®å¨æï¼256 åã®ãã¬ã¼ã åä¿¡æ¯ï¼ã«éä¿¡å 230 ã® MAC 㢠231 ãã¬ã¹ã«ããä¹±æ°ãæ´æ°ããã 232 233 5. 2 NICï¼NE2000 äºæï¼é¢ä¿ã®ãã©ã¡ã¼ã¿ 196 指定すると一定周期(256 回のフレーム受信毎)に送信元の MAC ア 197 ドレスにより乱数を更新する。 198 199 5. 2 NIC(NE2000 互換)関係のパラメータ 234 200 235 201 (1) IF_ED_CFG_16BIT 236 16 ãããã¢ã¼ãã§ä½¿ç¨ããå ´åã«æå®ããã ãã ãã16 ãããã¢ã¼ 237 ãã¯æªå®è£ 238 ã§ããã 202 16 ビットモードで使用する場合に指定する。 ただし、16 ビットモー 203 ドは未実装である。 239 204 240 205 (2) NUM_IF_ED_TXBUF 241 éä¿¡ãã¬ã¼ã ã®ãããã¡æ°ãæå®ãããæ¨æºå¤ã¯ 1 ã§ããã206 送信フレームのバッファ数を指定する。標準値は 1 である。 242 207 243 208 (3) TMO_IF_ED_GET_NET_BUF 244 åä½ã¯ [ms] ã§ã åä¿¡ãã¬ã¼ã ç¨ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¿ã¤245 ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1 [ms] ã§ããã209 単位は [ms] で、 受信フレーム用ネットワークバッファの獲得タイ 210 ムアウトを指定する。標準値は 1 [ms] である。 246 211 247 212 (4) TMO_IF_ED_XMIT 248 éä¿¡ã¿ã¤ã ã¢ã¦ãå¤ãæå®ãããå¤ã¯ IF_TIMER_HZ ã®åæ°ã§æå®ãã249 æ¨æºå¤ã¯ (2*IF_TIMER_HZ) ã§ããã213 送信タイムアウト値を指定する。値は IF_TIMER_HZ の倍数で指定し、 214 標準値は (2*IF_TIMER_HZ) である。 250 215 251 216 (5) IF_ED_CFG_ACCEPT_ALL 252 ãã«ããã£ã¹ãã ã¨ã©ã¼ãã¬ã¼ã ãåä¿¡ããå ´åæå®ããã253 254 5. 3 NIC ï¼RTL8019ASï¼é¢ä¿ã®ãã©ã¡ã¼ã¿217 マルチキャスト、 エラーフレームも受信する場合指定する。 218 219 5. 3 NIC(RTL8019AS)関係のパラメータ 255 220 256 221 (1) ED_BASE_ADDRESS 257 NIC ã®ã¬ã¸ã¹ã¿ã®ãã¼ã¹ã¢ãã¬ã¹ãæå®ããã222 NIC のレジスタのベースアドレスを指定する。 258 223 259 224 (2) INHNO_IF_ED 260 å²ãè¾¼ã¿çªå·ãæå®ããã225 割り込み番号を指定する。 261 226 262 227 (3) ED_IER_IP_BIT 263 å²ãè¾¼ã¿ã¤ãã¼ãã«ã¬ã¸ã¹ã¿ï¼IERï¼ã®å¶å¾¡ããããæå®ããã228 割り込みイネーブルレジスタ(IER)の制御ビットを指定する。 264 229 265 230 (4) ED_IPR 266 å²ãè¾¼ã¿åªå 267 ã¬ã¸ã¹ã¿ï¼IPRï¼ãæå®ããã 231 割り込み優先レジスタ(IPR)を指定する。 268 232 269 233 (5) ED_IPR_IP_BIT 270 å²ãè¾¼ã¿åªå 271 ã¬ã¸ã¹ã¿ï¼IPRï¼ã®å¶å¾¡ããããæå®ããã 234 割り込み優先レジスタ(IPR)の制御ビットを指定する。 272 235 273 236 (6) ED_RTL_CFG0_IRQS 274 å²ãè¾¼ã¿ã¤ãã¼ãã«ã¬ã¸ã¹ã¿ï¼IERï¼ã®å¶å¾¡ããããæå®ããã275 276 6. ARP é¢ä¿ã®ãã©ã¡ã¼ã¿237 割り込みイネーブルレジスタ(IER)の制御ビットを指定する。 238 239 6. ARP 関係のパラメータ 277 240 278 241 (1) NUM_ARP_ENTRY 279 ARP ãã£ãã·ã¥ã¨ã³ããªæ°ãæå®ããã242 ARP キャッシュエントリ数を指定する。 280 243 281 244 (2) ARP_CACHE_KEEP 282 ARP ãã£ãã·ã¥ã®ã¿ã¤ã ã¢ã¦ãå¤ãæå®ããã å¤ã¯NET_TIMER_HZ283 ã®åæ°ã§æå®ããæ¨æºå¤ã¯ (20*60*NET_TIMER_HZ) ã§ããã245 ARP キャッシュのタイムアウト値を指定する。 値は NET_TIMER_HZ 246 の倍数で指定し、標準値は (20*60*NET_TIMER_HZ) である。 284 247 285 248 (3) TMO_ARP_GET_NET_BUF 286 åä½ã¯ [ms] ã§ã ã¢ãã¬ã¹è§£æ±ºè¦æ±ç¨ãããã¯ã¼ã¯ãããã¡ã®ç²å¾287 ã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã249 単位は [ms] で、 アドレス解決要求用ネットワークバッファの獲得 250 タイムアウトを指定する。標準値は 1000 [ms] である。 288 251 289 252 (4) TMO_ARP_OUTPUT 290 åä½ã¯ [ms] ã§ãARP åºåã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯1000291 [ms] ã§ããã253 単位は [ms] で、ARP 出力タイムアウトを指定する。標準値は 1000 254 [ms] である。 292 255 293 256 (5) ARP_CFG_CALLBACK_DUPLICATED 294 æå®ããã¨ãARP å 295 ¥å㧠IP ã¢ãã¬ã¹ã®éè¤ãæ¤åºããæã«ã å¿ç¨ 296 ããã°ã©ã ã§ç¨æããã³ã¼ã«ããã¯é¢æ° arp_callback_duplicated 297 ãå¼ã³åºãã 298 299 7. PPP é¢ä¿ã®ãã©ã¡ã¼ã¿ 300 301 PPP ã¯åèå®è£ 302 ã§ããã 303 304 7. 1 PPP å 305 ¨ä½ã«é¢ä¿ãããã©ã¡ã¼ã¿ 257 指定すると、ARP 入力で IP アドレスの重複を検出した時に、 応用 258 プログラムで用意したコールバック関数 arp_callback_duplicated 259 を呼び出す。 260 261 7. PPP 関係のパラメータ 262 263 PPP は参考実装である。 264 265 7. 1 PPP 全体に関係するパラメータ 306 266 307 267 (1) NUM_DTQ_PPP_OUTPUT 308 PPP åºåã®ãã¼ã¿ãã¥ã¼ãµã¤ãºãæå®ããã 2 以ä¸ã®å¤ãæå®ãããã¨ã268 PPP 出力のデータキューサイズを指定する。 2 以上の値を指定すること。 309 269 310 270 (2) PPP_INPUT_STACK_SIZE 311 PPP å 312 ¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã 271 PPP 入力タスクのスタックサイズを指定する。 313 272 314 273 (3) PPP_OUTPUT_STACK_SIZE 315 PPP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã274 PPP 出力タスクのスタックサイズを指定する。 316 275 317 276 (4) PPP_INPUT_PRIORITY 318 PPP å 319 ¥åã¿ã¹ã¯ã®åªå 320 度ãæå®ããã 277 PPP 入力タスクの優先度を指定する。 321 278 322 279 (5) PPP_OUTPUT_PRIORITY 323 PPP åºåã¿ã¹ã¯ã®åªå 324 度ãæå®ããã 280 PPP 出力タスクの優先度を指定する。 325 281 326 282 (6) TMO_PPP_GET_NET_BUF 327 åä½ã¯ [ms] ã§ã åä¿¡ç¨ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¿ã¤ã ã¢ã¦ã328 ãæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã283 単位は [ms] で、 受信用ネットワークバッファの獲得タイムアウト 284 を指定する。標準値は 1000 [ms] である。 329 285 330 286 (7) PPP_IDLE_TIMEOUT 331 PPP æ¥ç¶ãåæããã¾ã§ã®ã¢ã¤ãã«æéããNET_TIMER_HZ ã®åæ°ã§332 æå®ããã333 334 7. 2 ã¢ãã ã«é¢ããå®ç¾©287 PPP 接続を切断するまでのアイドル時間を、NET_TIMER_HZ の倍数で 288 指定する。 289 290 7. 2 モデムに関する定義 335 291 336 292 (1) PPP_CFG_MODEM 337 ã¢ãã æ¥ç¶ã®å ´åæå®ããã293 モデム接続の場合指定する。 338 294 339 295 (2) MODEM_CFG_INIT 340 ã¢ãã ã®åæåæååãæå®ããã296 モデムの初期化文字列を指定する。 341 297 342 298 (3) MODEM_CFG_DIAL 343 ãã¤ã¢ã«ã³ãã³ãæååãæå®ããã299 ダイアルコマンド文字列を指定する。 344 300 345 301 (4) MODEM_CFG_RETRY_CNT 346 ãã¤ã¢ã«ãªãã©ã¤åæ°ãæ¨æºå¤ã¯ 3 åã§ããã302 ダイアルリトライ回数。標準値は 3 回である。 347 303 348 304 (5) MODEM_CFG_RETRY_WAIT 349 åä½ã¯ [ms] ã§ããã¤ã¢ã«ãªãã©ã¤ã¾ã§ã®å¾ 350 ã¡æéãæå®ããã æ¨ 351 æºå¤ã¯ 10,000 [ms] ã§ããã 305 単位は [ms] で、ダイアルリトライまでの待ち時間を指定する。 標 306 準値は 10,000 [ms] である。 352 307 353 308 (6) MODEM_CFG_PHONE_NUMBER 354 æ¥ç¶ç¸æã®é»è©±çªå·ãæå®ããã355 356 7. 3 HDLC ã«é¢ããå®ç¾©309 接続相手の電話番号を指定する。 310 311 7. 3 HDLC に関する定義 357 312 358 313 (1) DEF_LOCAL_ACCM 359 èªåã®éåæå¶å¾¡æåãããï¼ACCMï¼ãæå®ãããæ¨æºå¤ã¯ XON ã¨360 XOFF ã®ã¿å¤æãããã¨ãæå³ãã 0x000a0000 ã§ããã314 自分の非同期制御文字マップ(ACCM)を指定する。標準値は XON と 315 XOFF のみ変換することを意味する 0x000a0000 である。 361 316 362 317 (2) DEF_REMOTE_ACCM 363 ç¸æã®éåæå¶å¾¡æåãããï¼ACCMï¼ã æ¨æºã®åæå¤ã¯å 364 ¨ã¦å¤æã 365 ããã¨ãæå³ãã 0xffffffff ã§ããã 318 相手の非同期制御文字マップ(ACCM)、 標準の初期値は全て変換す 319 ることを意味する 0xffffffff である。 366 320 367 321 (3) HDLC_PORTID 368 PPP ã«ä½¿ç¨ããã·ãªã¢ã«ãã¼ãçªå·ãæå®ããã369 370 7. 4 LCP ã«é¢ããå®ç¾©322 PPP に使用するシリアルポート番号を指定する。 323 324 7. 4 LCP に関する定義 371 325 372 326 (1) LCP_CFG_MRU 373 LCP ã®æ大åä¿¡åä½ï¼MRUï¼ãªãã·ã§ã³ããµãã¼ãããã¨ãã«æå®ããã327 LCP の最大受信単位(MRU)オプションをサポートするときに指定する。 374 328 375 329 (2) LCP_CFG_ACCM 376 LCP ã®éåæå¶å¾¡æåãããï¼ACCMï¼ãªãã·ã§ã³ããµãã¼ãããã¨377 ãã«æå®ããã330 LCP の非同期制御文字マップ(ACCM)オプションをサポートすると 331 きに指定する。 378 332 379 333 (3) LCP_CFG_MAGIC 380 LCP ã®ãã¸ãã¯çªå·ãªãã·ã§ã³ããµãã¼ãããã¨ãã«æå®ããã334 LCP のマジック番号オプションをサポートするときに指定する。 381 335 382 336 (4) LCP_CFG_PCOMP 383 LCP ã®ãããã³ã«é¨å§ç¸®ãªãã·ã§ã³ããµãã¼ãããã¨ãã«æå®ããã337 LCP のプロトコル部圧縮オプションをサポートするときに指定する。 384 338 385 339 (5) LCP_CFG_ACCOMP 386 LCP ã®ã¢ãã¬ã¹ã»å¶å¾¡é¨å§ç¸®ãªãã·ã§ã³ããµãã¼ãããã¨ãã«æå®ããã340 LCP のアドレス・制御部圧縮オプションをサポートするときに指定する。 387 341 388 342 (6) LCP_CFG_PAP 389 LCP ã®ãã¹ã¯ã¼ãèªè¨¼ãããã³ã«ï¼PAPï¼ãªãã·ã§ã³ããµãã¼ããã390 ã¨ãã«æå®ããã343 LCP のパスワード認証プロトコル(PAP)オプションをサポートする 344 ときに指定する。 391 345 392 346 (7) LCP_CFG_CHAP 393 LCP ã®ãã£ã¬ã³ã¸ãã³ãã·ã§ã¼ã¯èªè¨¼ãããã³ã«ï¼CHAPï¼ãªãã·ã§ 394 ã³ããµãã¼ãããã¨ãã«æå®ããããã ãã ç¾å¨æªå®è£ 395 ã§ããã 347 LCP のチャレンジハンドシェーク認証プロトコル(CHAP)オプショ 348 ンをサポートするときに指定する。ただし、 現在未実装である。 396 349 397 350 (8) LCP_ECHO_INTERVAL 398 ç¸æã®æ£å¸¸æ§ã確èªããããã çµç«¯éã§äº¤æããã¨ã³ã¼ã¡ãã»ã¼ã¸399 ã®ã¤ã³ã¿ã¼ãã«æéãæå®ããã å¤ã¯ NET_TIMER_HZ ã®åæ°ã§æå®400 ããæ¨æºå¤ã¯ (20*NET_TIMER_HZ) ã§ããããã ãããã®ãªãã·ã§ã³401 㯠LCP_CFG_MAGIC ãæå®ããã¨ãã®ã¿æå¹ã§ããã351 相手の正常性を確認するため、 終端間で交換するエコーメッセージ 352 のインターバル時間を指定する。 値は NET_TIMER_HZ の倍数で指定 353 し、標準値は (20*NET_TIMER_HZ) である。ただし、このオプション 354 は LCP_CFG_MAGIC を指定したときのみ有効である。 402 355 403 356 (9) LCP_ECHO_FAILS 404 ã¨ã³ã¼ã¡ãã»ã¼ã¸ã®å¤±æåæ°ãæå®ãããæ¨æºå¤ã¯ 3 åã§ãããã405 ã ãããã®ãªãã·ã§ã³ã¯ LCP_CFG_MAGIC ãæå®ããã¨ãã®ã¿æå¹ã§ããã357 エコーメッセージの失敗回数を指定する。標準値は 3 回である。た 358 だし、このオプションは LCP_CFG_MAGIC を指定したときのみ有効である。 406 359 407 360 (10) DEF_LCP_LOCAL_CFGS 408 èªåã®æ§ææ 409 å ±ã®æ¢å®å¤ãæå®ããã 361 自分の構成情報の既定値を指定する。 410 362 411 363 (11) DEF_LCP_REMOTE_CFGS 412 ç¸æã«è¨±ãæ§ææ 413 å ±ã®æ¢å®å¤ãæå®ããã 414 415 7. 5 ãã¹ã¯ã¼ãèªè¨¼ãããã³ã«ï¼PAPï¼ã«é¢ããå®ç¾© 364 相手に許す構成情報の既定値を指定する。 365 366 7. 5 パスワード認証プロトコル(PAP)に関する定義 416 367 417 368 (1) DEF_PAP_TIMEOUT 418 ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã§èªè¨¼ããå ´åã®ã¿ã¤ã ã¢ã¦ãå¤ãæå®ããã 419 å¤ã¯ NET_TIMER_HZ ã®åæ°ã§æå®ãã æ¨æºå¤ã¯ (3*NET_TIMER_HZ) 420 ã§ãããæå®ããªãã¨æ°¸ä¹ 421 ã«å¾ 422 ã¡ç¶æ 423 ã«ãªãã 369 クライアントモードで認証する場合のタイムアウト値を指定する。 370 値は NET_TIMER_HZ の倍数で指定し、 標準値は (3*NET_TIMER_HZ) 371 である。指定しないと永久に待ち状態になる。 424 372 425 373 (2) DEF_PAP_REQTIME 426 ãµã¼ãã¢ã¼ãã§èªè¨¼ããå ´åã®ã¿ã¤ã ã¢ã¦ãå¤ãæå®ããã å¤ã¯ 427 NET_TIMER_HZ ã®åæ°ã§æå®ãã æ¨æºå¤ã¯ (30*NET_TIMER_HZ) ã§ã 428 ãã æå®ããªãã¨æ°¸ä¹ 429 ã«å¾ 430 ã¡ç¶æ 431 ã«ãªãã 374 サーバモードで認証する場合のタイムアウト値を指定する。 値は 375 NET_TIMER_HZ の倍数で指定し、 標準値は (30*NET_TIMER_HZ) であ 376 る。 指定しないと永久に待ち状態になる。 432 377 433 378 (3) MAX_PAP_REXMT 434 èªè¨¼è¦æ±ã¿ã¤ã ã¢ã¦ãã®æ大åéåæ°ãæå®ããã æ¨æºå¤ã¯ 10 å435 ã§ããã436 437 7. 6 èªè¨¼ã«é¢ããå®ç¾©379 認証要求タイムアウトの最大再送回数を指定する。 標準値は 10 回 380 である。 381 382 7. 6 認証に関する定義 438 383 439 384 (1) AUTH_CFG_CLIENT 440 ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã®å ´åæå®ããã AUTH_CFG_SERVER ã¨åæã«æ441 å®ãããã¨ãå¯è½ã§ããã385 クライアントモードの場合指定する。 AUTH_CFG_SERVER と同時に指 386 定することも可能である。 442 387 443 388 (2) AUTH_CFG_SERVER 444 ãµã¼ãã¢ã¼ãã®å ´åæå®ããã AUTH_CFG_CLIENT ã¨åæã«æå®ãã445 ãã¨ãå¯è½ã§ããã389 サーバモードの場合指定する。 AUTH_CFG_CLIENT と同時に指定する 390 ことも可能である。 446 391 447 392 (3) AUTH_LOCAL_USER 448 ãµã¼ãã¢ã¼ãã®å ´åã ãã°ã¤ã³èªè¨¼ã¦ã¼ã¶åãæå®ããã393 サーバモードの場合、 ログイン認証ユーザ名を指定する。 449 394 450 395 (4) AUTH_LOCAL_PASSWD 451 ãµã¼ãã¢ã¼ãã®å ´åã ãã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ããæå®ããã396 サーバモードの場合、 ログイン認証パスワードを指定する。 452 397 453 398 (5) AUTH_REMOTE_USER 454 ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã®å ´åã ãã°ã¤ã³èªè¨¼ã¦ã¼ã¶åãæå®ããã399 クライアントモードの場合、 ログイン認証ユーザ名を指定する。 455 400 456 401 (6) AUTH_REMOTE_PASSWD 457 ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã®å ´åã ãã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ããæå®ããã 458 459 8. ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹é¢ä¿ã®ãã©ã¡ã¼ã¿ 460 461 ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã¯åèå®è£ 462 ã§ããã 402 クライアントモードの場合、 ログイン認証パスワードを指定する。 403 404 8. ループバックインタフェース関係のパラメータ 405 406 ループバックインタフェースは参考実装である。 463 407 464 408 (1) LOMTU 465 ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã® MTU ãæå®ããã409 ループバックインタフェースの MTU を指定する。 466 410 467 411 (2) NUM_DTQ_LOOP_OUTPUT 468 ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åºåãã¼ã¿ãã¥ã¼ãµã¤ãºãæå®ããã412 ループバックインタフェースの出力データキューサイズを指定する。 469 413 470 414 (3) NUM_DTQ_LOOP_INPUT 471 ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®å 472 ¥åãã¼ã¿ãã¥ã¼ãµã¤ãºãæå®ããã 415 ループバックインタフェースの入力データキューサイズを指定する。 473 416 474 417 (4) LOOP_INPUT_STACK_SIZE 475 ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®å 476 ¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã 418 ループバックインタフェースの入力タスクのスタックサイズを指定する。 477 419 478 420 (5) LOOP_OUTPUT_STACK_SIZE 479 ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã421 ループバックインタフェースの出力タスクのスタックサイズを指定する。 480 422 481 423 (6) LOOP_INPUT_PRIORITY 482 ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®å 483 ¥åã¿ã¹ã¯ã®åªå 484 度ãæå®ããã 424 ループバックインタフェースの入力タスクの優先度を指定する。 485 425 486 426 (7) LOOP_OUTPUT_PRIORITY 487 ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åºåã¿ã¹ã¯ã®åªå 488 度ãæå®ããã 489 490 9. DHCP é¢ä¿ã®ãã©ã¡ã¼ã¿ 427 ループバックインタフェースの出力タスクの優先度を指定する。 428 429 9. DHCP 関係のパラメータ 491 430 492 431 (1) DHCP6_CLI_CFG 493 DHCPv6 ã® DHCP ã¡ãã»ã¼ã¸ãåä¿¡ããå ´åã«æå®ããã ãã ãã 494 TINET ã¯ã DHCPv6 ãå®è£ 495 ãã¦ããªããå¿ç¨ããã°ã©ã ã§ãDHCP ã¡ã 496 ã»ã¼ã¸ãåä¿¡ããããã®å®ç¾©ã§ããã 432 DHCPv6 の DHCP メッセージを受信する場合に指定する。 ただし、 433 TINET は、 DHCPv6 を実装していない。応用プログラムで、DHCP メッ 434 セージを受信するための定義である。 497 435 498 436 (2) DHCP4_CLI_CFG 499 DHCPv4 ã® DHCP ã¡ãã»ã¼ã¸ãåä¿¡ããå ´åã«æå®ããã ãã ãã 500 TINET ã¯ãDHCPv4 ãå®è£ 501 ãã¦ããªããå¿ç¨ããã°ã©ã ã§ã DHCP ã¡ã 502 ã»ã¼ã¸ãåä¿¡ããããã®å®ç¾©ã§ããã 503 504 10. IPv6/IPv4 å 505 ±éãã©ã¡ã¼ã¿ 437 DHCPv4 の DHCP メッセージを受信する場合に指定する。 ただし、 438 TINET は、DHCPv4 を実装していない。応用プログラムで、 DHCP メッ 439 セージを受信するための定義である。 440 441 10. IPv6/IPv4 共通パラメータ 506 442 507 443 (1) TMO_IN_REDIRECT 508 åãç´ãã¡ãã»ã¼ã¸ã§è¨å®ãããã«ã¼ãã£ã³ã°æ 509 å ±ã®æå¹æéãæ 510 å®ãããæ¨æºå¤ã¯ 10*60*1000 [ms] ã§ããã 511 512 11. IPv6 é¢ä¿ã®ãã©ã¡ã¼ã¿ 444 向け直しメッセージで設定されたルーティング情報の有効時間を指 445 定する。標準値は 10*60*1000 [ms] である。 446 447 11. IPv6 関係のパラメータ 513 448 514 449 (1) IP6_CFG_FRAGMENT 515 ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ãå ´åã«æå®ããã450 データグラムの分割・再構成行う場合に指定する。 516 451 517 452 (2) NUM_IP6_FRAG_QUEUE 518 ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ãµã¤ãºãæå®ããã æ¨æºå¤ã¯ 2 ã§ããã453 データグラム再構成キューサイズを指定する。 標準値は 2 である。 519 454 520 455 (3) TMO_IP6_FRAG_GET_NET_BUF 521 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¿ã¤ã ã¢ã¦ãã522 æå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã456 データグラム再構成用ネットワークバッファの獲得タイムアウトを 457 指定する。標準値は 1000 [ms] である。 523 458 524 459 (4) IP6_CFG_FRAG_REASSM_SIZE 525 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºãæå®ããã526 æ¨æºå¤ã¯ 4096 ã§ããã460 データグラム再構成用ネットワークバッファのサイズを指定する。 461 標準値は 4096 である。 527 462 528 463 (5) NUM_IN6_STATIC_ROUTE_ENTRY 529 ã«ã¼ãã£ã³ã°è¡¨ã®éçã«ã¼ãã£ã³ã°ã¨ã³ããªæ°ãæå®ããã464 ルーティング表の静的ルーティングエントリ数を指定する。 530 465 531 466 (6) NUM_IN6_REDIRECT_ROUTE_ENTRY 532 ã«ã¼ãã£ã³ã°è¡¨ã§äºã確ä¿ããã åãç´ãï¼ICMPï¼ã«ããã«ã¼ãã£533 ã³ã°ã¨ã³ããªæ°ãæå®ããã0 ãæå®ããã¨ã åãç´ãï¼ICMPï¼ã534 ç¡è¦ããã467 ルーティング表で予め確保する、 向け直し(ICMP)によるルーティ 468 ングエントリ数を指定する。0 を指定すると、 向け直し(ICMP)を 469 無視する。 535 470 536 471 (7) IP6_CFG_IP4MAPPED_ADDR 537 IPv6 ã®ã¿ã«å¯¾å¿ããã¢ããªã±ã¼ã·ã§ã³ã§ IPv4 å°å½±ã¢ãã¬ã¹ãå©ç¨538 ãã¦ãIPv4 ãã¼ã¿ã°ã©ã ãæ±ãå ´åã«æå®ããã539 540 12. IPv4 é¢ä¿ã®ãã©ã¡ã¼ã¿472 IPv6 のみに対応するアプリケーションで IPv4 射影アドレスを利用 473 して、IPv4 データグラムを扱う場合に指定する。 474 475 12. IPv4 関係のパラメータ 541 476 542 477 (1) IPV4_ADDR_LOCAL 543 èªåã® IP ã¢ãã¬ã¹ãæå®ããã ãã ããPPP ã使ç¨ããã¨ããç¸544 æã«å²å½ã¦ã¦ãããå ´å㯠0 ãæå®ãããã¨ã478 自分の IP アドレスを指定する。 ただし、PPP を使用するとき、相 479 手に割当ててもらう場合は 0 を指定すること。 545 480 546 481 (2) IPV4_ADDR_REMOTE 547 ç¸æã® IP ã¢ãã¬ã¹ãæå®ããããã ããPPP ã使ç¨ããã¨ãã ç¸548 æã«å²å½ã¦ã¦ãããå ´å㯠0 ãæå®ãããã¨ã482 相手の IP アドレスを指定する。ただし、PPP を使用するとき、 相 483 手に割当ててもらう場合は 0 を指定すること。 549 484 550 485 (3) IPV4_ADDR_LOCAL_MASK 551 ãµãããããã¹ã¯ãæå®ããã ãã ãããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼552 ã¹ãã¤ã¼ãµãããã®ã¨ãæå¹ã§ããã486 サブネットマスクを指定する。 ただし、ネットワークインタフェー 487 スがイーサネットのとき有効である。 553 488 554 489 (4) IPV4_ADDR_DEFAULT_GW 555 ãã£ãã©ã«ãã²ã¼ãã¦ã§ã¤ãæå®ããã ãã ãããããã¯ã¼ã¯ã¤ã³556 ã¿ãã§ã¼ã¹ãã¤ã¼ãµãããã®ã¨ãæå¹ã§ããã490 ディフォルトゲートウェイを指定する。 ただし、ネットワークイン 491 タフェースがイーサネットのとき有効である。 557 492 558 493 (5) IP4_CFG_FRAGMENT 559 ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ãå ´åã«æå®ããã494 データグラムの分割・再構成行う場合に指定する。 560 495 561 496 (6) NUM_IP4_FRAG_QUEUE 562 ãã¼ã¿ã°ã©ã åæ§æãã¥ã¼ãµã¤ãºãæå®ãããæ¨æºå¤ã¯ 2 ã§ããã497 データグラム再構成キューサイズを指定する。標準値は 2 である。 563 498 564 499 (7) TMO_IP4_FRAG_GET_NET_BUF 565 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¿ã¤ã ã¢ã¦ãã566 æå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã500 データグラム再構成用ネットワークバッファの獲得タイムアウトを 501 指定する。標準値は 1000 [ms] である。 567 502 568 503 (8) IP4_CFG_FRAG_REASSM_SIZE 569 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºãæå®ããã570 æ¨æºå¤ã¯ 4096 ã§ããã504 データグラム再構成用ネットワークバッファのサイズを指定する。 505 標準値は 4096 である。 571 506 572 507 (9) NUM_IN4_STATIC_ROUTE_ENTRY 573 ã«ã¼ãã£ã³ã°è¡¨ã®éçã«ã¼ãã£ã³ã°ã¨ã³ããªæ°ãæå®ããã508 ルーティング表の静的ルーティングエントリ数を指定する。 574 509 575 510 (10) NUM_IN4_REDIRECT_ROUTE_ENTRY 576 ã«ã¼ãã£ã³ã°è¡¨ã§äºã確ä¿ããã åãç´ãï¼ICMPï¼ã«ããã«ã¼ãã£577 ã³ã°ã¨ã³ããªæ°ãæå®ããã 0 ãæå®ããã¨ãåãç´ãï¼ICMPï¼ã578 ç¡è¦ããã579 580 13. ICMPv6/v4 é¢ä¿ã®ãã©ã¡ã¼ã¿511 ルーティング表で予め確保する、 向け直し(ICMP)によるルーティ 512 ングエントリ数を指定する。 0 を指定すると、向け直し(ICMP)を 513 無視する。 514 515 13. ICMPv6/v4 関係のパラメータ 581 516 582 517 (1) ICMP_REPLY_ERROR 583 ICMP ã¨ã©ã¼ã¡ãã»ã¼ã¸ãéä¿¡ããå ´åã«æå®ããã518 ICMP エラーメッセージを送信する場合に指定する。 584 519 585 520 (2) TMO_ICMP_OUTPUT 586 åä½ã¯ [ms] ã§ã IP åºåã®ã¿ã¤ã ã¢ã¦ããæå®ããã æ¨æºå¤ã¯587 1000 [ms] ã§ããã588 589 14. è¿é£æ¢ç´¢ï¼ICMPv6ï¼é¢ä¿ã®ãã©ã¡ã¼ã¿521 単位は [ms] で、 IP 出力のタイムアウトを指定する。 標準値は 522 1000 [ms] である。 523 524 14. 近隣探索(ICMPv6)関係のパラメータ 590 525 591 526 (1) IP6_CFG_AUTO_LINKLOCAL 592 ãªã³ã¯ãã¼ã«ã«ã¢ãã¬ã¹ã®èªåè¨å®ãè¡ãå ´åã«æå®ããã ãã ãã 593 ç¾å¨ã¯ãèªåè¨å®ä»¥å¤ã«ã¢ãã¬ã¹ãè¨å®ããæ¹æ³ããªãã®ã§ã å¿ 594 ã 595 æå®ããå¿ 596 è¦ãããã 527 リンクローカルアドレスの自動設定を行う場合に指定する。 ただし、 528 現在は、自動設定以外にアドレスを設定する方法がないので、 必ず 529 指定する必要がある。 597 530 598 531 (2) NUM_IP6_DAD_COUNT 599 éè¤ã¢ãã¬ã¹æ¤åºã§éä¿¡ããè¿é£è¦è«ã®åæ°ã§ã 0 ãæå®ããã¨ã600 éè¤ã¢ãã¬ã¹æ¤åºãè¡ããªããæ¨æºå¤ã¯ 1 ã§ããã532 重複アドレス検出で送信する近隣要請の回数で、 0 を指定すると、 533 重複アドレス検出を行わない。標準値は 1 である。 601 534 602 535 (3) NUM_ND6_CACHE_ENTRY 603 è¿é£ãã£ãã·ã¥ã®ã¨ã³ããªæ°ã§ããã536 近隣キャッシュのエントリ数である。 604 537 605 538 (4) NUM_ND6_DEF_RTR_ENTRY 606 ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã®ã¨ã³ããªæ°ã§ãæ大å¤ã¯ 16 ã§ããã0607 ãæå®ããã¨ã«ã¼ã¿éç¥ãåä¿¡ããªãã ãã ããç¾å¨ã¯ãã«ã¼ã¿é608 ç¥ã®å信以å¤ã«ãµã¤ããã¼ã«ã«ã¢ãã¬ã¹çãè¨å®ããæ¹æ³ããªãã539 ディフォルトルータリストのエントリ数で、最大値は 16 である。0 540 を指定するとルータ通知を受信しない。 ただし、現在は、ルータ通 541 知の受信以外にサイトローカルアドレス等を設定する方法がない。 609 542 610 543 (5) NUM_ND6_RTR_SOL_RETRY 611 èµ·åæã®ã«ã¼ã¿è¦è«åºååæ°ã§ã 0 ãæå®ããã¨ã«ã¼ã¿è¦è«ãåºå612 ããªãã544 起動時のルータ要請出力回数で、 0 を指定するとルータ要請を出力 545 しない。 613 546 614 547 (6) NUM_ND6_PREFIX_ENTRY 615 ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã¨ã³ããªæ°ã§ãæ大å¤ã¯ 16 ã§ããã548 プレフィックスリストのエントリ数で、最大値は 16 である。 616 549 617 550 (7) NUM_IN6_HOSTCACHE_ENTRY 618 IPv6 ç¨ãã¹ãæ 619 å ±ãã£ãã·ã¥ã®ã¨ã³ããªæ°ã§ã 0 ãæå®ãã㨠620 IPv6 ç¨ãã¹ãæ 621 å ±ãã£ãã·ã¥ãçµè¾¼ã¾ãªããã¾ãããã®å ´åãPath 622 MTU ã¸ã®å¯¾å¿ãéå®çã«ãªãã 551 IPv6 用ホスト情報キャッシュのエントリ数で、 0 を指定すると 552 IPv6 用ホスト情報キャッシュを組込まない。また、この場合、Path 553 MTU への対応も限定的になる。 623 554 624 555 (8) TMO_ND6_NS_OUTPUT 625 è¿é£è¦è«åºåã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã556 近隣要請出力タイムアウトを指定する。標準値は 1000 [ms] である。 626 557 627 558 (9) TMO_ND6_NA_OUTPUT 628 è¿é£éç¥åºåã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã559 近隣通知出力タイムアウトを指定する。標準値は 1000 [ms] である。 629 560 630 561 (10) TMO_ND6_RS_OUTPUT 631 ã«ã¼ã¿è¦è«åºåã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã562 ルータ要請出力タイムアウトを指定する。標準値は 1000 [ms] である。 632 563 633 564 (11) TMO_ND6_RTR_SOL_DELAY 634 ã«ã¼ã¿è¦è«åºåé 635 延ãæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã 565 ルータ要請出力遅延を指定する。標準値は 1000 [ms] である。 636 566 637 567 (12) TMO_ND6_RTR_SOL_INTERVAL 638 ã«ã¼ã¿è¦è«åºåééãæå®ãããæ¨æºå¤ã¯ 3000 [ms] ã§ããã639 640 15. TCP é¢ä¿ã®ãã©ã¡ã¼ã¿568 ルータ要請出力間隔を指定する。標準値は 3000 [ms] である。 569 570 15. TCP 関係のパラメータ 641 571 642 572 (1) TCP_CFG_EXTENTIONS 643 ITRON TCP/IP API ã® TCP ã®æ¡å¼µæ©è½ãæå¹ã«ããã573 ITRON TCP/IP API の TCP の拡張機能を有効にする。 644 574 645 575 (2) MAX_TCP_SEG_SIZE 646 TCP ã®æ大ã»ã°ã¡ã³ããµã¤ãºãæå®ããã ãã ããã³ãã¯ã·ã§ã³é647 è¨æã«äº¤æããæ大ã»ã°ã¡ã³ããµã¤ãºã¨ã¯ç°ãªãã æ¨æºå¤ã¯ä»¥ä¸ã®648 å¤ã§ããã576 TCP の最大セグメントサイズを指定する。 ただし、コネクション開 577 設時に交換する最大セグメントサイズとは異なる。 標準値は以下の 578 値である。 649 579 650 580 (IF_MTU - (IP_HDR_SIZE + TCP_HDR_SIZE)) 651 581 652 582 (3) DEF_TCP_SND_SEG 653 éä¿¡ã®æ大ã»ã°ã¡ã³ããµã¤ãºãæå®ããã ãã ããã³ãã¯ã·ã§ã³é654 è¨æã®åæã»ã°ã¡ã³ãã§ãç¸æããå¤ãä¸ããããæã¯ã ä¸ããã655 ãå¤ã«èª¿æ´ãããã583 送信の最大セグメントサイズを指定する。 ただし、コネクション開 584 設時の同期セグメントで、相手から値が与えられた時は、 与えられ 585 た値に調整される。 656 586 657 587 (4) DEF_TCP_RCV_SEG 658 åä¿¡ã®æ大ã»ã°ã¡ã³ããµã¤ãºãæå®ããã TCP_CFG_MAX_SEG ãæå®659 ããå ´åã¯ãã³ãã¯ã·ã§ã³éè¨æã«ãTCP ã® MSS ãªãã·ã§ã³ã§ç¸æ660 ã«ä¼ããããªããRFC791 ã§ã¯ã ãã¹ãã¯å°ãªãã¨ã 576 ãªã¯ãã661 ãåä¿¡ã§ããªããã°ãªããªãã¨è¦å®ããã¦ããã®ã§ã TCP ãããã¨662 IP ãããåãå¼ãã 536 以ä¸ã«ãªããªãããã«ãã¹ãã§ããã588 受信の最大セグメントサイズを指定する。 TCP_CFG_MAX_SEG を指定 589 した場合は、コネクション開設時に、TCP の MSS オプションで相手 590 に伝える。なお、RFC791 では、 ホストは少なくとも 576 オクテッ 591 ト受信できなければならないと規定されているので、 TCP ヘッダと 592 IP ヘッダ分を引いた 536 以下にならないようにすべきである。 663 593 664 594 (5) MAX_TCP_REALLOC_SIZE 665 åä¿¡ããã»ã°ã¡ã³ãã®é çªãå 666 ¥ãæ¿ããã¨ãã æ°ãã«ãããã¯ã¼ã¯ 667 ãããã¡ãå²å½ã¦ã¦ã ãã¼ã¿ãã³ãã¼ãããµã¤ãºã®ãããå¤ãä¾ã 668 ã°ãPPP ã§ã¯ã åä¿¡ããã¾ã§ã ãªã¯ãããæ°ãä¸æã®ããã æ大 669 PDU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãåä¿¡ã«ä½¿ããã TCP ã®åæ§æ 670 ãã¥ã¼ã«ä¿çããã¦ãã¾ãã¨ãæ大 PDU ãµã¤ãºã®ãããã¯ã¼ã¯ãã 671 ãã¡ãå²å½ã¦ããã¨ãã§ããªããªãããã å¶éãè¨ãã¦ããã 595 受信したセグメントの順番を入れ替えるとき、 新たにネットワーク 596 バッファを割当てて、 データをコピーするサイズのしきい値。例え 597 ば、PPP では、 受信するまで、 オクテット数が不明のため、 最大 598 PDU サイズのネットワークバッファを受信に使うが、 TCP の再構成 599 キューに保留されてしまうと、最大 PDU サイズのネットワークバッ 600 ファを割当てることができなくなるため、 制限を設けている。 672 601 673 602 (6) TMO_TCP_GET_NET_BUF 674 åä½ã¯ [ms] ã§ã åºåã»ã°ã¡ã³ãç¨ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¿675 ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã603 単位は [ms] で、 出力セグメント用ネットワークバッファの獲得タ 604 イムアウトを指定する。標準値は 1000 [ms] である。 676 605 677 606 (7) TMO_TCP_OUTPUT 678 åä½ã¯ [ms] ã§ãTCP åºåã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯1000679 [ms] ã§ããã607 単位は [ms] で、TCP 出力タイムアウトを指定する。標準値は 1000 608 [ms] である。 680 609 681 610 (8) TCP_CFG_MAX_SEG 682 ã³ãã¯ã·ã§ã³éè¨æã®åæã»ã°ã¡ã³ãã«æ大ã»ã°ã¡ã³ããµã¤ãºãªã683 ã·ã§ã³ãã¤ãã¦éä¿¡ããå ´åæå®ããã611 コネクション開設時の同期セグメントに最大セグメントサイズオプ 612 ションをつけて送信する場合指定する。 684 613 685 614 (9) TCP_CFG_DELAY_ACK 686 確èªå¿çãé 687 ãããå ´åæå®ããã 615 確認応答を遅らせる場合指定する。 688 616 689 617 (10) TCP_CFG_ALWAYS_KEEP 690 常ã«ãã¼ãã¢ã©ã¤ãããå ´åæå®ããã618 常にキープアライブする場合指定する。 691 619 692 620 (11) TCP_OUT_TASK_STACK_SIZE 693 TCP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã621 TCP 出力タスクのスタックサイズを指定する。 694 622 695 623 (12) TCP_OUT_TASK_PRIORITY 696 TCP åºåã¿ã¹ã¯ã®åªå 697 度ãæå®ããã 624 TCP 出力タスクの優先度を指定する。 698 625 699 626 (13) NUM_TCP_TW_CEP_ENTRY 700 ã¿ã¹ã¯ãã Time Wait ç¶æ 701 ã® TCP é信端ç¹ãåé¢ããæ©è½ã§ã 702 Time Wait ç¶æ 703 ã® TCP é信端ç¹ã®ã¨ã³ããªæ°ãæå®ããã 627 タスクから Time Wait 状態の TCP 通信端点を分離する機能で、 628 Time Wait 状態の TCP 通信端点のエントリ数を指定する。 704 629 705 630 (14) TCP_CFG_RWBUF_CSAVE_ONLY 706 TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ã¿ã ã 707 ã®æ©è½ã®ã¿ä½¿ç¨ãããTCP é信端ç¹ãçæããéç API ã§ãå信㦠708 ã¤ã³ããããã¡ã®å 709 é ã¢ãã¬ã¹ã®æå®ã«ã å¿ç¨ããã°ã©ã å 710 ã®é 711 å 712 ãæå®ãã¦ãç¡è¦ããã 631 TCP 通信端点の受信ウィンドバッファの省コピー機能を組込み、 こ 632 の機能のみ使用する。TCP 通信端点を生成する静的 API で、受信ウ 633 インドバッファの先頭アドレスの指定に、 応用プログラム内の配列 634 を指定しても無視する。 713 635 714 636 (15) TCP_CFG_RWBUF_CSAVE 715 TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ããTCP 716 é信端ç¹ãçæããéç API ã§ãåä¿¡ã¦ã¤ã³ããããã¡ã®å 717 é ã¢ã 718 ã¬ã¹ã®æå®ã«ãå¿ç¨ããã°ã©ã å 719 ã®é 720 åãæå®ããå ´åã¯ã åä¿¡ã¦ã£ 721 ã³ããããã¡ã®çã³ãã¼æ©è½ã使ç¨ããªãã 637 TCP 通信端点の受信ウィンドバッファの省コピー機能を組込む。TCP 638 通信端点を生成する静的 API で、受信ウインドバッファの先頭アド 639 レスの指定に、応用プログラム内の配列を指定した場合は、 受信ウィ 640 ンドバッファの省コピー機能を使用しない。 722 641 723 642 (16) TCP_CFG_RWBUF_CSAVE_MAX_QUEUES 724 TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã åä¿¡ã¦ã£725 ã³ããããã¡ãã¥ã¼ã®æ大ã¨ã³ããªæ°ã ãã ããæ£å¸¸ã«åä¿¡ããã»726 ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ãããã¾ãã æå®ããªã727 ã¨å¶éããªããæ¨æºå¤ã¯ 2 ã§ããã643 TCP 通信端点の受信ウィンドバッファの省コピー機能の、 受信ウィ 644 ンドバッファキューの最大エントリ数。 ただし、正常に受信したセ 645 グメントも破棄するため、再送回数が増加する。また、 指定しない 646 と制限しない。標準値は 2 である。 728 647 729 648 (17) TCP_CFG_SWBUF_CSAVE_ONLY 730 TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ã¿ã ã 731 ã®æ©è½ã®ã¿ä½¿ç¨ãããTCP é信端ç¹ãçæããéç API ã§ãé信㦠732 ã¤ã³ããããã¡ã®å 733 é ã¢ãã¬ã¹ã®æå®ã«ã å¿ç¨ããã°ã©ã å 734 ã®é 735 å 736 ãæå®ãã¦ãç¡è¦ããã 649 TCP 通信端点の送信ウィンドバッファの省コピー機能を組込み、 こ 650 の機能のみ使用する。TCP 通信端点を生成する静的 API で、送信ウ 651 インドバッファの先頭アドレスの指定に、 応用プログラム内の配列 652 を指定しても無視する。 737 653 738 654 (18) TCP_CFG_SWBUF_CSAVE 739 TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ããTCP 740 é信端ç¹ãçæããéç API ã§ãéä¿¡ã¦ã¤ã³ããããã¡ã®å 741 é ã¢ã 742 ã¬ã¹ã®æå®ã«ã å¿ç¨ããã°ã©ã å 743 ã®é 744 åãæå®ããå ´åã¯ãåä¿¡ã¦ã£ 745 ã³ããããã¡ã®çã³ãã¼æ©è½ã使ç¨ããªãã 655 TCP 通信端点の送信ウィンドバッファの省コピー機能を組込む。TCP 656 通信端点を生成する静的 API で、送信ウインドバッファの先頭アド 657 レスの指定に、 応用プログラム内の配列を指定した場合は、受信ウィ 658 ンドバッファの省コピー機能を使用しない。 746 659 747 660 (19) TCP_CFG_SWBUF_CSAVE_MAX_SIZE 748 TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ã éä¿¡ã¦ã£749 ã³ããããã¡ã«ä½¿ç¨ãããããã¯ã¼ã¯ãããã¡ã®æ大ãµã¤ãºã æ¨æº750 å¤ã¯ IF_PDU_SIZE ã§ããã661 TCP 通信端点の送信ウィンドバッファの省コピー機能で、 送信ウィ 662 ンドバッファに使用するネットワークバッファの最大サイズ。 標準 663 値は IF_PDU_SIZE である。 751 664 752 665 (20) TCP_CFG_SWBUF_CSAVE_MIN_SIZE 753 TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ã éä¿¡ã¦ã£754 ã³ããããã¡ã«ä½¿ç¨ãããããã¯ã¼ã¯ãããã¡ã®æ大ãµã¤ãºã æ¨æº755 å¤ã¯ 0 ã§ããã666 TCP 通信端点の送信ウィンドバッファの省コピー機能で、 送信ウィ 667 ンドバッファに使用するネットワークバッファの最大サイズ。 標準 668 値は 0 である。 756 669 757 670 (21) TCP_CFG_NON_BLOCKING 758 TCP ã®ãã³ããããã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã ãã ãã ãªãªã¼ã¹759 1.2 ã¨ã®äºææ§ã®ãããtinet/tinet_config.h ã«æå®ããã¦ããã760 æ¢å®ã§ã¯çµè¾¼ã¾ããããã«ãªã£ã¦ããã æå®ã解é¤ããå ´åã¯ã761 tinet_app_config.h ãªã©ã§ã #undef ã«ããããã¯ãæå®ãæªå®ç¾©762 ã«ããã671 TCP のノンブロッキングコール機能を組込む。 ただし、 リリース 672 1.2 との互換性のため、tinet/tinet_config.h に指定されており、 673 既定では組込まれるようになっている。 指定を解除する場合は、 674 tinet_app_config.h などで、 #undef により、マクロ指定を未定義 675 にする。 763 676 764 677 (22) TCP_CFG_TRACE 765 TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ãçµè¾¼ãã678 TCP ヘッダのトレース出力機能を組込む。 766 679 767 680 (23) TCP_CFG_TRACE_IPV4_RADDR 768 ãã¬ã¼ã¹åºå対象ã®ãªã¢ã¼ããã¹ãã® IPv4 ã¢ãã¬ã¹ãæå®ããã 769 IPV4_ADDRANY ãæå®ããã¨ãå 770 ¨ã¦ã®ãã¹ãã対象ã¨ããã 681 トレース出力対象のリモートホストの IPv4 アドレスを指定する。 682 IPV4_ADDRANY を指定すると、全てのホストを対象とする。 771 683 772 684 (24) TCP_CFG_TRACE_LPORTNO 773 ãã¬ã¼ã¹åºå対象ã®ãã¼ã«ã«ãã¹ãã®ãã¼ãçªå·ãæå®ããã 774 TCP_PORTANY ãæå®ããã¨ãå 775 ¨ã¦ã®ãã¼ãçªå·ã対象ã«ããã 685 トレース出力対象のローカルホストのポート番号を指定する。 686 TCP_PORTANY を指定すると、全てのポート番号を対象にする。 776 687 777 688 (25) TCP_CFG_TRACE_RPORTNO 778 ãã¬ã¼ã¹åºå対象ã®ãªã¢ã¼ããã¹ãã®ãã¼ãçªå·ãæå®ããã 779 TCP_PORTANY ãæå®ããã¨ãå 780 ¨ã¦ã®ãã¼ãçªå·ã対象ã«ããã 689 トレース出力対象のリモートホストのポート番号を指定する。 690 TCP_PORTANY を指定すると、全てのポート番号を対象にする。 781 691 782 692 (26) TCP_CFG_URG_OFFSET 783 ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ãããå¤ã -1 ã®å ´å㯠BSD ã® 784 å®è£ 785 ã¨åãã§ãç·æ¥ãã¤ã³ã¿ã¯ã ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®æ¬¡ã® 786 ãã¤ããå·®ãã å¤ã 0 ã®å ´å㯠RFC1122 ã®è¦å®ã¨åãã§ãç·æ¥ã 787 ã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ããå·®ããæ¢å®å¤ã¯ -1 ã§ããã 693 緊急データの最後のバイトのオフセット、値が -1 の場合は BSD の 694 実装と同じで、緊急ポインタは、 緊急データの最後のバイトの次の 695 バイトを差す。 値が 0 の場合は RFC1122 の規定と同じで、緊急ポ 696 インタは、緊急データの最後のバイトを差す。既定値は -1 である。 788 697 789 698 (27) TCP_CFG_NON_BLOCKING_COMPAT14 790 ITRON TCP/IP API ã®ä»æ§ã«å®ç¾©ããã¦ããã³ã¼ã«ããã¯é¢æ°ã®å¼æ° 791 p_parblk ã«é¢ãã¦ãã¢ãã¬ã¹æ¸¡ããæ£ããããTINET ãªãªã¼ã¹ 1.4 792 以åã§ã¯å¤æ¸¡ãã¨ãã¦ãããTINET ãªãªã¼ã¹ 1.5 以éã§ã¯ããã®å® 793 è£ 794 ä¸ã®èª¤ããä¿®æ£ããããã®ãããTINET ãªãªã¼ã¹ 1.4 以åã¨äºæ 795 æ§ãç¶æãããã TCP_CFG_NON_BLOCKING_COMPAT14 ãæå®ããã¨ã 796 UDP ã®ã³ã¼ã«ããã¯é¢æ°ã®å¼ã³åºã㧠p_parblk ãå¤æ¸¡ãã«ããã 797 798 16. UDP é¢ä¿ã®ãã©ã¡ã¼ã¿ 699 ITRON TCP/IP API の仕様に定義されているコールバック関数の引数 700 p_parblk に関して、アドレス渡しが正しいが、TINET リリース 1.4 701 以前では値渡しとしていた。TINET リリース 1.5 以降では、この実 702 装上の誤りを修正した。このため、TINET リリース 1.4 以前と互換 703 性を維持するため TCP_CFG_NON_BLOCKING_COMPAT14 を指定すると、 704 UDP のコールバック関数の呼び出しで p_parblk を値渡しにする。 705 706 16. UDP 関係のパラメータ 799 707 800 708 (1) UDP_CFG_EXTENTIONS 801 ITRON TCP/IP API ã® UDP ã®æ¡å¼µæ©è½ãæå¹ã«ããã709 ITRON TCP/IP API の UDP の拡張機能を有効にする。 802 710 803 711 (2) NUM_DTQ_UDP_RCVQ 804 éã³ã¼ã«ããã¯ç¨ UDP åä¿¡ãã¥ã¼ã®ãµã¤ãºãæå®ããã712 非コールバック用 UDP 受信キューのサイズを指定する。 805 713 806 714 (3) TMO_UDP_OUTPUT 807 åä½ã¯ [ms] ã§ãUDP åºåã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯1000808 [ms] ã§ããã715 単位は [ms] で、UDP 出力タイムアウトを指定する。標準値は 1000 716 [ms] である。 809 717 810 718 (4) UDP_CFG_IN_CHECKSUM 811 UDP ã®å 812 ¥åãã§ãã¯ãµã ã®æ¤æ»ãè¡ãå ´åãæå®ããã 719 UDP の入力チェックサムの検査を行う場合、指定する。 813 720 814 721 (5) UDP_CFG_OUT_CHECKSUM 815 UDP ã®åºåãã§ãã¯ãµã ã®è¨å®ãè¡ãå ´åãæå®ããã722 UDP の出力チェックサムの設定を行う場合、指定する。 816 723 817 724 (6) UDP_CFG_NON_BLOCKING 818 UDP ã®ãã³ããããã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã ãã ãã ãªãªã¼ã¹819 1.2 ã¨ã®äºææ§ã®ãããtinet/tinet_config.h ã«æå®ããã¦ããã820 æ¢å®ã§ã¯çµè¾¼ã¾ããããã«ãªã£ã¦ããã æå®ã解é¤ããå ´åã¯ã821 tinet_app_config.h ãªã©ã§ã#undef ã«ããã ãã¯ãæå®ãæªå®ç¾©822 ã«ããã725 UDP のノンブロッキングコール機能を組込む。 ただし、 リリース 726 1.2 との互換性のため、tinet/tinet_config.h に指定されており、 727 既定では組込まれるようになっている。 指定を解除する場合は、 728 tinet_app_config.h などで、#undef により、 マクロ指定を未定義 729 にする。 823 730 824 731 (7) NUM_DTQ_UDP_OUTPUT 825 UDP åºåãã¼ã¿ãã¥ã¼ãµã¤ãºãæå®ããã ãã ãããã³ããããã³826 ã°ã³ã¼ã«ãçµè¾¼ãã æã«æå¹ã§ããã732 UDP 出力データキューサイズを指定する。 ただし、ノンブロッキン 733 グコールを組込んだ時に有効である。 827 734 828 735 (8) UDP_OUT_TASK_STACK_SIZE 829 UDP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã ãã ãããã³ããã830 ãã³ã°ã³ã¼ã«ãçµè¾¼ãã æã«æå¹ã§ããã736 UDP 出力タスクのスタックサイズを指定する。 ただし、ノンブロッ 737 キングコールを組込んだ時に有効である。 831 738 832 739 (9) UDP_OUT_TASK_PRIORITY 833 UDP åºåã¿ã¹ã¯ã®åªå 834 度ãæå®ããã ãã ãããã³ããããã³ã°ã³ã¼ 835 ã«ãçµè¾¼ãã æã«æå¹ã§ããã 740 UDP 出力タスクの優先度を指定する。 ただし、ノンブロッキングコー 741 ルを組込んだ時に有効である。 836 742 837 743 (10) UDP_CFG_NON_BLOCKING_COMPAT14 838 ITRON TCP/IP API ã®ä»æ§ã«å®ç¾©ããã¦ããã³ã¼ã«ããã¯é¢æ°ã®å¼æ° 839 p_parblk ã«é¢ãã¦ãã¢ãã¬ã¹æ¸¡ããæ£ããããTINET ãªãªã¼ã¹ 1.4 840 以åã§ã¯å¤æ¸¡ãã¨ãã¦ãããTINET ãªãªã¼ã¹ 1.5 以éã§ã¯ããã®å® 841 è£ 842 ä¸ã®èª¤ããä¿®æ£ããããã®ãããTINET ãªãªã¼ã¹ 1.4 以åã¨äºæ 843 æ§ãç¶æãããã UDP_CFG_NON_BLOCKING_COMPAT14 ãæå®ããã¨ã 844 UDP ã®ã³ã¼ã«ããã¯é¢æ°ã®å¼ã³åºã㧠p_parblk ãå¤æ¸¡ãã«ããã 744 ITRON TCP/IP API の仕様に定義されているコールバック関数の引数 745 p_parblk に関して、アドレス渡しが正しいが、TINET リリース 1.4 746 以前では値渡しとしていた。TINET リリース 1.5 以降では、この実 747 装上の誤りを修正した。このため、TINET リリース 1.4 以前と互換 748 性を維持するため UDP_CFG_NON_BLOCKING_COMPAT14 を指定すると、 749 UDP のコールバック関数の呼び出しで p_parblk を値渡しにする。 -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_defs.txt
-
Property svn:mime-type
changed from
text/plain
totext/plane; charset=UTF-8
r313 r315 1 TCP/IP ãããã³ã«ã¹ã¿ãã¯ï¼TINETï¼2 ãªãªã¼ã¹ 1.7ãããã»ããµã»ã·ã¹ãã ä¾åå®ç¾©ï¼»2015/12/19ï¼½1 TCP/IP プロトコルスタック(TINET) 2 リリース 1.7、プロセッサ・システム依存定義[2015/12/19] 3 3 4 1. ããã»ããµã»ã·ã¹ãã ä¾åå®ç¾©ã«ã¤ãã¦4 1. プロセッサ・システム依存定義について 5 5 6 TINET ããå¤æ§ãªã¿ã¼ã²ããã«å¯¾å¿ããããã®ãã»ããµã»ã·ã¹ãã ä¾åå®ç¾©7 ã§ã以ä¸ã®ãã¡ã¤ã«ã使ç¨ãã¦ããã6 TINET を、多様なターゲットに対応するためのロセッサ・システム依存定義 7 で、以下のファイルを使用している。 8 8 9 9 (1) tinet_defs.h 10 TINET å 11 ¨ä½ãã©ã¡ã¼ã¿ãå®ç¾©ãã 以ä¸ã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ã 12 ãã¦ãããTINET ã®ã«ã¼ããã£ã¬ã¯ããªã«ç½®ãã 10 TINET 全体パラメータを定義し、 以下のファイルをインクルード 11 している。TINET のルートディレクトリに置く。 13 12 14 (2) tinet_target_defs.h ï¼TOPPERS/ASPï¼15 ã¿ã¼ã²ããã«ä¾åãããã©ã¡ã¼ã¿ãå®ç¾©ããã åã·ã¹ãã ã®ã¿ã¼16 ã²ããä¾åé¨ã®ãã£ã¬ã¯ããªã«ç½®ãã13 (2) tinet_target_defs.h(TOPPERS/ASP) 14 ターゲットに依存するパラメータを定義する。 各システムのター 15 ゲット依存部のディレクトリに置く。 17 16 18 (3) tinet_cpu_defs.h ï¼TOPPERS/JSPï¼19 ããã»ããµã«ä¾åãããã©ã¡ã¼ã¿ãå®ç¾©ãããconfig ã®ããã»ã20 ãµç¥ç§°ã®ãã£ã¬ã¯ããªã«ç½®ãã17 (3) tinet_cpu_defs.h(TOPPERS/JSP) 18 プロセッサに依存するパラメータを定義する。config のプロセッ 19 サ略称のディレクトリに置く。 21 20 22 21 (4) tinet_nic_defs.h 23 ã¤ã¼ãµãããã¤ã³ã¿ãã§ã¼ã¹ã«ä¾åãããã©ã¡ã¼ã¿ãå®ç¾©ããã24 tinet/netdev ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã£ã¬ã¯ããªã«ç½®ãã22 イーサネットインタフェースに依存するパラメータを定義する。 23 tinet/netdev のネットワークインタフェースのディレクトリに置く。 25 24 26 2. ããã»ããµã«ä¾åããå®ç¾©25 2. プロセッサに依存する定義 27 26 28 27 (1) CPU_NET_ALIGN 29 tinet_target_defs.hï¼TOPPERS/ASPï¼ã tinet_cpu_defs.h 30 ï¼TOPPERS/JSPï¼ã§å®ç¾©ãããããã»ããµã®ã¢ã©ã¤ã¡ã³ãã«é¢ããå® 31 義ã§ããã IP ããã以é㯠4 ãªã¯ãããåä½ã«ã¢ã¯ã»ã¹ããå ´å 32 ããããIP ããã以éãã4 ãªã¯ãããåä½ã§ãã¢ã©ã¤ã³ããå¿ 33 è¦ 34 ãããã° 4 ãæå®ããã ãã®å®ç¾©ã¯ã ãããã¯ã¼ã¯ãããã¡ 35 T_NET_BUF ã«åæ ãããã 28 tinet_target_defs.h(TOPPERS/ASP)、 tinet_cpu_defs.h 29 (TOPPERS/JSP)で定義する。プロセッサのアライメントに関する定 30 義である。 IP ヘッダ以降は 4 オクテット単位にアクセスする場合 31 があり、IP ヘッダ以降を、4 オクテット単位で、アラインする必要 32 があれば 4 を指定する。 この定義は、 ネットワークバッファ 33 T_NET_BUF に反映される。 36 34 37 3. NIC ã«ä¾åããå®ç¾©35 3. NIC に依存する定義 38 36 39 37 (1) IF_ETHER_NIC_HDR_ALIGN 40 tinet_nic_defs.h ã§å®ç¾©ããã4 ãªã¯ãããåä½ã«ãã¼ã¿ãå 41 ¥åº 42 åãã NIC ãããããã¤ã¼ãµãããããã㯠14 ãªã¯ãããã®ããã 43 å 2 ãªã¯ããããããã¼ã«ããå¿ 44 è¦ãããã ãã®ãã㪠NIC ã§ã 45 ã¤ã¼ãµãããããã T_ETHER_HDR ã§ãã¢ã©ã¤ã³ã調æ´ããå ´åã¯ã 46 調æ´éãæå®ããã調æ´ããªãå ´åã¯ã 0 ãæå®ããã 38 tinet_nic_defs.h で定義する。4 オクテット単位にデータを入出 39 力する NIC もあるが、イーサネットヘッダは 14 オクテットのため、 40 前 2 オクテットをダミーにする必要がある。 このような NIC で、 41 イーサネットヘッダ T_ETHER_HDR で、アラインを調整する場合は、 42 調整量を指定する。調整しない場合は、 0 を指定する。 47 43 48 44 (2) IF_PDU_HDR_PADDING 49 tinet_nic_defs.h ã§å®ç¾©ããã T_NET_BUF_IF_PDU ã§ããã¬ã¼ã50 ã®çµããã®å¢çã®èª¿æ´éãæå®ãããä¾ãã°ã ã¤ã¼ãµãããã®ãã¬ã¼51 ã é·ï¼CRC ãé¤ãï¼ã® 1,514 ãªã¯ããããã 16 ãªã¯ãããå¢çã«52 調æ´ããå ´åã¯ã 16 ãªã¯ãããã®åæ°ã§ãã 1,520 ãªã¯ãããã53 ãã®å·®å 6 ãæå®ããã45 tinet_nic_defs.h で定義する。 T_NET_BUF_IF_PDU で、フレーム 46 の終わりの境界の調整量を指定する。例えば、 イーサネットのフレー 47 ム長(CRC を除く)の 1,514 オクテットを、 16 オクテット境界に 48 調整する場合は、 16 オクテットの倍数である 1,520 オクテットか 49 らの差分 6 を指定する。 54 50 55 51 (3) IF_ETHER_NIC_NET_BUF_ALIGN 56 tinet_nic_defs.h ã§å®ç¾©ããããããã¯ã¼ã¯ãããã¡ã§ãã¢ã©ã¤57 ã³ã調æ´ããå ´åã¯ã 調æ´éãæå®ããã調æ´ããªãå ´åã¯ãå®ç¾©58 ããªãã52 tinet_nic_defs.h で定義する。ネットワークバッファで、アライ 53 ンを調整する場合は、 調整量を指定する。調整しない場合は、定義 54 しない。 -
Property svn:mime-type
changed from
-
rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_sample.txt
-
Property svn:mime-type
changed from
text/plain
totext/plane; charset=UTF-8
r313 r315 1 TCP/IP ãããã³ã«ã¹ã¿ãã¯ï¼TINETï¼ 2 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ï¼ãªãªã¼ã¹ 1.7ï¼ï¼»2017/5/15ï¼½ 3 4 1. ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ 5 6 ãµã³ãã«ã¨ãã¦ã以ä¸ã®ã¢ããªã±ã¼ã·ã§ã³ãæä¾ãã¦ãããããå 7 ã¯ãã¢ã 8 ãªã±ã¼ã·ã§ã³åã対å¿ãããããã¯ã¼ã¯å±¤ãã§ãããIPv64 ã¯ãããã¯ã¼ã¯å±¤ 9 ã¨ã㦠IPv6 㨠IPv4 ã®ä¸¡æ¹ã使ç¨ãããã¨ãæå³ãã¦ããã IPv64m ã¯ã 10 IPv4 㯠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 ã¯ã©ã¤ã¢ã³ã 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 クライアント 55 47 [8] ping 56 48 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 76 2. ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®æ§ç¯ 77 78 TINET ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®æ§ç¯ã¯ã TOPPERS/ASP ç°å¢ã¨ 79 TOPPERS/JSP ç°å¢ã«ãããã®ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®æ§ç¯ã¨ã»ã¼åãã§ã 80 ãã 81 82 (1) TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®å®è¡ 83 TINET ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®æ§ç¯ç¨ãã£ã¬ã¯ããªãä½æãã 84 TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªãããå®è¡ããã 85 86 [1] TOPPERS/ASP ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã® 87 å®è¡ 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 実行 88 75 89 76 $ mkdir NETOBJ … … 92 79 -i ether -v if_ed -n inet6 -s tcp 93 80 94 ãªãã·ã§ã³ï¼-Tã-Aã-aã-Uã-Lã-fã-Dã-lã-tã-dã -rã 95 -pã -gï¼ã¯ãTOPPERS/ASP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªã 96 ãã¨åãã§ããã TOPPERS/ASP ã«ã¼ãã«ã¦ã¼ã¶ã¼ãºããã¥ã¢ 97 ã«ï¼user.txtï¼ã®ã ï¼ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªãã 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 ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®å®è¡ 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 コンフィギュレーションスクリプトの実行 112 94 113 95 $ mkdir NETOBJ … … 116 98 -i ether -v if_ed -n inet6 -s tcp 117 99 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 ã«ä»¥ä¸ã®ãã¡ã¤ã«ãçæãããã 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 に以下のファイルが生成される。 137 114 138 115 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 ãã¦ã§ã¤ãæå®ããã 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 トウェイを指定する。 167 141 168 142 [1] IPV4_ADDR_LOCAL 169 èªåã® IP ã¢ãã¬ã¹ãæå®ããããã ãã PPP ã使ç¨ãã㨠170 ããç¸æã«å²å½ã¦ã¦ãããå ´å㯠0 ãæå®ãããã¨ããªãã 171 PPP ã¯åèå®è£ 172 ã§ããã 143 自分の IP アドレスを指定する。ただし、 PPP を使用すると 144 き、相手に割当ててもらう場合は 0 を指定すること。なお、 145 PPP は参考実装である。 173 146 [2] IPV4_ADDR_REMOTE 174 ç¸æã® IP ã¢ãã¬ã¹ãæå®ããã ãã ããPPP ã使ç¨ãã㨠175 ããç¸æã«å²å½ã¦ã¦ãããå ´å㯠0 ãæå®ãããã¨ããªãã 176 PPP ã¯åèå®è£ 177 ã§ããã 147 相手の IP アドレスを指定する。 ただし、PPP を使用すると 148 き、相手に割当ててもらう場合は 0 を指定すること。なお、 149 PPP は参考実装である。 178 150 [3] IPV4_ADDR_LOCAL_MASK 179 ãµãããããã¹ã¯ãæå®ããããã ãã ãããã¯ã¼ã¯ã¤ã³ã¿180 ãã§ã¼ã¹ãã¤ã¼ãµãããã®ã¨ãæå¹ã§ããã151 サブネットマスクを指定する。ただし、 ネットワークインタ 152 フェースがイーサネットのとき有効である。 181 153 [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 æ¹æ³ã以ä¸ã«ç¤ºãã 154 ディフォルトゲートウェイを指定する。ただし、 ネットワー 155 クインタフェースがイーサネットのとき有効である。 156 157 (3) route_cfg.c の設定 158 ネットワークインタフェースがイーサネットの場合は、 ルーティ 159 ング表 routing_tbl を設定する。ただし、ディフォルトゲートウェ 160 イのみのシンプルなネットワークでは、 変更する必要はない。 161 162 (4) サンプルプログラムのコンパイル・リンク 163 TINET サンプルアプリケーションの構築用ディレクトリで、 サン 164 プルプログラムをコンパイル・リンクする。 コンパイル・リンクの 165 方法を以下に示す。 195 166 196 167 $ make depend 197 168 $ make 198 169 199 3. TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®ãªãã·ã§ã³ 200 201 3. 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 243 3. 2 TOPPERS/JPS ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®ãªãã·ã§ã³ 244 245 TOPPERS/JSP ç°å¢ã§ã¯ããªãã·ã§ã³ï¼-Cã-Sã-Tã-Aã-Uã-Lã-Dã-Pã-pã 246 -lï¼ã¯ã TOPPERS/JSP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã¨åãã§ããã 247 TOPPERS/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 285 4. ã¯ã©ã¤ã¢ã³ããµã¼ãã»ã»ããã®æ§ç¯ 286 287 以ä¸ã«ç¤ºããµã¼ããæä¾ããã¦ãããå¿ 288 è¦ã«å¿ãã¦çµã¿è¾¼ããµã¼ããé¸æ㧠289 ãããï¼ï¼å 290 ã¯ãtinet/netapp å 291 ã«ããã½ã¼ã¹ãã¡ã¤ã«åã§ããããªãã ã㣠292 ãã©ã«ãã§ã ITRON TCP/IP API ä»æ§ã® TCP 㨠UDP ã®æ¡å¼µæ©è½ãçµè¾¼ã¾ã㦠293 ããã®ã§ãã9.3.2 ç°¡æã³ã³ã½ã¼ã«ã®ã³ãã³ã ãã® wtw (wtw4)ãwte (wte4)ã 294 wueã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 329 4. 1 Makefile ã®è¨å® 330 331 (1) çµè¾¼ãæ©è½ã®é¸æ 332 333 [1] TCP ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ 334 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã TCP ã®åä¿¡ã¦ã£ã³ããããã¡ 335 ã®çã³ãã¼æ©è½ãçµè¾¼ãå ´åã¯ã 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 の省コピー機能を組込む場合は、 336 289 337 290 TCP_CFG_RWBUF_CSAVE_ONLY = true 338 291 339 ã¾ãã¯ã292 または、 340 293 341 294 TCP_CFG_RWBUF_CSAVE = true 342 295 343 ãé¸æããã TCP_CFG_RWBUF_CSAVE_ONLY ãé¸æããã¨ãTCP344 é信端ç¹ãçæããéç 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 ã®çã³ãã¼æ©è½ãçµè¾¼ãå ´åã¯ã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 の省コピー機能を組込む場合は、 356 309 357 310 TCP_CFG_SWBUF_CSAVE_ONLY = true 358 311 359 ã¾ãã¯ã312 または、 360 313 361 314 TCP_CFG_SWBUF_CSAVE = true 362 315 363 ãé¸æããã TCP_CFG_SWBUF_CSAVE_ONLY ãé¸æããã¨ãTCP364 é信端ç¹ãçæããéç 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 ã«ãçµè¾¼ãå ´åã¯ã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 ルを組込む場合は、 376 329 377 330 TCP_CFG_NON_BLOCKING = true 378 331 379 ãé¸æããã380 381 [4] UDP ã®ãã³ããããã³ã°ã³ã¼ã«382 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã UDP ã®ãã³ããããã³ã°ã³ã¼383 ã«ãçµè¾¼ãå ´åã¯ã332 を選択する。 333 334 [4] UDP のノンブロッキングコール 335 サンプルアプリケーションで、 UDP のノンブロッキングコー 336 ルを組込む場合は、 384 337 385 338 UDP_CFG_NON_BLOCKING = true 386 339 387 ãé¸æããã388 389 [5] ITRON TCP/IP API ä»æ§ã® TCP ã®æ¡å¼µæ©è½390 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã ITRON TCP/IP API ä»æ§ã®391 TCP ã®æ¡å¼µæ©è½ãçµè¾¼ãå ´åã¯ã340 を選択する。 341 342 [5] ITRON TCP/IP API 仕様の TCP の拡張機能 343 サンプルアプリケーションで、 ITRON TCP/IP API 仕様の 344 TCP の拡張機能を組込む場合は、 392 345 393 346 TCP_CFG_EXTENTIONS = true 394 347 395 ãé¸æããããã£ãã©ã«ã㧠true ã«è¨å®ããã¦ããã396 397 [6] ITRON TCP/IP API ä»æ§ã® UDP ã®æ¡å¼µæ©è½398 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã ITRON TCP/IP API ä»æ§ã®399 UDP ã®æ¡å¼µæ©è½ãçµè¾¼ãå ´åã¯ã348 を選択する。ディフォルトで true に設定されている。 349 350 [6] ITRON TCP/IP API 仕様の UDP の拡張機能 351 サンプルアプリケーションで、 ITRON TCP/IP API 仕様の 352 UDP の拡張機能を組込む場合は、 400 353 401 354 UDP_CFG_EXTENTIONS = true 402 355 403 ãé¸æããããã£ãã©ã«ã㧠true ã«è¨å®ããã¦ããã404 405 (2) ãã³ããããã³ã°ã³ã¼ã«ãITRON TCP/IP API ä»æ§ã®æ¡å¼µæ©è½ã¨çã³406 ãã¼ API ã®é¸æ407 408 [1] TCP ã®ãã³ããããã³ã°ã³ã¼ã«409 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã TCP ã®ãã³ããããã³ã°ã³ã¼410 ã«ã使ç¨ããå ´åã¯ã356 を選択する。ディフォルトで true に設定されている。 357 358 (2) ノンブロッキングコール、ITRON TCP/IP API 仕様の拡張機能と省コ 359 ピー API の選択 360 361 [1] TCP のノンブロッキングコール 362 サンプルアプリケーションで、 TCP のノンブロッキングコー 363 ルを使用する場合は、 411 364 412 365 USE_TCP_NON_BLOCKING = true 413 366 414 ãé¸æããã415 416 [2] ITRON TCP/IP API ä»æ§ã® TCP ã®æ¡å¼µæ©è½417 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã ITRON TCP/IP API ä»æ§ã®418 TCP ã®æ¡å¼µæ©è½ã使ç¨ããå ´åã¯ã367 を選択する。 368 369 [2] ITRON TCP/IP API 仕様の TCP の拡張機能 370 サンプルアプリケーションで、 ITRON TCP/IP API 仕様の 371 TCP の拡張機能を使用する場合は、 419 372 420 373 USE_TCP_EXTENTIONS = true 421 374 422 ãé¸æããããã£ãã©ã«ã㧠true ã«è¨å®ããã¦ããã423 424 [3] çã³ãã¼API425 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ãçã³ãã¼ API ã使ç¨ããå ´åã¯ã375 を選択する。ディフォルトで true に設定されている。 376 377 [3] 省コピー API 378 サンプルアプリケーションで、省コピー API を使用する場合は、 426 379 427 380 USE_COPYSAVE_API = true 428 381 429 ãé¸æããã430 431 [4] UDP ã®ãã³ããããã³ã°ã³ã¼ã«432 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã UDP ã®ãã³ããããã³ã°ã³ã¼433 ã«ã使ç¨ããå ´åã¯ã382 を選択する。 383 384 [4] UDP のノンブロッキングコール 385 サンプルアプリケーションで、 UDP のノンブロッキングコー 386 ルを使用する場合は、 434 387 435 388 USE_UDP_NON_BLOCKING = true 436 389 437 ãé¸æããã ãã ãã ã³ã¼ã«ããã¯ã¨ã¯åæã«ä½¿ç¨ã§ããªãã438 439 [5] ITRON TCP/IP API ä»æ§ã® UDP ã®æ¡å¼µæ©è½440 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã ITRON TCP/IP API ä»æ§ã®441 UDP ã®æ¡å¼µæ©è½ã使ç¨ããå ´åã¯ã390 を選択する。 ただし、 コールバックとは同時に使用できない。 391 392 [5] ITRON TCP/IP API 仕様の UDP の拡張機能 393 サンプルアプリケーションで、 ITRON TCP/IP API 仕様の 394 UDP の拡張機能を使用する場合は、 442 395 443 396 USE_UDP_EXTENTIONS = true 444 397 445 ãé¸æããããã£ãã©ã«ã㧠true ã«è¨å®ããã¦ããã446 447 [6] UDP ã®ã³ã¼ã«ããã¯448 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã UDP ã®ã³ã¼ã«ããã¯ã使ç¨449 ããå ´åã¯ã398 を選択する。ディフォルトで true に設定されている。 399 400 [6] UDP のコールバック 401 サンプルアプリケーションで、 UDP のコールバックを使用 402 する場合は、 450 403 451 404 USE_UDP_CALL_BACK = true 452 405 453 ãé¸æããããã ãã ãã³ããããã³ã°ã³ã¼ã«ã¨ã¯åæã«ä½¿ 454 ç¨ã§ããªãã 455 456 (3) å 457 ±éãµã¼ãããã°ã©ã ã®é¸æ 458 459 [1] WWW ãµã¼ãããã°ã©ã ã使ç¨ããå ´åã¯ã 以ä¸ã®è¡ãæå¹ã«ããã 406 を選択する。ただし、 ノンブロッキングコールとは同時に使 407 用できない。 408 409 (3) 共通サーバプログラムの選択 410 411 [1] WWW サーバプログラムを使用する場合は、 以下の行を有効にする。 460 412 461 413 USE_WWW_SRV = ture 462 414 463 [2] WWW ãµã¼ãããã°ã©ã ï¼IPv4 åªå 464 æ¥ç¶å¾ 465 ã¡ï¼ã使ç¨ããå ´å 466 ã¯ã以ä¸ã®è¡ãæå¹ã«ããã 415 [2] WWW サーバプログラム(IPv4 優先接続待ち)を使用する場合 416 は、以下の行を有効にする。 467 417 468 418 USE_WWW4_SRV = ture 469 419 470 [3] UDP ã¨ã³ã¼ãµã¼ãããã°ã©ã ã使ç¨ããå ´åã¯ã 以ä¸ã®è¡ã471 æå¹ã«ããã420 [3] UDP エコーサーバプログラムを使用する場合は、 以下の行を 421 有効にする。 472 422 473 423 USE_UDP_ECHO_SRV = ture 474 424 475 [4] UDP ã¨ã³ã¼ãµã¼ãããã°ã©ã ï¼IPv4 åªå 476 æ¥ç¶å¾ 477 ã¡ï¼ã使ç¨ã 478 ãå ´åã¯ã以ä¸ã®è¡ãæå¹ã«ããã 425 [4] UDP エコーサーバプログラム(IPv4 優先接続待ち)を使用す 426 る場合は、以下の行を有効にする。 479 427 480 428 USE_UDP4_ECHO_SRV = ture 481 429 482 [5] TCP ãã£ã¹ã«ã¼ããµã¼ãããã°ã©ã ã使ç¨ããå ´åã¯ã 以ä¸483 ã®è¡ãæå¹ã«ããã430 [5] TCP ディスカードサーバプログラムを使用する場合は、 以下 431 の行を有効にする。 484 432 485 433 USE_TCP_DISCARD_SRV = ture 486 434 487 [6] éåä¿¡ã¿ã¹ã¯åä¸åã® TCP ã¨ã³ã¼ãµã¼ãããã°ã©ã ã使ç¨ã488 ãå ´åã¯ã以ä¸ã®è¡ãæå¹ã«ããã435 [6] 送受信タスク同一型の TCP エコーサーバプログラムを使用す 436 る場合は、以下の行を有効にする。 489 437 490 438 TCP_ECHO_SRV = tcp_echo_srv1 491 439 492 [7] éåä¿¡ã¿ã¹ã¯åé¢åã® TCP ã¨ã³ã¼ãµã¼ãããã°ã©ã ã使ç¨ã493 ãå ´åã¯ã以ä¸ã®è¡ãæå¹ã«ããã440 [7] 送受信タスク分離型の TCP エコーサーバプログラムを使用す 441 る場合は、以下の行を有効にする。 494 442 495 443 TCP_ECHO_SRV = tcp_echo_srv2 496 444 497 [8] TCP ã¨ã³ã¼ãµã¼ãããã°ã©ã ï¼IPv4 åªå 498 æ¥ç¶å¾ 499 ã¡ï¼ã使ç¨ã 500 ãå ´åã¯ã以ä¸ã®è¡ãæå¹ã«ããããã ãã éåä¿¡ã¿ã¹ã¯å 501 ä¸åã® TCP ã¨ã³ã¼ãµã¼ãããã°ã©ã ã使ç¨ããå ´åã®ã¿æå¹ 502 ã§ããã 445 [8] TCP エコーサーバプログラム(IPv4 優先接続待ち)を使用す 446 る場合は、以下の行を有効にする。ただし、 送受信タスク同 447 一型の TCP エコーサーバプログラムを使用する場合のみ有効 448 である。 503 449 504 450 USE_TCP4_ECHO_SRV = ture 505 451 506 [9] ã·ãªã¢ã«çµç±ã®ã¿ã³ã³ã½ã¼ã«å 507 ¥åºåã使ç¨ããå ´åã¯ã ä»¥ä¸ 508 ã®è¡ãæå¹ã«ããã 452 [9] シリアル経由のみコンソール入出力を使用する場合は、 以下 453 の行を有効にする。 509 454 510 455 USE_DBG_CONS = true 511 456 512 [10] ã·ãªã¢ã«ã¨ãããã¯ã¼ã¯çµç±ã®ã³ã³ã½ã¼ã«å 513 ¥åºåã使ç¨ãã 514 å ´åã¯ã以ä¸ã®è¡ãæå¹ã«ããã 457 [10] シリアルとネットワーク経由のコンソール入出力を使用する 458 場合は、以下の行を有効にする。 515 459 516 460 USE_NET_CONS = true 517 461 518 ãã ãã ãã³ããããã³ã°ã³ã¼ã«ãçµè¾¼ãã æã®ã¿æå¹ã§ããã 519 520 (4) å 521 ±éã¯ã©ã¤ã¢ã³ãããã°ã©ã ã®é¸æ 522 523 [1] TCP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ãããã°ã©ã ã使ç¨ããå ´åã¯ã ä»¥ä¸ 524 ã®è¡ãæå¹ã«ããã 462 ただし、 ノンブロッキングコールを組込んだ時のみ有効である。 463 464 (4) 共通クライアントプログラムの選択 465 466 [1] TCP エコークライアントプログラムを使用する場合は、 以下 467 の行を有効にする。 525 468 526 469 USE_TCP_ECHO_CLI = ture 527 470 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 ã®ãã¹ãã®ããã§ãããåé¡ã¯ãªãã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 のテストのためであり、問題はない。 535 478 536 479 USE_TCP4_ECHO_CLI = ture 537 480 538 [3] UDP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ãããã°ã©ã ã使ç¨ããå ´åã¯ã 以ä¸539 ã®è¡ãæå¹ã«ããã481 [3] UDP エコークライアントプログラムを使用する場合は、 以下 482 の行を有効にする。 540 483 541 484 USE_UDP_ECHO_CLI = ture 542 485 543 [4] UDP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ãããã°ã©ã ï¼IPv4 åªå 544 æ¥ç¶å¾ 545 ã¡ï¼ã 546 使ç¨ããå ´åã¯ã 以ä¸ã®è¡ãæå¹ã«ããã 486 [4] UDP エコークライアントプログラム(IPv4 優先接続待ち)を 487 使用する場合は、 以下の行を有効にする。 547 488 548 489 USE_UDP4_ECHO_CLI = ture 549 490 550 [5] TCP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ãããã°ã©ã ã使ç¨ããå ´åã¯ã551 以ä¸ã®è¡ãæå¹ã«ããã491 [5] TCP ディスカードクライアントプログラムを使用する場合は、 492 以下の行を有効にする。 552 493 553 494 USE_TCP_DISCARD_CLI = ture 554 495 555 [6] UDP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ãããã°ã©ã ã使ç¨ããå ´åã¯ã556 以ä¸ã®è¡ãæå¹ã«ããã496 [6] UDP ディスカードクライアントプログラムを使用する場合は、 497 以下の行を有効にする。 557 498 558 499 USE_UDP_DISCARD_CLI = ture 559 500 560 [7] DHCPv6 ã¯ã©ã¤ã¢ã³ãããã°ã©ã ã使ç¨ããå ´åã¯ã以ä¸ã®è¡561 ãæå¹ã«ããã501 [7] DHCPv6 クライアントプログラムを使用する場合は、以下の行 502 を有効にする。 562 503 563 504 USE_DHCP6_CLI = true 564 505 565 [8] DHCPv4 ã¯ã©ã¤ã¢ã³ãããã°ã©ã ã使ç¨ããå ´åã¯ã以ä¸ã®è¡566 ãæå¹ã«ããã506 [8] DHCPv4 クライアントプログラムを使用する場合は、以下の行 507 を有効にする。 567 508 568 509 USE_DHCP4_CLI = true 569 510 570 [9] DNS ãªã¾ã«ãã¼ã使ç¨ããå ´åã¯ã以ä¸ã®è¡ãæå¹ã«ããã511 [9] DNS リゾルバーを使用する場合は、以下の行を有効にする。 571 512 572 513 USE_RESOLVER = true 573 514 574 [10] PING ã¯ã©ã¤ã¢ã³ãããã°ã©ã ã使ç¨ããå ´åã¯ã以ä¸ã®è¡ã575 æå¹ã«ããã515 [10] PING クライアントプログラムを使用する場合は、以下の行を 516 有効にする。 576 517 577 518 USE_PING = true 578 519 579 (5) å 580 ±éãµã¼ãã¿ã¹ã¯æ°ã®é¸æ 581 582 [1] WWW ãµã¼ãã¿ã¹ã¯æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ãæ大 2 ã¿ 583 ã¹ã¯ã§ããã 520 (5) 共通サーバタスク数の選択 521 522 [1] WWW サーバタスク数は以下の行で選択する。ただし最大 2 タ 523 スクである。 584 524 585 525 CDEFS := $(CDEFS) -DNUM_WWW_SRV_TASKS=2 586 526 587 [2] TCP ECHO ãµã¼ãã¿ã¹ã¯æ°ãé¸æããããã ã以ä¸ã®æ¡ä»¶ã®ã¨588 ãæå¹ã§ããã589 590 ã»tcp_echo_srv1.c ãé¸æããã591 ã»çã³ãã¼ API ã使ç¨ããã592 ã»ãã³ããããã³ã°ã³ã¼ã«ã使ç¨ããªãã593 594 TCP ECHO ãµã¼ãã¿ã¹ã¯æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ãæ大595 8 ã¿ã¹ã¯ã§ããã527 [2] TCP ECHO サーバタスク数を選択する。ただし以下の条件のと 528 き有効である。 529 530 ・tcp_echo_srv1.c を選択した。 531 ・省コピー API を使用する。 532 ・ノンブロッキングコールを使用しない。 533 534 TCP ECHO サーバタスク数は以下の行で選択する。ただし最大 535 8 タスクである。 596 536 597 537 CDEFS := $(CDEFS) -DNUM_TCP_ECHO_SRV_TASKS=8 598 538 599 (6) äºç´ ID æ°ã®é¸æ600 601 [1] TCP/IPv4 åä»å£äºç´ ID æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ãæ602 大 2 ã§ããã539 (6) 予約 ID 数の選択 540 541 [1] TCP/IPv4 受付口予約 ID 数は以下の行で選択する。ただし最 542 大 2 である。 603 543 604 544 CDEFS := $(CDEFS) -DNUM_VRID_TCP_REPS=2 605 545 606 [2] TCP/IPv4 é信端ç¹äºç´ ID æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ã607 æ大 4 ã§ããã546 [2] TCP/IPv4 通信端点予約 ID 数は以下の行で選択する。ただし 547 最大 4 である。 608 548 609 549 CDEFS := $(CDEFS) -DNUM_VRID_TCP_CEPS=4 610 550 611 [3] UDP/IPv4 é信端ç¹äºç´ ID æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ã612 æ大 2 ã§ããã551 [3] UDP/IPv4 通信端点予約 ID 数は以下の行で選択する。ただし 552 最大 2 である。 613 553 614 554 CDEFS := $(CDEFS) -DNUM_VRID_UDP_CEPS=2 615 555 616 [4] TCP/IPv6 åä»å£äºç´ ID æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ãæ617 大 2 ã§ããã556 [4] TCP/IPv6 受付口予約 ID 数は以下の行で選択する。ただし最 557 大 2 である。 618 558 619 559 CDEFS := $(CDEFS) -DNUM_VRID_TCP6_REPS=2 620 560 621 [5] TCP/IPv6 é信端ç¹äºç´ ID æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ã622 æ大 4 ã§ããã561 [5] TCP/IPv6 通信端点予約 ID 数は以下の行で選択する。ただし 562 最大 4 である。 623 563 624 564 CDEFS := $(CDEFS) -DNUM_VRID_TCP6_CEPS=4 625 565 626 [6] UDP/IPv6 é信端ç¹äºç´ ID æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ã627 æ大 2 ã§ããã566 [6] UDP/IPv6 通信端点予約 ID 数は以下の行で選択する。ただし 567 最大 2 である。 628 568 629 569 CDEFS := $(CDEFS) -DNUM_VRID_UDP6_CEPS=2 630 570 631 (7) ãã®ä»632 633 [1] TCP ã®ã»ã°ã¡ã³ããµã¤ãºã MSS ã«ããå ´åã¯ã以ä¸ã®è¡ãæ634 å¹ã«ããã571 (7) その他 572 573 [1] TCP のセグメントサイズを MSS にする場合は、以下の行を有 574 効にする。 635 575 636 576 CDEFS := $(CDEFS) -DUSE_TCP_MSS_SEG 637 577 638 [2] IPv6 MMTU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãçµè¾¼ãå ´åã¯ã639 以ä¸ã®è¡ãæå¹ã«ããã578 [2] IPv6 MMTU サイズのネットワークバッファを組込む場合は、 579 以下の行を有効にする。 640 580 641 581 CDEFS := $(CDEFS) -DUSE_IPV6_MMTU 642 582 643 4. 2 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³644 645 (1) DHCPv6 ã¯ã©ã¤ã¢ã³ã583 4. 2 サンプルアプリケーションのコンパイル時コンフィギュレーション 584 585 (1) DHCPv6 クライアント 646 586 647 587 [1] DHCP6_CLI_CFG_MODE 648 DHCPv6 ã¯ã©ã¤ã¢ã³ãã®åä½ã¢ã¼ããæå®ããã 649 ã¹ãã¼ãã¬ã¹ã¢ã¼ããé¸æããæ㯠650 fDHCP6_CLI_CFG_STATELESSã ã¹ãã¼ããã«ã¢ã¼ããé¸æãã 651 æ㯠fDHCP6_CLI_CFG_STATEFULL ãæå®ããã ã¹ãã¼ãã¬ã¹ 652 ã¢ã¼ãã§ã¯ãIPv6 ã¢ãã¬ã¹ãåå¾ãããDNS ãµã¼ãã®æ 653 å ±ãª 654 ã©ã®ã¿åå¾ããã 588 DHCPv6 クライアントの動作モードを指定する。 589 ステートレスモードを選択する時は 590 fDHCP6_CLI_CFG_STATELESS、 ステートフルモードを選択する 591 時は fDHCP6_CLI_CFG_STATEFULL を指定する。 ステートレス 592 モードでは、IPv6 アドレスを取得せず、DNS サーバの情報な 593 どのみ取得する。 655 594 656 595 [2] DHCP6_CLI_CFG_REQUIRED_OLIST 657 DHCPv6 ãµã¼ãããåå¾ããå¿ 658 é ãªãã·ã§ã³ãªã¹ããé 659 åã®å 660 æåå½¢å¼ã§æå®ãããæå®ä¾ã以ä¸ã«ç¤ºãã 596 DHCPv6 サーバから取得する必須オプションリストを配列の初 597 期化形式で指定する。指定例を以下に示す。 661 598 #define DHCP6_CLI_CFG_REQUIRED_OLIST { \ 662 599 DHCP6_OPT_NAME_SERVERS, \ 663 600 } 664 601 665 ãªãã·ã§ã³ã¯ tinet/netapp/dhcp6.h ãåç 666 §ãããã¨ã 602 オプションは tinet/netapp/dhcp6.h を参照すること。 667 603 668 604 [3] DHCP6_CLI_CFG_REQUEST_OLIST 669 DHCPv6 ãµã¼ãããåå¾ããå¿ 670 é ãªãã·ã§ã³ãªã¹ããé 671 åã®å 672 æåå½¢å¼ã§æå®ããã æå®ä¾ã以ä¸ã«ç¤ºãã 605 DHCPv6 サーバから取得する必須オプションリストを配列の初 606 期化形式で指定する。 指定例を以下に示す。 673 607 #define DHCP6_CLI_CFG_REQUEST_OLIST { \ 674 608 DHCP6_OPT_DOMAIN_SEARCH, \ 675 609 } 676 610 677 ãªãã·ã§ã³ã¯ tinet/netapp/dhcp6.h ãåç 678 §ãããã¨ã 679 680 (2) DHCPv4 ã¯ã©ã¤ã¢ã³ã 611 オプションは tinet/netapp/dhcp6.h を参照すること。 612 613 (2) DHCPv4 クライアント 681 614 682 615 [1] DHCP4_CLI_CFG_REQUIRED_OLIST 683 DHCPv4 ãµã¼ãããåå¾ããå¿ 684 é ãªãã·ã§ã³ãªã¹ããé 685 åã®å 686 æåå½¢å¼ã§æå®ãããæå®ä¾ã以ä¸ã«ç¤ºãã 616 DHCPv4 サーバから取得する必須オプションリストを配列の初 617 期化形式で指定する。指定例を以下に示す。 687 618 #define DHCP4_CLI_CFG_REQUIRED_OLIST { \ 688 619 DHCP4_OPT_NAME_SERVERS, \ 689 620 } 690 621 691 ãªãã·ã§ã³ã¯ tinet/netapp/dhcp4.h ãåç 692 §ãããã¨ã 622 オプションは tinet/netapp/dhcp4.h を参照すること。 693 623 694 624 [2] DHCP4_CLI_CFG_REQUEST_OLIST 695 DHCPv4 ãµã¼ãããåå¾ããå¿ 696 é ãªãã·ã§ã³ãªã¹ããé 697 åã®å 698 æåå½¢å¼ã§æå®ããã æå®ä¾ã以ä¸ã«ç¤ºãã 625 DHCPv4 サーバから取得する必須オプションリストを配列の初 626 期化形式で指定する。 指定例を以下に示す。 699 627 #define DHCP4_CLI_CFG_REQUEST_OLIST { \ 700 628 DHCP4_OPT_DOMAIN_SEARCH, \ 701 629 } 702 630 703 ãªãã·ã§ã³ã¯ tinet/netapp/dhcp6.h ãåç 704 §ãããã¨ã 705 706 (3) DNS ãªã¾ã«ãã¼ 631 オプションは tinet/netapp/dhcp6.h を参照すること。 632 633 (3) DNS リゾルバー 707 634 708 635 [1] RSLV_CFG_DNS_DOMAIN_NAME_STR 709 ãã¡ã¤ã³åã®æååãæå®ãããDHCPv6 ã¯ã©ã¤ã¢ã³ããã¾ã710 㯠DHCPv4 ã¯ã©ã¤ã¢ã³ãã«ããåå¾ãããã¨ãå¯è½ã§ããã636 ドメイン名の文字列を指定する。DHCPv6 クライアント、また 637 は DHCPv4 クライアントにより取得することも可能である。 711 638 712 639 [2] IPV6_ADDR_DNS_INIT 713 DNS ãµã¼ãã® IPv6 ã¢ãã¬ã¹ãé 714 åã®åæåå½¢å¼ã§æå®ããã 715 DHCPv6 ã¯ã©ã¤ã¢ã³ãã«ããåå¾ãããã¨ãå¯è½ã§ããã DNS 716 ãµã¼ãã® IPv6 ã¢ãã¬ã¹ãã 717 fd90:cce5:25f6:ff81:201:2ff:fe81:e7c9 ã®å ´åã®æå®ä¾ã 718 以ä¸ã«ç¤ºãã 640 DNS サーバの IPv6 アドレスを配列の初期化形式で指定する。 641 DHCPv6 クライアントにより取得することも可能である。 DNS 642 サーバの IPv6 アドレスが、 643 fd90:cce5:25f6:ff81:201:2ff:fe81:e7c9 の場合の指定例を 644 以下に示す。 719 645 720 646 #define IPV6_ADDR_DNS_INIT \ … … 725 651 726 652 [3] IPV4_ADDR_DNS 727 DNS ãµã¼ãã® IPv4 ã¢ãã¬ã¹ãæå®ãããDHCPv4 ã¯ã©ã¤ã¢ã³728 ãã«ããåå¾ãããã¨ãå¯è½ã§ããã DNS ãµã¼ãã® IPv4 ã¢729 ãã¬ã¹ãã172.25.129.140 ã®å ´åã®æå®ä¾ã以ä¸ã«ç¤ºãã653 DNS サーバの IPv4 アドレスを指定する。DHCPv4 クライアン 654 トにより取得することも可能である。 DNS サーバの IPv4 ア 655 ドレスが、172.25.129.140 の場合の指定例を以下に示す。 730 656 731 657 #define IPV4_ADDR_DNS MAKE_IPV4_ADDR(172,25,129,140) 732 658 733 4. 3 ç°¡æã³ã³ã½ã¼ã«ã³ãã³ã734 735 ã¤ã³ã¿ã¼ããããµã¼ãã»ã»ããã«çµã¿è¾¼ã¾ãã¦ããç°¡æã³ã³ã½ã¼ã«ã®ã³ãã³736 ãã以ä¸ã«ç¤ºãã 737 738 cf tinet_app_config.h çã§æå®ããããã³ã³ãã¤ã«æ739 ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã表示ããã659 4. 3 簡易コンソールコマンド 660 661 インターネットサーバ・セットに組み込まれている簡易コンソールのコマン 662 ドを以下に示す。 663 664 cf tinet_app_config.h 等で指定された、コンパイル時 665 コンフィギュレーションを表示する。 740 666 741 667 ct <cepid> [<fncd>] 742 ãã³ãã£ã³ã°ãã¦ãã TCP éä¿¡ç«¯ç¹ <cepid> ã®å¦ 743 çããã£ã³ã»ã«ããããã£ã³ã»ã«ããå¦ç㯠<fncd> 744 ã§æå®ããã<fncd> ãçç¥ããå ´åã¯ãå 745 ¨ã¦ã®å¦ç 746 ããã£ã³ã»ã«ããã 668 ペンディングしている TCP 通信端点 <cepid> の処 669 理をキャンセルする。キャンセルする処理は <fncd> 670 で指定する。<fncd> を省略した場合は、全ての処理 671 をキャンセルする。 747 672 748 673 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 å ±ã解æ¾ããã 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 アドレス情報を解放する。 780 693 781 694 dt <host> [<portno> [<repeat>]] 782 TCP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ãèµ·åãã783 ãã£ã¹ã«ã¼ããµã¼ã <host> ã«ãã£ã¹ã«ã¼ããã¿ã¼784 ã³ãéä¿¡ããã<portno> ã¯ããã£ã¹ã«ã¼ããµã¼ãã®785 ãã¼ãçªå·ã§ãçç¥æï¼- ãæå®ããï¼ã¯ 9 ã§ããã786 <repeat> ã¯ãç¹°ãè¿ãåæ°ã§ãçç¥æ㯠1 ã§ããã787 dts TCP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ã®ç¹°ãè¿ã788 åä½ãåæ¢ããã695 TCP ディスカードクライアント・タスクを起動し、 696 ディスカードサーバ <host> にディスカードパター 697 ンを送信する。<portno> は、ディスカードサーバの 698 ポート番号で、省略時(- を指定する)は 9 である。 699 <repeat> は、繰り返し回数で、省略時は 1 である。 700 dts TCP ディスカードクライアント・タスクの繰り返し 701 動作を停止する。 789 702 790 703 du <host> [<portno>]] 791 ãã£ã¹ã«ã¼ããµã¼ã <host> ã«ãã£ã¹ã«ã¼ããã¿ã¼792 UDP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ãèµ·åãã793 ã³ãç¹°ãè¿ãéä¿¡ããã<portno> ã¯ããã£ã¹ã«ã¼ã794 ãµã¼ãã®ãã¼ãçªå·ã§ãçç¥æ㯠9 ã§ããã795 dus UDP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ã®ç¹°ãè¿ã796 åä½ãåæ¢ããã704 ディスカードサーバ <host> にディスカードパター 705 UDP ディスカードクライアント・タスクを起動し、 706 ンを繰り返し送信する。<portno> は、ディスカード 707 サーバのポート番号で、省略時は 9 である。 708 dus UDP ディスカードクライアント・タスクの繰り返し 709 動作を停止する。 797 710 798 711 et <host> [<portno> [<repeat>]] 799 712 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 è¿ãåä½ãåæ¢ããã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 返し動作を停止する。 811 724 812 725 eu <host> [<portno>] [<msg> | <repeat>] 813 726 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 å ±ã表示ããã 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 ネットワーク統計情報を表示する。 861 769 862 770 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 ã表示ããã 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 通信端点の状態を表示する。 895 799 896 800 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 954 4. 4 DNSãªã¾ã«ãã¼ã«ãããã¹ãåã®æå® 955 956 Makefile ã®çµã¿è¾¼ãæ©è½ã®é¸æã§ã 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 の組み込む機能の選択で、 957 850 958 851 USE_RESOLVER = true 959 852 960 ãæå®ã㦠DNS ãªã¾ã«ãã¼ã使ç¨ããã¨ãç°¡æã³ã³ã½ã¼ã«ã³ãã³ãã® <host> 961 ã«æå®ãããã¹ãåããDNS ãµã¼ãã«ç 962 §ä¼ã㦠IP ã¢ãã¬ã¹ãå¾ããã¨ãã§ã 963 ãï¼æ£å¼ãï¼ã 964 <host> ã®æ¸å¼ã以ä¸ã«ç¤ºãã 853 を指定して DNS リゾルバーを使用すると、簡易コンソールコマンドの <host> 854 に指定したホスト名を、DNS サーバに照会して IP アドレスを得ることができ 855 る(正引き)。 856 <host> の書式を以下に示す。 965 857 [-[6|4][A|a|Q|q]] <name> 966 858 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 994 5. 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 ã³ã¹ã¯ãªããã®å®è¡ä¾ã§ããã 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 ンスクリプトの実行例である。 1008 888 1009 889 $ mkdir NETOBJ … … 1011 891 $ perl ../configure -T akih8_3069f_gcc 1012 892 1013 (2) TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®å®è¡1014 ããããã®ç°å¢ã«ããã TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªã1015 ããå®è¡ããã ãã®æã ã¢ããªã±ã¼ã·ã§ã³ããã°ã©ã åã¨ãã¦1016 sample1n ãæå®ããã 以ä¸ã¯ã TOPPERS/ASP ç°å¢ã«ãããTINET1017 ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®å®è¡ä¾ã§ããã893 (2) TINET コンフィギュレーションスクリプトの実行 894 それぞれの環境における TINET コンフィギュレーションスクリプ 895 トを実行する。 この時、 アプリケーションプログラム名として 896 sample1n を指定する。 以下は、 TOPPERS/ASP 環境における TINET 897 コンフィギュレーションスクリプトの実行例である。 1018 898 1019 899 $ perl ../tinet/tinet_asp_configure -T akih8_3069f_gcc -A sample1n 1020 900 -i ether -v if_ed -n inet6 -s tcp 1021 901 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 ã追å ããã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 を追加する。 1032 912 1033 913 APPL_COBJS = $(APPLNAME).o sample1.o 1034 914 1035 [2] TOPPERS/JSP ç°å¢1036 Makefile ã® UTASK_COBJS ã« sample1.o ã追å ããã915 [2] TOPPERS/JSP 環境 916 Makefile の UTASK_COBJS に sample1.o を追加する。 1037 917 1038 918 UTASK_COBJS = $(UNAME).o sample1.o 1039 919 1040 (4) sample1.c ã®ä¿®æ£1041 TOPPERS/ASP 㨠TOPPERS/JSP ã® sample1.c ã®ã¤ã³ã¯ã«ã¼ããã¡1042 ã¤ã«ã®æå®920 (4) sample1.c の修正 921 TOPPERS/ASP と TOPPERS/JSP の sample1.c のインクルードファ 922 イルの指定 1043 923 1044 924 #include "sample1.h" 1045 925 1046 ã®åã«ã 以ä¸ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã追å ããã926 の前に、 以下のインクルードファイルを追加する。 1047 927 1048 928 #include "sample1n.h" 1049 929 1050 (5) tinet_app_config.h ã®è¨å® 1051 IPv4 ã®å ´åãIP ã¢ãã¬ã¹ããµãããããã¹ã¯ã ãã£ãã©ã«ãã²ã¼ 1052 ãã¦ã§ã¤ãæå®ããã 1053 1054 6. æå°æ§æãµã¼ãã®æ§ç¯ 1055 1056 WWW ãµã¼ãã»ã¿ã¹ã¯ã¨ TCP ã¨ã³ã¼ãµã¼ãã»ã¿ã¹ã¯ã®ã¿ãããªãæå°æ§æã® 1057 ãµã¼ãã§ãããH8/3069F ãå 1058 èµãã¦ãã RAMï¼16K ãã¤ãï¼ã¨ ROMï¼512K ã 1059 ã¤ãï¼ã«åã¾ããå¤é¨ã¡ã¢ãªã¯ä¸è¦ã§ãããç¾å¨ã¯ãåå·éä¿¡è¨è£ 1060 ãµã¼ãã¹è£½ 1061 NKEV-010H8ï¼TOPPERS/JSP ãªãªã¼ã¹ 1.4.2 ã®ã¿ï¼ã¨ç§æé»åéå製 H8/3069F 1062 ï¼TOPPERS/JSP ãªãªã¼ã¹ 1.4.1 以é㨠TOPPERS/ASPï¼ã®ã·ã¹ãã ã«å¯¾å¿ã㦠1063 ããã 1064 åã·ã¹ãã ä¾åé¨ã® Makefile.config ã®ãå®è¡ç°å¢ã®å®ç¾©ãã§ã 1065 1066 # ROMå å¤é¨RAMæªä½¿ç¨ 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未使用 1067 945 #DBGENV := INMEM_ONLY 1068 946 1069 ãæå¹ã«ãã¦ã ã³ã³ãã¤ã«ã»ãªã³ã¯ããã 947 を有効にして、 コンパイル・リンクする。 -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.