[go: up one dir, main page]

JP7151246B2 - Information processing device, information processing method and program - Google Patents

Information processing device, information processing method and program Download PDF

Info

Publication number
JP7151246B2
JP7151246B2 JP2018141186A JP2018141186A JP7151246B2 JP 7151246 B2 JP7151246 B2 JP 7151246B2 JP 2018141186 A JP2018141186 A JP 2018141186A JP 2018141186 A JP2018141186 A JP 2018141186A JP 7151246 B2 JP7151246 B2 JP 7151246B2
Authority
JP
Japan
Prior art keywords
rule
unit
packet
data
cache
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.)
Active
Application number
JP2018141186A
Other languages
Japanese (ja)
Other versions
JP2020017911A (en
Inventor
義和 渡邊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2018141186A priority Critical patent/JP7151246B2/en
Publication of JP2020017911A publication Critical patent/JP2020017911A/en
Application granted granted Critical
Publication of JP7151246B2 publication Critical patent/JP7151246B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、情報を処理する技術に関し、特に、データの通信に関連する情報を処理する技術に関する。 TECHNICAL FIELD The present invention relates to technology for processing information, and more particularly to technology for processing information related to communication of data.

一定のルールに従ってパケットを転送したり破棄したりする装置を、以下では、パケット処理装置と表記する。パケット処理装置には、例えば、Ethernet(登録商標)スイッチやルータ、SDN(Software Defined Network)スイッチ等がある。パケット処理装置は、パケットを受信し処理する場合、一般的に下記の処理を実行する。
1: パケットを通信インタフェース(以下では、NIC(Network Interface Controller)とも表記する)から受信する。
2: パケットを処理するために必要な情報を検索する。
3: 当該情報に基づき当該パケットを処理する。
A device that forwards or discards packets according to certain rules is hereinafter referred to as a packet processing device. Packet processing devices include, for example, Ethernet (registered trademark) switches, routers, and SDN (Software Defined Network) switches. When a packet processing device receives and processes a packet, it generally performs the following processing.
1: Receive packets from a communication interface (hereinafter also referred to as NIC (Network Interface Controller)).
2: Retrieve information needed to process the packet.
3: Process the packet based on the information.

上記2の処理は、Packet Classificationとも呼ばれ、あらかじめ与えられたルールセットの中から受信パケットに適合する最高優先度のルールを探索する処理である。ルールは、少なくとも、マッチ条件(例えばアドレスの範囲を表す情報)と、マッチ条件に関連付けられているアクションを示す情報とを含む。マッチ条件は、ルールが受信パケットに適用されるか判定するための条件である。例えば、マッチ条件が表す範囲にパケットの送信先のアドレスが含まれる場合、そのパケットはマッチ条件に適合すると判定される。アクションは、マッチ条件に適合すると判定されたパケットに対して実行される処理である。パケットがマッチ条件に適合すると判定された場合、ルールがそのパケットに適用される。すなわち、パケットがマッチ条件に適合すると判定された場合、そのマッチ条件に関連付けられているアクションがそのパケットに行われる。以下の説明において、パケットが適合するルールは、パケットが適合するマッチ条件を含むルールを表す。また、ルールは、優先度や統計情報を含む場合もある。また、上記2の処理は、FIB(Forwarding Information Base) Lookupと呼ばれる場合もある。また、上記ルールセットは、以下の説明では、FIBとも表記される。 The above process 2 is also called Packet Classification, and is a process of searching for a rule with the highest priority that matches the received packet from a set of rules given in advance. A rule includes at least a match condition (eg, information representing a range of addresses) and information indicating an action associated with the match condition. A match condition is a condition for determining whether a rule applies to a received packet. For example, if the range represented by the match condition includes the destination address of the packet, the packet is determined to match the match condition. Actions are processing performed on packets that are determined to meet the match conditions. If the packet is determined to meet the match criteria, the rule is applied to that packet. That is, if a packet is determined to meet a match condition, the action associated with that match condition is performed on that packet. In the following description, a rule that a packet matches refers to a rule containing match conditions that a packet matches. Rules may also include priorities and statistics. Further, the above process 2 is sometimes called FIB (Forwarding Information Base) Lookup. The rule set is also denoted as FIB in the following description.

近年クラウド等で、計算機仮想化技術が多用されている。計算機仮想化技術は、物理サーバ(以下では、ホストマシンとも表記)上に、仮想的なサーバ(以下では、仮想マシン、及び、Virtual Machine(VM)とも表記)を実装し、その仮想的なサーバを動作させる技術である。計算機仮想化技術では、仮想スイッチ(Viratual Switch)が、上述したパケット処理装置に相当する機能として、ホストマシンに実装される。パケットの転送は、仮想マシン間、および、仮想マシンとホストマシンが備える通信インタフェースとの間で、行われる。仮想マシンは、仮想的な通信インタフェースを備えるように構成される。仮想スイッチは、ホストマシンにおいて、SW(Software)によって実装されてもよい。言い換えると、仮想スイッチは、例えば、メモリにロードされた、仮想スイッチの機能を実現するプログラムを実行するプロセッサによって実現されてもよい。仮想スイッチは、ホストマシンにおいて、例えば回路等のHW(Hardware)によって実装されてもよい。仮想スイッチは、それらの組み合わせによって実装されてもよい。 In recent years, computer virtualization technology has been widely used in cloud computing and the like. Computer virtualization technology implements a virtual server (hereinafter also referred to as a virtual machine and virtual machine (VM)) on a physical server (hereinafter also referred to as a host machine), and the virtual server It is a technology that operates the In computer virtualization technology, a virtual switch is implemented in a host machine as a function corresponding to the packet processing device described above. Packets are transferred between virtual machines and between virtual machines and communication interfaces of host machines. A virtual machine is configured with a virtual communication interface. A virtual switch may be implemented by SW (Software) in a host machine. In other words, the virtual switch may be implemented, for example, by a processor executing a program loaded in memory that implements the functionality of the virtual switch. The virtual switch may be implemented by HW (Hardware) such as a circuit in the host machine. A virtual switch may be implemented by a combination thereof.

図1に、仮想スイッチを使用するホストマシンの構成例を示す。図1に示すホストマシン200は、CPU(Central Processing Unit)及びメインメモリ210と、仮想スイッチ用HW220とを含む。CPU及びメインメモリ210は、1個以上のCPUと、CPUがアクセスできる、メインメモリとして動作するメモリとによって実現される。仮想マシン214は、CPUおよびメインメモリにより実現される。言い換えると、仮想マシンは、メインメモリと、メインメモリにロードされた、仮想マシン214の機能を実現するプログラムを実行するCPUとによって実現される。仮想スイッチ221は、仮想スイッチ用HW220により実現される。以下の説明では、仮想マシン214の機能を実現するプログラムによって制御され、仮想マシン214として動作するCPUの動作を、仮想マシン214の動作として説明する。また、仮想スイッチ221として動作する仮想スイッチ用HW220の動作を、仮想スイッチ221の動作として説明する。CPU及びメインメモリ210と仮想スイッチ用HW220とは、バス230を介して接続されている。仮想マシン214の仮想NIC211と仮想スイッチ221との間のパケット通信は、メインメモリ内に確保されたキューを介して行われる。キューは、FIFO(First In First Out)のメモリであり、以下では、単にFIFOとも表記される。仮想スイッチ221が使用するFIB212は、メインメモリに配置される。 FIG. 1 shows a configuration example of a host machine using a virtual switch. The host machine 200 shown in FIG. 1 includes a CPU (Central Processing Unit), a main memory 210, and a HW 220 for virtual switches. CPU and main memory 210 is implemented with one or more CPUs and memory that is accessible by the CPU and acts as main memory. The virtual machine 214 is implemented by a CPU and main memory. In other words, a virtual machine is implemented with a main memory and a CPU that executes a program loaded into the main memory that implements the functionality of the virtual machine 214 . The virtual switch 221 is realized by the HW 220 for virtual switches. In the following description, the operation of the CPU that is controlled by the program that implements the functions of the virtual machine 214 and that operates as the virtual machine 214 will be described as the operation of the virtual machine 214 . Also, the operation of the virtual switch HW 220 that operates as the virtual switch 221 will be described as the operation of the virtual switch 221 . The CPU and main memory 210 and the virtual switch HW 220 are connected via a bus 230 . Packet communication between the virtual NIC 211 of the virtual machine 214 and the virtual switch 221 is performed via queues secured in the main memory. A queue is a FIFO (First In First Out) memory, and is hereinafter simply referred to as FIFO. The FIB 212 used by the virtual switch 221 is arranged in the main memory.

以下の動作は、VM214宛のパケットがNIC240により受信された場合の例である。
(1)仮想スイッチ221がNIC240からパケットを受信する。
(2)仮想スイッチ221がFIB212(メインメモリ210上)を参照し、当該パケットの処理情報を決定する(ここでは、当該パケットをVM214に送信する、と決定したとする)。
(3)仮想スイッチ221が当該パケットを当該VM214の仮想NIC211の受信キュー(メインメモリ210内に確保されている)に追加する。
(4)VM214が当該受信キューから当該パケットを受信する。
The following operation is an example when a packet addressed to VM 214 is received by NIC 240 .
(1) The virtual switch 221 receives a packet from the NIC240.
(2) The virtual switch 221 refers to the FIB 212 (on the main memory 210) and determines processing information for the packet (here, it is determined that the packet is to be sent to the VM 214).
(3) The virtual switch 221 adds the packet to the reception queue (secured in the main memory 210) of the virtual NIC 211 of the VM 214.
(4) VM 214 receives the packet from the receive queue.

例えばクラウド環境においては、あるホストマシン上で動作する複数の仮想マシンが、それぞれ異なる顧客によって利用される場合がある(このような状況はマルチテナントとも呼ばれる)。このとき、ある仮想マシンが多くのCPUを使ったり、通信を行ったりしたときに、その影響により、他の仮想マシンがCPUを使えなくなったり、通信ができなくなったりすることは避けなければならない。そのために、QoS(Quality of Service)制御が使用される。通信に対するQoS制御は、例えば仮想スイッチで実行され、以下のような制御を含む。
(1)所定の閾値以上のレートの通信をブロックしたり、遅延させたり、そのような通信のパケットに印をつけたりする(Policing, Shaping)。
(2)特定の種類の通信に対し通信レートを保証する(帯域保証)。
(3)特定の種類の通信に対し遅延時間やジッタを保証する(遅延保証)。
(4)特定の種類の通信を優先する(優先制御)。
For example, in a cloud environment, multiple virtual machines running on a certain host machine may be used by different customers (this situation is also called multi-tenancy). At this time, when a certain virtual machine uses a large amount of CPU or performs communication, it must be avoided that other virtual machines cannot use the CPU or communication due to the influence. For that purpose, QoS (Quality of Service) control is used. QoS control for communication is performed, for example, by a virtual switch, and includes the following controls.
(1) Blocking or delaying communications with a rate above a predetermined threshold, or marking packets of such communications (Policing, Shaping).
(2) Guarantee a communication rate for a specific type of communication (bandwidth guarantee).
(3) Guarantee delay time and jitter for a specific type of communication (delay guarantee).
(4) Give priority to a specific type of communication (priority control).

通信のQoS制御のための方式やアルゴリズムは、例えば特許文献1によって開示されている。 A method and algorithm for QoS control of communication are disclosed in, for example, Japanese Unexamined Patent Application Publication No. 2002-200010.

特許第3434642号Patent No. 3434642

例えば図1のような構成では、仮想NIC211で送受信されるパケットデータの通信(以下、データ系通信と表記する)が、メインメモリと仮想スイッチ用HW220との間で、バス230を介して行われる。また、仮想スイッチ221による、メインメモリ210に配置されているFIB212へのアクセスの通信(以下、制御系通信と表記する)も、同じバス230を介して行われる。言い換えると、データ系通信と制御系通信とが、バス230を共用する。そのため、QoS制御(例えば帯域保証)を行う際、特に仮想NIC211における通信に対し帯域保証が行えなくなる虞がある。 For example, in the configuration shown in FIG. 1, communication of packet data transmitted and received by the virtual NIC 211 (hereinafter referred to as data communication) is performed between the main memory and the virtual switch HW 220 via the bus 230. . Communication for accessing the FIB 212 arranged in the main memory 210 by the virtual switch 221 (hereinafter referred to as control system communication) is also performed via the same bus 230 . In other words, data system communication and control system communication share bus 230 . Therefore, when performing QoS control (for example, band guarantee), there is a possibility that band guarantee cannot be performed especially for communication in the virtual NIC 211 .

具体的には、仮想スイッチ221は、パケットを受信する毎に、そのパケットの処理方法を決定するためにFIB212にアクセスし、その結果、バスの帯域を消費する。一般に、受信パケットのサイズが小さいほどパケットの処理の回数は増え、その結果、FIB212へのアクセスによるバスの帯域の消費は増加する。バス230の帯域は有限であるため、FIB212へのアクセスによるバスの帯域の消費が増えた場合、パケットデータの通信に利用可能な帯域は減少する。 Specifically, each time the virtual switch 221 receives a packet, it accesses the FIB 212 to determine how to process the packet, and as a result consumes the bandwidth of the bus. In general, the smaller the size of the received packet, the greater the number of times the packet is processed. Since the bandwidth of the bus 230 is finite, if the bandwidth consumption of the bus increases due to access to the FIB 212, the bandwidth available for packet data communication decreases.

そのため、通信トラフィックの状況に応じてパケットデータの通信に利用可能な帯域が変動し、その結果、帯域保証が行えなくなったり、帯域保証の精度が劣化したりする。 Therefore, the bandwidth that can be used for packet data communication fluctuates depending on the communication traffic situation, and as a result, the bandwidth cannot be guaranteed, or the accuracy of the bandwidth guarantee deteriorates.

特許文献1に記載の技術は、データ系通信と制御系通信が通信経路を共用する場合のQoS制御の精度の劣化を抑制することはできない。 The technique described in Patent Literature 1 cannot suppress the deterioration of the accuracy of QoS control when data-based communication and control-based communication share a communication path.

本発明は、かかる問題に鑑みてなされたものである。本発明の目的は、パケットの処理にかかるデータ系通信と制御系通信とがバスを共用する場合であっても、QoS制御の精度の劣化を抑制できる情報処理装置等を提供することにある。 The present invention has been made in view of such problems. SUMMARY OF THE INVENTION It is an object of the present invention to provide an information processing apparatus and the like capable of suppressing degradation in accuracy of QoS control even when data system communication and control system communication related to packet processing share a bus.

本発明の一態様に係る情報処理装置は、データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズに基づいて行う決定手段と、格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御手段と、を備える。 An information processing apparatus according to an aspect of the present invention indicates at least one of a plurality of types of processing including transfer for data, and caches a rule read via a communication path used for transferring the data. determining means for determining whether or not to store the rule in the means based on the size of the data; and control means for storing the rule determined to be stored in the cache means.

本発明の一態様に係る情報処理方法は、データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズに基づいて行い、格納すると決定された前記ルールの前記キャッシュ手段への格納を行う。 An information processing method according to an aspect of the present invention indicates at least one of a plurality of types of processing including transfer for data, and caches rules read out via a communication path used for transferring the data. A determination as to whether or not to store in the means is made based on the size of the data, and the rules determined to be stored are stored in the caching means.

本発明の一態様に係るプログラムは、コンピュータに、データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズに基づいて行う決定処理と、格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御処理と、を実行させる。 A program according to an aspect of the present invention indicates to a computer at least one of a plurality of types of processing, including transfer, for data, and a rule read out via a communication path used for transferring the data, Determination processing for determining whether or not to store the rule in the cache means based on the size of the data, and control processing for storing the rule determined to be stored in the cache means are executed.

本発明には、パケットの処理にかかるデータ系通信と制御系通信とがバスを共用する場合であっても、QoS制御の精度の劣化を抑制できる。 According to the present invention, it is possible to suppress deterioration in accuracy of QoS control even when data system communication and control system communication related to packet processing share a bus.

図1は、仮想スイッチを使用するホストマシンの構成例を示すブロック図である。FIG. 1 is a block diagram showing a configuration example of a host machine using virtual switches. 図2は、本発明の第1及び第2の実施形態に係る情報処理装置を実現する、コンピュータ10のハードウェア構成の一例を示すブロック図である。FIG. 2 is a block diagram showing an example of the hardware configuration of the computer 10 that implements the information processing apparatuses according to the first and second embodiments of the present invention. 図3は、本発明の第1及び第2の実施形態に係る情報処理装置の構成の一例を示すブロック図である。FIG. 3 is a block diagram showing an example of the configuration of the information processing apparatus according to the first and second embodiments of the invention. 図4は、本発明の第1の実施形態に係るスケジューリング部の構成の一例を示すブロック図である。FIG. 4 is a block diagram showing an example of the configuration of the scheduling section according to the first embodiment of the present invention. 図5は、本発明の第1の実施形態に係るキャッシュ部を、キャッシュメモリとして実現した場合の構成の一例を示す模式図である。FIG. 5 is a schematic diagram showing an example of the configuration when the cache unit according to the first embodiment of the present invention is implemented as a cache memory. 図6は、本発明の第1及び第2の実施形態に係る情報処理装置の、パケットを受信した際の動作の例を表すフローチャートである。FIG. 6 is a flow chart showing an example of the operation of the information processing apparatus according to the first and second embodiments of the present invention when a packet is received. 図7は、本発明の第1及び第2の実施形態に係る情報処理装置の、ルールのキャッシュエントリを作成する動作の詳細を表すフローチャートである。FIG. 7 is a flow chart showing details of the operation of creating a rule cache entry in the information processing apparatus according to the first and second embodiments of the present invention. 図8は、本発明の第1及び第2の実施形態に係る情報処理装置の、キャッシュエントリを更新する動作の例を表すフローチャートである。FIG. 8 is a flow chart showing an example of the operation of updating the cache entry of the information processing apparatus according to the first and second embodiments of the present invention. 図9は、本発明の第1の実施形態に係る情報処理装置の、受信したパケットを送信する動作の例を表すフローチャートである。FIG. 9 is a flow chart showing an example of the operation of transmitting a received packet of the information processing apparatus according to the first embodiment of the present invention. 図10は、本発明の第1の実施形態に係る情報処理装置の、スケジューリング処理を行う動作の例を表すフローチャートである。FIG. 10 is a flow chart showing an example of the operation of the information processing apparatus according to the first embodiment of the present invention for performing scheduling processing. 図11は、本発明の第2の実施形態に係る情報処理装置の、受信したパケットを送信する処理の例を表すフローチャートである。FIG. 11 is a flow chart showing an example of processing for transmitting a received packet by the information processing apparatus according to the second embodiment of the present invention. 図12は、本発明の第2の実施形態に係る情報処理装置の、スケジューリングの処理を行う動作の例を表すフローチャートである。FIG. 12 is a flow chart showing an example of the operation of the information processing apparatus according to the second embodiment of the present invention for performing scheduling processing. 図13は、本発明の第1及び第2の実施形態に係る情報処理システムの構成の例を表すブロック図である。FIG. 13 is a block diagram showing an example configuration of an information processing system according to the first and second embodiments of the present invention. 図14は、本発明の第3の実施形態に係る情報処理装置の構成の例を表すブロック図である。FIG. 14 is a block diagram showing an example configuration of an information processing apparatus according to the third embodiment of the present invention. 図15は、本発明の第3の実施形態に係る情報処理装置の動作の例を表すフローチャートである。FIG. 15 is a flow chart showing an example of the operation of the information processing device according to the third embodiment of the present invention.

以下、本発明の実施の形態について、図面を参照して詳細に説明する。 BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

<第1の実施形態>
<<第1の実施形態の構成例>>
まず、本発明の第1の実施形態の構成例について、図2~図5を用いて説明する。
図2は、本実施形態に係る情報処理装置100を実現する、コンピュータ10のハードウェア構成の一例を示すブロック図である。本実施形態の情報処理装置100は、例えば図2に示すコンピュータ10によって実現できる。図2に例示するコンピュータ10は、CPU101と、メモリ102と、バス103Aと、バス103Bと、バス103Cと、NIC104と、仮想スイッチ用ハードウェア120と、記憶装置105とを含む。情報処理装置100は、さらに、記憶媒体107にアクセスできるアクセス装置106と、CPU101とアクセス装置106とを接続するバス103Dとを含んでいてもよい。図2に示す構成要素の数や接続関係は一例である。情報処理装置100が含む構成要素の数は、図2に示されている数に限られない。
<First Embodiment>
<<Configuration Example of First Embodiment>>
First, a configuration example of the first embodiment of the present invention will be described with reference to FIGS. 2 to 5. FIG.
FIG. 2 is a block diagram showing an example of the hardware configuration of the computer 10 that implements the information processing apparatus 100 according to this embodiment. The information processing apparatus 100 of this embodiment can be implemented by, for example, the computer 10 shown in FIG. Computer 10 illustrated in FIG. 2 includes CPU 101 , memory 102 , bus 103 A, bus 103 B, bus 103 C, NIC 104 , virtual switch hardware 120 , and storage device 105 . The information processing apparatus 100 may further include an access device 106 that can access the storage medium 107 and a bus 103D that connects the CPU 101 and the access device 106 . The number of constituent elements and connection relationships shown in FIG. 2 are examples. The number of components included in the information processing apparatus 100 is not limited to the number shown in FIG.

CPU101は、情報処理の演算を行うCPUである。CPU101は仮想化機能を備えていてよい。CPU101は、メモリ102に記憶されたプログラムおよびデータを用いて情報処理を行う。具体的には、CPU101は、メモリ102に格納されているプログラムを実行し、そのプログラムの制御のもとで、例えば、仮想マシンとして機能する。 The CPU 101 is a CPU that performs calculations for information processing. The CPU 101 may have a virtualization function. The CPU 101 performs information processing using programs and data stored in the memory 102 . Specifically, the CPU 101 executes a program stored in the memory 102 and functions as, for example, a virtual machine under the control of the program.

メモリ102は、例えばRAM(Random Access Memory)等のメモリであり、コンピュータ10のメインメモリとして機能する。メモリ102は、メモリチップに加えて、メモリコントローラ、キャッシュメモリ、キャッシュコントローラ等を含んでもよい。 The memory 102 is, for example, a RAM (Random Access Memory) or the like, and functions as a main memory of the computer 10 . In addition to memory chips, memory 102 may include memory controllers, cache memories, cache controllers, and the like.

バス103Aは、それぞれ、CPU101とメモリ102とを接続するバスである。バス103Bは、仮想スイッチ用ハードウェア120とメモリ102とを接続するバスである。バス103Cは、CPU101と記憶装置105とを接続するバスである。バス103A、バス103B、及び、バス103Cは、異なるバスであってもよい。バス103A、バス103B、及び、バス103Cのいずれか又は全てが、同じバスであってもよい。バス103A、バス103B、及び、バス103Cは、以下の説明において、通信経路とも表記される。 A bus 103A is a bus that connects the CPU 101 and the memory 102, respectively. The bus 103B is a bus that connects the virtual switch hardware 120 and the memory 102 . A bus 103C is a bus that connects the CPU 101 and the storage device 105 . Bus 103A, bus 103B and bus 103C may be different buses. Any or all of bus 103A, bus 103B, and bus 103C may be the same bus. The buses 103A, 103B, and 103C are also referred to as communication paths in the following description.

NIC104は、通信ネットワークに接続するための通信インタフェースである。情報処理装置100は、NIC104を介して通信ネットワークに接続される。NIC104は、例えば、Ethernet規格に準拠した通信インタフェースであってよい。コンピュータ10は、NIC104を介して、上述の通信ネットワークに接続されている他の装置と、例えば情報処理に係るデータの通信を行う。 NIC 104 is a communication interface for connecting to a communication network. Information processing apparatus 100 is connected to a communication network via NIC 104 . The NIC 104 may be, for example, a communication interface conforming to the Ethernet standard. The computer 10 communicates data related to information processing, for example, with other devices connected to the above communication network via the NIC 104 .

仮想スイッチ用ハードウェア120は、NIC104と、後述する仮想NIC部111として動作するCPU101及びメモリ102との間で、転送されるデータのパケットの処理を行うハードウェアである。なお、本実施形態の説明では、データはパケットの形で送信される。また、パケットを、単にデータと表記することもある。以下の説明において、パケットは、送信されるデータから生成された、そのデータの少なくとも一部を含むパケットを表す。パケットは、例えば、IP(Internet Protocol)パケットである。仮想スイッチ用ハードウェア120は、Ethernetスイッチやルータ、SDNスイッチのように、一定のルールに従って、データのパケットを転送したり破棄したりするパケット処理装置としての機能を備える。仮想スイッチ用ハードウェア120は、例えば、仮想スイッチとして動作するプロセッサ及びメモリであってもよい。仮想スイッチ用ハードウェア120は、CPUなどのプロセッサによって実現されてもよい。仮想スイッチ用ハードウェア120は、FPGA(Field-Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)等の回路よって実現されてもよい。仮想スイッチ用ハードウェア120は、それらの回路等の組み合わせによって実現されてもよい。仮想スイッチ用ハードウェア120は、さらに、後述のキャッシュ部122として機能する、メモリ等の記憶装置を含む。仮想スイッチ用ハードウェア120は、後述するルール記憶部112に記憶されるFIB情報を参照し、FIB情報に基づいてパケット処理方法を決定する。 The virtual switch hardware 120 is hardware that processes packets of data transferred between the NIC 104 and the CPU 101 and the memory 102 operating as a virtual NIC unit 111 to be described later. Note that in the description of this embodiment, data is transmitted in the form of packets. A packet may also be simply referred to as data. In the following description, a packet refers to a packet generated from the data to be transmitted and containing at least part of that data. The packet is, for example, an IP (Internet Protocol) packet. The virtual switch hardware 120 has a function as a packet processing device that transfers or discards data packets according to certain rules, like an Ethernet switch, router, or SDN switch. The virtual switch hardware 120 may be, for example, a processor and memory operating as a virtual switch. The virtual switch hardware 120 may be implemented by a processor such as a CPU. The virtual switch hardware 120 may be implemented by circuits such as FPGAs (Field-Programmable Gate Arrays), ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), and the like. The virtual switch hardware 120 may be implemented by a combination of such circuits. The virtual switch hardware 120 further includes a storage device such as a memory that functions as a cache unit 122, which will be described later. The virtual switch hardware 120 refers to FIB information stored in the rule storage unit 112, which will be described later, and determines a packet processing method based on the FIB information.

