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

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

SVNプロパティを設定

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/plane; charset=UTF-8
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 (4) IPv6/IPv4 デュアルスタック化のため、 IPv6 専用モジュールと
20 IPv4 専用モジュールのコンパイルの有効・無効をソースコードで行
21 うように変更した。
22
23 (5) IPv6/IPv4 デュアルスタック化と IPv4 射影アドレスの実装のため、
24 IPv6 専用モジュールのコンパイルを有効にするマクロ _IP6_CFG と、
25 IPv4 専用モジュールのコンパイルを有効にするマクロ _IP4_CFG を
26 追加した。以下に設定する条件を示す。
27
28 SUPPORT_INET6 . . ON ON ON ON
29 SUPPORT_INET4 ON ON . . ON ON
30 API_CFG_IP4MAPPED_ADDR . ON . ON . ON
31 ---------------------- ----------------------
32 _IP6_CFG . . ON ON ON ON
33 _IP4_CFG ON ON . ON ON ON
34
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 イルを追加した。 以下にソースファイルの一覧を示す。
143
144 netinet/tcpn_usrreq.c
145 netinet/udpn_input.c
146 netinet/udpn_output.c
147 netinet/udpn_subr.c
148 netinet/udpn_usrreq.c
149 netinet/udpn_usrreq_nblk.c
150
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 フィギュレーションパラメータと構造体名は「変更必須項目」になった。
224
225 [1] NUM_ROUTE_ENTRY
226 NUM_IN4_STATIC_ROUTE_ENTRY に変更する。
227 [2] NUM_IN4_REDIRECT_ROUTE_ENTRY
228 新たに定義する。
229 [3] T_RT_ENTRY
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 に
261 NO_USE_TINET_LIBRARY = true
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
3142. リリース 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
3933. リリース 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
7154. リリース 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) 以下のコンパイル時コンフィギュレーションパラメータを変更した。
801
802 NUM_MPF_NET_BUF_4096
803
804 NUM_MPF_NET_BUF_REASSM
805
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 定義するように変更した。
827
828 MAX_TCP_RCV_SEG
829 DEF_TCP_SND_SEG
830 ARP_CACHE_KEEP
831 LOMTU
832
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 に
856
857 #include <netinet/in_itron.h>
858
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
9965. リリース 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 から
1004
1005 INCLUDE("<netinet/in.h>");
1006
1007 を削除し、tinet/netinet/ip.cfg に
1008
1009 INCLUDE("<netinet/in.h>");
1010
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
10596. リリース 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 順番を見直した。
1112
1113 #include "tinet_app_config.h"
1114 #include "tinet_sys_config.h"
1115 #include "tinet_cpu_config.h"
1116
1117 #ifdef SUPPORT_ETHER
1118 #include "tinet_nic_config.h"
1119 #endif /* of #ifdef SUPPORT_ETHER */
1120 #include "tinet_sys_config.h"
1121 #include "tinet_cpu_config.h"
1122 #include "tinet_app_config.h"
1123
1124 [7] tinet/net/ethernet.h の変更
1125
1126 ・tinet/netdev/if_ed/if_ed.h の t_ed_softc から、ディバ
1127 イス非依存部を t_if_softc として独立して定義した。
1128
1129 struct t_if_softc {
1130 T_IF_ADDR ifaddr;
1131 UH timer;
1132 T_IF_ETHER_SOFTC *sc;
1133 ID semid_txb_ready;
1134 ID semid_rxb_ready;
1135 };
1136 typedef struct t_if_softc T_IF_SOFTC;
1137
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 に変更した。
1145
1146 T_IF_ETHER_SOFTC *sc;
1147
1148 T_IF_SOFTC *ic;
1149
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 のインクルード指定の変更
1164
1165 #include <netdev/if_edreg.h>
1166
1167 #include "if_edreg.h"
1168
1169 ・t_ed_softc の定義を、 tinet/netdev/if_ed/if_ed.h から
1170 移動した。
1171 ・t_ed_softc は、ディバイス依存部のみ定義するように変更した。
1172 ・以下の局所関数の引数を T_ED_SOFTC から T_IF_SOFTC に
1173 変更した。
1174
1175 ed_xmit
1176 ed_init_sub
1177
1178 ・関数の引数が T_ED_SOFTC から T_IF_SOFTC に代わったが、
1179
1180 T_ED_SOFTC *sc = ic->sc;
1181
1182 で、T_ED_SOFTC を取り出すことが出来る。
1183
1184 [11] tinet/netdev/if_ed/if_ed.cfg の変更
1185
1186 INCLUDE("<netdev/if_ed.h>");
1187 INCLUDE("<netdev/if_edreg.h>");
1188
1189 INCLUDE("\"if_edreg.h\"");
1190
1191 [12] tinet/net_rename.h の変更
1192 if_ed の関数のリネーム定義を、
1193 tinet/netdev/if_ed/nic_rename.h に移動した。
1194 [13] tinet/tinet.cfg の変更
1195
1196 #ifdef IF_ETHER_CFG_ED
1197 #include "netdev/if_ed.cfg"
1198 #endif /* of #ifdef IF_ETHER_CFG_ED */
1199
1200 #include "nic.cfg"
1201
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 の定義の後に追加した。
1210
1211 ifdef TINET_ROOT
1212 INCLUDES := $(INCLUDES) -I$(TINET_ROOT)/netdev/if_ed
1213 endif
1214
1215 ・「カーネルに関する定義」の変更
1216 ネットワークインタフェースのディレクトリとネットワー
1217 クインタフェースのオブジェクトを含めるため、
1218 KERNEL_COBJS の定義の後に追加した。
1219
1220 ifdef TINET_ROOT
1221 KERNEL_DIR := $(KERNEL_DIR):$(TINET_ROOT)/netdev/if_ed
1222 KERNEL_COBJS := $(KERNEL_COBJS) if_ed.o
1223 endif
1224
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 クルード順番を以下のように変更した。
1243
1244 tinet_defs.h
1245 tinet_config.h
1246
1247 [3] tinet_cfg.c に出力する標準のインクルードファイルで、 以
1248 下のファイル指定を削除した。
1249
1250 #include <netinet/in_rename.h>
1251
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 ンを調整する場合に、 調整量を指定する。
1264
1265 tinet/net/ethernet.h
1266
1267 (15) TINET プロトコルスタック内部のリネーム指定ファイル
1268 tinet/net/net_rename.h と tinet/netinet/in_rename.h のインク
1269 ルードを、tinet/tinet_config.h で指定するように変更し、各ソー
1270 スファイルから以下のファイルを削除した。
1271
1272 #include <net/net_rename.h>
1273 #include <netinet/in_rename.h>
1274
1275 (16) TINET の標準 Makefile.config を作成し、 アプリケーションの
1276 Makefile からインクルードするように変更した。
1277
1278 (17) tinet/netdev/if_ed/if_ed.c の以下の関数で、ディスパッチ禁止状
1279 態にならないように変更した。
1280
1281 ed_pio_readmem
1282 ed_pio_writemem
1283
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 # イーサネット・ディバイスドライバの選択
1300 NET_DEV = if_ed
1301
1302 を指定する必要がある。
1303
1304 (21) tinet/netapp/netapp.h に、 コンソールに用いるシリアルポート番
1305 号の定義を追加した。
1306
1307 /*
1308 * コンソールに用いるシリアルポート番号
1309 */
1310 #ifndef CONSOLE_PORTID
1311 #define CONSOLE_PORTID LOGTASK_PORTID
1312 #endif /* of #ifndef CONSOLE_PORTID */
1313
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) に関して、
1328
1329 #define TCP_MSS (IP4_MSS - (IP4_HDR_SIZE + TCP_HDR_SIZE))
1330
1331 から、BSD の標準値
1332
1333 #define TCP_MSS 512
1334
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 下の行を追加した。
1354
1355 { 0xffffffff, 0xffffffff, 0 },
1356
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 に定義した。
Note: See TracBrowser for help on using the repository browser.