(57)【要約】  【課題】  少ない記憶容量でＳＮＭＰの処理を行うことができる半導体集積回路を提供する。  【解決手段】  このＳＮＭＰ処理回路１５は、変数記録部２１と、バッファメモリ２２と、メッセージ受信処理部２３と、基本情報抽出処理部２４と、変数抽出処理部２５と、回答作成処理部２６と、メッセージ作成処理部２７と、メッセージ送信処理部２８とを具備する。基本情報抽出処理部２４は、基本情報をヘッダが格納されている第１の領域に移動させる。変数抽出処理部２５は、複数の変数を解釈して、第１の領域の後に続く第２の領域に書き込む。回答作成処理部２６は、複数の変数にそれぞれ対応する複数の値を変数記録部２１から読み出して、バッファの末尾の第３の領域に書き込む。メッセージ作成処理部２７は、回答としての基本情報を作成し、第３の領域の前の第４の領域に書き込むことにより、回答としてのＳＮＭＰメッセージを作成する。【選択図】  図２
2006042288.tif 000002
【特許請求の範囲】
【請求項１】
ＳＮＭＰ（Simple Network Management Protocol）処理を行うための半導体集積回路であって、
ＳＮＭＰの管理対象である複数の変数の値を記録するための変数記録部と、
フレーム、パケット、及び／又は、データグラムをそれぞれ格納するための複数のバッファを有するバッファメモリと、
前記複数のバッファの中の１つのバッファに第１のＳＮＭＰメッセージを含むフレーム、パケット、及び／又は、データグラムが下位レイヤによって書き込まれた場合に、前記下位レイヤからその旨の通知を受けるためのメッセージ受信処理部と、
前記第１のＳＮＭＰメッセージの中の基本情報を、前記１つのバッファ内のフレーム、パケット、及び／又は、データグラムの中のヘッダが格納されている領域の全部又は一部である第１の領域に移動及び／又はコピーするための基本情報抽出処理部と、
前記第１のＳＮＭＰメッセージの中のVariable Bindings内の複数の変数を解釈して、前記第１の領域の後に続く第２の領域に書き込むための変数抽出処理部と、
前記第２の領域内に格納されている複数の変数にそれぞれ対応する複数の値を前記変数記録部から読み出し、前記第２の領域内に格納されている複数の変数にそれぞれ対応させて前記第１のＳＮＭＰメッセージへの回答としてのVariable Bindingsを作成し、前記１つのバッファの末尾の第３の領域に書き込むための回答作成処理部と、
前記第１の領域内に格納されている基本情報に基づいて前記第１のＳＮＭＰメッセージへの回答としての基本情報を作成し、前記第３の領域の前の第４の領域に書き込むことにより、前記第１のＳＮＭＰメッセージへの回答としての第２のＳＮＭＰメッセージを作成するためのメッセージ作成処理部と、
前記第２のＳＮＭＰメッセージが作成された旨を前記下位レイヤに通知するためのメッセージ送信処理部と、
を具備する半導体集積回路。
【請求項２】
前記第１又は第２のＳＮＭＰメッセージ内の基本情報が、バージョン、コミュニティ、ＰＤＵ（Protocol Data Unit）、リクエストＩＤ、エラーステータス、及び／又は、エラーインデックスを含む、請求項１記載の半導体集積回路。
【請求項３】
前記複数のバッファが固定長である、請求項１又は２記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＮＭＰ（Simple Network Management Protocol）処理を行うための半導体集積回路に関する。
【背景技術】
【０００２】
現在、インターネット、ＬＡＮ（Local Area Network）等において、ＴＣＰ／ＩＰと呼ばれる通信プロトコルの階層モデルが広く用いられている。図６は、ＴＣＰ／ＩＰ階層モデルの各レイヤとＩＳＯ（International Organization for Standardization）で制定されたＯＳＩ（Open Systems Interconnection）参照モデルの各レイヤとのおおよその対応関係を示す図である。
【０００３】
ＴＣＰ／ＩＰ階層モデルを用いた装置の通信に関する状態を管理するためのプロトコルとして、ＳＮＭＰ（Simple Network Management Protocol）が広く用いられている。なお、ＳＮＭＰは、ＲＦＣ（Request For Comments）１１５７、１９０１、１９０２等で規定されている。
図６に示すように、ＳＮＭＰは、ＴＣＰ／ＩＰ階層モデルのアプリケーション層に相当するプロトコルであり、下位レイヤ（トランスポート層）としてＵＤＰ（User Datagram Protocol）を利用する。ＵＤＰは、下位レイヤ（インターネット層）としてＩＰ（Internet Protocol）を利用する。また、ＩＰは、下位レイヤ（ネットワークインタフェース層）として種々のものを利用可能であるが、一般に、Ethernet（登録商標）が広く用いられている。
【０００４】
ＳＮＭＰにおいて、他の装置を管理するための装置は、ＳＮＭＰマネージャと呼ばれ、ＳＮＭＰマネージャによって管理される装置は、ＳＮＭＰエージェントと呼ばれる。
ＳＮＭＰエージェントは、ルータ、ブリッジ等であることが多く、これらの機器において低コストでＳＮＭＰを実現するため、ＳＮＭＰの処理を行うための半導体集積回路が用いられるようになってきている。なお、このようなＳＮＭＰの処理を行うための半導体集積回路は、ＵＤＰ、ＩＰ、及び、Ethernet（登録商標）の機能を併せて有する場合もある。
【０００５】
ＳＮＭＰの機能を有する半導体集積回路においては、Ethernet（登録商標）フレーム、ＩＰデータグラム、ＵＤＰデータグラム、及び／又は、ＳＮＭＰメッセージを受信するための受信バッファ及び送信するための送信バッファとは別に、ＳＮＭＰメッセージを作成するための作業領域が必要である。一般には、受信バッファとして５１２バイト程度、作業領域として４０バイト程度、送信バッファとして５１２バイト程度が必要である。
このように、ＳＮＭＰの機能を有する半導体集積回路においては、大量のメモリを必要とするため、コストが高くなってしまっていた。
【０００６】
ところで、ネットワークプロトコルを用いて情報を相手機側へ送信する装置において、送信バッファと受信バッファを別々に設け、相手機側から直前の送信情報の再送信を要求された場合、現在の送信バッファの内容より再送信情報を直接再構成して、相手機側へ送信するとともに、相手機側より認識不可や現在受付不可の信号を受信した場合、受信バッファの内容より拒絶信号を受信バッファ内で再構成して受信バッファから相手機側へ送信し、送信バッファの内容は保持しておくことを特徴とする情報観測伝送装置が知られている（例えば、特許文献１参照）。
しかしながら、特許文献１に掲載された情報観測伝送装置は、システムに必要なＲＡＭ容量を削減するものであるが、ＳＮＭＰの処理に関するものではない。
【０００７】
また、ネットワークから受信したパケットからポイント・ツー・ポイント・プロトコル・ヘッダ情報を選択的に分離するためのシステムであって、パケットを受信し、そこから、パケットに関して使用したサブプロトコルを識別するサブプロトコル検出装置と、サブプロトコル検出装置に接続していて、サブプロトコルの識別に基づいて、パケットからポイント・ツー・ポイント・プロトコル・ヘッダ情報の少なくとも一部を分離し、そうすることにより、パケットの全体のサイズを小さくするヘッダ分離装置とを備えるシステムが知られている（例えば、特許文献２参照）。
しかしながら、特許文献２に掲載されたシステムは、パケットからポイント・ツー・ポイント・プロトコル・ヘッダ情報の少なくとも一部を分離し、そうすることにより、パケットの全体のサイズを小さくし、システム・バスの有効帯域幅を広くするものであるが、ＳＮＭＰの処理に関するものではない。
【０００８】
【特許文献１】特開２００１−１２７７９２号公報
【特許文献２】特開２００１−６０９８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、上記の点に鑑み、本発明は、少ない記憶容量でＳＮＭＰの処理を行うことができる半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１０】
以上の課題を解決するため、本発明に係る半導体集積回路は、ＳＮＭＰ（Simple Network Management Protocol）処理を行うための半導体集積回路であって、ＳＮＭＰの管理対象である複数の変数の値を記録するための変数記録部と、フレーム、パケット、及び／又は、データグラムをそれぞれ格納するための複数のバッファを有するバッファメモリと、複数のバッファの中の１つのバッファに第１のＳＮＭＰメッセージを含むフレーム、パケット、及び／又は、データグラムが下位レイヤによって書き込まれた場合に、下位レイヤからその旨の通知を受けるためのメッセージ受信処理部と、第１のＳＮＭＰメッセージの中の基本情報を、１つのバッファ内のフレーム、パケット、及び／又は、データグラムの中のヘッダが格納されている領域の全部又は一部である第１の領域に移動及び／又はコピーするための基本情報抽出処理部と、第１のＳＮＭＰメッセージの中のVariable Bindings内の複数の変数を解釈して、第１の領域の後に続く第２の領域に書き込むための変数抽出処理部と、第２の領域内に格納されている複数の変数にそれぞれ対応する複数の値を変数記録部から読み出し、第２の領域内に格納されている複数の変数にそれぞれ対応させて第１のＳＮＭＰメッセージへの回答としてのVariable Bindingsを作成し、１つのバッファの末尾の第３の領域に書き込むための回答作成処理部と、第１の領域内に格納されている基本情報に基づいて第１のＳＮＭＰメッセージへの回答としての基本情報を作成し、第３の領域の前の第４の領域に書き込むことにより、第１のＳＮＭＰメッセージへの回答としての第２のＳＮＭＰメッセージを作成するためのメッセージ作成処理部と、第２のＳＮＭＰメッセージが作成された旨を下位レイヤに通知するためのメッセージ送信処理部とを具備する。
【００１１】
この半導体集積回路において、第１又は第２のＳＮＭＰメッセージ内の基本情報が、バージョン、コミュニティ、ＰＤＵ（Protocol Data Unit）、リクエストＩＤ、エラーステータス、及び／又は、エラーインデックスを含むこととしても良い。
【００１２】
また、複数のバッファが固定長であることとしても良い。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照しながら、本発明を実施するための最良の形態について説明する。なお、同一の構成要素には同一の参照符号を付して、説明を省略する。
図１は、本発明の一実施形態としてのＳＮＭＰ（Simple Network Management Protocol）処理回路を用いたシステムの概要を示すブロック図である。このシステムは、ネットワークＮに接続されたＳＮＭＰマネージャ１と、ＳＮＭＰエージェント１１とを具備する。ＳＮＭＰマネージャ１とＳＮＭＰエージェント１１は、ネットワークＮを介して接続されている。なお、本実施形態においては、ネットワークＮは、Ethernet（登録商標）であるものとする。
【００１４】
ＳＮＭＰマネージャ１は、ネットワークコントローラ２と、ＩＰ（Internet Protocol）処理回路３と、ＵＤＰ（User Datagram Protocol）処理回路４と、ＳＮＭＰ処理回路５とを具備する。
ＳＮＭＰエージェント１１は、ネットワークコントローラ１２と、ＩＰ処理回路１３と、ＵＤＰ処理回路１４と、本発明の一実施形態としてのＳＮＭＰ処理回路１５とを具備する。
【００１５】
図２は、ＳＮＭＰ処理回路１５の内部構成の概要を示す図である。図２に示すように、ＳＮＭＰ処理回路１５は、変数記録部２１と、バッファメモリ２２と、メッセージ受信処理部２３と、基本情報抽出処理部２４と、変数抽出処理部２５と、回答作成処理部２６と、メッセージ作成処理部２７と、メッセージ送信処理部２８とを具備する。
変数記録部２１は、ＳＮＭＰの管理対象である複数の変数の値を記録する。
【００１６】
バッファメモリ２２は、ネットワークコントローラ２、ＩＰ処理回路３、ＵＤＰ処理回路４、及び、ＳＮＭＰ処理回路５によって共用されており、Ethernet（登録商標）フレームをそれぞれ格納するための複数のバッファを有する。本実施形態においては、複数のバッファは、メモリ管理を単純にするため、例えば数十バイト程度の固定長であるものとする。なお、複数のバッファが、可変長であることとしても良い。
ＳＮＭＰマネージャ１（図１参照）がＳＮＭＰエージェント１１（図１参照）にＳＮＭＰメッセージを含むEthernet（登録商標）フレームを送信すると、送信されたEthernet（登録商標）フレームは、ネットワークコントローラ１２によってバッファメモリ２２内の複数のバッファの中の１つのバッファに書き込まれる。
【００１７】
図３は、ＳＮＭＰメッセージを含むEthernet（登録商標）フレームのフォーマットの例を示す図である。図３に示すように、Ethernet（登録商標）フレームは、Ethernet（登録商標）ヘッダとＩＰデータグラムとを含む。
Ethernet（登録商標）ヘッダは、送信元ＭＡＣ（Media Access Control）アドレス（６バイト）、あて先ＭＡＣアドレス（６バイト）、データタイプ（２バイト）の計１４バイトである。
【００１８】
ＩＰデータグラムは、ＩＰヘッダとＵＤＰデータグラムとを含む。
ＩＰヘッダは、バージョン（４ビット）、ヘッダ長（４ビット）、サービスタイプ（１バイト）、データグラム長（２バイト）、ＩＤ（２バイト）、フラグ（３ビット）、フラグメント・オフセット（１３ビット）、ＴＴＬ（１バイト）、プロトコル番号（１バイト）、ヘッダ・チェックサム（２バイト）、送信元ＩＰアドレス（４バイト）、あて先ＩＰアドレス（４バイト）の計２０バイトである。なお、ＩＰヘッダは、３２ビット単位でオプションを含むことが可能である。
【００１９】
ＵＤＰデータグラムは、ＵＤＰヘッダとＳＮＭＰメッセージとを含む。
ＵＤＰヘッダは、送信元ポート番号（２バイト）、あて先ポート番号（２バイト）、長さ（２バイト）、チェックサム（２バイト）の計８バイトである。
【００２０】
ＳＮＭＰメッセージは、基本情報と、Variable Bindingsとを含む。
基本情報は、バージョン、コミュニティ、ＰＤＵ（Protocol Data Unit）、リクエストＩＤ、エラーステータス、及び、エラーインデックスを含む。
ＳＮＭＰにおいて、オブジェクトＩＤとインスタンスの組み合わせ、又は、オブジェクトＩＤとインスタンスと値の組み合わせは、Variable Bindingと呼ばれており、Variable Bindingの集合は、Variable Bindingsと呼ばれている。
基本情報及びVariable Bindingsは可変長である。
【００２１】
Ethernet（登録商標）ヘッダは、ネットワークコントローラ１２で使用されるものであり、ＩＰヘッダは、ＩＰ処理回路１３で使用されるものであり、ＵＤＰヘッダは、ＵＤＰ処理回路１４で処理されるものである。Ethernet（登録商標）ヘッダ、ＩＰヘッダ、及び、ＵＤＰヘッダは、使用された後にそのまま放置されても良いし、消去されても良い。いずれとするかは、Ethernet（登録商標）、ＩＰ、及び、ＵＤＰの実装に委ねられている。
【００２２】
再び図２を参照すると、Ethernet（登録商標）フレームがネットワークコントローラ１２によってバッファメモリ２２内の複数のバッファの中の１つのバッファに書き込まれ、ネットワークコントローラ１２、ＩＰ処理回路１３、及び、ＵＤＰ処理回路１４の処理を経ると、ＵＤＰ処理回路１４は、その旨をメッセージ受信処理部２３に通知する。
メッセージ受信処理部２３は、ＵＤＰ処理回路１４から通知を受けると、基本情報抽出処理部２４に動作するように指示する。
【００２３】
このとき、Ethernet（登録商標）ヘッダ、ＩＰヘッダ、及び、ＵＤＰヘッダ（図３参照）は不要となっており、Ethernet（登録商標）ヘッダ、ＩＰヘッダ、及び、ＵＤＰヘッダが格納されている領域は、空き領域として利用可能である。
基本情報抽出処理部２４は、ＳＮＭＰメッセージ内の基本情報を、バッファ内の先頭の第１の領域（Ethernet（登録商標）ヘッダ、ＩＰヘッダ、及び、ＵＤＰヘッダが格納されていた領域の一部又は全部）に移動及び／又はコピーする。図４（Ａ）は、このときのバッファ内の様子を示す図である。なお、元の基本情報は、不要であり、そのまま放置されても良いし、消去されても良い。また、基本情報のうち不要な情報は、移動及び／又はコピーしなくても良い。さらに、基本情報とともに送信元ＩＰアドレス（ＩＰヘッダ内）、送信元ポート番号（ＵＤＰヘッダ内）、あて先ポート番号（ＵＤＰヘッダ内）等の情報を、第１の領域に移動及び／又はコピーすることとしても良い。
【００２４】
次に、変数抽出処理部２５が、ＳＮＭＰメッセージ内のVariable Bindingsを解釈し、各変数を第１の領域の後の第２の領域に格納する。図４（Ｂ）は、このときのバッファ内の様子を示す図である。このとき、各変数をＳＮＭＰ処理回路１５内部に保持しているＯＩＤデータベースのエントリを示すように変換することで、第２の領域を小さく（節約）することができる。なお、元のVariable Bindingsは、不要であり、そのまま放置されても良いし、消去されても良い。いずれにしても、元のVariable Bindingsが格納されていた領域は、空き領域として利用可能である。
【００２５】
次に、回答作成処理部２６が、第２の領域内の各変数にそれぞれ対応する値を変数記録部２１から読み出し、ＳＮＭＰマネージャ１から受信したＳＮＭＰメッセージへの応答としてのVariable Bindingsを作成し、バッファの末尾の第３の領域に書き込む。図５（Ａ）は、このときのバッファ内の様子を示す図である。なお、第２の領域内の各変数は、不要であり、そのまま放置されても良いし、消去されても良い。いずれにしても、第２の領域は、空き領域として利用可能である。
【００２６】
次に、メッセージ作成処理部２７が、第１の領域内の基本情報に基づいて、ＳＮＭＰマネージャ１から受信したＳＮＭＰメッセージへの回答としての基本情報を作成し、第３の領域の前の第４の領域に書き込むことにより、ＳＮＭＰマネージャ１から受信したＳＮＭＰメッセージへの回答としてのＳＮＭＰメッセージを作成する。図５（Ｂ）は、このときのバッファ内の様子を示す図である。なお、第１の領域内の基本情報は、不要であり、そのまま放置されても良いし、消去されても良い。いずれにしても、第１の領域は、空き領域として利用可能である。
【００２７】
このようにしてＳＮＭＰマネージャ１から受信したＳＮＭＰメッセージへの回答としてのＳＮＭＰメッセージが作成されると、メッセージ送信処理部２８は、ＵＤＰ処理回路１４に通知する。
この後、ＵＤＰ処理回路１４が、図５（Ｂ）中の基本情報の前の領域にＵＤＰヘッダを書き込み、ＩＰ処理回路１３が、ＵＤＰヘッダの前の領域にＩＰヘッダを書き込み、ネットワークコントローラ１２が、ＩＰヘッダの前の領域にEthernet（登録商標）ヘッダを書き込むことにより、Ethernet（登録商標）フレームを作成することが可能である。
【００２８】
このように、ＳＮＭＰ処理回路１５によれば、ＳＮＭＰマネージャ１から受信したEthernet（登録商標）フレームが格納されているバッファ内に、ＳＮＭＰマネージャ１から受信したＳＮＭＰメッセージへの回答としてのＳＮＭＰメッセージを作成することができる。これにより、少ない記憶容量でＳＮＭＰ処理を行うことが可能となる。また、受信したEthernet（登録商標）フレームが格納されているバッファ以外に新たなメモリ領域を必要としないため、ＳＮＭＰ処理回路１５の処理負荷が大きいときにメモリを確保できずにＳＮＭＰ処理性能が低下することがない。
【００２９】
なお、本実施形態はＳＮＭＰ処理を行うものであるが、下位プロトコルのヘッダ部分を空き領域として利用することは、他のプロトコル処理でも可能である。
【００３０】
また、Ethernet（登録商標）ヘッダは１４バイトであり、ネットワークインタフェース層の他のプロトコル（例えば、ＰＰＰ（Point to Point Protocol）等）とは異なることがある。しかし、ネットワークインタフェース層としてEthernet（登録商標）以外のものを利用した場合でも、基本情報や変数の変換方法を空き領域の大きさに従い調整することで適用可能である。Ethernet（登録商標）ヘッダ及びＩＰヘッダの一部の情報を上位プロトコルで利用する場合はヘッダを削除できるとは限らないが、必要な情報のみ抽出してヘッダを縮小することや、固定長のバッファ内に専用の領域を準備することで適用可能である。
【００３１】
また、バッファ内の空き領域（図３〜図５参照）は、基本情報抽出処理部２４、変数抽出処理部２５、回答作成処理部２６、及び、メッセージ作成処理部２７間の入出力において利用するだけでなく、基本情報抽出処理部２４、変数抽出処理部２５、回答作成処理部２６、及び、メッセージ作成処理部２７の内部処理用の作業領域として利用可能である。
【００３２】
また、図３において、受信したEthernet（登録商標）フレームより後の空き領域を利用することも可能である。しかし、この空き領域が存在するか否かは、受信したEthernet（登録商標）フレーム長に依存する。また、この空き領域が存在する場合は、受信したEthernet（登録商標）フレーム長が短い。つまりVariable Bindingsに含まれる変数の数が少ないため、Ethernet（登録商標）ヘッダ、ＩＰヘッダ、及び、ＵＤＰヘッダの領域で足りる。よって、受信したEthernet（登録商標）フレームより後の空き領域を利用することは、Ethernet（登録商標）ヘッダ、ＩＰヘッダ、及び、ＵＤＰヘッダの領域を利用する場合と比べて効果が少ない。
【００３３】
また、ネットワークコントローラ１２、ＩＰ処理回路１３、及び、ＵＤＰ処理回路１４がバッファ内の不要となった領域（各ヘッダが格納されていた領域）を保持したまま動作する場合、受信したＳＮＭＰメッセージより前に空き領域が存在することが期待できる。このような場合であれば、バッファを可変長としても良い。
【００３４】
また、バッファを可変長とするなどした結果、受信したＳＮＭＰメッセージ長より回答としてのＳＮＭＰメッセージ長の方が大きくなる場合、受信バッファとは別に送信バッファを確保しても良い。このとき、作業領域は、受信バッファ又は送信バッファのどちらかにとることと、分割して両方にとることが可能である。
【産業上の利用可能性】
【００３５】
本発明は、ＳＮＭＰ（Simple Network Management Protocol）処理を行うための半導体集積回路において利用可能である。この回路は、ルータ、ブリッジ等において利用可能である。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態に係る半導体集積回路を用いたシステムを示す図。
【図２】図１のＳＮＭＰ処理回路１５の内部構成の概要を示す図。
【図３】図２のバッファメモリ２２内のフレームのフォーマットを示す図。
【図４】図２のバッファメモリ２２内の様子を示す図。
【図５】図２のバッファメモリ２２内の様子を示す図。
【図６】ＯＳＩ参照モデルとＴＣＰ／ＩＰ階層モデルとの対応関係を示す図。
【符号の説明】
【００３７】
１  ＳＮＭＰマネージャ、２  ネットワークコントローラ、３  ＩＰ処理回路、４  ＵＤＰ処理回路、５  ＳＮＭＰ処理回路、１１  ＳＮＭＰエージェント、１２  ネットワークコントローラ、１３  ＩＰ処理回路、１４  ＵＤＰ処理回路、１５  ＳＮＭＰ処理回路、２１  変数記録部、２２  バッファメモリ、２３  メッセージ受信処理部、２４  基本情報抽出処理部、２５  変数抽出処理部、２６  回答作成処理部、２７  メッセージ作成処理部、２８  メッセージ送信処理部
【図１】
2006042288.tif 000003
【図２】
2006042288.tif 000004
【図３】
2006042288.tif 000005
【図４】
2006042288.tif 000006
【図５】
2006042288.tif 000007
【図６】
2006042288.tif 000008