μNet3 バージョン3 更新履歴 - ver 3.13

返信する
アバター
eForce技術担当
記事: 193
登録日時: 2014年4月24日(木) 14:18

μNet3 バージョン3 更新履歴 - ver 3.13

投稿記事 by eForce技術担当 » 2015年8月19日(水) 11:18

2.xxから3.xxへのバージョンアップに伴う注意点
=============================================

μNet3のバージョン3はSNMP対応版のスタックです。本スタックは従来のスタックに
SNMPのMIB-IIの管理情報を集計する機能を追加しました。この追加にともない、
スタックの設定方法も仕様を追加しました。

1. 設定用ファイルにMIB-II用変数を追加
2. MIB-IIの管理情報の更新間隔
3. イーサネットドライバのコールバック関数

(1)スタックの設定ファイル(net_cfg.c)の仕様を変更しました。本バージョンでは
MIB-IIの管理情報用の変数を追加しました。サンプルプログラムのnet_cfg.cでは
最後の行に下記のコードを追加しています。ユーザーはこの内容を特に変更する
必要はありません。ただし、SNMPを使用する場合はgNET_STS_CFGの最後の要素に
SNMPのモジュールの関数(snmp_tcp_cbk)のポインタを代入してください。

/*******************************************
Status
********************************************/
/* Network device status */
static T_NET_STS_DEV net_cfg_sts_dev[CFG_NET_DEV_MAX];

-略-

/* Configuration */
extern void snmp_tcp_cbk(UH dev_num, UH evt, VP sts);

T_NET_STS_CFG gNET_STS_CFG = {
net_cfg_sts_dev, /* Network device */
net_cfg_sts_ifs, /* Interface table */
net_cfg_sts_ifs_tmp, /* Interface table (Temporary) */
net_cfg_sts_arp, /* ARP status */
net_cfg_sts_soc, /* Socket status */
net_cfg_sts_ptr, /* Status table */
net_cfg_sts_ptr_tmp, /* Status table (Temporary) */
#if 1
0 /* SNMPを使用しない場合 */
#else
snmp_tcp_cbk /* SNMPを使用する場合 */
#endif
};

(2)MIB-IIの管理情報の更新間隔の設定はスタックの設定ファイル(net_cfg.h)の
CFG_STS_UPD_RESに数値を設定してください。CFG_STS_UPD_RESの値は100(msec)より
大きい数値を100の倍数で設定します。たとえば、更新間隔を800msecにする場合は、
次のようにCFG_STS_UPD_RESを800にします。

#define CFG_STS_UPD_RES 800

(3)イーサネットドライバのコールバック関数はイーサネットのドライバがコールバック
に対応している場合のみ使用することができます。ユーザー定義のコールバック関数の
登録は設定ファイルの配列変数のgNET_DEVに関数ポインタを代入してください。設定例
は次のようになります。

T_NET_DEV gNET_DEV[] = {
{
-略-
eth_snd, /* Device Transmit */
apl_eth_cbk, /* Device Callback (ユーザー定義のコールバック関数) */
0,
{ 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC },
ETH_HDR_SZ,
CFG_NET_BUF_OFFSET
}
};

コールバック関数の仕様は次のようになります。アプリケーションへ通知する情報は
イーサネットの接続の状態のみです。

void apl_eth_cbk(UH dev_num, UH evt, VP sts)

dev_num : デバイス番号
evt : EV_CBK_DEV_LINK(イーサネットのリンク状態)のみ
sts : リンク状態のマクロ
PHY_STS_LINK_DOWN : 切断
PHY_STS_10HD : 接続( 10M/Half-Duplex)
PHY_STS_10FD : 接続( 10M/Full-Duplex)
PHY_STS_100HD : 接続(100M/Half-Duplex)
PHY_STS_100FD : 接続(100M/Full-Duplex)
PHY_STS_1000FD : 接続( 1G/Full-Duplex)


バージョンアップの履歴
========================

--------------------------------------------------------------------------------
2015/11/26 ver 3.13
--------------------------------------------------------------------------------
・POSIX_API_SUPを定義した時、EXT_ALOC_SUPを有効化しない様に修正しました。
・UDPの受信キューサイズをソケット単位で設定できるようにしました。

--------------------------------------------------------------------------------
2015/11/17 ver 3.12
--------------------------------------------------------------------------------
・受信したUDP/IPv6のチェックサム値が0だった場合はパケット破棄するようにしました。
・受信したICMPv6のチェックサムフィールドをクリアしてしまう不具合を修正しました。

