IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7556227ネットワークスイッチ,制御プログラムおよび制御方法
<>
  • 特許-ネットワークスイッチ,制御プログラムおよび制御方法 図1
  • 特許-ネットワークスイッチ,制御プログラムおよび制御方法 図2
  • 特許-ネットワークスイッチ,制御プログラムおよび制御方法 図3
  • 特許-ネットワークスイッチ,制御プログラムおよび制御方法 図4
  • 特許-ネットワークスイッチ,制御プログラムおよび制御方法 図5
  • 特許-ネットワークスイッチ,制御プログラムおよび制御方法 図6
  • 特許-ネットワークスイッチ,制御プログラムおよび制御方法 図7
  • 特許-ネットワークスイッチ,制御プログラムおよび制御方法 図8
  • 特許-ネットワークスイッチ,制御プログラムおよび制御方法 図9
  • 特許-ネットワークスイッチ,制御プログラムおよび制御方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】ネットワークスイッチ,制御プログラムおよび制御方法
(51)【国際特許分類】
   H04L 49/00 20220101AFI20240918BHJP
【FI】
H04L49/00
【請求項の数】 4
(21)【出願番号】P 2020132584
(22)【出願日】2020-08-04
(65)【公開番号】P2022029306
(43)【公開日】2022-02-17
【審査請求日】2023-05-11
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100092978
【弁理士】
【氏名又は名称】真田 有
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】加藤 純
【審査官】中川 幸洋
(56)【参考文献】
【文献】特開2014-171226(JP,A)
【文献】米国特許出願公開第2013/0176888(US,A1)
【文献】特開2017-028539(JP,A)
【文献】特表2015-515153(JP,A)
【文献】特開2020-113836(JP,A)
【文献】特開2005-051736(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 49/00
(57)【特許請求の範囲】
【請求項1】
FPGA(Field Programmable Gate Array)とプロセッサとを備えるネットワークス
イッチにおいて、
前記FPGAが、
転送定義情報に基づき、転送先に処理対象パケットを転送する第1パケット転送制御部と、
前記処理対象パケットのコピーを前記プロセッサに転送する第2パケット転送制御部と、
として機能し、
前記プロセッサが、
転送実績情報に基づき、前記転送定義情報のエントリを削除する第1更新処理部と、
前記処理対象パケットのコピーに基づき、前記転送実績情報を更新する第2更新処理部と、
として機能し、
前記転送実績情報において、パケット無転送時間が閾値以上である送信元もしくは宛先に関し、前記転送定義情報におけるエントリの即時の削除要求が発行されていない場合に、
前記プロセッサが、前記転送定義情報に、前記第1更新処理部の仮想ポートを前記処理対象パケットの転送先として設定することで、前記第2パケット転送制御部に前記処理対象パケットのコピーを転送させ、
前記第2更新処理部が、転送された前記処理対象パケットのコピーに基づいて前記転送実績情報を更新し、
前記第2更新処理部が、前記転送実績情報の更新後に、前記処理対象パケットのコピーを破棄し、
前記プロセッサが、前記転送定義情報から、前記処理対象パケットの転送先として設定した前記第1更新処理部の仮想ポートを削除することで、前記第2パケット転送制御部による前記処理対象パケットのコピーの転送を解除させ、
前記第1パケット転送制御部が、前記転送定義情報に基づき、前記転送先に前記処理対象パケットを転送する、
ことを特徴とする、ネットワークスイッチ。
【請求項2】
前記第2パケット転送制御部が、前記処理対象パケットのコピーに、コピーである旨を示す識別情報を設定する。
ことを特徴とする、請求項1記載のネットワークスイッチ。
【請求項3】
プロセッサと、転送定義情報に基づき、転送先に処理対象パケットを転送する第1パケット転送制御部と、前記処理対象パケットのコピーを前記プロセッサに転送する第2パケット転送制御部と、として機能するFPGA(Field Programmable Gate Array)とを備
えるネットワークスイッチにおいて、
前記プロセッサに、
転送実績情報において、パケット無転送時間が閾値以上である送信元もしくは宛先に関し、前記転送定義情報におけるエントリの即時の削除要求が発行されていない場合に、
前記転送定義情報に、前記転送定義情報のエントリを削除する処理部の仮想ポートを前記処理対象パケットの転送先として設定することで、前記第2パケット転送制御部に前記処理対象パケットのコピーを転送させ、
転送された前記処理対象パケットのコピーに基づいて前記転送実績情報を更新し、
前記転送実績情報の更新後に、前記処理対象パケットのコピーを破棄し、
前記転送定義情報から、前記処理対象パケットの転送先として設定した前記処理部の仮想ポートを削除することで、前記処理対象パケットのコピーの転送を解除させ、
前記第1パケット転送制御部に、前記転送定義情報に基づき、前記転送先に前記処理対象パケットを転送させる、
処理を実行させる、制御プログラム。
【請求項4】
FPGA(Field Programmable Gate Array)とプロセッサとを備えるネットワークス
イッチにおいて、
前記FPGAが、
転送定義情報に基づき、転送先に処理対象パケットを転送する処理と、
前記処理対象パケットのコピーを前記プロセッサに転送する処理と
を実行し、
前記プロセッサが、
転送実績情報に基づき、前記転送定義情報のエントリを削除する処理と、
前記処理対象パケットのコピーに基づき、前記転送実績情報を更新する処理と
を実行し、
前記転送実績情報においてパケット無転送時間が閾値以上である送信元もしくは宛先に関し、前記転送定義情報におけるエントリの即時の削除要求が発行されていない場合に、
前記プロセッサが、前記転送定義情報に、前記転送定義情報のエントリを削除する処理部の仮想ポートを前記処理対象パケットの転送先として設定することで、前記処理対象パケットのコピーを前記プロセッサに転送させ、
前記プロセッサが、転送された前記処理対象パケットのコピーに基づいて前記転送実績情報を更新し、
前記プロセッサが、前記転送実績情報の更新後に、前記処理対象パケットのコピーを破棄し、
前記プロセッサが、前記転送定義情報から、前記処理対象パケットの転送先として設定した前記処理部の仮想ポートを削除することで、前記処理対象パケットのコピーの転送を解除させ、
前記FPGAが、前記転送定義情報に基づき、前記転送先に前記処理対象パケットを転送する、
ことを特徴とする、制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークスイッチ,制御プログラムおよび制御方法に関する。
【背景技術】
【0002】
近年、ネットワークにおけるスイッチとしての機能をソフトウェアにより実現する仮想ネットワークスイッチが知られている。仮想ネットワークスイッチをソフトウェアスイッチといってもよい。
【0003】
仮想ネットワークスイッチは、例えば、ハイパーバイザ型の仮想化環境やコンテナ環境において仮想スイッチを形成し、物理スイッチや仮想マシン(VM:Virtual Machine)、コンテナ等の通信路を実現する。
そして、コンピュータが、仮想ネットワークスイッチを実現するためのプログラムを実行することで、仮想ネットワークスイッチとしての機能が実現される。
【0004】
仮想ネットワークスイッチを実現するためのプログラムとして、例えば、Open vSwitch(登録商標)が知られている。Open vSwitch は、OSS(Open Source Software)のOpen Flow対応仮想ネットワークスイッチを実現する。以下、コンピュータ上において仮想ネットワークスイッチとしての機能を実現する処理部を、仮想ネットワークスイッチ処理部という場合がある。
【0005】
仮想ネットワークスイッチにおいては、物理ポートにおいて受信したパケットを、FIB(Forwarding Information Base)を参照して、例えば、当該パケットの宛先である仮想マシンの仮想ポートに転送する。FIBは、パケット転送を制御するためのルーティング情報として用いられる。
【0006】
FIBは、例えば、複数のエントリを備えるテーブルとして構成され、各エントリは、ルールおよびアクションを備える。FIBのエントリをフローという場合がある。FIBは、仮想ネットワークスイッチ処理部により設定される。
【0007】
一のフローにかかる複数のパケットを処理する場合には、仮想ネットワークスイッチ処理部が、最初のパケットの処理時において宛先解決を行なった結果をFIBに設定する。そして、後続するパケットについては、FIBを参照し、このFIBに設定されたフローのルールに対応付けられたアクションを実行する。
【0008】
また、仮想ネットワークスイッチにおいては、例えば、最後に使用されてからの経過時間を示すアイドル(idle)時間や、送信/受信バイト数等の統計情報をフロー毎に採取する機能を備えることも知られている。
【0009】
また、近年においては、CPU(Central Processing Unit)にFPGA(Field Programmable Gate Array)を統合したプロセッサが登場している。このようなFPGAが統合されたプロセッサにおいては、CPUとFPGAとの間において、メモリ(主記憶)を経由した整合性のとれたデータの共有を低遅延で実現することができる。
【0010】
このようなFPGAが統合されたプロセッサを搭載したコンピュータに仮想ネットワークスイッチとしての機能を実現させる際に、FPGAに閉じてパケット転送を行なわせることで、物理スイッチ並みの性能を実現することができる。すなわち、仮想ネットワークスイッチ制御部が実現する機能のうち、パケット転送機能をFPGAにオフロードさせることで、パケット転送を高速化することができる。
【0011】
例えば、パケットを転送するに際して、FIBに当該パケットのフローが登録されている場合には、FPGAは、このFIBを参照して単体でパケット転送を行なうことができ、これによりパケット転送を高速に処理することができる。
【先行技術文献】
【特許文献】
【0012】
【文献】特開2018-117193号公報
【文献】特開2017-174301号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかしながら、パケット転送機能をFPGAにオフロードした場合には、統計情報を採取することが困難である。FPGAにパケット転送機能をオフロードした場合において、例えば、主記憶上のFIBに統計情報用の領域を追加することで、理論上は、統計情報を収集することは実現できる。
【0014】
しかし、この場合に、パケット処理を実行するたびにFIBの更新処理が発生する。これにより、FPGAからFIBへのアクセスに使用する通信帯域の使用量が増大し、スループット性能が低下する。
【0015】
なお、FPGAのメモリにFIBを格納することも考えられる。しかし、例えば、統計情報のデータサイズを1ビットとしても、フローテーブルのエントリ数は2,000,000個あるので、統計情報のデータサイズは2,000,000ビットと膨大になる。そのため、FPGAの回路変規模の制限により、FPGAのメモリにFIBを格納することはできない。
【0016】
ここで、仮想ネットワークスイッチにおいて統計情報を採取できない場合には、FIBから不要なフローを効率的に削除することができないという弊害が生じる。
【0017】
FIBにおいては、例えば、転送処理が完了したフロー等を削除する必要がある。従来の仮想ネットワークスイッチにおいては、アイドル時間に基づき、フローを削除している。
【0018】
しかしながら、FPGAが統合されたプロセッサを搭載したコンピュータにより実現する仮想ネットワークスイッチにおいては、FPGAにパケット転送機能をオフロードすることで、仮想ネットワークスイッチのソフトウェアはアイドル時間を取得することができない。
【0019】
そこで、アイドル時間の代わりに、MAC(Media Access Control)アドレスのエージアウト機能を活用し、フローの送信元もしくは宛先のMACアドレスとの間に所定時間(例えば、300秒)通信がないときに(エージアウト)、当該フローをFIBから削除するフラッシュ処理を行なうことが考えられる。
【0020】
しかしながら、FPGAにパケット転送機能をオフロードしている状態においては、パケットが仮想ネットワークスイッチのソフトウェアに届かない。その一方で、MACアドレスの管理は仮想ネットワークスイッチのソフトウェアで行なうが、このソフトウェアにパケットが届かないので、MACアドレスの有効期間が更新されない。従って、全てのフローにおいて、必ず、所定時間(例えば、300秒)毎にエージアウトが発生し、これに伴うフラッシュ処理によりアイドル状態でないアクティブなフローであってもFIBから削除される。
【0021】
これにより、アイドル状態ではないアクティブなフローでもFPGAにオフロードできない状態になり、断片的な性能低下が発生する。なお、もう一度、該当フローにマッチするパケットが届けば、FIBの再設定処理が行なわれ、再びオフロード状態になるが、そのパケット自体は仮想ネットワークスイッチのソフトウェアによって処理されるため、性能低下が生じることとなる。
1つの側面では、本発明は、無駄なフラッシュ処理および転送定義情報の再設定処理が発生しないようにし、性能低下を回避することを目的とする。
【課題を解決するための手段】
【0022】
このため、このネットワークスイッチは、FPGA(Field Programmable Gate Array)とプロセッサとを備えるネットワークスイッチにおいて、前記FPGAが、転送定義情報に基づき、転送先に処理対象パケットを転送する第1パケット転送制御部と、前記処理対象パケットのコピーを前記プロセッサに転送する第2パケット転送制御部と、として機能し、前記プロセッサが、転送実績情報に基づき、前記転送定義情報のエントリを削除する第1更新処理部と、前記処理対象パケットのコピーに基づき、前記転送実績情報を更新する第2更新処理部と、として機能する。
また、前記転送実績情報において、パケット無転送時間が閾値以上である送信元もしくは宛先に関し、前記転送定義情報におけるエントリの即時の削除要求が発行されてない場合に、前記プロセッサが、前記転送定義情報に、前記第1更新処理部の仮想ポートを前記処理対象パケットの転送先として設定することで、前記第2パケット転送制御部に前記処理対象パケットのコピーを転送させ、前記第2更新処理部が、転送された前記処理対象パケットのコピーに基づいて前記転送実績情報を更新し、前記第2更新処理部が、前記転送実績情報の更新後に、前記処理対象パケットのコピーを破棄し、前記プロセッサが、前記転送定義情報から、前記処理対象パケットの転送先として設定した前記第1更新処理部の仮想ポートを削除することで、前記第2パケット転送制御部による前記処理対象パケットのコピーの転送を解除させ、前記第1パケット転送制御部が、前記転送定義情報に基づき、前記転送先に前記処理対象パケットを転送する。
【発明の効果】
【0023】
一実施形態によれば、無駄なフラッシュ処理および転送定義情報の再設定処理が発生しないようにし、性能低下を回避することができる。
【図面の簡単な説明】
【0024】
図1】実施形態の一例としてのネットワークスイッチのハードウェア構成を模式的に示す図である。
図2】実施形態の一例としてのネットワークスイッチの機能構成を例示する図である。
図3】実施形態の一例としてのネットワークスイッチにおけるMAC学習テーブルを例示する図である。
図4】実施形態の一例としてのネットワークスイッチにおける、パケット処理を説明するためのフローチャートである。
図5】実施形態の一例としてのネットワークスイッチにおけるフロー削除処理の概要を説明するためのフローチャートである。
図6】実施形態の一例としてのネットワークスイッチにおけるGC処理を説明するためのフローチャートである。
図7】実施形態の一例としてのネットワークスイッチにおけるアクティブなフローの削除処理を説明するためのシーケンス図である。
図8】実施形態の一例としてのネットワークスイッチにおけるアイドル状態のフローの削除処理を説明するためのシーケンス図である。
図9】従来のネットワークスイッチにおけるエージアウト発生時のパケット転送処理を示す図である。
図10】実施形態の一例としてのネットワークスイッチにおけるパケット転送処理を示す図である。
【発明を実施するための形態】
【0025】
以下、図面を参照して本ネットワークスイッチ,制御プログラムおよび制御方法にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0026】
(A)構成
図1は実施形態の一例としてのネットワークスイッチ1のハードウェア構成を模式的に示す図である。
【0027】
ネットワークスイッチ1は、情報処理装置(コンピュータ)であって、例えば、FPGA統合プロセッサ11,メモリ部12,記憶装置13,グラフィック処理装置14,入力インタフェース15,光学ドライブ装置16,機器接続インタフェース17およびネットワークインタフェース18を構成要素として有する。これらの構成要素11~18は、バス19を介して相互に通信可能に構成される。
【0028】
FPGA統合プロセッサ(処理部)11は、ネットワークスイッチ1全体を制御する。FPGA統合プロセッサ11は、CPU(プロセッサ)11aとFPGA11bとを統合して構成されている。このようなCPUとFPGAとが統合されたFPGA統合プロセッサとして、例えば、Intel社のXeon Gold 6138Pが知られている。
【0029】
CPU11aは、マルチプロセッサであってもよい。CPU11aは、例えば、MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device)のいずれか一つであってもよい。また、CPU11aは、CPU,MPU,DSP,ASIC,PLDのうちの2種類以上の要素の組み合わせであってもよい。
【0030】
そして、CPU11aがネットワークスイッチ1用の制御プログラム(図示省略)を実行することにより、図2を用いて後述する、仮想ネットワークスイッチ制御部103および仮想マシン(VM)106としての機能が実現される。
【0031】
なお、ネットワークスイッチ1は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム(制御プログラム,OSプログラム)を実行することにより、仮想ネットワークスイッチ制御部103および仮想マシン106としての機能を実現する。
【0032】
ネットワークスイッチ1に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、ネットワークスイッチ1に実行させるプログラムを記憶装置13に格納しておくことができる。CPU11aは、記憶装置13内のプログラムの少なくとも一部を、後述するメモリ部12のRAM(Random Access Memory)にロードし、ロードしたプログラムを実行する。
【0033】
また、ネットワークスイッチ1(CPU11a)に実行させるプログラムを、光ディスク16a,メモリ装置17a,メモリカード17c等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばCPU11aからの制御により、記憶装置13にインストールされた後、実行可能になる。また、CPU11aが、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0034】
FPGA11bは、デジタル回路の回路設計を電気的に変更可能なデバイスである。FPGA11bは、多数の論理ゲートを有するLSI(Large Scale Integration circuit)である。FPGA1bは、論理ゲート間の論理関係と接続関係とを記述したコンフィギュレーションデータをFPGA11bが備えるコンフィギュレーションRAM(図示省略)に書き込むことで、所定の論理回路として機能する。
本ネットワークスイッチ1においては、FPGA11bは、図2を用いて後述する、転送制御部101およびパケット転送部102としての機能を実現する。
【0035】
メモリ部12は、ROM(Read Only Memory)およびRAMを含む記憶メモリである。メモリ部12はネットワークスイッチ1の主記憶装置として使用される。RAMには、CPU11aに実行させるプログラムの少なくとも一部が一時的に格納される。また、メモリ部12には、CPU11aおよびFPGA11bによる処理に必要な各種データが格納される。また、メモリ部12のRAMに、後述する、FIB104およびMAC学習テーブル105を構成する情報を格納してもよい。
【0036】
記憶装置13は、ハードディスクドライブ(Hard Disk Drive:HDD)、SSD(Solid State Drive)、ストレージクラスメモリ(Storage Class Memory:SCM)等の記憶装置であって、種々のデータを格納するものである。記憶装置13には、OSプログラム,制御プログラムおよび各種データが格納される。
【0037】
なお、補助記憶装置としては、SCMやフラッシュメモリ等の半導体記憶装置を使用することもできる。また、複数の記憶装置13を用いてRAID(Redundant Arrays of Inexpensive Disks)を構成してもよい。
【0038】
グラフィック処理装置14には、モニタ14aが接続されている。グラフィック処理装置14は、CPU11aからの命令に従って、画像をモニタ14aの画面に表示させる。モニタ14aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置等が挙げられる。
【0039】
入力インタフェース15には、キーボード15aおよびマウス15bが接続されている。入力インタフェース15は、キーボード15aやマウス15bから送られてくる信号をFPGA統合プロセッサ11に送信する。なお、マウス15bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル,タブレット,タッチパッド,トラックボール等が挙げられる。
【0040】
光学ドライブ装置16は、レーザ光等を利用して、光ディスク16aに記録されたデータの読み取りを行なう。光ディスク16aは、光の反射によって読み取り可能にデータを記録された可搬型の非一時的な記録媒体である。光ディスク16aには、DVD(Digital Versatile Disc),DVD-RAM,CD-ROM(Compact Disc Read Only Memory),CD-R(Recordable)/RW(ReWritable)等が挙げられる。
【0041】
機器接続インタフェース17は、ネットワークスイッチ1に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース17には、メモリ装置17aやメモリリーダライタ17bを接続することができる。メモリ装置17aは、機器接続インタフェース17との通信機能を搭載した非一時的な記録媒体、例えばUSB(Universal Serial Bus)メモリである。メモリリーダライタ17bは、メモリカード17cへのデータの書き込み、またはメモリカード17cからのデータの読み出しを行なう。メモリカード17cは、カード型の非一時的な記録媒体である。
【0042】
ネットワークインタフェース18は、ネットワークに接続される。ネットワークインタフェース18は、ネットワークを介してデータの送受信を行なう。ネットワークには他の情報処理装置や通信機器等が接続されてもよい。
【0043】
図2は実施形態の一例としてのネットワークスイッチ1の機能構成を例示する図である。
ネットワークスイッチ1は、図2に示すように、転送制御部101,パケット転送部102,仮想ネットワークスイッチ制御部103および仮想マシン106としての機能を備える。
【0044】
上述の如く、転送制御部101およびパケット転送部102としての機能は、FPGA11bによって実現される。また、仮想ネットワークスイッチ制御部103および仮想マシン106としての機能は、CPU11aによって実現される。仮想マシン106の数は1つに限定されるものではなく、適宜変更して実施することができる。
【0045】
――仮想マシン106――
仮想マシン106は、例えば、ハイパーバイザ等のアプリケーションプログラム上で作成される仮想的なコンピュータである。仮想マシン106は、物理ハードウェアで実現されるコンピュータと同様に種々の処理を実行する。例えば、仮想マシン106は、種々のOS(ゲストOS)やこのゲストOS上で稼動するアプリケーションプログラムを実行する。なお、仮想マシン106は既知の手法により実現することができ、その説明は省略する。また、仮想マシン106に代えて、コンテナ等の他の仮想化基盤技術を用いてもよく、適宜変更して実施することができる。
【0046】
仮想マシン106は仮想ポート108を備え、この仮想ポート108を介してパケットの送受信を行なう。後述するパケット転送部102がこの仮想ポート108を宛先としてパケットを送信する。
【0047】
――転送制御部101――
転送制御部101は、パケット転送部102によるパケットの転送制御を行なう。転送制御部101は、物理ポート107がパケットを受信すると、当該パケットのフローに基づいてFIB104を参照し、該当するフローがFIB104に設定されているかを確認する。該当するフローがFIB104に設定されている場合には、転送制御部101は、当該フローのルールおよびアクションに従って、パケット転送部10にパケットを処理させる。例えば、転送制御部101は、パケット転送部102によるパケットの転送先を決定し、パケット転送部102に通知する。
【0048】
FIB104は、例えば、複数のエントリを備えるテーブルとして構成され、各エントリは、ルールおよびアクションを備える。FIBのエントリをフローという場合がある。FIBは、仮想ネットワークスイッチ制御103により設定される。FIB104は、パケット転送を制御するためのルーティング情報として用いられ、転送定義情報に相当する。
【0049】
また、転送制御部101は、FIB104に該当するフローが設定されていない場合には、パケット転送部102に、当該パケットを仮想ネットワークスイッチ制御部103に送信させる。仮想ネットワークスイッチ制御部103が、当該パケットについて、宛先解決を行ない、当該パケットのフローをFIB104に設定すると、転送制御部101は、この設定されたフローに従って、パケット転送部102に処理させる。
【0050】
――パケット転送部102――
パケット転送部102は、ネットワークスイッチ1において、物理ポート107と、仮想マシン106の仮想ポート108との間でパケットを転送する。例えば、パケット転送部102は、物理ポート107が受信したパケットを、転送制御部101によって決定される宛先(仮想マシン106の仮想ポート108)にパケットを転送(送信)する。
すなわち、パケット転送部102は、FIB(転送定義情報)104に基づき、転送先に処理対象パケットを転送する第1パケット転送制御部として機能する。
【0051】
また、パケット転送部102は、転送するパケットを、その宛先のポート(仮想ポート108)の他に、仮想ネットワークスイッチ制御部103にも転送する。すなわち、パケット転送部102は、パケットを、その本来の宛先ポートと、仮想ネットワークスイッチ制御部103とに送信する。
【0052】
すなわち、パケット転送部102は、処理対象パケットのコピー(ミラー転送パケット)を仮想ネットワークスイッチ制御部103(CPU11a)に転送する第2パケット転送制御部として機能する。
【0053】
以下、パケット転送部102が、パケットのコピーをその本来の宛先ポートとは別に仮想ネットワークスイッチ制御部103に転送することを一時的ミラー転送という場合がある。また、この一時的ミラー転送により仮想ネットワークスイッチ制御部103に転送するパケットを一時的ミラー転送パケットという場合がある。また、この一時的ミラー転送パケットが属するフローを一時的ミラー転送フローという場合がある。
【0054】
パケット転送部102は、一時的ミラー転送パケットに対して、一時的ミラー転送であることを示すタグ(識別情報)を設定する。このタグ付けは、例えば、パケットのヘッダの特定の領域にフラグを設定することで行なってもよい。
【0055】
仮想ネットワークスイッチ制御部103においては、受信したパケットのヘッダを参照することで、当該パケットが一時的ミラー転送パケットであることを検出することができる。
【0056】
なお、本ネットワークスイッチ1において、FPGA11bにおいて転送制御部101およびパケット転送部102がパケットの転送を行なうことをオフロードという場合がある。
【0057】
――仮想ネットワークスイッチ制御部103――
仮想ネットワークスイッチ制御部103は、本ネットワークスイッチ1において仮想ネットワークスイッチとしての機能を実現するための制御を行なう。仮想ネットワークスイッチは、ソフトウェア定義型ネットワーク(SDN:Software Defined Networking)を実現する。仮想ネットワークスイッチ制御部103は、例えば、Open vSwitchの機能により実現してもよい。
【0058】
仮想ネットワークスイッチ制御部103は、MAC学習テーブル105を用いて、フローの送信元もしくは宛先のMACアドレスに対する通信のアイドル(idle)時間(パケット無転送時間)を管理する。
図3は実施形態の一例としてのネットワークスイッチ1におけるMAC学習テーブル105を例示する図である。
【0059】
図3に例示するMAC学習テーブル105は、フローの送信元もしくは宛先のMACアドレスに、アイドル時間を対応付ける。このMAC学習テーブル105を参照することで、アイドル時間が所定の閾値を超えた、フローの送信元もしくは宛先のMACアドレスを検出することができる。
【0060】
仮想ネットワークスイッチ制御部103は、後述するパケット転送部102から一時的ミラー転送パケットを受信すると、MAC学習テーブル105の更新を行なう。すなわち、MAC学習テーブル105における、当該フローのMACアドレスに対応するアイドル時間を0に設定(リセット)する。
【0061】
また、仮想ネットワークスイッチ制御部103は、フローの転送先から当該仮想ネットワークスイッチ制御部103を除外する。また、仮想ネットワークスイッチ制御部103は、受信した一時的ミラー転送パケットを破棄する。これにより、一時的ミラー転送パケットの二重転送を防止し、また、無駄なミラー処理を減らすことができる。
【0062】
そして、上述したMAC学習テーブル105の更新やフローの転送先から当該仮想ネットワークスイッチ制御部103の除外および一時的ミラー転送パケットの破棄と同時に、上記の処理でFPGA11bの転送制御部101およびパケット転送部102による、FIB104に基づく転送処理が行なわれる。このように、一時的なミラー設定応対のフローに対してパケットが届くと、MAC学習テーブル105の更新,フローの転送先から当該仮想ネットワークスイッチ制御部103の除外,一時的ミラー転送パケットの破棄および、FIB104に基づく転送処理が行なわれる。
【0063】
仮想ネットワークスイッチ制御部103は、MAC学習テーブル105においてアイドル時間が所定の閾値(例えば、600秒)以上経過したフローについては、別途GC(Garbage Collection)を行ない、FIB104から削除する。ここで例示した600秒の閾値は、例えば、一時的なミラー設定になるまでに300秒かかり、それからGCが走るまでに300秒かかることを想定して設定したものである。すなわち、最初にFIB104にフロー設定(すなわち、MAC学習テーブル105の該当エントリのアイドル時間を0に設定)してからGCが動作する際のアイドル時間を600秒として設定したものである。
【0064】
GC対象のフローは、宛先ポートに仮想ネットワークスイッチ制御部103の仮想ポート108が追加されているフローである。仮想ネットワークスイッチ制御部103は、仮想ネットワークスイッチ制御部103への転送設定を行なって、閾値(例えば、600秒)経過してもパケットが届かないフローをFIB104から削除する。
【0065】
また、仮想ネットワークスイッチ制御部103は、FIB104の使用率が一定割合(例えば、80%)を超えた場合にも、GC対象のフローを、MAC学習テーブル105への登録時期が古いものから順に削除する。
【0066】
仮想ネットワークスイッチ制御部103は、これらの、仮想ネットワークスイッチ制御部103への転送設定が行なわれてから、所定の閾値(例えば、600秒)経過してもパケットが届かないこと、もしくは、FIB104の使用率が一定割合(例えば、80%)を超えたことのいずれかの条件を満たす場合に、該当するフローを対象とするGCを実行する。これらの2つの条件をGC条件という場合がある。仮想ネットワークスイッチ制御部103は、GC条件の少なくともいずれか一方が満たされた場合に、GC処理を行なう。
【0067】
また、仮想ネットワークスイッチ制御部103は、FIB104にフローが設定されておらず、転送制御部101によって送信されたパケットについて、当該パケットの宛先を解決する。なお、この宛先解決は既知の手法により実現することができ、その説明は省略する。
仮想ネットワークスイッチ制御部103は、宛先解決を行なったパケットについて、当該パケットのフローをFIB104に新たなエントリとして設定する。
【0068】
(B)動作
上述の如く構成された実施形態の一例としてのネットワークスイッチ1における、パケット処理を、図4に示すフローチャート(ステップA1~A9)に従って説明する。
【0069】
ステップA1において、FPGA11bが、物理ポート107から転送されたパケットを受信する。以下、パケット転送部102が転送するパケットを処理対象パケットという場合がある。
【0070】
ステップA2において、転送制御部101は、FIB104を参照して、処理対象パケットのフローがFIB104にエントリとして存在するかを確認する。処理対象パケットのフローがFIB104にエントリとして存在しない場合には(ステップA2のNOルート参照)、ステップA3に移行する。
【0071】
ステップA3において、FPGA11bは、処理対象パケットを仮想ネットワークスイッチ制御部103に転送する。仮想ネットワークスイッチ制御部103は、処理対象パケットの宛先解決を行ない、この処理対象パケットのフローをFIB104にエントリとして設定する。
【0072】
ステップA4において、仮想ネットワークスイッチ制御部103は、処理対象パケットをFPGA11bに転送(パケット転送)する。その後、処理はステップA1に戻る。
【0073】
また、ステップA2における確認の結果、処理対象パケットのフローがFIB104にエントリとして存在する場合には(ステップA2のYESルート参照)、ステップA5に移行する。
【0074】
ステップA5において、転送制御部101は、処理対象パケットのヘッダを参照して、処理対象パケットが一時的ミラー転送パケットであるかを確認する。すなわち、処理対象パケットが一時的ミラー転送フローにかかるものであるが確認される。
確認の結果、処理対象パケットが一時的ミラー転送パケットである場合には(ステップA5のYESルート参照)、ステップA6に移行する。
【0075】
ステップA6において、転送制御部101は、FIB104を参照して、当該フローのルールおよびアクションを取得し、処理対象パケットの転送先の情報を取得する。パケット転送部102は、処理対象パケットを、当該処理対象パケットの本来の宛先(例えば、仮想マシン106の仮想ポート108)に転送する。また、パケット転送部102は、処理対象パケットをミラー転送パケットとして仮想ネットワークスイッチ制御部103にも転送する。
【0076】
ステップA7において、仮想ネットワークスイッチ制御部103は、受信したミラー転送パケットに基づき、MAC学習テーブル105を更新する。また、この他、仮想ネットワークスイッチ制御部103は、統計情報の更新等、パケット転送に伴って行なわれる既知の種々の処理を行なってもよい。
【0077】
ステップA8において、仮想ネットワークスイッチ制御部103は、ミラー転送パケットを破棄する。また、仮想ネットワークスイッチ制御部103は、FIB104に設定した当該フローの仮想ネットワークスイッチ制御部103への一時的ミラー転送の設定を解除する。その後、処理を終了する。
【0078】
また、ステップA5における確認の結果、処理対象パケットが一時的ミラー転送パケットでない場合には(ステップA5のNOルート参照)、ステップA9に移行する。
【0079】
ステップA9において、転送制御部101は、FIB104を参照して、当該フローのルールおよびアクションを取得し、処理対象パケットの転送先の情報を取得する。パケット転送部102は、処理対象パケットを、当該処理対象パケットの本来の宛先(例えば、仮想マシン106の仮想ポート108)に転送する。その後、処理を終了する。
次に、実施形態の一例としてのネットワークスイッチ1におけるフロー削除処理の概要を図5に示すフローチャート(ステップB1~B3)に従って説明する。
【0080】
例えば、仮想ネットワークスイッチ制御部103が、フローの送信元もしくは宛先のMACアドレスがエージアウトしたことを検知した場合に以下の処理が実行される。
【0081】
ステップB1において、仮想ネットワークスイッチ制御部103は、フローを即時に削除する必要があるかを判断する。例えば、フラッシュ処理の実行指示が発行されている場合や、ユーザからフロー削除指示が発行されている場合には、フローを即時実行する必要があると判断される。
【0082】
フローの即時の削除が必要である場合には(ステップB1のYESルート参照)、ステップB2において、仮想ネットワークスイッチ制御部103は、FIB104からフローの削除を行なう。例えば、からFIB104に登録されたエントリにおいて、アイドル時間が閾値以上のフローを削除してもよい。その後、処理を終了する。
【0083】
また、ステップB1における確認の結果、フローの即時の削除が不要である場合には(ステップB1のNOルート参照)、仮想ネットワークスイッチ制御部103は、ステップB3において、FIB104の各エントリのうち、送信元または宛先のMACアドレスがエージアウトしたMACアドレスと一致するエントリのアクションに、転送先として仮想ネットワークスイッチ制御部103の仮想ポート108を追加する。これにより、一時的ミラー転送フローが設定される。その後、処理を終了する。
次に、実施形態の一例としてのネットワークスイッチ1におけるGC処理を、図6に示すフローチャート(ステップC1~C3)に従って説明する。
ステップC1において、仮想ネットワークスイッチ制御部103は、フローが一時的ミラー転送フローであるかを確認する。
【0084】
フローが一時的ミラー転送フローである場合には(ステップC1のYESルート参照)、ステップC2に移行する。ステップC2において、仮想ネットワークスイッチ制御部103は、GC条件が満たされているかを確認する
【0085】
GC条件が満たされている場合には(ステップC2のYESルート参照)、ステップC3において、FIB104から当該フローを削除する。その後、処理を終了する。
【0086】
また、ステップC1においてフローが一時的ミラー転送フローでない場合(ステップC1のNOルート参照)、および、ステップC2においてGC条件が満たされていない場合にも(ステップC2のNOルート参照)、処理を終了する。
次に、実施形態の一例としてのネットワークスイッチ1におけるアクティブなフローの削除処理を、図7に示すシーケンス図に従って説明する。
【0087】
オフロード中において、物理ポート107において受信されたパケットは、パケット転送部102に受け渡される(符号S1参照)。パケット転送部102が転送制御部101に転送先を確認し(符号S2)、転送制御部101はFIB104を参照して(符号S3)、当該フローの処理方法(ルールおよびアクション)を取得する(符号S4)。転送制御部101はパケット転送部102に転送先等を指示し(符号S5)、パケット転送部102は、この指示に従って、パケットを宛先の仮想マシン106の仮想ポート108に転送する(符号S6)。
【0088】
ここで、仮想ネットワークスイッチ制御部103が、アイドル時間が所定の閾値(本実施形態では300秒)となり、フローの送信元または宛先のMACアドレスがエージアウトしたことを検出する(符号S7)。
【0089】
仮想ネットワークスイッチ制御部103は、FIB104において、各フローに対して、仮想ネットワークスイッチ制御部103にもパケットが転送されるように宛先を設定(転送設定)する(符号S8)。すなわち、FIB104の各エントリに、仮想ネットワークスイッチ制御部103の仮想ポート108をパケットの転送先として追加する設定を行なう。
【0090】
その後、物理ポート107がパケットを受信すると、オフロード中と同様の処理が実行される。すなわち、物理ポート107において受信されたパケットは、パケット転送部102に受け渡される(符号S9参照)。パケット転送部102が転送制御部101に転送先を確認し(符号S10)、転送制御部101はFIB104を参照して(符号S11)、当該フローの処理方法(ルールおよびアクション)を取得する(符号S12)。転送制御部101はパケット転送部102に転送先等を指示し(符号S13)、パケット転送部102は、この指示に従って、パケットを宛先の仮想マシン106の仮想ポート108に転送する(符号S14)。
【0091】
また、パケット転送部102は、仮想ネットワークスイッチ制御部103の仮想ポート108に対してもパケット(一時的ミラー転送パケット)を転送する(符号S15)。仮想ネットワークスイッチ制御部103は、受信した一時的ミラー転送パケットに基づき、MAC学習テーブル105を更新する(符号S16)。その後、仮想ネットワークスイッチ制御部103は、当該仮想ネットワークスイッチ制御部103に対する一時的ミラー転送を解除する(符号S17)。すなわち、FIB104に対して、当該フローのエントリに宛先として設定された仮想ネットワークスイッチ制御部103の仮想ポート108を削除する。これにより、一時的ミラー転送が解除され、FIB104には、各パケットの転送先として、本来の宛先(例えば、仮想マシン106の仮想ポート108)のみが設定される。その後、処理を終了する。
【0092】
次に、実施形態の一例としてのネットワークスイッチ1におけるアイドル状態のフローの削除処理を、図8に示すシーケンス図に従って説明する。
オフロード中において、物理ポート107において受信されたパケットは、パケット転送部102に受け渡される(符号T1参照)。パケット転送部102が転送制御部101に転送先を確認し(符号T2)、転送制御部101はFIB104を参照して(符号T3)、当該フローの処理方法(ルールおよびアクション)を取得する(符号T4)。転送制御部101はパケット転送部102に転送先等を指示し(符号T5)、パケット転送部102は、この指示に従って、パケットを宛先の仮想マシン106の仮想ポート108に転送する(符号T6)。
【0093】
ここで、仮想ネットワークスイッチ制御部103が、アイドル時間が所定の閾値(本実施形態では300秒)となり、フローの送信元または宛先のMACアドレスがエージアウトしたことを検出する(符号T7)。
【0094】
仮想ネットワークスイッチ制御部103は、FIB104において、各フローに対して、仮想ネットワークスイッチ制御部103にもパケットが転送されるように宛先を設定(転送設定)する(符号T8)。すなわち、FIB104の各エントリに、仮想ネットワークスイッチ制御部103の仮想ポート108をパケットの転送先として追加する設定を行なう。
【0095】
その後、物理ポート107がパケットを受信しないアイドル状態となり(符号T9)、GC条件が満たされると、仮想ネットワークスイッチ制御部103は、FIB104から当該フローの削除を行なう(符号T10)。
【0096】
(C)効果
このように、実施形態の一例としてのネットワークスイッチ1によれば、FPGA11bに転送制御部101およびパケット転送部102としての機能をオフロードすることで、パケットの転送性能を向上させることができる。
【0097】
また、パケット転送部102が、物理ポート107で受信したパケットを宛先に転送するとともに、そのミラー転送パケットを仮想ネットワークスイッチ制御部103に転送する。
【0098】
仮想ネットワークスイッチ制御部103においては、受信したミラー転送パケットを用いてMAC学習テーブル105を更新する。また、仮想ネットワークスイッチ制御部103は受信したミラー転送パケットを用いて統計情報を管理することができる。
これにより、FPGA11bにパケット転送機能をオフロードしても、仮想ネットワークスイッチ制御部103において統計情報を管理することができる。
【0099】
本ネットワークスイッチ1においては、従来手法の如き定期的なエージアウト毎(例えば、300秒毎)にFIBのエントリの削除を行なう必要がなく、アクティブなフローのエントリがFIB104から削除されることがない。これにより、アクティブなフローに関して仮想ネットワークスイッチ制御部103が宛先解決等の処理を行なう必要がなく、FPGA11b(転送制御部101,パケット転送部102)による高速なパケット転送を実現することができる。
【0100】
図9は従来のネットワークスイッチにおけるエージアウト発生時のパケット転送処理を示す図、図10は実施形態の一例としてのネットワークスイッチ1におけるパケット転送処理を示す図である。
図9に例示する従来のネットワークスイッチにおいては、転送制御機能およびパケット転送機能がFPGAにオフロードされている。
また、これらの図9および図10においては、パケット転送にともなって生じる処理の流れを太破線で示す。
【0101】
図9に示すように、従来のネットワークスイッチにおいて、エージアウトが発生するとFIBからフローのエントリが削除される。これにより、転送制御機能がFIBを参照しても該当するフローがなく(符号P1)、パケット転送機能は、仮想ネットワークスイッチ制御機能に対してパケットを転送する(符号P2)。仮想ネットワークスイッチ制御機能は、受信したパケットについて宛先解決等を行ない、FIBにフローを設定する(符号P3)。
【0102】
その後、転送制御機能がFIBを再度参照し(符号P4)、該当するフローのルールとアクションを取得し、パケット転送機能により、宛先(Webサービス)の仮想マシンにパケットを転送させる(符号P5)。
【0103】
すなわち、図9に例示する従来のネットワークスイッチにおいては、エージアウトが発生するとFIBからフローのエントリが削除されるので、仮想ネットワークスイッチ制御機能による処理が発生し、これによる処理速度の低下が生じる。ユーザにおいては、Webサービスの利用に際して、画面表示がカクカクする等の処理の遅延を感じることになる。
【0104】
これに対して、本ネットワークスイッチ1においては、エージアウト発生時においてFIBからアクティブなフローのエントリを削除する必要がない。これにより、アクティブなフローのパケットの転送に際して、図10に示すように、転送制御機能がFIB104を参照すると該当するフローが存在し(符号P11)、該当するフローのルールとアクションを取得することができる(符号P12)。パケット転送部102は、転送制御部101が取得した情報を用いて、宛先(Webサービス)の仮想マシンにパケットを転送させる(符号P13)。
【0105】
このように、ユーザがWebサービスを利用するためのパケット転送をFPGA11b内で処理することができ、パケット転送を高速に処理することができる。ユーザにおいては、Webサービスの利用に際して処理の遅延を感じることがない。
【0106】
一方。パケット転送部102が、ミラー転送パケットを仮想ネットワークスイッチ制御部103に送信することで(符号P14)、仮想ネットワークスイッチ制御部103はMAC学習テーブル105の更新や、メモリ部12上のFIB104に対する統計情報の記録を行なうことができる。なお、仮想ネットワークスイッチ制御部103に送信されたミラー転送パケットは、最終的に仮想ネットワークスイッチ制御部103において破棄される(符号P15)。
【0107】
本ネットワークスイッチ1においては、エージアウト発生時においてFIBからアクティブなフローのエントリを削除する必要がないので、アクティブなフローについて、エージアウトによる断続的な性能低下の発生を防止することができる。
【0108】
(D)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【0109】
例えば、上述した実施形態においては、ネットワークスイッチ1が、CPU11aとFPGA11bとを一体に統合させたFPGA統合プロセッサ11を備えているが、これに限定されるものではない。CPU11aとFPGA11bとが別体として構成されてもよく、種々変形して実施することができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【0110】
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
FPGA(Field Programmable Gate Array)とプロセッサとを備えるネットワークスイッチにおいて、
前記FPGAが、
転送定義情報に基づき、転送先に処理対象パケットを転送する第1パケット転送制御部と、
前記処理対象パケットのコピーを前記プロセッサに転送する第2パケット転送制御部と、
として機能し、
前記プロセッサが、
転送実績情報に基づき、前記転送定義情報のエントリを削除する第1更新処理部と、
前記処理対象パケットのコピーに基づき、前記転送実績情報を更新する第2更新処理部と、
として機能する
ことを特徴とする、ネットワークスイッチ。
【0111】
(付記2)
前記プロセッサが、
前記転送定義情報に、前記第1更新処理部の仮想ポートを前記処理対象パケットの転送先として設定することで、前記第2パケット転送制御部に前記処理対象パケットのコピーを転送させる
ことを特徴とする、付記1記載のネットワークスイッチ。
【0112】
(付記3)
前記プロセッサが、
前記転送実績情報において、パケット無転送時間が閾値以上である送信元もしくは宛先に関し、前記転送定義情報におけるエントリの即時の削除要求が発行されてない場合に、前記転送定義情報に、前記第1更新処理部の仮想ポートを前記処理対象パケットの転送先として設定する
ことを特徴とする、付記2記載のネットワークスイッチ。
【0113】
(付記4)
前記第2パケット転送制御部が、前記処理対象パケットのコピーに、コピーである旨を示す識別情報を設定する。
ことを特徴とする、付記1~3のいずれか1項に記載のネットワークスイッチ。
【0114】
(付記5)
前記第2更新処理部が前記転送実績情報の更新後に、前記処理対象パケットのコピーを破棄する
ことを特徴とする、付記1~4のいずれか1項に記載のネットワークスイッチ。
【0115】
(付記6)
プロセッサと、転送定義情報に基づき、転送先に処理対象パケットを転送する第1パケット転送制御部と、前記処理対象パケットのコピーを前記プロセッサに転送する第2パケット転送制御部と、として機能するFPGA(Field Programmable Gate Array)とを備えるネットワークスイッチにおいて、
前記プロセッサに、
転送実績情報に基づき、前記転送定義情報のエントリを削除し、
前記処理対象パケットのコピーに基づき、前記転送実績情報を更新する
処理を実行させる、制御プログラム。
【0116】
(付記7)
前記プロセッサに、
前記転送定義情報に、前記転送定義情報のエントリを削除する処理部の仮想ポートを前記処理対象パケットの転送先として設定することで、前記処理対象パケットのコピーを転送させる
処理を実行させることを特徴とする、付記6記載の制御プログラム。
【0117】
(付記8)
前記プロセッサに、
前記転送実績情報において、パケット無転送時間が閾値以上である送信元もしくは宛先に関し、前記転送定義情報におけるエントリの即時の削除要求が発行されてない場合に、前記転送定義情報に、前記処理部の仮想ポートを前記処理対象パケットの転送先として設定する
ことを特徴とする、付記7記載の制御プログラム。
【0118】
(付記9)
前記プロセッサに、
前記処理対象パケットのコピーに設定されたコピーである旨を示す識別情報を参照することで、前記処理対象パケットのコピーを判別する
処理を実行させることを特徴とする、付記6~8のいずれか1項に記載の制御プログラム。
【0119】
(付記10)
前記プロセッサに、
前記転送実績情報の更新後に、前記処理対象パケットのコピーを破棄する
処理を実行させることを特徴とする、付記6~9のいずれか1項に記載の制御プログラム。
【0120】
(付記11)
FPGA(Field Programmable Gate Array)とプロセッサとを備えるネットワークスイッチにおいて、
前記FPGAが、
転送定義情報に基づき、転送先に処理対象パケットを転送する処理と、
前記処理対象パケットのコピーを前記プロセッサに転送する処理と
を実行し、
前記プロセッサが、
転送実績情報に基づき、前記転送定義情報のエントリを削除する処理と、
前記処理対象パケットのコピーに基づき、前記転送実績情報を更新する処理と
を実行する
ことを特徴とする、制御方法。
【0121】
(付記12)
前記プロセッサが、
前記転送定義情報に、前記転送定義情報のエントリを削除する処理部の仮想ポートを前記処理対象パケットの転送先として設定することで、前記処理対象パケットのコピーを転送させる処理
を実行することを特徴とする、付記11記載の制御方法。
【0122】
(付記13)
前記プロセッサが、
前記転送実績情報において、パケット無転送時間が閾値以上である送信元もしくは宛先に関し、前記転送定義情報におけるエントリの即時の削除要求が発行されてない場合に、前記転送定義情報に、前記処理部の仮想ポートを前記処理対象パケットの転送先として設定する処理
を実行することを特徴とする、付記12記載の制御方法。
【0123】
(付記14)
前記プロセッサが、
前記処理対象パケットのコピーに設定されたコピーである旨を示す識別情報を参照することで、前記処理対象パケットのコピーを判別する処理
を実行することを特徴とする、付記11~13のいずれか1項に記載の制御方法。
【0124】
(付記15)
前記プロセッサが、
前記転送実績情報の更新後に、前記処理対象パケットのコピーを破棄する処理
を実行することを特徴とする、付記11~14のいずれか1項に記載の制御方法。
【符号の説明】
【0125】
1 ネットワークスイッチ
11 FPGA統合プロセッサ
11a CPU
11b FPGA
12 メモリ部
13 HDD
14 グラフィック処理装置
14a モニタ
15 入力インタフェース
15a キーボード
15b マウス
16 光学ドライブ装置
16a 光ディスク
17 機器接続インタフェース
17a メモリ装置
17b メモリリーダライタ
17c メモリカード
18 ネットワークインタフェース
18a ネットワーク
19 バス
101 転送制御部
102 パケット転送部
103 仮想ネットワークスイッチ制御部
104 FIB
105 MAC学習テーブル
106 仮想マシン
107 物理ポート
108 仮想ポート
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10