TINET更新履歴

Release 1.5.2 の Relase 1.5.1 との主な違い
  • ip_output.cで、SUPPORT_IPSECの条件if文の表記を修正した。
  • WTCP_CFG_RWBUF_CSAVE_MAX_QUEUESを既定値では未定義にした。
  • TCPのコネクションの確立時のタイムアウトをBSDと同じ約75秒に設定した。
  • TCPのコネクションの確立時においてネットワークバッファに空きがない時に、再送を行わない問題を修正した。
  • TCPの処理をキャンセルした時、受信再構成キューとウィンドバッファキューが正しく解放されない問題を修正した。
  • リトルエンディアンのプロセッサおいて、同一LAN内へのブロードキャストアドレスのUDPの受信ができない問題を修正した。
  • DHCP_CFGを指定した時、IPV4_ADDR_DEFAULT_GWが未定義なる問題に関して、サンプルプログラムのtinet_app_config.hに IPV4_ADDR_DEFAULT_GWの定義を追加した。
  • 送信ウィンドバッファの省コピー機能を有効にした時、TCPの再送制御が正しく動作しないことがある問題を修正した。
Release 1.5.1 の Relase 1.5 との主な違い
  • ASP 用 TINET において TCP ヘッダのトレース出力機能で、TCP_CFG_TRACE を指定するとコンパイルできない問題を修正した。
  • 受動オープンしていないポートに接続要求があった場合、環境によっては例外が発生することがある問題を修正した。
Release 1.4.4 の Relase 1.4.3 との主な違い
  • WTCP_CFG_RWBUF_CSAVE_MAX_QUEUESを既定値では未定義にした。
  • TCPのコネクションの確立時のタイムアウトをBSDと同じ約75秒に設定した。
  • TCPのコネクションの確立時においてネットワークバッファに 空きがない時に、再送を行わない問題を修正した。
  • TCPの処理をキャンセルした時、受信再構成キューとウィンドバッファキューが 正しく解放されない問題を修正した。
  • リトルエンディアンのプロセッサおいて、同一LAN内への ブロードキャストアドレスのUDPの受信ができない問題を修正した。
  • DHCP_CFGを指定した時、IPV4_ADDR_DEFAULT_GWが未定義なる問題に関して、 サンプルプログラムのtinet_app_config.hに IPV4_ADDR_DEFAULT_GWの定義を追加した。
  • 送信ウィンドバッファの省コピー機能を有効にした時、 TCPの再送制御が正しく動作しないことがある問題を修正した。
Release 1.4.3 の Relase 1.4.2 との主な違い
  • 受動オープンしていないポートに接続要求があった場合、環境によっては例外が発生することがある問題を修正した。
Release 1.5 の Relase 1.4 との主な違い
  • データグラム再構成用ネットワークバッファの定義に、IF_ETHER_NIC_NET_BUF_ALIGNが不足していた問題を修正した。
  • TINETプロトコルスタックの記述を、TOPPERS/ASPカーネルで規定されているTOPPERS共通データ型に変更した。
  • UDPで、ノンブロッキングコール機能を組み込まず、UDP通信端点にUDP_PORTANYを指定したとき、ポート番号が自動的に割り当てられない問題を修正した。
  • コンパイル時コンフィギュレーションパラメータSUPPORT_IPSECを新設した。これは、IPSECを処理するための指定である。ただし、TINETは、IPSECを処理するためのフックのみをip_input.cとip_output.c用意しているたけで、IPSEC自体は実装していないので、別に組み込む必要がある。
  • TOPPERS/ASPに対応した。
  • ネットワークインタフェースのPPPとループバックを参考実装とした。
  • IPv4/IPv4データグラムの設定の、4オクテット境界までパディングで埋める処理で、ネットワークバッファの領域外にパディングを書き込むことがある問題を修正した。
  • PPPで、サーバからのIPアドレス自動取得ができない問題を修正した。
  • IPv4の入力処理で、上位層がICMP以外の場合に行うオプションの消去をヘッダチェックサムの検査の後に変更した。
  • IPv4の入力処理で、分割のチェックからRFビットを外した。
  • IPv6で、通信帯域を食いつぶす攻撃への対応のため、タイプ0経路制御ヘッダの処理を行わないように変更した。
  • TCPの出力で、送信サイズを通信相手の最大セグメントサイズに調整する場合、誤ったサイズに調整することがある問題を修正した。
  • 通信相手のTCPのMSSオプションの処理で、記録する値を、TCP_MINMSS(216)からMAX_TCP_SND_SEG(標準は、IPv4が512、IPv6が1024)に制限するように変更した。
  • IPv6で、リンクローカルアドレスの重複を検出した場合、それ以降の近隣探索パケットを出力しなように変更した。
  • IPv6で、ルータ通知のプレフィックス長が不正でも処理を継続し、プレフィックスリストに登録する。また、オンリンク・フラグが有効であれば、同一LAN内のアドレスとして有効となるように変更した。
  • ITRONTCP/IPAPIの仕様に定義されているコールバック関数の引数p_parblkに関して、アドレス渡しが正しいが、値渡しとしていた実装上の誤りを修正した。また、TINETリリース1.4以前と互換性を維持するために値渡しにするコンパイル時コンフィギュレーションパラメータTCP_CFG_NON_BLOCKING_COMPAT14とUDP_CFG_NON_BLOCKING_COMPAT14を新設した。
  • 能動オープン(TCP_CON_CEP呼出し)でノンブロッキングコールを行った時に、同時オープン(TCPの状態遷移が「SYN送信」→「SYN受信」→「コネクション確立」)が発生した場合、コールバック関数が呼出されない問題を修正した。
  • タスクからのTimeWait状態のTCP通信単点分離機能を組込んだ場合に、ACKセグメントを再送する時、ポート番号のバイトオーダーの変換が誤っていた問題を修正した。
  • TCPでKeepAliveを有効にした時、ウィンドサイズが0のセグメントが送信される問題を修正した。
  • MakefileにNO_USE_TINET_LIBRARY=trueを指定して、ライブラリ化させない方法における問題を修正した。
  • TOPPERS/ASPの実行環境、GCC3.x系の開発環境でアプリケーションプログラムを構築した時、ethernetヘッダ構造体のサイズが不一致になり、動作が不安定になることがある問題を修正した。
  • H8依存部で、tinet_sys_config.hに指定されているED_IPMの設定を、IPM_LEVEL1からIPM_LEVEL0に変更した。
Release 1.4.2 の Relase 1.4.1 との主な違い
  • H8 依存部で、 tinet_sys_config.h に指定されている ED_IPM の設定を、IPM_LEVEL1 から IPM_LEVEL0 に変更した。
Release 1.4.1 の Relase 1.4 との主な違い
  • データグラム再構成用ネットワークバッファの定義に、IF_ETHER_NIC_NET_BUF_ALIGNが不足していた問題を修正した。
  • UDPで、ノンブロッキングコール機能を組み込まず、UDP通信端点にUDP_PORTANYを指定したとき、ポート番号が自動的に割り当てられない問題を修正した。
  • IPv4/IPv4データグラムの設定の、4オクテット境界までパディングで埋める処理で、ネットワークバッファの領域外にパディングを書き込むことがある問題を修正した。
  • PPPで、サーバからのIPアドレス自動取得ができない問題を修正した。
  • IPv4の入力処理で、上位層がICMP以外の場合に行うオプションの消去をヘッダチェックサムの検査の後に変更した。
  • IPv4の入力処理で、分割のチェックからRFビットを外した。
  • IPv6で、通信帯域を食いつぶす攻撃への対応のため、タイプ0経路制御ヘッダの処理を行わないように変更した。
  • IPv6で、ルータ通知のプレフィックス長が不正な場合でも処理を継続するように変更した(FreeBSD-6.3の実装と同じにした)。
  • TCPの出力で、送信サイズを通信相手の最大セグメントサイズに調整する場合、誤ったサイズに調整することがある問題を修正した。
  • 通信相手のTCPのMSSオプションの処理で、記録する値を、TCP_MINMSS(216)からMAX_TCP_SND_SEG(標準は、IPv4が512、IPv6が1024)に制限するように変更した。