記憶装置105は、例えばハードディスク等の二次記憶装置である。記憶装置105は、CPU101が実行するプログラムや、プログラムによって制御されるCPU101が情報処理に使用するデータなどを記憶する。CPU101は、記憶装置105に格納されているプログラムを、例えばメモリ102にロードし、メモリ102にロードされたプログラムを実行してもよい。 The storage device 105 is, for example, a secondary storage device such as a hard disk. The storage device 105 stores programs executed by the CPU 101, data used for information processing by the CPU 101 controlled by the programs, and the like. The CPU 101 may load a program stored in the storage device 105 into, for example, the memory 102 and execute the program loaded into the memory 102 .

記憶媒体107は、例えば、RAM、ROM及びフラッシュメモリなどの半導体記憶媒体、磁気ディスク及び光ディスク等の可搬記憶媒体、又は、ハードディスク等の記憶装置などである。記憶媒体107は、上述のプログラムを記憶していてもよい。プログラムは、例えばCPU101によって、記憶媒体107から読み出される。読み出されたプログラムは、例えばCPU101によって、記憶装置105に書き込まれてもよい。読み出されたプログラムは、例えばCPU101によってメモリ102にロードされてもよい。記憶媒体107は、CPU101が情報処理に使用するデータなどを記憶していてもよい。記憶媒体107が記憶するデータは、例えばCPU101によって読み出される。読み出されたデータは、例えばCPU101によって、記憶装置105に格納されてもよい。読み出されたデータは、例えばCPU101によって、メモリ102にロードされてもよい。 The storage medium 107 is, for example, a semiconductor storage medium such as RAM, ROM, and flash memory, a portable storage medium such as a magnetic disk and an optical disk, or a storage device such as a hard disk. The storage medium 107 may store the above program. The program is read from the storage medium 107 by the CPU 101, for example. The read program may be written to the storage device 105 by the CPU 101, for example. The read program may be loaded into the memory 102 by the CPU 101, for example. The storage medium 107 may store data that the CPU 101 uses for information processing. Data stored in the storage medium 107 is read by the CPU 101, for example. The read data may be stored in the storage device 105 by the CPU 101, for example. The read data may be loaded into the memory 102 by the CPU 101, for example.

アクセス装置106は、記憶媒体107にアクセスできる装置である。具体的には、アクセス装置106は、記憶媒体107に格納されているプログラムやデータなどを、読み出すことができる装置である。例えば、記憶媒体107が、CD-ROM(Compact Disc-Read Only Memory)等の媒体である場合、アクセス装置106は、ドライブ装置であってもよい。記憶媒体107が、例えばフラッシュメモリなどの不揮発メモリである場合、アクセス装置106は、コントローラと、コントローラに接続されたコネクタ又はスロットとの組み合わせ等であってもよい。記憶媒体107が書き込み可能な記憶媒体であれば、アクセス装置106は、プログラムやデータなどを記憶媒体107に書き込んでもよい。 The access device 106 is a device that can access the storage medium 107 . Specifically, the access device 106 is a device capable of reading programs and data stored in the storage medium 107 . For example, if the storage medium 107 is a medium such as a CD-ROM (Compact Disc-Read Only Memory), the access device 106 may be a drive device. If the storage medium 107 is a non-volatile memory such as flash memory, the access device 106 may be a combination of a controller and a connector or slot connected to the controller. If the storage medium 107 is a writable storage medium, the access device 106 may write programs, data, and the like to the storage medium 107 .

図3は、本実施形態に係る情報処理装置100の構成の一例を示すブロック図である。図3は、本実施形態の情報処理装置100の機能構成の一例を表す。図3に例示する情報処理装置100は、仮想通信インタフェース部111と、ルール記憶部112と、ルール管理部113と、情報処理部114と、指示受付部115と、パケット処理部121と、キャッシュ部122と、スケジューリング部123と、通信インタフェース部124と、決定部125と、制御部126とを含む。情報処理装置100には、仮想マシンが構築されていてよい。具体的には、情報処理部114が、仮想マシンとして動作してよい。言い換えると、情報処理部114は、情報処理装置100において動作する仮想マシンであってもよい。図3に示す例では、情報処理部114の数は、3である。仮想通信インタフェース部111の数は、情報処理部114の数と同じであり、3である。さらに、通信インタフェース部124の数も、3である。通信インタフェース部124の数は、情報処理部114の数と同じでなくてよい。図3に示す構成要素の数や接続関係は一例である。また、接続関係は図3に示す例に限られない。これらは、図2に示したハードウェアによって実現される。また、以下の説明では、情報処理部114と、仮想通信インタフェース部111とを、まとめて、実行部110Aと表記することもある。言い換えると、実行部110Aは、情報処理部114の機能と、仮想通信インタフェース部111の機能とを提供する。 FIG. 3 is a block diagram showing an example of the configuration of the information processing apparatus 100 according to this embodiment. FIG. 3 shows an example of the functional configuration of the information processing apparatus 100 of this embodiment. The information processing apparatus 100 illustrated in FIG. 3 includes a virtual communication interface unit 111, a rule storage unit 112, a rule management unit 113, an information processing unit 114, an instruction reception unit 115, a packet processing unit 121, and a cache unit. 122 , a scheduling unit 123 , a communication interface unit 124 , a decision unit 125 and a control unit 126 . A virtual machine may be built in the information processing apparatus 100 . Specifically, the information processing unit 114 may operate as a virtual machine. In other words, the information processing unit 114 may be a virtual machine that operates in the information processing device 100 . In the example shown in FIG. 3, the number of information processing units 114 is three. The number of virtual communication interface units 111 is the same as the number of information processing units 114, which is three. Furthermore, the number of communication interface units 124 is also three. The number of communication interface units 124 may not be the same as the number of information processing units 114 . The number of constituent elements and connection relationships shown in FIG. 3 are examples. Also, the connection relationship is not limited to the example shown in FIG. These are implemented by the hardware shown in FIG. Also, in the following description, the information processing unit 114 and the virtual communication interface unit 111 may be collectively referred to as the execution unit 110A. In other words, the execution unit 110A provides the functions of the information processing unit 114 and the functions of the virtual communication interface unit 111 .

後述されるように、具体的には、情報処理部114、仮想NIC部111及びルール管理部113は、例えば、CPU101及びメモリ102によって実現される。実行部110Aも、CPU101及びメモリ102によって実現される。ルール記憶部112は、例えば、メモリ102によって実現される。パケット処理部121、キャッシュ部122、スケジューリング部123、決定部125及び制御部126は、例えば、仮想スイッチ用ハードウェア120によって実現される。 Specifically, the information processing unit 114, the virtual NIC unit 111, and the rule management unit 113 are realized by the CPU 101 and the memory 102, for example, as will be described later. Execution unit 110A is also implemented by CPU 101 and memory 102 . The rule storage unit 112 is realized by the memory 102, for example. The packet processing unit 121, the cache unit 122, the scheduling unit 123, the determination unit 125, and the control unit 126 are implemented by the virtual switch hardware 120, for example.

なお、以下の説明及び図面において、仮想通信インタフェース部111を、仮想NIC部111とも表記する。また、通信インタフェース部124を、NIC部124とも表記する。また、複数の仮想NIC部111を区別する必要が無い説明、複数の仮想NIC部111に共通する説明、及び、複数の仮想NIC部111の全体についての説明では、複数の仮想NIC部111は、区別せずに、仮想NIC部111と表記される。また、複数の仮想NIC部111を個々に区別する必要がある場合、複数の仮想NIC部111を、仮想NIC部111A、仮想NIC部111B、及び、仮想NIC部111Cと表記する。仮想NIC部111A、仮想NIC部111B、及び、仮想NIC部111Cは、まとめて、仮想NIC部111A~Cとも表記されることもある。 Note that the virtual communication interface unit 111 is also referred to as the virtual NIC unit 111 in the following description and drawings. Also, the communication interface unit 124 is also referred to as the NIC unit 124 . In addition, in the description that does not require distinction between the plurality of virtual NIC units 111, the description that is common to the plurality of virtual NIC units 111, and the description of the entire plurality of virtual NIC units 111, the plurality of virtual NIC units 111 It is written as a virtual NIC unit 111 without distinction. Moreover, when it is necessary to distinguish the plurality of virtual NIC units 111 individually, the plurality of virtual NIC units 111 are described as a virtual NIC unit 111A, a virtual NIC unit 111B, and a virtual NIC unit 111C. The virtual NIC unit 111A, the virtual NIC unit 111B, and the virtual NIC unit 111C may also be collectively referred to as the virtual NIC units 111A-C.

図13は、本実施形態に係る情報処理システム1の構成の例を表すブロック図である。なお、後述される、第2の実施形態に係る情報処理システム1も、図13に示す構成を備えていてよい。図13に示す例では、情報処理システム1は、情報処理装置100と、情報処理装置100Aと、情報処理装置100Bと、情報処理装置100Cと、管理装置300とを含む。情報処理装置100、情報処理装置100A、情報処理装置100B、情報処理装置100C、及び、管理装置300は、通信ネットワーク400を介して、通信可能に接続されている。情報処理装置100は、NIC104を介して通信ネットワーク400と接続されている。情報処理装置100A、情報処理装置100B及び情報処理装置100Cは、情報処理装置100と同様の構成を備えていてもよい。情報処理装置100A、情報処理装置100B、情報処理装置100C及び管理装置300は、一般的なコンピュータであってもよい。情報処理装置100は、通信ネットワーク400を介して、情報処理装置100A、情報処理装置100B、情報処理装置100C、及び、管理装置300と、通信(例えば、データ等の送信及び受信)を行う。具体的には、情報処理装置100に構築されている仮想マシンは、仮想NIC部111、NIC部124及び通信ネットワーク400を介して、情報処理装置100A、情報処理装置100B及び情報処理装置100C等と通信を行う。言い換えると、情報処理装置100は、情報処理装置100に構築されている仮想マシンが、仮想NIC部111、NIC部124及び通信ネットワーク400を介して、通信ネットワーク400に接続されている他の装置と通信できるように構成されている。なお、図13に示す通信ネットワーク400に接続されている装置は、単なる例であり、図13に示す例に限られない。
FIG. 13 is a block diagram showing an example of the configuration of the information processing system 1 according to this embodiment. Note that the information processing system 1 according to the second embodiment, which will be described later, may also have the configuration shown in FIG. In the example shown in FIG. 13 , the information processing system 1 includes an information processing device 100 , an information processing device 100A, an information processing device 100B, an information processing device 100C, and a management device 300 . Information processing device 100 , information processing device 100</b>A, information processing device 100</b>B, information processing device 100</b>C, and management device 300 are communicably connected via communication network 400 . Information processing apparatus 100 is connected to communication network 400 via NIC 104 . The information processing device 100A, the information processing device 100B, and the information processing device 100C may have the same configuration as the information processing device 100 . The information processing device 100A, the information processing device 100B, the information processing device 100C, and the management device 300 may be general computers. The information processing device 100 communicates with the information processing device 100</b>A, the information processing device 100</b>B, the information processing device 100</b>C, and the management device 300 via the communication network 400 (for example, transmitting and receiving data). Specifically, the virtual machines built in the information processing device 100 communicate with the information processing device 100A, the information processing device 100B, the information processing device 100C, and the like via the virtual NIC unit 111, the NIC unit 124, and the communication network 400. communicate. In other words, in the information processing apparatus 100, a virtual machine built in the information processing apparatus 100 communicates with other devices connected to the communication network 400 via the virtual NIC unit 111, the NIC unit 124, and the communication network 400. configured for communication. Note that the devices connected to communication network 400 shown in FIG. 13 are merely examples, and are not limited to the examples shown in FIG.

情報処理部114は、仮想NIC部111を通じて、例えばパケットの形式の、データの送受信を行う。情報処理部114は、受け取ったパケットのデータを使用して情報処理を行ってもよい。情報処理部114は、例えばメモリ102等に記憶されているデータ等を用いて、情報処理を行ってもよい。情報処理部114は、他のデータを用いて情報処理を行ってもよい。情報処理部114によって行われる情報処理に、限定はない。情報処理部114は、CPU101によって実現される。上述のように、情報処理部114は、仮想マシンとして実現されていてもよい。情報処理部114は、仮想マシンにおいて動作するプログラムとして実現されてもよい。 The information processing unit 114 transmits and receives data in the form of packets, for example, through the virtual NIC unit 111 . The information processing unit 114 may perform information processing using the received packet data. The information processing unit 114 may perform information processing using, for example, data stored in the memory 102 or the like. The information processing section 114 may perform information processing using other data. The information processing performed by the information processing unit 114 is not limited. The information processing unit 114 is implemented by the CPU 101 . As described above, the information processing unit 114 may be implemented as a virtual machine. The information processing unit 114 may be implemented as a program that runs on a virtual machine.

仮想NIC部111は、仮想的な通信インタフェースであり、情報処理部114とスケジューリング部123との間の通信を実現する。仮想NIC部111は、たとえば、仮想マシンの一部として構成される仮想NICであってもよい。仮想NIC部111は、CPU101およびメモリ102によって実現される。仮想NIC部111を介したパケットの通信は、メモリ102に確保された、例えばFIFOのキューによって実現される。例えば、情報処理部114は、仮想NIC部111を介して送信するパケットを、その仮想NIC部111用のキューにEnqueueする。スケジューリング部123は、仮想NIC部111用のキューからパケットをDequeueする。それにより、スケジューリング部123は、情報処理部114が送信したパケットを受信する。 The virtual NIC unit 111 is a virtual communication interface and implements communication between the information processing unit 114 and the scheduling unit 123 . The virtual NIC unit 111 may be, for example, a virtual NIC configured as part of a virtual machine. Virtual NIC unit 111 is realized by CPU 101 and memory 102 . Packet communication via the virtual NIC unit 111 is realized by, for example, a FIFO queue secured in the memory 102 . For example, the information processing unit 114 enqueues a packet to be transmitted via the virtual NIC unit 111 to the queue for the virtual NIC unit 111 . The scheduling unit 123 dequeues packets from the queue for the virtual NIC unit 111 . Thereby, the scheduling unit 123 receives the packet transmitted by the information processing unit 114 .

ルール記憶部112は、受信したパケットに行う処理を決定するための情報である、FIBを記憶する。ルール記憶部112は、FIBとして蓄積された、ルールの集合を記憶する。ルールは、少なくとも、マッチ条件(例えば、アドレスに関する条件)と、マッチ条件に関連付けられているアクションを示す情報とを含む。アクションは、例えば、そのアクションに関連付けられているマッチ条件に、送信先のアドレスが適合したパケットに対して、実行される処理である。以下では、ルールに含まれるマッチ条件にパケットの送信先のアドレスが適合する場合、そのルールは、そのパケットに適合するルールと表記される。ルール記憶部112は、メモリ102によって実現される。以下の説明では、ルール記憶部112が記憶するルールの集合を、FIBとも表記する。ルール記憶部112が記憶するルールは、ルール間の優先度を含んでいてもよい。ルール記憶部112が記憶するルールは、ワイルドカードによる条件を含んでいてもよい。ルール記憶部112が記憶するルールは、完全一致型のルール(Exact Match)であってもよい。ルール記憶部112が記憶するルールは、それらの組み合わせであってもよい。 The rule storage unit 112 stores FIB, which is information for determining processing to be performed on received packets. The rule storage unit 112 stores a set of rules accumulated as FIB. A rule includes at least a match condition (eg, a condition on an address) and information indicating an action associated with the match condition. An action is, for example, processing to be performed on a packet whose destination address matches the match condition associated with the action. Hereinafter, a rule is referred to as a rule that matches a packet if the destination address of the packet matches the match condition included in the rule. Rule storage unit 112 is implemented by memory 102 . In the following description, the set of rules stored in the rule storage unit 112 is also referred to as FIB. The rules stored by the rule storage unit 112 may include priorities between rules. The rules stored in the rule storage unit 112 may include wildcard conditions. The rule stored in the rule storage unit 112 may be an exact match type rule (Exact Match). The rules stored in the rule storage unit 112 may be a combination of them.

指示受付部115は、ルール記憶部112が記憶するルールの、追加の指示、削除の指示、及び、変更の指示を受け付ける。指示受付部115は、これらの指示を、例えば、通信インタフェース部124を介して、例えば、管理装置300から受け取ってもよい。指示受付部115は、これらの指示を、例えば、情報処理装置100のユーザ又は管理者から、キーボードなどの入力装置を介して受け取ってもよい。指示受付部115は、受け付けた上述の指示を、ルール管理部113に送出する。なお、図3では、指示受付部115が指示を受け付ける経路は、簡単のため省略されている。 The instruction accepting unit 115 accepts an instruction to add, an instruction to delete, and an instruction to change the rule stored in the rule storage unit 112 . The instruction receiving unit 115 may receive these instructions, for example, from the management device 300 via the communication interface unit 124, for example. The instruction receiving unit 115 may receive these instructions, for example, from the user or administrator of the information processing apparatus 100 via an input device such as a keyboard. Instruction accepting portion 115 sends the above-described accepted instructions to rule managing portion 113 . In FIG. 3, the route through which the instruction receiving unit 115 receives instructions is omitted for the sake of simplicity.

ルール管理部113は、ルール記憶部112が記憶するFIBの内容を管理する。具体的には、ルール管理部113は、例えば指示受付部115から受け取った指示に従って、ルール記憶部112が記憶するルールの、追加、削除、及び、変更を行う。ルール管理部113は、ルールの追加、削除、及び、変更を、例えば、情報処理装置100のユーザ、及び、管理装置300等からの指示に従って行ってもよい。ルール管理部113は、ルールの追加、削除、及び、変更を、例えば、情報処理部114、及び、パケット処理部121等からの要求に基づき行ってもよい。ルール管理部113は、例えば、CPU101およびメモリ102によって実現されてもよい。 A rule management unit 113 manages the contents of the FIB stored in the rule storage unit 112 . Specifically, the rule management unit 113 adds, deletes, and changes rules stored in the rule storage unit 112 according to instructions received from the instruction reception unit 115, for example. The rule management unit 113 may add, delete, and change rules, for example, according to instructions from the user of the information processing device 100, the management device 300, and the like. The rule management unit 113 may add, delete, and change rules based on requests from the information processing unit 114, the packet processing unit 121, and the like, for example. The rule management unit 113 may be realized by the CPU 101 and the memory 102, for example.

パケット処理部121は、NIC部124および仮想NIC部111からパケットを受信し、受信したパケットを処理する。パケット処理部121は、受信したパケットを処理する際、キャッシュ部122に格納されているルール又はルール記憶部112に記憶されているFIBのうち、受信したパケットに適合するルールを読み出す。 The packet processing unit 121 receives packets from the NIC unit 124 and the virtual NIC unit 111 and processes the received packets. When processing a received packet, the packet processing unit 121 reads a rule that matches the received packet from among the rules stored in the cache unit 122 or the FIB stored in the rule storage unit 112 .

パケット処理部121は、例えば、受信したパケットの情報を、制御部126に送信する。パケットの情報は、ルールが含むマッチ条件との比較に使用される情報(例えば、送信先のアドレス及び送信元のアドレス等)と、パケットのサイズとを含む。制御部126に送信されるパケットの情報は、以下の説明では、キーとも表記される。例えば、パケットが、IPパケットである場合などでは、パケットの情報(例えば、後述のキー)は、パケットのヘッダであってもよい。なお、IPパケットのヘッダは、送信元のIPアドレス、宛先のIPアドレス、データグラム長等を含む。また、例えば、パケット処理部121は、データグラム長を、パケットのサイズ(すなわち、パケット長)として使用してもよい。以下の説明のように、パケットのサイズ等を含むパケットの情報を制御部126に送信する場合、パケット処理部121は、パケットのヘッダの部分のデータを、キーとして送信してよい。 The packet processing unit 121 , for example, transmits information on the received packet to the control unit 126 . The packet information includes information used for comparison with the matching conditions included in the rule (eg, destination address, source address, etc.) and the size of the packet. The packet information transmitted to the control unit 126 is also referred to as a key in the following description. For example, when the packet is an IP packet, the information of the packet (for example, the key described later) may be the header of the packet. The IP packet header includes the source IP address, destination IP address, datagram length, and the like. Also, for example, the packet processing unit 121 may use the datagram length as the size of the packet (that is, the packet length). As described below, when transmitting packet information including the packet size and the like to the control unit 126, the packet processing unit 121 may transmit data in the header portion of the packet as a key.

後で詳述するように、制御部126が、パケット処理部121から、受信したパケットの情報を受け取り、受け取ったパケットの情報に適合するルールを、キャッシュ部122又はルール記憶部112から読み出す。制御部126は、読み出したルールを、パケット処理部121に送信する。 As will be described in detail later, the control unit 126 receives information on the received packet from the packet processing unit 121 and reads a rule that matches the information on the received packet from the cache unit 122 or the rule storage unit 112 . The control unit 126 transmits the read rule to the packet processing unit 121 .

