JP2008299439A - パケット処理装置 - Google Patents
パケット処理装置 Download PDFInfo
- Publication number
- JP2008299439A JP2008299439A JP2007142480A JP2007142480A JP2008299439A JP 2008299439 A JP2008299439 A JP 2008299439A JP 2007142480 A JP2007142480 A JP 2007142480A JP 2007142480 A JP2007142480 A JP 2007142480A JP 2008299439 A JP2008299439 A JP 2008299439A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- dma
- cpu
- reception
- processing
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】並列化によるパケット受信処理の高速化が可能なパケット処理装置を得ることを目的とする。
【解決手段】OSを搭載したマルチコア/マルチプロセッサCPU(CPUa1〜an)を有するパケット受信処理部7と、ネットワークインタフェイスデバイスであるNIC(Network Interface Card)3とを備えたパケット処理装置において、NIC3を監視するデバイス監視部9を用いることにより、パケット受信処理を並列化し、高速受信処理が可能なパケット処理装置を実現する。
【選択図】 図1
【解決手段】OSを搭載したマルチコア/マルチプロセッサCPU(CPUa1〜an)を有するパケット受信処理部7と、ネットワークインタフェイスデバイスであるNIC(Network Interface Card)3とを備えたパケット処理装置において、NIC3を監視するデバイス監視部9を用いることにより、パケット受信処理を並列化し、高速受信処理が可能なパケット処理装置を実現する。
【選択図】 図1
Description
本発明は、複数個のCPUを用いてパケットの並列受信処理を行うパケット処理装置に関する。
近時、インターネットを利用した通信サービスが次々と登場し、アクセス網およびコア網におけるIPトラヒック量は年々増加している。それに伴い、イーサネット(登録商標)規格(IEEE802.3)に代表される有線ネットワークや、WiMAX(IEEE802.16)に代表される無線ネットワーク等において、伝送帯域の高速化の検討が進められている。特に有線通信では、100Mbps、1Gbpsに止まらず、10Gbpsの伝送速度を実現するイーサネット(登録商標)規格が策定され、既に対応したネットワークインタフェイスデバイスが製品化されている。
一方、CPUもクロックアップや、マルチコア/マルチプロセッサによる高性能化が進んでいるが、OSを搭載したCPUおよびネットワークインタフェイスデバイスで構成される通信装置では、CPUとネットワークインタフェイスデバイスとの間のパケット送受信がボトルネックとなり、10Gbpsのような高速伝送帯域を収容することが困難となっている。
汎用OSを搭載したCPUおよびネットワークインタフェイスデバイスで構成される従来のパケット処理装置における受信処理では、まずOSは割り込みを通知するCPUの決定を行うとともに、ネットワークインタフェイスデバイスからDMA(Direct Memory Access)転送されてくるパケットを格納するDMA受信バッファをカーネル空間内に用意する。また、物理デバイスから受信したパケットは、MAC(Media Access Control)ヘッダ、FCS(Frame Check Sequence)等によるフィルタリングがなされた後に、ネットワークインタフェイスデバイス内のバッファからDMA受信バッファに転送される。その後、ネットワークインタフェイスデバイスは、パケット到着をCPU(OS)側に通知するために、CPUに対してHW(Hard Ware)割込みを通知する。
CPU(OS)側では、HW割込みに対応する割込みハンドラ、ネットワークドライバを起動することで、パケット受信を確認し、その後、上位プロトコルスタックにパケット処理の制御を移行させる(非特許文献1参照)。この一連の処理シーケンスにおいて、OSによる割込みハンドラ処理やネットワークドライバ処理時のスレッド生成や割当て、コンテキストスイッチの発生等により、受信処理の遅延が発生し、受信処理におけるボトルネックとなっている。
また、これらの課題に対して、HW割込みを複数個のCPUに振り分けることで、パケット受信処理の並列化を図る方法も提案されている(特許文献1参照)。
しかしながら、上記従来の技術には、以下に示すような問題点があった。
すなわち、従来のパケット処理装置における受信処理では、カーネル空間内にDMA受信バッファが1つしか用意されていないために、DMA転送を完了しHW割込みをCPUが受け取り、ネットワークドライバによる受信処理が完了した後にしか、ネットワークインタフェイスデバイスは次のDMA転送を開始することができない。このため、従来のようにHW割込みを複数個のCPUに振り分けるだけでは受信処理を並列化することができず、並列化による受信処理の高速化が図れないという問題点があった。
本発明は、上記に鑑みてなされたものであって、並列化によるパケット受信処理の高速化が可能なパケット処理装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかるパケット処理装置は、外部ネットワーク装置からパケットが入力されるネットワークインタフェイスデバイスと、このネットワークインタフェイスデバイスからのパケットのDMA転送の監視を行うデバイス監視部と、複数個のCPUを有するとともにOSが搭載されたマルチプロセッサ、および前記各CPUにそれぞれ対応して前記OSのカーネル空間内に形成され前記ネットワークインタフェイスデバイスからDMA転送されたパケットを格納するための複数個のDMA受信バッファ、を有するパケット受信処理部と、を備え、前記パケット受信処理部は、前記ネットワークインタフェイスデバイスから前記複数個のDMA受信バッファのうちの1つのDMA受信バッファへのDMA転送が完了すると、前記ネットワークインタフェイスデバイスからの割り込み通知をもとに前記複数個のCPUのうちの1つのCPUに対して割り込み通知を行い、次の割り込み通知先として前記1つのCPUとは異なる他のCPUを設定するとともに、前記デバイス監視部を介して前記ネットワークインタフェイスデバイスから前記1つのDMA受信バッファへのDMA転送が完了したことを検出した後に、次のDMA転送先として前記1つのDMA受信バッファとは異なる他のDMA受信バッファを設定し、前記ネットワークインタフェイスデバイスに対して前記他のDMA受信バッファへの次のDMA転送を開始させるようにして、前記マルチプロセッサによるパケットの並列受信処理を行うことを特徴とする。
本発明によれば、デバイス監視部を設けることにより、ネットワークインタフェイスデバイスからDMA受信バッファへのパケットのDMA転送を監視することができ、1つのDMA受信バッファへのパケットのDMA転送が完了したこと検出した後に、他のDMA受信バッファへのDMA転送を開始することができる。そのため、先に割り込み通知を受けたCPUが受信処理を行っている間に、効率良く、次のDMA転送の開始と次の割り込み通知を行うことができ、並列処理によるパケット受信処理の高速化が可能になる、という効果を奏する。
以下に、本発明にかかるパケット処理装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本実施の形態にかかるパケット処理装置の構成およびパケット受信処理の流れを示すブロック図である。
図1は、本実施の形態にかかるパケット処理装置の構成およびパケット受信処理の流れを示すブロック図である。
本実施の形態にかかるパケット処理装置は、例えばIPパケット等の通信パケットの処理を行うネットワーク装置であって、物理デバイス(PHY)1と、ネットワークインタフェイスデバイスとしてのNIC(Network Interface Card)3と、NIC3と物理デバイス1との間のインタフェイスであるNIC−PHY間IF2と、割り込み通知機構としての割り込み通知部8と、デバイス監視機能を備えたデバイス監視部9と、パケット受信処理部7と、パケット受信処理部7内のCPUとNIC3との間のインタフェイスであるCPU−NIC間IF6と、を備えている。また、パケット受信処理部7、割り込み通知部8、およびデバイス監視部9は、OS(Operating System)(SW(Soft Ware))20の一部を構成している。
物理デバイス1は、外部ネットワーク装置(図示せず)との間でIPパケット(フレーム)を受信するデバイスであり、NIC−PHY間IF2を介してNIC3に接続されている。
NIC−PHY間IF2は、物理デバイス1とNIC3との間のインタフェイスであり、例えば、GMII(Gigabit Media Independent Interface)、XAUI(10 Gigabit Attachment Unit Interface)、またはXGMII(10 Gigabit Media Independent Interface)等である。
ハードウェアであるNIC3は、汎用ネットワークインタフェイスカードまたはASIC(Application Specific Integrated Circuit)/FPGA(Field Programmable Gate Array)/NPU(Network Processing Unit)等のパケット処理に特化したハードウェアネットワークインタフェイスデバイスである。NIC3は、主に、MACレイヤ処理(イーサネット(登録商標)処理)等を行う。
NIC3は、MACレイヤ処理部(MAC Block)4と、フレームバッファ5と、を備えている。MACレイヤ処理部4は、物理デバイス1、NIC−PHY間IF2を経てNIC3に入力されたIPパケットに対して、MACヘッダ解析、フレーム検証、および送信先・送信元アドレスの検証等を含むMACレイヤプロトコルに関する処理を行う。フレームバッファ5は、MACレイヤ処理部4から出力されたフレームデータを格納するバッファである。NIC3は、フレームバッファ5に格納されたフレームデータを、パケット受信処理部7にDMA転送する。
パケット受信処理部7は、それぞれCPU、DMA受信バッファおよびネットワークドライバ(Network Driver)を有する複数個(図示例では、n個)の処理部を備えており、例えば、CPUa1、DMA受信バッファb1、およびネットワークドライバd1を有する処理部、CPUa2、DMA受信バッファb2、およびネットワークドライバd2を有する処理部、ならびにCPUan、DMA受信バッファbn、およびネットワークドライバdnを有する処理部を備えている。
これらの複数個のCPUa1〜anは、マルチコアプロセッサまたはマルチプロセッサ(マルチコア/マルチプロセッサ)対応のCPUである。また、これらの複数個のCPUa1〜anのメモリ(図示せず)空間上には、マルチコア/マルチプロセッサ対応のOS20が搭載されている。すなわち、搭載されているOS20は、メモリ空間上に複数個のCPUa1〜anを認識しこれらを使用可能であり、複数個のCPUa1〜anは、マルチコア/マルチプロセッサを構成している。
割り込み通知部8は、I/O(Input/Output)インタフェイス、および種々のデバイスからのHW割り込みを、各CPU(CPUa1〜an)に振り分けて通知する割り込み通知機構である。特に、割り込み通知部8は、NIC3からのHW割り込みを各CPU(CPUa1〜an)に振り分けて通知する。
パケット受信処理部7において、各CPUa1〜anは、割込み通知部8からHW割込み通知を受けた場合に割込みハンドラを生成する。各CPUa1〜CPUanにて生成された割込みハンドラは、自身を生成したCPUに対応するネットワークドライバにNIC3からDMA転送されてくるパケットの受信処理を行なわせる。
DMA受信バッファb1〜bnは、OS20が認識しているメモリ空間内に形成されたフレームデータ格納用のバッファである。本実施の形態においては、NIC3のフレームバッファ5からDMA受信バッファb1〜bnへのパケットの転送は、CPUa1〜an等のCPUが介在しないDMA転送によってなされる。
ネットワークドライバ(Network Driver)d1〜dnは、割込み通知部8からCPUa1〜CPUanの何れかにHW割込み通知がされた後に、受信パケットの整合性をチェックし、この受信パケットを後述の上位レイヤ側に転送する。
デバイス監視部9は、デバイス監視機能を有し、NIC3のフレームバッファ5から各DMA受信バッファb1〜bnへのパケットのDMA転送が完了したことを監視し、次のDMA転送を順次開始する様に指示する。
さらに、図1に示すように、パケット受信処理部7は、n個のキューc1〜cnと、上位レイヤ側の構成要素であるパケット集約(Packet Aggregation)部11、上位レイヤ(Upper Layer)処理部12、および1または複数個のCPU30と、を備えている。
キューc1〜cnは、上位レイヤ側への転送に使用されるパケットバッファキューであり、それぞれネットワークドライバd1〜dnに接続されている。また、キューc1〜cnは、パケット集約部11に接続されている。
パケット集約部11は、受信したパケットの集約を行う制御モジュールであって、パケットが転送されたキューの順番情報に基づいて、各キューc1〜cnに格納されているパケットを上位レイヤ処理部12に転送する。本実施の形態においては、パケット受信処理が並列化されることによる、パケットの順序逆転を防ぐために、パケットの順序制御を行うパケット集約部11を設けている。上位レイヤ処理部12は、パケット集約部11から受信したパケットに対して上位レイヤ処理を行なう。CPU30は、パケット集約部12および上位レイヤ処理部12を含む上位レイヤ側の制御を行う。
次に、本実施の形態の動作について説明する。OS20は、予め、受信処理のみを行わせるn個のCPUa1〜anと、n個のDMA受信バッファb1〜bnとを用意しておく。
OS20は、デバイス初期化時にNIC3に対して、DMA転送を行う受信バッファとしてカーネル空間内に形成された、例えばDMA受信バッファb1を設定する。さらに、OS20は、割込み通知部8に対して、NIC3からのHW割込みを通知するCPUとして、CPUa1を設定しておく。
外部ネットワーク装置からのIPパケットは、物理デバイス1にて物理的な信号として受信・終端され、MACレイヤ処理を行なうNIC3へNIC−PHY間IF3経由で送信される。
NIC3では、MACレイヤ処理部4にてMACヘッダ解析、フレーム検証、および送信先・送信元アドレスの検証等を行い、装置内上位レイヤに送信すべきフレームを、自身のバッファであるフレームバッファ5に格納する。
NIC3は、フレームバッファ5からデバイス初期化時に設定されたカーネル空間内のDMA受信バッファb1に対して、例えば予め設定されたフレーム数に達するまでフレームのDMA転送を行い、設定されたフレーム数に達したらDMA転送を停止する。なお、DMA受信バッファへの1回でのDMA転送のフレーム数は、NIC3の仕様・パラメータ設定に依存しており、複数個のフレームをまとめてDMA転送することもできる。
NIC3は、DMA転送開始から一定の時間を経過した後、またはDMA転送したフレームが一定のフレーム数に達した後、割込み通知部8にHW割込みを通知する。
割込み通知部8は、NIC3からHW割込みの通知を受け取ると、OS20によりデバイス初期化時に設定されたCPUa1に対してHW割込みを通知する。
CPUa1は、HW割込みを受け取ると、割込みハンドラを生成することにより、ネットワークドライバd1に受信処理を開始させる。このとき、OS20は、割込み通知部8に対して、次にHW割り込みを通知するCPUを、CPUa1から例えばCPUa2に変更させる。
また、OS20は、NIC3からの次のDMA転送先を、DMA受信バッファb1からDMA受信バッファb2に切り替える。ここで、DMA受信バッファの切り替えのタイミングを、NIC3からDMA受信バッファb1へのDMA転送完了時とする。このように、本実施の形態では、NIC3からのDMA転送を順次開始させるために、DMA受信バッファの切り替えのタイミングをDMA転送完了時としている。また、DMA転送が完了したことを監視するために、デバイス監視部9はNIC3を監視している。OS20は、CPUa1に対して、受信処理と並行してデバイス監視部9の監視処理をさせており、デバイス監視部9によるNIC3の監視結果から、DMA転送が完了したことを検出すると、NIC3に対して、次にDMA転送を行うDMA受信バッファを、DMA受信バッファb2に変更するように通知する。そして、NIC3は、DMA受信バッファb2に対して、DMA転送を開始する。
ネットワークドライバd1は、DMA受信バッファb1からフレーム情報を取得し、OS20内部で管理可能な形式であるパケットデータ(ソケットバッファ)を生成し、上位レイヤ転送向けのキューc1にキューイングする。ネットワークドライバd1は、受信処理が完了すると、パケット集約部11に対して、受信処理が完了したことを通知する。
パケット集約部11には、予めOS20からパケットが転送されるキューの順番の情報を与えておく。パケット集約部11は、ネットワークドライバd1から受信完了通知を受け取ると、キューの順番の情報に基づいてキューc1に格納されているパケットを上位レイヤ処理部12に転送する。ここで、キューc1に格納されたパケットが上位レイヤ側に転送されていない場合には、以降の処理で、キューc2〜cnに格納されたパケットを転送しない。
NIC3は、DMA受信バッファb2へのDMA転送開始から一定の時間を経過した後、またはDMA転送したフレームが一定のフレーム数に達した後、割り込み通知部8を介してCPUa2にHW割り込みを通知する。割り込み通知を受け取ったCPUa2は、同様に、受信処理とデバイス監視処理を行う。このように、CPUおよびDMA受信バッファはラウンドロビンで変更され、CPUa1〜an内で、受信処理とデバイス監視処理をラウンドロビンで繰り返して行う。すなわち、本実施の形態では、CPUa1、CPUa2、・・・、CPUanの順番でHW割り込みの通知をし、DMA受信バッファb1、DMA受信バッファb2、・・・、DMA受信バッファbnの順番でDMA転送を行う受信バッファを設定すると共に、キューc1、キューc2、・・・、キューcnの順番でパケットを転送させるようにパケット集約部11に指示する。
図3は、複数個のCPUa1〜anによる受信処理の流れを示す模式図である。NIC3からDMA受信バッファb1にDMA転送が行われると、CPUa1に対して割り込み通知がなされ、CPUa1は割り込み処理を行い、続いて受信処理を行う。NIC3からDMA受信バッファb1へのDMA転送が完了すると、受信バッファはDMA受信バッファb1からDMA受信バッファb2に切り替えられる。この切り替え後に、NIC3では、DMA受信バッファb2へのDMA転送を開始する。そして、CPUa1の場合と同様に、NIC3からDMA受信バッファb2にDMA転送が行われると、CPUa2に対して割り込み通知がなされ、CPUa2は割り込み処理を行い、続いて受信処理を行う。CPUa3〜anに対しても同様であり、CPUanによる受信処理後には、再びCPUa1に対する割り込み通知がなされ、同様の処理が順次繰り返される。
以上の動作によって、NIC3からのDMA転送を順次開始することができ、ネットワークドライバd1〜dnを用いて受信処理を並列化することにより、受信処理時間を短縮している。
本実施の形態によれば、デバイス監視部9を設けることにより、NIC3内のフレームバッファ5からDMA受信バッファb1〜bnへのパケット転送を監視することができ、一のDMA受信バッファへのパケットのDMA転送が完了したこと検出した後に、次のDMA受信バッファへのDMA転送を開始することができる。そのため、先に割り込みを受けたCPUが受信処理を行っている間に、効率良く、次のDMA転送と次のCPUへの割り込み通知を行うことができ、並列処理によるパケット受信処理の高速化が可能になる、という効果を奏する。
なお、図4は、汎用OSを搭載したCPU、およびネットワークインタフェイスデバイスで構成された従来のパケット処理装置の構成を示すブロック図である。図4に示すように、従来のパケット処理装置は、物理デバイス(PHY)101と、ネットワークインタフェイスデバイスとしてのNIC103と、NIC103と物理デバイス101との間のインタフェイスであるNIC−PHY間IF102と、パケット受信処理部106と、を備えている。
NIC103の内部には、MACレイヤ処理部(MAC Block)104と、フレームバッファ105と、が設けられている。パケット受信処理部106内部には、DMA受信バッファ107と、ネットワークドライバ108と、上位レイヤ(Upper Layer)109と、CPU110と、が設けられており、CPU110上にはOSが搭載されている。
この従来のパケット処理装置における受信処理では、物理デバイス101から受信したパケットは、MACレイヤ処理部104にて、MACヘッダ、FCSなどによってフィルタリングされ、NIC103内のフレームバッファ105からパケット受信処理部106内のDMA受信バッファ107に転送される。その後、NIC103は、パケットの到着をOS側に通知するため、HW割込みをパケット受信処理部106に対して通知する。
続いて、OSは、割り込みを通知するCPU110を決定するとともに、NIC103からDMA転送されてくるパケットを格納するDMA受信バッファ107をカーネル空間内に用意する。また、パケット受信処理部106では、NIC103からのHW割込みに対応する割込みハンドラとネットワークドライバ108とを起動することによって、パケットの受信を確認し、その後、上位レイヤ109にパケット処理の制御を移行させる(例えば、非特許文献1参照)。この一連の処理シーケンスにおいては、OSによる割込みハンドラ処理やネットワークドライバ処理時のスレッド生成や割当て、コンテキストスイッチの発生等により、受信処理の遅延が発生し、受信処理におけるボトルネックとなっている。
また、特許文献1では、HW割り込みを複数個のCPUに振り分けることによって、パケットの受信処理を並列化する方法を提案している。しかしながら、特許文献1では、本実施の形態とは対照的に、カーネル空間内にDMA受信バッファが1つしか用意されていないので、パケット受信の際、DMA転送を完了してCPUがHW割込みを受け取り、ネットワークドライバによるパケットの受信処理が完了した後にしか、次のDMA転送を開始することができない。このため、HW割込みを複数のCPUに振り分けるだけでは受信処理を並列化することができなかった。
本実施の形態は、これらの従来の問題点を解消し、並列処理によるパケット受信処理の高速化を実現するものである。
実施の形態2.
図3は、実施の形態2にかかるパケット処理装置の構成およびパケット受信処理の流れを示すブロック図である。
図3は、実施の形態2にかかるパケット処理装置の構成およびパケット受信処理の流れを示すブロック図である。
図3では、図1に示す実施の形態1の構成に加えて、CPU負荷判別機構であるCPU負荷判別部13が設けられている。CPU負荷判別部13は、CPUa1〜anの負荷情報を判別し管理する装置であり、割り込み通知部8に接続されている。なお、図3における他の構成は図1と同様であり、そのため、同一の構成要素には同一の符号を付して、その詳細な説明を省略する。
次に、本実施の形態の動作について説明する。本実施の形態においては、割込み通知部8によるHW割り込みを通知するCPUの選択処理が、実施の形態1とは異なる。すなわち、割込み通知部8は、HW割り込みを通知するCPUの選択方法として、受信処理を行っておらず、且つ処理負荷の低いCPUを選択する。ここで、CPUの処理負荷の情報は、CPU負荷判別部13から提供される。
また、実施の形態1では、パケット集約部11は、予めOS20から与えられたキューの順序情報と、各ネットワークドライバd1〜dnからの受信処理完了通知を受けて、キューc1〜cnからのパケットの順序制御処理を行ったが、本実施の形態では、パケット集約部11に特定のCPUを割当て、ポーリングをさせることにより各キューc1〜cnの状態を監視し、パケットの順序制御処理を行う。この場合、ネットワークドライバd1〜dnは、パケット集約部11にキューイングした際に、パケット集約部11に対して受信処理完了通知を行わない。このような順序制御により、順序情報に基づいて処理を行い、例えばキューc1にパケットがキューイングされていた場合、キューc1からパケットを上位レイヤ処理部12に転送する。これらの処理以外の動作は、実施の形態1の動作と同様である。
本実施の形態によれば、CPU負荷判別部13を設けることにより、CPUa1〜CPUanのうち、パケットの受信処理を行っておらず且つ処理負荷の低いCPUを選択してHW割り込みの通知を行うようにしたので、CPUa1〜CPUanへのより一層の負荷分散が可能となり、高速にパケット受信処理を行うことができる。また、ネットワークドライバd1〜dnは、パケット集約部11にキューイングした際に、パケット集約部11に対して受信処理完了通知を行わないので、ネットワークドライバd1〜dnの負荷を低減することができる。なお、本実施の形態におけるその他の効果は、実施の形態1の効果と同様である。
以上のように、本発明にかかるパケット処理装置は、高速なパケット処理が要求される通信ネットワークに好適に利用することができる。
1 物理デバイス(PHY)
2 NIC−PHY間IF
3 NIC(Network Interface Card)
4 MACレイヤ処理部(MAC Block)
9 デバイス監視部
7 パケット受信処理部
8 割り込み通知部
9 デバイス監視部
11 パケット集約(Packet Aggregation)部
12 上位レイヤ(Upper Layer)処理部
13 CPU負荷判別部
20 OS(SW)
30,a1〜an CPU
2 NIC−PHY間IF
3 NIC(Network Interface Card)
4 MACレイヤ処理部(MAC Block)
9 デバイス監視部
7 パケット受信処理部
8 割り込み通知部
9 デバイス監視部
11 パケット集約(Packet Aggregation)部
12 上位レイヤ(Upper Layer)処理部
13 CPU負荷判別部
20 OS(SW)
30,a1〜an CPU
Claims (4)
- 外部ネットワーク装置からパケットが入力されるネットワークインタフェイスデバイスと、
このネットワークインタフェイスデバイスからのパケットのDMA転送の監視を行うデバイス監視部と、
複数個のCPUを有するとともにOSが搭載されたマルチプロセッサ、および前記各CPUにそれぞれ対応して前記OSのカーネル空間内に形成され前記ネットワークインタフェイスデバイスからDMA転送されたパケットを格納するための複数個のDMA受信バッファ、を有するパケット受信処理部と、
を備え、
前記パケット受信処理部は、
前記ネットワークインタフェイスデバイスから前記複数個のDMA受信バッファのうちの1つのDMA受信バッファへのDMA転送が完了すると、前記ネットワークインタフェイスデバイスからの割り込み通知をもとに前記複数個のCPUのうちの1つのCPUに対して割り込み通知を行い、次の割り込み通知先として前記1つのCPUとは異なる他のCPUを設定するとともに、
前記デバイス監視部を介して前記ネットワークインタフェイスデバイスから前記1つのDMA受信バッファへのDMA転送が完了したことを検出した後に、次のDMA転送先として前記1つのDMA受信バッファとは異なる他のDMA受信バッファを設定し、前記ネットワークインタフェイスデバイスに対して前記他のDMA受信バッファへの次のDMA転送を開始させるようにして、前記マルチプロセッサによるパケットの並列受信処理を行うことを特徴とするパケット処理装置。 - 前記パケット受信処理部は、前記各DMA受信バッファにそれぞれ対応して設けられた複数個のキューと、前記各DMA受信バッファで受信したパケットが転送されるキューの順番で、前記キューから前記パケットを取得して上位レイヤ側へ転送するパケット集約部と、をさらに有することを特徴とする請求項1に記載のパケット処理装置。
- 前記パケット受信処理部は、次に割込みを通知するCPUを前記1つのCPUとは異なる他のCPUに切替えて設定する際に、前記複数個のCPUのうちパケットの受信処理を行っていないCPUであってかつ処理負荷が最も低いCPUを選択して前記他のCPUに設定することを特徴とする請求項2に記載のパケット処理装置。
- 前記パケット集約部は、前記キューにポーリングを行なうことによって前記各キューを監視し、この監視結果に基づいてパケット受信の順序制御を行うことを特徴とする請求項2または3に記載のパケット処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007142480A JP2008299439A (ja) | 2007-05-29 | 2007-05-29 | パケット処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007142480A JP2008299439A (ja) | 2007-05-29 | 2007-05-29 | パケット処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008299439A true JP2008299439A (ja) | 2008-12-11 |
Family
ID=40172938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007142480A Pending JP2008299439A (ja) | 2007-05-29 | 2007-05-29 | パケット処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008299439A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011096307A1 (ja) * | 2010-02-03 | 2011-08-11 | 日本電気株式会社 | プロキシ装置とその動作方法 |
JP2018033017A (ja) * | 2016-08-25 | 2018-03-01 | 日本電信電話株式会社 | ネットワーク処理装置およびパケット処理方法 |
JP2019159751A (ja) * | 2018-03-13 | 2019-09-19 | 日本電気株式会社 | データ転送装置、データ転送方法、プログラム |
-
2007
- 2007-05-29 JP JP2007142480A patent/JP2008299439A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011096307A1 (ja) * | 2010-02-03 | 2011-08-11 | 日本電気株式会社 | プロキシ装置とその動作方法 |
US8612611B2 (en) | 2010-02-03 | 2013-12-17 | Nec Corporation | Proxy apparatus and operation method thereof |
JP2018033017A (ja) * | 2016-08-25 | 2018-03-01 | 日本電信電話株式会社 | ネットワーク処理装置およびパケット処理方法 |
JP2019159751A (ja) * | 2018-03-13 | 2019-09-19 | 日本電気株式会社 | データ転送装置、データ転送方法、プログラム |
JP7003752B2 (ja) | 2018-03-13 | 2022-01-21 | 日本電気株式会社 | データ転送装置、データ転送方法、プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8867559B2 (en) | Managing starvation and congestion in a two-dimensional network having flow control | |
US8397007B2 (en) | Interrupt moderation | |
WO2020236278A1 (en) | System and method for facilitating data request management in a network interface controller (nic) | |
RU2491737C2 (ru) | Управление памятью для высокоскоростного управления доступом к среде | |
JP2008129767A (ja) | ネットワーク装置 | |
US20160380895A1 (en) | Traffic Management Implementation Method and Apparatus, and Network Device | |
US7646781B2 (en) | Methods, systems, and computer program products for selectively discarding packets | |
US20190044879A1 (en) | Technologies for reordering network packets on egress | |
JP2011517903A (ja) | パケット交換オンチップ相互接続ネットワークの高速仮想チャネル | |
WO2010007339A1 (en) | Switching device | |
JP2008299439A (ja) | パケット処理装置 | |
CN116868553A (zh) | 用于管理端点资源和拥塞缓解的数据中心网络上的动态网络接收器驱动的数据调度 | |
JP5414506B2 (ja) | データ処理装置、データ処理方法、及びプログラム | |
US9128771B1 (en) | System, method, and computer program product to distribute workload | |
JP2008257642A (ja) | パケット処理装置 | |
US8004991B1 (en) | Method and system for processing network information | |
US20190044872A1 (en) | Technologies for targeted flow control recovery | |
US9621487B2 (en) | Method and apparatus for protection switching based on memory control in packet transport system | |
JP2009118106A (ja) | ネットワーク装置 | |
JP2009116561A (ja) | データ転送システム | |
KR101463783B1 (ko) | 패킷 처리 장치 및 패킷 처리 방법 | |
US10951526B2 (en) | Technologies for efficiently determining a root of congestion with a multi-stage network switch | |
Paul et al. | Traffic capture beyond 10 Gbps: Linear scaling with multiple network interface cards on commodity servers | |
US7433986B2 (en) | Minimizing ISR latency and overhead | |
US11023405B2 (en) | Daisy chain control network with data generators and token-forwarding connections |