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

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

ソースを追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/plain
File size: 75.8 KB
Line 
1 TINET 変更メモ [2017/4/5]
2
31. リリース 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 追加した。以下に設定する条件を示す。
29
30 SUPPORT_INET6 . . ON ON ON ON
31 SUPPORT_INET4 ON ON . . ON ON
32 API_CFG_IP4MAPPED_ADDR . ON . ON . ON
33 ---------------------- ----------------------
34 _IP6_CFG . . ON ON ON ON
35 _IP4_CFG ON ON . ON ON ON
36
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 イルを追加した。 以下にソースファイルの一覧を示す。
156
157 netinet/tcpn_usrreq.c
158 netinet/udpn_input.c
159 netinet/udpn_output.c
160 netinet/udpn_subr.c
161 netinet/udpn_usrreq.c
162 netinet/udpn_usrreq_nblk.c
163
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目」になった。
247
248 [1] NUM_ROUTE_ENTRY
249 NUM_IN4_STATIC_ROUTE_ENTRY に変更する。
250 [2] NUM_IN4_REDIRECT_ROUTE_ENTRY
251 新たに定義する。
252 [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 に
288 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
3432. リリース 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
4323. リリース 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
7764. リリース 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) 以下のコンパイル時コンフィギュレーションパラメータを変更した。
872
873 NUM_MPF_NET_BUF_4096
874 ↓
875 NUM_MPF_NET_BUF_REASSM
876
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 定義するように変更した。
901
902 MAX_TCP_RCV_SEG
903 DEF_TCP_SND_SEG
904 ARP_CACHE_KEEP
905 LOMTU
906
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 に
933
934 #include <netinet/in_itron.h>
935
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
10895. リリース 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 から
1097
1098 INCLUDE("<netinet/in.h>");
1099
1100 を削除し、tinet/netinet/ip.cfg に
1101
1102 INCLUDE("<netinet/in.h>");
1103
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
11626. リリース 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 順番を見直した。
1219
1220 #include "tinet_app_config.h"
1221 #include "tinet_sys_config.h"
1222 #include "tinet_cpu_config.h"
1223 ↓
1224 #ifdef SUPPORT_ETHER
1225 #include "tinet_nic_config.h"
1226 #endif /* of #ifdef SUPPORT_ETHER */
1227 #include "tinet_sys_config.h"
1228 #include "tinet_cpu_config.h"
1229 #include "tinet_app_config.h"
1230
1231 [7] tinet/net/ethernet.h の変更
1232
1233 ・tinet/netdev/if_ed/if_ed.h の t_ed_softc から、ディバ
1234 イス非依存部を t_if_softc として独立して定義した。
1235
1236 struct t_if_softc {
1237 T_IF_ADDR ifaddr;
1238 UH timer;
1239 T_IF_ETHER_SOFTC *sc;
1240 ID semid_txb_ready;
1241 ID semid_rxb_ready;
1242 };
1243 typedef struct t_if_softc T_IF_SOFTC;
1244
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 に変更した。
1252
1253 T_IF_ETHER_SOFTC *sc;
1254 ↓
1255 T_IF_SOFTC *ic;
1256
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_SOFTC
1261 から struct t_ed_softc に変更した。
1262 ・ネットワークインタフェースの関数の引数を T_ED_SOFTC
1263 から 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 のインクルード指定の変更
1271
1272 #include <netdev/if_edreg.h>
1273 ↓
1274 #include "if_edreg.h"
1275
1276 ・t_ed_softc の定義を、 tinet/netdev/if_ed/if_ed.h から
1277 移動した。
1278 ・t_ed_softc は、ディバイス依存部のみ定義するように変更した。
1279 ・以下の局所関数の引数を T_ED_SOFTC から T_IF_SOFTC に
1280 変更した。
1281
1282 ed_xmit
1283 ed_init_sub
1284
1285 ・関数の引数が T_ED_SOFTC から T_IF_SOFTC に代わったが、
1286
1287 T_ED_SOFTC *sc = ic->sc;
1288
1289 で、T_ED_SOFTC を取り出すことが出来る。
1290
1291 [11] tinet/netdev/if_ed/if_ed.cfg の変更
1292
1293 INCLUDE("<netdev/if_ed.h>");
1294 INCLUDE("<netdev/if_edreg.h>");
1295 ↓
1296 INCLUDE("\"if_edreg.h\"");
1297
1298 [12] tinet/net_rename.h の変更
1299 if_ed の関数のリネーム定義を、
1300 tinet/netdev/if_ed/nic_rename.h に移動した。
1301 [13] tinet/tinet.cfg の変更
1302
1303 #ifdef IF_ETHER_CFG_ED
1304 #include "netdev/if_ed.cfg"
1305 #endif /* of #ifdef IF_ETHER_CFG_ED */
1306 ↓
1307 #include "nic.cfg"
1308
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 の定義の後に追加した。
1317
1318 ifdef TINET_ROOT
1319 INCLUDES := $(INCLUDES) -I$(TINET_ROOT)/netdev/if_ed
1320 endif
1321
1322 ・「カーネルに関する定義」の変更
1323 ネットワークインタフェースのディレクトリとネットワー
1324 クインタフェースのオブジェクトを含めるため、
1325 KERNEL_COBJS の定義の後に追加した。
1326
1327 ifdef TINET_ROOT
1328 KERNEL_DIR := $(KERNEL_DIR):$(TINET_ROOT)/netdev/if_ed
1329 KERNEL_COBJS := $(KERNEL_COBJS) if_ed.o
1330 endif
1331
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 クルード順番を以下のように変更した。
1350
1351 tinet_defs.h
1352 tinet_config.h
1353
1354 [3] tinet_cfg.c に出力する標準のインクルードファイルで、 以
1355 下のファイル指定を削除した。
1356
1357 #include <netinet/in_rename.h>
1358
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 ンを調整する場合に、 調整量を指定する。
1371
1372 tinet/net/ethernet.h
1373
1374 (15) TINET プロトコルスタック内
1375部のリネーム指定ファイル
1376 tinet/net/net_rename.h と tinet/netinet/in_rename.h のインク
1377 ルードを、tinet/tinet_config.h で指定するように変更し、各ソー
1378 スファイルから以下のファイルを削除した。
1379
1380 #include <net/net_rename.h>
1381 #include <netinet/in_rename.h>
1382
1383 (16) TINET の標準 Makefile.config を作成し、 アプリケーションの
1384 Makefile からインクルードするように変更した。
1385
1386 (17) tinet/netdev/if_ed/if_ed.c の以下の関数で、ディスパッチ禁止状
1387 æ…
1388‹ã«ãªã‚‰ãªã„ように変更した。
1389
1390 ed_pio_readmem
1391 ed_pio_writemem
1392
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 # イーサネット・ディバイスドライバの選択
1409 NET_DEV = if_ed
1410
1411 を指定する必
1412要がある。
1413
1414 (21) tinet/netapp/netapp.h に、 コンソールに用いるシリアルポート番
1415 号の定義を追加した。
1416
1417 /*
1418 * コンソールに用いるシリアルポート番号
1419 */
1420 #ifndef CONSOLE_PORTID
1421 #define CONSOLE_PORTID LOGTASK_PORTID
1422 #endif /* of #ifndef CONSOLE_PORTID */
1423
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) に関して、
1440
1441 #define TCP_MSS (IP4_MSS - (IP4_HDR_SIZE + TCP_HDR_SIZE))
1442
1443 から、BSD の標準値
1444
1445 #define TCP_MSS 512
1446
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 下の行を追加した。
1471
1472 { 0xffffffff, 0xffffffff, 0 },
1473
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 に定義した。
Note: See TracBrowser for help on using the repository browser.