================================================================================

                     μNet3 TCP/IPプロトコルスタック

                Copyright (c) 2008-2015, eForce Co., Ltd.

================================================================================

  本ファイルはTCP/IPプロトコルスタックの更新履歴とユーザーズガイドの補足を
  説明します。
  ネットワークアプリケーション(NetApp)に関する更新履歴は「uNet3_NetApp.txt」に
  記載されています。


 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)

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

  μNet3のバージョン2.xxから次の機能が追加されました。

    1. TCP-KeepAliveの送信機能
    2. 無効なUDPポートにパケットを受信した場合のICMP PortUnreachable送信機能
    3. 受信パケットに対するチェックサム検出の有効・無効検出設定機能
    4. ネットワークアプリケーションの追加

  これらの機能追加に伴って、コンフィグレーション可能な項目が追加されました。
  具体的にはソースコード「net_cfg.c」に定義するコンフィグレーションパラメータ
  (struct t_net_cfg)にメンバが追加されました。
  バージョンアップ後も同じパラメータを引き続きご使用される場合には、パラメータ
  の数や定義位置にご注意下さい。
  新たに追加されたパラメータは以下の4つです。

        T_NET_CFG gNET_CFG[]  = {
                  :
                  :
            CFG_TCP_KPA_CNT,
            CFG_TCP_KPA_INT,
            CFG_TCP_KPA_TMO,
                  :
            CFG_PKT_CTL_FLG
        }

  μNet3/Compactではコンフィグレータバージョン3でソースを生成して下さい。
  μNet3/Standardをご使用の場合は、サンプルフォルダに収録されているnet_cfg.cを
  基本にコンフィグレーションを行って下さい。
  すでにバージョン2.xxをご使用の場合は特に問題ありません。


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

--------------------------------------------------------------------------------
2015/12/24      ver 3.14
--------------------------------------------------------------------------------
・ソケットIDの型定義が"ID型"や"UH型"など、統一されていない問題があったため
  新しくSID型を定義して型統一を実施しました。
・cls_soc()でUDPソケットの受信キューをフラッシュする際、キューサイズの設定値を
  デフォルト値にしていたものを、設定値を反映するように修正しました。

--------------------------------------------------------------------------------
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 : ユーザコンフィグレーション

--------------------------------------------------------------------------------
2014/03         ver 2.07
--------------------------------------------------------------------------------
・タイマタスクのカウンタの桁あふれによってタイマ制御機能が停止する不具合を修正
  しました。
  このカウンタはnet_ini()実行後約50日経過すると桁あふれが発生します。これによって
  タイマ制御機能が停止した場合、次のプロトコルの動作に影響があります。

    - IP
      フラグメントされたIPパケットを受信したあと、残りの分割パケットが不達状態に
      なるとタイムアウトによる待ち解除できなくなります。
      この場合受信パケットが解放されることが無いため、ネットワークバッファ不足や
      テーブル枯渇によってフラグメントパケットの受信ができなくります。

    - ARP
      応答が得られないARP解決を行った場合、ARPリクエストのリトライやタイムアウト
      による破棄ができなくなります。またTTLによるARPエントリのリフレッシュができ
      ないため特定のMACアドレスから導くIPアドレスが常に同じものになります。
      もしARPエントリテーブルに空きが無くなると、エントリに存在しない新たなMACア
      ドレスの解決ができなくなるのでsnd_soc()やTCPのcon_soc()がエラーになります。

    - TCP
      TCPの各種タイマが動作しなくなり次の機能が作動しなくなります。
      ・接続タイムアウト(SYN送信時のACK受信待ちタイムアウト)
      ・切断タイムアウト(FIN送信時のACK受信待ちタイムアウト)
      ・送信タイムアウト(データ送信時のACK受信待ちタイムアウト))
      ・遅延ACK(受信データをアプリが即座にrcv_soc()しない場合に送信するACK)
      ・再送(SYN/FIN/データ送信時のRTOによるリトライ送信)
      ・Zero Window Probe/Keep Aliveの送信

    - IPv6
      応答が得られない近隣探索を行った場合、要請のリトライやカウンタによる破棄が
      できなくなります。
      各種キャッシュのTTLによるリフレッシュができなくなります。


    尚、IGMPマルチキャストレポート送信時のディレイ、ソケットAPIのタイムアウトは
    本不具合による影響ありません。


--------------------------------------------------------------------------------
2014/02         ver 2.06
--------------------------------------------------------------------------------
・乱数生成シードに使用するMACアドレスをベンダーコード部を避けるよう、修正しました。
・ARP解決中にパケット送信を中断した場合、即座に送信パケットのネットワークバッファ
  をARPテーブルから削除し解放するように修正しました。