Release 1.4 の Relase 1.3 との主な違い
  • tinetコンフィギュレーションにTCP/IPv4受付口の予約IDを定義するVRID_TCP_REPを追加した。
  • tinetコンフィギュレーションにTCP/IPv4通信端点の予約IDを定義するVRID_TCP_CEPを追加した。
  • tinetコンフィギュレーションにUDP/IPv4通信端点の予約IDを定義するVRID_UDP_CEPを追加した。
  • tinetコンフィギュレーションにTCP/IPv6受付口の予約IDを定義するVRID_TCP6_REPを追加した。
  • tinetコンフィギュレーションにTCP/IPv6通信端点の予約IDを定義するVRID_TCP6_CEPを追加した。
  • tinetコンフィギュレーションにUDP/IPv6通信端点の予約IDを定義するVRID_UDP6_CEPを追加した。
  • ITRON TCP/IP APIのTCPの拡張機能を有効にするコンパイル時コンフィギュレーションパラメータTCP_CFG_EXTENTIONSを追加した。
  • ITRON TCP/IP APIのUDPの拡張機能を有効にするコンパイル時コンフィギュレーションパラメータUDP_CFG_EXTENTIONSを追加した。
  • 一般定数マクロTCP_REP_NONEを追加した。値は(0)。
  • 一般定数マクロTCP_CEP_NONEを追加した。値は(0)。
  • 一般定数マクロUDP_CEP_NONEを追加した。値は(0)。
  • 全域変数として、ipv6_addranyをマクロで定義した。
  • ITRON TCP/IP APIのTCP/IPv4受付口を動的に生成するAPIのcre_tcp_repを 追加した。
  • ITRON TCP/IP APIのTCP通信端点を動的に生成するAPIのcre_tcp_cepを追 加した。
  • ITRON TCP/IP APIのUDP/IPv4通信端点を動的に生成するAPIのcre_udp_cep を追加した。
  • ITRON TCP/IP APIのTCP受付口を動的に削除するAPIのdel_tcp_repを追加 した。
  • ITRON TCP/IP APIのTCP通信端点を動的に削除するAPIのdel_tcp_cepを追 加した。
  • ITRON TCP/IP APIのUDP通信端点を動的に削除するAPIのdel_udp_cepを追加 した。
  • ITRON TCP/IP APIのTCP/IPv6受付口を動的に生成するAPIのcre_tcp6_rep を追加した。
  • ITRON TCP/IP APIのUDP/IPv6通信端点を動的に生成するAPIの cre_udp6_cepを追加した。
  • ITRON TCP/IP APIのTCP通信端点オプションを設定するAPIのtcp_set_opt を追加した。
  • ITRON TCP/IP APIのTCP通信端点オプションを読出すAPIのtcp_get_optを追 加した。
  • ITRON TCP/IP APIのUDP通信端点オプションを設定するAPIのudp_set_opt を追加した。
  • ITRON TCP/IP APIのUDP通信端点オプションを読出すAPIのudp_get_optを 追加した。
  • 緊急データの最後のバイトのオフセットを規定するコンパイル時コンフィ ギュレーションパラメータTCP_CFG_URG_OFFSETを追加した。
  • ITRON TCP/IP APIの緊急データ受信APIのtcp_rcv_oobを追加した。
  • ITRON TCP/IP APIの緊急データ送信APIのtcp_snd_oobを追加した。
  • T_NET_BUF_IF_PDUで、フレームの終わりの境界の調整量を指定するイーサ ネットインタフェース依存パラメータ定義IF_PDU_HDR_PADDINGを追加した。
  • 再構成バッファサイズのネットワークバッファ数を指定するコンパイル時 コンフィギュレーションパラメータNUM_MPF_NET_BUF_REASSMを NUM_MPF_NET_BUF4_REASSMに変更し、IPv4用の再構成バッファサイズのネット ワークバッファ数を指定するパラメータとした。
  • IPv6データグラム再構成用ネットワークバッファ獲得タイムアウトを指定 するコンパイル時コンフィギュレーションパラメータ TMO_IP6_FRAG_GET_NET_BUFを追加した。
  • IPv6データグラムの分割・再構成行う場合に指定するコンパイル時コンフィ ギュレーションパラメータIP6_CFG_FRAGMENTを追加した。
  • IPv6データグラム再構成キューサイズを指定するコンパイル時コンフィギュ レーションパラメータNUM_IP6_FRAG_QUEUEを追加した。標準値は2であ る。
  • IPv6データグラム再構成用ネットワークバッファのサイズを指定するコン パイル時コンフィギュレーションパラメータIP6_CFG_FRAG_REASSM_SIZEを追加 した。
  • プレフィックスリストのエントリ数を指定するコンパイル時コンフィギュ レーションパラメータNUM_ND6_PREFIX_ENTRYを追加した。
  • インタフェースのアドレスリスト(IPv6)のエントリ数を指定するコンパ イル時コンフィギュレーションパラメータNUM_IN6_IFADDR_ENTRYを追加した。
  • PathMTUとホスト情報キャッシュを実装した。
  • IPv6用ホストキャッシュのエントリ数を指定するコンパイル時コンフィギュ レーションパラメータNUM_IN6_HOSTCACHE_ENTRYを追加した。
  • ESP用として、ネットワークバッファのフラグにNB_FLG_DECRYPED を追加 した。ただし、TINETは、IPSecを直接サポートしない。
  • if_ed.cのNIC割り込みハンドラif_ed_handlerで、ターゲット依存部の割 込みクリア関数ed_inter_clearを呼出すように変更した。
  • イーサネットディバイスドライバにより、ネットワークバッファで、アラ イン調整を行うIF_ETHER_NIC_NET_BUF_ALIGNを追加した。
