JP4079764B2 - Router device - Google Patents
Router device Download PDFInfo
- Publication number
- JP4079764B2 JP4079764B2 JP2002369416A JP2002369416A JP4079764B2 JP 4079764 B2 JP4079764 B2 JP 4079764B2 JP 2002369416 A JP2002369416 A JP 2002369416A JP 2002369416 A JP2002369416 A JP 2002369416A JP 4079764 B2 JP4079764 B2 JP 4079764B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- lan communication
- lan
- communication controller
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、LANなどのネットワークにおいて、パケット転送の処理を行うルータ装置に関する。本発明は、パケット転送におけるルーティング処理とともにフィルタリング処理を行うルータ装置に利用される。
【0002】
【従来の技術】
一般的に収容ポート数の少ない小型のルータでは価格対性能比を上げるため、CPUのソフトウェア処理によるパケット転送を行っている。
【0003】
従来のソフトウェア処理でパケット転送を行うルータ装置について図11を参照して説明する。図11において、LAN通信コントローラA1101はルータ装置の主メモリであるメモリ1108とLANポート1107との間で送受信データの転送を行う。なお、LAN通信コントローラB1115はLAN通信コントローラA1101と同じ構成でLANポートB1116に対してLAN通信コントローラA1101と同様の動作を行う。
【0004】
メモリ1108はCPU1109のルータ動作プログラム1111およびルーティングテーブルおよびフィルタリングリストを含むルータ動作パラメータ1112、さらに各LAN通信コントローラ1101および1115に送受信させる通信データの送受信バッファ1113および1114を格納する。
【0005】
CPU1109はメモリ1108に格納されたルータ動作プログラム1111を実行する。ルータ動作プログラム1111は以下の動作をCPU1109に行わせる。電源投入後の起動中処理として各LAN通信コントローラのメモリにLAN通信コントローラ用動作パラメータ(自己MACアドレス)を書き込み、起動後はパラメータにしたがったフィルタリング処理(フィルタリングリストに合致したパケットの廃棄)およびルーティング動作(受信IPパケットの宛先IPアドレスのルーティングテーブル検索による転送先LANポートの決定)によりIPパケット転送を行う。
【0006】
LAN通信コントローラ1101は専用プロセッサ1102とROM1103、メモリバスインタフェース1105、LANインタフェース1106を有し、LANポートA1107とメモリ1108との間で送受信通信データの転送を行う。
【0007】
専用プロセッサ1102はROM1103に格納されたマイクロコードプログラム1110を読み出して実行する。
【0008】
ROM1103はマイクロコードプログラム1110を格納する。マイクロコードプログラム1110は専用プロセッサ1102を一般的なLAN通信コントローラとしてメモリ1108内の送受信バッファ1113とLANインタフェース1106との間で通信データを送受信させるように動作させるプログラムである。
【0009】
次にこの従来の装置の動作をLANポートAからLANポートBへのパケット転送を例として図12に示すフローチャートを使用して説明する。
【0010】
LANポートAに通信データが届くとLAN通信コントローラA1101内の専用プロセッサ1102がROM1103内にあるマイクロコードプログラム1110にしたがって受信動作を開始し、まず、LAN上のフレームに含まれるMACアドレス(=LAN上の各LANポートの物理アドレス)について、その受信したフレームの送信先MACアドレスがブロードキャストアドレス(LAN上に存在するすべてのLANポート宛のアドレス)であるか、メモリ1108に格納されたルータ動作パラメータ1112の中に設定されている自己MACアドレスと一致するかどうかの判断を行い(1201)、いずれにも一致しない場合はそのフレームは自装置宛ではないため、それ以上の受信を行わずに中止する(1202)。いずれかに一致した場合は自装置宛のフレームであると判断して受信を続行し、受信が完了するまでメモリ1108の受信バッファ1113にそのフレームの受信データを順次転送する(1203)。転送完了後は受信待ちに戻る。
【0011】
次にCPU1109は受信バッファに通信データが届いているかどうかをチェックしており(1204)、受信データがあるとフィルタリング処理に移り、メモリ1108内にあるフィルタリングリストとの比較を行って、廃棄するか転送処理を行うかの判断を行う(1205)。次に転送処理ではメモリ1108内にあるルーティングテーブル検索を行って転送先LANポート(この例ではLANポートB)を決定する。続いてそのポートの送信バッファ1114に受信データを転送し、そのポートのLAN通信コントローラの動作パラメータに対して送信指示を出すことにより実際にLANポートB1116からデータが送信される。なお、ルーティングテーブル検索動作は、当業者にとってよく知られており、その詳細な動作は省略する。
【0012】
しかしながら、従来のソフトウェア処理でパケット転送を行うルータ装置においては、次のような問題がある。
【0013】
第1の問題は、CPUでフィルタ処理とルーティング処理の両方を行っているため、フィルタリング処理が不要で動作を止めてルーティング処理のみ行っている時に比べて、フィルタリング処理も行う時には装置としての転送能力が著しく落ちるということである。
【0014】
第2の問題は、CPUでフィルタリング処理とルーティング処理の両方を行っているため、フィルタリング処理とルーティング処理の両方を行っている時の転送能力を上げる際にはCPUの性能を上げるあるいはフィルタリング処理を専用にCPUをもう1台用意するなど大きくコストがかかるということである。
【0015】
そこで、CPUでのフィルタリング処理の負荷を軽減するためにLAN通信コントローラ側でフィルタリング処理を行い、CPUはルーティング処理を行うようにその処理を分担しようとする提案がなされている(特許文献1)。
【0016】
この特許文献1に記載された構成は、CPUの処理効率を上げるため、LAN通信コントローラ側にフィルタリング制御部を設け、受信したパケットとフィルタリングリストと比較して受信しないパケットは廃棄するフィルタリング処理を行い、CPUはフィルタリング処理が行われたパケットについてルーティング処理あるいはブリッジ処理を行うようにしたものである。
【0017】
【特許文献1】
特開平7−336384号公報
【0018】
【発明が解決しようとする課題】
しかしながら、この特許文献1では、各LAN通信コントローラに設けられたフィルタリング制御部は、受信したパケット(フレーム)から抽出されたMACアドレスをCAMに設定されたアドレスと比較して廃棄すべきパケットである場合にはその廃棄を指示する構成である。このフィルタリング制御部でのフィルタリング処理はCAMのアドレスの設定は変更可能であるが、フィルタリング動作そのものは固定的な処理であり、フィルタリング処理をトラフィックの状況に応じて動的に変化させたり、あるいはVLAN(Virtual Local Area Network)のように、同一のポートに複数の仮想チャネルが入出力される処理に対応する処理が柔軟に行うことができなかった。
【0019】
本発明は上述の課題に基づくもので、ルータの主CPUの負荷を軽減するとともに、各LAN通信コントローラが行うフィルタリング処理を動的に変化させることができるルータ装置を提供することを目的とする。また本発明は、同一ポートを複数のVLANで利用するような形態において、LAN通信コントーラ側において、どのVLANのパケットであるのかを判定して、主CPUにおけるルーティング処理負担を軽減してVLAN使用時のルータのコストパフォーマンスを低下させないルータ装置を提供することを目的とする。
【0020】
【発明が解決しようとする手段】
本発明では、ルータ装置の主プロセッサが主にルーティング処理を行い、LAN通信コントローラに設けられた専用プロセッサ(LAN通信プロセッサ)がLANとの間の送受信処理を行うとともに、フィルタリング処理を行って、主プロセッサとパケット転送処理の分担を行っている。
【0021】
各LAN通信コントローラは、専用プロセッサが実行する処理プログラムとしてのマイクロコードプログラムを格納する書き換え可能なメモリ手段を備えており、専用プロセッサはこのメモリ手段に格納されたマイクロコードプログラムによりその処理を行う。メモリ手段は書き換え可能であるため、専用プロセッサが実行するマイクロコードプログラムは、ルータ装置の状況に応じて動的に書き換えられる。すなわち、専用プロセッサが実行するマイクロコードはプログラマブルである。このため、例えば、フィルタリング処理で、ネットワークのトラフィックの状況に応じて主プロセッサの負荷が変化してくるので、書き換え可能メモリに格納されたマイクロコードプログラムを主プロセッサの負荷に応じてパケットの廃棄処理に優先度を設定したマイクロコードプログラムに変更して実行することで、トラフィックの状況に応じたフィルタリング処理を実行することができる。また、一つのLANポートを複数チャネルが接続されたように扱うVLANの場合には、LAN通信コントローラの専用プロセッサでどのVLANのパケットであるかを判定して転送先受信バッファに転送する。
【0022】
すなわち、本発明はパケットのルーティング処理を行う主プロセッサと、ルーティング処理プログラムならび転送処理を行うパケットが格納される主メモリと、ネットワークに接続され送受信されるパケットの送受信処理を行うLAN通信コントローラとを備え、前記LAN通信コントローラは、LANとの間でパケットの送受信処理を行うLANインタフェース部と、前記主プロセッサならびに主メモリが接続されるバスとのインタフェース処理を行うバスインタフェース部と、このLAN通信コントローラが行うパケットの送受信処理ならびにフィルタリング処理を行うLAN通信専用プロセッサとを備えたルータ装置において、前記LAN通信コントローラは、前記LAN通信専用プロセッサが実行する処理プログラムを書き換え可能に格納する書き換え可能なメモリ手段を備えたことを特徴とする。
【0023】
ここで、前記メモリ手段に格納される処理プログラムは、ルーティング処理を行う主プロセッサの負荷に応じて優先度が設定された複数のフィルタリングリストを含み、前記LAN通信専用プロセッサは、前記主プロセッサの負荷に応じて選択された優先度が設定されたフィルタリングリストに基づいてフィルタリング処理を実行する手段を含むことができる。また、前記メモリ手段に格納される処理プログラムは、一つのLAN通信コントローラが扱うLANが複数の仮想チャネルが設定されたVLANである場合に、当該VLANごとのパケットに付与されるタグを識別してパケットの送受信処理を行うプログラムであり、前記LAN通信専用プロセッサは、VLANごとのタグを識別してパケットの送受信処理を実行する手段を含むことができる。
【0024】
また、前記メモリ手段は、送受信処理を行うパケットを格納する送受信バッファとして用いられる領域と、前記専用プロセッサが実行する処理プログラムが格納される領域ならびに通信処理動作パラメータが格納される領域とに分割されて使用されることができる。
【0025】
【発明の実施の形態】
以下図面を参照して本発明の実施の形態を説明する。
【0026】
図1は、本発明の実施の形態の一例を示すルータ装置の構成を示す図であり、図2は、図1のLAN通信コントローラ中のRAM104の使用例を示す図、図3はLAN通信コントローラに二つのLANポートが設けられた例を示す図、図4は、この実施の形態でのパケット転送処理を示すフローチャート、図5は、LAN通信コントローラでのフィルタリング処理を説明するフローチャート、図6はフィルタリングリスト(テーブル)の例を示す図、図7はCPU109によるパケット転送処理を説明するフローチャートである。
【0027】
図1を参照すると、本発明の一実施例としてのソフトウェア処理でパケット転送を行うルータ装置100が示されている。
【0028】
図1において、ルータ装置100は、主にルーティング処理を行うルータ装置の主プロセッサになるCPU109、このCPU109がパケットルーティング処理に用いるメモリ108と、それぞれLANポートを備え、LANとのパケットの送受信制御およびCPU109、メモリ108とにバスによって接続される複数のLAN通信コントーラA1101、LAN通信コントローラB・・・を備えている。
【0029】
LAN通信コントローラ101は専用プロセッサ102とROM103、RAM104、メモリバスインタフェース105、LANインタフェース106を有し、LANポートA107とメモリ108との間で送受信通信データの転送と後述のマイクロコードプログラムによるフィルタリング処理を行う。
【0030】
RAM104はCPU109から書き換えが可能で、また専用プロセッサ102からも読み書きが可能で、図2に示すようにLAN通信コントローラとしての動作パラメータ201や通信データ一時保存バッファ203、専用プロセッサ102が実行できるマイクロコードプログラム202を格納する。
【0031】
専用プロセッサ102はROM103に格納されたマイクロコードプログラム110またはRAM104に格納されたマイクロコードプログラム202を読み出して実行する。
【0032】
ROM103はマイクロコードプログラム110を格納する。マイクロコードプログラム110は専用プロセッサ102をRAM104に格納された動作パラメータ201にしたがって一般的なLAN通信コントローラとしてメモリ108とLANインタフェース106との間で通信データを転送させるように動作させ、さらにRAM104内のマイクロコードプログラム202を実行させるプログラムである。
【0033】
マイクロコードプログラム202は専用プロセッサ102をメモリ108とLANインタフェース106との間で転送される転送データに対してパターンマッチによる比較とその結果に基づく処理、すなわちフィルタリング処理を行わせるプログラムである。
【0034】
LAN通信コントローラB115はLAN通信コントローラA101と全く同一構成でLANポートB116に対して同様の動作を行う。
【0035】
メモリ108はCPU109のルータ動作プログラム111およびルータ動作パラメータ112、さらにLAN通信コントローラ101または115に送受信させる通信データの送受信バッファ113、114を格納する。
【0036】
CPU109はメモリ108に格納されたルータ動作プログラム111を実行する。ルータ動作プログラム111は以下の動作をCPUに行わせる。
【0037】
電源投入後の起動中処理としてRAM104などの各LAN通信コントローラのRAMにLAN通信コントローラ用動作パラメータ(自己MACアドレスとマイクロコード実行フラグのセット)とフィルタ動作を行うマイクロコードを書き込み、起動後はパラメータにしたがったルーティング動作(受信IPパケットの宛先IPアドレスのルーティングテーブル検索による転送先LANポートの決定)によりIPパケット転送を行う。
【0038】
以上詳細に実施例の構成を述べたが、図1のメモリ108に格納されたルータ動作ソフトウェアのルーティング検索動作は、当業者にとってよく知られているので、その詳細な説明は省略する。
【0039】
なお、上記図1に示すルータ装置の説明では、各LANポート毎にLAN通信コントローラを設けているが、図3のように1つのLAN通信コントローラで2つのLANポートの処理を行ってもよい。
【0040】
次に図1のルータ装置100の動作をLANポートA107からLANポートB116へのIPパケット転送を例として図4に示すフローチャートを使用して説明する。
【0041】
なお、図1のRAM104については、動作パラメータには自己MACアドレスとマイクロコード実行フラグが、またマイクロコードプログラム格納エリアには後述のフィルタリング動作を行うマイクロコードプログラムが、装置電源投入後のCPU109による初期化動作時に、予め書き込まれている。
【0042】
図4において、LANポートA107にLANポートB116宛の転送すべきパケットが載ったLAN上のフレームが到着すると、LAN通信コントローラA101では図1のROM103に格納されたマイクロコードプログラムにしたがって以下の動作を専用プロセッサ102が開始する。
【0043】
まず、LAN上のフレームに含まれるMACアドレス(=LAN上の各LANポートの物理アドレス)について、その受信したフレームの送信先MACアドレスがブロードキャストアドレス(LAN上に存在するすべてのLANポート宛のアドレス)であるか、または図1のRAM104に格納された動作パラメータの中に設定されている自己MACアドレスと一致するかどうかの判定を行い(401)、いずれにも一致しない場合はそのフレームは自装置宛ではないため受信対象外とし、それ以上の受信は行わない(402)。
【0044】
いずれかに一致した場合は自装置宛のフレームであると判断して受信を続行し、受信が完了するまで図1のRAM104の通信データ一時保存バッファにそのフレームの受信データを順次転送する。転送完了後、図1のRAM104に格納された動作パラメータのマイクロコード実行フラグがセットされているため、後述のフィルタリング動作(403)のマイクロコードプログラムを呼び出し実行する。その結果、廃棄と判定された場合には通信データ一時保存バッファ203にあるデータは廃棄して受信待ちに戻り、転送処理と判定された場合には通信データ一時保存バッファ203にあるデータをメモリ108の受信バッファ113へ転送(404)した後、受信待ちに戻る。
【0045】
ここで、フィルタリング動作(403)を行うマイクロコードプログラムについて図5に示すフローチャートおよび図6に示すフィルタリングリストの例を使用して説明する。
【0046】
まず図6のようなフィルタリングリストはマイクロコードプログラムの一部として含まれており、ユーザが予め転送対象とせずに受信しても廃棄するとしたIPパケットのヘッダ情報が少なくとも1つは登録されている。
【0047】
専用プロセッサ102はフィルタリングリスト206にある最初のヘッダ情報を読み出して通信データ一時保存バッファにある受信データに含まれるIPパケットのヘッダと比較し(501)、完全に一致すれば廃棄と判断してROM103のマイクロコードプログラム110に戻る(502)。一致しなければフィルタリングリストに次のヘッダ情報があるかを調べ(503)、存在しなければリスト中のすべてに一致しなかったことになるため、転送処理と判定してROM103のマイクロコードプログラム110に戻る(504)。次のヘッダ情報が存在していればそのヘッダ情報を読み出して(505)、通信データ一時保存バッファにあるIPパケットのヘッダとの比較(501)に戻る。ここまでがフィルタリング動作(403)の動作説明である。
【0048】
続いてフィルタリングリストの対象とならずメモリ108の受信バッファに転送された後のCPU109によるルーティング動作(405)について説明する。CPU109はルータ動作プログラム111にしたがって動作しており、そのソフトウェアの動作は図7に示すフローチャートのとおりである。
【0049】
まずCPU109は各LANポートの受信バッファに通信データが届いていないかどうかを他の処理がない時には常にチェックしており(701)、いずれかの受信バッファに受信データが1つでも届いていれば次の処理に移る。次にルーティングテーブル検索を行って転送先LANポート(この例ではLANポートB)を決定し(702)、そのポートの送信バッファに受信データを転送して(703)、そのポートのLAN通信コントローラの動作パラメータに対して送信指示を出した(704)後、再び受信バッファチェックに戻る。なお、ルーティングテーブル検索動作は、当業者にとってよく知られているため、その詳細な動作の説明は省略する。ここまでがCPU109のルーティング動作(405)の説明である。
【0050】
続いて図7の704にて送信指示を受けたLAN通信コントローラB115では、マイクロコードプログラムに、動作パラメータを通じてCPU109から送信指示があった時には送信バッファから通信データを順次読み出してLANインタフェースに転送するようにプログラムされているため、それにしたがって専用プロセッサが動作し、送信バッファ114からデータが読み出されてLANポートB116にデータが送信される。
【0051】
以上説明した発明の構成においては、フィルタリング処理をLAN通信コントローラで行い、CPUはルーティング処理に専念できるので、フィルタリング処理もCPUで行っている場合に比べて転送能力を向上できる。また、LAN通信コントローラでフィルタリング動作を行うマイクロコードプログラムをLAN通信コントローラRAMに格納しているので、CPUで処理した場合と同様の様々なフィルタ機能をCPUの処理を行わずに実現できる。さらに、CPUではなく、LAN通信コントローラに元々内蔵されている専用プロセッサを利用しているので、LAN通信コントローラへのRAMの追加だけで実現できるため、安価にルータ装置を実現できる。
【0052】
(応用例)
本発明の書き換え可能なメモリをLAN通信コントローラに設けて、専用プロセッサが実行する処理に必要なマイクロコードプログラムを書き換える構成での実施の形態を応用した例を説明する。
【0053】
(第一応用例)
そのルータ装置の基本的構成は図1に示した構成と同じであるが、LAN通信コントローラでのフィルタリングリストと受信データの比較を行うマイクロコードプログラムについてさらに工夫することにより、新たなルータ装置としての機能を発揮できる。
【0054】
そのフローチャートを図8に、フィルタリングリストの例を図9に示す。図8において、801はメモリ108の当該LANポートの受信バッファのうちの空いているものの割合からCPU109の負荷を高(例えば30%以下)/中(例えば50%以下)/低(例えば50%以上)に分類している。また図9は廃棄するパケットのヘッダ情報に優先度を追加したフィルタリングリストである。
【0055】
ここで優先度の定義は次のとおりである。Aは優先度が高く、負荷が中または低であればこのリストは無効としてヘッダ情報の比較をしない。Bは優先度が中間で、負荷が低であればこのリストは無効としてヘッダ情報の比較をしない。Cは優先度が低く、負荷の状態によらずリストは有効である。有効なリストについてはヘッダ情報の比較を行い、一致したら廃棄する。続いて802の処理ではそのリストの優先度と801で分類した負荷とを比較してリストが有効かを判断する。
【0056】
このように、本第一応用例では、CPUの負荷状態に対応して転送優先度に応じたフィルタリング動作を行えるので、CPUの負荷が高くて受信バッファが残り少ない時に優先度の高いパケットだけを受信バッファに転送して高優先度のパケットの廃棄を減らす、すなわち入力QoSの実現ができるという効果が得られる。
【0057】
(第二応用例)
本発明のさらに別の応用例として、その基本的構成は図1に示す構成と同じであるが、LAN通信コントローラのマイクロコードプログラムについてさらに工夫することで、新たな機能を発揮できる。
【0058】
この第二応用例では同一ポートで2つのVLANを利用している際に、受信データがどちらのVLANかの判定をCPUではなく、LAN通信コントローラのマイクロコードプログラムで行わせている。その動作例を図10に示すフローチャートを使用して説明する。MACアドレスの確認で受信対象となり、通信データ一時バッファに転送された受信データに対して、含まれるVLANタグの値が1であるか2であるかをチェックして2つのVLANのいずれかを判断する(図1001)。続いてその分岐先では各VLAN受信バッファにその受信フレームを転送している。
【0059】
このように、本応用例では、LAN通信コントローラで判定してVLAN毎の受信バッファに転送するので、CPUでのどのVLANのものかを判定する必要がなく、CPUで判定していた場合に比べて、VLAN使用時に装置としてのルーティング能力が落ちないという効果が得られる。
【0060】
以上の発明の実施の形態の説明ならびに応用例の説明では、RAMをバッファとマイクロコードプログラムと動作パラメータとの格納用として使用する例で説明したが、バッファとして使用するメモリは別途設けてもよい。また、IPパケットを一時保存するバッファを別途設けたときは、マイクロコードプログラムを格納するRAMは、専用プロセッサからは動作パラメータ、フィルタリングリストの読み出しが主となり、書き込み回数がそれほどではなくなるので、書き込み回数が少なくてもよいEEROMやフラッシュメモリなどで構成されたメモリでもよい。
【0061】
さらに、マイクロコードプログラムを格納するROMは、マイクロコードプログラムが書き換え可能であるメモリ、例えばEEROM、SRAM等を用い、外部からLAN通信コントローラが実行する処理内容を書き換えることができる構成にしてもよい。外部からマイクロコードプログラムを書き換えることにより、LAN構成の変更、処理内容の変更、バージョンの変更に柔軟に対応することが可能である。
【0062】
【発明の効果】
本発明では、LAN通信コントローラの専用プロセッサはその書き換え可能なRAMに格納されたマイクロコードプログラムが変更可能であるため、柔軟にフィルタリング処理を行うことができるため、主プロセッサであるCPUの負担を軽減させ、処理能力を向上させることができる。またマイクロコードプログラムをプログラマブルに書き換えることにより、トラフィックの状態に応じて優先度の高いパケットの廃棄を減らし、高いQoSの通信を実現することが可能である。また、VLANを利用した場合にも、いままでCPUで処理していたパケットがどのVLANのものであるかをLAN通信コントローラで判定することができるため、ルータのCPUの処理負担を軽減し、ルータとしてのパフォーマンスを向上させることができる。また、LAN通信コントローラの専用プロセッサによる処理は、もともとLAN通信コントローラに内蔵されている専用プロセッサを利用するため、LAN通信コントローラに書き換え可能なメモリを追加するだけで上述のLAN通信コントローラの機能を実現することができるため、ルータ装置の機能向上を安価に行うことができる。
【図面の簡単な説明】
【図1】本発明の実施の形態のルータ装置の構成を示す図
【図2】LAN通信コントローラのRAMの構成を示す図。
【図3】LAN通信コントローラの別の構成を示す図。
【図4】ルータ装置の動作を説明するフローチャート。
【図5】LAN通信コントローラのフィルタリング動作を説明するフローチャート。
【図6】フィルタリングリストの例を示す図。
【図7】CPUのルーティング動作を説明するフローチャート。
【図8】第一応用例のフィルタリング動作を説明するフローチャート。
【図9】第一応用例のフィルタリングリストの例を示す図。
【図10】第二応用例のLAN通信コントローラの動作を説明するフローチャート。
【図11】従来のルータ装置の構成を示す図。
【図12】従来のルータ装置の動作を説明するフローチャート。
【符号の説明】
100、1100 ルータ装置
101 115、1101、1115 LAN通信コントローラ
102、1102 専用プロセッサ
103、1103 ROM
104 RAM
105、1105 メモリバスインタフェース
106、1106 LANインタフェース
107、1107、116、1116 LANポート
108、1108 メモリ
109、1109 CPU
110 1110 マイクロコード
111、1111 ルータ動作プログラム
112、1112 ルータ動作パラメータ
113、114、1113、1114 バッファ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a router apparatus that performs packet transfer processing in a network such as a LAN. The present invention is used in a router apparatus that performs a filtering process together with a routing process in packet transfer.
[0002]
[Prior art]
In general, a small router with a small number of accommodating ports performs packet transfer by CPU software processing in order to increase the price-performance ratio.
[0003]
A router apparatus that performs packet transfer by conventional software processing will be described with reference to FIG. In FIG. 11, a LAN
[0004]
The
[0005]
The
[0006]
The
[0007]
The
[0008]
The
[0009]
Next, the operation of this conventional apparatus will be described with reference to the flowchart shown in FIG. 12, taking as an example the packet transfer from LAN port A to LAN port B.
[0010]
When communication data arrives at the LAN port A, the
[0011]
Next, the
[0012]
However, a router device that performs packet transfer by conventional software processing has the following problems.
[0013]
The first problem is that both the filtering process and the routing process are performed by the CPU, so that the filtering capability is not necessary and the transfer capability as a device when the filtering process is performed as compared with the case where only the routing process is performed. Is significantly reduced.
[0014]
The second problem is that both the filtering process and the routing process are performed by the CPU. Therefore, when the transfer capability is increased when both the filtering process and the routing process are performed, the CPU performance is increased or the filtering process is performed. This means that there is a large cost such as preparing another CPU for exclusive use.
[0015]
Therefore, a proposal has been made to perform filtering processing on the LAN communication controller side in order to reduce the filtering processing load on the CPU, and to share the processing so that the CPU performs routing processing (Patent Document 1).
[0016]
In the configuration described in
[0017]
[Patent Document 1]
JP 7-336384 A
[0018]
[Problems to be solved by the invention]
However, in
[0019]
The present invention is based on the above-described problems, and an object thereof is to provide a router device that can reduce the load on the main CPU of the router and can dynamically change the filtering process performed by each LAN communication controller. Further, in the present invention, in a form in which the same port is used in a plurality of VLANs, the LAN communication controller side determines which VLAN packet is used, and reduces the routing processing load on the main CPU to use the VLAN. An object of the present invention is to provide a router device that does not lower the cost performance of the router.
[0020]
Means to be Solved by the Invention
In the present invention, the main processor of the router apparatus mainly performs routing processing, and a dedicated processor (LAN communication processor) provided in the LAN communication controller performs transmission / reception processing with the LAN and performs filtering processing. The processor and the packet transfer process are shared.
[0021]
Each LAN communication controller is provided with rewritable memory means for storing a microcode program as a processing program executed by the dedicated processor, and the dedicated processor performs the process by the microcode program stored in the memory means. Since the memory means is rewritable, the microcode program executed by the dedicated processor is dynamically rewritten according to the status of the router device. That is, the microcode executed by the dedicated processor is programmable. For this reason, for example, in the filtering process, the load on the main processor changes according to the traffic situation of the network. Therefore, the microcode program stored in the rewritable memory can be discarded according to the load on the main processor. By changing to a microcode program in which priority is set to and executing it, a filtering process according to the traffic situation can be executed. In the case of a VLAN that handles a single LAN port as if multiple channels are connected, the dedicated processor of the LAN communication controller determines which VLAN packet it is and transfers it to the transfer destination reception buffer.
[0022]
That is, the present invention comprises a main processor that performs packet routing processing, a main memory that stores packets for routing processing programs and transfer processing, and a LAN communication controller that is connected to a network and performs transmission / reception processing for packets transmitted and received. The LAN communication controller includes a LAN interface unit that performs transmission / reception processing of packets with the LAN, a bus interface unit that performs interface processing with a bus to which the main processor and the main memory are connected, and the LAN communication controller. In the router apparatus provided with a processor dedicated to LAN communication that performs packet transmission / reception processing and filtering processing performed by the LAN, the LAN communication controller can rewrite a processing program executed by the LAN communication dedicated processor. Characterized by comprising a memory means capable of rewriting to be stored.
[0023]
Here, the processing program stored in the memory means includes a plurality of filtering lists in which priorities are set according to the load of the main processor that performs routing processing, and the processor dedicated to LAN communication includes the load of the main processor And a means for executing a filtering process based on a filtering list in which a priority selected in accordance with is set. The processing program stored in the memory means identifies a tag attached to a packet for each VLAN when the LAN handled by one LAN communication controller is a VLAN in which a plurality of virtual channels are set. It is a program for performing packet transmission / reception processing, and the processor dedicated to LAN communication can include means for identifying a tag for each VLAN and executing packet transmission / reception processing.
[0024]
The memory means is divided into an area used as a transmission / reception buffer for storing a packet for transmission / reception processing, an area for storing a processing program executed by the dedicated processor, and an area for storing a communication processing operation parameter. Can be used.
[0025]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
[0026]
FIG. 1 is a diagram showing a configuration of a router apparatus showing an example of an embodiment of the present invention, FIG. 2 is a diagram showing an example of use of a
[0027]
Referring to FIG. 1, there is shown a
[0028]
In FIG. 1, a
[0029]
The
[0030]
The
[0031]
The
[0032]
The
[0033]
The
[0034]
The LAN communication controller B115 performs the same operation on the LAN port B116 with exactly the same configuration as the LAN communication controller A101.
[0035]
The
[0036]
The
[0037]
As a process during startup after power-on, the LAN communication controller operation parameters (set of the self MAC address and microcode execution flag) and microcode for performing the filter operation are written in the RAM of each LAN communication controller such as the
[0038]
Although the configuration of the embodiment has been described in detail above, the routing search operation of the router operation software stored in the
[0039]
In the description of the router device shown in FIG. 1, a LAN communication controller is provided for each LAN port. However, two LAN ports may be processed by one LAN communication controller as shown in FIG.
[0040]
Next, the operation of the
[0041]
In the
[0042]
In FIG. 4, when a frame on the LAN carrying a packet to be transferred to the
[0043]
First, for a MAC address included in a frame on the LAN (= physical address of each LAN port on the LAN), the destination MAC address of the received frame is a broadcast address (addresses to all LAN ports existing on the LAN) ) Or the self-MAC address set in the operation parameter stored in the
[0044]
If it matches any of the frames, it is determined that the frame is addressed to its own device, and the reception is continued. The received data of the frame is sequentially transferred to the communication data temporary storage buffer of the
[0045]
Here, the microcode program for performing the filtering operation (403) will be described using the flowchart shown in FIG. 5 and the example of the filtering list shown in FIG.
[0046]
First, the filtering list as shown in FIG. 6 is included as a part of the microcode program, and at least one header information of the IP packet that the user discards even if it is received without being subject to transfer in advance is registered. .
[0047]
The
[0048]
Next, the routing operation (405) by the
[0049]
First, the
[0050]
Subsequently, in the LAN communication controller B115 that receives the transmission instruction at 704 in FIG. 7, when there is a transmission instruction from the
[0051]
In the configuration of the invention described above, the filtering process is performed by the LAN communication controller and the CPU can concentrate on the routing process, so that the transfer capability can be improved as compared with the case where the filtering process is also performed by the CPU. In addition, since the microcode program for performing the filtering operation by the LAN communication controller is stored in the LAN communication controller RAM, various filter functions similar to those performed by the CPU can be realized without performing the processing of the CPU. Furthermore, since a dedicated processor originally incorporated in the LAN communication controller is used instead of the CPU, the router device can be realized at low cost because it can be realized only by adding RAM to the LAN communication controller.
[0052]
(Application examples)
An example will be described in which the rewritable memory of the present invention is provided in a LAN communication controller, and an embodiment in which the microcode program necessary for processing executed by a dedicated processor is rewritten is applied.
[0053]
(First application example)
The basic configuration of the router device is the same as the configuration shown in FIG. 1, but by further devising a microcode program that compares the filtering list and received data in the LAN communication controller, The function can be demonstrated.
[0054]
The flowchart is shown in FIG. 8, and an example of the filtering list is shown in FIG. In FIG. 8,
[0055]
Here, the definition of priority is as follows. If A has a high priority and the load is medium or low, this list is invalid and the header information is not compared. If the priority of B is medium and the load is low, this list is invalid and the header information is not compared. C has a low priority, and the list is valid regardless of the load state. For valid lists, compare header information and discard if they match. Subsequently, in the
[0056]
As described above, in the first application example, since the filtering operation according to the transfer priority can be performed in accordance with the load state of the CPU, only the high priority packet is received when the CPU load is high and the reception buffer is low. The effect of reducing the discard of high priority packets by transferring to the buffer, that is, realizing the input QoS can be obtained.
[0057]
(Second application example)
As another application example of the present invention, the basic configuration is the same as the configuration shown in FIG. 1, but a new function can be exhibited by further devising the microcode program of the LAN communication controller.
[0058]
In this second application example, when two VLANs are used on the same port, the determination of which VLAN the received data is is performed by the microcode program of the LAN communication controller instead of the CPU. An example of the operation will be described with reference to the flowchart shown in FIG. Checks whether the VLAN tag value is 1 or 2 for the received data transferred to the communication data temporary buffer, which is subject to reception when the MAC address is confirmed, and determines one of the two VLANs. (FIG. 1001). Subsequently, the reception frame is transferred to each VLAN reception buffer at the branch destination.
[0059]
As described above, in this application example, since the determination is made by the LAN communication controller and the data is transferred to the reception buffer for each VLAN, it is not necessary to determine which VLAN in the CPU, and compared with the case where the determination is made by the CPU. Thus, there is an effect that the routing capability as a device does not deteriorate when the VLAN is used.
[0060]
In the above description of the embodiment of the invention and the description of the application example, the RAM is used as an example for storing the buffer, the microcode program, and the operation parameter. However, the memory used as the buffer may be provided separately. . In addition, when a buffer for temporarily storing IP packets is separately provided, the RAM for storing the microcode program mainly reads the operation parameters and the filtering list from the dedicated processor, and the number of times of writing is not so large. It may be a memory composed of an EEROM, a flash memory, or the like, which may be less.
[0061]
Further, the ROM for storing the microcode program may be configured such that the processing contents executed by the LAN communication controller from the outside can be rewritten using a memory in which the microcode program can be rewritten, for example, EEROM, SRAM or the like. By rewriting the microcode program from the outside, it is possible to flexibly cope with changes in the LAN configuration, changes in processing contents, and changes in version.
[0062]
【The invention's effect】
In the present invention, the dedicated processor of the LAN communication controller can change the microcode program stored in its rewritable RAM, so that the filtering process can be performed flexibly, reducing the burden on the CPU as the main processor. And the processing capacity can be improved. In addition, by rewriting the microcode program in a programmable manner, it is possible to reduce the discard of packets with high priority according to the traffic state and realize high QoS communication. Further, even when a VLAN is used, since the LAN communication controller can determine which VLAN the packet that has been processed by the CPU so far is, the processing load on the CPU of the router is reduced. As a performance can be improved. In addition, the processing by the dedicated processor of the LAN communication controller uses the dedicated processor originally built in the LAN communication controller, so the above-mentioned functions of the LAN communication controller are realized simply by adding a rewritable memory to the LAN communication controller. Therefore, the function of the router device can be improved at a low cost.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of a router device according to an embodiment of the present invention.
FIG. 2 is a diagram showing a configuration of a RAM of a LAN communication controller.
FIG. 3 is a diagram showing another configuration of the LAN communication controller.
FIG. 4 is a flowchart for explaining the operation of the router device.
FIG. 5 is a flowchart for explaining a filtering operation of the LAN communication controller.
FIG. 6 is a diagram showing an example of a filtering list.
FIG. 7 is a flowchart for explaining a CPU routing operation.
FIG. 8 is a flowchart for explaining a filtering operation of the first application example.
FIG. 9 is a diagram showing an example of a filtering list of the first application example.
FIG. 10 is a flowchart for explaining the operation of the LAN communication controller of the second application example.
FIG. 11 is a diagram showing a configuration of a conventional router device.
FIG. 12 is a flowchart for explaining the operation of a conventional router device.
[Explanation of symbols]
100, 1100 router device
101 115, 1101, 1115 LAN communication controller
102, 1102 dedicated processor
103, 1103 ROM
104 RAM
105, 1105 Memory bus interface
106, 1106 LAN interface
107, 1107, 116, 1116 LAN port
108, 1108 memory
109, 1109 CPU
110 1110 Microcode
111, 1111 router operation program
112, 1112 Router operating parameters
113, 114, 1113, 1114 buffer
Claims (3)
前記LAN通信コントローラは、LANとの間でパケットの送受信処理を行うLANインタフェース部と、前記主プロセッサならびに主メモリが接続されるバスとのインタフェース処理を行うバスインタフェース部と、このLAN通信コントローラが行うパケットの送受信処理ならびにフィルタリング処理を行うLAN通信専用プロセッサとを備えた
ルータ装置において、
前記LAN通信コントローラは、前記LAN通信専用プロセッサが実行する処理プログラムを書き換え可能に格納する書き換え可能なメモリ手段を備え、
前記メモリ手段に格納される処理プログラムは、ルーティング処理を行う主プロセッサの負荷に応じて優先度が設定された複数のフィルタリングリストを含み、前記LAN通信専用プロセッサは、前記主プロセッサの負荷に応じて選択された優先度が設定されたフィルタリングリストに基づいてフィルタリング処理を実行する手段を含む
ことを特徴とするルータ装置。A main processor for performing packet routing processing, a main memory for storing packets for routing processing programs and transfer processing, and a LAN communication controller for performing transmission / reception processing for packets transmitted and received connected to the network,
The LAN communication controller performs a LAN interface unit that performs packet transmission / reception processing with a LAN, a bus interface unit that performs interface processing with the bus to which the main processor and main memory are connected, and the LAN communication controller. In a router device equipped with a dedicated processor for LAN communication that performs packet transmission / reception processing and filtering processing,
The LAN communication controller includes rewritable memory means for storing a processing program executed by the processor dedicated to LAN communication in a rewritable manner,
The processing program stored in the memory means includes a plurality of filtering lists in which priorities are set according to the load of the main processor that performs routing processing, and the processor dedicated to LAN communication corresponds to the load of the main processor A router device comprising: means for performing filtering processing based on a filtering list in which a selected priority is set .
前記LAN通信コントローラは、LANとの間でパケットの送受信処理を行うLANインタフェース部と、前記主プロセッサならびに主メモリが接続されるバスとのインタフェース処理を行うバスインタフェース部と、このLAN通信コントローラが行うパケットの送受信処理ならびにフィルタリング処理を行うLAN通信専用プロセッサとを備えた
ルータ装置において、
前記LAN通信コントローラは、前記LAN通信専用プロセッサが実行する処理プログラムを書き換え可能に格納する書き換え可能なメモリ手段を備え、
前記メモリ手段は、送受信処理を行うパケットを格納する送受信バッファとして用いられる領域と、前記専用プロセッサが実行する処理プログラムが格納される領域ならびに通信処理動作パラメータが格納される領域とに分割されて使用される
ことを特徴とするルータ装置。 A main processor for performing packet routing processing, a main memory for storing packets for routing processing programs and transfer processing, and a LAN communication controller for performing transmission / reception processing for packets transmitted and received connected to the network,
The LAN communication controller performs a LAN interface unit that performs packet transmission / reception processing with a LAN, a bus interface unit that performs interface processing with the bus to which the main processor and main memory are connected, and the LAN communication controller. A dedicated processor for LAN communication that performs packet transmission / reception processing and filtering processing
In the router device,
The LAN communication controller includes rewritable memory means for storing a processing program executed by the processor dedicated to LAN communication in a rewritable manner,
The memory means is divided into an area used as a transmission / reception buffer for storing packets for transmission / reception processing, an area for storing a processing program executed by the dedicated processor, and an area for storing communication processing operation parameters. Be done
A router device characterized by that .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002369416A JP4079764B2 (en) | 2002-12-20 | 2002-12-20 | Router device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002369416A JP4079764B2 (en) | 2002-12-20 | 2002-12-20 | Router device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004201164A JP2004201164A (en) | 2004-07-15 |
JP4079764B2 true JP4079764B2 (en) | 2008-04-23 |
Family
ID=32765648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002369416A Expired - Lifetime JP4079764B2 (en) | 2002-12-20 | 2002-12-20 | Router device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4079764B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4648182B2 (en) | 2005-12-19 | 2011-03-09 | 富士通株式会社 | Packet relay system |
CN100365575C (en) * | 2006-03-18 | 2008-01-30 | 华为技术有限公司 | Method for realizing network processor dynamic loading micro code and network device |
-
2002
- 2002-12-20 JP JP2002369416A patent/JP4079764B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2004201164A (en) | 2004-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7558268B2 (en) | Apparatus and method for combining forwarding tables in a distributed architecture router | |
JP5962808B2 (en) | Switch system, switch control method, and storage medium | |
JP4115721B2 (en) | Classification and tagging rules for switching nodes | |
US7646790B2 (en) | Communications processor | |
US6798788B1 (en) | Arrangement determining policies for layer 3 frame fragments in a network switch | |
US6571291B1 (en) | Apparatus and method for validating and updating an IP checksum in a network switching system | |
US6032190A (en) | System and method for processing data packets | |
JPH10262075A (en) | Switching hub | |
JP2002314571A5 (en) | ||
US7248584B2 (en) | Network packet processing | |
JP2004159019A (en) | Extended vlan tag swap system | |
US7245615B1 (en) | Multi-link protocol reassembly assist in a parallel 1-D systolic array system | |
JP4079764B2 (en) | Router device | |
JP2005260415A (en) | Network repeating device | |
WO2024083219A1 (en) | Message processing method and apparatus, and device and storage medium | |
JP4766344B2 (en) | Information processing apparatus and frame relay method | |
JP4029708B2 (en) | Router device and transfer control method | |
WO1999014893A2 (en) | Multi-port bridge with triplet architecture and periodical update of address look-up table | |
JP2790550B2 (en) | Gateway device | |
JP2003158523A (en) | Packet communication apparatus | |
JP3508057B2 (en) | Layer 3 switch | |
JP3831920B2 (en) | Data transfer device, data transfer method, data transfer program, and storage medium on which data transfer program is recorded | |
JP2002281071A (en) | Router device and ip filtering processing method to be used for the same device and its program | |
US20070140249A1 (en) | Processor comprising components | |
JP2000092082A (en) | Network address converter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051115 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20070307 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071005 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071016 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071214 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080205 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110215 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4079764 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120215 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120215 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130215 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130215 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140215 Year of fee payment: 6 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |