(57)【要約】【課題】ルーティング転送処理を行うＣＰＵおよびメモリと、それぞれＬＡＮポートからの通信処理を行うＬＡＮ通信コントローラとを備え、ルーティング転送処理およびフィルタリング処理を行うルータでのＣＰＵの処理負担を軽減する。またトラフィック状態に応じたフィルタリング処理やＶＬＡＮに対応した処理を行うことができるようにする。【解決手段】ＬＡＮ通信コントローラに書き換え可能なメモリを備え、この書き換え可能メモリにマイクロコードプログラムをロードし、このマイクロコードプログラムによりＬＡＮ通信コントローラがフィルタリング処理を行うとともに、ＬＡＮ通信コントローラでこの書き換え可能なメモリのマイクロコードプログラムにより通信状況に応じた処理を行う。【選択図】  図１
2004201164.tif 000002
【特許請求の範囲】
【請求項１】
パケットのルーティング処理を行う主プロセッサと、ルーティング処理プログラムならび転送処理を行うパケットが格納される主メモリと、ネットワークに接続され送受信されるパケットの送受信処理を行うＬＡＮ通信コントローラとを備え、
前記ＬＡＮ通信コントローラは、ＬＡＮとの間でパケットの送受信処理を行うＬＡＮインタフェース部と、前記主プロセッサならびに主メモリが接続されるバスとのインタフェース処理を行うバスインタフェース部と、このＬＡＮ通信コントローラが行うパケットの送受信処理ならびにフィルタリング処理を行うＬＡＮ通信専用プロセッサとを備えた
ルータ装置において、
前記ＬＡＮ通信コントローラは、前記ＬＡＮ通信専用プロセッサが実行する処理プログラムを書き換え可能に格納する書き換え可能なメモリ手段を備えた
ことを特徴とするルータ装置。
【請求項２】
前記メモリ手段に格納される処理プログラムは、ルーティング処理を行う主プロセッサの負荷に応じて優先度が設定された複数のフィルタリングリストを含み、前記ＬＡＮ通信専用プロセッサは、前記主プロセッサの負荷に応じて選択された優先度が設定されたフィルタリングリストに基づいてフィルタリング処理を実行する手段を含む請求項１記載のルータ装置。
【請求項３】
前記メモリ手段に格納される処理プログラムは、一つのＬＡＮ通信コントローラが扱うＬＡＮが複数の仮想チャネルが設定されたＶＬＡＮである場合に、当該ＶＬＡＮごとのパケットに付与されるタグを識別してパケットの送受信処理を行うプログラムであり、前記ＬＡＮ通信専用プロセッサは、ＶＬＡＮごとのタグを識別してパケットの送受信処理を実行する手段を含む請求項１記載のルータ装置。
【請求項４】
前記メモリ手段は、送受信処理を行うパケットを格納する送受信バッファとして用いられる領域と、前記専用プロセッサが実行する処理プログラムが格納される領域ならびに通信処理動作パラメータが格納される領域とに分割されて使用される請求項１ないし３のいずれか記載のルータ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＡＮなどのネットワークにおいて、パケット転送の処理を行うルータ装置に関する。本発明は、パケット転送におけるルーティング処理とともにフィルタリング処理を行うルータ装置に利用される。
【０００２】
【従来の技術】
一般的に収容ポート数の少ない小型のルータでは価格対性能比を上げるため、ＣＰＵのソフトウェア処理によるパケット転送を行っている。
【０００３】
従来のソフトウェア処理でパケット転送を行うルータ装置について図１１を参照して説明する。図１１において、ＬＡＮ通信コントローラＡ１１０１はルータ装置の主メモリであるメモリ１１０８とＬＡＮポート１１０７との間で送受信データの転送を行う。なお、ＬＡＮ通信コントローラＢ１１１５はＬＡＮ通信コントローラＡ１１０１と同じ構成でＬＡＮポートＢ１１１６に対してＬＡＮ通信コントローラＡ１１０１と同様の動作を行う。
【０００４】
メモリ１１０８はＣＰＵ１１０９のルータ動作プログラム１１１１およびルーティングテーブルおよびフィルタリングリストを含むルータ動作パラメータ１１１２、さらに各ＬＡＮ通信コントローラ１１０１および１１１５に送受信させる通信データの送受信バッファ１１１３および１１１４を格納する。
【０００５】
ＣＰＵ１１０９はメモリ１１０８に格納されたルータ動作プログラム１１１１を実行する。ルータ動作プログラム１１１１は以下の動作をＣＰＵ１１０９に行わせる。電源投入後の起動中処理として各ＬＡＮ通信コントローラのメモリにＬＡＮ通信コントローラ用動作パラメータ（自己ＭＡＣアドレス）を書き込み、起動後はパラメータにしたがったフィルタリング処理（フィルタリングリストに合致したパケットの廃棄）およびルーティング動作（受信ＩＰパケットの宛先ＩＰアドレスのルーティングテーブル検索による転送先ＬＡＮポートの決定）によりＩＰパケット転送を行う。
【０００６】
ＬＡＮ通信コントローラ１１０１は専用プロセッサ１１０２とＲＯＭ１１０３、メモリバスインタフェース１１０５、ＬＡＮインタフェース１１０６を有し、ＬＡＮポートＡ１１０７とメモリ１１０８との間で送受信通信データの転送を行う。
【０００７】
専用プロセッサ１１０２はＲＯＭ１１０３に格納されたマイクロコードプログラム１１１０を読み出して実行する。
【０００８】
ＲＯＭ１１０３はマイクロコードプログラム１１１０を格納する。マイクロコードプログラム１１１０は専用プロセッサ１１０２を一般的なＬＡＮ通信コントローラとしてメモリ１１０８内の送受信バッファ１１１３とＬＡＮインタフェース１１０６との間で通信データを送受信させるように動作させるプログラムである。
【０００９】
次にこの従来の装置の動作をＬＡＮポートＡからＬＡＮポートＢへのパケット転送を例として図１２に示すフローチャートを使用して説明する。
【００１０】
ＬＡＮポートＡに通信データが届くとＬＡＮ通信コントローラＡ１１０１内の専用プロセッサ１１０２がＲＯＭ１１０３内にあるマイクロコードプログラム１１１０にしたがって受信動作を開始し、まず、ＬＡＮ上のフレームに含まれるＭＡＣアドレス（＝ＬＡＮ上の各ＬＡＮポートの物理アドレス）について、その受信したフレームの送信先ＭＡＣアドレスがブロードキャストアドレス（ＬＡＮ上に存在するすべてのＬＡＮポート宛のアドレス）であるか、メモリ１１０８に格納されたルータ動作パラメータ１１１２の中に設定されている自己ＭＡＣアドレスと一致するかどうかの判断を行い（１２０１）、いずれにも一致しない場合はそのフレームは自装置宛ではないため、それ以上の受信を行わずに中止する（１２０２）。いずれかに一致した場合は自装置宛のフレームであると判断して受信を続行し、受信が完了するまでメモリ１１０８の受信バッファ１１１３にそのフレームの受信データを順次転送する（１２０３）。転送完了後は受信待ちに戻る。
【００１１】
次にＣＰＵ１１０９は受信バッファに通信データが届いているかどうかをチェックしており（１２０４）、受信データがあるとフィルタリング処理に移り、メモリ１１０８内にあるフィルタリングリストとの比較を行って、廃棄するか転送処理を行うかの判断を行う（１２０５）。次に転送処理ではメモリ１１０８内にあるルーティングテーブル検索を行って転送先ＬＡＮポート（この例ではＬＡＮポートＢ）を決定する。続いてそのポートの送信バッファ１１１４に受信データを転送し、そのポートのＬＡＮ通信コントローラの動作パラメータに対して送信指示を出すことにより実際にＬＡＮポートＢ１１１６からデータが送信される。なお、ルーティングテーブル検索動作は、当業者にとってよく知られており、その詳細な動作は省略する。
【００１２】
しかしながら、従来のソフトウェア処理でパケット転送を行うルータ装置においては、次のような問題がある。
【００１３】
第１の問題は、ＣＰＵでフィルタ処理とルーティング処理の両方を行っているため、フィルタリング処理が不要で動作を止めてルーティング処理のみ行っている時に比べて、フィルタリング処理も行う時には装置としての転送能力が著しく落ちるということである。
【００１４】
第２の問題は、ＣＰＵでフィルタリング処理とルーティング処理の両方を行っているため、フィルタリング処理とルーティング処理の両方を行っている時の転送能力を上げる際にはＣＰＵの性能を上げるあるいはフィルタリング処理を専用にＣＰＵをもう１台用意するなど大きくコストがかかるということである。
【００１５】
そこで、ＣＰＵでのフィルタリング処理の負荷を軽減するためにＬＡＮ通信コントローラ側でフィルタリング処理を行い、ＣＰＵはルーティング処理を行うようにその処理を分担しようとする提案がなされている（特許文献１）。
【００１６】
この特許文献１に記載された構成は、ＣＰＵの処理効率を上げるため、ＬＡＮ通信コントローラ側にフィルタリング制御部を設け、受信したパケットとフィルタリングリストと比較して受信しないパケットは廃棄するフィルタリング処理を行い、ＣＰＵはフィルタリング処理が行われたパケットについてルーティング処理あるいはブリッジ処理を行うようにしたものである。
【００１７】
【特許文献１】特開平７−３３６３８４号公報
【００１８】
【発明が解決しようとする課題】
しかしながら、この特許文献１では、各ＬＡＮ通信コントローラに設けられたフィルタリング制御部は、受信したパケット（フレーム）から抽出されたＭＡＣアドレスをＣＡＭに設定されたアドレスと比較して廃棄すべきパケットである場合にはその廃棄を指示する構成である。このフィルタリング制御部でのフィルタリング処理はＣＡＭのアドレスの設定は変更可能であるが、フィルタリング動作そのものは固定的な処理であり、フィルタリング処理をトラフィックの状況に応じて動的に変化させたり、あるいはＶＬＡＮ（Virtual Local Area Network）のように、同一のポートに複数の仮想チャネルが入出力される処理に対応する処理が柔軟に行うことができなかった。
【００１９】
本発明は上述の課題に基づくもので、ルータの主ＣＰＵの負荷を軽減するとともに、各ＬＡＮ通信コントローラが行うフィルタリング処理を動的に変化させることができるルータ装置を提供することを目的とする。また本発明は、同一ポートを複数のＶＬＡＮで利用するような形態において、ＬＡＮ通信コントーラ側において、どのＶＬＡＮのパケットであるのかを判定して、主ＣＰＵにおけるルーティング処理負担を軽減してＶＬＡＮ使用時のルータのコストパフォーマンスを低下させないルータ装置を提供することを目的とする。
【００２０】
【発明が解決しようとする手段】
本発明では、ルータ装置の主プロセッサが主にルーティング処理を行い、ＬＡＮ通信コントローラに設けられた専用プロセッサ（ＬＡＮ通信プロセッサ）がＬＡＮとの間の送受信処理を行うとともに、フィルタリング処理を行って、主プロセッサとパケット転送処理の分担を行っている。
【００２１】
各ＬＡＮ通信コントローラは、専用プロセッサが実行する処理プログラムとしてのマイクロコードプログラムを格納する書き換え可能なメモリ手段を備えており、専用プロセッサはこのメモリ手段に格納されたマイクロコードプログラムによりその処理を行う。メモリ手段は書き換え可能であるため、専用プロセッサが実行するマイクロコードプログラムは、ルータ装置の状況に応じて動的に書き換えられる。すなわち、専用プロセッサが実行するマイクロコードはプログラマブルである。このため、例えば、フィルタリング処理で、ネットワークのトラフィックの状況に応じて主プロセッサの負荷が変化してくるので、書き換え可能メモリに格納されたマイクロコードプログラムを主プロセッサの負荷に応じてパケットの廃棄処理に優先度を設定したマイクロコードプログラムに変更して実行することで、トラフィックの状況に応じたフィルタリング処理を実行することができる。また、一つのＬＡＮポートを複数チャネルが接続されたように扱うＶＬＡＮの場合には、ＬＡＮ通信コントローラの専用プロセッサでどのＶＬＡＮのパケットであるかを判定して転送先受信バッファに転送する。
【００２２】
すなわち、本発明はパケットのルーティング処理を行う主プロセッサと、ルーティング処理プログラムならび転送処理を行うパケットが格納される主メモリと、ネットワークに接続され送受信されるパケットの送受信処理を行うＬＡＮ通信コントローラとを備え、前記ＬＡＮ通信コントローラは、ＬＡＮとの間でパケットの送受信処理を行うＬＡＮインタフェース部と、前記主プロセッサならびに主メモリが接続されるバスとのインタフェース処理を行うバスインタフェース部と、このＬＡＮ通信コントローラが行うパケットの送受信処理ならびにフィルタリング処理を行うＬＡＮ通信専用プロセッサとを備えたルータ装置において、前記ＬＡＮ通信コントローラは、前記ＬＡＮ通信専用プロセッサが実行する処理プログラムを書き換え可能に格納する書き換え可能なメモリ手段を備えたことを特徴とする。
【００２３】
ここで、前記メモリ手段に格納される処理プログラムは、ルーティング処理を行う主プロセッサの負荷に応じて優先度が設定された複数のフィルタリングリストを含み、前記ＬＡＮ通信専用プロセッサは、前記主プロセッサの負荷に応じて選択された優先度が設定されたフィルタリングリストに基づいてフィルタリング処理を実行する手段を含むことができる。また、前記メモリ手段に格納される処理プログラムは、一つのＬＡＮ通信コントローラが扱うＬＡＮが複数の仮想チャネルが設定されたＶＬＡＮである場合に、当該ＶＬＡＮごとのパケットに付与されるタグを識別してパケットの送受信処理を行うプログラムであり、前記ＬＡＮ通信専用プロセッサは、ＶＬＡＮごとのタグを識別してパケットの送受信処理を実行する手段を含むことができる。
【００２４】
また、前記メモリ手段は、送受信処理を行うパケットを格納する送受信バッファとして用いられる領域と、前記専用プロセッサが実行する処理プログラムが格納される領域ならびに通信処理動作パラメータが格納される領域とに分割されて使用されることができる。
【００２５】
【発明の実施の形態】
以下図面を参照して本発明の実施の形態を説明する。
【００２６】
図１は、本発明の実施の形態の一例を示すルータ装置の構成を示す図であり、図２は、図１のＬＡＮ通信コントローラ中のＲＡＭ１０４の使用例を示す図、図３はＬＡＮ通信コントローラに二つのＬＡＮポートが設けられた例を示す図、図４は、この実施の形態でのパケット転送処理を示すフローチャート、図５は、ＬＡＮ通信コントローラでのフィルタリング処理を説明するフローチャート、図６はフィルタリングリスト（テーブル）の例を示す図、図７はＣＰＵ１０９によるパケット転送処理を説明するフローチャートである。
【００２７】
図１を参照すると、本発明の一実施例としてのソフトウェア処理でパケット転送を行うルータ装置１００が示されている。
【００２８】
図１において、ルータ装置１００は、主にルーティング処理を行うルータ装置の主プロセッサになるＣＰＵ１０９、このＣＰＵ１０９がパケットルーティング処理に用いるメモリ１０８と、それぞれＬＡＮポートを備え、ＬＡＮとのパケットの送受信制御およびＣＰＵ１０９、メモリ１０８とにバスによって接続される複数のＬＡＮ通信コントーラＡ１１０１、ＬＡＮ通信コントローラＢ・・・を備えている。
【００２９】
ＬＡＮ通信コントローラ１０１は専用プロセッサ１０２とＲＯＭ１０３、ＲＡＭ１０４、メモリバスインタフェース１０５、ＬＡＮインタフェース１０６を有し、ＬＡＮポートＡ１０７とメモリ１０８との間で送受信通信データの転送と後述のマイクロコードプログラムによるフィルタリング処理を行う。
【００３０】
ＲＡＭ１０４はＣＰＵ１０９から書き換えが可能で、また専用プロセッサ１０２からも読み書きが可能で、図２に示すようにＬＡＮ通信コントローラとしての動作パラメータ２０１や通信データ一時保存バッファ２０３、専用プロセッサ１０２が実行できるマイクロコードプログラム２０２を格納する。
【００３１】
専用プロセッサ１０２はＲＯＭ１０３に格納されたマイクロコードプログラム１１０またはＲＡＭ１０４に格納されたマイクロコードプログラム２０２を読み出して実行する。
【００３２】
ＲＯＭ１０３はマイクロコードプログラム１１０を格納する。マイクロコードプログラム１１０は専用プロセッサ１０２をＲＡＭ１０４に格納された動作パラメータ２０１にしたがって一般的なＬＡＮ通信コントローラとしてメモリ１０８とＬＡＮインタフェース１０６との間で通信データを転送させるように動作させ、さらにＲＡＭ１０４内のマイクロコードプログラム２０２を実行させるプログラムである。
【００３３】
マイクロコードプログラム２０２は専用プロセッサ１０２をメモリ１０８とＬＡＮインタフェース１０６との間で転送される転送データに対してパターンマッチによる比較とその結果に基づく処理、すなわちフィルタリング処理を行わせるプログラムである。
【００３４】
ＬＡＮ通信コントローラＢ１１５はＬＡＮ通信コントローラＡ１０１と全く同一構成でＬＡＮポートＢ１１６に対して同様の動作を行う。
【００３５】
メモリ１０８はＣＰＵ１０９のルータ動作プログラム１１１およびルータ動作パラメータ１１２、さらにＬＡＮ通信コントローラ１０１または１１５に送受信させる通信データの送受信バッファ１１３、１１４を格納する。
【００３６】
ＣＰＵ１０９はメモリ１０８に格納されたルータ動作プログラム１１１を実行する。ルータ動作プログラム１１１は以下の動作をＣＰＵに行わせる。
【００３７】
電源投入後の起動中処理としてＲＡＭ１０４などの各ＬＡＮ通信コントローラのＲＡＭにＬＡＮ通信コントローラ用動作パラメータ（自己ＭＡＣアドレスとマイクロコード実行フラグのセット）とフィルタ動作を行うマイクロコードを書き込み、起動後はパラメータにしたがったルーティング動作（受信ＩＰパケットの宛先ＩＰアドレスのルーティングテーブル検索による転送先ＬＡＮポートの決定）によりＩＰパケット転送を行う。
【００３８】
以上詳細に実施例の構成を述べたが、図１のメモリ１０８に格納されたルータ動作ソフトウェアのルーティング検索動作は、当業者にとってよく知られているので、その詳細な説明は省略する。
【００３９】
なお、上記図１に示すルータ装置の説明では、各ＬＡＮポート毎にＬＡＮ通信コントローラを設けているが、図３のように１つのＬＡＮ通信コントローラで２つのＬＡＮポートの処理を行ってもよい。
【００４０】
次に図１のルータ装置１００の動作をＬＡＮポートＡ１０７からＬＡＮポートＢ１１６へのＩＰパケット転送を例として図４に示すフローチャートを使用して説明する。
【００４１】
なお、図１のＲＡＭ１０４については、動作パラメータには自己ＭＡＣアドレスとマイクロコード実行フラグが、またマイクロコードプログラム格納エリアには後述のフィルタリング動作を行うマイクロコードプログラムが、装置電源投入後のＣＰＵ１０９による初期化動作時に、予め書き込まれている。
【００４２】
図４において、ＬＡＮポートＡ１０７にＬＡＮポートＢ１１６宛の転送すべきパケットが載ったＬＡＮ上のフレームが到着すると、ＬＡＮ通信コントローラＡ１０１では図１のＲＯＭ１０３に格納されたマイクロコードプログラムにしたがって以下の動作を専用プロセッサ１０２が開始する。
【００４３】
まず、ＬＡＮ上のフレームに含まれるＭＡＣアドレス（＝ＬＡＮ上の各ＬＡＮポートの物理アドレス）について、その受信したフレームの送信先ＭＡＣアドレスがブロードキャストアドレス（ＬＡＮ上に存在するすべてのＬＡＮポート宛のアドレス）であるか、または図１のＲＡＭ１０４に格納された動作パラメータの中に設定されている自己ＭＡＣアドレスと一致するかどうかの判定を行い（４０１）、いずれにも一致しない場合はそのフレームは自装置宛ではないため受信対象外とし、それ以上の受信は行わない（４０２）。
【００４４】
いずれかに一致した場合は自装置宛のフレームであると判断して受信を続行し、受信が完了するまで図１のＲＡＭ１０４の通信データ一時保存バッファにそのフレームの受信データを順次転送する。転送完了後、図１のＲＡＭ１０４に格納された動作パラメータのマイクロコード実行フラグがセットされているため、後述のフィルタリング動作（４０３）のマイクロコードプログラムを呼び出し実行する。その結果、廃棄と判定された場合には通信データ一時保存バッファ２０３にあるデータは廃棄して受信待ちに戻り、転送処理と判定された場合には通信データ一時保存バッファ２０３にあるデータをメモリ１０８の受信バッファ１１３へ転送（４０４）した後、受信待ちに戻る。
【００４５】
ここで、フィルタリング動作（４０３）を行うマイクロコードプログラムについて図５に示すフローチャートおよび図６に示すフィルタリングリストの例を使用して説明する。
【００４６】
まず図６のようなフィルタリングリストはマイクロコードプログラムの一部として含まれており、ユーザが予め転送対象とせずに受信しても廃棄するとしたＩＰパケットのヘッダ情報が少なくとも１つは登録されている。
【００４７】
専用プロセッサ１０２はフィルタリングリスト２０６にある最初のヘッダ情報を読み出して通信データ一時保存バッファにある受信データに含まれるＩＰパケットのヘッダと比較し（５０１）、完全に一致すれば廃棄と判断してＲＯＭ１０３のマイクロコードプログラム１１０に戻る（５０２）。一致しなければフィルタリングリストに次のヘッダ情報があるかを調べ（５０３）、存在しなければリスト中のすべてに一致しなかったことになるため、転送処理と判定してＲＯＭ１０３のマイクロコードプログラム１１０に戻る（５０４）。次のヘッダ情報が存在していればそのヘッダ情報を読み出して（５０５）、通信データ一時保存バッファにあるＩＰパケットのヘッダとの比較（５０１）に戻る。ここまでがフィルタリング動作（４０３）の動作説明である。
【００４８】
続いてフィルタリングリストの対象とならずメモリ１０８の受信バッファに転送された後のＣＰＵ１０９によるルーティング動作（４０５）について説明する。ＣＰＵ１０９はルータ動作プログラム１１１にしたがって動作しており、そのソフトウェアの動作は図７に示すフローチャートのとおりである。
【００４９】
まずＣＰＵ１０９は各ＬＡＮポートの受信バッファに通信データが届いていないかどうかを他の処理がない時には常にチェックしており（７０１）、いずれかの受信バッファに受信データが１つでも届いていれば次の処理に移る。次にルーティングテーブル検索を行って転送先ＬＡＮポート（この例ではＬＡＮポートＢ）を決定し（７０２）、そのポートの送信バッファに受信データを転送して（７０３）、そのポートのＬＡＮ通信コントローラの動作パラメータに対して送信指示を出した（７０４）後、再び受信バッファチェックに戻る。なお、ルーティングテーブル検索動作は、当業者にとってよく知られているため、その詳細な動作の説明は省略する。ここまでがＣＰＵ１０９のルーティング動作（４０５）の説明である。
【００５０】
続いて図７の７０４にて送信指示を受けたＬＡＮ通信コントローラＢ１１５では、マイクロコードプログラムに、動作パラメータを通じてＣＰＵ１０９から送信指示があった時には送信バッファから通信データを順次読み出してＬＡＮインタフェースに転送するようにプログラムされているため、それにしたがって専用プロセッサが動作し、送信バッファ１１４からデータが読み出されてＬＡＮポートＢ１１６にデータが送信される。
【００５１】
以上説明した発明の構成においては、フィルタリング処理をＬＡＮ通信コントローラで行い、ＣＰＵはルーティング処理に専念できるので、フィルタリング処理もＣＰＵで行っている場合に比べて転送能力を向上できる。また、ＬＡＮ通信コントローラでフィルタリング動作を行うマイクロコードプログラムをＬＡＮ通信コントローラＲＡＭに格納しているので、ＣＰＵで処理した場合と同様の様々なフィルタ機能をＣＰＵの処理を行わずに実現できる。さらに、ＣＰＵではなく、ＬＡＮ通信コントローラに元々内蔵されている専用プロセッサを利用しているので、ＬＡＮ通信コントローラへのＲＡＭの追加だけで実現できるため、安価にルータ装置を実現できる。
【００５２】
（応用例）
本発明の書き換え可能なメモリをＬＡＮ通信コントローラに設けて、専用プロセッサが実行する処理に必要なマイクロコードプログラムを書き換える構成での実施の形態を応用した例を説明する。
【００５３】
（第一応用例）
そのルータ装置の基本的構成は図１に示した構成と同じであるが、ＬＡＮ通信コントローラでのフィルタリングリストと受信データの比較を行うマイクロコードプログラムについてさらに工夫することにより、新たなルータ装置としての機能を発揮できる。
【００５４】
そのフローチャートを図８に、フィルタリングリストの例を図９に示す。図８において、８０１はメモリ１０８の当該ＬＡＮポートの受信バッファのうちの空いているものの割合からＣＰＵ１０９の負荷を高（例えば３０％以下）／中（例えば５０％以下）／低（例えば５０％以上）に分類している。また図９は廃棄するパケットのヘッダ情報に優先度を追加したフィルタリングリストである。
【００５５】
ここで優先度の定義は次のとおりである。Ａは優先度が高く、負荷が中または低であればこのリストは無効としてヘッダ情報の比較をしない。Ｂは優先度が中間で、負荷が低であればこのリストは無効としてヘッダ情報の比較をしない。Ｃは優先度が低く、負荷の状態によらずリストは有効である。有効なリストについてはヘッダ情報の比較を行い、一致したら廃棄する。続いて８０２の処理ではそのリストの優先度と８０１で分類した負荷とを比較してリストが有効かを判断する。
【００５６】
このように、本第一応用例では、ＣＰＵの負荷状態に対応して転送優先度に応じたフィルタリング動作を行えるので、ＣＰＵの負荷が高くて受信バッファが残り少ない時に優先度の高いパケットだけを受信バッファに転送して高優先度のパケットの廃棄を減らす、すなわち入力ＱｏＳの実現ができるという効果が得られる。
【００５７】
（第二応用例）
本発明のさらに別の応用例として、その基本的構成は図１に示す構成と同じであるが、ＬＡＮ通信コントローラのマイクロコードプログラムについてさらに工夫することで、新たな機能を発揮できる。
【００５８】
この第二応用例では同一ポートで２つのＶＬＡＮを利用している際に、受信データがどちらのＶＬＡＮかの判定をＣＰＵではなく、ＬＡＮ通信コントローラのマイクロコードプログラムで行わせている。その動作例を図１０に示すフローチャートを使用して説明する。ＭＡＣアドレスの確認で受信対象となり、通信データ一時バッファに転送された受信データに対して、含まれるＶＬＡＮタグの値が１であるか２であるかをチェックして２つのＶＬＡＮのいずれかを判断する（図１００１）。続いてその分岐先では各ＶＬＡＮ受信バッファにその受信フレームを転送している。
【００５９】
このように、本応用例では、ＬＡＮ通信コントローラで判定してＶＬＡＮ毎の受信バッファに転送するので、ＣＰＵでのどのＶＬＡＮのものかを判定する必要がなく、ＣＰＵで判定していた場合に比べて、ＶＬＡＮ使用時に装置としてのルーティング能力が落ちないという効果が得られる。
【００６０】
以上の発明の実施の形態の説明ならびに応用例の説明では、ＲＡＭをバッファとマイクロコードプログラムと動作パラメータとの格納用として使用する例で説明したが、バッファとして使用するメモリは別途設けてもよい。また、ＩＰパケットを一時保存するバッファを別途設けたときは、マイクロコードプログラムを格納するＲＡＭは、専用プロセッサからは動作パラメータ、フィルタリングリストの読み出しが主となり、書き込み回数がそれほどではなくなるので、書き込み回数が少なくてもよいＥＥＲＯＭやフラッシュメモリなどで構成されたメモリでもよい。
【００６１】
さらに、マイクロコードプログラムを格納するＲＯＭは、マイクロコードプログラムが書き換え可能であるメモリ、例えばＥＥＲＯＭ、ＳＲＡＭ等を用い、外部からＬＡＮ通信コントローラが実行する処理内容を書き換えることができる構成にしてもよい。外部からマイクロコードプログラムを書き換えることにより、ＬＡＮ構成の変更、処理内容の変更、バージョンの変更に柔軟に対応することが可能である。
【００６２】
【発明の効果】
本発明では、ＬＡＮ通信コントローラの専用プロセッサはその書き換え可能なＲＡＭに格納されたマイクロコードプログラムが変更可能であるため、柔軟にフィルタリング処理を行うことができるため、主プロセッサであるＣＰＵの負担を軽減させ、処理能力を向上させることができる。またマイクロコードプログラムをプログラマブルに書き換えることにより、トラフィックの状態に応じて優先度の高いパケットの廃棄を減らし、高いＱｏＳの通信を実現することが可能である。また、ＶＬＡＮを利用した場合にも、いままでＣＰＵで処理していたパケットがどのＶＬＡＮのものであるかをＬＡＮ通信コントローラで判定することができるため、ルータのＣＰＵの処理負担を軽減し、ルータとしてのパフォーマンスを向上させることができる。また、ＬＡＮ通信コントローラの専用プロセッサによる処理は、もともとＬＡＮ通信コントローラに内蔵されている専用プロセッサを利用するため、ＬＡＮ通信コントローラに書き換え可能なメモリを追加するだけで上述のＬＡＮ通信コントローラの機能を実現することができるため、ルータ装置の機能向上を安価に行うことができる。
【図面の簡単な説明】
【図１】本発明の実施の形態のルータ装置の構成を示す図
【図２】ＬＡＮ通信コントローラのＲＡＭの構成を示す図。
【図３】ＬＡＮ通信コントローラの別の構成を示す図。
【図４】ルータ装置の動作を説明するフローチャート。
【図５】ＬＡＮ通信コントローラのフィルタリング動作を説明するフローチャート。
【図６】フィルタリングリストの例を示す図。
【図７】ＣＰＵのルーティング動作を説明するフローチャート。
【図８】第一応用例のフィルタリング動作を説明するフローチャート。
【図９】第一応用例のフィルタリングリストの例を示す図。
【図１０】第二応用例のＬＡＮ通信コントローラの動作を説明するフローチャート。
【図１１】従来のルータ装置の構成を示す図。
【図１２】従来のルータ装置の動作を説明するフローチャート。
【符号の説明】
１００、１１００  ルータ装置
１０１  １１５、１１０１、１１１５  ＬＡＮ通信コントローラ
１０２、１１０２  専用プロセッサ
１０３、１１０３  ＲＯＭ
１０４  ＲＡＭ
１０５、１１０５  メモリバスインタフェース
１０６、１１０６  ＬＡＮインタフェース
１０７、１１０７、１１６、１１１６  ＬＡＮポート
１０８、１１０８  メモリ
１０９、１１０９  ＣＰＵ
１１０  １１１０  マイクロコード
１１１、１１１１  ルータ動作プログラム
１１２、１１１２  ルータ動作パラメータ
１１３、１１４、１１１３、１１１４  バッファ
【図１】
2004201164.tif 000003
【図２】
2004201164.tif 000004
【図３】
2004201164.tif 000005
【図４】
2004201164.tif 000006
【図５】
2004201164.tif 000007
【図６】
2004201164.tif 000008
【図７】
2004201164.tif 000009
【図８】
2004201164.tif 000010
【図９】
2004201164.tif 000011
【図１０】
2004201164.tif 000012
【図１１】
2004201164.tif 000013
【図１２】
2004201164.tif 000014