・リンクデバイスごとに定義可能なバッファオフセット値(CFG_NET_BUF_OFFSET)にユーザが
  2より大きい値を設定した場合、IPリアセンブル処理でメモリ破壊を引きおこす可能性が
  あったため、この不具合を修正しました。
・cfg_soc()でTCPソケットのローカルポートを変更した場合、能動接続時に設定値が反映
  されないケースがあったため、この不具合を修正しました。
  本不具合が発生するケースは次の通りです。またTCPの受動接続とUDPソケットに関しては
  不具合が発生することはありません。
    1)ローカルポートに0(自動設定)を指定して生成したTCPソケットに対し、cfg_soc()で
      0以外の任意のポート番号を設定し、con_soc()で能動接続をすると設定値が反映さ
      れず自動設定値となる。
    2)ローカルポートに0以外を指定して生成したTCPソケットに対し、cfg_soc()で0(自動
      設定)を設定し、con_soc()で能動接続をすると生成時のポート番号のままとなる。
・プロトコルスタックの起動後すぐにTCPを能動接続した場合、送信するSYNのシーケンス
  番号(ISS)に偏りがあったためこれを修正しました。
・カーネルに依存しないようにμNet3が使用していたシステムコールをdly_tsk()から
  tslp_tsk()に変更しました。
・１つのUDPソケットに対して複数のタスクから送信を行う場合、先行のsnd_soc()が待ち
  状態中で且つ別のネットワーク関連のタスク(μNet3のタスクやEtherドライバタスク)が
  実行中に後発のsnd_soc()が割り込むと、送信完了を契機としたsnd_soc()の待ち解除
  制御の誤りにより、後発のsnd_soc()が送信完了待ちから復帰しなくなる不具合を修正
  しました。
・インターフェースのバインディングを指定していないUDPソケットに対して制御コード
  SOC_ABT_CLSもしくはSOC_ABT_ALLを指定してabt_soc()を実行すると不測のアドレスを
  参照する不具合を修正しました。
・ICMPv6 Destination Unreachableメッセージで送信するペイロードが受信したパケット
  をバイトオーダーについて編集したものになっていたためこれを修正しました。

--------------------------------------------------------------------------------
2013/07         ver 2.05
--------------------------------------------------------------------------------
・複数のネットワークインターフェースがある場合、それぞれのインターフェースに手動
  でIPv6ユニキャストアドレス・ルータアドレスを設定できるようにしました。
・TCPのFINを受信した時に、そのパケットのシーケンス番号が期待した値よりも大きく
  なおかつペイロードが無い場合、μNet3はFINを受け入れた上に誤った再送を要求して
  いた不具合を修正しました。この不具合では、FINの直前のパケットをロストした場合に
  発生しロストしたパケットを取得せずにソケットはCLOSE_WAIT状態になってしまいます。
・TCPのソケットに対してrcv_soc()中にabt_soc(SOC_ABT_CON)を発行した場合、TCPはRST
  を送信して強制終了しますが、rcv_soc()APIは終了しない不具合を修正しました。
  またTCPのセッション確立後、snd_soc()やrcv_soc()などの通信APIが実行されていない
  状態でもabt_soc(SOC_ABT_CON)を発行した場合は強制終了していましたが、これを引数
  のcodeで指定した動作が行われていない場合には即座にE_OKを返却する動作としました。

--------------------------------------------------------------------------------
2013/05         ver 2.04
--------------------------------------------------------------------------------
・マルチキャストグループテーブルに登録されたアドレスに対して、Joinレポートを送信
  する際にデバイス数分テーブルを参照し、誤ってすべてのデバイスからJoinレポートを
  送信していたのものを修正しました。
・HTTPサーバが受信バッファ一杯のコンテンツを受信した際、NULL終端の設定処理で受信
  バッファ外に書き込みを行う処理があったのでこれを修正しました。

--------------------------------------------------------------------------------
2013/02         ver 2.03
--------------------------------------------------------------------------------
・TCPのSYN_RCV状態でSYNフラグが立っているパケットを受信するとTCP状態はLISTENに
  戻るがcon_soc()はエラーを返してしまい、以降ソケットAPIからそのソケットへのアク
  セスができなくなる不具合を修正しました。
・DNSクライアントのパケット解析処理で不要な変数参照処理があったため無くしました。
・HTTPコンテンツ構造体のパスとContents-Typeを表すメンバの型を固定長の配列から
  ポインタ変数に修正しました。

--------------------------------------------------------------------------------
2013/01         ver 2.02
--------------------------------------------------------------------------------
・IPバージョンの異なるUDPソケットならポート番号が重複することを許可するように
  修正しました。
・net_strcpy(), net_strcat()でdst側の文字列をNULL終端するように修正しました。

