(57)【要約】【課題】従来のネットワーク中継装置ではＦＰＧＡの機能更新を行う際は、ＦＰＧＡ搭載ボードの電源を遮断し、ボード再起動を行う必要がある。このため、通信断もしくは中継性能の帯域縮退が起きてしまう。【解決手段】機能更新対象であるＦＰＧＡとバス接続されているデバイスの間にバスホルダを取り付け、ＦＰＧＡ機能更新中は各デバイスとＦＰＧＡを電気的に遮断する。ＦＰＧＡ機能更新中も各デバイスにアクセス可能であるため、ネットワーク中継性能を維持できる。【選択図】図４
2010166488.tif 000002
【特許請求の範囲】
【請求項１】
受信したパケットから宛先情報を解析する第１の論理回路と、受信した宛先情報から送信先宛先を検索する第２の論理回路と、前記第１および前記第２の論理回路の動作補助回路を搭載するプログラマブル論理回路と、前記第１および前記第２の論理回路と前記プログラマブル論理回路に接続されるデバイス間にバスホルダ回路とを有するネットワーク中継装置。
【請求項２】
請求項１に記載のネットワーク中継装置であって、
前記プログラマブル論理回路が機能更新中に受信した前記プログラマブル論理回路による処理が必要なデータを一時的に格納するメモリをさらに有するネットワーク中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル論理回路（以下ＦＰＧＡ）を搭載するネットワーク中継装置に係り、中継機能を維持したままＦＰＧＡの機能更新を行なうネットワーク中継装置に関する。
【背景技術】
【０００２】
従来のネットワーク中継装置は、装置全体の制御と、パケット転送先決定に必要な情報の管理を行なうコントロールプレーン部と、パケットの転送処理回路とパケット送受信のための物理インタフェースをもつフォワーディングエンジン部で構成される。また、ネットワーク中継装置は、特許文献１のような技術、構造を用い、フォワーディングエンジン部に１ないし複数のパケットエンジン論理回路を組み込み。論理回路により、ソフトウェアにて行なわれる処理の一部をハードウェアで代替処理を行なうことでパケット処理の高速化を行なうことができる。この結果、より高速なネットワーク中継を実現している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２２８４９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワーク中継装置技術に搭載されたＦＰＧＡの機能更新を行なう方式は、更新対象であるＦＰＧＡの新規コンフィグレーションデータを、ＦＰＧＡを搭載しているフォワーディングエンジン部ボード（以下ボード）のメモリに書込み、書込み完了後一旦ボードの電源を遮断し、ボードを再起動しＦＰＧＡの再ロードを行なう（ハードウェアリセットと同意）。ことによりＦＰＧＡ機能更新を完了させる方式であるため、電源断からボードの初期設定完了までの期間は、通信断となっている。
【０００５】
また、装置を二重化運用した場合においては、通信を片側のボードに集中させ、機能更新を行なうボードを無通信の状態を可能とし、ＦＰＧＡの機能更新を行っている。この場合通信断は発生しないが、機能更新中はネットワーク中継装置の帯域縮退が起きるという問題がある。
【０００６】
さらに、ボードの電源断をせずにＦＰＧＡの機能更新を行なうことは可能である。しかし、機能更新中はＦＰＧＡからの出力信号線が電気的に不定状態となってしまう。このため、ＦＰＧＡに接続されるデバイスが誤作動を起こしてしまう危険性がある。
本発明は、ＦＰＧＡを搭載するネットワーク中継装置において、中継機能を維持したままＦＰＧＡの機能更新を行なうネットワーク中継装置を提供する。
【課題を解決するための手段】
【０００７】
そこで、ＦＰＧＡと、ネットワーク中継に必要なデバイスを接続するバスの間にバスホルダ回路を接続し、ＦＰＧＡを電気的に他デバイスから分離する。これにより、ＦＰＧＡ出力信号線が不定状態であることに起因するデバイス誤作動を防ぎ、通常のネットワーク中継性能、機能を維持したままでのＦＰＧＡ機能更新を実現する。機能更新中に受信したエラーパケットに関しては装置内の他デバイス、または送信側装置にて廃棄を行なう。また、ＦＰＧＡは、受信したパケットがパケットエンジン論理回路内の連想メモリに未登録のパケット宛先情報を含んでいた場合、連想メモリにパケット宛先情報を登録する機能を備えているが、機能更新中で機能が動作できない期間に受信したパケットに、ＦＰＧＡによる処理が必要なパケット宛先情報が含まれている場合に関しては、メモリにパケット宛先情報を格納し、機能更新完了後にＦＰＧＡにて処理を行う。
【０００８】
上述した課題は、受信したパケットから宛先情報を解析する第１の論理回路と、受信した宛先情報から送信先宛先を検索する第２の論理回路と、第１および第２の論理回路の動作補助回路を搭載するプログラマブル論理回路と、第１および第２の論理回路とプログラマブル論理回路に接続されるデバイス間にバスホルダ回路とを有するネットワーク中継装置により、達成できる。
【発明の効果】
【０００９】
本発明によれば、ＦＰＧＡを搭載するネットワーク中継装置において、中継機能を維持したままＦＰＧＡの機能更新を行なうネットワーク中継装置を提供できる。
【図面の簡単な説明】
【００１０】
【図１】ネットワーク中継装置のブロック図である。
【図２】コントロールプレーンのブロック図である。
【図３】物理インタフェースボードのブロック図である。
【図４】パケット中継ボードのブロック図である。
【図５】ＦＰＧＡの機能ブロック図である。
【図６】ＦＰＧＡ機能更新のフローチャートである。
【発明を実施するための形態】
【００１１】
以下本発明の実施の形態について、実施例を用い図面を参照しながら説明する。なお、実質同一部位には同じ参照番号を振り、説明は繰り返さない。また、発明は、実施例によって限定されない。
【００１２】
図１を参照して、ネットワーク中継装置の基本構成を説明する。図１において、ネットワーク中継装置１００は、２枚のコントロールプレーン１と、３枚のパケット中継ボード２と、４枚の物理インタフェースボード３と、外部バス４と、データバス５とで構成される。外部バス４は、コントロールプレーン１とパケット中継ボード２と物理インタフェースボード３とを接続する。データバス５は、パケット中継ボード２と物理インタフェースボード３とを接続する。
【００１３】
コントロールプレーン１−１は、運用系である。一方、コントロールプレーン１−２は、待機系である。パケット中継ボード２が３枚に対して、物理インタフェースボード３が４枚なのは、３対１のプロテクションを構成しているためである。
【００１４】
図２を参照して、コントロールプレーンの詳細を説明する。図２において、コントロールプレーン１は、ＣＰＵ６と、メインメモリ７と、バスブリッジ８とから構成されている。バスブリッジ８は、パケット中継ボード２、物理インタフェースボード３と接続する。バスブリッジ８には、バスホルダの制御を行う信号線９と、ＦＰＧＡのリセット信号線１０と、ＦＰＧＡコンフィグレーション完了通知信号線１２と、コンフィグレーション用データ格納メモリと接続するメモリバス１１にて構成される。
【００１５】
なお、信号線９、１０、１２、バス１１は、外部バス４に含まれる信号線である。また、コントロールプレーン１には、コンソール５０を接続し、コマンドの入力を受け付ける。
【００１６】
図３を参照して、物理インタフェースボードの詳細を説明する。図３において、物理インタフェースボード３は、バスブリッジ１３と、３台の物理インタフェースデバイス１４で構成されている。物理インタフェースデバイス１４は、回線とそれぞれ接続する。バスブリッジ１３は、物理インタフェースデバイス１４の信号をパケット中継ボード２と送受信する。物理インタフェースデバイス１４には、対向機と接続される物理回線１５が接続される。また、パスブリッジ１３には、パケット中継ボード２と接続されているデータバス５が接続される。
【００１７】
図４を参照して、パケット中継ボードの詳細を説明する。図４において、パケット中継ボード２は、ＦＰＧＡ １６と、パケット解析用ＬＳＩ １８と、メモリ１９と、転送先検索ＬＳＩ １７と、メモリ２２、２３、２４と、連想メモリ２１と、バスホルダ２０とから構成されている。
【００１８】
パケット解析用ＬＳＩ １８は、物理インタフェースボード３より受信したパケットから宛先情報を抽出する。パケット解析用ＬＳＩ １８は、複数備えてもよい。メモリ１９は、パケットに含まれるデータを格納する。転送先検索ＬＳＩ １７は、パケット解析用ＬＳＩ １８にて抽出した宛先情報から送信宛先を検索する。転送先検索ＬＳＩ １７は、複数備えてもよい。メモリ２２は、転送先を決定するためのルーティングテーブルを格納する。連想メモリ２１は、転送先検索を行なう。メモリ２４は、ＦＰＧＡ １６機能更新中に受信したＦＰＧＡ １６による処理が必要なデータを格納する。メモリ２３は、ＦＰＧＡのコンフィグレーションに必要なデータを格納する。バスホルダ２０は、ＬＳＩ １７、１８とＦＰＧＡ １６間のバスを接続する。なお、ＦＰＧＡ １６の処理動作は、図５を参照して、説明する。
【００１９】
バス２５、２６は、ＦＰＧＡ １６とバスホルダ２０を接続する。バス２７、２８は、バスホルダ２０と、転送先検索ＬＳＩ １７、パケット解析用ＬＳＩ １８をこの順でそれぞれ接続する。
【００２０】
図５を参照して、ＦＰＧＡの機能ブロックを説明する。図５において、ＦＰＧＡ １６は、バスブリッジ３０と、パケット解析用ＬＳＩアシストモジュール３１と、転送先検索用ＬＳＩアシストモジュール３２と、メモリコントローラ３３とから構成されている。
【００２１】
バスブリッジモジュール３０は、コントロールプレーン１と接続する。また、パケット解析用ＬＳＩアシストモジュール３１は、メモリ１９に格納されたパケットバッファをＣＰＵ６にて処理を行う場合の補助機能を搭載したアシストモジュールである。転送先検索用ＬＳＩアシストモジュール３２は、転送先検索ＬＳＩ １７にて受信したヘッダを連想メモリ２４、メモリ２５に登録する際のソフトウェア処理をハードウェアで代替するためのモジュールである。通常のネットワーク中継は、物理インタフェース１５からパケットを受信し、バスブリッジ１４とバス５を介して、パケット解析用ＬＳＩ １８にてパケットはヘッダ部分とデータ部分に分離され、データ部分はメモリ１９に格納される。ヘッダ情報は、転送先検索ＬＳＩ １７に送信される。ヘッダ情報を受信した転送先検索ＬＳＩ １７は、連想メモリ２１とメモリ２２の情報から宛先を検索し、検索結果からヘッダ情報を更新し、パケット解析用ＬＳＩ １８に送信する。パケット解析用ＬＳＩ １８は、メモリ１９に格納したデータをヘッダに付加し物理インタフェース部に送信し、ネットワーク中継を行なう。
【００２２】
図６を参照して、ＦＰＧＡ機能更新処理を説明する。図６において、コンソールからＦＰＧＡ機能更新コマンドを実行されると、ＣＰＵ６は、ＦＰＧＡ １９の新規コンフィグレーションプログラムをバス１１を介してメモリ２３に書込む（Ｓ１）。書込みが完了した後、ＣＰＵ６は、ＦＰＧＡ更新開始信号について、バス９、１０を介してＦＰＧＡ １６、バスホルダ２０に送信する（Ｓ２）。ステップ１およびステップ２の状態では、通常のネットワーク中継、ＦＰＧＡ処理、ソフトウェア処理が可能である。
【００２３】
更新開始信号を送信したＣＰＵ６は、バスホルダ２０の動作を開始する（Ｓ３）。ここで、バスホルダ２０は、ＦＰＧＡ １９とＬＳＩ １７、１８を電気的に遮断し、ＦＰＧＡ１９の機能更新を開始する。機能更新中ＣＰＵ６は、ＦＰＧＡ更新が完了したか判定する（Ｓ４）。ＹＥＳのとき、ＣＰＵ６は、エラー処理を実行する（Ｓ６）。ＣＰＵ６は、パスホルダ２０の動作を停止して（Ｓ７）、終了する。
【００２４】
ステップ４でＮＯのとき、ＣＰＵ６は、エラーパケットを受信したか判定する（Ｓ８）。ＹＥＳのとき、ＣＰＵ６は、エラーパケットについて、装置内ＬＳＩ、または対向機で廃棄して（Ｓ９）、ステップ８に遷移する。ステップ８でＮＯのとき、ＣＰＵ６は、ＦＰＧＡ処理が必要なパケットを受信したか判定する（Ｓ１１）。ＹＥＳのとき、ＣＰＵ６は、メモリ２６にデータを格納し（Ｓ１２）、ステップ１１に戻る。ステップ１１でＮＯのとき、ＣＰＵは、デバイスエラーを検出したか判定する（Ｓ１３）。ＹＥＳのとき、ＣＰＵ６は、コントロールプレーン１にエラー内容を通知して（Ｓ１４）、ステップ１３に戻る。ステップ１３でＮＯのとき、ＣＰＵ６は、ステップ４に遷移する。なお、ステップ１４でコントロールプレーン１にエラー内容を通知するのは、ＣＰＵメモリ上にエラー内容を保存しておくためである。
【００２５】
ステップ３とステップ７の間の処理（Ｓ４，Ｓ６、Ｓ８〜Ｓ１４）の状態は、バスホルダ２０が動作しているためＦＰＧＡ １９による処理、ソフトウェア処理は遅延が発生するが、通常のネットワーク中継は遅延無く可能である。
【００２６】
ＦＰＧＡ機能更新を行う目的は、ＦＰＧＡ内のモジュール３１、３２の機能強化である。モジュール３１、３２は、従来のネットワーク中継装置ではソフトウェアにて行なっている処理を、ハードウェアにて代替処理を行なう。すなわち、処理の高速化を行なうモジュールである。モジュールを機能更新することにより、代替処理の最適化・追加・変更ができる。また、ＬＳＩ １７、１８にてサポートできない通信規格が適用された場合、モジュール３１、３２を機能拡張することで、ＬＳＩ １７、１８の代替処理を行うことができる。本実施例により、更新をネットワーク中継機能、ネットワーク中継性能を維持したまま行なうことができる。
【符号の説明】
【００２７】
１…コントロールプレーンボード、２…パケット中継ボード、３…物理インタフェースボード、４…外部バス、６…ＣＰＵ、８…バスブリッジ回路、９，１０，１２…外部バス４に含まれる制御信号線、１１…外部バス４に含まれるメモリバス、１４…物理回線インタフェースデバイス、１５…物理回線、１６…プログラマブル論理回路（ＦＰＧＡ）、１７…転送先検索ＬＳＩ、１８…パケット解析用ＬＳＩ、１９…揮発性メモリ、２０…バスホルダ回路、２１…連想メモリ、２２…揮発性メモリ、２３…不揮発性メモリ、２４…揮発性メモリ、２５…データバス、２６…データバス、２７…データバス、２８…データバス、２９…メモリバス、３０…バスブリッジモジュール、３１…パケット解析用ＬＳＩアシストモジュール、３２…転送先検索ＬＳＩアシストモジュール、３３…メモリコントローラ、５０…コンソール。
【図１】
2010166488.tif 000003
【図２】
2010166488.tif 000004
【図３】
2010166488.tif 000005
【図４】
2010166488.tif 000006
【図５】
2010166488.tif 000007
【図６】
2010166488.tif 000008