Release 1.3.2 の Relase 1.3.1 との主な違い
  • TINETユーザズマニュアルtinet.txt(tinet.pdf)の「1.2動作確認済みの システム」で、(2) の表記を以下のように変更した。
    (修正前)秋月電子通商製H8/3048F
    (修正後)秋月電子通商製H8/3048F(PPP、ループバックのみ)
  • TCPで、再送を12回行なっても、通信が回復しないとき、コネクシンを破棄するリセットセグメントが送信されない問題を修正した。
  • 高速再転送と高速リカバリが正常に行なわれない問題を修正した。
  • TCPで、ACKを正常に送信しないことがある問題を修正した。
  • 受信ウィンドバッファの省コピー機能を使用したとき、TCPのハーフクローズ状態で、データを全て受信できないことがある問題を修正した。
  • ビッグエンディアンのプロセッサにおいて、TCPヘッダのトレース出力で、正しい値を表示しない問題を修正した。
  • TCPヘッダのトレース出力で、送受信が混ざる場合がある問題に暫定対応 した。TINETリリース1.4で、正式対応予定。
Release 1.3.1 の Relase 1.3 との主な違い
  • コネクションを切断する API の tcp_cls_cep で例外が発生する問題を修正した。
  • int のサイズが 16 ビットのプロセッサで、 TCP のコネクション切断の時に、65,535 オクテットのセグメントが送信される問題を修正した。
  • TCP のオプションで、 誤ったサイズが指定されても正常に動作するように修正した。
  • tinet コンフィギュレータが生成する tinet_cfg.c の UDP_CRE_CEPに対 応する構造体 T_UDP_CCEP のフィールド callback の値の前に(FP) を出力す るように変更した。
  • tinet コンフィギュレータが生成する tinet_cfg.c のUDP6_CRE_CEP に 対応する構造体 T_UDP6_CCEP のフィールドcallback の値の前に (FP) を出力 するように変更した。
  • H8C で、 文字列関係のライブラリ関数を使用しているにもかかわらず、 #include を定義していない場合発生する問題に対応した。
  • 「タスクからの Time Wait 状態の TCP 通信端点分離機能」を有効にし ていても、 コネクションの同時切断のタイミングによっては、分離されない 場合があることを、 TINET ユーザズマニュアルに明記した。
  • リトルエンディアンのプロセッサで、IPv4 の分割・再構成が正しく行わ れない問題を修正した。
  • IP ヘッダの Identification フィールドの値を、データグラムを送信す る毎にインクリメントするように変更した 。
  • 「タスクからの Time Wait 状態の TCP 通信端点分離機能」を有効した 場合、TCP 通信端点が Time Wait の時、FIN フラグが付いていないセグメン トに対する応答の問題を修正した。
  • 「タスクからの Time Wait 状態の TCP 通信端点分離機能」を有効した 場合、TCP 通信端点が Time Wait の時、RST フラグが付いたセグメントに対 する応答の問題を修正した。
  • 誤った IP SDU 長の TCP リセットセグメントを送信する問題を修正した。
  • 「タスクからの Time Wait 状態の TCP 通信端点分離機能」を有効した 場合、TCP 通信端点が Time Wait に移行するとき、誤ってリセットセグメン トを送信する場合がある問題を修正した。
  • UDP で、 ノンブロッキングコールを組込み、udp_snd_dat を呼び出した 時、ノンブロッキングコールの引数 p_parblk に、 送信したデータ数が設定 されない問題を修正した。
  • UDP の通信端点の myportno に UDP_PORTANY を指定できないことを、 TINET ユーザズマニュアルに明記した。
  • コールバックの UDP パケットの受信で、事象の種類が誤っていた問題を 修正した。
  • int のサイズが 16 ビットの処理系で、 TCP の初期シーケンス番号の更 新間隔が規定より短くなる事がある問題を修正した。
