Cente TCP/IPv4

Cente TCP/IPv4

UDPのコールバック受信に対応

UDPパケット受信をコールバックルーチンでユーザに通知する機能を追加した。

複数のI/Fに向けて、同一IPアドレスに送信すると失敗する

ARPのキャッシュが全I/Fで一つだったため、あるIPアドレスのエントリを複数のI/Fで参照してしまっていた。エントリにI/F情報を持たせて区別することで回避した。

環境によってはARPパケット送信時にメモリ破壊を起こすことがある

ELAP層のゼロコピーAPIを使用している場合、ARPパケット送信時にメモリ破壊を起こすことがあったので修正した。

TCP送信リトライが満了したときのエラーコードをE_TMOUTからE_CLSに変更した

通信相手からの応答がなくなったなどの場合、TCP送信は再送を繰り返して満了したときに以降のAPI呼び出しに対してエラーコードを返す。従来はE_TMOUTを返していたが、API自体のタイムアウトと区別するためE_CLSに変更した。

TCPのキープアライブが不正なシーケンス番号のパケットを受けたときもリセットされていた

ポート番号とチェックサムが正しいパケットを受信したときにキープアライブタイマをリセットしていたが、シーケンス番号が正しいのみリセットするよう変更した。

Cente TCP/IPv4

TCPで不正なIDのdel_sem()が発生することがある

TCP接続と切断を短時間に繰り返すとまれに不正なIDのdel_sem()が発生することがあったので修正した。

FIN2ステート時のRESET受信

TCPで、FIN2ステート時にRESETを受信すると、セッション情報の解放が2回発生していた。すぐに次のセッションが接続したとき、使用中にもかかわらず解放されることがあったので修正した。

UDPのディレイに即値を使っていた

udp_rxtaskで受信に失敗したときのディレイがdly_tsk(100);と即値を使っていた。dly_tsk(SEC2TICK(1));に変更した。

タイマ満了関数が一度余計に動作することがあった

内部で使用しているタイマにおいて、タイマ満了前にタイマを止めても、タイマ満了関数が呼ばれることがあったので修正した。

Cente TCP/IPv4

TCPで不正なIDのwai_sem()、sig_sem()が発生することがある

tcp_rcv_dat()で受信待ち状態のタスクと別のタスクでtcp_cls_cep()を呼ぶと、ID=0でwai_sem()が呼ばれる。また、SYNを受信しSYNACKを送信したがACKを受けられなかった場合、ID=0でsig_sem()が呼ばれる。この2点を修正した。

DHCPサーバからNAKを受信したときにリスタートしない

DHCPクライアントがRENEWのときにDHCPサーバからNAKを受け取る場合があるが、その際に再度取得シーケンスを実行していなかったので修正した。

REBIND時間にリクエストが送信されない

DHCPクライアントがRENEWのときに応答を得られなかった場合、REBIND時刻に再度リクエストを送信していなかったので修正した。

IPフラグメントのエイジングタイマが正常に動作しない

システム起動から65535tick以上経過すると、IPフラグメントパケットのエイジングタイマが1/10秒に一度起動するようになっていた(実動作には影響はない)。これを修正した。

デフォルトルートがなくなる

起動時にRIPを送信して応答を受信した後、ルータからRIPブロードキャストを受けられないとデフォルトルートが消失して別サブネットに送信できなくなっていた。その場合は規定したデフォルトルートに戻すようにし、またデフォルトではRIPの送受信を行わないよう変更した。

マルチIP環境での経路情報が不正になる

複数のI/Fを使用している場合、それぞれがリンクアップ・ダウンを繰り返すと経路情報が不正になりパケットが送信できなくなることがあったので修正した。

マルチIP環境でのDHCPクライアント

複数のI/FでDHCPクライアントを使用する場合、1つのタスクでシーケンシャルに取得するか複数のタスクで同時に取得するかを選択できるようにした。

TCPキープアライブをONにしたときのコンパイルエラー

Ver.1.10の修正漏れでTCPキープアライブを使用する定義に変更するとコンパイルエラーが発生していたので修正した。

Cente TCP/IPv4

ctkernelに対応

他OSへの移植性向上のため、iTRON4のAPI名と構造体名にプレフィックスを付加。

2005.05.20:Ver1.05

DNScで、複数タスクから同時に名前解決を行うと正しく動作しない

ctdnsc_res.cのTA_WSGLをTA_WMULに修正。

ロックするためのdis_dspをloc_cpuに変更

loc_cpuの方が軽いため。動作に変更は無い。(dnsc_mkquery()の変更)

DHCPサーバからのレスポンスがないとハングアップする

DHCPにてIPアドレス取得または更新中にDHCPサーバから応答が来ないとセマフォのデッドロックが発生していたので修正した。

フラグメントIPパケットのヘッダ内容をチェックしていない

フラグメントIPパケットはまず再構築してから、IPヘッダ内容についてチェックを行っていた。各々のフラグメントIPパケットのヘッダ内容もチェックするようにした。

TCPゼロウインドウ受信時もデータを送信してしまう

通信相手からウインドウサイズが0のACKを受信しても、その先のデータを送信してしまっていたので修正した。