パケット処理部121は、制御部126によって、キャッシュ部122又はルール記憶部112から読み出されたルールを、制御部126から受け取る。パケット処理部121は、読み出されたルールに従って、すなわち、FIBに含まれ、受信したパケットに適合するルールに従って、受信したパケットを処理する。言い換えると、パケット処理部121は、受信したパケットが適合するアドレス条件に関連付けられている情報が示すアクションを実行する。言い換えると、パケット処理部121は、受信したパケットが適合するルールに含まれる情報が示すアクションを実行する。アクションは、例えば、以下のいずれかの処理である。アクションは、例えば、以下の処理のいずれかの組み合わせであってもよい。
(1)パケットを、指定されたNIC部124または仮想NIC部111に送信する。
(2)パケットを破棄する。
(3)パケットを変更する。
(4)パケットの受信を、予め定められた通知先に、通知する。
The packet processing unit 121 receives rules read from the cache unit 122 or the rule storage unit 112 by the control unit 126 from the control unit 126 . The packet processing unit 121 processes the received packets according to the read rules, ie according to the rules included in the FIB and conforming to the received packets. In other words, the packet processing unit 121 executes the action indicated by the information associated with the address condition to which the received packet matches. In other words, the packet processing unit 121 executes the action indicated by the information included in the rule to which the received packet matches. An action is, for example, one of the following processes. An action may be, for example, any combination of the following processes.
(1) Send the packet to the specified NIC unit 124 or virtual NIC unit 111 .
(2) Discard the packet.
(3) Change the packet.
(4) Notifying a predetermined notification destination of the reception of the packet.

通知先は、例えば、ルール管理部113及び管理装置300などであってもよい。パケット処理部121は、パケットを破棄したか否かを、制御部126に通知してもよい。パケット処理部121は、仮想スイッチ用ハードウェア120によって実現される。 The notification destination may be, for example, the rule management unit 113, the management device 300, and the like. The packet processing unit 121 may notify the control unit 126 whether or not the packet has been discarded. The packet processing unit 121 is implemented by the virtual switch hardware 120 .

キャッシュ部122は、ルール記憶部112が記憶するFIBの一部(すなわち、ルールの集合の部分集合)をキャッシュする。言い換えると、キャッシュ部122は、ルール記憶部112が記憶するFIBの一部を、キャッシュとして記憶する。キャッシュ部122は、仮想スイッチ用ハードウェア120によって実現される。キャッシュ部122は、例えば、キャッシュメモリとして実装されてもよい。キャッシュ部122は、例えば、ハッシュテーブルを記憶するメモリとして実装されてもよい。キャッシュ部122は、ルールに加えて、ルールの優先度を記憶していてもよい。上述のように、ルールが、そのルールの優先度を含んでいてもよい。優先度は、優先的にキャッシュ部122に格納されるか否かを示す、二値の値によって表されていてもよい。すなわち、優先度は、優先的にキャッシュ部122に格納されることを示す値(例えば1)、又は、優先的にキャッシュ部122に格納されないことを示す値(例えば0)のいずれかであってもよい。この場合の優先度は、後述の優先フラグに該当する。以下の説明では、優先的にキャッシュ部122に格納されることを示す値をPと表記し、優先的にキャッシュ部122に格納されないことを示す値をNと表記する。 The cache unit 122 caches a portion of the FIB stored by the rule storage unit 112 (that is, a subset of the set of rules). In other words, the cache unit 122 stores part of the FIB stored by the rule storage unit 112 as a cache. The cache unit 122 is implemented by the virtual switch hardware 120 . The cache unit 122 may be implemented as a cache memory, for example. The cache unit 122 may be implemented as a memory that stores hash tables, for example. The cache unit 122 may store the priority of the rules in addition to the rules. As noted above, a rule may include a priority for that rule. The priority may be represented by a binary value indicating whether or not to be preferentially stored in the cache unit 122 . That is, the priority is either a value (for example, 1) indicating preferential storage in the cache unit 122 or a value (for example, 0) indicating not preferentially storing in the cache unit 122. good too. The priority in this case corresponds to a priority flag described later. In the following description, a value indicating preferential storage in the cache unit 122 is denoted by P, and a value indicating not preferentially storing in the cache unit 122 is denoted by N.

キャッシュ部122は、さらに、ルールに加えて、そのルールをキャッシュ部122から削除するか否かを決定するのに使用される情報を記憶していてよい。ルールをキャッシュ部122から削除するか否かを決定するのに使用される情報(例えば、LRU情報)は、例えば、そのルールが最後に使用された時刻を示す情報であってもよい。時刻を示す情報は、日付の情報を含んでいてよい。LRU情報は、最後に使用された時期の新しさの順位を表す値であってもよい。その場合、例えば制御部126が、キャッシュ部122に格納されているルールを読み出した際、読み出したルールのLRU情報を、1位を表す情報に変更してよい。そして、制御部126は、キャッシュ部122に格納されている他の全てのルールのLRU情報を、変更前の順位より1つ下の順位(すなわち、変更前の順位を表す値より1つ大きい値によって表される順位)を表す情報に変更してもよい。LRU情報は、例えば、使用されたか否かを表す情報(本実施形態では、ルールが読み出されたか否かを表す情報)であってもよい。その場合、例えば制御部126が、キャッシュ部122に格納されているルールのLRU情報を、定期的に、使用されていないことを表す情報に設定してよい。そして、制御部126は、ルールがキャッシュ部122から読み出された場合、そのルールのLRU情報を、使用されたことを表す情報に設定してよい。 Caching unit 122 may also store rules, as well as information used to determine whether to remove the rule from caching unit 122 . Information (eg, LRU information) used to determine whether to remove a rule from cache 122 may be, for example, information indicating the last time the rule was used. Information indicating the time may include date information. The LRU information may be a value representing the recency rank of the last used time. In that case, for example, when the control unit 126 reads the rule stored in the cache unit 122, the LRU information of the read rule may be changed to information indicating the first place. Then, the control unit 126 sets the LRU information of all other rules stored in the cache unit 122 to a rank one level lower than the order before the change (that is, a value one higher than the value representing the order before the change). It may be changed to information representing the order represented by ). The LRU information may be, for example, information indicating whether or not it has been used (in this embodiment, information indicating whether or not a rule has been read). In that case, for example, the control unit 126 may periodically set the LRU information of the rule stored in the cache unit 122 to information indicating that the rule is not used. Then, when a rule is read from the cache unit 122, the control unit 126 may set the LRU information of the rule to information indicating that the rule has been used.

制御部126は、パケット処理部121による、ルール記憶部112からのルールの読み出しを中継する。具体的には、制御部126は、パケット処理部121から、受信したパケットの情報を受け取る。制御部126は、受け取った、パケットの情報に基づいて、パケット処理部121が受信したパケットに適合するマッチ条件を含むルールを、キャッシュ部122に格納されているルール及びルール記憶部112に格納されているルールの中から特定する。具体的には、制御部126は、例えば、パケット情報が複数のルールのマッチ条件に適合する場合、制御部126は、所定の方法に従って、パケットの情報に最もよく適合するマッチ条件を含むルールを、受信したパケットに適合するルールとして選択してもよい。その場合、例えば、マッチ条件がアドレスに対する条件である場合、制御部126は、パケットの情報に適合するマッチ条件のうち、適合するアドレスの数が最も少ないマッチ条件を、パケットの情報に最もよく適合するマッチ条件として選択してもよい。パケットの情報に最もよく適合するマッチ条件を選択する方法は、以上で説明した方法に限られない。 The control unit 126 relays reading of rules from the rule storage unit 112 by the packet processing unit 121 . Specifically, the control unit 126 receives information on the received packet from the packet processing unit 121 . Based on the received information of the packet, the control unit 126 retrieves the rule including the matching condition that matches the packet received by the packet processing unit 121 from the rule stored in the cache unit 122 and the rule stored in the rule storage unit 112. Identify from among the rules that Specifically, for example, if the packet information matches the match conditions of a plurality of rules, the control unit 126 selects the rule containing the match condition that best matches the packet information according to a predetermined method. , may be selected as the rule that matches the received packet. In that case, for example, if the match condition is a condition for an address, the control unit 126 selects the match condition with the smallest number of matching addresses among the match conditions that match the packet information. may be selected as the match condition to be used. The method of selecting the match condition that best matches the packet information is not limited to the method described above.

パケットの情報に適合するマッチ条件を含むルールがキャッシュ部122に格納されている場合、制御部126は、キャッシュ部122からそのルールを読み出す。パケットの情報に適合するマッチ条件を含むルールがキャッシュ部122に格納されておらず、ルール記憶部112に格納されている場合、制御部126は、ルール記憶部112からそのルールを読み出す。制御部126は、読み出したルールをパケット処理部121に送信する。キャッシュ部122及びルール記憶部112に格納されているルールに、受信したパケットの情報に適合するマッチ条件を含むルールが存在しない場合、制御部126は、ルールが存在しないことを示す情報を、パケット処理部121に送信してもよい。 If a rule including a matching condition that matches the packet information is stored in cache unit 122 , control unit 126 reads that rule from cache unit 122 . If a rule containing a matching condition matching packet information is not stored in the cache unit 122 but is stored in the rule storage unit 112 , the control unit 126 reads the rule from the rule storage unit 112 . The control unit 126 transmits the read rule to the packet processing unit 121 . If the rules stored in the cache unit 122 and the rule storage unit 112 do not include a matching condition that matches the information of the received packet, the control unit 126 stores information indicating that there is no rule in the packet. It may be transmitted to the processing unit 121 .

ルール記憶部112から読み出されたルールがキャッシュ部122に格納されていない場合、制御部126は、パケットのサイズを、決定部125に送信する。後で詳述されるように、決定部125は、パケットのサイズに基づいて、そのパケットに適合するルールを、キャッシュ部122に格納するか否かを決定する。決定部125は、小さいパケットに関するルールを、優先的にキャッシュとしてキャッシュ部122に格納するように決定する。決定部125は、サイズを受け取ったパケットに適合するルールをキャッシュ部122に格納するか否かを決定した結果を、制御部126に送信する。制御部126は、決定部125によって決定された結果を、決定部125から受け取る。決定部125は、さらに、キャッシュ部122から削除するルールを決定してもよい。いずれかのルールをキャッシュ部122から削除すると決定した場合、決定部125は、削除すると決定したルールを特定する情報を、制御部126に送信する。決定部125については後で詳述する。 If the rule read from the rule storage unit 112 is not stored in the cache unit 122 , the control unit 126 transmits the packet size to the determination unit 125 . As will be described in detail later, the decision unit 125 decides whether to store a rule that matches the packet in the cache unit 122 based on the size of the packet. The determining unit 125 determines to preferentially store rules relating to small packets in the cache unit 122 as a cache. The determination unit 125 transmits to the control unit 126 the result of determining whether or not to store in the cache unit 122 a rule that matches the packet whose size has been received. The control unit 126 receives the result determined by the determination unit 125 from the determination unit 125 . The determination unit 125 may further determine rules to be deleted from the cache unit 122 . When determining to delete any rule from the cache unit 122 , the determination unit 125 transmits information specifying the rule determined to be deleted to the control unit 126 . The determination unit 125 will be detailed later.

ルール記憶部112から読み出されたルールがキャッシュ部122に格納されていない場合、制御部126は、後で詳述する決定部125による決定に従って、小さいパケットに関するルールを、優先的にキャッシュとしてキャッシュ部122に格納する。制御部126は、スケジューリング部123によって破棄されたパケットに関するルールを、優先的にキャッシュとしてキャッシュ部122に格納する。制御部126は、削除すると決定したルールの識別情報を決定部125から受け取った場合、キャッシュ部122から削除すると決定したルールをキャッシュ部122から削除する。制御部126による、キャッシュ部122からのルールの削除、及び、ルールのキャッシュ部122への格納については、後で詳述する。 If the rule read from the rule storage unit 112 is not stored in the cache unit 122, the control unit 126 preferentially caches the rule regarding small packets according to the determination by the determination unit 125, which will be described in detail later. Stored in section 122 . The control unit 126 preferentially stores the rule regarding the packet discarded by the scheduling unit 123 in the cache unit 122 as a cache. When the control unit 126 receives the identification information of the rule determined to be deleted from the determination unit 125 , the control unit 126 deletes the rule determined to be deleted from the cache unit 122 from the cache unit 122 . Deletion of rules from the cache unit 122 and storage of rules in the cache unit 122 by the control unit 126 will be described in detail later.

決定部125は、パケットのサイズを制御部126から受信する。決定部125は、受信したパケットのサイズに基づいて、そのパケットに適合するルールをキャッシュ部122に優先的に格納するか否かを決定する。言い換えると、決定部125は、受信したパケットのサイズに基づいて、そのパケットに対する処理(すなわち、アクション)を表すルールを、キャッシュ部122に優先的に格納するか否かを決定する。決定部125は、さらに、キャッシュ部122に格納されているルールの、格納された順番及び優先度と、決定した結果とに基づいて、受信したパケットに適合するルールをキャッシュ部122に格納するか否かを決定する。 The decision unit 125 receives the packet size from the control unit 126 . Based on the size of the received packet, the determining unit 125 determines whether or not to preferentially store a rule matching the packet in the cache unit 122 . In other words, based on the size of the received packet, the determining unit 125 determines whether or not to preferentially store in the cache unit 122 the rule representing the processing (that is, action) for the packet. The determination unit 125 further determines whether to store a rule matching the received packet in the cache unit 122 based on the stored order and priority of the rules stored in the cache unit 122 and the determined result. Decide whether or not

具体的には、パケット処理部121によって要求されたルールに適合するパケットのサイズが、所定の閾値以下である場合、決定部125は、そのルールを優先的にキャッシュ部122に格納すると判定する。決定部125は、例えば、そのルールの優先度を、Pに設定してもよい。パケット処理部121によって要求されたルールに適合するパケットのサイズが、所定の閾値よりも大きい場合、決定部125は、そのルールを非優先的にキャッシュ部122に格納すると判定する。そのルールの優先度を、Nに設定する。以下、キャッシュ部122に格納するか否かが判定されるルールを、対象ルールと表記する。 Specifically, when the size of a packet conforming to a rule requested by the packet processing unit 121 is equal to or smaller than a predetermined threshold value, the determination unit 125 determines to preferentially store the rule in the cache unit 122 . The determining unit 125 may set the priority of the rule to P, for example. If the size of a packet conforming to the rule requested by the packet processing unit 121 is larger than a predetermined threshold, the determination unit 125 determines to store the rule in the cache unit 122 with low priority. Set the priority of the rule to N. A rule for determining whether or not to store in the cache unit 122 is hereinafter referred to as a target rule.

キャッシュ部122に空きがある場合、パケット処理部121は、対象ルールが優先的にキャッシュ部122に格納されると判定されたか否かによらずに(すなわち、対象ルールの優先度によらずに)、対象ルールをキャッシュ部122に格納すると決定する。 If there is space in the cache unit 122, the packet processing unit 121 determines whether the target rule is preferentially stored in the cache unit 122 (that is, regardless of the priority of the target rule). ), it decides to store the target rule in the cache unit 122 .

キャッシュ部122に、非優先的に格納すると判定されたルールが格納されている場合、決定部125は、キャッシュ部122に格納されている、非優先的に格納すると判定されたルールの中から、所定の方法に従って、削除されるルールを決定する。削除されるルールを決定する所定の方法は、例えば、LRU(Least Recently Used)アルゴリズムであってよい。その場合、決定部125は、キャッシュ部122に格納されている、非優先的に格納すると判定されたルールの中で、最後に使われてから最も長い時間が経過したルールを特定し、特定したルールを削除すると決定する。 When the cache unit 122 stores rules determined to be stored with non-priority, the determination unit 125 selects, from among the rules stored in the cache unit 122 determined to be stored with non-priority, Determine the rule to be deleted according to a predetermined method. A predetermined method for determining rules to be deleted may be, for example, an LRU (Least Recently Used) algorithm. In this case, the determination unit 125 identifies the rule that has been used for the longest time among the rules stored in the cache unit 122 and determined to be stored with non-priority, and identifies the rule. Decide to delete the rule.

削除するか否かを決定するのに使用される情報として、使用されたか否かを表す情報が格納されている場合、決定部125は、使用されていないことを表す情報に関連付けられている、非優先的に格納すると判定されたルールから、削除されるルールを決定する。この場合の、削除されるルールを決定する方法は、既存のいずれかの方法でよい。例えば、決定部125は、決定部125は、使用されていないことを表す情報に関連付けられている、非優先的に格納すると判定されたルールから、ランダムに、削除されるルールを決定してもよい。 If the information used to determine whether to delete is stored as information indicating whether or not it has been used, the determining unit 125 associates the information indicating that it is not used. A rule to be deleted is determined from the rules determined to be stored with less priority. Any existing method may be used to determine the rule to be deleted in this case. For example, the determining unit 125 may randomly determine a rule to be deleted from rules that are associated with information indicating that they are not used and that have been determined to be stored with less priority. good.

そして、決定部125は、対象ルールが優先的にキャッシュ部122に格納されると判定されたか否かによらずに、対象ルールをキャッシュ部122に格納すると決定する。 Then, the determination unit 125 determines to store the target rule in the cache unit 122 regardless of whether it is determined that the target rule is preferentially stored in the cache unit 122 .

キャッシュ部122に、優先的に格納すると判定されたルールのみが格納されており、対象ルールが非優先的に格納されると判定された場合、決定部125は、対象ルールをキャッシュ部122に格納しないと決定する。 If only the rule determined to be stored preferentially is stored in the cache unit 122 and the target rule is determined to be stored with non-priority, the determination unit 125 stores the target rule in the cache unit 122. decide not to.

キャッシュ部122に、優先的に格納すると判定されたルールのみが格納されており、対象ルールが優先的に格納されると判定された場合、決定部125は、キャッシュ部122に格納されているルールの中から、所定の方法に従って、削除されるルールを決定する。削除されるルールを決定する所定の方法は、非優先的に格納すると判定されたルールの中から削除されるルールを決定する方法と同じでよい。削除されるルールを決定する所定の方法は、例えば、LRU(Least Recently Used)アルゴリズムであってよい。その場合、決定部125は、キャッシュ部122に格納されているルールの中で、最後に使われてから最も長い時間が経過したルールを削除すると決定する。そして、決定部125は、対象ルールをキャッシュ部122に格納すると決定する。 Only the rules determined to be stored preferentially are stored in the cache unit 122, and when it is determined that the target rule is preferentially stored, the determination unit 125 stores the rules stored in the cache unit 122. , according to a predetermined method, determine the rule to be deleted. The predetermined method of determining the rules to be deleted may be the same as the method of determining the rules to be deleted from among the rules determined to be stored with less priority. A predetermined method for determining rules to be deleted may be, for example, an LRU (Least Recently Used) algorithm. In that case, the determination unit 125 determines to delete the rule that has been used for the longest time among the rules stored in the cache unit 122 . The determination unit 125 then determines to store the target rule in the cache unit 122 .

対象ルールがキャッシュ部122に格納されている場合、決定部125は、対象ルールをキャッシュ部122に格納しないと決定する。 If the target rule is stored in the cache unit 122 , the determination unit 125 determines not to store the target rule in the cache unit 122 .

制御部126は、決定部125による決定に従って、キャッシュ部122からのルールの削除及びキャッシュ部122への対象ルールの格納を行う。具体的には、決定部125によって削除すると決定されたルールが存在する場合、制御部126は、そのルールを、キャッシュ部122から削除する。決定部125によって削除すると決定されたルールが存在しない場合(すなわち、決定部125がルールを削除すると決定しなかった場合)、制御部126は、キャッシュ部122からルールを削除しない。決定部125が対象ルールを格納すると決定した場合、制御部126は、対象ルールと、対象ルールの優先度と、LRU情報とを、キャッシュ部122に格納する。 The control unit 126 deletes the rule from the cache unit 122 and stores the target rule in the cache unit 122 according to the determination by the determination unit 125 . Specifically, when there is a rule determined to be deleted by the determination unit 125 , the control unit 126 deletes the rule from the cache unit 122 . If there is no rule determined to be deleted by the determination unit 125 (that is, if the determination unit 125 did not determine to delete the rule), the control unit 126 does not delete the rule from the cache unit 122 . When the determination unit 125 determines to store the target rule, the control unit 126 stores the target rule, the priority of the target rule, and the LRU information in the cache unit 122 .

対象ルールを新たにキャッシュ部122に格納する際、LRU情報が対象ルールを使用した時刻を示す情報である場合、制御部126は、対象ルールを最後に使用した時刻に、例えば、制御部126が対象ルールをキャッシュ部122に格納した時刻を設定してもよい。制御部126は、対象ルールを最後に使用した時刻に、例えば、対象ルールをパケット処理部121に送信した時刻を設定してもよい。制御部126は、他の方法によって、LRU情報を設定してもよい。決定部125が対象ルールを格納しないと決定した場合、制御部126は、対象ルールをキャッシュ部122に格納しない。対象ルールがキャッシュ部122に格納されている場合、制御部126は、キャッシュ部122に格納さている、対象ルールのLRU情報を更新する。この場合のLRU情報の設定方法は、新たに格納されるルールのLRU情報の設定方法と同じでよい。 When the target rule is newly stored in the cache unit 122, if the LRU information is information indicating the time when the target rule was used, the control unit 126 causes the target rule to be last used, for example, when the control unit 126 The time when the target rule was stored in the cache unit 122 may be set. The control unit 126 may set the time when the target rule was last used, for example, the time when the target rule was transmitted to the packet processing unit 121 . The control unit 126 may set the LRU information using another method. When the determination unit 125 determines not to store the target rule, the control unit 126 does not store the target rule in the cache unit 122 . When the target rule is stored in the cache unit 122 , the control unit 126 updates the LRU information of the target rule stored in the cache unit 122 . The method of setting the LRU information in this case may be the same as the method of setting the LRU information of the newly stored rule.

制御部126は、さらに、パケット処理部121及び後で詳述するスケジューリング部123から、破棄されたパケットの情報(例えば、破棄されたパケットのキー)を受信してもよい。 The control unit 126 may also receive discarded packet information (for example, discarded packet keys) from the packet processing unit 121 and the scheduling unit 123, which will be described in detail later.

制御部126は、破棄されたパケットの情報に基づいて、キャッシュ部122に格納されている、破棄されたパケットに適合するルールを検出してもよい。具体的には、制御部126は、破棄されたパケットの情報が、ルールに含まれるマッチ条件に適合する場合、そのルールを、破棄されたパケットに適合するルールとして検出してよい。破棄されたパケットに適合するルールがキャッシュ部122に格納されている場合、制御部126は、そのパケットの優先度を示す情報を、そのパケットが優先的に格納されることを示す情報に更新してもよい。例えば、そのパケットの優先度を示す情報が、そのパケットが非優先的に格納されることを示す情報である場合に、制御部126は、そのパケットの優先度を示す情報を、そのパケットが優先的に格納されることを示す情報に変更してよい。なお、以上の説明における「破棄されたパケット」は、既に破棄されたパケットではなく、破棄される条件に当てはまった、まだ破棄されていないパケットであってもよい。以上の説明における「破棄されたパケット」は、破棄されることが決定された、まだ破棄されていないパケットであってもよい。 The control unit 126 may detect a rule that matches the discarded packet, stored in the cache unit 122, based on the discarded packet information. Specifically, when information of a discarded packet matches a match condition included in a rule, the control unit 126 may detect that rule as a rule that matches the discarded packet. If a rule that matches the discarded packet is stored in the cache unit 122, the control unit 126 updates the information indicating the priority of the packet to information indicating that the packet is preferentially stored. may For example, when the information indicating the priority of the packet is information indicating that the packet is to be stored with non-priority, the control unit 126 stores the information indicating the priority of the packet as the packet with priority. It may be changed to information indicating that it will be stored as Note that the "discarded packet" in the above description may not be a packet that has already been discarded, but may be a packet that has not yet been discarded and has met the conditions for discarding. A "discarded packet" in the above description may be a packet that has been determined to be discarded but has not yet been discarded.

スケジューリング部123は、パケット処理部121が仮想NIC部111に送信するパケットをパケット処理部121から受取り、受け取った、仮想NIC部111に送信されるパケットの送信のスケジューリングを行う。スケジューリング部123は、仮想NIC部111からパケットを受信し、受信したパケットをパケット処理部121に送信する。スケジューリング部123は、仮想スイッチ用ハードウェア120によって実現される。 The scheduling unit 123 receives from the packet processing unit 121 packets to be transmitted to the virtual NIC unit 111 by the packet processing unit 121 and schedules transmission of the received packets to be transmitted to the virtual NIC unit 111 . The scheduling unit 123 receives packets from the virtual NIC unit 111 and transmits the received packets to the packet processing unit 121 . The scheduling unit 123 is implemented by the virtual switch hardware 120 .

