Warning: mysqli::__construct(): (HY000/2003): Can't connect to MySQL server on '192.168.70.18' (113) in /mnt/www/gzt_disp.php on line 82

Warning: mysqli::prepare(): Couldn't fetch mysqli in /usr/local/lib/php/ekouhou/ekouhou_common.php on line 56

Warning: mysqli::prepare(): Couldn't fetch mysqli in /mnt/www/shimei_img.php on line 120

Warning: mysqli::prepare(): Couldn't fetch mysqli in /mnt/www/biblio_conv.php on line 244

Warning: mysqli_error(): Couldn't fetch mysqli in /mnt/www/biblio_conv.php on line 321
mysqli_prepare failed. error[]
Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 324

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 324

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 325

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 325

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 326

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 326

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 327

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 327

Notice: Undefined variable: upper_cat_id_arr in /mnt/www/biblio_conv.php on line 329

Warning: array_reverse() expects parameter 1 to be array, null given in /mnt/www/biblio_conv.php on line 329

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 330

Warning: mysqli::prepare(): Couldn't fetch mysqli in /mnt/www/biblio_conv.php on line 377

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 454

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 454

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 455

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 455

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 456

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 456

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 457

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 457

Notice: Undefined variable: upper_cat_id_arr in /mnt/www/biblio_conv.php on line 460

Warning: array_reverse() expects parameter 1 to be array, null given in /mnt/www/biblio_conv.php on line 460

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 461

Warning: mysqli::prepare(): Couldn't fetch mysqli in /mnt/www/biblio_conv.php on line 377

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 454

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 454

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 455

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 455

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 456

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 456

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 457

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 457

Notice: Undefined variable: upper_cat_id_arr in /mnt/www/biblio_conv.php on line 460

Warning: array_reverse() expects parameter 1 to be array, null given in /mnt/www/biblio_conv.php on line 460

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 461

Warning: mysqli::prepare(): Couldn't fetch mysqli in /mnt/www/biblio_conv.php on line 377

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 454

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 454

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 455

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 455

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 456

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 456

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 457

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 457

Notice: Undefined variable: upper_cat_id_arr in /mnt/www/biblio_conv.php on line 460

Warning: array_reverse() expects parameter 1 to be array, null given in /mnt/www/biblio_conv.php on line 460

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 461

Warning: mysqli::prepare(): Couldn't fetch mysqli in /mnt/www/biblio_conv.php on line 377

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 454

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 454

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 455

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 455

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 456

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 456

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 457

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 457

Notice: Undefined variable: upper_cat_id_arr in /mnt/www/biblio_conv.php on line 460

Warning: array_reverse() expects parameter 1 to be array, null given in /mnt/www/biblio_conv.php on line 460

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 461

Warning: mysqli::prepare(): Couldn't fetch mysqli in /mnt/www/biblio_conv.php on line 377

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 454

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 454

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 455

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 455

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 456

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 456

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 457

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 457

Notice: Undefined variable: upper_cat_id_arr in /mnt/www/biblio_conv.php on line 460

Warning: array_reverse() expects parameter 1 to be array, null given in /mnt/www/biblio_conv.php on line 460

Notice: Undefined variable: arr in /mnt/www/biblio_conv.php on line 461

Warning: mysqli::prepare(): Couldn't fetch mysqli in /mnt/www/shimei_img.php on line 120
半導体集積回路
説明

半導体集積回路

【課題】 少ない記憶容量でSNMPの処理を行うことができる半導体集積回路を提供する。
【解決手段】 このSNMP処理回路15は、変数記録部21と、バッファメモリ22と、メッセージ受信処理部23と、基本情報抽出処理部24と、変数抽出処理部25と、回答作成処理部26と、メッセージ作成処理部27と、メッセージ送信処理部28とを具備する。基本情報抽出処理部24は、基本情報をヘッダが格納されている第1の領域に移動させる。変数抽出処理部25は、複数の変数を解釈して、第1の領域の後に続く第2の領域に書き込む。回答作成処理部26は、複数の変数にそれぞれ対応する複数の値を変数記録部21から読み出して、バッファの末尾の第3の領域に書き込む。メッセージ作成処理部27は、回答としての基本情報を作成し、第3の領域の前の第4の領域に書き込むことにより、回答としてのSNMPメッセージを作成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、SNMP(Simple Network Management Protocol)処理を行うための半導体集積回路に関する。
【背景技術】
【0002】
現在、インターネット、LAN(Local Area Network)等において、TCP/IPと呼ばれる通信プロトコルの階層モデルが広く用いられている。図6は、TCP/IP階層モデルの各レイヤとISO(International Organization for Standardization)で制定されたOSI(Open Systems Interconnection)参照モデルの各レイヤとのおおよその対応関係を示す図である。
【0003】
TCP/IP階層モデルを用いた装置の通信に関する状態を管理するためのプロトコルとして、SNMP(Simple Network Management Protocol)が広く用いられている。なお、SNMPは、RFC(Request For Comments)1157、1901、1902等で規定されている。
図6に示すように、SNMPは、TCP/IP階層モデルのアプリケーション層に相当するプロトコルであり、下位レイヤ(トランスポート層)としてUDP(User Datagram Protocol)を利用する。UDPは、下位レイヤ(インターネット層)としてIP(Internet Protocol)を利用する。また、IPは、下位レイヤ(ネットワークインタフェース層)として種々のものを利用可能であるが、一般に、Ethernet(登録商標)が広く用いられている。
【0004】
SNMPにおいて、他の装置を管理するための装置は、SNMPマネージャと呼ばれ、SNMPマネージャによって管理される装置は、SNMPエージェントと呼ばれる。
SNMPエージェントは、ルータ、ブリッジ等であることが多く、これらの機器において低コストでSNMPを実現するため、SNMPの処理を行うための半導体集積回路が用いられるようになってきている。なお、このようなSNMPの処理を行うための半導体集積回路は、UDP、IP、及び、Ethernet(登録商標)の機能を併せて有する場合もある。
【0005】
SNMPの機能を有する半導体集積回路においては、Ethernet(登録商標)フレーム、IPデータグラム、UDPデータグラム、及び/又は、SNMPメッセージを受信するための受信バッファ及び送信するための送信バッファとは別に、SNMPメッセージを作成するための作業領域が必要である。一般には、受信バッファとして512バイト程度、作業領域として40バイト程度、送信バッファとして512バイト程度が必要である。
このように、SNMPの機能を有する半導体集積回路においては、大量のメモリを必要とするため、コストが高くなってしまっていた。
【0006】
ところで、ネットワークプロトコルを用いて情報を相手機側へ送信する装置において、送信バッファと受信バッファを別々に設け、相手機側から直前の送信情報の再送信を要求された場合、現在の送信バッファの内容より再送信情報を直接再構成して、相手機側へ送信するとともに、相手機側より認識不可や現在受付不可の信号を受信した場合、受信バッファの内容より拒絶信号を受信バッファ内で再構成して受信バッファから相手機側へ送信し、送信バッファの内容は保持しておくことを特徴とする情報観測伝送装置が知られている(例えば、特許文献1参照)。
しかしながら、特許文献1に掲載された情報観測伝送装置は、システムに必要なRAM容量を削減するものであるが、SNMPの処理に関するものではない。
【0007】
また、ネットワークから受信したパケットからポイント・ツー・ポイント・プロトコル・ヘッダ情報を選択的に分離するためのシステムであって、パケットを受信し、そこから、パケットに関して使用したサブプロトコルを識別するサブプロトコル検出装置と、サブプロトコル検出装置に接続していて、サブプロトコルの識別に基づいて、パケットからポイント・ツー・ポイント・プロトコル・ヘッダ情報の少なくとも一部を分離し、そうすることにより、パケットの全体のサイズを小さくするヘッダ分離装置とを備えるシステムが知られている(例えば、特許文献2参照)。
しかしながら、特許文献2に掲載されたシステムは、パケットからポイント・ツー・ポイント・プロトコル・ヘッダ情報の少なくとも一部を分離し、そうすることにより、パケットの全体のサイズを小さくし、システム・バスの有効帯域幅を広くするものであるが、SNMPの処理に関するものではない。
【0008】
【特許文献1】特開2001−127792号公報
【特許文献2】特開2001−60984号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
そこで、上記の点に鑑み、本発明は、少ない記憶容量でSNMPの処理を行うことができる半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【0010】
以上の課題を解決するため、本発明に係る半導体集積回路は、SNMP(Simple Network Management Protocol)処理を行うための半導体集積回路であって、SNMPの管理対象である複数の変数の値を記録するための変数記録部と、フレーム、パケット、及び/又は、データグラムをそれぞれ格納するための複数のバッファを有するバッファメモリと、複数のバッファの中の1つのバッファに第1のSNMPメッセージを含むフレーム、パケット、及び/又は、データグラムが下位レイヤによって書き込まれた場合に、下位レイヤからその旨の通知を受けるためのメッセージ受信処理部と、第1のSNMPメッセージの中の基本情報を、1つのバッファ内のフレーム、パケット、及び/又は、データグラムの中のヘッダが格納されている領域の全部又は一部である第1の領域に移動及び/又はコピーするための基本情報抽出処理部と、第1のSNMPメッセージの中のVariable Bindings内の複数の変数を解釈して、第1の領域の後に続く第2の領域に書き込むための変数抽出処理部と、第2の領域内に格納されている複数の変数にそれぞれ対応する複数の値を変数記録部から読み出し、第2の領域内に格納されている複数の変数にそれぞれ対応させて第1のSNMPメッセージへの回答としてのVariable Bindingsを作成し、1つのバッファの末尾の第3の領域に書き込むための回答作成処理部と、第1の領域内に格納されている基本情報に基づいて第1のSNMPメッセージへの回答としての基本情報を作成し、第3の領域の前の第4の領域に書き込むことにより、第1のSNMPメッセージへの回答としての第2のSNMPメッセージを作成するためのメッセージ作成処理部と、第2のSNMPメッセージが作成された旨を下位レイヤに通知するためのメッセージ送信処理部とを具備する。
【0011】
この半導体集積回路において、第1又は第2のSNMPメッセージ内の基本情報が、バージョン、コミュニティ、PDU(Protocol Data Unit)、リクエストID、エラーステータス、及び/又は、エラーインデックスを含むこととしても良い。
【0012】
また、複数のバッファが固定長であることとしても良い。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照しながら、本発明を実施するための最良の形態について説明する。なお、同一の構成要素には同一の参照符号を付して、説明を省略する。
図1は、本発明の一実施形態としてのSNMP(Simple Network Management Protocol)処理回路を用いたシステムの概要を示すブロック図である。このシステムは、ネットワークNに接続されたSNMPマネージャ1と、SNMPエージェント11とを具備する。SNMPマネージャ1とSNMPエージェント11は、ネットワークNを介して接続されている。なお、本実施形態においては、ネットワークNは、Ethernet(登録商標)であるものとする。
【0014】
SNMPマネージャ1は、ネットワークコントローラ2と、IP(Internet Protocol)処理回路3と、UDP(User Datagram Protocol)処理回路4と、SNMP処理回路5とを具備する。
SNMPエージェント11は、ネットワークコントローラ12と、IP処理回路13と、UDP処理回路14と、本発明の一実施形態としてのSNMP処理回路15とを具備する。
【0015】
図2は、SNMP処理回路15の内部構成の概要を示す図である。図2に示すように、SNMP処理回路15は、変数記録部21と、バッファメモリ22と、メッセージ受信処理部23と、基本情報抽出処理部24と、変数抽出処理部25と、回答作成処理部26と、メッセージ作成処理部27と、メッセージ送信処理部28とを具備する。
変数記録部21は、SNMPの管理対象である複数の変数の値を記録する。
【0016】
バッファメモリ22は、ネットワークコントローラ2、IP処理回路3、UDP処理回路4、及び、SNMP処理回路5によって共用されており、Ethernet(登録商標)フレームをそれぞれ格納するための複数のバッファを有する。本実施形態においては、複数のバッファは、メモリ管理を単純にするため、例えば数十バイト程度の固定長であるものとする。なお、複数のバッファが、可変長であることとしても良い。
SNMPマネージャ1(図1参照)がSNMPエージェント11(図1参照)にSNMPメッセージを含むEthernet(登録商標)フレームを送信すると、送信されたEthernet(登録商標)フレームは、ネットワークコントローラ12によってバッファメモリ22内の複数のバッファの中の1つのバッファに書き込まれる。
【0017】
図3は、SNMPメッセージを含むEthernet(登録商標)フレームのフォーマットの例を示す図である。図3に示すように、Ethernet(登録商標)フレームは、Ethernet(登録商標)ヘッダとIPデータグラムとを含む。
Ethernet(登録商標)ヘッダは、送信元MAC(Media Access Control)アドレス(6バイト)、あて先MACアドレス(6バイト)、データタイプ(2バイト)の計14バイトである。
【0018】
IPデータグラムは、IPヘッダとUDPデータグラムとを含む。
IPヘッダは、バージョン(4ビット)、ヘッダ長(4ビット)、サービスタイプ(1バイト)、データグラム長(2バイト)、ID(2バイト)、フラグ(3ビット)、フラグメント・オフセット(13ビット)、TTL(1バイト)、プロトコル番号(1バイト)、ヘッダ・チェックサム(2バイト)、送信元IPアドレス(4バイト)、あて先IPアドレス(4バイト)の計20バイトである。なお、IPヘッダは、32ビット単位でオプションを含むことが可能である。
【0019】
UDPデータグラムは、UDPヘッダとSNMPメッセージとを含む。
UDPヘッダは、送信元ポート番号(2バイト)、あて先ポート番号(2バイト)、長さ(2バイト)、チェックサム(2バイト)の計8バイトである。
【0020】
SNMPメッセージは、基本情報と、Variable Bindingsとを含む。
基本情報は、バージョン、コミュニティ、PDU(Protocol Data Unit)、リクエストID、エラーステータス、及び、エラーインデックスを含む。
SNMPにおいて、オブジェクトIDとインスタンスの組み合わせ、又は、オブジェクトIDとインスタンスと値の組み合わせは、Variable Bindingと呼ばれており、Variable Bindingの集合は、Variable Bindingsと呼ばれている。
基本情報及びVariable Bindingsは可変長である。
【0021】
Ethernet(登録商標)ヘッダは、ネットワークコントローラ12で使用されるものであり、IPヘッダは、IP処理回路13で使用されるものであり、UDPヘッダは、UDP処理回路14で処理されるものである。Ethernet(登録商標)ヘッダ、IPヘッダ、及び、UDPヘッダは、使用された後にそのまま放置されても良いし、消去されても良い。いずれとするかは、Ethernet(登録商標)、IP、及び、UDPの実装に委ねられている。
【0022】
再び図2を参照すると、Ethernet(登録商標)フレームがネットワークコントローラ12によってバッファメモリ22内の複数のバッファの中の1つのバッファに書き込まれ、ネットワークコントローラ12、IP処理回路13、及び、UDP処理回路14の処理を経ると、UDP処理回路14は、その旨をメッセージ受信処理部23に通知する。
メッセージ受信処理部23は、UDP処理回路14から通知を受けると、基本情報抽出処理部24に動作するように指示する。
【0023】
このとき、Ethernet(登録商標)ヘッダ、IPヘッダ、及び、UDPヘッダ(図3参照)は不要となっており、Ethernet(登録商標)ヘッダ、IPヘッダ、及び、UDPヘッダが格納されている領域は、空き領域として利用可能である。
基本情報抽出処理部24は、SNMPメッセージ内の基本情報を、バッファ内の先頭の第1の領域(Ethernet(登録商標)ヘッダ、IPヘッダ、及び、UDPヘッダが格納されていた領域の一部又は全部)に移動及び/又はコピーする。図4(A)は、このときのバッファ内の様子を示す図である。なお、元の基本情報は、不要であり、そのまま放置されても良いし、消去されても良い。また、基本情報のうち不要な情報は、移動及び/又はコピーしなくても良い。さらに、基本情報とともに送信元IPアドレス(IPヘッダ内)、送信元ポート番号(UDPヘッダ内)、あて先ポート番号(UDPヘッダ内)等の情報を、第1の領域に移動及び/又はコピーすることとしても良い。
【0024】
次に、変数抽出処理部25が、SNMPメッセージ内のVariable Bindingsを解釈し、各変数を第1の領域の後の第2の領域に格納する。図4(B)は、このときのバッファ内の様子を示す図である。このとき、各変数をSNMP処理回路15内部に保持しているOIDデータベースのエントリを示すように変換することで、第2の領域を小さく(節約)することができる。なお、元のVariable Bindingsは、不要であり、そのまま放置されても良いし、消去されても良い。いずれにしても、元のVariable Bindingsが格納されていた領域は、空き領域として利用可能である。
【0025】
次に、回答作成処理部26が、第2の領域内の各変数にそれぞれ対応する値を変数記録部21から読み出し、SNMPマネージャ1から受信したSNMPメッセージへの応答としてのVariable Bindingsを作成し、バッファの末尾の第3の領域に書き込む。図5(A)は、このときのバッファ内の様子を示す図である。なお、第2の領域内の各変数は、不要であり、そのまま放置されても良いし、消去されても良い。いずれにしても、第2の領域は、空き領域として利用可能である。
【0026】
次に、メッセージ作成処理部27が、第1の領域内の基本情報に基づいて、SNMPマネージャ1から受信したSNMPメッセージへの回答としての基本情報を作成し、第3の領域の前の第4の領域に書き込むことにより、SNMPマネージャ1から受信したSNMPメッセージへの回答としてのSNMPメッセージを作成する。図5(B)は、このときのバッファ内の様子を示す図である。なお、第1の領域内の基本情報は、不要であり、そのまま放置されても良いし、消去されても良い。いずれにしても、第1の領域は、空き領域として利用可能である。
【0027】
このようにしてSNMPマネージャ1から受信したSNMPメッセージへの回答としてのSNMPメッセージが作成されると、メッセージ送信処理部28は、UDP処理回路14に通知する。
この後、UDP処理回路14が、図5(B)中の基本情報の前の領域にUDPヘッダを書き込み、IP処理回路13が、UDPヘッダの前の領域にIPヘッダを書き込み、ネットワークコントローラ12が、IPヘッダの前の領域にEthernet(登録商標)ヘッダを書き込むことにより、Ethernet(登録商標)フレームを作成することが可能である。
【0028】
このように、SNMP処理回路15によれば、SNMPマネージャ1から受信したEthernet(登録商標)フレームが格納されているバッファ内に、SNMPマネージャ1から受信したSNMPメッセージへの回答としてのSNMPメッセージを作成することができる。これにより、少ない記憶容量でSNMP処理を行うことが可能となる。また、受信したEthernet(登録商標)フレームが格納されているバッファ以外に新たなメモリ領域を必要としないため、SNMP処理回路15の処理負荷が大きいときにメモリを確保できずにSNMP処理性能が低下することがない。
【0029】
なお、本実施形態はSNMP処理を行うものであるが、下位プロトコルのヘッダ部分を空き領域として利用することは、他のプロトコル処理でも可能である。
【0030】
また、Ethernet(登録商標)ヘッダは14バイトであり、ネットワークインタフェース層の他のプロトコル(例えば、PPP(Point to Point Protocol)等)とは異なることがある。しかし、ネットワークインタフェース層としてEthernet(登録商標)以外のものを利用した場合でも、基本情報や変数の変換方法を空き領域の大きさに従い調整することで適用可能である。Ethernet(登録商標)ヘッダ及びIPヘッダの一部の情報を上位プロトコルで利用する場合はヘッダを削除できるとは限らないが、必要な情報のみ抽出してヘッダを縮小することや、固定長のバッファ内に専用の領域を準備することで適用可能である。
【0031】
また、バッファ内の空き領域(図3〜図5参照)は、基本情報抽出処理部24、変数抽出処理部25、回答作成処理部26、及び、メッセージ作成処理部27間の入出力において利用するだけでなく、基本情報抽出処理部24、変数抽出処理部25、回答作成処理部26、及び、メッセージ作成処理部27の内部処理用の作業領域として利用可能である。
【0032】
また、図3において、受信したEthernet(登録商標)フレームより後の空き領域を利用することも可能である。しかし、この空き領域が存在するか否かは、受信したEthernet(登録商標)フレーム長に依存する。また、この空き領域が存在する場合は、受信したEthernet(登録商標)フレーム長が短い。つまりVariable Bindingsに含まれる変数の数が少ないため、Ethernet(登録商標)ヘッダ、IPヘッダ、及び、UDPヘッダの領域で足りる。よって、受信したEthernet(登録商標)フレームより後の空き領域を利用することは、Ethernet(登録商標)ヘッダ、IPヘッダ、及び、UDPヘッダの領域を利用する場合と比べて効果が少ない。
【0033】
また、ネットワークコントローラ12、IP処理回路13、及び、UDP処理回路14がバッファ内の不要となった領域(各ヘッダが格納されていた領域)を保持したまま動作する場合、受信したSNMPメッセージより前に空き領域が存在することが期待できる。このような場合であれば、バッファを可変長としても良い。
【0034】
また、バッファを可変長とするなどした結果、受信したSNMPメッセージ長より回答としてのSNMPメッセージ長の方が大きくなる場合、受信バッファとは別に送信バッファを確保しても良い。このとき、作業領域は、受信バッファ又は送信バッファのどちらかにとることと、分割して両方にとることが可能である。
【産業上の利用可能性】
【0035】
本発明は、SNMP(Simple Network Management Protocol)処理を行うための半導体集積回路において利用可能である。この回路は、ルータ、ブリッジ等において利用可能である。
【図面の簡単な説明】
【0036】
【図1】本発明の一実施形態に係る半導体集積回路を用いたシステムを示す図。
【図2】図1のSNMP処理回路15の内部構成の概要を示す図。
【図3】図2のバッファメモリ22内のフレームのフォーマットを示す図。
【図4】図2のバッファメモリ22内の様子を示す図。
【図5】図2のバッファメモリ22内の様子を示す図。
【図6】OSI参照モデルとTCP/IP階層モデルとの対応関係を示す図。
【符号の説明】
【0037】
1 SNMPマネージャ、2 ネットワークコントローラ、3 IP処理回路、4 UDP処理回路、5 SNMP処理回路、11 SNMPエージェント、12 ネットワークコントローラ、13 IP処理回路、14 UDP処理回路、15 SNMP処理回路、21 変数記録部、22 バッファメモリ、23 メッセージ受信処理部、24 基本情報抽出処理部、25 変数抽出処理部、26 回答作成処理部、27 メッセージ作成処理部、28 メッセージ送信処理部