--------------------------------------------------------------------------------
2015/10/16 ver 3.11
--------------------------------------------------------------------------------
・UDPソケットでの送信処理で設定するチェックサムの計算結果が0x0000である場合、
0xFFFFに再設定していないという問題があり、これを修正しました。
・送信パケットのフラグメント発生時にSWチェックサムを行うように修正しました。

--------------------------------------------------------------------------------
2015/05/26 ver 3.10
--------------------------------------------------------------------------------
・BSDソケットに受信データがある状態で、アプリが受信する前にリモートからTCPを
閉じると既に受信データが取得できない不具合がありこれを修正しました。
・μNet3 Standardのコンフィグレータ対応に伴い、現行Compactの時のみ
定義が有効となっている「T_SOC_TABLE」構造体の制限プリプロセッサを解除しました。
・アプリケーション用にARPキャッシュ設定関数(arp_set())とARPキャッシュ参照関数
(arp_ref())、それとARPリクエスト送信関数(arp_req())を追加しました。

--------------------------------------------------------------------------------
2015/04/01 ver 3.09
--------------------------------------------------------------------------------
・本バージョンよりネットワークアプリケーションの更新履歴をuNet3_NetApp.txtへ
記載するようにしました。
・RZ/T1向けのハードウェアチェック処理を修正しました。
・BSDソケットオプション(IP_ADD_MEMBERSHIP/IP_DROP_MEMBERSHIP)にて、対象のマルチ
キャストIPアドレスのエンディアンに誤りがあったため修正しました。
・BSDソケットのlisten関数で、ソケット数の上限によりバックログを生成できなかった
場合にlisten状態が解除される問題を修正しました。
・BSDのTCPソケットに対してlistenを行った場合、メモリリークが発生していたため修正
しました。
・ソケットAPIをノンブロッキングからブロッキングに設定する際に、該当APIが待ち状態
でも設定可能となっていたため禁止にしました。この時cfg_soc()はE_OBJを返却します。
・μNet3/BSDがμNet3/Compactに対応しました。

--------------------------------------------------------------------------------
2015/02/06 ver 3.08
--------------------------------------------------------------------------------
・UDPソケットのポート番号変更時の重複チェックに誤りがあったため、異なるデバイスに
接続済みで同じポート番号のUDPソケットがあるとエラーになっていたので修正しました。
・FTPサーバからファイルをダウンロードする場合で、送信データが複数のTCPセグメント
を跨いだ場合に一部データが欠損する不具合を修正しました。
・FTPサーバのCDコマンド、LISTコマンドのレスポンス文字列を修正しました。
・IPv4パケットの転送機能を実装しました。
・FTPサーバーの終了関数を追加しました。
・net_strlib.hにNULL定義を追加しました。

--------------------------------------------------------------------------------
2014/12/17 ver 3.07.2
2014/11/04 ver 3.07.1
--------------------------------------------------------------------------------
・μNet3の内部のチック時間(秒)を参照する関数get_net_sec()を新規で追加しました。
・DHCPサーバを拡張しました。
DHCP RELEASEの受け入れ機能
任意オプションを設定する機能追加
リースIPの数を任意に設定できるように修正
・BSDソケットの内部処理を修正しました。
・ソケットAPIが待ち状態の時に、該当するAPIのノンブロッキング(ブロッキング)設定を
禁止にしました。この時cfg_soc()はE_OBJを返却します。
・TCPソケットがSYN_RECEIVED状態の時に、cls_soc()を実行しても切断できない不具合を
修正しました。
・UDPソケットのcls_soc()時に受信していたパケットを破棄する仕様を追加しました。
・DNSクライアントが一度不要なパケットを受信してしまうと、それ以降名前解決できな
くなる不具合を修正しました。
・一部のデータ定義を公開ヘッダから内部ヘッダに移動しました。それに伴い各ソースの
インクルードファイルを修正しました。本修正によるアプリケーションへの影響は
ありません。
・HTTPサーバーの終了関数を追加しました。

--------------------------------------------------------------------------------
2014/08/21 ver 3.06
--------------------------------------------------------------------------------
・μNet3の終了処理でセマフォの解放漏れが発生する問題を修正しました。この問題は
バージョン2.xxをご使用の場合は発生しません。(v3.xxで追加されたセマフォで発生
する問題です。)
・HTTPサーバー制御情報のポート番号(T_HTTP_SERVER::Port)が実際のリスンポートの
値と同期が取れていない問題を修正しました。


--------------------------------------------------------------------------------
2014/07/31 ver 3.05
--------------------------------------------------------------------------------
・BSDソケットAPIでタイムアウトした場合にAPIが戻ってこなくなる不具合がありこれを
修正しました。

・複数デバイス上で動作するBSDアプリケーションのbindが正常に動作しない不具合を修正
しました。

