(57)【要約】【課題】複数のネットワークデバイスに対するパケットの中継制御を行う場合に、単一のＣＰＵインタフェースのみでパケットの送受信を可能とするパケット中継装置を得る。【解決手段】パケットの送受信を行う複数のネットワークデバイスと、単一のＣＰＵインタフェースと、ＲＡＭと、ＣＰＵとを備え、ＲＡＭ１５０は、受信パケットが転送されるパケットバッファ部とメモリプール識別子書込部の組を一単位とした複数の書込領域とを有し、ＣＰＵインタフェース１１３は、送信元のネットワークデバイスを識別し、送信元ネットワークデバイスに対応するデバイス識別子を書き込む機能と、受信パケットをパケットバッファ部に転送する機能を有し、ＣＰＵ１２０は、ネットワークデバイスに対してＣＰＵインタフェース１１３を介してパケットの受信処理及び送信処理を行うドライバ手段１２１と、パケットの転送先を検索するネットワークスタック１２３を有する。【選択図】図２
2010109737.tif 000002
【特許請求の範囲】
【請求項１】
パケットの送受信を行う複数のネットワークデバイスと、単一のＣＰＵインタフェースと、ＣＰＵと、前記ＣＰＵインタフェース及び前記ＣＰＵとの間で情報の送受信を行うＲＡＭとを備えたパケット中継装置であって、
前記ＲＡＭは、受信パケット毎に受信元情報が書き込まれる複数の受信ディスクリプタ領域と、送信パケット毎に送信先情報が書き込まれる複数の送信ディスクリプタ領域と、受信パケットが転送されるパケットバッファ部とメモリプール識別子書込部の組を一単位とした複数の書込領域とを有し、
前記ＣＰＵインタフェースは、送信元のネットワークデバイスを識別し、受信パケット毎に前記受信ディスクリプタ領域に送信元ネットワークデバイスに対応するデバイス識別子を書き込む機能と、前記受信パケットを前記パケットバッファ部に転送する機能を有し、
前記ＣＰＵは、
ソフトウェアで動作し前記複数のネットワークデバイスに対して前記ＣＰＵインタフェースを介して前記パケットの受信処理及び送信処理を行うドライバ手段と、
前記パケットの転送先を検索するネットワークスタックを具備し、
前記ドライバ手段は、前記ＣＰＵインタフェースがパケットを格納するための領域を前記書込領域に確保し、前記ＣＰＵインタフェースにより受信パケットが転送された前記パケットバッファ部に対応する前記メモリプール識別子書込部に、前記受信ディスクリプタ領域に書き込まれたデバイス識別子に応じた値を書き込む処理を行う
ことを特徴とするパケット中継装置。
【請求項２】
複数のネットワークデバイス相互間においてパケットの送受信を行う際のパケット中継制御方法であって、
前記ネットワークデバイスで受信したパケットの内、ＣＰＵで処理が必要なパケットのみを単一のＣＰＵインタフェースを介してＣＰＵへ転送する手順と、
前記ＣＰＵインタフェースにより、送信元のネットワークデバイスを識別し、受信パケット毎に送信元ネットワークデバイスに対応するデバイス識別子をＲＡＭに書き込む手順と、
前記ＣＰＵインタフェースにより、受信パケットをＲＡＭにおける書込領域のパケットバッファ部に転送する手順と、
ＣＰＵ上のソフトウェアで動作するドライバ手段により前記ＣＰＵインタフェースからＲＡＭの書込領域のパケットバッファ部に転送されたパケットに対して前記デバイス識別子に応じたメモリプール識別子をＲＡＭにおける書込領域のメモリプール識別子書込部に付与する手順と、
ＣＰＵ上のソフトウェアで動作するネットワークスタックにより、前記ドライバ手段からの指示を受けてパケットの転送先を検索する手順と、
前記ドライバ手段により前記パケットバッファ部からパケットを呼び出し、前記ネットワークスタックで指示された宛先ＩＰアドレスに送信する手順と、
を具備することを特徴とするパケット中継制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰネットワーク上のルータ技術に関し、特に、インターネット接続において、ＯＳＩ参照モデルが物理層及びデータリンク層として規定するネットワークデバイスでパケットの送受信を行うに際してのパケット中継装置及びパケット中継制御方法に関する。
【背景技術】
【０００２】
ルータは、異なるネットワーク間を相互に接続するための中継機器として用いられるものであり、パケットに付与された宛先ＩＰアドレスを識別し検索テーブルにしたがって転送するルーティング処理が行われるが、その高速化を図るため例えば特許文献１や特許文献２に示されるような種々の検索制御方法が提案されている。
【特許文献１】特開２０００−１７４８０５号公報
【特許文献２】特開平１１−３４１０７６号公報
【０００３】
ＯＳＩ参照モデルがネットワーク層以上のレイヤとして規定する領域（以下、ネットワークスタックと総称）においてルーティング検索制御に関する処理を行う場合、パケットの通過・廃棄の可否を設定されたフィルタリング情報に基づいて単に判定する処理と異なり、検出したパケットの転送先を検索する処理が発生するため、中央演算処理装置（ＣＰＵ）で制御する必要がある。そのため、ネットワークデバイスとＣＰＵとの間に、ＤＭＡ転送経路として使用するインタフェース（以下、ＣＰＵインタフェース）を備えてパケットの送受信が行われていた。
【０００４】
従来のパケット中継装置においては、ネットワークスタックでの処理は、ネットワークデバイスを区別してパケットを送受信するため、ＣＰＵインタフェースはネットワークデバイス毎に独立したものが使用されていた。
【０００５】
この場合、ネットワークスタックは、送信前のパケットを一時的に蓄積する受信バッファがネットワークデバイス毎に独立な領域に確保されることを前提としている。そのため、受信バッファの領域確保及び返却は、受信したネットワークデバイスに対応するメモリプールに対して行われていた。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＩＰネットワーク上においてパケットの中継を行う場合、複数のネットワークデバイスが必要となる。この場合に、ネットワークデバイス毎に独立のＣＰＵインタフェースを用いると、ネットワークデバイス数の増加に伴って受信バッファやメモリプールが増加し、ネットワークの構築コストが増大するという問題点があった。
【０００７】
本発明は上記実情に鑑みて提案されたもので、複数のネットワークデバイスに対するパケットの中継制御を行うに際して、複数のネットワークデバイスに対して単一のＣＰＵインタフェースのみでパケットの送受信を可能とするパケット中継装置及びパケット中継制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため本発明は、パケットの送受信を行う複数のネットワークデバイスと、単一のＣＰＵインタフェースと、ＣＰＵと、前記ＣＰＵインタフェース及び前記ＣＰＵとの間で情報の送受信を行うＲＡＭとを備えたパケット中継装置であって、次の構成を含むことを特徴としている。
前記ＲＡＭは、受信パケット毎に受信元情報が書き込まれる複数の受信ディスクリプタ領域と、送信パケット毎に送信先情報が書き込まれる複数の送信ディスクリプタ領域と、受信パケットが転送されるパケットバッファ部とメモリプール識別子書込部の組を一単位とした複数の書込領域とを有する。
前記ＣＰＵインタフェースは、送信元のネットワークデバイスを識別し、受信パケット毎に前記受信ディスクリプタ領域に送信元ネットワークデバイスに対応するデバイス識別子を書き込む機能と、前記受信パケットを前記パケットバッファ部に転送する機能を有する。
前記ＣＰＵは、ソフトウェアで動作し前記複数のネットワークデバイスに対して前記ＣＰＵインタフェースを介して前記パケットの受信処理及び送信処理を行うドライバ手段と、  前記パケットの転送先を検索するネットワークスタックを備えている。
そして、前記ドライバ手段は、前記ＣＰＵインタフェースがパケットを格納するための領域を前記書込領域に確保し、前記ＣＰＵインタフェースにより受信パケットが転送された前記パケットバッファ部に対応する前記メモリプール識別子書込部に、前記受信ディスクリプタ領域に書き込まれたデバイス識別子に応じた値を書き込む処理を行う。
【０００９】
本発明方法は、複数のネットワークデバイス相互間においてパケットの送受信を行う際のパケット中継制御方法であって、次の各手順を含むことを特徴としている。
前記ネットワークデバイスで受信したパケットの内、ＣＰＵで処理が必要なパケットのみを単一のＣＰＵインタフェースを介してＣＰＵへ転送する手順。
前記ＣＰＵインタフェースにより、送信元のネットワークデバイスを識別し、受信パケット毎に送信元ネットワークデバイスに対応するデバイス識別子をＲＡＭに書き込む手順。
前記ＣＰＵインタフェースにより、受信パケットをＲＡＭにおける書込領域のパケットバッファ部に転送する手順。
ＣＰＵ上のソフトウェアで動作するドライバ手段により前記ＣＰＵインタフェースからＲＡＭの書込領域のパケットバッファ部に転送されたパケットに対して前記デバイス識別子に応じたメモリプール識別子をＲＡＭにおける書込領域のメモリプール識別子書込部に付与する手順。
ＣＰＵ上のソフトウェアで動作するネットワークスタックにより、前記ドライバ手段からの指示を受けてパケットの転送先を検索する手順。
前記ドライバ手段により前記パケットバッファ部からパケットを呼び出し、前記ネットワークスタックで指示された宛先ＩＰアドレスに送信する手順。
【発明の効果】
【００１０】
本発明によれば、ソフトウェアで動作しネットワークデバイスに対してＣＰＵインタフェースを介してパケットの受信処理及び送信処理を行うに際して、送信元ネットワークデバイスを識別可能なドライバ手段を備えることで、従来ネットワークデバイス毎に必要だったＣＰＵインタフェースを単一化し、ネットワークの構築コストを削減することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態の一例について、図面を参照して説明する。
図１は、本発明が適用されるＩＰボタン電話装置１００の主要部の構成を示したブロック図であり、ここでは、本発明の説明に不要な構成は図示が省略されている。
【００１２】
このＩＰボタン電話装置１００は、外線としてアナログ回線、ナンバーディスプレイ契約回線、網番号ダイヤルイン回線、アナログ専用線、デジタル専用線およびISDN回線などのレガシー（従来型・旧型）外線のみならず、IP専用回線、VoIP回線、NGN (next generation network：次世代ネットワーク)回線を利用できる。また、内線端末として一般アナログ端末、ISDN端末、ホテルフォンおよびFAXなどのレガシー端末のみならず、デジタルボタン電話機やIP電話機などのIP端末を収容し、各外線と各内線端末との間の通信を制御する。 
【００１３】
ＩＰボタン電話装置１００において、主制御ユニットCCU (Central Control Unit)１は、システム全体を制御する。TDM制御ユニットTCCU２は、各レガシー端末とIP網との間および各レガシー外線とIP端末との間で時分割多重化通信(TDM)を制御する。カスタマエッジユニットCEU (Customer Edge Unite)３は、音声データと制御データとを多重化してIP通信を行う高速ブロードバンドルータとしての機能を備える。音声変換ユニットVCU (Voice Conversion Unit)４は、音声データを高ビットレートの高音質データまたは低ビットレートの標準音質データに変換する。
【００１４】
前記TCCU２には、ファックス端末８１、ホテルフォン端末８２、デジタルボタン電話機８３、単体電話機８４などのレガシー端末、および一般外線、ISDNネット回線、デジタル専用線、アナログ専用線などのレガシー外線が、各種の専用インタフェースおよびTDM通信用のTDMバス５を介して接続されている。前記TDMバス５は、制御データを送受信するDチャネルおよび音声信号を送受信するBチャネルを備える。
【００１５】
前記CCU１とTCCU２とは音声用LAN８および制御用LAN９の２本のLANで接続されている。CCU１とCEU３およびVCU４とは制御用LANで接続されている。前記CCU１には更に、保守用LAN１０を介して保守用コンピュータ９５が接続されると共に、IP内線LAN６を介してHUB７が接続されている。前記HUB７には、専用インタフェースを介してIP電話機９１や音声会議装置９２が接続され、無線アクセスポイント(AP)にはIPコードレスフォン９３が収容され、さらにソフトフォン９４のアプリケーションが実装されたコンピュータが接続されている。
【００１６】
前記CCU１は、CPU１１、DDR メモリ（RAM）１２、フラッシュメモリ１３、パケット転送の制御に特化した専用チップ１４、挿抜自在のコンパクトフラッシュ(登録商標)（CF）メモリ１５およびレイヤ2(L2)スイッチ１６を主要な構成としている。
前記TCCU２は、CPU２１、DDR メモリ２２、フラッシュメモリ２３、ファイ(PHY)２４、前記Bチャネルを制御するハイウエイスイッチ２５、前記Dチャネルを制御するDch制御信号通信チップ２６およびDSP(Digital Signal Processor)２７を主要な構成としている。前記PHY２４は、Ethernet(登録商標)(図示せず)の物理層を制御するLSIである。
【００１７】
前記CEU３は、CPU３１、DDRメモリ３２、フラッシュメモリ３３、パケット転送の制御に特化した専用チップ３４およびL2スイッチ３５を主要な構成としている。VCU４は、CPU４１、DDRメモリ４２、フラッシュメモリ４３、L2スイッチ４４およびDSP４５を主要な構成としている。DSP４５は、音声情報を高品質から標準音質への変換、若しくはその逆の変換を行う。
【００１８】
このように、本実施形態ではCCU１、TCCU２、CEU３およびVCU４のそれぞれにCPU１１，２１，３１，４１を分散配置することで負荷分散を実現すると共に、CCU１およびCEU３には更に、パケット転送に特化した専用チップ１４，３４を搭載することでCPUにおけるパケット転送の処理を軽減し、更なる負荷分散を実現している。
【００１９】
このような構成において、レガシー端末（例えば、単体電話機８４）がNGN経由で発着信した場合、レガシー端末とTCCU２との間ではPCM変換された音声信号がTDMバス５上で時分割多重化通信により送受信される。TCCU２とCCU１との間にはIPセッションが確立され、このIPセッションにおいて音声信号のデータパケットが交換される。CEU３では前記L2スイッチ３５によりNGNが選択されており、CCU１およびCEU３は、それぞれの専用チップ１４，３４を利用してパケットを交換する。
【００２０】
また、IP端末がレガシー外線（例えば、ISDNネット）経由で発着信した場合は、TDMバス５，TCCU２，CCU１およびHUB７を介してデータが送受信される。さらに、IP端末がNGN経由で発着信した場合は、CEU３，CCU１およびHUB７を介してデータが送受信される。
【００２１】
本発明のパケット中継装置は、図１におけるCCU１又はCEU３内に適用されるものであり、その詳細な構成について、図２〜図６を参照しながら説明する。CEU３は回線数が多数である場合にCCU１に加えて接続されるものであり、ＩＰボタン電話装置１００がCCU１のみで構成される場合には本発明のパケット中継装置はCCU１内に、ＩＰボタン電話装置１００がCCU１及びCEU３で構成され場合には本発明のパケット中継装置はCCU1及びCEU３内に適用される。
【００２２】
図２に、二つのネットワークデバイスを有する場合のパケット中継制御装置１１０の機能構成を示す。
本発明のパケット中継装置１１０は、パケットの送受信を行うＷＡＮ側のネットワークデバイス１１１及びＬＡＮ側のネットワークデバイス１１２と、単一のＣＰＵインタフェース１１３と、パケットの送受信処理を行うドライバ手段１２１を備えることでパケットの中継制御を行うＣＰＵ１２０と、ＣＰＵインタフェース１１３及びＣＰＵ１２０との間でそれぞれ情報の送受信が行われるＲＡＭ１５０を備えて構成されている。
【００２３】
図１との対応では、パケット中継装置１１０のネットワークデバイス１１１，１１２及びＣＰＵインタフェース１１３が、CCU１内の専用チップ１４及びCEU３内の専用チップ３４で実現されるものである。
【００２４】
ＲＡＭ１５０は、受信パケット毎に受信元情報が書き込まれる複数の受信ディスクリプタ領域２００と、送信パケット毎に送信先情報が書き込まれる複数の送信ディスクリプタ領域３００と、受信パケットが転送されるパケットバッファ部とメモリプール識別子書込部の組を一単位とした複数の領域がそれぞれ形成された書込領域１５１，１５２，１５３を有して構成されている。
書込領域は、ＣＰＵインタフェース１１３を介して送信前の受信パケットが一時的に蓄積されるパケット書込領域１５１と、ドライバ手段１２１によりネットワークデバイスのＬＡＮ側・ＷＡＮ側を識別してＣＰＵインタフェース１１３がパケットを書き込むために確保されるメモリプール領域１５２（ＬＡＮ側），メモリプール領域１５３（ＷＡＮ側）を有し、各領域には書込可能な領域が複数形成されている。
【００２５】
パケットの送受信を行うためのＷＡＮ側のネットワークデバイス１１１，ＬＡＮ側のネットワークデバイス１１２は、図１においては接続線１０２，１０３，１０４に接続されている。すなわち、ＷＡＮ側のネットワークデバイス１１１がCEU３の接続線１０３及びCCU１の接続線１０４に、ＬＡＮ側のネットワークデバイス１１２がCEU３の接続線１０４及びCCU１の接続線１０２（６）に接続することで、ＨＵＢ７に接続されるＬＡＮ側及びＩＰ網に接続されるＷＡＮ側に対してパケットを送受信可能なように構成されている。
【００２６】
ＣＰＵインタフェース１１３は、複数（本例では２個）のネットワークデバイスで受信した受信パケットのパケット情報としてのデバイス識別子、バッファポインタ（物理アドレス：パケット書込領域１５１における任意のパケットバッファ部の領域を指すアドレス）、パケットサイズをＲＡＭ１５０内の受信ディスクリプタ２００に書き込む処理、及び、ＲＡＭ１５０内のパケット書込領域１５１に送信前の受信パケットをＤＭＡ転送する処理を行うものである。
デバイス識別子は、ＬＡＮ側又はＷＡＮ側のどちらのネットワークデバイス１１１，１１２で受信したかを識別するための情報である。
【００２７】
ＲＡＭ１５０内における受信ディスクリプタ領域は、図３に示すように、＃１〜＃ｎのｎ個の領域２００が形成され、受信パケット毎の情報であるデバイス識別子２０１、バッファポインタ（物理アドレス：パケット書込領域１５１における任意のパケットバッファ部の領域を指すアドレス）２０２、パケットサイズ２０３がそれぞれ記憶できるようになっている。また、＃ｎ＋１番目の受信パケットの情報の記憶については、＃１の領域から順次書き換えるようになっている。
同様にＲＡＭ１５０内における送信ディスクリプタ領域は、図４に示すように、＃１〜＃ｎのｎ個の領域３００が形成され、送信パケット毎の情報であるデバイス識別子３０１、バッファポインタ（物理アドレス：パケット書込領域１５１における任意のパケットバッファ部の領域を指すアドレス）３０２、パケットサイズ３０３がそれぞれ記憶できるようになっている。また、＃ｎ＋１番目の送信パケットの情報の記憶については、＃１の領域から順次書き換えるようになっている。
受信ディスクリプタ領域２００及び送信ディスクリプタ領域３００については、パケットの送受信開始前に、ドライバ手段１２１により予め連続する領域に複数個分まとめて確保されている。
【００２８】
パケット書込領域１５１は、パケットを受信する度に、ドライバ手段１２１がメモリプール領域１５２（ＬＡＮ側）又はメモリプール１５３（ＷＡＮ側）から動的に獲得した領域を、新たな受信パケット格納領域として割り当てる。メモリプール領域１５２（ＬＡＮ側），メモリプール１５３（ＷＡＮ側）は、ネットワークデバイス１１１，１１２毎に独立した領域として形成される。
【００２９】
ＣＰＵ１２０には、パケットの受信処理及び送信処理を行うドライバ手段１２１と、ネットワークスタック１２３とを備え、それぞれソフトウェアで動作処理が行われるように構成されている。
ドライバ手段１２１は、ネットワークデバイス１１１，１１２に対してパケットの受信処理及び送信処理を行うものであり、受信処理としては、受信パケットが格納されたパケット書込領域１５１のメモリプール識別子書込部に対してデバイス識別子に応じたメモリプール識別子を書き込む処理、及び、デバイス識別子に応じたメモリプール領域１５２（ＬＡＮ側）又はメモリプール１５３（ＷＡＮ側）から動的に獲得した領域をパケット書込領域１５１として割り当てる処理、及び、ネットワークスタック１２３への受信通知が行われる。
メモリプール識別子は、パケット書込領域１５１の領域返却時に、返却先となるメモリプール領域、すなわち、受信ネットワークデバイスに対応するメモリプール領域１５２（ＬＡＮ側），メモリプール１５３（ＷＡＮ側）を判別する目的で使用するものである。
【００３０】
ドライバ手段１２１の送信処理としては、ネットワークスタック１２３から通知されたインタフェースのパケット情報であるデバイス識別子、バッファポインタ（物理アドレス：パケット書込領域１５１における任意のパケットバッファ部の領域を指すアドレス）、パケットサイズをＲＡＭ１５０内の送信ディスクリプタ領域３００に書き込む処理、及び、ＣＰＵインタフェース１１３に送信パケットの送信許可を通知する処理、及び、送信済みのパケットが格納されたパケット書込領域１５１をメモリプール識別子に応じたメモリプール領域１５２，１５３に返却する処理を行うものである。
【００３１】
ネットワークスタック１２３は、パケットの転送先の検索処理を行うものであり、パケットのＩＰヘッダ等に付与されている宛先ＩＰアドレスに一致する経路を経路テーブルから探索するルーティング制御を行うことで、受信パケットの当該経路が示すネットワークデバイスへの転送、又は、経路が見つからない場合は受信パケットの廃棄が行われる。
【００３２】
上記構成のパケット中継装置によるパケット中継制御方法について、図２及び図５・図６のフローチャート図を参照しながら説明する。
図５は、パケットを受信した場合の一連の処理内容を示したものである。
ＷＡＮ側又はＬＡＮ側のネットワークデバイス１１１，１１２がパケットを受信すると、例えば転送先が不明である等、ＣＰＵ１２０での処理が必要なパケットであるか否かを判断し、処理が必要である場合にはＣＰＵインタフェース１１３に対して、パケットを受信したこと、及び、ＬＡＮ側又はＷＡＮ側のどちらのネットワークデバイス１１１，１１２で受信したかを識別するための情報であるデバイス識別子を通知する。
ＣＰＵ１２０での処理が必要ないパケットに対しては、直接ＬＡＮ側又はＷＡＮ側のネットワークデバイス１１１，１１２から送信処理が行われる。
【００３３】
ＣＰＵインタフェース１１３は、前記したネットワークデバイス１１１，１１２からのデバイス識別子の通知にしたがって、ＲＡＭ１５０内において受信パケット毎に割り当てられた受信ディスクリプタ領域２００にデバイス識別子２０１、バッファポインタ２０２及びパケットサイズ２０３を書き込む（ステップ４０１）。
受信ディスクリプタ領域は、パケットの送受信開始前に、予めドライバ手段１２１が連続領域に複数個分まとめて確保している。
【００３４】
ここで、上記のデバイス識別子を書き込むＲＡＭ１５０内の受信ディスクリプタ領域２００は、一つ前の受信時に使用した受信ディスクリプタの後方に隣接する受信ディスクリプタを使用する。なお、図３の受信ディスクリプタの構成模式図に示すように、一つ前の受信時に使用した受信ディスクリプタ領域２００が連続領域の末尾（＃ｎ）に位置する場合は、先頭（＃１）の受信ディスクリプタ領域２００に書き込まれた識別子を＃（ｎ＋１）に対応するものに書き換えて使用する。
【００３５】
ＣＰＵインタフェース１１３は、予めドライバ手段１２１がＲＡＭ１５０の受信ディスクリプタ領域２００に書き込んだバッファポインタ（物理アドレス）に該当するパケット書込領域１５１のパケットバッファ部へ受信パケットをＤＭＡ転送する（ステップ４０２）。
転送先となるパケット書込領域１５１内の領域は、領域サイズが固定値（パケットサイズの最大値よりも大きい値）であり、パケット受信前に予めドライバ手段１２１が確保した領域である。
【００３６】
次に、ＣＰＵインタフェース１１３は、割込み信号を生成して、パケットを受信したことをドライバ手段１２１の受信処理に対して通知する（ステップ４０３）。
【００３７】
ドライバ手段１２１は、ＣＰＵインタフェース１１３が書き込んだパケット書込領域１５１のパケットバッファ部に対応するメモリプール識別子書込部内において、バッファポインタに書かれた物理アドレスの前方に位置する領域に、デバイス識別子に応じたメモリプール識別子を書き込む（ステップ４０４）。
【００３８】
次に、ドライバ手段１２１は、ネットワークスタック１２３に対して、受信したネットワークデバイス１１１，１１２に対応するインタフェース情報（デバイス識別子）と、受信パケットの先頭物理アドレス（バッファポインタ）を通知する（ステップ４０５）。
次に、ネットワークスタック１２３は、通知された情報を参照して受信処理を行う（ステップ４０６）。
【００３９】
最後に、ドライバ手段１２１は、ＲＡＭ１５０内の受信ディスクリプタ２００のデバイス識別子２０１を参照し、デバイス識別子に対応するメモリプール領域（ＬＡＮ側）１５２またはメモリプール（ＷＡＮ側）１５３から、新たなパケットバッファ部及びメモリプール識別子書込部を、ＣＰＵインタフェース１１３がパケットを書き込むための領域として確保し、そのパケットバッファ部の先頭アドレスを受信ディスクリプタに書き込む（ステップ４０７）。
確保された領域は、以降のパケット受信時に、ＣＰＵインタフェース１１３がバッファポインタ宛に転送する場合に使用される領域となる。
【００４０】
図６は、パケットを送信する場合の一連の処理内容を示したものである。
パケットを送信する場合、ネットワークスタック１２３はドライバ手段１２１の送信処理に対して、送信パケットのバッファポインタ（先頭物理アドレス）およびパケットサイズと、送信するネットワークデバイス１１１又はネットワークデバイス１１２に対応するインタフェース情報を通知する。
【００４１】
ドライバ手段１２１は、通知されたインタフェース情報に対応するデバイス識別子３０１と、送信パケットのバッファポインタ（先頭物理アドレス）３０２と、パケットサイズ３０３とを送信パケット毎の送信ディスクリプタ領域３００に書き込む（ステップ５０１）。
ここで、送信ディスクリプタ領域３００は、パケットの送受信開始前に、予めドライバ手段１２１が連続領域に複数個分まとめて確保する。上記のデバイス識別子を書き込む送信ディスクリプタは、一つ前の送信時に使用した送信ディスクリプタの後方に隣接する送信ディスクリプタである。なお、図４の送信ディスクリプタの構成模式図に示すように、一つ前の送信時に使用した送信ディスクリプタ領域３００が連続領域の末尾（＃ｎ）に位置する場合は、先頭（＃１）の送信ディスクリプタ領域３００に書き込まれた識別子を＃（ｎ＋１）に対応するものに書き換えて使用する。
【００４２】
次に、ドライバ手段１２１はＣＰＵインタフェース１１３に対して、パケットの送信を指示する（ステップ５０２）。
【００４３】
ＣＰＵインタフェース１１３は、送信ディスクリプタ３００を参照し、デバイス識別子により指定されたネットワークデバイスに対して、バッファポインタが指すアドレス以降に記録された送信パケットをＤＭＡ転送する（ステップ５０３）。
ＤＭＡ転送が完了すると、ＣＰＵインタフェース１１３は、割込み信号を生成して、パケットを送信したことをドライバ手段１２１の送信処理に対して通知する（ステップ５０４）。
【００４４】
ドライバ手段１２１は、送信パケットが格納されたパケット書込領域１５１を、メモリプール識別子によって指定されたメモリプール領域１５２，１５３に返却する（ステップ５０５）。
【００４５】
上述したパケット中継装置及びパケット中継制御方法によれば、ネットワークデバイス１１１，１１２に対してＣＰＵインタフェース１１３を介してパケットの受信処理及び送信処理をソフトウェア上で行うドライバ手段１２１を備えることで、従来ネットワークデバイス毎に必要だったＣＰＵインタフェース１１３を単一化し、ネットワークの構築コストを削減することができる。
【図面の簡単な説明】
【００４６】
【図１】本発明が適用されるＩＰボタン電話装置のブロック図である。
【図２】本発明のパケット中継装置の実施形態の一例を示す構成ブロック図である。
【図３】パケット中継装置における受信ディスクリプタの構成と受信パケットとの関係を示す模式図である。
【図４】パケット中継装置における送信ディスクリプタの構成と送信パケットとの関係を示す模式図である。
【図５】パケット中継装置におけるパケット受信の一連の処理を示すフローチャート図である。
【図６】パケット中継装置におけるパケット送信の一連の処理を示すフローチャート図である。
【符号の説明】
【００４７】
１…ＣＣＵ、  ３…ＣＥＵ、  ６…ＩＰ内線ＬＡＮ、  １４，３４…専用チップ、  １００…ＩＰボタン電話装置、  １１０…パケット中継装置、  １１１…ＷＡＮ側のネットワークデバイス、  １１２…ＬＡＮ側のネットワークデバイス、  １１３…ＣＰＵインタフェース、  １２０…ＣＰＵ、  １２１…ドライバ手段、  １２３…ネットワークスタック、  １５０…ＲＡＭ、  １５１…パケット書込領域（書込領域）、  １５２…（ＬＡＮ側の）メモリプール領域（書込領域）、  １５３…（ＷＡＮ側の）メモリプール領域（書込領域）、  ２００…受信ディスクリプタ、  ２０１…デバイス識別子、  ２０２…バッファポインタ、  ３００…送信ディスクリプタ、  ３０１…デバイス識別子、  ３０２…バッファポインタ。
【図１】
2010109737.tif 000003
【図２】
2010109737.tif 000004
【図３】
2010109737.tif 000005
【図４】
2010109737.tif 000006
【図５】
2010109737.tif 000007
【図６】
2010109737.tif 000008