【特許請求の範囲】
【請求項1】
SNMP(Simple Network Management Protocol)処理を行うための半導体集積回路であって、
SNMPの管理対象である複数の変数の値を記録するための変数記録部と、
フレーム、パケット、及び/又は、データグラムをそれぞれ格納するための複数のバッファを有するバッファメモリと、
前記複数のバッファの中の1つのバッファに第1のSNMPメッセージを含むフレーム、パケット、及び/又は、データグラムが下位レイヤによって書き込まれた場合に、前記下位レイヤからその旨の通知を受けるためのメッセージ受信処理部と、
前記第1のSNMPメッセージの中の基本情報を、前記1つのバッファ内のフレーム、パケット、及び/又は、データグラムの中のヘッダが格納されている領域の全部又は一部である第1の領域に移動及び/又はコピーするための基本情報抽出処理部と、
前記第1のSNMPメッセージの中のVariable Bindings内の複数の変数を解釈して、前記第1の領域の後に続く第2の領域に書き込むための変数抽出処理部と、
前記第2の領域内に格納されている複数の変数にそれぞれ対応する複数の値を前記変数記録部から読み出し、前記第2の領域内に格納されている複数の変数にそれぞれ対応させて前記第1のSNMPメッセージへの回答としてのVariable Bindingsを作成し、前記1つのバッファの末尾の第3の領域に書き込むための回答作成処理部と、
前記第1の領域内に格納されている基本情報に基づいて前記第1のSNMPメッセージへの回答としての基本情報を作成し、前記第3の領域の前の第4の領域に書き込むことにより、前記第1のSNMPメッセージへの回答としての第2のSNMPメッセージを作成するためのメッセージ作成処理部と、
前記第2のSNMPメッセージが作成された旨を前記下位レイヤに通知するためのメッセージ送信処理部と、
を具備する半導体集積回路。
【請求項2】
前記第1又は第2のSNMPメッセージ内の基本情報が、バージョン、コミュニティ、PDU(Protocol Data Unit)、リクエストID、エラーステータス、及び/又は、エラーインデックスを含む、請求項1記載の半導体集積回路。
【請求項3】
前記複数のバッファが固定長である、請求項1又は2記載の半導体集積回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2006−42288(P2006−42288A)
【公開日】平成18年2月9日(2006.2.9)
【国際特許分類】
【出願番号】特願2004−223594(P2004−223594)
【出願日】平成16年7月30日(2004.7.30)
【出願人】(000002369)セイコーエプソン株式会社 (-1)
【Fターム(参考)】