図4は、本実施形態に係るスケジューリング部123の構成の一例を示すブロック図である。図4に例示するスケジューリング部123は、選択部1231と、不足カウンタ部1232と、キュー部1233と、受付部1234と、を含む。不足カウンタ部1232の数と、キュー部1233の数は、それぞれ、仮想通信インタフェース部111(すなわち、仮想NIC部111)の数と同じである。不足カウンタ部1232とキュー部1233とは、1対1で関連付けられている。仮想通信インタフェース部111とキュー部1233とは、1対1で関連付けられている。 FIG. 4 is a block diagram showing an example of the configuration of the scheduling section 123 according to this embodiment. The scheduling unit 123 illustrated in FIG. 4 includes a selection unit 1231 , a shortage counter unit 1232 , a queue unit 1233 and a reception unit 1234 . The number of shortage counter units 1232 and the number of queue units 1233 are the same as the number of virtual communication interface units 111 (that is, virtual NIC units 111). The shortage counter section 1232 and the queue section 1233 are associated on a one-to-one basis. The virtual communication interface unit 111 and the queue unit 1233 are associated on a one-to-one basis.

図4に示す例では、不足カウンタ部1232の数は3であり、キュー部1233の数も3である。以下の説明において、不足カウンタ部1232を個々に区別する必要が無い場合は、これらの不足カウンタ部1232を、単に、不足カウンタ部1232と表記する。不足カウンタ部1232を個々に区別する必要がある場合は、これらの不足カウンタ部1232を、不足カウンタ部1232A、不足カウンタ部1232B、及び、不足カウンタ部1232Cと表記する。同様に、キュー部1233を個々に区別する必要が無い場合は、これらのキュー部1233を、単に、キュー部1233と表記する。キュー部1233を個々に区別する必要がある場合は、これらのキュー部1233を、キュー部1233A、キュー部1233B、及び、キュー部1233Cと表記する。不足カウンタ部1232Aは、キュー部1233Aと関連付けられており、不足カウンタ部1232Bは、キュー部1233Bと関連付けられており、そして、不足カウンタ部1232Cは、キュー部1233Cと関連付けられている。キュー部1233Aは、仮想NIC部111Aと関連付けられており、キュー部1233Bは、仮想NIC部111Bと関連付けられており、そして、キュー部1233Cは、仮想NIC部111Cと関連付けられている。 In the example shown in FIG. 4, the number of shortage counter units 1232 is three, and the number of queue units 1233 is also three. In the following description, these shortage counter units 1232 are simply referred to as shortage counter units 1232 when there is no need to distinguish between the shortage counter units 1232 individually. When it is necessary to distinguish the shortage counter units 1232 individually, these shortage counter units 1232 are denoted as the shortage counter unit 1232A, the shortage counter unit 1232B, and the shortage counter unit 1232C. Similarly, when there is no need to distinguish the queue sections 1233 individually, these queue sections 1233 are simply referred to as queue sections 1233 . When it is necessary to distinguish the queue sections 1233 individually, these queue sections 1233 are referred to as queue section 1233A, queue section 1233B, and queue section 1233C. Shortage counter portion 1232A is associated with queue portion 1233A, shortage counter portion 1232B is associated with queue portion 1233B, and shortage counter portion 1232C is associated with queue portion 1233C. Queue section 1233A is associated with virtual NIC section 111A, queue section 1233B is associated with virtual NIC section 111B, and queue section 1233C is associated with virtual NIC section 111C.

スケジューリング部123は、例えば、不足ラウンドロビン(Deficit Round-Rogin、DRR)方式により、パケット処理部121が仮想NIC部111に送信するパケットのスケジューリングを行う。ただし、パケット処理部121が仮想NIC部111に送信するパケットのスケジューリングの方法は、DRR方式に限定されない。スケジューリング部123は、他のスケジューリングの方法に従って、スケジューリングを行ってもよい。 The scheduling unit 123 schedules packets to be transmitted from the packet processing unit 121 to the virtual NIC unit 111 by, for example, a deficit round-robin (DRR) method. However, the method of scheduling packets that the packet processing unit 121 transmits to the virtual NIC unit 111 is not limited to the DRR method. The scheduling unit 123 may schedule according to another scheduling method.

選択部1231は、キュー部1233に格納されているパケットの中から、次に送信するパケットを、DRR方式によって選択する。選択部1231は、選択したパケットを、選択したパケットが格納されているキュー部1233に関連付けられている仮想NIC部111に送信する。例えば、キュー部1233Aは仮想NIC部111Aに関連付けられているので、キュー部1233Aに格納されているパケットを選択した場合、選択部1231は、選択したパケットを、仮想NIC部111Aに送信する。 The selection unit 1231 selects a packet to be transmitted next from among the packets stored in the queue unit 1233 by the DRR method. The selection unit 1231 transmits the selected packet to the virtual NIC unit 111 associated with the queue unit 1233 storing the selected packet. For example, the queue unit 1233A is associated with the virtual NIC unit 111A, so when selecting a packet stored in the queue unit 1233A, the selection unit 1231 transmits the selected packet to the virtual NIC unit 111A.

不足カウンタ部1232は、DRR方式で用いられる不足カウンタ(Deficit Counter、DC)を記憶する。不足カウンタ部1232は、それぞれ、異なるキュー部1233に関連付けられている。 The deficit counter unit 1232 stores a deficit counter (DC) used in the DRR method. Each shortage counter portion 1232 is associated with a different queue portion 1233 .

キュー部1233は、それぞれ、そのキュー部1233が関連付けられている仮想NIC部111に向けてパケット処理部121が送信するパケットを、FIFOとして記憶する。例えば、キュー部1233Aは、キュー部1233Aと関連付けられている仮想NIC部111Aに向けてパケット処理部121が送信するパケットを記憶する。パケットの送信先である仮想NIC部111に関連付けられているキュー部1233がフルである場合、送信パケットは、後で詳細に説明される受付部1234によって、例えば、破棄される。すなわち、パケットの送信先である仮想NIC部111に関連付けられているキュー部1233の記憶領域に空きが無く、そのキュー部1233に新たにパケットを格納できない場合、受付部1234は、そのパケットを破棄する。 Each queue unit 1233 stores, as a FIFO, packets transmitted by the packet processing unit 121 toward the virtual NIC unit 111 with which the queue unit 1233 is associated. For example, the queue unit 1233A stores packets that the packet processing unit 121 transmits to the virtual NIC unit 111A associated with the queue unit 1233A. When the queue unit 1233 associated with the virtual NIC unit 111, which is the destination of the packet, is full, the transmitted packet is discarded, for example, by the receiving unit 1234, which will be described later in detail. That is, when there is no space in the storage area of the queue unit 1233 associated with the virtual NIC unit 111, which is the destination of the packet, and no new packet can be stored in the queue unit 1233, the reception unit 1234 discards the packet. do.

受付部1234は、仮想NIC部111に向けて送信するパケットをパケット処理部121から受信する。受付部1234は、受信したパケットを、そのパケットの送信先に応じて、キュー部1233のいずれかに振り分ける。すなわち、受付部1234は、受信したパケットを、そのパケットの送信先に関連付けられているキュー部1233に格納する。受信したパケットの送信先に関連付けられているキュー部1233がフルである場合、受付部1234は、そのパケットを破棄する。スケジューリング部123(具体的には、受付部1234)は、パケットを破棄した場合、例えば、パケットを破棄したことを示す情報と、破棄したパケットの情報(例えば、キー)とを、制御部126に送信する。パケットを破棄したことを示す情報は、破棄したパケットの情報そのものであってもよい。 The receiving unit 1234 receives packets to be transmitted to the virtual NIC unit 111 from the packet processing unit 121 . The receiving unit 1234 distributes the received packet to one of the queue units 1233 according to the destination of the packet. That is, the reception unit 1234 stores the received packet in the queue unit 1233 associated with the destination of the packet. If the queue unit 1233 associated with the destination of the received packet is full, the reception unit 1234 discards the packet. When a packet is discarded, the scheduling unit 123 (specifically, the reception unit 1234) sends, for example, information indicating that the packet has been discarded and information (for example, a key) of the discarded packet to the control unit 126. Send. The information indicating that the packet has been discarded may be information of the discarded packet itself.

DRR方式によるスケジューリングの概要は以下のとおりである。
(1) 各キューをラウンドロビンでチェックする。言い換えると、複数のキューから1つのキューを順番に選択する。
(2)選択されたキューが空である場合、不足カウンタの値を0に設定し、選択されたキューに対する処理を終了し、次のキューの選択に移る。
(3)選択されたキューが空でない場合、不足カウンタの値に、キュー毎に予め与えられた所定値を加算する。
(4)選択されたキューの先頭パケットの長さが、当該キューの不足カウンタの値以下である場合、先頭パケットをそのキューから取り出し、取り出したパケットを送信先(本実施形態では、例えば、仮想NIC部111の1つ)に送信する。
(5)選択されたキューから取り出され、送信先に送信されたパケットのサイズの値を、選択されたキューの不足カウンタの値から引く。
(6)選択されたキューの先頭のパケットのサイズが、不足カウンタの値より小さい場合、選択されたキューに対する処理を終了し、次のキューの選択に移る。
An outline of scheduling by the DRR method is as follows.
(1) Check each queue in a round-robin fashion. In other words, one queue is selected in order from a plurality of queues.
(2) If the selected queue is empty, set the value of the deficit counter to 0, terminate the processing for the selected queue, and proceed to select the next queue.
(3) If the selected queue is not empty, add a predetermined value given in advance to each queue to the value of the shortage counter.
(4) If the length of the first packet in the selected queue is equal to or less than the value of the shortage counter of the queue, the first packet is extracted from the queue, and the extracted packet is sent to the destination (in this embodiment, for example, a virtual one of the NIC units 111).
(5) Subtract the value of the size of the packet dequeued from the selected queue and sent to the destination from the value of the deficit counter of the selected queue.
(6) If the size of the packet at the head of the selected queue is smaller than the value of the deficit counter, terminate the processing for the selected queue and proceed to select the next queue.

キュー毎に予め与えられた所定値は、Quantamと表記される。キュー毎に予め与えられている所定値は、以下の説明では、調整値とも表記される。キューに与えられているQuantamが大きいほど、より多くのパケットがそのキューから送信される。言い換えると、キューに与えられているQuantamが大きいほど、そのキューを介した通信に、より広い帯域が割り当てられており、より広い帯域が保証される。 A predetermined value given in advance to each queue is denoted as Quantum. The predetermined value given to each queue in advance is also referred to as an adjustment value in the following description. The higher the Quantum given to a queue, the more packets will be sent from that queue. In other words, the greater the Quantum given to a queue, the greater the bandwidth allocated and guaranteed to communication via that queue.

スケジューリング部123において、仮想NIC部111に対するQuantam(すなわち、不足カウンタ部1232に格納される値に足される所定値)は、予め選択部1231に与えられていてよい。また、管理装置によって、選択部1231に与えられてもよい。 In the scheduling unit 123 , the Quant for the virtual NIC unit 111 (that is, the predetermined value added to the value stored in the shortage counter unit 1232 ) may be given to the selection unit 1231 in advance. Alternatively, it may be provided to the selection unit 1231 by the management device.

図5は、キャッシュ部122を、キャッシュメモリ(4-wayセットアソシエイティブ)として実現した場合の構成の一例を示す模式図である。図5に構成を示すキャッシュ部122は、基本的にライン入れ替えポリシとしてLRU(Least Recently Used)方式を使用する。図5に示すキャッシュ部122の構成は、キャッシュ部122の実装例であり、キャッシュ部122の構成は、図5に示す例に限られない。 FIG. 5 is a schematic diagram showing an example of a configuration when the cache unit 122 is implemented as a cache memory (4-way set associative). The cache unit 122 whose configuration is shown in FIG. 5 basically uses an LRU (Least Recently Used) method as a line replacement policy. The configuration of the cache unit 122 shown in FIG. 5 is an implementation example of the cache unit 122, and the configuration of the cache unit 122 is not limited to the example shown in FIG.

一般的なキャッシュメモリは、メモリのアドレスを入力として受け取り、当該アドレスに記憶されるデータのキャッシュ値を出力する。キャッシュ部122は、キー(例えば、ルールのマッチ条件に使用されるパケットヘッダの値)を入力として受け取り、当該キーに適合するルールを出力する。 A typical cache memory receives a memory address as input and outputs the cache value of the data stored at that address. The cache unit 122 receives a key (for example, a packet header value used for a rule matching condition) as an input and outputs a rule matching the key.

キャッシュ部122は、キーの一部(例えば、LSBからNビット(Nは整数)のビット列、indexと表記)をWay内のキャッシュエントリ選択に使用する。キャッシュ部122は、残りのビット列(Tagと表記)を、一般的なキャッシュメモリにおけるフレームアドレスに相当するデータとして使用する。 The cache unit 122 uses a part of the key (for example, a bit string of N bits (N is an integer) from the LSB, denoted as index) for selecting a cache entry in the Way. The cache unit 122 uses the remaining bit string (denoted as Tag) as data corresponding to a frame address in a general cache memory.

キャッシュ部122における一つのキャッシュエントリは、ルール記憶部112における一つのルールに関連づけられる。キャッシュ部122のキャッシュエントリは、フラグと、Tagと、キャッシュデータと、を含む。キャッシュ部122のキャッシュエントリのフラグには、そのキャッシュエントリが使用中か否かを示すUsedフラグと、LRU制御(すなわち、LRU方式に従ってキャッシュエントリを削除する制御)に係る情報であるLRU情報が含まれる。また、キャッシュ部122のキャッシュエントリのフラグには、そのキャッシュエントリを優先すべきか否かを示す、優先フラグが含まれる。キャッシュ部122のキャッシュデータとして、ルールが記憶される。なお、ルールの一部がTagとして記憶されている場合、ルールのうちTagとして記憶されている部分のデータはキャッシュデータとして記憶されているデータに含まれていなくてもよい。 One cache entry in cache unit 122 is associated with one rule in rule storage unit 112 . A cache entry in cache unit 122 includes a flag, a tag, and cache data. The cache entry flags of the cache unit 122 include a Used flag indicating whether or not the cache entry is in use, and LRU information, which is information relating to LRU control (that is, control for deleting cache entries according to the LRU method). be In addition, the flag of the cache entry of the cache unit 122 includes a priority flag indicating whether or not the cache entry should be prioritized. Rules are stored as cache data in the cache unit 122 . Note that when a part of the rule is stored as a Tag, the data of the part of the rule stored as the Tag may not be included in the data stored as the cache data.

キャッシュ部122に対し、あるキーを入力として参照が行われた場合、キャッシュ部122は、入力されたキーからindexを取得する。言い換えると、キャッシュ部122は、入力されたキーのビット列から、indexを表す部分のビット列を取り出す。キャッシュ部122は、取得したindexを識別子として、各Way内から一つずつキャッシュエントリを選択する。言い換えると、キャッシュ部122は、取得したindexが示すキャッシュエントリを、それぞれのWayから1つ選択する。キャッシュ部122は、入力されたキーからTagを取得する。言い換えると、キャッシュ部122は、入力されたキーのビット列から、Tagを表す部分のビット列を取り出す。キャッシュ部122は、取得したTagと、選択された4つのキャッシュエントリ内のTagとを比較し、Tagが一致するキャッシュエントリを探索する。キーから取得したTagと一致するTagを含むエントリが見つかった場合、キャッシュ部122は、キャッシュヒットしたと判定し、見つかったエントリに記録されているルールを返す。 When the cache unit 122 is referenced by inputting a certain key, the cache unit 122 acquires the index from the input key. In other words, the cache unit 122 extracts the bit string representing the index from the bit string of the input key. The cache unit 122 selects one cache entry from each Way using the acquired index as an identifier. In other words, the cache unit 122 selects one cache entry indicated by the acquired index from each Way. The cache unit 122 acquires Tag from the input key. In other words, the cache unit 122 extracts the bit string representing the Tag from the bit string of the input key. The cache unit 122 compares the acquired Tag with the Tags in the four selected cache entries, and searches for a cache entry with a matching Tag. If an entry containing a Tag that matches the Tag obtained from the key is found, the cache unit 122 determines that a cache hit has occurred, and returns the rule recorded in the found entry.

<<第1の実施の形態の動作例>>
次に、本実施の形態の構成例として説明した、情報処理装置100の、以下に示す動作の例について、図面を参照しながら詳細に説明する。
(A)受信したパケットの処理。
(B)パケットを送信する処理。
(C)スケジューリングの処理。
<<Operation example of the first embodiment>>
Next, an example of the operation of the information processing apparatus 100 described as a configuration example of the present embodiment will be described in detail with reference to the drawings.
(A) Processing received packets.
(B) Processing for transmitting packets.
(C) Scheduling processing.

<<<(A)受信したパケットの処理>>>
図6は、本実施形態の情報処理装置100の、パケットを受信した際の動作、すなわち、受信したパケットの処理の例を表すフローチャートである。
<<<(A) Processing of received packets>>>
FIG. 6 is a flow chart showing an example of the operation of the information processing apparatus 100 of this embodiment when receiving a packet, that is, the processing of the received packet.

図6に示すフローチャートを用いて、パケット処理部121がパケットを受信した際の、情報処理装置100の動作について説明する。図6に示す動作は、例えば、NIC部124が、情報処理装置100の外部から受信したパケットを、パケット処理部121に送信した場合、および、スケジューリング部123が、情報処理部114から仮想NIC部111を経由して受信したパケットを、パケット処理部121に送信した場合に、開始される。 The operation of the information processing apparatus 100 when the packet processing unit 121 receives a packet will be described using the flowchart shown in FIG. The operation shown in FIG. 6 is performed, for example, when the NIC unit 124 transmits a packet received from the outside of the information processing device 100 to the packet processing unit 121, and when the scheduling unit 123 transmits the packet received from the information processing unit 114 to the virtual NIC unit. 111 is sent to the packet processing unit 121, it is started.

パケット処理部121は、NIC部124またはスケジューリング部123から、パケット(以下、処理対象パケットとも表記)を受信する(ステップS100)。 The packet processing unit 121 receives a packet (hereinafter also referred to as a processing target packet) from the NIC unit 124 or the scheduling unit 123 (step S100).

パケット処理部121は、受信したパケットから、ルールのマッチ条件に使用される、パケットヘッダの値であるキー(以下、処理対象キーと表記)を作成する(ステップS101)。パケット処理部121は、受信したパケットのヘッダの部分のビット列を切り出し、切り出したビット列をキーにしてもよい。パケット処理部121は、受信したパケットのヘッダから、ルールのマッチ条件と比較される情報を抽出し、抽出した情報を示すキーを生成してもよい。パケット処理部121は、受信したパケットのサイズ(すなわち、パケット長)を特定してもよい。 From the received packet, the packet processing unit 121 creates a key (hereinafter referred to as a processing target key) that is a value of the packet header and used for the matching condition of the rule (step S101). The packet processing unit 121 may extract a bit string from the header portion of the received packet and use the extracted bit string as a key. The packet processing unit 121 may extract information to be compared with the matching condition of the rule from the header of the received packet, and generate a key indicating the extracted information. The packet processing unit 121 may specify the size of the received packet (that is, packet length).

パケット処理部121は、受信したパケットの処理対象キーおよびパケット長を制御部126に送信し、受信したパケットに適合するルールを制御部126に要求する。受信したパケットに適合するルールの要求は、例えば、制御部126に対する、キャッシュ部122における、受信したパケットに適合するルールのキャッシュエントリの探索を依頼することであってもよい。制御部126は、まず、キャッシュ部122における、受信したパケットに適合するルールのキャッシュエントリの探索を実施する(ステップS102)。 The packet processing unit 121 transmits the processing target key and packet length of the received packet to the control unit 126, and requests the control unit 126 for a rule suitable for the received packet. The request for a rule matching the received packet may be, for example, requesting the control unit 126 to search for a cache entry of a rule matching the received packet in the cache unit 122 . The control unit 126 first searches for a cache entry of a rule matching the received packet in the cache unit 122 (step S102).

ステップS102において、受信したパケットに適合するルールのキャッシュエントリが見つからなかった場合(ステップS103においてNO)、制御部126は、ルール記憶部112から、処理対象キーに適合するルールを取得する(ステップS104)。具体的には、制御部126は、ルール記憶部112において、処理対象キーに適合するマッチ条件を含むルールを探索する。ルール記憶部112に処理対象キーに適合するマッチ条件を含むルールが格納されている場合、制御部126は、ルール記憶部112からそのルールを読み出す(すなわち、取得する)。制御部126は、ルール記憶部112から取得したルールを、パケット処理部121に送信する。 In step S102, if no cache entry of a rule that matches the received packet is found (NO in step S103), control unit 126 acquires a rule that matches the processing target key from rule storage unit 112 (step S104). ). Specifically, the control unit 126 searches the rule storage unit 112 for a rule including a matching condition that matches the processing target key. When the rule storage unit 112 stores a rule including a matching condition that matches the key to be processed, the control unit 126 reads (that is, acquires) the rule from the rule storage unit 112 . The control unit 126 transmits the rule acquired from the rule storage unit 112 to the packet processing unit 121 .

ステップS104において処理対象キーに適合するルールを取得できなかった場合、すなわち、処理対象キーに適合するルールが存在しなかった場合(ステップS105においてNO)、情報処理装置100の動作は、ステップS108に移行する。 If no rule matching the processing target key is acquired in step S104, that is, if there is no rule matching the processing target key (NO in step S105), the operation of information processing apparatus 100 proceeds to step S108. Transition.

ステップS104において処理対象キーに適合するルールが取得できた場合(ステップS105においてYES)、制御部126は、キャッシュ部122に、処理対象キーに適合するルール(以下、処理対象ルールと表記)のキャッシュエントリを作成する(ステップS106)。ステップS106の動作の詳細については後述する。 If a rule matching the processing target key can be acquired in step S104 (YES in step S105), the control unit 126 causes the cache unit 122 to store a rule matching the processing target key (hereinafter referred to as a processing target rule). An entry is created (step S106). Details of the operation of step S106 will be described later.

ステップS102において、受信したパケットに適合するルールのキャッシュエントリが見つかった場合(ステップS103においてYES)、制御部126は、キャッシュ部122において見つかったキャッシュエントリを更新する(ステップS107)。ステップS107の動作の詳細については後述する。制御部126は、見つかったキャッシュエントリに格納されているルールを、パケット処理部121に送信する。 In step S102, if a cache entry of a rule matching the received packet is found (YES in step S103), control unit 126 updates the found cache entry in cache unit 122 (step S107). Details of the operation of step S107 will be described later. The control unit 126 transmits the rule stored in the found cache entry to the packet processing unit 121 .

パケット処理部121は、処理対象パケットを処理する(ステップS108)。具体的には、制御部126からルールを受け取った場合、パケット処理部121は、受け取ったルールに基づいて処理対象パケットを処理する。制御部126からルールを受け取らなかった場合、すなわち、処理対象キーに適合するルールが存在しなかった場合、パケット処理部121は、例えば、処理対象パケットを破棄する。 The packet processing unit 121 processes the processing target packet (step S108). Specifically, when receiving a rule from the control unit 126, the packet processing unit 121 processes the processing target packet based on the received rule. If no rule is received from the control unit 126, that is, if there is no rule matching the processing target key, the packet processing unit 121 discards the processing target packet, for example.

図7は、本実施形態の情報処理装置100の、ルールのキャッシュエントリを作成する動作の詳細を表すフローチャートである。図7に示す動作は、図6に示すステップS106の詳細な動作の例である。 FIG. 7 is a flowchart showing the details of the operation of the information processing apparatus 100 of this embodiment for creating a rule cache entry. The operation shown in FIG. 7 is an example of detailed operation of step S106 shown in FIG.