Release 1.3 の Relase 1.2 との主な違い
  • タスクから Time Wait 状態の TCP 通信端点を分離する機能を実装した。
  • TCP 通信端点の送受信ウィンドバッファの省コピー機能を実装した。
  • TCP と UDP のノンブロッキングコール機能を取り外す機能を追加した。
  • TCP の受動オープンをサポートする場合に指定する TCP_CFG_PASSIVE_OPEN を追加した。
  • TCP と UDP の一部をライブラリ化した。
  • ネットワークバッファの各長さの指定で、無指定または 0 を指定し た場合は、 対応する固定メモリプールを割当てないように変更した。
  • コンパイル時コンフィギュレーションパラメータに、 再構成バッファ サイズを指定する IP4_CFG_FRAG_REASSM_SIZE を新設した。
  • ネットワークバッファに新しいサイズを追加した。
  • netinet/in.h に、 TINET のバージョン情報 TINET_PRVER を定義した。
  • int のサイズが 16 ビットの処理系に対応した。
  • TCP ヘッダのトレース出力機能を実装した。
  • 8 ビット毎に指定した IPv4 アドレスを 32 ビットにするマクロ MAKE_IPV4_ADDR を追加した(TOPPERS/TINET バグトラックシステムID:4)。
  • 各ソースコードのコピーライトを修正した(TOPPERS/TINET バグトラッ クシステム ID:6)。
Release 1.2.6 の Relase 1.2.5 との主な違い
  • TCP において、 送信側で再構成され、前後と重なりがあるセグメン トの再構成が正しく行われない問題を修正した (TOPPERS/TINET バグトラックシステム ID:8)。
Release 1.2.5 の Relase 1.2.4 との主な違い
  • リトルエンディアンのプロセッサで、tinet/net/net.hで、コンフィギュレーション時に エラーが発生する問題を修正した。
  • リトルエンディアンのプロセッサで、ルータ通知の受信で、有効時間を誤る問題を修正した。
  • JSPリリース1.4.2への対応で、割込みベクタの生成でエラーとなる問題を修正した。
  • JSPリリース1.4.2への対応で、NE2000互換NICのディバイスドライバif_edにおいて、 システム依存でバスの初期化を行うed_bus_initと、割込みのの初期化を行うed_inter_initを新設した。
  • 品川通信計装サービス製NKEV-010H8(H8/3069F)をサポートした。
Release 1.2.4 の Relase 1.2.3 との主な違い
  • JSP リリース 1.4.2 に暫定対応した。
  • tcp_cls_cep で、タイムアウトした後、 tcp_acp_cep がエラーにな る問題を修正した。
  • 誤った IP SDU 長の TCP リセットセグメントを送信する問題を修正した。
  • TCPのシーケンス番号がランダムに初期化されない問題を修正した。
  • リトルエンディアンのプロセッサで、IPv6ヘッダの バージョン、トラヒッククラス、フローラベルフィールドを 誤って参照・変更する問題を修正した。
Release 1.2.3 の Release 1.2.2 との主な違い
  • udp_rcv_dat で、タイムアウトに時間を指定したとき、 タスクの実 行がブロックされる問題を修正した。
  • ネットワーク統計情報の計測の変数サイズを、 _int64_ が定義され ている場合のみ UD となるように変更した。