--------------------------------------------------------------------------------
2012/12         ver 2.01
--------------------------------------------------------------------------------
・IPv4とv6のソケットを同じポートで待ち受けていた場合にIPv4で受信したパケットを
IPv6のソケットへ通知することがあったのでこれを修正しました。
・μNet3/Compactでデバイスを特定しないTCPソケットを定義し、そのソケットをサーバ
モードで接続した場合に、送信バッファサイズと受信バッファサイズの設定値が、SYNを
受信したデバイスの設定値で更新される不具合があったのでこれを修正しました。
(これはμNet3/Standardの仕様動作で、Compactの場合はコンフィグレータで設定した
バッファサイズをプログラムで更新することはできません。)

--------------------------------------------------------------------------------
2012/10         ver 2.00
--------------------------------------------------------------------------------
・TCP Keep-Aliveの送信が可能となるよう修正しました。
・未使用ポート宛てのUDPパケット受信時にICMP Port Unreachableの送信が可能となるよ
  う修正しました。
・受信パケットのチェックサム値判定をコンフィグレーションでスキップできる機能を
  追加しました。
・デフォルトの状態でACD機能を有効にし、アドレス競合検出時のアプリケーションへの
  通知有無をコンフィグレーションで設定できるように修正しました。
・NetworkサンプルアプリにPing Clientを追加しました。
・NetworkサンプルアプリにSNTP Clientを追加しました。
・Networkサンプルアプリに拡張版DHCP Clientを追加しました。
・すべてのソースファイルから終了コード(EOF/0x1A)を削除しました。
・プロトコルスタックから標準ライブラリ関数(memcpy, memset, memcmp)を直接使用せず
  ユーザ定義関数(net_memcpy, net_memset, net_memcmp)を呼ぶように修正しました。
・Networkサンプルアプリで標準ライブラリ関数(strxxx)を使用しないようにしました。



--------------------------------------------------------------------------------
2012/10         ver 1.15
--------------------------------------------------------------------------------
・TCPのSYN受信時にオプションヘッダを取得する際、適正なオプションヘッダ長の4倍の
  長さで参照し、その結果無効なデータ読み込んでいたのでこれを修正しました。
・ARP解決中に複数の同じIP宛てのパケットを送信した際、アドレス解決後の送信順序が
  新しい順になっていたので、これを古い順(送信した順)に送信するように修正しました。

--------------------------------------------------------------------------------
2012/09         ver 1.14
--------------------------------------------------------------------------------
・管理情報gNETの初期化処理で0クリアする領域のサイズに誤りがあったため修正しました。
・TCP受信を契機とするRST送信処理でRSTパケットの内容に誤りがあったため修正しました。

--------------------------------------------------------------------------------
2012/08         ver 1.13
--------------------------------------------------------------------------------
・TCPの送信にてネットワークバッファが取得できなかった場合にリトライ制御が行われ
  ない不具合を修正しました。
・DHCPクライアントのパケット解析処理で不要な変数参照処理があったため無くしました。
・HTTPサーバーが使用する送受信用バッファをアプリケーションから起動パラメータで
  設定できるようにしました。また設定可能なバッファサイズの上限を64Kbyteから4Mbyte
  に変更しました。
・HTTPサーバーが返却するエラーレスポンスの内容をコンテンツにも設定するように修正
  しました。(ブラウザによってはレスポンスコードのみではエラーが表示されないため)

--------------------------------------------------------------------------------
2012/07         ver 1.12
--------------------------------------------------------------------------------
・HTTPサーバーで分割されたHTTPヘッダを読み込めず受信し続ける不具合を修正しました。
・HTTPサーバーで受信バッファを超えるコンテンツを受信した場合、バッファ外にコピー
  してしまう不具合を修正しました。
・TCPを送信クローズした状態でFINフラグがセットされたデータを受信すると、ネット
  ワークバッファを重複して解放してしまう不具合を修正しました。
・DNSクライアントで不正なフォーマットの応答を受信した時に領域外のメモリを参照して
  しまう不具合を修正しました。
・コンパイラ依存によりstrncasecmp()の使用を変更。またレスポンスコード200と404の
  説明を一般的なものに変更しました。
・ACD有効時、アドレス競合検出のコールバック関数未設定の場合に、GARPに対し応答し
  ない動作を修正しました。
・HTTPサーバーでTCPのセグメントを跨ぐコンテンツを受信した場合後から受信したコン
  テンツの内容が先に受信したコンテンツの内容を上書く不具合を修正しました。

--------------------------------------------------------------------------------
2012/06         ver 1.11
--------------------------------------------------------------------------------
・SYN再送中にネットワークバッファが取得できなかった時に、シーケンス番号が加算され
  る不具合を修正しました。