図7のフローチャートを用いて、上記ステップS106における情報処理装置100の、ルール記憶部112から読み出されたルールのキャッシュエントリを作成する動作の例について説明する。本動作の開始の時点において、制御部126は、パケット処理部121から受け取った、キー(すなわち、処理対象キー)と、ルール記憶部112から取得した、処理対象キーに適合するするルール(すなわち、処理対象ルール)と、パケット長とを、保持している。なお、以下では、図7の動作を制御部126の動作として説明する。しかし、キャッシュ部122が、図7に示す動作を行う機能を備え、図7に示す動作の一部又は全部を行ってもよい。例えば、図5に示す構成を備えるキャッシュ部122は、以下のステップS110の動作を行うことができる。ステップS110の動作は、キャッシュ部122の動作であってもよい。なお、図5に示す構成のうち、図7に示す動作を行う部分は、制御部126の実装の一部であってもよい。 An example of the operation of the information processing apparatus 100 in step S106 to create a cache entry for the rule read out from the rule storage unit 112 will be described with reference to the flowchart of FIG. At the start of this operation, the control unit 126 receives the key (that is, the key to be processed) received from the packet processing unit 121, and the rule (that is, processing target rule) and packet length. Note that the operation of FIG. 7 will be described below as the operation of the control unit 126 . However, the cache unit 122 may have the function of performing the operations shown in FIG. 7, and may perform some or all of the operations shown in FIG. For example, the cache unit 122 having the configuration shown in FIG. 5 can perform the operation of step S110 below. The operation of step S<b>110 may be the operation of the cache unit 122 . 5, the part that performs the operation shown in FIG. 7 may be part of the implementation of the control unit 126. FIG.

制御部126は、キャッシュ部122において、処理対象キーに適合するルールのキャッシュの格納位置を特定する。すなわち、制御部126は、キャッシュ部122における、処理対象キーに適合するルールが格納されているキャッシュエントリの位置を特定する(ステップS110)。制御部126は、キャッシュ部122において、パケットに適合するルールが格納されているキャッシュエントリの位置を示す情報として、indexの値を、処理対象キーの下位ビットのindexの部分から取得してもよい。制御部126は、取得したindexの値を用いて、各Way内の、処理対象キーに適合するキャッシュエントリを特定する。キャッシュエントリを特定する方法は、一般的なキャッシュメモリにおいてキャッシュエントリを特定する方法と同じでよい。キャッシュ部122がハッシュテーブルとして実現されていた場合、制御部126は、例えば、処理対象キーのハッシュ値を計算し、算出したハッシュ値をBucket数で割った余りを算出し、算出した余りが示すBucketを、処理対象キーに適合するルールが格納されているBucketとして選択する。 The control unit 126 specifies the cache storage position of the rule that matches the processing target key in the cache unit 122 . That is, the control unit 126 identifies the position of the cache entry in the cache unit 122 in which the rule matching the processing target key is stored (step S110). In the cache unit 122, the control unit 126 may acquire the value of index from the index part of the lower bits of the key to be processed as information indicating the position of the cache entry storing the rule that matches the packet. . The control unit 126 uses the acquired index value to identify a cache entry that matches the processing target key in each Way. A method of specifying a cache entry may be the same as a method of specifying a cache entry in a general cache memory. When the cache unit 122 is realized as a hash table, the control unit 126, for example, calculates the hash value of the processing target key, calculates the remainder obtained by dividing the calculated hash value by the number of Buckets, and the calculated remainder indicates Select Bucket as the Bucket in which the rule that matches the key to be processed is stored.

制御部126は、ステップS110において特定されたキャッシュエントリに空きがあるか否かを確認する(ステップS111)。キャッシュ部122が4-wayセットアソシエイティブキャッシュメモリとして実現されている場合、ステップS110において4つのキャッシュエントリが特定される。各キャッシュエントリは、フラグの領域に、キャッシュエントリが使用されているか否かを表す値が設定されているUsedフラグを含む。制御部126は、各キャッシュエントリのUsedフラグを参照することによって、空きエントリがあるか否か確認する。空きエントリは、キャッシュデータ(すなわち、本実施形態では、キャッシュされているルール)が格納されていないキャッシュエントリを表す。 The control unit 126 confirms whether or not the cache entry specified in step S110 has an empty space (step S111). If cache unit 122 is implemented as a 4-way set associative cache memory, then 4 cache entries are identified in step S110. Each cache entry includes a Used flag in which a value indicating whether or not the cache entry is used is set in the flag field. The control unit 126 checks whether there is an empty entry by referring to the Used flag of each cache entry. A free entry represents a cache entry in which no cache data (that is, cached rules in this embodiment) is stored.

空きエントリが存在しない場合(ステップS111においてNO)、制御部126は、パケット長が閾値以下であるか否かを確認する(ステップS112)。閾値は、予め設定され、制御部126に与えられていてよい。閾値は、管理装置300によって設定されてもよい。 If there is no free entry (NO in step S111), control unit 126 checks whether the packet length is equal to or less than the threshold (step S112). The threshold may be set in advance and given to the controller 126 . The threshold may be set by the management device 300 .

パケット長が閾値より大きい場合(ステップS112においてNO)、制御部126は、ステップS110において特定されたキャッシュエントリの中に、優先フラグがオフのキャッシュエントリがあるか否かを確認する(ステップS113)。優先フラグがオフとは、優先フラグの値が、非優先であることを示す。優先フラグがオフのエントリには、非優先的にキャッシュ部122に格納されると判定されたルールがキャッシュされている。優先フラグがオフのキャッシュエントリがある場合(ステップS113においてYES)、情報処理装置100の動作はステップS114に移行する。優先フラグがオフのキャッシュエントリが無い場合(ステップS113においてNO)、情報処理装置100は、図7に示す動作を終了する。この場合、制御部126は、処理対象キーに適合するルールが格納されるキャッシュエントリを作成しない。すなわち、制御部126は、パケット処理部121が受信したパケットに適合するルールを、キャッシュ部122にキャッシュしない。 If the packet length is greater than the threshold (NO in step S112), control unit 126 checks whether or not there is a cache entry whose priority flag is off among the cache entries identified in step S110 (step S113). . When the priority flag is off, it indicates that the value of the priority flag is non-priority. Rules that are determined to be stored in the cache unit 122 with less priority are cached in the entry with the priority flag turned off. If there is a cache entry whose priority flag is off (YES in step S113), the operation of information processing apparatus 100 proceeds to step S114. If there is no cache entry with the priority flag turned off (NO in step S113), the information processing apparatus 100 ends the operation shown in FIG. In this case, the control unit 126 does not create a cache entry in which a rule matching the processing target key is stored. That is, the control unit 126 does not cache the rule that matches the packet received by the packet processing unit 121 in the cache unit 122 .

ステップS114において、制御部126は、ステップS110において特定されたキャッシュエントリの中から、削除されるエントリ(以下、削除対象エントリと表記)を決定し、決定された削除対象エントリを削除する(ステップS114)。エントリを削除するとは、キャッシュエントリを使用できる状態に戻すことを指す。使用できる状態のキャッシュエントリは、上述の空きエントリである。制御部126は、優先フラグがオフのキャッシュエントリの中で、最後に使用された時刻が最も昔であるキャッシュエントリを、削除対象エントリに決定する。制御部126は、LRU情報を使用して、最後に使用された時刻が最も昔であるキャッシュエントリを特定してよい。 In step S114, the control unit 126 determines an entry to be deleted (hereinafter referred to as a deletion target entry) from among the cache entries specified in step S110, and deletes the determined deletion target entry (step S114 ). Deleting an entry refers to returning the cache entry to a usable state. A cache entry that is ready for use is the free entry described above. The control unit 126 determines the cache entry whose last use time is the oldest among the cache entries whose priority flag is off as the entry to be deleted. The control unit 126 may use the LRU information to identify the cache entry with the earliest last use time.

制御部126は、削除対象エントリに決定したキャッシュエントリのUsedフラグをオフにすることによって、削除対象エントリを削除する。キャッシュエントリのUsedフラグがオフである場合、そのキャッシュエントリは、空きエントリであり、使用可能である。使用中の削除対象エントリのUsedフラグをオフに変更することは、その削除対象エントリを削除することに相当する。使用中の削除対象エントリのUsedフラグをオフに変更することによって、その削除対象エントリは削除され、その削除対象キャッシュエントリは、空きエントリに変化し、空きエントリが作成される。 The control unit 126 deletes the deletion target entry by turning off the Used flag of the cache entry determined as the deletion target entry. If the Used flag for a cache entry is off, the cache entry is free and usable. Turning off the Used flag of a deletion target entry that is in use corresponds to deleting the deletion target entry. By turning off the Used flag of a deletion target entry that is in use, the deletion target entry is deleted, the deletion target cache entry changes to a free entry, and a free entry is created.

制御部126は、空きエントリ(すなわち、ステップS111において存在した空きエントリ、又は、ステップS114において作成された空きエントリ)に、処理対象キーに適合するルールのキャッシュエントリを作成する(ステップS115)。具体的には、制御部126は、空きエントリであるキャッシュエントリのUsedフラグをオンに変更する。以下、ステップS115において作成されるキャッシュエントリを、新エントリと表記する。制御部126は、Usedフラグをオンに変更したキャッシュエントリ(すなわち、新エントリ)のTagフィールドに処理対象キーから取得したTagを設定する。言い換えると、制御部126は、新エントリのTagフィールドに、処理対象キーから取得したTagのデータを記録する。制御部126は、新エントリのCache dataフィールドに、処理対象ルールを設定する。言い換えると、制御部126は、新エントリのCache dataフィールドに、処理対象ルールの情報を記録する。制御部126は、新エントリのLRU情報として、新エントリのindexが示す他のキャッシュエントリの最後の更新の時期よりも、更新が新しいことを示すLRU情報を設定する。また、制御部126は、処理対象パケットのパケット長が閾値以下の場合、新エントリの優先フラグをオンに設定し、そうでない場合、新エントリの優先フラグをオフに設定する。 The control unit 126 creates a cache entry of a rule that matches the processing target key in the empty entry (that is, the empty entry existing in step S111 or the empty entry created in step S114) (step S115). Specifically, the control unit 126 turns on the Used flag of the cache entry that is an empty entry. Hereinafter, the cache entry created in step S115 will be referred to as a new entry. The control unit 126 sets the Tag acquired from the processing target key in the Tag field of the cache entry (that is, the new entry) whose Used flag is turned on. In other words, the control unit 126 records the Tag data obtained from the target key in the Tag field of the new entry. The control unit 126 sets the processing target rule in the Cache data field of the new entry. In other words, the control unit 126 records the information of the processing target rule in the Cache data field of the new entry. The control unit 126 sets, as the LRU information of the new entry, LRU information indicating that the update is newer than the time of the last update of another cache entry indicated by the index of the new entry. If the packet length of the processing target packet is equal to or less than the threshold value, the control unit 126 sets the priority flag of the new entry to ON, and otherwise sets the priority flag of the new entry to OFF.

図8は、本実施形態の情報処理装置100の、キャッシュエントリを更新する動作の例を表すフローチャートである。図8に示す動作は、図6に示すステップS107における動作の例である。 FIG. 8 is a flow chart showing an example of the operation of updating the cache entry of the information processing apparatus 100 of this embodiment. The operation shown in FIG. 8 is an example of the operation in step S107 shown in FIG.

図8のフローチャートを用いて、上記ステップS107における情報処理装置100の動作の例について説明する。以下では、図8に示す動作は、制御部126による動作であるとして説明する。なお、図8に示す動作の全部又は一部を、キャッシュ部122が行ってもよい。 An example of the operation of the information processing apparatus 100 in step S107 will be described with reference to the flowchart of FIG. Below, the operation shown in FIG. 8 will be described as the operation by the control unit 126 . All or part of the operations shown in FIG. 8 may be performed by the cache unit 122 .

制御部126は、ステップS102において見つかったエントリ(すなわち、パケット処理部121から受け取ったキーに適合するルールがキャッシュされているエントリ)のLRU情報を更新する(ステップS120)。ステップS102において見つかったエントリを、処理対象エントリと表記する。ステップS120において、具体的には、制御部126は、処理対象エントリのindexが示す他のキャッシュエントリが最後に使用された時期よりも新しい時期を示すLRU情報を、処理対象エントリのLRU情報に設定する。その際、制御部126は、処理対象エントリのindexが示す他のキャッシュエントリのLRU情報も合わせて変更してもよい。 The control unit 126 updates the LRU information of the entry found in step S102 (that is, the entry in which the rule matching the key received from the packet processing unit 121 is cached) (step S120). The entry found in step S102 is referred to as an entry to be processed. Specifically, in step S120, the control unit 126 sets, in the LRU information of the entry to be processed, LRU information indicating the time when another cache entry indicated by the index of the entry to be processed was last used. do. At that time, the control unit 126 may also change the LRU information of other cache entries indicated by the index of the entry to be processed.

制御部126は、処理対象パケットのパケット長が閾値以下であるか否かを確認する(ステップS121)。 The control unit 126 confirms whether or not the packet length of the packet to be processed is equal to or less than the threshold (step S121).

パケット長が閾値以下である場合(ステップS121においてYES)、制御部126は、処理対象エントリの優先フラグをオンに設定する(ステップS122)。 If the packet length is equal to or less than the threshold (YES in step S121), control unit 126 sets the priority flag of the processing target entry to ON (step S122).

パケット長が閾値より大きい場合(ステップS121においてNO)、制御部126は、処理対象エントリの優先フラグをオフに設定する(ステップS123)。 If the packet length is greater than the threshold (NO in step S121), the control unit 126 sets the priority flag of the entry to be processed to off (step S123).

<<<(B)パケット送信処理>>>
図9は、本実施形態の情報処理装置100の、受信したパケットを送信する動作の例を表すフローチャートである。
<<<(B) Packet transmission process>>>
FIG. 9 is a flow chart showing an example of the operation of the information processing apparatus 100 of this embodiment for transmitting a received packet.

図9のフローチャートを用いて、パケット処理部121がパケットを送信する際の情報処理装置100の動作について説明する。図9に示す動作は、例えば、ステップS108において、パケット処理部121が、”パケットを指定されたNIC部124または仮想NIC部111に送信する”処理を含むルールに基づきパケット処理を行った場合に開始され得る。例えば、ステップS108において、ルールに基づくパケット処理が、”パケットを指定されたNIC部124または仮想NIC部111に送信する”処理である場合に、図9に示す動作が開始される。 The operation of the information processing apparatus 100 when the packet processing unit 121 transmits a packet will be described with reference to the flowchart of FIG. The operation shown in FIG. 9 is performed, for example, in step S108 when the packet processing unit 121 performs packet processing based on a rule including a process of "transmitting the packet to the designated NIC unit 124 or virtual NIC unit 111". can be started. For example, in step S108, when the packet processing based on the rule is the processing of "transmitting the packet to the specified NIC unit 124 or virtual NIC unit 111", the operation shown in FIG. 9 is started.

パケット処理部121は、処理対象パケットの送信先が、仮想NIC部111のいずれかであるか否かを確認する(ステップS130)。 The packet processing unit 121 checks whether the destination of the packet to be processed is any of the virtual NIC units 111 (step S130).

処理対象パケットの送信先が仮想NIC部111ではない場合(ステップS130においてNO)、処理対象パケットの送信先は、NIC部124である。この場合、パケット処理部121は、NIC部124に処理対象パケットを送信する(ステップS131)。 If the destination of the packet to be processed is not the virtual NIC unit 111 (NO in step S130), the destination of the packet to be processed is the NIC unit . In this case, the packet processing unit 121 transmits the processing target packet to the NIC unit 124 (step S131).

処理対象パケットの送信先が仮想NIC部111のいずれかである場合(ステップS130においてYES)、パケット処理部121は、送信先である仮想NIC部111の識別子と、処理対象パケットとを、スケジューリング部123(具体的には、スケジューリング部123の受付部1234)に送出する。受付部1234は、受け取った識別子が示す仮想NIC部111に関連付けられているキュー部1233を選択する(ステップS132)。以下の説明において、ステップS132において選択されたキュー部1233を、選択されたキュー及び処理対象キューと表記する。 If the destination of the packet to be processed is one of the virtual NIC units 111 (YES in step S130), the packet processing unit 121 transmits the identifier of the virtual NIC unit 111, which is the destination, and the packet to be processed to the scheduling unit. 123 (specifically, the reception unit 1234 of the scheduling unit 123). The reception unit 1234 selects the queue unit 1233 associated with the virtual NIC unit 111 indicated by the received identifier (step S132). In the following description, the queue unit 1233 selected in step S132 is referred to as the selected queue and the queue to be processed.

受付部1234は、選択されたキュー(すなわち、処理対象キュー)がフルであるか否かを確認する(ステップS133)。 The reception unit 1234 confirms whether the selected queue (that is, the queue to be processed) is full (step S133).

処理対象キューがフルである場合(ステップS133においてYES)、受付部1234は、処理対象パケットを破棄する(ステップS134)。受付部1234は、破棄した処理対象パケットの識別子を、制御部126に送信してもよい。そして、情報処理装置100は、図9に示す動作を終了する。 If the processing target queue is full (YES in step S133), the reception unit 1234 discards the processing target packet (step S134). The receiving unit 1234 may transmit the identifier of the discarded packet to be processed to the control unit 126 . Then, the information processing apparatus 100 ends the operation shown in FIG.

処理対象キューがフルでない場合(ステップS133においてNO)、受付部1234は、処理対象パケットを処理対象キューにエンキューする(ステップS135)。そして、情報処理装置100は、図9に示す動作を終了する。 If the queue to be processed is not full (NO in step S133), the receiving unit 1234 enqueues the packet to be processed to the queue to be processed (step S135). Then, the information processing apparatus 100 ends the operation shown in FIG.

<<<(C)スケジューリング処理>>>
図10は、本実施形態の情報処理装置100の、スケジューリング処理を行う動作の例を表すフローチャートである。
<<<(C) Scheduling Process>>>
FIG. 10 is a flow chart showing an example of the operation of the information processing apparatus 100 of this embodiment for performing scheduling processing.

図10のフローチャートを用いて、情報処理装置100のスケジューリング部123が、パケット処理部121によって仮想NIC部111に向けて送信されたパケットのスケジューリング処理を行う際の動作について説明する。図10に示すスケジューリング処理は、例えば図9のステップS135においてエンキューされたパケットを、仮想NIC部111に向けて送信する動作を表す。 The operation when the scheduling unit 123 of the information processing apparatus 100 schedules packets transmitted to the virtual NIC unit 111 by the packet processing unit 121 will be described with reference to the flowchart of FIG. 10 . The scheduling process shown in FIG. 10 represents the operation of transmitting the packet enqueued in step S135 of FIG. 9 to the virtual NIC unit 111, for example.

スケジューリング部123の選択部1231は、処理の対象として、1つのキュー部1233を選択する(ステップS140)。選択部1231は、例えば、キュー部1233A、キュー部1233B、キュー部1233Cの順で、全てのキュー部1233を繰り返し選択してもよい。このようは選択の方法は、ラウンドロビンとも呼ばれる。図10に示す動作は、1つのキュー部1233を選択してから、選択したキュー部1233に対する処理が終了するまでの動作を表す。キュー部1233を選択するたびに、図10に示す動作が1回行われる。全てのキュー部1233を1つ1つ繰り返し選択する場合、情報処理装置100は、図10に示す動作を繰り返し行う。以下の説明では、選択したキュー部1233を、処理対象キューと表記する。 The selection unit 1231 of the scheduling unit 123 selects one queue unit 1233 as a processing target (step S140). The selection unit 1231 may, for example, repeatedly select all the queue units 1233 in the order of the queue unit 1233A, the queue unit 1233B, and the queue unit 1233C. This selection method is also called round robin. The operation shown in FIG. 10 represents the operation from selection of one queue section 1233 to completion of processing for the selected queue section 1233 . Each time the queue section 1233 is selected, the operation shown in FIG. 10 is performed once. When repeatedly selecting all the queue units 1233 one by one, the information processing apparatus 100 repeatedly performs the operation shown in FIG. In the following description, the selected queue section 1233 is referred to as a queue to be processed.

まず、選択部1231は、処理対象キューにパケットがあるか否かを確認する(ステップS141)。 First, the selection unit 1231 confirms whether or not there is a packet in the queue to be processed (step S141).

処理対象キューが空である場合、すなわち、処理対象キューにパケットが存在しない場合(ステップS141においてNO)、選択部1231は、処理対象キューの不足カウンタ値を0に設定する(ステップS147)。選択部1231は、処理対象キューに関連付けられている不足カウンタ部1232に記録されている不足カウンタ値を0に設定する。すなわち、選択部1231は、処理対象キューに関連付けられている不足カウンタ部1232に、不足カウンタ値として0を記録する。例えば、処理対象キューがキュー部1233Aである場合、不足カウンタ部1232Aが、処理対象キューに関連付けられている。この場合、選択部1231は、不足カウンタ部1232Aの不足カウンタ値を0に設定する。そして、情報処理装置100は、図10に示す動作を終了する。図10に示す動作を終了した後、情報処理装置100は、図10に示す動作を再び行い、再び行った図10に示す動作のステップS141において、別のキュー部1233を、処理対象キューとして選択してよい。 If the queue to be processed is empty, that is, if there are no packets in the queue to be processed (NO in step S141), the selection unit 1231 sets the shortage counter value of the queue to be processed to 0 (step S147). The selection unit 1231 sets 0 to the shortage counter value recorded in the shortage counter unit 1232 associated with the queue to be processed. That is, the selection unit 1231 records 0 as the shortage counter value in the shortage counter unit 1232 associated with the queue to be processed. For example, if the queue to be processed is the queue section 1233A, the shortage counter section 1232A is associated with the queue to be processed. In this case, the selection unit 1231 sets the shortage counter value of the shortage counter unit 1232A to zero. Then, the information processing apparatus 100 ends the operation shown in FIG. After completing the operation shown in FIG. 10, the information processing apparatus 100 performs the operation shown in FIG. 10 again, and in step S141 of the operation shown in FIG. You can

処理対象キューにパケットが存在する場合(ステップS141においてYES)、選択部1231は、処理対象キューに関連付けられている不足カウンタ部1232から不足カウンタ値を取得する(すなわち、読み出す)。選択部1231は、処理対象キューに割り当てられている所定値(すなわち、Quantamとも表記される、調整値)を、取得した不足カウンタ値に加算する(ステップS142)。選択部1231は、更新された不足カウンタ値(すなわち、読み出された不足カウンタ値と調整値との和)を、処理対象キューに関連付けられている不足カウンタ部1232に記録されている不足カウンタ値に設定する。すなわち、選択部1231は、更新された不足カウンタ値(すなわち、読み出された不足カウンタ値と調整値との和)を、処理対象キューに関連付けられている不足カウンタ部1232に、不足カウンタ値として記録する。 If there are packets in the queue to be processed (YES in step S141), the selection unit 1231 acquires (that is, reads) the shortage counter value from the shortage counter unit 1232 associated with the queue to be processed. The selection unit 1231 adds a predetermined value (that is, an adjustment value also written as Quant) assigned to the queue to be processed to the obtained shortage counter value (step S142). The selection unit 1231 selects the updated shortage counter value (that is, the sum of the read shortage counter value and the adjustment value) from the shortage counter value recorded in the shortage counter unit 1232 associated with the queue to be processed. set to That is, the selection unit 1231 supplies the updated shortage counter value (that is, the sum of the read shortage counter value and the adjustment value) to the shortage counter unit 1232 associated with the processing target queue as the shortage counter value. Record.

選択部1231は、処理対象キューの不足カウンタ値が、処理対象キューの先頭パケットの長さ以上であるか否かを確認する(ステップS143)。 The selection unit 1231 checks whether or not the shortage counter value of the queue to be processed is equal to or greater than the length of the head packet of the queue to be processed (step S143).