Release 1.2.2 の Release 1.2.1 との主な違い
  • IP4_CFG_FRAGMENT を指定したとき、 tinet/netapp/dbg_cons.c とtinet/netinet/ip_output.c で、 コンパイルエラーになる問題を修正した。
  • 拡張ヘッダの付いた ICMPv6 エコーリクエストに対する応答の問題を修正した。
  • 近隣探索の到達可能性の確認でタイムアウトした後、 アドレス解決が出来ない問題を修正した。
  • TCP の入力セグメントの再構成関数の潜在的な問題点を修正した。
  • UDP のみ使用するときの icmp6.c で、 _tinet_tcp_notify の参照エラーが発生する問題を修正した。
  • UDP の送信で、タイムアウトしたとき、 ネットワークバッファを開放しない問題を修正した。
  • TCP の応答で、 IP のペイロードサイズを誤る問題を修正した (TOPPERS/TINET バグトラックシステム ID:5)。
Release 1.2.1 の Release 1.2 との主な違い
  • IPv6で、ネットワークインタフェースにループバックインタフェースを指定したとき、コンパイルエラーが発生する問題を修正した。
  • チェックサム計算でエラーになる問題を修正した。
  • echosで、TCP_ECHO_SRV_STACK_SIZEの二重定義警告が出る問題を修正した。
  • net_bufの取得失敗の時、常に警告を出力するように変更した。
Release 1.2 の Release 1.1.1 との主な違い
  • IPv6 に対応した。
  • コンパイル時コンフィギュレーションパラメータに、 ディフォルト・ゲートウェイの IP アドレスを指定するIPV4_ADDR_LOCAL_DEFAULT_GW を新設した。これにより、ディフォルト・ゲートウェイのみのネットワークでは、 静的ルーティング情報設定ファイル route_cfg.c の変更を不要にした。
  • UDP の受信時、 受信ポート番号が未定義の場合、 ネットワークバッファを正しく解放しない問題と、 ICMP のエラー通知を正しく行わない問題を修正した。
  • TCP の受信時、受信ポート番号が未定義の場合、 リセットセグメントを正しく返送しない問題を修正した。
  • ネットワーク統計情報(net_count)の各変数を _tinet_ でリネームしないように変更した。
  • バイトオーダ変換の定義を netinet/in.h から、 net/net.h に集約し、 リトルエンディアン用のマクロを追加した。
  • コンパイル時コンフィギュレーション・ファイルのいずれかで、 マクロ SUPPORT_MIB を定義することにより、SNMP 用管理情報ベース (MIB)に準拠したネットワーク統計の取得が可能となった。ただし、 TINET 自体は、管理情報ベース(MIB)に準拠したネットワーク統計を提供するだけで、SNMP をサポートしていない。また、 RFC1213、RFC2465、RFC2466 に定義されている全ての情報が取得できるわけではない。 取得できる情報は、関係するインクルードファイルの構造体の定義を参照すること。
  • PPP の HDLC 入力における問題を修正した。
  • 認識できない上位プロトコルまたは拡張ヘッダを受信したとき、 コード番号 ICMP6_PARAMPROB_NEXTHEADER(1)の ICMP6_PARAM_PROB(4) メッセージを返送するよう変更した。
Release 1.1.1 の Release 1.1 との主な違い
  • TINET コンフィギュレーションファイルで、 TCP 受付口を指定しなかったとき発生する問題は、 tinet/cfg/tinet_parser.cpp で、 tinet_cfg.c にダミーの TCP 受付口変数を出力するように修正した。
  • UDP のみ使用するときの kernel_cfg.c で、 コンパイルエラーが発 生する問題は、tinet/netinet/tcp.cfg から
    INCLUDE("<netinet/in.h>");
    を削除し、tinet/netinet/ip.cfg に
    INCLUDE("<netinet/in.h>");
    を追加した。
  • UDP のみ使用するときの ip_icmp.c で、 _tinet_tcp_notify の参照エラーが発生する問題は、 tinet/netinet/ip_icmp.c で、 ICMPUNREACH メッセージを無視するように修正した。
  • ループバック・インタフェースの IP アドレスマスク、 ローカルブロードキャストアドレスの定義誤りを修正した。
  • tinet/netdev/if_ed/if_ed.c で、 レジスタを SIL 経由でアクセスするように修正した。