・ARP AnnounceパケットのTHAをFF.FF.FF.FF.FF.FFから0.0.0.0.0.0に修正しました。

--------------------------------------------------------------------------------
2012/05         ver 1.10
--------------------------------------------------------------------------------
・DHCPクライアントのメモリ取得エラー、コンフィグレーションエラー発生時の後処理を
修正しました。

--------------------------------------------------------------------------------
2012/04         ver 1.09
--------------------------------------------------------------------------------
・DNSクライアントの接続先設定でデフォルトのデバイス番号を使用するようにしました。
・HTTPサーバーのヘッダ解析処理で大文字・小文字を区別しないように修正しました。

--------------------------------------------------------------------------------
2011/12         ver 1.08
--------------------------------------------------------------------------------
・RFC5227 IPアドレス競合検出機能を実装しました。
・ソケット生成後もローカルポートを変更できるようにしました。
・ISSの値をセッションごとに乱数で生成するようにしました。
・TCP/ARP/IPのタイマ処理で余分な処理をしないよう実行間隔を修正しました。
・net_ext()でTCP/IPタスクを強制終了するように修正しました。

--------------------------------------------------------------------------------
2011/08         ver 1.07
--------------------------------------------------------------------------------
・ICMPソケットの受信キュー制御の不具合を修正しました。
・TCPを使用しない場合はTCP制御テーブル(gNET_TCP)未定義でも起動するようにしました。

--------------------------------------------------------------------------------
2011/05         ver 1.06
--------------------------------------------------------------------------------
・UDPソケットで受信パケットをキューイングできるように修正しました。
・IPv6スタックを複数のネットワークインターフェースで動作するように対応しました。
・IPv6のTCPソケットはIPv6用MSSコンフィグレーションを使用するようにしました。
・ARPを伴うパケットフラグメント送信を行った場合にsnd_soc()が終了しない不具合を
  修正しました。
・イベントパターンが０の場合でもソケットのコールバック関数を呼ぶ不具合を修正しま
  した。
・IPv6スタックによる自動応答時の送信元アドレス選択の不具合を修正しました。
・μNet3/Compact-IPv6でIPv6未使用の場合でもRSが送信される不具合を修正しました。
・異常フラグメントパケット受信時に発生していたIPv6スタックのメモリリークを修正し
  ました。
・ブロッキングモードで送信するデバイスに対応しました。
・TCPソケットでSYN/ACK送信後にRSTを受信した場合con_soc()が終了する不具合を修正し
  ました。
・IPv6パケット受信時のソケット選択処理でソケットのバージョンを確認するように修正
  しました。
・ネットワークバッファオフセット位置、TCPソケット上限数をコンフィグレーション可能
  な設定に対応しました。
・DHCPクライアントソケット生成エラー時のバッファ解放漏れを修正しました。

--------------------------------------------------------------------------------
2010/12         ver 1.05
--------------------------------------------------------------------------------
・dns_query()の戻り値を修正しました。
・tcp_seq_chk()のチェック処理を修正しました。
・通知するコールバックイベントを登録イベントから待ちイベントに修正しました。
・IPv6のサポートコードを追加しました。
・ソケットに対して任意のネットワークインターフェースの設定が可能としました。
・con_soc()時にデバイス設定からIPヘッダTOS/TTLを使用する条件を変更。

--------------------------------------------------------------------------------
2010/09         ver 1.04
--------------------------------------------------------------------------------
・ディレクティッド・ブロードキャストの送信に対応しました。
・ref_soc()にSOC_RCV_PKT_INFによるT_RCV_PKT_INF参照機能を追加しました。
・ip_aton()のパラメータチェックを強化しました。
・IGMP ランダムレポートの送信に対応しました。
・マルチキャスト送受信の不具合を修正。
  (IGMP General Query, IGMP Leave Message DST MAC Address order)
・abt_soc()不具合修正。
・SYN再送中のシーケンス番号(una,nxt)の再設定処理追加。

--------------------------------------------------------------------------------
2010/06         ver 1.03
--------------------------------------------------------------------------------
・IPソースアドレス"0.0.0.0"のパケットを受信可能としました。


--------------------------------------------------------------------------------
2010/05         ver 1.02
--------------------------------------------------------------------------------
・PPPインタフェース対応
・TCPソケットのローカル・ポート番号にPORT_ANYが設定されている時、con_soc()は常に
  同じローカル・ポート番号を使っていました。これを毎回異なる値を使うように修正し
  ました。


--------------------------------------------------------------------------------
2009/12         ver 1.01
--------------------------------------------------------------------------------
・STM32ハードウェアチェクサームOffloading対応
・RVDS, CCS Compiler対応


--------------------------------------------------------------------------------
2008/04         ver 1.00
--------------------------------------------------------------------------------
・ファーストリリース