処理対象キューの不足カウンタ値が処理対象キューの先頭パケットのパケット長よりも小さい場合(ステップS143においてNO)、情報処理装置100は、図10に示す動作を終了する。 If the shortage counter value of the queue to be processed is smaller than the packet length of the head packet of the queue to be processed (NO in step S143), the information processing apparatus 100 ends the operation shown in FIG.

処理対象キューの不足カウンタ値が処理対象キューの先頭パケットのパケット長以上である場合(ステップS143においてYES)、選択部1231は、先頭パケットを送信することを決定する。そして、選択部1231は、処理対象キューに関連付けられている仮想NIC部111に、先頭パケットを送信する(ステップS144)。例えば、処理対象キューがキュー部1233Aである場合、選択部1231は、仮想NIC部111Aに、処理対象キューの先頭パケットを送信する。 If the shortage counter value of the processing target queue is greater than or equal to the packet length of the leading packet of the processing target queue (YES in step S143), the selection unit 1231 determines to transmit the leading packet. Then, the selection unit 1231 transmits the leading packet to the virtual NIC unit 111 associated with the processing target queue (step S144). For example, when the processing target queue is the queue unit 1233A, the selection unit 1231 transmits the head packet of the processing target queue to the virtual NIC unit 111A.

選択部1231は、処理対象キューの不足カウンタ値から、ステップS144において送信したパケットのパケット長を減算する(ステップS145)。選択部1231は、ステップS144において送信したパケットのパケット長を処理対象キューの不足カウンタ値から引いた値を、処理対象キューの新しい不足カウンタ値に設定する。選択部1231は、新しい不足カウンタ値を、処理対象キューに関連付けられている不足カウンタ部1232に記録する。 The selection unit 1231 subtracts the packet length of the packet transmitted in step S144 from the shortage counter value of the queue to be processed (step S145). The selection unit 1231 sets a value obtained by subtracting the packet length of the packet transmitted in step S144 from the shortage counter value of the queue to be processed as the new shortage counter value of the queue to be processed. The selection unit 1231 records the new shortage counter value in the shortage counter unit 1232 associated with the queue to be processed.

選択部1231は、処理対象キューにパケットが存在するか否かを確認する(ステップS146)。処理対象キューにパケットが存在する場合(ステップS146においてYES)、情報処理装置100の動作は、ステップS143に移行する。 The selection unit 1231 confirms whether or not there is a packet in the processing target queue (step S146). If there is a packet in the queue to be processed (YES in step S146), the operation of information processing apparatus 100 proceeds to step S143.

処理対象キューが空である場合、すなわち、処理対象キューにパケットが存在しない場合(ステップS146においてNO)、情報処理装置100の動作は、ステップS147に移行する。すなわち、選択部1231は、処理対象キューに関連付けられている不足カウンタ部1232に、不足カウンタ値として0を記録する。そして、情報処理装置100は、図10に示す動作を終了する。 If the queue to be processed is empty, that is, if there is no packet in the queue to be processed (NO in step S146), the operation of information processing apparatus 100 proceeds to step S147. That is, the selection unit 1231 records 0 as the shortage counter value in the shortage counter unit 1232 associated with the queue to be processed. Then, the information processing apparatus 100 ends the operation shown in FIG.

以上で詳細に説明したように、本実施の形態の情報処理装置100は、以下に示す構成を備え、それにより、以下で説明する効果が得られる。 As described in detail above, the information processing apparatus 100 of the present embodiment has the configuration described below, thereby obtaining the effects described below.

本実施の形態によれば、情報処理装置100は、メモリ102と仮想スイッチ用ハードウェア120と、それらを接続するバス103Bを備えるコンピュータ10により実現できる。情報処理装置100は、パケット処理方法を規定するルールの集合であるFIBを記憶するルール記憶部112を備える。ルール記憶部112は、メモリ102によって実現される。情報処理装置100は、FIBを参照しパケット処理方法を決定し処理するパケット処理部121を備える。パケット処理部121は、仮想スイッチ用ハードウェア120により実現される。即ち、情報処理装置100において、パケットの処理の際に行われる、データ系通信と制御系通信とが、バス103Bを共用する。情報処理装置100は、ルール記憶部112から取得したルールをキャッシュ部122にキャッシュする制御部126、および、QoS制御を行うスケジューリング部123を備える。キャッシュ部122は、仮想スイッチ用ハードウェア120により実現される。決定部125は、小さいパケットに関するルールを優先的にキャッシュとしてキャッシュ部122に記憶するよう決定する。 According to this embodiment, the information processing apparatus 100 can be realized by the computer 10 having the memory 102, the virtual switch hardware 120, and the bus 103B connecting them. The information processing apparatus 100 includes a rule storage unit 112 that stores FIB, which is a set of rules that define packet processing methods. Rule storage unit 112 is implemented by memory 102 . The information processing apparatus 100 includes a packet processing unit 121 that refers to the FIB to determine and process a packet processing method. The packet processing unit 121 is implemented by the virtual switch hardware 120 . That is, in the information processing apparatus 100, the data system communication and the control system communication performed during packet processing share the bus 103B. The information processing apparatus 100 includes a control unit 126 that caches rules acquired from the rule storage unit 112 in the cache unit 122, and a scheduling unit 123 that performs QoS control. The cache unit 122 is implemented by the virtual switch hardware 120 . The decision unit 125 decides to preferentially store rules relating to small packets in the cache unit 122 as a cache.

これにより、制御系通信(ルール記憶部112からのルールの読み出し)による、バス(すなわち、バス103B)の帯域の消費を削減することができる。小さいパケットの処理の回数は、大きいパケットの処理の回数に比べて、多く、小さいパケットは、多数の制御系通信を発生させることが知られている。そのため、小さいパケットを優先的にキャッシュすることによって、キャッシュを用いることによる帯域の消費を削減する効果を向上させることができる。 As a result, it is possible to reduce consumption of the bandwidth of the bus (that is, the bus 103B) due to control system communication (reading of rules from the rule storage unit 112). It is known that the number of times small packets are processed is greater than the number of times large packets are processed, and small packets generate a large number of control-related communications. Therefore, by preferentially caching small packets, it is possible to improve the effect of reducing bandwidth consumption by using the cache.

よって、本実施の形態によれば、パケットの処理にかかるデータ系通信と制御系通信とがバスを共用する場合であっても、QoS制御の精度の劣化を抑制できる。 Therefore, according to the present embodiment, even when data system communication and control system communication related to packet processing share a bus, deterioration in accuracy of QoS control can be suppressed.

なお、以上で説明した例では、スケジューリング部123は、パケット処理部121が仮想NIC部111に向け送信するパケットに対して、QoS制御を行う。QoS制御が行われるパケットは、以上の例に限定されない。スケジューリング部123は、例えば、パケット処理部121が仮想NIC部111から受信するパケットに対して、QoS制御を行ってもよい。 In the example described above, the scheduling unit 123 performs QoS control on the packets that the packet processing unit 121 transmits to the virtual NIC unit 111 . Packets subjected to QoS control are not limited to the above examples. The scheduling unit 123 may perform QoS control on packets that the packet processing unit 121 receives from the virtual NIC unit 111, for example.

また、以上で説明した例では、キャッシュ部122が記憶するキャッシュエントリの優先度は、1ビットの優先フラグによって表される。しかし、優先度を表す値は、優先フラグに限定されない。優先度は、例えば、複数ビットのカウンタ(以下、優先カウンタと表記)によって表されていてもよい。上で説明した本実施形態の情報処理装置100に対して、以下の変更を行うことによって、優先フラグの代わりに優先カウンタを使用する情報処理装置100を実現することができる。
(1)キャッシュエントリに、優先フラグの代わりに優先カウンタを記憶する。
(2)優先フラグをオンにする状況(例えば図8に示すステップS122)において、優先カウンタをインクリメントする。
(3)優先フラグをオフにする状況(例えば図8に示すステップS123)において、優先カウンタをデクリメントする。
(4)ステップS113における判断の条件として、“優先フラグがオフであるエントリの存在”の代わりに、“優先カウンタが所定の値以下であるエントリの存在”を用いる。
(5)ステップS114において、優先カウンタが所定の値以下であるエントリの中で、最後に使用された時期が最も古いエントリを、削除対象エントリに決定する。
Also, in the example described above, the priority of the cache entry stored by the cache unit 122 is represented by a 1-bit priority flag. However, the value representing priority is not limited to the priority flag. The priority may be represented by, for example, a multi-bit counter (hereinafter referred to as a priority counter). By making the following changes to the information processing apparatus 100 of this embodiment described above, the information processing apparatus 100 that uses a priority counter instead of a priority flag can be realized.
(1) Store a priority counter instead of a priority flag in the cache entry.
(2) In a situation where the priority flag is turned on (for example, step S122 shown in FIG. 8), the priority counter is incremented.
(3) Decrement the priority counter in a situation where the priority flag is turned off (for example, step S123 shown in FIG. 8).
(4) "Existence of an entry whose priority counter is equal to or less than a predetermined value" is used instead of "Existence of an entry whose priority flag is off" as a condition for determination in step S113.
(5) In step S114, among the entries whose priority counter is less than or equal to a predetermined value, the entry with the oldest time of last use is determined as the entry to be deleted.

上述の「所定の値」は、0であってもよい。また、優先カウンタの値は、マイナスにならないように制御されていてもよい。その場合、「優先カウンタが所定の値以下であるエントリ」は、優先カウンタが0であるエントリになる。 The "predetermined value" mentioned above may be zero. Also, the value of the priority counter may be controlled so as not to become negative. In this case, "an entry whose priority counter is less than or equal to a predetermined value" is an entry whose priority counter is zero.

<第2の実施形態>
本発明の第2の実施形態では、情報処理装置100のスケジューリング部123は、パケット処理に伴い発生するオーバヘッド(すなわち、制御系通信によるバス消費)を考慮してQoS制御を行うことによって、QoS制御の精度の劣化を抑止する。オーバヘッドは、通信の負荷と言い換えることもできる。
<Second embodiment>
In the second embodiment of the present invention, the scheduling unit 123 of the information processing device 100 performs QoS control in consideration of the overhead (that is, bus consumption due to control system communication) that occurs with packet processing. to suppress the deterioration of the accuracy of The overhead can also be rephrased as communication load.

以下では、本実施形態について図面を参照して詳細に説明する。なお、本実施形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。 Below, this embodiment will be described in detail with reference to the drawings. In each drawing referred to in the description of this embodiment, the same reference numerals are assigned to the same configurations and steps that operate in the same manner as in the first embodiment of the present invention, and the detailed description in this embodiment omitted.

<<第2の実施形態の構成例>>
本実施形態の情報処理装置100の構成は、以下の差分を除き、図2~図5を用いて説明した第1の実施の形態の情報処理装置100の構成と同様である。
<<Configuration Example of Second Embodiment>>
The configuration of the information processing apparatus 100 of this embodiment is the same as the configuration of the information processing apparatus 100 of the first embodiment described using FIGS. 2 to 5, except for the following differences.

本実施形態の制御部126は、ルールの情報に加えて、そのルールがキャッシュヒットしたか否かを表す情報(すなわち、そのルールの情報がキャッシュ部122から読み出されたか否かを表す情報)を、パケット処理部121に送信する。 In addition to the rule information, the control unit 126 of the present embodiment stores information indicating whether or not the rule has a cache hit (that is, information indicating whether or not the rule information has been read from the cache unit 122). is transmitted to the packet processing unit 121 .

パケット処理部121は、制御部126から、ルールの情報に加えて、そのルールがキャッシュヒットしたか否かを表す情報を受け取る。ルールに基づくパケットの処理が、仮想NIC部111への送信である場合、パケット処理部121は、パケットに加えて、そのパケットの処理に使用されたルールがキャッシュヒットしたか否かを表す情報を、スケジューリング部123に送信する。この場合、パケット処理部121は、具体的には、パケットと、そのパケットの処理に使用されたルールがキャッシュヒットしたか否かを表す情報を、スケジューリング部123の受付部1234に送信する。 The packet processing unit 121 receives, from the control unit 126, information indicating whether or not the rule is a cache hit in addition to the rule information. When the processing of a packet based on a rule is transmission to the virtual NIC unit 111, the packet processing unit 121 stores, in addition to the packet, information indicating whether or not the rule used to process the packet hits the cache. , to the scheduling unit 123 . In this case, the packet processing unit 121 specifically transmits the packet and information indicating whether or not the rule used to process the packet hits the cache to the receiving unit 1234 of the scheduling unit 123 .

受付部1234は、パケットに加えて、そのパケットの処理に使用されたルールがキャッシュヒットしたか否かを表す情報を、キュー部1233に格納する。 The receiving unit 1234 stores in the queue unit 1233, in addition to the packet, information indicating whether or not the rule used to process the packet hits the cache.

本実施形態のキュー部1233は、パケットに加えて、パケット処理部121によるそのパケットの処理使用されたルールがキャッシュヒットしたか否かを表わす情報も記憶する。 In addition to the packet, the queue unit 1233 of this embodiment also stores information indicating whether or not the rule used for processing the packet by the packet processing unit 121 has hit the cache.

選択部1231は、さらに、キュー部1233に格納されている先頭パケットに適合するルールの、ルール記憶部112からの読み出しに係るオーバヘッドの値に基づいて、先頭パケットを仮想NIC部111に送信するか否かを決定する。 The selecting unit 1231 further determines whether to transmit the leading packet to the virtual NIC unit 111 based on the value of the overhead associated with reading from the rule storage unit 112 of the rule that matches the leading packet stored in the queue unit 1233. Decide whether or not

<<第2の実施の形態の動作例>>
次に、本実施形態の情報処理装置100における以下の動作の例について、図面を参照しながら詳細に説明する。
(A)受信したパケットの処理。
(B)パケットを送信する処理。
(C)スケジューリングの処理。
<<Operation example of the second embodiment>>
Next, an example of the following operation in the information processing apparatus 100 of this embodiment will be described in detail with reference to the drawings.
(A) Processing received packets.
(B) Processing for transmitting packets.
(C) Scheduling processing.

<<<(A)受信したパケットの処理>>>
図6は、本実施形態の情報処理装置100の、受信したパケットを処理する動作を表すフローチャートである。本実施形態の情報処理装置100の、受信したパケットを処理する動作(すなわち、パケット処理部121がパケットを受信した際の動作)は、第1の実施形態の情報処理装置100の、受信したパケットを処理する動作と同様である。
<<<(A) Processing of received packets>>>
FIG. 6 is a flowchart showing the operation of processing received packets of the information processing apparatus 100 of this embodiment. The operation of the information processing apparatus 100 of this embodiment for processing a received packet (that is, the operation when the packet processing unit 121 receives a packet) is the same as that of the information processing apparatus 100 of the first embodiment for processing a received packet. is similar to the operation of processing

本実施形態の制御部126は、例えばステップS102における、パケット処理部121からの、受信したパケットに適合するルールの要求に対して、ルールがキャッシュヒットしたか否かを表す情報を含めてよい。制御部126は、例えば、ステップS104において、ルール記憶部112から取得したルールに加えて、ルールがキャッシュヒットしなかったことを表す情報を、パケット処理部121に送信してもよい。制御部126は、例えば、ステップS107において、キャッシュ部122から読み出したルールに加えて、ルールがキャッシュヒットしたことを表す情報を、パケット処理部121に送信してもよい。 The control unit 126 of the present embodiment may include information indicating whether or not the rule is a cache hit in response to a request for a rule matching the received packet from the packet processing unit 121 in step S102, for example. For example, in step S104, in addition to the rule acquired from the rule storage unit 112, the control unit 126 may transmit to the packet processing unit 121 information indicating that the rule did not hit the cache. For example, in step S107, the control unit 126 may transmit to the packet processing unit 121, in addition to the rule read from the cache unit 122, information indicating that the rule has hit the cache.

<<<(B)パケットを送信する処理>>>
図11は、本実施形態の情報処理装置100の、受信したパケットを送信する処理の例を表すフローチャートである。
<<<(B) Process for sending packets>>>
FIG. 11 is a flow chart showing an example of processing for transmitting a received packet of the information processing apparatus 100 of this embodiment.

図11に示すフローチャートを用いて、本実施形態の情報処理装置100の、パケット処理部121がパケットを送信する動作について説明する。図11に示す動作は、例えば、ステップS108において、パケット処理部121が、”パケットを指定されたNIC部124または仮想NIC部111に送信する”処理を含むルールに基づきパケット処理を行った場合に、開始され得る。例えば、ステップS108において、ルールに基づくパケット処理が、”パケットを指定されたNIC部124または仮想NIC部111に送信する”処理である場合に、図11に示す動作が開始される。以下では、主に、パケットを送信する動作の、図9に示す第1の実施形態の情報処理装置100と、本実施形態の情報処理装置100との間の相違点について説明する。パケットを送信する場合に、本実施形態の情報処理装置100は、以下で説明される相違点を除いて、第1の実施形態の情報処理装置のパケットを送信する動作と同じ動作を行う。 The operation of transmitting a packet by the packet processing unit 121 of the information processing apparatus 100 of this embodiment will be described using the flowchart shown in FIG. For example, the operation shown in FIG. , can be started. For example, in step S108, when the packet processing based on the rule is "transmitting the packet to the specified NIC unit 124 or virtual NIC unit 111", the operation shown in FIG. 11 is started. Differences between the information processing apparatus 100 of the first embodiment shown in FIG. 9 and the information processing apparatus 100 of the present embodiment will be mainly described below in the operation of transmitting packets. When transmitting a packet, the information processing apparatus 100 of the present embodiment performs the same operation as the packet transmitting operation of the information processing apparatus of the first embodiment, except for differences described below.

パケットの宛先が仮想NIC部111のいずれかである場合(ステップS130においてYES)、パケット処理部121は、パケットをスケジューリング部123の受付部1234に渡す。本実施形態のパケット処理部121は、パケットに加えて、制御部126から得た、そのパケットに適合するルールがキャッシュヒットしたか否かを表す情報も、スケジューリング部123の受付部1234に渡す。受付部1234は、パケット処理部121から、パケットと、そのパケットに適合するルールがキャッシュヒットしたか否かを表す情報とを受け取る。受付部1234がパケット処理部121から受け取ったパケットを、処理対象パケットと表記する。図11の説明において、処理対象パケットは、受付部1234がパケット処理部121から受け取ったパケットを表す。 If the destination of the packet is one of the virtual NIC units 111 (YES in step S 130 ), the packet processing unit 121 passes the packet to the receiving unit 1234 of the scheduling unit 123 . In addition to the packet, the packet processing unit 121 of this embodiment passes information obtained from the control unit 126 indicating whether or not the rule matching the packet has hit the cache to the receiving unit 1234 of the scheduling unit 123 . The receiving unit 1234 receives from the packet processing unit 121 a packet and information indicating whether or not a rule matching the packet has hit the cache. A packet received by the reception unit 1234 from the packet processing unit 121 is referred to as a processing target packet. In the description of FIG. 11 , a processing target packet represents a packet received by the reception unit 1234 from the packet processing unit 121 .

ステップS132において選択された処理対象キューがフルであった場合(ステップS133においてYES)、受付部1234は、受信したパケットから、パケットヘッダの値である、キー(すなわち、処理対象キー)を作成する(ステップS236)。処理対象キーは、ルールに含まれるマッチ条件に適合するか判定するための情報である。受付部1234によって作成される処理対象キーは、パケット処理部121によって作成される処理対象キーと同じでよい。受付部1234は、ステップS236において処理対象キーを生成するのではなく、パケット処理部121から処理対象キーを受け取ってもよい。例えば、パケットの宛先が仮想NICのいずれかである場合に(ステップS130においてYES)、パケット処理部121は、パケット(すなわち、処理対象パケット)と、処理対象キーとを、受付部1234に送信してもよい。受付部1234は、処理対象パケットに加えて、処理対象キーを、パケット処理部121から受け取ってもよい。ステップS236において、受付部1234は、処理対象パケットの処理対象キーをパケット処理部121から受け取ってもよい。具体的には、受付部1234は、処理対象パケットの処理対象キーの送信を、パケット処理部121に要求してもよい。パケット処理部121は、受付部1234から処理対象パケットの処理対象キーの要求を受け取ると、要求された、処理対象パケットの処理対象キーを受付部1234に送信してもよい。そして、受付部1234は、処理対象パケットの処理対象キーをパケット処理部121から受け取ってもよい。 If the processing target queue selected in step S132 is full (YES in step S133), the receiving unit 1234 creates a key (that is, processing target key) that is the value of the packet header from the received packet. (Step S236). The processing target key is information for determining whether the match condition included in the rule is met. The processing target key created by the reception unit 1234 may be the same as the processing target key created by the packet processing unit 121 . The receiving unit 1234 may receive the processing target key from the packet processing unit 121 instead of generating the processing target key in step S236. For example, when the destination of the packet is one of the virtual NICs (YES in step S130), the packet processing unit 121 transmits the packet (that is, the processing target packet) and the processing target key to the reception unit 1234. may The receiving unit 1234 may receive a processing target key from the packet processing unit 121 in addition to the processing target packet. In step S<b>236 , the reception unit 1234 may receive the processing target key of the processing target packet from the packet processing unit 121 . Specifically, the reception unit 1234 may request the packet processing unit 121 to transmit the processing target key of the processing target packet. Upon receiving the request for the processing target key of the processing target packet from the receiving unit 1234 , the packet processing unit 121 may transmit the requested processing target key of the processing target packet to the receiving unit 1234 . Then, the reception unit 1234 may receive the processing target key of the processing target packet from the packet processing unit 121 .

受付部1234は、処理対象パケットの、処理対象キーおよびパケット長を、制御部126に送信する。制御部126は、スケジューリング部123(具体的には、受付部1234)から、処理対象パケットの、処理対象キーおよびパケット長を受け取る。そして、制御部126は、キャッシュ部122において、受け取った処理対象キーに適合するルールのキャッシュエントリの探索を実施する(ステップS237)。例えば、受け取った、処理対象パケットのパケット長が、上述の閾値より大きい場合、制御部126は、処理対象キーに適合するルールのキャッシュエントリは存在しないと判定してもよい。制御部126は、受け取ったパケット長が上述の閾値以下である場合に、受け取った処理対象キーに適合するルールのキャッシュエントリの探索を実施してもよい。 The reception unit 1234 transmits the processing target key and the packet length of the processing target packet to the control unit 126 . The control unit 126 receives the processing target key and the packet length of the processing target packet from the scheduling unit 123 (specifically, the receiving unit 1234). Then, the control unit 126 searches the cache unit 122 for a cache entry of a rule matching the received key to be processed (step S237). For example, if the packet length of the received packet to be processed is greater than the above threshold, the control unit 126 may determine that there is no cache entry for a rule that matches the key to be processed. The control unit 126 may search for a cache entry of a rule matching the received key to be processed when the length of the received packet is equal to or less than the above threshold.

ステップS237における探索の結果、処理対象キーに適合するルールのキャッシュエントリが存在しなかった場合(ステップS238においてNO)、情報処理装置100の動作は、ステップS134に移行する。 As a result of the search in step S237, if there is no cache entry of a rule matching the processing target key (NO in step S238), the operation of information processing apparatus 100 proceeds to step S134.

ステップS237における探索の結果、処理対象キーに適合するルールのキャッシュエントリが存在した場合、制御部126は、キャッシュ部122に格納されている、見つかったキャッシュエントリの優先フラグを、オンに設定する(ステップS239)。 As a result of the search in step S237, if there is a cache entry with a rule that matches the processing target key, the control unit 126 sets the priority flag of the found cache entry stored in the cache unit 122 to ON ( step S239).

処理対象キューがフルでない場合(ステップS133においてNO)、受付部1234は、処理対象パケットを処理対象キューにエンキューする(ステップS235)。その際、受付部1234は、パケット処理部121から受け取った、処理対象パケットに適合するルールがキャッシュヒットしたか否かを表す情報も処理対象キューにエンキューする。 If the queue to be processed is not full (NO in step S133), the receiving unit 1234 enqueues the packet to be processed to the queue to be processed (step S235). At that time, the reception unit 1234 also enqueues information indicating whether or not the rule matching the processing target packet, which is received from the packet processing unit 121, has hit the cache to the processing target queue.

