(57)【要約】  受信コアは、受信コアが位置する転送グループに対応するインターフェースである入力インターフェースからパケットを読み取り、受信コアは、読み取ったパケットを転送グループにおける転送コアに送信し、転送コアは、パケットを対応する出力インターフェースに送信することを含む。【選択図】図２
2019500821.tif 000002
【特許請求の範囲】
【請求項１】
パケット転送方法であって、ネットワーク機能仮想化（ＮＦＶ）装置における不均一メモリアーキテクチャ（ＮＵＭＡ）ノードのいずれかに適用される方法において、前記ＮＵＭＡノードは受信コアと転送コアを含む１つの転送グループを含み、
前記方法は、
受信コアは、当該受信コアが位置する転送グループに対応するインターフェースである入力インターフェースからパケットを読み取り、
前記受信コアは、読み取ったパケットを前記転送グループにおける転送コアに送信し、
前記転送コアは、前記パケットを対応する出力インターフェースに送信することを含む、パケット転送方法。
【請求項２】
前記受信コアが入力インターフェースからパケットを読み取る前に、
前記ＮＦＶ装置における１つの特定のコアは、前記ＮＵＭＡノードに対して当該ＮＵＭＡノードにおけるすべてのコアを含む前記転送グループを作成し、
前記特定のコアは、前記転送グループにおけるコアを制御コア、受信コアまたは転送コアとして設定し、
前記特定のコアは、前記転送グループに対して対応する入力インターフェースを設定することをさらに含む、請求項１に記載の方法。
【請求項３】
前記特定のコアは、前記転送グループにおけるコアを制御コア、受信コアまたは転送コアとして設定することは、
前記特定のコアはそれ自身を制御コアとして設定し、
前記転送グループに前記制御コアが含まれていない場合、前記制御コアは、予め設定されたルールに従って、前記転送グループにおける少なくとも１つのコアを前記受信コアとして設定し、前記転送グループにおけるその他のコアをすべて前記転送コアとして設定し、
前記転送グループに前記制御コアが含まれている場合、前記制御コアは、予め設定されたルールに従って、前記転送グループにおけるそれ自身以外の少なくとも１つのコアを前記受信コアとして設定し、前記転送グループにおけるその他のコアをすべて前記転送コアとして設定することを含む、請求項２に記載の方法。
【請求項４】
前記受信コアは、読み取ったパケットを前記転送グループにおける転送コアに送信することは、
前記受信コアは、受信コア及び転送コアと転送グループとの対応関係を取得し、
前記受信コアは、前記対応関係に基づいて前記転送グループにおける転送コアを特定し、
前記受信コアは、読み取ったパケットを特定した転送コアに送信することを含む、請求項３に記載の方法。
【請求項５】
前記転送グループに対して対応する入力インターフェースを設定することは、
前記制御コアは、前記ＮＵＭＡノードに関連付けられているネットワークインターフェースカードを識別し、前記ネットワークインターフェースカードのインターフェースを前記入力インターフェースとして前記ＮＵＭＡノードの転送グループに割り当てることを含む、請求項３に記載の方法。
【請求項６】
前記転送グループに対して対応する入力インターフェースを設定することは、
前記制御コアは、インターフェース設定コマンドに応じて、特定のインターフェースを前記入力インターフェースとして前記転送グループに割り当てることを含む、請求項３に記載の方法。
【請求項７】
パケット転送装置であって、受信コアと、転送コアと、機械可読命令が記憶されている不揮発性機械可読記憶媒体とを含み、同一の転送グループに属する受信コア及び転送コアは、１つの不均一メモリアーキテクチャ（ＮＵＭＡ）ノードに対応し、
前記受信コアは、前記機械可読命令を実行することにより、
当該受信コアが位置する転送グループに対応するインターフェースである入力インターフェースからパケットを読み取り、
読み取ったパケットを前記転送グループにおける転送コアに送信し、
前記転送コアは、前記機械可読命令を実行することにより、
前記パケットを対応する出力インターフェースに送信する、パケット転送装置。
【請求項８】
前記パケット転送装置の１つの特定のコアである制御コアをさらに含み、
前記機械可読命令により、前記制御コアは、
前記ＮＵＭＡノードに対して当該ＮＵＭＡノードにおけるすべてのコアを含む前記転送グループを作成し、
前記転送グループにおけるコアを制御コア、受信コアまたは転送コアとして設定し、
前記転送グループに対して対応する入力インターフェースを設定する、請求項７に記載の装置。
【請求項９】
前記転送グループにおけるコアを制御コア、受信コアまたは転送コアとして設定する際に、前記機械可読指令により、前記制御コアはさらに、
それ自身を制御コアとして設定し、
前記転送グループに前記制御コアが含まれていない場合、予め設定されたルールに従って、前記転送グループにおける少なくとも１つのコアを前記受信コアとして設定し、前記転送グループにおけるその他のコアをすべて前記転送コアとして設定し、
前記転送グループに前記制御コアが含まれている場合、予め設定されたルールに従って、前記転送グループにおけるそれ自身以外の少なくとも１つのコアを前記受信コアとして設定し、前記転送グループにおけるその他のコアをすべて前記転送コアとして設定する、請求項８に記載の装置。
【請求項１０】
前記受信コアが読み取ったパケットを前記転送グループにおける転送コアに送信する際に、前記機械可読指令により、前記受信コアはさらに、
受信コア及び転送コアと転送グループとの対応関係を取得し、前記対応関係に基づいて前記転送グループにおける転送コアを特定し、
読み取ったパケットを特定した転送コアに送信する、請求項９に記載の装置。
【請求項１１】
前記転送グループに対して対応する入力インターフェースを設定する際に、前記機械可読指令により、前記制御コアはさらに、
前記ＮＵＭＡノードに関連付けられているネットワークインターフェースカードを識別し、前記ネットワークインターフェースカードのインターフェースを入力インターフェースとして前記ＮＵＭＡノードの転送グループに割り当てる、請求項９に記載の装置。
【請求項１２】
前記転送グループに対して対応する入力インターフェースを設定する際に、前記機械可読指令により、前記制御コアはさらに、
インターフェース設定コマンドに応じて、特定のインターフェースを前記入力インターフェースとして前記転送グループに割り当てる、請求項９に記載の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
〔関連出願の相互参照〕
本願は、２０１５年１２月３０日に出願された出願番号が２０１５１１０１９４０１．２で、発明の名称が「パケット転送方法及び装置」である中国特許出願に基づく優先権を主張するものであり、この出願の全内容は参照により本明細書に組み込まれる。
【０００２】
ＳＭＰ（Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉ−Ｐｒｏｃｅｓｓｉｎｇ、対称型マルチプロセッシング）システムにおいて、複数のコア（ｃｏｒｅ）は、共有のシステムバスを介してメモリにアクセスするとき、衝突が発生する可能性がある。このため、ＮＵＭＡ（Ｎｏｎ−Ｕｎｉｆｏｒｍ  Ｍｅｍｏｒｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ、不均一メモリアーキテクチャ）モードで利用可能なＮＦＶ（Ｎｅｔｗｏｒｋ  Ｆｕｎｃｔｉｏｎ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ、ネットワーク機能仮想化）装置が提案されている。ＮＵＭＡモードで利用するＮＦＶ装置は、複数のＮＵＭＡノード、すなわちＮＵＭＡ−ＮＯＤＥを含むことができ、各ノードには、メモリ空間、例えば当該ノードのローカルメモリが割り当てられる。各ＮＵＭＡノードは、制御コア、受信コア及び転送コアとして設定可能な複数のコアを含むことができる。転送コアは、複数のＮＵＭＡノード内に配置され、受信コアは、パケットをいずれかのＮＵＭＡノードにおける転送コアへ転送することができる。
【０００３】
受信コアは、パケットを受信する際に、当該受信コアが位置するＮＵＭＡノードのローカルメモリを使用することができる。しかし、当該パケットが別のＮＵＭＡノードにおける転送コアへ転送されるものである場合には、転送コアのパケットに対する読み取りにより、非ローカルメモリへのアクセス、例えばメモリに跨るアクセスが行われることになる。
【図面の簡単な説明】
【０００４】
【図１】図１は、本発明の一例におけるＮＦＶ装置の構成の模式図である。
【図２】図２は、本発明の一例におけるパケット転送方法のフローチャートである。
【図３】図３は、本発明の一例におけるパケット転送装置のハードウェア構成の模式図である。
【発明を実施するための形態】
【０００５】
以下、図面を参照しながら、本発明の例における技術案を明確且つ完全に説明する。当然ながら、説明する例は本発明の例の一部に過ぎず、すべての例を網羅するものではない。本発明の例に基づいて当業者が創造的努力をせずに得られる他の例は、いずれも本発明の範囲内にある。
【０００６】
まず、ＮＵＭＡモードのシステム構成を簡単に説明する。ＮＵＭＡモードのシステム構成において、複数のコアはそれぞれ、異なるＮＵＭＡノードに属してもよい。各ＮＵＭＡノードはいずれもそれ自身のローカルメモリを有する。
【０００７】
ＮＵＭＡノードの周りには、ＮＵＭＡノードに関連付けられる複数のＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ、ネットワークインターフェースカード）が配置されてもよい。１つのＮＩＣが受信したネットワークパケットは、このＮＩＣに関連付けられているＮＵＭＡノードを介して転送されることができる。
【０００８】
例えば、一種のＮＵＭＡモードのシステム構成において、コアが１２個あり、これら１２個のコアはそれぞれ２個のＮＵＭＡノード（ＮＵＭＡノードＡ、ＮＵＭＡノードＢ）に属する。１２個のコアのうち２個のコアを受信コアとし、その他のコアのうち制御コア以外は、すべて転送コアとすることができる。ここで、この２個の受信コアはともに１つのＮＵＭＡノードＡ内に配置され、転送コアは、その一部がＮＵＭＡノードＡ内に配置され、他の一部がＮＵＭＡノードＢ内に配置されてもよい。各転送コアは機能的に均一であるので、受信コアが受信したパケットは転送コアのうちのいずれか１つへ送信されることが可能である。例えば、ＮＵＭＡノードＡにおける受信コアは、ＮＩＣからパケットを受信すると、パケットをＮＵＭＡノードＡのローカルメモリに記憶する。当該パケットがＮＵＭＡノードＢにおける転送コアへ転送されるものである場合、ＮＵＭＡノードＢにおける転送コアはＮＵＭＡノードＡのローカルメモリからパケットを読み取るが、この際に使用されるのはＮＵＭＡノードＢのローカルメモリではない。そのため、ＮＵＭＡノードに跨るアクセス、すなわちメモリに跨るアクセスの問題が発生し、転送効率が低下してしまう。ＮＵＭＡノードの数の増加に伴い、メモリに跨るアクセスの発生頻度もそれに応じて高くなり、ＮＦＶ装置のスループット性能を著しく低下させてしまう。
【０００９】
メモリに跨るアクセスの発生をできるだけ減らして転送効率を向上させるために、本発明の例では、パケット転送方法を提供している。当該方法によれば、パケットを転送する過程において、受信コア及び転送コアは同一のＮＵＭＡノードにあるように限定されることにより、パケットの受信及び転送はいずれもローカルメモリを利用して行われることが可能となる。上記した例において、ＮＵＭＡノードＡにおける受信コアが受信したパケットが当該ＮＵＭＡノードＡにおける転送コアへ送信されるものであれば、この２つのコアはともにローカルメモリを利用してパケットの転送を達成することができる。これに基づいて、本発明のパケット転送方法において、パケット転送過程における各コアの役割は、同一のＮＵＭＡノードにおいてパケットの転送を達成するように再設定される。
【００１０】
初期化設定
この初期化設定は、ＮＦＶ装置における各ＮＵＭＡノード、及びＮＵＭＡノードにおける各コアを再設定する操作を含み、ＮＦＶ装置における１つの特定のコアによって実行され得る。例えば、１つのＮＦＶ装置におけるすべてのコアに番号を付け、番号が最小または最大のコアを当該特定のコアとして初期化設定を実行させてもよい。初期化設定の過程において、当該特定のコアはそれ自身を制御コアとして設定する。例えば、図１に示すように、２つのＮＵＭＡノードが示されており、各ＮＵＭＡノードの間はＱＰＩ（ＱｕｉｃｋＰａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ、クイックパスインターコネクト）バス２０を介して接続することができる。各ＮＵＭＡノードはいずれもローカルメモリ（ローカルメモリ１３、１４）を有する。図１において、番号が０から１１までの１２個のコアがあり、番号が０のコアが制御コアであると仮定する。
【００１１】
この初期化設定は、以下のことを含む。
転送グループの作成
あるＮＦＶ装置は、ＮＵＭＡモードで利用され、複数のＮＵＭＡノードを含み、各ＮＵＭＡノードは複数のコアを含むと仮定する。すべてのＮＵＭＡノードをトラバースして、ＮＵＭＡノード毎に、当該ＮＵＭＡノードにおけるすべてのコアを含む１つの対応する転送グループ（Ｆｏｒｗａｒｄｉｎｇ  Ｇｒｏｕｐ）を作成することができる。これらのコアは、転送グループの初期化の過程において、それぞれ受信コアまたは転送コアとして設定することができる。転送グループの初期化の過程が完了すると、受信コア及び転送コアと転送グループとの対応関係が形成される。例えば、この対応関係は、各コアの役割、及び各コアと各コアが属する転送グループとの間の対応関係を定義したコア役割表で示してもよい。コア役割表は、メモリに記憶されて、パケットを転送する際に呼び出されてもよい。なお、受信コア及び転送コアと転送グループとの対応関係は、上記したコア役割表で示すことに限定されず、上記した対応関係を示すことができるものであればよい。
【００１２】
上記した方法により作成した各転送グループは、パケットの転送を独立して達成することができる。つまり、パケット転送は、この転送グループにおけるコアによって実現することができ、他の転送グループ（すなわち、他のＮＵＭＡノード）におけるコアを使用する必要がない。図１を参照すると、２つのＮＵＭＡノードに対して、それぞれ１つの転送グループ、すなわち転送グループ２１及び転送グループ２２を作成することができる。
【００１３】
転送グループにおけるコアの設定
転送グループ毎に、当該転送グループにおけるすべてのコアをトラバースして、コア毎に役割を設定する。ここでの役割は受信コアまたは転送コアであってもよい。例えば、各転送グループにおいて１つの受信コアを設定し、当該転送グループにおけるその他のコアを転送コアとして設定することができる。転送グループにおけるコアの数が多い場合には、パケット転送のストレスを軽減するために、２つ以上の受信コアを設定してもよい。制御コアは、そのうちの１つの転送グループに属し、例えば転送グループ２１には制御コアがさらに含まれている。
【００１４】
転送グループにおけるコアの役割の設定
例えば、上記の特定のコアはそれ自身を制御コアとして設定する。
【００１５】
一例において、転送グループに制御コアが含まれていない場合、制御コアは、予め設定されたルールに従って、当該転送グループにおける少なくとも１つのコアを受信コアとして設定し、その他のコアをすべて転送コアとして設定する。例えば、この制御コアは、転送グループにおいて番号が最小または最大のコアを受信コアとして設定し、その他のコアをすべて転送コアとして設定することができる。図１を参照して説明すると、転送グループ２２には制御コア（ｃｏｎｔｒｏｌ）が含まれておらず、制御コア（ｃｏｎｔｒｏｌ）は、転送グループ２２における６個のコアのうち番号が最小のコアを受信コア（Ｄａｔａ−Ｒｘ１）として設定し、その他のコアをすべて転送コア（Ｄａｔａ−Ｆｗｄ４からＤａｔａ−Ｆｗｄ８までの合計５個の転送コア）として設定することができる。
【００１６】
転送グループに制御コアが含まれている場合、制御コアは、予め設定されたルールに従って、転送グループにおけるそれ自身以外の少なくとも１つのコアを受信コアとして設定し、その他のコアをすべて転送コアとして設定する。最初のＮＵＭＡノードに制御コアが含まれていると仮定する場合、この転送グループにおける制御コア以外のコアのうち番号が最小または最大のコアを受信コアとして設定し、制御コア及び受信コア以外のその他のコアをすべて転送コアとして設定することができる。図１を参照して説明すると、転送グループ２１における６個のコアのうち、番号が最小のコアは制御コア（ｃｏｎｔｒｏｌ）であり、制御コア（ｃｏｎｔｒｏｌ）以外のその他の５個のコアのうち、番号が最小のコアを受信コア（Ｄａｔａ−Ｒｘ０）として設定し、その他のコアをすべて転送コア（Ｄａｔａ−Ｆｗｄ０からＤａｔａ−Ｆｗｄ３までの合計４個の転送コア）として設定することができる。
【００１７】
上記設定により、転送グループ２１は、１個の制御コア、１個の受信コア（Ｄａｔａ−Ｒｘ０）、４個の転送コア（Ｄａｔａ−Ｆｗｄ０からＤａｔａ−Ｆｗｄ３まで）を含むことができる。また、転送グループ２２は、１個の受信コア（Ｄａｔａ−Ｒｘ１）、５個の転送コア（Ｄａｔａ−Ｆｗｄ４からＤａｔａ−Ｆｗｄ８まで）を含むことができる。これから分かるように、この例において、各転送グループはいずれも受信コア及び転送コアを含む。これにより、受信コアは、パケットを受信すると、パケットを当該受信コアが属する転送グループにおける転送コアに送信して処理するだけでよい。
【００１８】
４個のＮＵＭＡノードを含み、かつ各ＮＵＭＡノードにおけるコアの数が６個であるＮＦＶ装置を例とする。表１には、この装置のＮＵＭＡリソースの配分が示されている。
【表１】
2019500821.tif 000003
【００１９】
これに対応して、このＮＦＶ装置のＮＵＭＡノード毎に転送グループを作成し、かつ各転送グループにおけるコアに対して設定を行う。表２に示すように、４つの転送グループを有し、各転送グループは１つの受信コアを含んでも良い。
【表２】
2019500821.tif 000004
【００２０】
転送グループに対応する入力インターフェースの設定
転送グループを作成した後、転送グループ毎に、対応する入力インターフェースを設定し、転送グループは当該入力インターフェースから受信したパケットを転送することができる。
【００２１】
一例では、転送グループに対してインターフェースを割り当てる方法を提供する。例えば、ＮＩＣは、通常、あるソケット（ｓｏｃｋｅｔ）に関連付けられており、当該ソケットは１つのＮＵＭＡノードに対応する。このため、ＮＩＣに関連付けられているＮＵＭＡノードを識別し、当該ＮＩＣのインターフェースを当該ＮＵＭＡノードの転送グループに割り当てることができる。あるインターフェースがパケットを受信した場合、当該インターフェースに対応する転送グループにおける受信コアは、当該インターフェースからパケットを読み取ることができる。このインターフェースを、入力インターフェースと称してもよい。
【００２２】
図１を例にすると、転送グループ２１及び転送グループ２２の周りには、ＮＩＣ１からＮＩＣ８までの８個のＮＩＣが配置されている。ＮＩＣ２のインターフェースを転送グループ２１に割り当て、転送グループ２１における受信コア（Ｄａｔａ−Ｒｘ０）は、当該インターフェースからＮＩＣ２により受信したパケットを読み取って転送することができる。また、ＮＩＣ３のインターフェースを転送グループ２２に割り当て、転送グループ２２における受信コア（Ｄａｔａ−Ｒｘ１）は、当該インターフェースからＮＩＣ３により受信したパケットを読み取って転送することができる。このようなインターフェースの割り当て方法によって、ＮＩＣと転送グループとの間の伝送距離を短くし、損失を低減することが可能となる。
【００２３】
一例では、転送グループに対してインターフェースを割り当てる別の方法を提供する。コマンドライン方法を用いてインターフェース設定コマンドを入力して、当該コマンドによって、あるＮＩＣのインターフェースをあるＮＵＭＡノードに対応する転送グループに割り当てるように指定することができる。このような方法は、ＮＩＣのインターフェースと転送グループとの対応関係を動的に調整する面で有利である。例えば、そのうちの１つの転送グループのパケットのトラフィック量が大きく、負荷が重い場合、当該転送グループに対応するインターフェースの一部を他の転送グループに割り当てることができる。すなわち、インターフェース設定コマンドによって、転送グループに対応するインターフェースの中から一部のインターフェースを削除するとともに、削除された一部のインターフェースを他の転送グループに割り当て、インターフェースと転送グループとの新たな対応関係を確立してもよい。
【００２４】
転送グループとインターフェースとの対応関係は、制御コアが転送グループに対して対応するインターフェースを割り当てる際にメモリに記録してもよい。その後、パケットを転送する際に、受信コアは、この記憶されている対応関係で規定したこれらのインターフェースを介して、ＮＩＣが受信したパケットを読み取ることができる。
【００２５】
上記した初期化設定を経て、ＮＦＶ装置におけるＮＵＭＡノード毎に対応する転送グループが作成されるとともに、転送グループのコア毎に役割が設定され、また、転送グループ毎に対応する入力インターフェースが設定される。そして、ＮＦＶ装置における各転送グループは、パケットの転送を開始することができる。各転送グループは、独立して、それぞれパケットの転送を実行してもよい。これにより、メモリに跨るアクセスをできるだけ減らし、このＮＦＶ装置のパケット転送のスループット性能も向上する。
【００２６】
以下、図２を参照して、本発明の例によるパケット転送方法を説明する。このパケット転送方法は以下のステップを含みうる。
【００２７】
ステップ２０１において、転送グループにおける受信コアは、受信コアが位置する転送グループに対応するインターフェースである入力インターフェースからパケットを読み取る。
【００２８】
転送グループ２１を例にする。図１における矢印線で示したパケット転送経路を参照すると、この転送グループ２１における受信コア（Ｄａｔａ−Ｒｘ０）は、ＮＩＣ２のインターフェースを介してパケットを読み取ることができる。
【００２９】
この例において、１つの転送グループに対応する入力インターフェースの数は、複数個例えば３個または８個などであってもよい。転送グループにおける受信コアは、当該転送グループに対応するすべての入力インターフェースをトラバースし、入力インターフェースがパケットを受信すると、パケットを読み取ることができる。
【００３０】
ステップ２０２において、当該転送グループにおける受信コアは、読み取ったパケットを当該転送グループにおける転送コアに送信する。
【００３１】
本発明では、受信コアが属する転送グループの中から転送コアを選択することができる。ステップ２０１においてパケットを読み取った受信コアは、メモリに記録されている受信コア及び転送コアと転送グループとの対応関係を検索して、当該受信コアが属する転送グループにおける転送コアを特定する。そして、特定した転送コアの中からパケット転送を行う転送コアを選択する。例えば、転送グループ２１における受信コア（Ｄａｔａ−Ｒｘ０）は、パケットを読み取った後、パケットを転送コア（Ｄａｔａ−Ｆｗｄ２）に送信してもよい。転送グループの中から転送コアを選択する際、以下の２つの方法を採用することができる。１つの方法は、ストリームごとに選択する方法である。すなわち、受信コアは、ある定められた５タプルのパケットを自身が属する転送グループにおける１つの定められた転送コアに送信する。もう１つの方法は、パケットごとに選択する方法である。すなわち、転送グループにおける転送コアをトラバースしてパケット転送を行う。例えば、パケット１を転送コア１に送信し、パケット２を転送コア２に送信し、パケット３を転送コア３に送信し、パケット４を転送コア４に送信し、パケット５を転送コア１にさらに送信し、パケット６を転送コア２に送信するなどの形態であってもよい。パケットごとに選択する場合、このようなラウンドロビンの方法を採用してもよい。当然ながら、転送コアを選択する方法は、上記した２つの方法に限定されず、その他のポリシーに基づいて選択することも可能であり、例えば転送コアの優先順位に基づいて選択してもよい。
【００３２】
ステップ２０３において、当該転送コアは、パケットを対応する出力インターフェースに送信する。
【００３３】
転送コアは、パケットを受信すると、転送ルールに従ってパケットを続いて転送し（例えば、パケットの宛先アドレスに応じて対応する出力インターフェースを選択し）、出力インターフェースからパケットを送信する。図１に示すように、Ｄａｔａ−Ｆｗｄ２は、Ｄａｔａ−Ｒｘ０から送信されたパケットを受信すると、パケットをＮＩＣ８に送信することができる。
【００３４】
転送グループ２２を例にすると、当該転送グループ２２は、同様に、上記したステップ２０１〜ステップ２０３に示す転送方法に従ってパケットの転送を行うことができる。図１に示すように、受信コア（Ｄａｔａ−Ｒｘ１）は、ＮＩＣ３により受信したパケットを読み取り、パケットを当該Ｄａｔａ−Ｒｘ１と同一の転送グループ２２に位置する転送コア（Ｄａｔａ−Ｆｗｄ７）に送信し、さらにＤａｔａ−Ｆｗｄ７によりＮＩＣ６からパケットを送信する。
【００３５】
ＮＵＭＡシステムアーキテクチャによるＮＦＶ装置について言えば、この装置のプロセッサのリソースを効率的で、かつ相対的に独立した複数の転送グループに分割することにより、異なるＮＵＭＡノードに跨ることによるロスを避け、システム全体のスループット能力を大幅に向上させることができる。また、本発明の例における転送グループは、仮想マシンまたはベアメタル形態のＮＦＶ製品であってもよい。
【００３６】
本発明はさらに、パケット転送装置を提供する。このパケット転送装置は、図３に示すハードウェア構成を採用することができる。図１に比べて、図３は、パケット転送装置における各ハードウェアモジュールの間の接続関係をより明確に示している。図３に示すように、このパケット転送装置は、受信コア及び転送コアに加えて、パケット転送制御ロジックのための機械可読命令が記憶されている不揮発性記憶媒体３０１をさらに含みうる。図３に示す各部は、内部バス３０２を介して互いに通信可能である。同一の転送グループに属する複数のコアは、１つのＮＵＭＡノードに対応してもよい。また、前記受信コア及び転送コアは、前記機械可読命令を実行することにより以下の操作を実現することができる。前記受信コアは、前記受信コアが位置する転送グループに対応するインターフェースである入力インターフェースからパケットを読み取る。前記受信コアは、読み取ったパケットを前記転送グループにおける転送コアに送信する。前記転送コアは、前記パケットを対応する出力インターフェースに送信する。
【００３７】
このパケット転送装置は、制御コアによって初期化設定を行い、パケット転送装置におけるＮＵＭＡノード毎に対応する転送グループを作成し、転送グループにおける各コアを受信コア、転送コアまたは制御コアとして設定することができる。また、このパケット転送装置は、各転送グループに対して対応するインターフェースを割り当てることにより、転送グループにおける受信コアが当該インターフェースからパケットを読み取るようにすることもできる。
【００３８】
初期化設定が完了すると、このパケット転送装置には、複数の独立した転送グループが形成され、それぞれ独立してパケットの転送処理を実行することになる。パケットを転送する際に、各転送グループは、いずれも本発明における上記したパケット転送方法に従ってパケットの転送処理を行うことができる。例えば、受信コアは、パケットを受信すると、パケットを同一の転送グループにおける転送コアに送信することにより、メモリに跨るアクセスをできるだけ減らし、このパケット転送装置のパケット転送のスループット性能も向上する。
【００３９】
本発明で使用される専門用語は、単に特定の例を説明するためのものであり、本発明を限定するものではない。本発明及び特許請求の範囲で使用される単数形「１つ」、「前記」及び「当該」は、文脈が明確に他のことを示唆していない以上、複数形も含むものである。また、本明細書で使用される用語「及び／又は」とは、関連する１つ又は複数の記載品目のいずれか又は全ての可能な組み合わせを含む。
【００４０】
以上で説明する例は本発明の例の一部に過ぎず、すべての例を網羅するものではない。本発明の例に基づいて当業者が創造的努力をせずに得られる他の例は、いずれも本発明の範囲内にある。
【００４１】
以上の説明は、本発明の好適な例に過ぎず、本発明を限定するものではない。本発明の趣旨および原理を逸脱しない範囲内で行われる任意の変更、同等の置換、改良などはいずれも、本発明の範囲に含まれる。
【図１】
2019500821.tif 000005
【図２】
2019500821.tif 000006
【図３】
2019500821.tif 000007
【国際調査報告】
2019500821.tif 000008
2019500821.tif 000009
2019500821.tif 000010
2019500821.tif 000011