・BSDソケットAPIにgetifaddrs()、freeifaddrs()を追加しました。

・受信タスクよりも低い優先度のアプリがTCPソケットのrcv_soc()で待ち状態である時に
短い間隔でデータとFINを受信すると、rcv_soc()の戻り値が受信データ長ではなくFIN
受信を表す0になる不具合を修正しました。


--------------------------------------------------------------------------------
2014/07/10 ver 3.04
--------------------------------------------------------------------------------
・TCPヘッダのパディング領域の値が0になるように修正しました。

・複数のMACデバイスを持つホスト上でBSDラッパーを使ってbind()を実行した場合に、
特定のデバイスに割り当てられないことがあったので修正しました。

・ネットワークアプリ(NetApp)におけるGCCコンパイラのWarningに対処しました。
(base64calc.c, dhcp_server.h, ftp_client.c, ftp_client.h, ftp_server.c,
http_client.c, net_strlib.c, smtp_client.c, sntp_server.c, telnet_server.c)

・SNMPの不具合を修正しました。不具合の詳細はSNMPの更新履歴(uNet3_SNMP.txt)の
Version 1.0.4をお読みください。


--------------------------------------------------------------------------------
2014/06/24 ver 3.03
--------------------------------------------------------------------------------
・SNMPの不具合を修正しました。不具合の詳細はSNMPの更新履歴(uNet3_SNMP.txt)の
Version 1.0.3をお読みください。

・SNMPの不具合修正に合わせるため、TCP/IPプロトコルスタックのSNMPに関する
処理を変更しました。その他の処理に変更はありません。

・下記サンプルのThumb版がビルドできない不具合を修正しました。修正はCCSの
プロジェクトファイルに適用しました。

BEAGLEBONE.BSD BEAGLEBONE.NETPRO BEAGLEBONE.SNMP
EVMAM3358.BSD EVMAM3358.NETPRO

--------------------------------------------------------------------------------
2014/06/10 ver 3.02
--------------------------------------------------------------------------------
・SNMPの不具合を修正しました。MIB-2のInterfaceグループのifPhysAddress(
MACアドレス)をSNMPのマネージャーに通知するとき、そのMACアドレスが誤っている
不具合を修正しました。本不具合はMACアドレスに0x00が含まれている場合のみ発生
します。たとえば、MACアドレスが次の例の場合、0x00以降の数値をマネージャーに
通知しない不具合です(MACアドレスは0x12, 0x34, 0x56, 0x78のみを通知します)。

0x12, 0x34, 0x56, 0x78, 0x00, 0x67

・下記のテキストファイルの文字コードをUTF-8からShift-JISに変更しました。テキスト
ファイルの文字コードをShift-JISに統一するために変更しました。また、SNMPの
サンプルのreadme.txtの実行例の説明が実際の実行と異なっているので修正しました。

Document/uC3Std_CortexA_CCS.txt
Document/uNet3.txt
Document/uNet3_SNMP.txt
Sample/EVMAM3358.SNMP/readme.txt
Sample/EVMSKAM3358.SNMP/readme.txt

・OSとTCP/IPプロトコルスタックに変更はありません。

--------------------------------------------------------------------------------
2014/05/15 ver 3.01
--------------------------------------------------------------------------------
・SNMPのモジュールへUDPのポートの情報を正確に送信しない不具合を修正しました。
・net_memset(),net_memcpy(),net_memcmp()の型をANSI-C仕様に合わせて修正しました。
・マルチキャストグループを特定したIGMPクエリを受信した場合にグループに参加して
いてもレポートを送信しない不具合を修正しました。
・ACD機能のARP Probe送信待ち時間の最大と最小に同じ値を設定した場合に0除算が発生
する可能性があったため修正しました。
・μNet3/Professionalネットワークアプリ、 BSDソケットAPIラッパーを追加しました。

--------------------------------------------------------------------------------
2014/04 ver 3.00
--------------------------------------------------------------------------------
・SNMPのMIB-IIの管理情報を集計する機能を追加しました。
・イーサネットドライバにユーザーのコールバック関数を追加しました。
・マルチドライバの対応に伴いネットワークデバイス情報構造体(struct t_net_dev)の
メンバにオプション情報(VP opt)を追加しました。
・ヘッダファイルの構成を変更しました。
Network\inc\
net_hdr.h : 公開ヘッダ
net_def.h : 内部ヘッダ(追加)
net_sup.h : 内部コンフィグレーション(追加)
net_sts.h : 統計情報用ヘッダ(追加)
ユーザアプリケーション
net_cfg.h : ユーザコンフィグレーション

返信する