<<<(C)スケジューリングの処理>>>
図12は、本実施形態の情報処理装置100の、スケジューリングの処理を行う動作の例を表すフローチャートである。
<<<(C) Scheduling process>>>
FIG. 12 is a flow chart showing an example of the operation of the information processing apparatus 100 of this embodiment for performing scheduling processing.

図12のフローチャートを用いて、本実施形態の情報処理装置100のスケジューリング部123が、パケット処理部121によって仮想NIC部111に向け送信されるパケットのスケジューリング処理を行う際の動作について説明する。以下では、主に、本実施形態のスケジューリング部123と、第1の実施形態のスケジューリング部123との間の、スケジューリングの処理の動作における相違点を説明する。なお、本実施形態の情報処理装置100は、スケジューリングの処理を行う際に、以下で説明する相違点を除いて、第1の実施形態の情報処理装置100の動作と同じ動作を行う。 The operation of the scheduling unit 123 of the information processing apparatus 100 according to the present embodiment when performing scheduling processing for packets transmitted to the virtual NIC unit 111 by the packet processing unit 121 will be described with reference to the flowchart of FIG. 12 . In the following, mainly differences in operation of scheduling processing between the scheduling unit 123 of this embodiment and the scheduling unit 123 of the first embodiment will be described. It should be noted that the information processing apparatus 100 of the present embodiment performs the same operation as the information processing apparatus 100 of the first embodiment except for the differences described below when performing scheduling processing.

ステップS140からステップS142までの動作は、図9に示す、第1の実施形態のステップS140からステップS142までの動作と同じである。 The operations from step S140 to step S142 are the same as the operations from step S140 to step S142 of the first embodiment shown in FIG.

次に、選択部1231は、処理対象パケットに適合するルールがキャッシュヒットしたか否かを示す情報に基づいて、オーバヘッドを示す値(以下の説明では、単にオーバヘッドとも表記する)を決定する。以下のステップS243の説明において、オーバヘッドを示す値は、単に「オーバヘッド」とも表記される。処理対象パケットに適合するルールがキャッシュヒットしたか否かを示す情報は、キャッシュヒット情報と表記される。 Next, the selection unit 1231 determines a value indicating overhead (in the following description, simply referred to as overhead) based on information indicating whether or not a rule matching the target packet has hit the cache. In the following description of step S243, the value indicating overhead is also simply referred to as "overhead". Information indicating whether or not a rule matching a packet to be processed has hit the cache is referred to as cache hit information.

選択部1231は、処理対象キューの不足カウンタ値が、処理対象キューの先頭パケットのパケット長と決定したオーバヘッドとを加算した値以上であるか否かを確認する(ステップS243)。上述のキャッシュヒット情報が、処理対象パケットに適合するルールがキャッシュヒットしたことを示す場合、選択部1231は、オーバヘッドとして、0を用いる。言い換えると、選択部1231は、オーバヘッドを0に決定する。パケット処理部121による当該パケットの処理の際に、キャッシュヒットした場合には0を、上述のキャッシュヒット情報が、処理対象パケットに適合するルールがキャッシュヒットしなかったことを示す場合、選択部1231は、オーバヘッドとして、所定の値を用いる。言い換えると、選択部1231は、オーバヘッドを所定の値に決定する。所定の値は、予め求められた、ルールの平均サイズ、又は、ルール記憶部112へのアクセスに必要なバスの帯域の平均消費量等であってもよい。 The selection unit 1231 confirms whether or not the shortage counter value of the queue to be processed is equal to or greater than the sum of the packet length of the head packet of the queue to be processed and the determined overhead (step S243). If the cache hit information described above indicates that a rule matching the packet to be processed has hit the cache, the selection unit 1231 uses 0 as overhead. In other words, the selection unit 1231 determines 0 as the overhead. When the packet is processed by the packet processing unit 121, 0 is set when there is a cache hit. uses a predetermined value as overhead. In other words, selection section 1231 determines the overhead to be a predetermined value. The predetermined value may be an average rule size, an average bandwidth consumption of the bus necessary for accessing the rule storage unit 112, or the like, which is obtained in advance.

スケジューリング部123は、オーバヘッドを、ルールのサイズに基づいて決定してもよい。その場合、パケット処理部121は、例えば処理対象パケットをスケジューリング部123に送信する際、その処理対象パケットに適合するルールのサイズを、スケジューリング部123に送信してもよい。スケジューリング部123は、オーバヘッドを、ルール記憶部112からルールを読み出した際のバスの帯域の消費量に決定してもよい。この場合、例えば制御部126が、ルール記憶部112からルールを読み出した際のバスの帯域の消費量を導出し、導出した消費量を、パケット処理部121に送信してもよい。パケット処理部121は、制御部126から消費量を受信し、受信した消費量を、スケジューリング部123に送信してもよい。これらの場合、例えば、キャッシュヒット情報(すなわち、処理対象パケットに適合するルールがキャッシュヒットしたか否かを示す情報)が、オーバヘッドとして設定される値であってもよい。キャッシュヒット情報は、例えば、バスを介して読み出されたルールのサイズ、又は、ルールの読み出しの際のバスの帯域の消費量等であってもよい。その場合、キャッシュヒット情報の値が0である場合、キャッシュヒット情報は、パケットに適合するルールがキャッシュヒットしたことを表す。キャッシュヒット情報の値が0以外の値である場合、キャッシュヒット情報は、パケットに適合するルールがキャッシュヒットしなかったことを表す。スケジューリング部123は、以上の例によらずに、オーバヘッドを決定してもよい。 The scheduling unit 123 may determine the overhead based on the rule size. In that case, for example, when transmitting a packet to be processed to the scheduling unit 123 , the packet processing unit 121 may transmit to the scheduling unit 123 the size of the rule that matches the packet to be processed. The scheduling unit 123 may determine the overhead as the bandwidth consumption of the bus when the rule is read from the rule storage unit 112 . In this case, for example, the control unit 126 may derive the consumed amount of the bandwidth of the bus when the rule is read from the rule storage unit 112 and transmit the derived consumed amount to the packet processing unit 121 . The packet processing unit 121 may receive the consumption amount from the control unit 126 and transmit the received consumption amount to the scheduling unit 123 . In these cases, for example, cache hit information (that is, information indicating whether or not a rule matching the target packet has hit the cache) may be a value set as overhead. The cache hit information may be, for example, the size of the rule read via the bus, or the bandwidth consumption of the bus when reading the rule. In that case, if the value of the cache hit information is 0, the cache hit information indicates that the rule matching the packet has hit the cache. If the value of the cache hit information is a value other than 0, the cache hit information indicates that the rule matching the packet did not hit the cache. The scheduling section 123 may determine the overhead regardless of the above examples.

不足カウンタの値が、処理対象パケットのパケット長とオーバヘッドとの和より小さい場合(ステップS243においてNO)、情報処理装置100は、図12に示す動作を終了する。 If the value of the shortage counter is smaller than the sum of the packet length of the packet to be processed and the overhead (NO in step S243), information processing apparatus 100 ends the operation shown in FIG.

不足カウンタの値が、処理対象パケットのパケット長とオーバヘッドとの和以上である場合(ステップS243においてYES)、選択部1231は、処理対象キューから先頭パケットを読み出す。選択部1231は、読み出した先頭パケットを、処理対象キューに関連付けられている仮想NIC部111に送信する(ステップS144)。 If the value of the shortage counter is greater than or equal to the sum of the packet length of the packet to be processed and the overhead (YES in step S243), the selection unit 1231 reads the head packet from the queue to be processed. The selection unit 1231 transmits the read first packet to the virtual NIC unit 111 associated with the processing target queue (step S144).

次に、選択部1231は、処理対象キューの不足カウンタ値から、ステップS144において送信したパケットのパケット長と、オーバヘッドの値とを減算する(ステップS245)。選択部1231は、処理対象キューに関連付けられている不足カウンタ部1232に、処理対象キューの不足カウンタ値から、送信されたパケットのパケット長とオーバヘッドの値とを減算した値を、新たな不足カウント値として格納する。 Next, the selection unit 1231 subtracts the packet length of the packet transmitted in step S144 and the overhead value from the shortage counter value of the queue to be processed (step S245). The selection unit 1231 assigns a value obtained by subtracting the packet length of the transmitted packet and the overhead value from the shortage counter value of the processing target queue to the shortage counter unit 1232 associated with the processing target queue as a new shortage count. Store as a value.

本実施形態のステップS146及びステップS147の動作は、第1の実施形態のステップS146及びステップS147の動作と同じである。 The operations of steps S146 and S147 of this embodiment are the same as those of steps S146 and S147 of the first embodiment.

以上で詳細に説明したように、本実施の形態においては、スケジューリング部123は、パケットの処理に伴って発生するオーバヘッド(すなわち、制御系通信によるバスの消費)を考慮してQoS制御を行う。また、制御部126は、スケジューリング部123によって破棄されたパケットに関するルールを優先的にキャッシュとしてキャッシュ部122に記憶する。これによって、QoS制御の精度の劣化を抑制できる。 As described in detail above, in the present embodiment, the scheduling unit 123 performs QoS control in consideration of overhead (that is, bus consumption due to control system communication) that occurs with packet processing. In addition, the control unit 126 preferentially caches rules regarding packets discarded by the scheduling unit 123 and stores them in the cache unit 122 . This makes it possible to suppress deterioration in accuracy of QoS control.

(第2の実施形態の変形例)
以上の説明では、ステップS243およびステップS245において使用されるオーバヘッドは、固定値(すなたち、バス103Bの状態によって変化しない値)である。しかし、オーバヘッドは、以上の例に限定されない。
(Modification of Second Embodiment)
In the above description, the overhead used in steps S243 and S245 is a fixed value (that is, a value that does not change with the state of bus 103B). However, the overhead is not limited to the above examples.

選択部1231は、例えば、バス103Bの状態に応じて動的にオーバヘッドを決定してもよい。具体的には、選択部1231は、例えば、以下のようにオーバヘッドを決定してもよい。 The selector 1231 may, for example, dynamically determine the overhead according to the state of the bus 103B. Specifically, the selection unit 1231 may determine overhead as follows, for example.

例えば、制御部126が、バス103Bの性能を測定する機能を備えていてよい。バス103Bの性能は、例えば、利用率であってよい。制御部126は、得られた、バス103Bの利用率を、スケジューリング部123(具多的には、選択部1231)に送信してよい。 For example, the control section 126 may have a function of measuring the performance of the bus 103B. The performance of bus 103B may be, for example, utilization. The control unit 126 may transmit the obtained utilization rate of the bus 103B to the scheduling unit 123 (specifically, the selection unit 1231).

選択部1231は、バス103Bの利用率を、例えば制御部126から受け取り、受け取った利用率に基づいて、オーバヘッドの値を決定してよい。 The selection unit 1231 may receive the utilization rate of the bus 103B, for example, from the control unit 126, and determine the overhead value based on the received utilization rate.

選択部1231は、例えば、受け取った利用率が所定の閾値未満である場合、オーバヘッドの値が第1の値になり、受け取った利用率が所定の閾値以上である場合、オーバヘッドの値が第2の値になるよう、オーバヘッドの値を切り替えてもよい。 For example, when the received utilization rate is less than a predetermined threshold, the selection unit 1231 sets the overhead value to the first value, and when the received utilization rate is equal to or higher than the predetermined threshold value, sets the overhead value to the second value. The value of the overhead may be switched so that the value of

選択部1231は、例えば、予め定められている、利用率の範囲とその範囲に関連付けられているオーバヘッドの値との組を複数含むテーブルに基づいて、オーバヘッドの値を切り替えてもよい。選択部1231は、例えば、テーブルにおいて、受け取った利用率を含む、利用率の範囲に関連付けられているオーバヘッドの値を、使用するオーバヘッドの値に決定してもよい。 The selection unit 1231 may switch overhead values based on, for example, a predetermined table including a plurality of sets of utilization rate ranges and overhead values associated with the ranges. The selection unit 1231 may, for example, determine the overhead value associated with the utilization rate range including the received utilization rate in the table as the overhead value to be used.

選択部1231は、利用率を入力とする、予め定められた関数を使用して、オーバヘッドの値を決定してもよい。選択部1231は、得られた利用率を入力として、上述の関数の出力値を算出し、算出した出力値をオーバヘッドの値に決定してもよい。 The selector 1231 may determine the overhead value using a predetermined function that takes the utilization rate as an input. The selection unit 1231 may use the obtained utilization rate as an input, calculate the output value of the above function, and determine the calculated output value as the overhead value.

<第3の実施形態>
<<第3の実施形態の構成>>
次に、本発明の第3の実施形態について、図面を参照して詳細に説明する。
<Third Embodiment>
<<Configuration of the Third Embodiment>>
Next, a third embodiment of the present invention will be described in detail with reference to the drawings.

図14は、本実施形態に係る情報処理装置500の構成の例を表すブロック図である。 FIG. 14 is a block diagram showing an example of the configuration of an information processing device 500 according to this embodiment.

図14に示す例では、情報処理装置500は、決定部125と、制御部126とを含む。制御部126は、キャッシュ部122にアクセス可能に接続されていてよい。決定部125は、データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ部122に格納するか否かの決定を、前記データのサイズに基づいて行う。制御部126は、格納すると決定された前記ルールの前記キャッシュ部122への格納を行う。キャッシュ部122は、ルールを記憶する。本実施形態のデータは、第1及び第2の実施形態のパケットに相当する。本実施形態の通信経路は、第1の実施形態のバス103Bに相当する。 In the example illustrated in FIG. 14 , the information processing device 500 includes a determination section 125 and a control section 126 . The control unit 126 may be connected to the cache unit 122 so as to be accessible. The determining unit 125 indicates at least one of a plurality of types of processing including transfer for data, and determines whether to store in the cache unit 122 a rule read out via a communication path used for transferring the data. A decision is made based on the size of the data. The control unit 126 stores the rule determined to be stored in the cache unit 122 . The cache unit 122 stores rules. The data of this embodiment correspond to the packets of the first and second embodiments. The communication path of this embodiment corresponds to the bus 103B of the first embodiment.

<<第3の実施形態の動作>>
次に、本実施形態に係る情報処理装置500の動作について、図面を参照して詳細に説明する。
<<Operation of Third Embodiment>>
Next, the operation of the information processing apparatus 500 according to this embodiment will be described in detail with reference to the drawings.

図15は、本実施形態に係る情報処理装置500の動作の例を表すフローチャートである。 FIG. 15 is a flow chart showing an example of the operation of the information processing device 500 according to this embodiment.

まず、決定部125が、データに対する処理を示すルールを、キャッシュ部122に格納するか否かを、データのサイズに基づいて決定する(ステップS500)。言い換えると、決定部125が、データに適合するルールを、キャッシュ部122に格納するか否かを、データのサイズに基づいて決定する。決定部125が、ルールをキャッシュ部122に格納すると決定した場合(ステップS501においてYES)、制御部126は、ルールをキャッシュ部122に格納する(ステップS502)。決定部125が、ルールをキャッシュ部122に格納しないと決定した場合(ステップS501においてNO)、制御部126は、ルールをキャッシュ部122に格納せず、図15に示す動作は終了する。 First, the determination unit 125 determines whether to store a rule indicating processing for data in the cache unit 122 based on the size of the data (step S500). In other words, the determination unit 125 determines whether to store a rule that matches the data in the cache unit 122 based on the size of the data. When determining unit 125 determines to store the rule in cache unit 122 (YES in step S501), control unit 126 stores the rule in cache unit 122 (step S502). When determining unit 125 determines not to store the rule in cache unit 122 (NO in step S501), control unit 126 does not store the rule in cache unit 122, and the operation shown in FIG. 15 ends.

上述のように、パケットのデータのサイズが小さいほど、データ(すなわち、パケット)の処理の回数が多くなることが知られている。従って、パケットのサイズが小さいほど、処理の際に使用されるルールの読み出しの回数が増加する。データ(すなわち、パケット)の送信に使用される通信経路(例えば、バス)と、ルールの読み出しに使用される通信経路が共通である場合、すなわち、データ系通信と制御系通信とが通信経路を共有する場合、パケットのサイズが小さいほど制御系通信が増え、データ系通信に使用できる帯域が減少する。しかし、サイズが小さいパケットに適合するルールをキャッシュ部122に格納し、サイズが小さいパケットの処理の際にはキャッシュ部122から読み出すことによって、制御系通信の量を削減できる。制御系通信の量を削減することによって、制御系通信と通信経路を共用するデータ系通信に使用できる帯域が増加する。従って、データ系通信に使用できる帯域が制限されることによる、QoS制御の精度の劣化を、抑制することができる。 As described above, it is known that the smaller the data size of a packet, the more times the data (ie, packet) is processed. Therefore, the smaller the size of the packet, the greater the number of readouts of the rules used during processing. When the communication path (e.g., bus) used for sending data (i.e., packets) and the communication path used for reading rules are common, i.e., data communication and control communication use the same communication path. In the case of sharing, the smaller the packet size, the more control-related communications and the smaller the bandwidth that can be used for data-related communications. However, by storing a rule suitable for small size packets in the cache unit 122 and reading it from the cache unit 122 when processing small size packets, the amount of control system communication can be reduced. By reducing the amount of control-related communication, the bandwidth that can be used for data-related communication that shares a communication path with control-related communication increases. Therefore, it is possible to suppress the deterioration of the accuracy of QoS control due to the limitation of the band that can be used for data communication.

従って、上で説明した本実施形態には、パケットの処理にかかるデータ系通信と制御系通信とがバスを共用する場合であっても、QoS制御の精度の劣化を抑制できるという効果がある。 Therefore, the present embodiment described above has the effect of being able to suppress the deterioration of the accuracy of QoS control even when data system communication and control system communication related to packet processing share a bus.

<その他の実施形態>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
<Other embodiments>
Some or all of the above embodiments may also be described in the following additional remarks, but are not limited to the following.

(付記1)
データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズに基づいて行う決定手段と、
格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御手段と、
を備える情報処理装置。
(Appendix 1)
indicating at least one of a plurality of types of processing including transfer for data, and determining whether or not to store rules read out via a communication path used for transferring the data in the cache means; a determining means based on the size of the data;
control means for storing the rules determined to be stored in the cache means;
Information processing device.

(付記2)
前記制御手段は、前記データのサイズが所定の基準より小さい場合に、前記ルールが前記キャッシュ手段に優先的に格納されるよう、前記決定を行う
付記1に記載の情報処理装置。
(Appendix 2)
The information processing apparatus according to appendix 1, wherein the control means makes the determination such that the rule is preferentially stored in the cache means when the size of the data is smaller than a predetermined standard.

(付記3)
前記データに行われる前記処理を特定することによって生じた、前記通信経路を介した通信の負荷に基づいて、前記データを転送する通信の帯域を制御するスケジューリング手段
をさらに備える付記1又は2に記載の情報処理装置。
(Appendix 3)
3. The method according to appendix 1 or 2, further comprising scheduling means for controlling a communication band for transferring the data based on a communication load through the communication path caused by specifying the processing to be performed on the data. information processing equipment.

(付記4)
前記通信の負荷は、前記ルールの読み出しによって生じた、前記通信経路を介した通信の量を含む
付記3に記載の情報処理装置。
(Appendix 4)
The information processing apparatus according to appendix 3, wherein the communication load includes an amount of communication via the communication path caused by reading the rule.

(付記5)
前記通信経路の使用率を測定する測定手段をさらに備え、
前記スケジューリング手段は、前記使用率にさらに基づいて、前記帯域を制御する
付記3又は4に記載の情報処理装置。
(Appendix 5)
Further comprising measuring means for measuring the utilization rate of the communication path,
5. The information processing apparatus according to appendix 3 or 4, wherein the scheduling means controls the band further based on the usage rate.

(付記6)
前記スケジューリング手段は、前記データの前記ルールがキャッシュ手段に格納されていた否かに基づいて、前記通信の負荷が生じたか否かの判定を行い、当該判定の結果に基づいて、前記通信の帯域を制御する
付記3乃至5のいずれか1項に記載の情報処理装置。
(Appendix 6)
The scheduling means determines whether or not the communication load has occurred based on whether or not the rule of the data has been stored in the cache means, and based on the result of the determination, The information processing apparatus according to any one of appendices 3 to 5.

(付記7)
複数の仮想マシンと、それぞれ当該複数の仮想マシンの1つのネットワークインタフェースとして動作する複数の仮想ネットワークインタフェースとを提供する実行手段と、
外部通信ネットワークとの通信を中継する通信手段と、
前記通信手段を介してデータを受け取り、受け取った前記データに適合する前記ルールを前記制御手段に要求し、要求に対して返送された前記ルールが示す前記処理を、受け取った前記データに対して行う処理手段と、
前記ルールを記憶するルール記憶手段と、
をさらに備え、
前記制御手段は、前記データに適合する前記ルールを要求された場合、当該ルールが前記キャッシュ手段に格納されている場合当該キャッシュ手段から前記ルールを読み出し、前記ルールが前記キャッシュ手段に格納されていない場合当該ルールを前記ルール記憶手段から読み出し、読み出した前記ルールを返送し、
前記処理手段は、返送された前記ルールが示す、前記データに行われる処理が、前記複数の仮想マシンのいずれかへの転送である場合、前記データを前記スケジューリング手段に送出し、
前記スケジューリング手段は、それぞれ前記複数の仮想マシンの1つに関連付けられている複数の一時記憶領域を含み、前記データを受け取った場合前記データが転送される仮想マシンに関連付けられている一時記憶領域に前記データを格納し、当該一時記憶領域から読み出した前記データを、前記通信経路を介して前記データが転送される前記仮想マシンに送信し、さらに、前記データに行われる前記処理を特定することによって生じた前記通信の負荷に基づいて、前記一時記憶領域からデータを読み出すか否かを決定することによって、前記帯域を制御する
付記3乃至6のいずれか1項に記載の情報処理装置。
(Appendix 7)
execution means for providing a plurality of virtual machines and a plurality of virtual network interfaces each operating as one network interface of the plurality of virtual machines;
a communication means for relaying communication with an external communication network;
Data is received via the communication means, a request is made to the control means for the rule that matches the received data, and the processing indicated by the rule returned in response to the request is performed on the received data. a processing means;
a rule storage means for storing the rule;
further comprising
When the rule that matches the data is requested, the control means reads the rule from the cache means if the rule is stored in the cache means, and the rule is not stored in the cache means. read the rule from the rule storage means, return the read rule,
The processing means sends the data to the scheduling means when the processing to be performed on the data indicated by the returned rule is transfer to one of the plurality of virtual machines;
said scheduling means comprising a plurality of temporary storage areas each associated with one of said plurality of virtual machines, said data being transferred to a temporary storage area associated with said virtual machine upon receipt of said data; storing the data, transmitting the data read from the temporary storage area to the virtual machine to which the data is transferred via the communication path, and further specifying the processing to be performed on the data 7. The information processing apparatus according to any one of appendices 3 to 6, wherein the bandwidth is controlled by determining whether or not to read data from the temporary storage area based on the communication load that has occurred.

(付記8)
前記制御手段は、前記データが破棄された場合、当該データの前記ルールが前記キャッシュ手段に格納されている場合、当該ルールが優先的に前記キャッシュ手段に保持されるように設定する
付記1乃至7のいずれか1項に記載の情報処理装置。
(Appendix 8)
When the data is discarded and the rule of the data is stored in the cache means, the control means sets the rule so that the rule is preferentially held in the cache means. The information processing device according to any one of .

(付記9)
データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズに基づいて行う決定手段と、
格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御手段と、
を備える情報処理装置。
(Appendix 9)
indicating at least one of a plurality of types of processing including transfer for data, and determining whether or not to store rules read out via a communication path used for transferring the data in the cache means; a determining means based on the size of the data;
control means for storing the rules determined to be stored in the cache means;
Information processing device.