IPリンク起動待ち関数で、全リンク指定のときに正常に動かない

IPリンク起動待ち関数tcpip_wai_rdy()で、複数リンクのうちどれか1つが起動したら返るような指定をした場合、実際に1つのIPリンクが起動しても返らない状態だったので修正した。

TCP連続送信が通信相手からのACKを待ってしまうことがある

アプリケーションが連続してtcp_snd_dat()を呼ぶような場合、通信相手のウインドウサイズが十分ある場合でも、通信相手からのACKを受けないと追加の通信を行っていなかったので修正した。

CenteFileSystem5.0対応

定数の定義や、ファイル名などをCenteFileSystem5.0に対応させた。(CenteFileSystem4.xとも使用可能)

FTPdバグ修正

タスク初期化構造体の第二メンバーがNULLとなっていると開発環境によってはWarningが出ることがあるので、0と変更した。

FTPcバグ修正

イベントフラグの使い方にミスがあったのを修正した。イベントフラグをクリアする方法を間違えていた点を修正し、不要なset_flgがあったのを削除した。

Cente TCP/IPv4 SNMPv2

Cente共通モジュール、CenteTCP/IPv4、ctlib、Shellバージョンアップ

Cente共通モジュール、CenteTCP/IPv4、ctlib、Shellをバージョンアップ。

メモリ周りの処理の修正

可変長メモリプールを使用していた部分を止め、ctmalloc/ctfreeでメモリ管理を行うように変更。

INTEGER、INTEGER32の符号の修正

INTEGER、およびINTEGER32型が符号なしで定義されていたが、符号付きに変更。

Cente TCP/IPv4

DHCPcのセカンダリDNS対応

DHCPサーバからセカンダリDNSを取得できるよう対応した。

経路情報のCIDR対応

設定可能なIPアドレスとサブネットマスクの制限を緩和し、CIDR環境でも運用可能にした。

FTP通信が遅い場合がある不具合修正

PCからCenteへのFTP送信をすると、CenteからのACK送信がPCが期待したタイミングと異なり、スループットが上がらないことがあったので修正した。

802.11bの受信パケットを破棄することがある不具合修正

802.11bからMTU最大のパケットを受信するとELAP層で破棄してしまっていたので修正した。

TCPキープアライブをONにしたときのコンパイルエラー

TCPキープアライブを使用する定義に変更するとコンパイルエラーが発生していたので修正した。

ブロードキャストPINGに対する応答内容の不具合修正

ブロードキャスト宛に対するPINGを受けたとき、その応答の送信元アドレスがブロードキャストになっていたので修正した。

マルチIP環境でARPが動作しないことがある不具合修正

IPのI/Fを複数使用する環境で、ネットワークデバイスドライバとの対応付けに不具合があり、IPのI/Fがオープンしているにもかかわらず、ARPではクローズしていると判断されるパターンがあったので修正した。

Cente TCP/IPv4

CentePPPVer.1.00に対応

CentePPPをCenteTCP/IPv4から使用するため、いくつかの変更を行った。

DNScのリクエストパラメータにDNSサーバアドレスを追加

DHCPdに対してDNSサーバアドレスを明示的にリクエストするよう変更した。

Cente共通モジュールバージョンアップ

Cente共通モジュールのバージョンアップ。

udp_rcv_dat()が正しくない長さを返すことがある不具合修正

トラフィックが高い状態でudp_rcv_dat()を呼び続けると、ときどき返り値の長さが実際の長さと異なることがあったので修正した。

長いPINGの受信で送信パケットリソースが枯渇する不具合修正

IPフラグメントを伴う長いPINGを受信したとき、その応答のための送信パケット群をARP解決できずに破棄する際、一部が破棄できていなかったので修正した。

TFTPのフェイルセーフ強化

ファイルの二重クローズを防止、udp_rcv_dat()からのエラーチェック強化などを行った。

TFTPdがクライアントから再送を受けたときに処理しない不具合修正

TFTPクライアントから再送を受けたとき、TFTPdで処理せずエラーを返していた。正しく再送パケットとして処理できるよう修正した。

TCPでWindowsサイズ0を通知されたときFIN受信についての動作修正

Windowsサイズ0が通知されたあと、相手からFINを受けても無視していた。FINは特別に直ちに処理するよう変更した。

TCPのクローズがしばらく実行できない不具合修正

あるコネクションのクローズ実行中に、他のコネクションのクローズが実行できない状態だったので、修正した。

TCPの再送が非常に短い間隔で発生する不具合修正

あるTCPパケットの送信から、数msec後に再送が発生してしまうことがあったので修正した。

TCPのFINを送信せずにクローズが終了してしまう不具合修正

相手からFINを受信したあと自分からクローズを行った場合に、自分からFINを出さずに一瞬でtcp_cls_cep()から返ることがあったので修正した。

TCPのFINを再送しない不具合修正

FINを送信し、その直後に、それ以前の再送のACKを受信した場合など、FINに対するACKでないACKを受信すると、FINの再送が発生しなくなることがあったので修正した。

MSSいっぱいにデータを送信できない不具合修正

TCP送信パケットのデータ部の最大長が、相手から通知されたMSSより常に20byte短くなっていたので修正した。

Page 11 of 12