Loading
Topics
|
About Project
|
ASP3 Kernel
|
Documents
|
Download
|
Community
|
Report
|
Contacts
|
FAQ
会員向けページ
メーリングリスト
早期リリース
技術ドキュメント
開発支援
会員情報登録・変更
会員向けイベント情報
プロジェクトについて
TOPPERSプロジェクトとは
TOPPERSのロゴについて
TOPPERS公式マスコット「とぱめ」
TOPPERSライセンス
プロジェクト規則集
貸借対照表
プロジェクトの組織
関連団体、プロジェクトメンバ
受賞
入会のススメと申込み方法
開発成果物の利用報告
FAQ
問い合わせ・事務局案内図
取り組み
ETロボコンへの取組み
プレス発表
ニュースレター
コンテスト
一般向けイベント情報
TOPPERSカンファレンス
TOPPERS開発者会議
過去の取り組み
公的資金によるプロジェクト
ソフトウェア開発委託事業
公募型事業
開発成果物
リアルタイムカーネル
TOPPERS/ASP3カーネル
TOPPERS/HRP3カーネル
TOPPERS/FMP3カーネル
TOPPERS/HRMP3カーネル
TOPPERS/ASPカーネル
TOPPERS/JSPカーネル
TOPPERS/FMPカーネル
TOPPERS/HRP2カーネル
TOPPERS/SSPカーネル
TOPPERS/PARK
TOPPERS/FDMPカーネル
TOPPERS/FI4カーネル
TOPPERS/HRPカーネル
TOPPERS/ATK1
AUTOSAR関連
TOPPERS/ATK2
TOPPERS/A-RTEGEN
TOPPERS/A-COMSTACK
TOPPERS/A-WDGSTACK
TOPPERS/A-OSBENCH
TOPPERS/AKTSP
TOPPERS/EV3RT(EV3 Platform)
TECS(コンポーネントシステム)
TINET(TCP/IPスタック)
TOPPERS/ECNL
CAN/LIN通信ミドルウェア
FatFs for TOPPERS
SafeG
SafeG64
SafeG-M
SafeG-Auto
MDCOM
TOPPERS BASE PLATFORM
Athrill
TOPPERS Test Suite Package(TOPPERS新世代カーネル)
TA2LIB
TOPPERS新世代カーネル用コンフィギュレータ
その他
TOPPERS Builder Bootable CD-ROM イメージ
TLV(トレースログ可視化ツール)
BridgePoint for JSP1.4
TOPPERS C++ APIテンプレートライブラリ
TOPPERSカーネルテストスイート(μITRON4.0仕様)
Remote Link Loader(RLL)
ダイナミックローディングマネージャ(DLM)
TOPPERSカーネル向けシミュレーション環境
教育コンテンツ
初級実装セミナー教材
中級実装セミナー教材
基礎1実装セミナー教材
基礎2実装セミナー教材
基礎3実装セミナー教材
基礎ハードウェア基本設計セミナー教材
ARM7版基礎1、2、3実装セミナー教材
TOPPERS BASE PLATFORM対応版基礎1、2、3セミナー教材
二足歩行ロボット教材
TOPPERS版鹿威し
ドキュメント
TOPPERS第3世代カーネル統合仕様書
TOPPERS新世代カーネル統合仕様書
TOPPERS新世代カーネルへのマイグレーションガイド
TOPPERS新世代カーネル用コンフィギュレータ関連仕様書
機能分散マルチプロセッサ向けリアルタイムカーネル仕様書
ダウンロード
ダウンロードページ一覧
関連製品
トータルソリューション
開発キット・開発環境・ツール
ミドルウェア・ソフトウェア部品
サポート・サービス
教育・教材
ハードウェア
利用事例
適用事例
ユーザ
コミュニティ情報
ユーザーズフォーラム
ソフトウェア
統合開発環境
外部リンク
Contributed Software
Contributed Software(GitHub)
AUTOSAR情報サイト
その他の情報
雑誌記事・書籍
TINET更新履歴
Release 1.7 の Relase 1.5 との主な違い
IPv6/IPv4 デュアルスタック化を行った。リリース 1.7 以前では、 Makefile で、 ネットワーク層の選択は SUPPORT_INET6 と SUPPORT_INET4 の指定は何れか一つのみ選択できたが、 リリース 1.7 からは SUPPORT_INET6 と SUPPORT_INET4 の両方を指定できる ようになった。
IPv6 に対応するアプリケーションで IPv4 射影アドレスを利用して、 IPv4 データグラムを扱う場合に指定するコンパイル時コンフィギュ レーションパラメータ API_CFG_IP4MAPPED_ADDR を追加した。
IPv6/IPv4 デュアルスタック化のため、Makefile.tinet では、IPv6 専用モジュールと IPv4 専用モジュールの区別をせず、 全てコンパ イルするように変更した。
IPv6/IPv4 デュアルスタック化のため、 IPv6 専用モジュールと IPv4 専用モジュールのコンパイルの有効・無効をソースコードで行 うように変更した。
IPv6/IPv4 デュアルスタック化と IPv4 射影アドレスの実装のため、 IPv6 専用モジュールのコンパイルを有効にするマクロ _IP6_CFG と、 IPv4 専用モジュールのコンパイルを有効にするマクロ _IP4_CFG を 追加した。
経路選択に関する変更を以下に示す。
route_cfg.c の IPv6 用の routing_tbl を routing6_tbl に 変更した。
route_cfg.c の IPv4 用の routing_tbl を routing4_tbl に 変更した。
NUM_STATIC_ROUTE_ENTRY を、 IPv6 では NUM_IN6_STATIC_ROUTE_ENTRY、 IPv4 では NUM_IN4_STATIC_ROUTE_ENTRY と個別に定義するように変更した。
NUM_REDIRECT_ROUTE_ENTRY を、 IPv6 では NUM_IN6_REDIRECT_ROUTE_ENTRY、 IPv4 では NUM_IN4_REDIRECT_ROUTE_ENTRY と個別に定義するように変更した。
if_ed.c で、受信するフレーム形式に関する変更を以下に示す。
SUPPORT_INET6 と SUPPORT_INET4 を指定したときは、自分の 他に、 ブロードキャストとマルチキャストを受信するように 設定する。
SUPPORT_INET6 のみ指定した時は、自分の他に、 マルチキャ ストのみ受信するように設定する。
SUPPORT_INET4 のみ指定した時は、 自分の他に、ブロードキャ ストのみ受信するように設定する。
TCP 通信端点に関する変更を以下に示す。
TCP 通信端点の定義は、TINET 内部の実装上、 IPv6 と IPv4 で区別しないように変更した。
TCP 通信端点構造体の大元の定義は、 t_tcp_cep と T_TCP_CEP である。
TCP 通信端点構造体の定義である IPv6 用の T_TCP6_CEP と IPv4 用の T_TCP4_CEP は、マクロで定義している。
静的 API の CRE6_TCP_CEP と CRE_TCP_CEP によって定義す る TCP 通信端点は、定義上別のオブジェクトとして識別する が、TCP 通信端点 ID の値は連続して割当てる。
TCP 通信端点配列 tcp_cep では、 IPv6 用と IPv4 用を区別 しない。なお、IPv4 用の T_TCP4_CEP によって定義する TCP 通信端点のエントリのメンバ flags(通信端点フラグ、 netinet/tcp_var.h 参照)には TCP_CEP_FLG_IPV4 を付加する。
TCP 通信端点 ID の最大値を表す変数 tmax_tcp_cep は IPv6 と IPv4 の合計(正確には tinet_cfg.c の定義を参照)であ る。 また、 IPv6 用の tmax_tcp6_cep と IPv4 用の tmax_tcp4_cep も tinet_cfg.c に出力し、SUPPORT_INET6 と SUPPORT_INET4 の両方を指定した場合に有効になる。
TCP 通信端点数を表すマクロ TNUM_TCP_CEPID に関して、 IPv6 用の TNUM_TCP6_CEPID と IPv4 用の TNUM_TCP4_CEPID の定義も追加し、 tinet_cfg.h(TOPPERS/ASP)、tinet_id.h (TOPPERS/JSP)に出力する。
一部の API では、IPv6 用の TCP 通信端点 ID と IPv4 用の TCP 通信端点 ID を区別して指定しなければならない。 異な る TCP 通信端点 ID が指定された場合は、エラー E_ID を返す。
TCP 受付口に関する変更を以下に示す。
TCP 受付口配列 tcp_rep は、 SUPPORT_INET6 と SUPPORT_INET4 の指定により、 マクロで定義し、 IPv6 用の tcp6_rep と IPv4 用の tcp4_rep を個別に割当てる。
TCP 受付口 ID の最大値を表す変数 tmax_tcp_rep は IPv6 と IPv4 の合計(正確には tinet_cfg.c の定義を参照)であ る。 また、 IPv6 用の tmax_tcp6_rep と IPv4 用の tmax_tcp4_rep も tinet_cfg.c に出力し、SUPPORT_INET6 と SUPPORT_INET4 の両方を指定した場合に有効になる。 マクロ で定義する。
TCP 通信端点数を表すマクロ TNUM_TCP_REPID に関して、 IPv6 用の TNUM_TCP6_REPID と IPv4 用の TNUM_TCP4_REPID の定義も追加し、 tinet_cfg.h(TOPPERS/ASP)、tinet_id.h (TOPPERS/JSP)に出力する。 これに伴い、 TCP_CFG_PASSIVE_OPEN の指定は不要になった。
UDP 通信端点に関する変更を以下に示す。
UDP 通信端点配列 udp_cep は、 SUPPORT_INET6 と SUPPORT_INET4 の指定により、 マクロで定義し、 IPv6 用の udp6_cep と IPv4 用の udp4_cep を個別に割当てる。
UDP 通信端点 ID の最大値を表す変数 tmax_tcp_rep は IPv6 と IPv4 の合計(正確には tinet_cfg.c の定義を参照)であ る。 また、 IPv6 用の tmax_udp6_cep と IPv4 用の tmax_udp4_cep も tinet_cfg.c に出力し、SUPPORT_INET6 と SUPPORT_INET4 の両方を指定した場合に有効になる。 マクロ で定義する。
UDP 通信端点数を表すマクロ TNUM_UDP_REPID に関して、 IPv6 用の TNUM_UDP6_REPID と IPv4 用の TNUM_UDP4_REPID の定義も追加し、 tinet_cfg.h(TOPPERS/ASP)、tinet_id.h (TOPPERS/JSP)に出力する。
SEM_UDP_CEP_LOCK
に関して、 IPv6 用の SEM_UDP6_CEP_LOCK
と IPv4 用の SEM_UDP4_CEP_LOCK
に変更した。
DTQ_UDP_RCVQ
に関して、 IPv6 用の DTQ_UDP6_RCVQ
と IPv4 用の DTQ_UDP4_RCVQ
に変更した。
IPv6/IPv4 デュアルスタック化に伴い、IPv6 と IPv4 で共通 に使用される関数等をマクロの設定で切り替えるソースファ イルを追加した。
バグフィックス(toppers-users 関係)
リトルエンディアンのプロセッサで、ICMP エラーの宛先アド レスのバイトオーダーが逆になる問題を修正した。
ICMP のエコー応答で、送信元アドレスを受信したメッセージ の宛先アドレスではなく、 自 IPv4 アドレスを設定するよう に修正した(toppers-users 4113)。
tcp_rcv_dat() をブロッキングして呼出し、 受信待ちの状態 で、相手から FIN セグメントを受信しても復帰しない事があ る問題を修正した(toppers-users 4351)。
tcp_cls_cep() をブロッキングして呼出し、切断しても、 コー ルバックされない問題を修正した(toppers-users 4612)。
送信ウィンドバッファの省コピー機能を有効にした時、 TCP の再送 制御が正しく動作しないことがある問題を修正した。
データリンク層のフレーム最短長を定義する IF_MIN_LEN を追加した。
イーサネットのフレーム最短長を定義する ETHER_MIN_LEN を追加した。
net/net.h からバイトオーダー関係の定義を net/net_endian.h に 分離しした。
受動オープンしていないポートに接続要求があった場合、 環境によっ ては例外が発生することがある問題を修正した。
ip_output.c で、SUPPORT_IPSEC の条件 if 文の表記を修正した。
TCP_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 の定義を追加した。
UDP で ICMP/ICMPv6 通知メッセージを処理するように変更した。た だし、通知メッセージは UDP で受信するが、その後の処理は未定である。
in_strtfn() で表示される TFN_TCP_CRE_REP を TEV_TCP_RCV_OOB に変更した。
in_strtfn() で表示される TFN_UDP_CRE_CEP を TEV_UDP_RCV_DAT に変更した。
tinet の独自 API として、 IPv6 アドレスを更新(登録されていな ければ追加)する関数 in6_upd_ifaddr を追加した。
乱数の更新に使用するため ETHER_CFG_COLLECT_ADDR を定義した。 指定すると一定周期(256 回のフレーム受信毎)に送信元の MAC ア ドレスにより乱数を更新する。
DHCP を使用するときに定義する DHCP_CFG を DHCP4_CLI_CFG に変 更した。 なお、DHCP_CFG を指定すると DHCP4_CLI_CFG も定義される。
DHCPv6 を使用するときに定義する DHCP6_CLI_CFG を追加した。
ppp_ccp.c から #include
を削除した。
TINET リリース 1.2 の tinet/doc/tinet-1.2.txt((リリース 1.1.1 からリリース 1.2 への移行[2004/7/27])の、「3. 変更推 奨項目」、(1) から (3) に述べられている以下のコンパイル時コン フィギュレーションパラメータと構造体名は「変更必須項目」になった。
NUM_IN4_ROUTE_ENTRY を定義するファイルを、 以下のように変更した。 tinet/netinet/in4_var.h → tinet/tinet_config.h
NUM_IN6_ROUTE_ENTRY を定義するファイルを、 以下のように変更した。 tinet/netinet6/in6_var.h → tinet/tinet_config.h
ARP の重複検出で、 自分と相手のアドレスが未定義の時は何もしな いように変更した。
in6.h に定義されているバイトオーダーに依存し、 特別なアドレス のチェックするマクロ(IN6_IS_ADDR_V4COMPAT 等)を in6_var.h に移した。
IPv6 ルータ通知を受信した時のログ情報を初めて受信した時のみ表 示するようにに変更した。
ICMPv6 でサポートしていないタイプのデータ蔵を受信した時の表示 のログ情報の重要度を LOG_NOTICE から LOG_INFO に変更した。
tinet.pdf、 「7.2 ファイルの作成、 設定」で、 $(APP_DIR) を $(APPLDIR) に変更した。
tinet.pdf、 「8.2 ファイルの作成、設定」で、$(APP_DIR) の記述 内容を変更した。
tinet_sample.pdf、「3. TINET コンフィギュレーションスクリプト のオプション」の記述を全面的に見直した。
Makefile に NO_USE_TINET_LIBRARY = true を指定して、 TINET のライブラリを作成しないようにした場合、リ ンクができない問題を修正した。
NE2000 互換 NIC(if_ed) 用イーサネットインタフェースドライバで、 送信するフレームのデータ部の長さが 46 オクテット未満の場合は、 データの終りからフレームの終わり(CRC を除く)まで 0 で埋める ように変更した。
ASP への対応に関する変更を以下に示す。
ASP 用 TINET において TCP ヘッダのトレース出力機能で、 TCP_CFG_TRACE を指定するとコンパイルできない問題を修正した。
ターゲット OS が ASP、ネットワーク層が IPv4 で、 データ グラムの分割・再構成行うことを指定する IP4_CFG_FRAGMENT を定義した時、SEM_IP4_FRAG_QUEUE が未定義のエラーとなる 問題を修正した。
if_loop.c を ASP に対応させた。
TINET のサンプルアプリケーションの Makefile を ASP のテ ンプレートディレクトリ sample の Makefile から生成する ように変更した。
ASP テンプレートディレクトリを指定するオプション -m
を tinet_asp_configure に追加した。
コンフィギュレータ(cfg)のパス名を指定するオプション -g
を tinet_asp_configure に追加した。
ASP-1.7 以降の cfg1_out.c への対応を行った。
ASP-1.8 以降の Makefile への対応を行うため、 。 Makefile.tinet の ASP 用 TINET コンフィギュレーションファ イルに関係するルール・変数等を変更した。 ASP-1.8 から $(LDFLAGS) と $(CFG1_OUT_LDFLAGS) の定義が別になった。 $(CFG1_OUT_LDFLAGS) が未定義であれば、 ASP-1.7 以前の処 理を行うように変更した。
tinet/tinet_asp.cfg に #include "target_sil.h" を追加した。
tinet/net/net.h のバイトオーダーの定義に関して、 ターゲッ トが ASP の場合、SIL_ENDIAN_BIG と SIL_ENDIAN_LITTLE の 定義を変更しないように修正した。 これに対応して、 _NET_CFG_BYTE_ORDER、 _NET_CFG_LITTLE_ENDIAN、 _NET_CFG_BIG_ENDIAN を定義し、 TINET の内部で、 SIL_ENDIAN、 SIL_ENDIAN_BIG、SIL_ENDIAN_LITTLE を参照し ないように修正した。
JSP への対応に関する変更を以下に示す。
JSP リリース 1.4.4 でコンパイルできない問題(Makefile の不整合)を修正した。
JSP テンプレートディレクトリを指定するオプション -m
を tinet_jsp_configure に追加した。
tinet_sample.pdf、「2. サンプルアプリケーションの構築」、 「(1) TINET コンフィギュレーションスクリプトの実行」、 「[2] TOPPERS/JSP 用 TINET コンフィギュレーションスクリ プトの実行」から、オプション -d を削除した。
Release 1.5.4 の Relase 1.5.3 との主な違い
TINETのサンプルアプリケーションのMakefileをASPのテンプレートディレクトリsampleのMakefileから生成するように変更した。
ASP-1.7以降のcfg1_out.cへの対応を行った。
ASP-1.8以降のMakefileへの対応を行うため、。Makefile.tinetのASP用TINETコンフィギュレーションファイルに関係するルール・変数等を変更した。ASP-1.8から$(LDFLAGS)と$(CFG1_OUT_LDFLAGS)の定義が別になった。$(CFG1_OUT_LDFLAGS)が未定義であれば、ASP-1.7以前の処理を行うように変更した。
tinet/tinet_asp.cfgに#include"target_sil.h"を追加した。
tinet/net/net.hのバイトオーダーの定義に関して、ターゲットがASPの場合、SIL_ENDIAN_BIGとSIL_ENDIAN_LITTLEの定義を変更しないように修正した。これに対応して、_NET_CFG_BYTE_ORDER、_NET_CFG_LITTLE_ENDIAN、_NET_CFG_BIG_ENDIANを定義し、TINETの内部で、SIL_ENDIAN、SIL_ENDIAN_BIG、SIL_ENDIAN_LITTLEを参照しないように修正した。
Release 1.5.3 の Relase 1.5.2 との主な違い
ターゲットOSがASP、ネットワーク層がIPv4で、データグラムの分割・再構成行うことを指定するIP4_CFG_FRAGMENTを定義した時、SEM_IP4_FRAG_QUEUEが未定義のエラーとなる問題を修正した。
tinet.pdf、「7.2 ファイルの作成、設定」で、$(APP_DIR)を$(APPLDIR)に変更した。
tinet.pdf、「8.2 ファイルの作成、設定」で、$(APP_DIR)の記述内容を変更した。
tinet_sample.pdf、「2. サンプルアプリケーションの構築」、「(1) TINETコンフィギュレーションスクリプトの実行」、「[2] TOPPERS/JSP用TINETコンフィギュレーションスクリプトの実行」から、オプション-dを削除した。
tinet_sample.pdf、「3. TINET コンフィギュレーションスクリプトのオプション」の記述を全面的に見直した。
リトルエンディアンのプロセッサで、ICMPエラーの宛先アドレスのバイトオーダーが逆になる問題を修正した。
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.5 の Relase 1.4.4 との主な違い
tinet.pdf、「7.2 ファイルの作成、設定」で、$(APP_DIR)の記述内容を変更した。
リトルエンディアンのプロセッサで、ICMPエラーの宛先アドレスのバイトオーダーが逆になる問題を修正した。
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 経由でアクセスするように修正した。
Newsletterのバックナンバーは
こちら
Tweets by ToppersJP