(付記10)
前記制御手段は、前記データのサイズが所定の基準より小さい場合に、前記ルールが前記キャッシュ手段に優先的に格納されるよう、前記決定を行う
付記9に記載の情報処理装置。
(Appendix 10)
The information processing apparatus according to appendix 9, wherein the control means makes the determination such that the rule is preferentially stored in the cache means when the size of the data is smaller than a predetermined standard.

(付記11)
前記データに行われる前記処理を特定することによって生じた、前記通信経路を介した通信の負荷に基づいて、前記データを転送する通信の帯域を制御するスケジューリング手段
をさらに備える付記9又は10に記載の情報処理装置。
(Appendix 11)
11. The method according to appendix 9 or 10, further comprising scheduling means for controlling a communication band for transferring the data based on a communication load through the communication path caused by specifying the processing to be performed on the data. information processing equipment.

(付記12)
前記通信の負荷は、前記ルールの読み出しによって生じた、前記通信経路を介した通信の量を含む
付記11に記載の情報処理装置。
(Appendix 12)
12. The information processing apparatus according to appendix 11, wherein the communication load includes an amount of communication via the communication path caused by reading the rule.

(付記13)
前記通信経路の使用率を測定する測定手段をさらに備え、
前記スケジューリング手段は、前記使用率にさらに基づいて、前記帯域を制御する
付記11又は12に記載の情報処理装置。
(Appendix 13)
Further comprising measuring means for measuring the utilization rate of the communication path,
13. The information processing apparatus according to appendix 11 or 12, wherein the scheduling means controls the band further based on the usage rate.

(付記14)
前記スケジューリング手段は、前記データの前記ルールがキャッシュ手段に格納されていた否かに基づいて、前記通信の負荷が生じたか否かの判定を行い、当該判定の結果に基づいて、前記通信の帯域を制御する
付記11乃至13のいずれか1項に記載の情報処理装置。
(Appendix 14)
The scheduling means determines whether or not the communication load has occurred based on whether or not the rule of the data has been stored in the cache means, and based on the result of the determination, 14. The information processing apparatus according to any one of appendices 11 to 13.

(付記15)
複数の仮想マシンと、それぞれ当該複数の仮想マシンの1つのネットワークインタフェースとして動作する複数の仮想ネットワークインタフェースとを提供する実行手段と、
外部通信ネットワークとの通信を中継する通信手段と、
前記通信手段を介してデータを受け取り、受け取った前記データに適合する前記ルールを前記制御手段に要求し、要求に対して返送された前記ルールが示す前記処理を、受け取った前記データに対して行う処理手段と、
前記ルールを記憶するルール記憶手段と、
をさらに備え、
前記制御手段は、前記データに適合する前記ルールを要求された場合、当該ルールが前記キャッシュ手段に格納されている場合当該キャッシュ手段から前記ルールを読み出し、前記ルールが前記キャッシュ手段に格納されていない場合当該ルールを前記ルール記憶手段から読み出し、読み出した前記ルールを返送し、
前記処理手段は、返送された前記ルールが示す、前記データに行われる処理が、前記複数の仮想マシンのいずれかへの転送である場合、前記データを前記スケジューリング手段に送出し、
前記スケジューリング手段は、それぞれ前記複数の仮想マシンの1つに関連付けられている複数の一時記憶領域を含み、前記データを受け取った場合前記データが転送される仮想マシンに関連付けられている一時記憶領域に前記データを格納し、当該一時記憶領域から読み出した前記データを、前記通信経路を介して前記データが転送される前記仮想マシンに送信し、さらに、前記データに行われる前記処理を特定することによって生じた前記通信の負荷に基づいて、前記一時記憶領域からデータを読み出すか否かを決定することによって、前記帯域を制御する
付記11乃至14のいずれか1項に記載の情報処理装置。
(Appendix 15)
execution means for providing a plurality of virtual machines and a plurality of virtual network interfaces each operating as one network interface of the plurality of virtual machines;
a communication means for relaying communication with an external communication network;
Data is received via the communication means, a request is made to the control means for the rule that matches the received data, and the processing indicated by the rule returned in response to the request is performed on the received data. a processing means;
a rule storage means for storing the rule;
further comprising
When the rule that matches the data is requested, the control means reads the rule from the cache means if the rule is stored in the cache means, and the rule is not stored in the cache means. read the rule from the rule storage means, return the read rule,
The processing means sends the data to the scheduling means when the processing to be performed on the data indicated by the returned rule is transfer to one of the plurality of virtual machines;
said scheduling means comprising a plurality of temporary storage areas each associated with one of said plurality of virtual machines, said data being transferred to a temporary storage area associated with said virtual machine upon receipt of said data; storing the data, transmitting the data read from the temporary storage area to the virtual machine to which the data is transferred via the communication path, and further specifying the processing to be performed on the data 15. The information processing apparatus according to any one of appendices 11 to 14, wherein the bandwidth is controlled by determining whether or not to read data from the temporary storage area based on the communication load that has occurred.

(付記16)
前記制御手段は、前記データが破棄された場合、当該データの前記ルールが前記キャッシュ手段に格納されている場合、当該ルールが優先的に前記キャッシュ手段に保持されるように設定する
付記9乃至15のいずれか1項に記載の情報処理装置。
(Appendix 16)
When the data is discarded and the rule of the data is stored in the cache means, the control means sets the rule so that the rule is preferentially held in the cache means. The information processing device according to any one of .

(付記17)
データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズに基づいて行う決定手段と、
格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御手段と、
を備える情報処理装置。
(Appendix 17)
indicating at least one of a plurality of types of processing including transfer for data, and determining whether or not to store rules read out via a communication path used for transferring the data in the cache means; a determining means based on the size of the data;
control means for storing the rules determined to be stored in the cache means;
Information processing device.

(付記18)
前記制御手段は、前記データのサイズが所定の基準より小さい場合に、前記ルールが前記キャッシュ手段に優先的に格納されるよう、前記決定を行う
付記17に記載の情報処理装置。
(Appendix 18)
18. The information processing apparatus according to appendix 17, wherein the control means makes the determination such that the rule is preferentially stored in the cache means when the size of the data is smaller than a predetermined standard.

(付記19)
前記データに行われる前記処理を特定することによって生じた、前記通信経路を介した通信の負荷に基づいて、前記データを転送する通信の帯域を制御するスケジューリング手段
をさらに備える付記17又は18に記載の情報処理装置。
(Appendix 19)
19. The method according to appendix 17 or 18, further comprising scheduling means for controlling a bandwidth of communication for transferring the data based on a communication load through the communication path caused by specifying the processing to be performed on the data. information processing equipment.

(付記20)
前記通信の負荷は、前記ルールの読み出しによって生じた、前記通信経路を介した通信の量を含む
付記19に記載の情報処理装置。
(Appendix 20)
20. The information processing apparatus according to appendix 19, wherein the communication load includes an amount of communication via the communication path caused by reading the rule.

(付記21)
前記通信経路の使用率を測定する測定手段をさらに備え、
前記スケジューリング手段は、前記使用率にさらに基づいて、前記帯域を制御する
付記19又は20に記載の情報処理装置。
(Appendix 21)
Further comprising measuring means for measuring the utilization rate of the communication path,
21. The information processing apparatus according to appendix 19 or 20, wherein the scheduling means controls the band further based on the usage rate.

(付記22)
前記スケジューリング手段は、前記データの前記ルールがキャッシュ手段に格納されていた否かに基づいて、前記通信の負荷が生じたか否かの判定を行い、当該判定の結果に基づいて、前記通信の帯域を制御する
付記19乃至21のいずれか1項に記載の情報処理装置。
(Appendix 22)
The scheduling means determines whether or not the communication load has occurred based on whether or not the rule of the data has been stored in the cache means, and based on the result of the determination, 22. The information processing apparatus according to any one of appendices 19 to 21.

(付記23)
複数の仮想マシンと、それぞれ当該複数の仮想マシンの1つのネットワークインタフェースとして動作する複数の仮想ネットワークインタフェースとを提供する実行手段と、
外部通信ネットワークとの通信を中継する通信手段と、
前記通信手段を介してデータを受け取り、受け取った前記データに適合する前記ルールを前記制御手段に要求し、要求に対して返送された前記ルールが示す前記処理を、受け取った前記データに対して行う処理手段と、
前記ルールを記憶するルール記憶手段と、
をさらに備え、
前記制御手段は、前記データに適合する前記ルールを要求された場合、当該ルールが前記キャッシュ手段に格納されている場合当該キャッシュ手段から前記ルールを読み出し、前記ルールが前記キャッシュ手段に格納されていない場合当該ルールを前記ルール記憶手段から読み出し、読み出した前記ルールを返送し、
前記処理手段は、返送された前記ルールが示す、前記データに行われる処理が、前記複数の仮想マシンのいずれかへの転送である場合、前記データを前記スケジューリング手段に送出し、
前記スケジューリング手段は、それぞれ前記複数の仮想マシンの1つに関連付けられている複数の一時記憶領域を含み、前記データを受け取った場合前記データが転送される仮想マシンに関連付けられている一時記憶領域に前記データを格納し、当該一時記憶領域から読み出した前記データを、前記通信経路を介して前記データが転送される前記仮想マシンに送信し、さらに、前記データに行われる前記処理を特定することによって生じた前記通信の負荷に基づいて、前記一時記憶領域からデータを読み出すか否かを決定することによって、前記帯域を制御する
付記19乃至22のいずれか1項に記載の情報処理装置。
(Appendix 23)
execution means for providing a plurality of virtual machines and a plurality of virtual network interfaces each operating as one network interface of the plurality of virtual machines;
a communication means for relaying communication with an external communication network;
Data is received via the communication means, a request is made to the control means for the rule that matches the received data, and the processing indicated by the rule returned in response to the request is performed on the received data. a processing means;
a rule storage means for storing the rule;
further comprising
When the rule that matches the data is requested, the control means reads the rule from the cache means if the rule is stored in the cache means, and the rule is not stored in the cache means. read the rule from the rule storage means, return the read rule,
The processing means sends the data to the scheduling means when the processing to be performed on the data indicated by the returned rule is transfer to one of the plurality of virtual machines;
said scheduling means comprising a plurality of temporary storage areas each associated with one of said plurality of virtual machines, said data being transferred to a temporary storage area associated with said virtual machine upon receipt of said data; storing the data, sending the data read from the temporary storage area to the virtual machine to which the data is transferred via the communication path, and further specifying the processing to be performed on the data 23. The information processing apparatus according to any one of attachments 19 to 22, wherein the bandwidth is controlled by determining whether or not to read data from the temporary storage area based on the communication load that has occurred.

(付記24)
前記制御手段は、前記データが破棄された場合、当該データの前記ルールが前記キャッシュ手段に格納されている場合、当該ルールが優先的に前記キャッシュ手段に保持されるように設定する
付記17乃至23のいずれか1項に記載の情報処理装置。
(Appendix 24)
When the data is discarded and the rule of the data is stored in the cache means, the control means sets the rule so that the rule is preferentially held in the cache means. The information processing device according to any one of .

以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 Although the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

1 情報処理システム
10 コンピュータ
100 情報処理装置
101 CPU
102 メモリ
103A バス
103B バス
103C バス
103D バス
104 NIC
105 記憶装置
106 アクセス装置
107 記憶媒体
110 CPU及びメモリ
110A 実行部
111 仮想通信インタフェース部(仮想NIC部)
112 ルール記憶部
113 ルール管理部
114 情報処理部
115 指示受付部
120 仮想スイッチ用ハードウェア
121 パケット処理部
122 キャッシュ部
123 スケジューリング部
124 通信インタフェース部(NIC部)
125 決定部
126 制御部
200 ホストマシン
210 CPU及びメインメモリ
211 仮想NIC
212 FIB
214 仮想マシン(VM)
220 仮想スイッチ用HW
221 仮想スイッチ
230 バス
240 NIC
300 管理装置
400 通信ネットワーク
500 情報処理装置
1231 選択部
1232 不足カウンタ部
1233 キュー部
1234 受付部
1 information processing system 10 computer 100 information processing device 101 CPU
102 memory 103A bus 103B bus 103C bus 103D bus 104 NIC
105 storage device 106 access device 107 storage medium 110 CPU and memory 110A execution unit 111 virtual communication interface unit (virtual NIC unit)
112 rule storage unit 113 rule management unit 114 information processing unit 115 instruction reception unit 120 virtual switch hardware 121 packet processing unit 122 cache unit 123 scheduling unit 124 communication interface unit (NIC unit)
125 determination unit 126 control unit 200 host machine 210 CPU and main memory 211 virtual NIC
212 FIBs
214 virtual machine (VM)
220 HW for virtual switch
221 virtual switch 230 bus 240 NIC
300 management device 400 communication network 500 information processing device 1231 selection unit 1232 shortage counter unit 1233 queue unit 1234 reception unit

Claims (9)

データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズが所定の基準より小さい場合に、前記ルールが前記キャッシュ手段に優先的に格納されるようにして行う決定手段と、
格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御手段と、
外部通信ネットワークとの通信を中継する通信手段と、
前記通信手段を介して前記データを受け取り、受け取った前記データに適合する前記ルールを前記制御手段に要求し、要求に対して返送された前記ルールが示す前記処理を、受け取った前記データに対して行う処理手段と、
前記ルールを記憶するルール記憶手段とを備え
前記制御手段は、前記データに適合する前記ルールを要求された場合、当該ルールが前記キャッシュ手段に格納されている場合当該キャッシュ手段から前記ルールを読み出し、前記ルールが前記キャッシュ手段に格納されていない場合当該ルールを前記通信経路を介して前記ルール記憶手段から読み出し、読み出した前記ルールを返送す情報処理装置。
indicating at least one of a plurality of types of processing including transfer for data, and determining whether or not to store rules read out via a communication path used for transferring the data in the cache means; determining means for preferentially storing said rule in said caching means when the size of data is smaller than a predetermined criterion ;
control means for storing the rules determined to be stored in the cache means;
a communication means for relaying communication with an external communication network;
receiving the data via the communication means, requesting the control means for the rule conforming to the received data, and performing the processing indicated by the rule returned in response to the request for the received data a processing means for performing
A rule storage means for storing the rule ,
When the rule that matches the data is requested, the control means reads the rule from the cache means if the rule is stored in the cache means, and the rule is not stored in the cache means. case, reading the rule from the rule storage means via the communication path, and returning the read rule .
前記データに行われる前記処理を特定することによって生じた、前記通信経路を介した通信の負荷に基づいて、前記データを転送する通信の帯域を制御するスケジューリング手段
をさらに備える請求項1に記載の情報処理装置。
2. The scheduling means according to claim 1, further comprising scheduling means for controlling a bandwidth of communication for transferring said data based on a communication load through said communication path caused by specifying said processing to be performed on said data. Information processing equipment.
前記通信の負荷は、前記ルールの読み出しによって生じた、前記通信経路を介した通信の量を含む
請求項に記載の情報処理装置。
The information processing apparatus according to claim 2 , wherein the communication load includes an amount of communication via the communication path caused by reading the rule.
前記通信経路の使用率を測定する測定手段をさらに備え、
前記スケジューリング手段は、前記使用率にさらに基づいて、前記帯域を制御する
請求項又はに記載の情報処理装置。
Further comprising measuring means for measuring the utilization rate of the communication path,
4. The information processing apparatus according to claim 2 , wherein said scheduling means controls said band further based on said usage rate.
前記スケジューリング手段は、前記データの前記ルールが前記キャッシュ手段に格納されていた否かに基づいて、前記通信の負荷が生じたか否かの判定を行い、当該判定の結果に基づいて、前記通信の帯域を制御する
請求項乃至のいずれか1項に記載の情報処理装置。
The scheduling means determines whether or not the load of the communication has occurred based on whether the rule of the data is stored in the cache means, and based on the result of the determination, determines whether the communication 5. The information processing apparatus according to any one of claims 2 to 4 , which controls a band of .
複数の仮想マシンと、それぞれ当該複数の仮想マシンの1つのネットワークインタフェースとして動作する複数の仮想ネットワークインタフェースとを提供する実行手段をさらに備え
記処理手段は、返送された前記ルールが示す、前記データに行われる処理が、前記複数の仮想マシンのいずれかへの転送である場合、前記データを前記スケジューリング手段に送出し、
前記スケジューリング手段は、それぞれ前記複数の仮想マシンの1つに関連付けられている複数の一時記憶領域を含み、前記データを受け取った場合前記データが転送される仮想マシンに関連付けられている一時記憶領域に前記データを格納し、当該一時記憶領域から読み出した前記データを、前記通信経路を介して前記データが転送される前記仮想マシンに送信し、さらに、前記データに行われる前記処理を特定することによって生じた前記通信の負荷に基づいて、前記一時記憶領域からデータを読み出すか否かを決定することによって、前記帯域を制御する
請求項乃至のいずれか1項に記載の情報処理装置。
Further comprising execution means for providing a plurality of virtual machines and a plurality of virtual network interfaces each operating as one network interface of the plurality of virtual machines ,
The processing means sends the data to the scheduling means when the processing to be performed on the data indicated by the returned rule is transfer to one of the plurality of virtual machines;
said scheduling means comprising a plurality of temporary storage areas each associated with one of said plurality of virtual machines, said data being transferred to a temporary storage area associated with said virtual machine upon receipt of said data; storing the data, transmitting the data read from the temporary storage area to the virtual machine to which the data is transferred via the communication path, and further specifying the processing to be performed on the data 6. The information processing apparatus according to any one of claims 2 to 5 , wherein the bandwidth is controlled by determining whether or not to read data from the temporary storage area based on the communication load that has occurred.
前記制御手段は、前記データが破棄された場合、当該データの前記ルールが前記キャッシュ手段に格納されている場合、当該ルールが優先的に前記キャッシュ手段に保持されるように設定する
請求項1乃至のいずれか1項に記載の情報処理装置。
2. When the data is discarded and the rule of the data is stored in the cache means, the control means sets the rule so that the rule is preferentially held in the cache means. 7. The information processing device according to any one of 6 .
情報処理装置が、
データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズが所定の基準より小さい場合に、前記ルールが前記キャッシュ手段に優先的に格納されるようにして行い、
格納すると決定された前記ルールの前記キャッシュ手段への格納を行
外部通信ネットワークとの通信を行う通信手段を介して前記データを受け取り、受け取った前記データに適合する前記ルールを要求し、要求に対して返送された前記ルールが示す前記処理を、受け取った前記データに対して行い、
前記データに適合する前記ルールを要求された場合、当該ルールが前記キャッシュ手段に格納されている場合当該キャッシュ手段から前記ルールを読み出し、前記ルールが前記キャッシュ手段に格納されていない場合当該ルールを、前記ルールを記憶するルール記憶手段から前記通信経路を介して読み出し、読み出した前記ルールを返送する
情報処理方法。
The information processing device
indicating at least one of a plurality of types of processing including transfer for data, and determining whether or not to store rules read out via a communication path used for transferring the data in the cache means; If the data size is smaller than a predetermined standard, the rule is preferentially stored in the cache means ;
storing the rule determined to be stored in the cache means;
receiving the data via a communication means for communicating with an external communication network, requesting the rule that conforms to the received data, and performing the processing indicated by the rule returned in response to the request; against
when the rule that matches the data is requested, if the rule is stored in the cache means, the rule is read from the cache means; if the rule is not stored in the cache means, the rule is read, read out from the rule storage means for storing the rule through the communication path, and return the read rule
Information processing methods.
コンピュータに、
データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズが所定の基準より小さい場合に、前記ルールが前記キャッシュ手段に優先的に格納されるようにして行う決定処理と、
格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御処理と、
外部通信ネットワークとの通信を行う通信手段を介して前記データを受け取り、受け取った前記データに適合する前記ルールを要求し、要求に対して返送された前記ルールが示す前記処理を、受け取った前記データに対して行う処理と、
前記データに適合する前記ルールを要求された場合、当該ルールが前記キャッシュ手段に格納されている場合当該キャッシュ手段から前記ルールを読み出し、前記ルールが前記キャッシュ手段に格納されていない場合当該ルールを、前記ルールを記憶するルール記憶手段から前記通信経路を介して読み出し、読み出した前記ルールを返送する処理と
を実行させるプログラム。
to the computer,
indicating at least one of a plurality of types of processing including transfer for data, and determining whether or not to store rules read out via a communication path used for transferring the data in the cache means; a determination process for preferentially storing the rule in the cache means when the size of the data is smaller than a predetermined standard ;
a control process of storing the rule determined to be stored in the cache means;
receiving the data via a communication means for communicating with an external communication network, requesting the rule that conforms to the received data, and performing the processing indicated by the rule returned in response to the request; the processing to be performed on the
when the rule that matches the data is requested, if the rule is stored in the cache means, the rule is read from the cache means; if the rule is not stored in the cache means, the rule is read, a process of reading the rule from the rule storage means for storing the rule through the communication path and returning the read rule;
program to run.
JP2018141186A 2018-07-27 2018-07-27 Information processing device, information processing method and program Active JP7151246B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018141186A JP7151246B2 (en) 2018-07-27 2018-07-27 Information processing device, information processing method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018141186A JP7151246B2 (en) 2018-07-27 2018-07-27 Information processing device, information processing method and program

Publications (2)

Publication Number Publication Date
JP2020017911A JP2020017911A (en) 2020-01-30
JP7151246B2 true JP7151246B2 (en) 2022-10-12

Family

ID=69580657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018141186A Active JP7151246B2 (en) 2018-07-27 2018-07-27 Information processing device, information processing method and program

Country Status (1)

Country Link
JP (1) JP7151246B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7740081B2 (en) * 2022-03-22 2025-09-17 エフサステクノロジーズ株式会社 Switching device and method for controlling switching device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WATANABE, Y. et al.,Accelerating NFV Application Using CPU-FPGA Tightly Coupled Architecture,Proceedings of the 2017 International Conference on Field Programmable Technology (ICFPT 2017),2017年12月11日,pp. 136-143

Also Published As

Publication number Publication date
JP2020017911A (en) 2020-01-30

Similar Documents

Publication Publication Date Title
EP4241433B1 (en) Delay-based automatic queue management and tail drop
KR101826725B1 (en) Technologies for network device flow lookup management
Shi et al. Load balancing for parallel forwarding
US11765250B2 (en) Devices and methods for managing network traffic for a distributed cache
US10193831B2 (en) Device and method for packet processing with memories having different latencies
US8799507B2 (en) Longest prefix match searches with variable numbers of prefixes
US9992299B2 (en) Technologies for network packet cache management
CN107528783B (en) IP route caching with two search phases for prefix length
US20150074222A1 (en) Method and apparatus for load balancing and dynamic scaling for low delay two-tier distributed cache storage system
Panda et al. Dynamic hard timeout based flow table management in openflow enabled SDN
KR20140067881A (en) Method for transmitting packet of node and content owner in content centric network
US10404594B2 (en) System and method for providing partitions of classification resources in a network device
KR20030026240A (en) Data packet discarding
CN111970213A (en) Queuing system
JP2017143344A (en) Packet transmission device, control device, and packet transmission control method
US11757779B2 (en) Load distribution system and load distribution method
JP7151246B2 (en) Information processing device, information processing method and program
EP3374881B1 (en) Dynamic allocation of hash table resources
CN105516223B (en) Virtual storage system and its implementation method, server and virtual machine monitor
JP7251060B2 (en) Information processing device, information processing system and information processing program
US12164439B1 (en) Hardware architecture of packet cache eviction engine
Hussain et al. A lightweight fairness-driven AQM for regulating bandwidth utilization in best-effort routers
US20240396827A1 (en) Dampening Next Hop Updates in a Network Device
Cai et al. Load balancing and dynamic scaling of cache storage against zipfian workloads
CN119945967B (en) Path selection method, data pulling method and wide area storage service cluster system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210615

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20211015

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220427

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220830

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220912

R151 Written notification of patent or utility model registration

Ref document number: 7151246

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151