JP2019033351A - Packet processor and packet processing method - Google Patents
Packet processor and packet processing method Download PDFInfo
- Publication number
- JP2019033351A JP2019033351A JP2017152597A JP2017152597A JP2019033351A JP 2019033351 A JP2019033351 A JP 2019033351A JP 2017152597 A JP2017152597 A JP 2017152597A JP 2017152597 A JP2017152597 A JP 2017152597A JP 2019033351 A JP2019033351 A JP 2019033351A
- Authority
- JP
- Japan
- Prior art keywords
- lookup table
- flow
- allocation
- function unit
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明は、パケット処理装置及びパケット処理方法に関し、特に、サーバ及びアクセラレータを用いて処理を行うパケット処理装置及びパケット処理方法に関する。 The present invention relates to a packet processing device and a packet processing method, and more particularly to a packet processing device and a packet processing method that perform processing using a server and an accelerator.
キャリアネットワークにおいて、コンピュータリソースやネットワークリソースを仮想化することで、より高いスケーラビリティを経済的に実現するネットワーク仮想化技術(NFV:Network Function Virtualization)が検討されている。NFVでは、ネットワーク機能やサービス機能をソフトウェア化し、汎用のサーバ上で動作させることができる。 Network virtualization technology (NFV: Network Function Virtualization) that realizes higher scalability economically by virtualizing computer resources and network resources in carrier networks is being studied. In NFV, network functions and service functions can be softwareized and run on a general-purpose server.
これらのネットワーク機能やサービス機能は、通常ではサーバのCPU(Central Processing Unit)において処理されるが、CPUに加えてアクセラレータを用いて高速な処理を実現する方法が提案されている。例えば、FPGA(Field Programmable Gate Array)のようなアクセラレータをCPUと組み合わせて用いることで、性能向上を図ることが提案されている(非特許文献1〜3参照)。
These network functions and service functions are normally processed by a CPU (Central Processing Unit) of the server, but a method for realizing high-speed processing using an accelerator in addition to the CPU has been proposed. For example, it has been proposed to improve performance by using an accelerator such as an FPGA (Field Programmable Gate Array) in combination with a CPU (see Non-Patent
図1は、従来技術においてアクセラレータを用いてネットワーク機能やサービス機能等の様々な処理機能を実現する装置の構成例である。 FIG. 1 is a configuration example of a device that implements various processing functions such as a network function and a service function using an accelerator in the prior art.
図1に示す装置では、FPGAのようなアクセラレータがCPUと組み合わせて用いられる。CPUでは、必要に応じて様々な機能を実現することができ、機能毎に独立した実行環境を提供する複数のコンテナが設定される。アクセラレータにおいても、必要に応じて様々な機能を提供することができる。受信したパケットのフローがコンテナにおいて処理されるか、アクセラレータ上で処理されるかは、アクセラレータ上のルックアップテーブルに定義される。このように一部の処理をアクセラレータ上で処理するカットスルーによって、CPU負荷を軽減することができる。 In the apparatus shown in FIG. 1, an accelerator such as an FPGA is used in combination with a CPU. In the CPU, various functions can be realized as necessary, and a plurality of containers for providing an independent execution environment is set for each function. Also in the accelerator, various functions can be provided as necessary. Whether the received packet flow is processed in the container or on the accelerator is defined in a lookup table on the accelerator. In this way, the CPU load can be reduced by cut-through in which some processing is performed on the accelerator.
CPU及びアクセラレータで複数の機能を分割して持つ場合、各機能に対するCPUコアの割り当て数や、ルックアップテーブルの割り当て容量は固定的に決められる。例えば、ネットワーク機能を実現するためにDPDK(Data Plane Development Kit)が用いられる場合、PMD(Poll Mode Driver)というデバイスドライバが提供される。このドライバは、基本的にCPUコアを占有して動作させるという前提で設計されており、CPUコアからNIC(Network Interface Card)に対して細かい周期でパケットを取得する。 When a CPU and an accelerator have a plurality of functions divided, the number of CPU cores allocated to each function and the allocation capacity of the lookup table are fixedly determined. For example, when a DPDK (Data Plane Development Kit) is used to realize a network function, a device driver called PMD (Poll Mode Driver) is provided. This driver is designed on the premise that it basically occupies and operates the CPU core, and acquires packets from the CPU core to the NIC (Network Interface Card) at a fine cycle.
例えば、機能Aを提供するコンテナAに1つのCPUコアが割り当てられると、機能Aを必要とするパケットが増加又は減少しても、1つのCPUコアが用いられる。また、特定のサーバへのパケットがアクセラレータ上の機能Cで処理されるようにルックアップテーブルCを定義した場合、特定のサーバへのパケットが少ない場合には、アクセラレータ上のリソースが余ってしまい、ルックアップテーブルCの割り当て容量が有効に利用されなくなる。 For example, when one CPU core is allocated to the container A that provides the function A, one CPU core is used even if the number of packets that require the function A increases or decreases. In addition, when the lookup table C is defined so that packets to a specific server are processed by the function C on the accelerator, if there are few packets to the specific server, resources on the accelerator are left over, The allocated capacity of the lookup table C is not used effectively.
このように、パケットのフローの帯域には時間的なゆらぎがあるので、CPUコアの割り当て数やルックアップテーブルの割り当て容量を固定的に決めてしまうと、パケットの処理効率が低下する可能性がある。 In this way, there is a temporal fluctuation in the bandwidth of the packet flow. If the number of CPU cores allocated and the allocation capacity of the lookup table are fixedly determined, the packet processing efficiency may decrease. is there.
本発明は、パケットのフローの帯域を測定し、ルックアップテーブルの割り当て容量を動的に変更することにより、パケットの処理効率を向上させることを目的とする。 An object of the present invention is to improve packet processing efficiency by measuring the bandwidth of a packet flow and dynamically changing the allocation capacity of a lookup table.
本発明の一形態に係るパケット処理装置は、
CPU及びアクセラレータを用いて、受信したパケットに対して、予め決められた複数の機能のうち少なくとも1つの機能を適用するパケット処理装置であって、
パケットを受信する受信部と、
前記受信したパケットのフローの帯域を、フロー毎に、且つ、適用される機能毎に測定する帯域測定機能部と、
前記測定されたフローの帯域に基づいて、前記アクセラレータ上で処理するフローを機能毎に登録するルックアップテーブルの割り当て容量を計算する割り当て計算機能部と、
前記計算されたルックアップテーブルの割り当て容量に基づいて、前記ルックアップテーブルの割り当て容量を変更するルックアップテーブル容量割り当て変更機能部と、
を有することを特徴とする。
A packet processing apparatus according to an aspect of the present invention is provided.
A packet processing device that applies at least one of a plurality of predetermined functions to a received packet using a CPU and an accelerator,
A receiver for receiving the packet;
A bandwidth measurement function unit that measures the bandwidth of the flow of the received packet for each flow and for each applied function;
An allocation calculation function unit that calculates an allocation capacity of a lookup table that registers, for each function, a flow to be processed on the accelerator based on the measured flow bandwidth;
A lookup table capacity allocation change function unit for changing the allocation capacity of the lookup table based on the calculated allocation capacity of the lookup table;
It is characterized by having.
また、本発明の一形態に係るパケット処理方法は、
CPU及びアクセラレータを用いて、受信したパケットに対して、予め決められた複数の機能のうち少なくとも1つの機能を適用するパケット処理装置におけるパケット処理方法であって、
パケットを受信するステップと、
前記受信したパケットのフローの帯域を、フロー毎に、且つ、適用される機能毎に測定するステップと、
前記測定されたフローの帯域に基づいて、前記アクセラレータ上で処理するフローを機能毎に登録するルックアップテーブルの割り当て容量を計算するステップと、
前記計算されたルックアップテーブルの割り当て容量に基づいて、前記ルックアップテーブルの割り当て容量を変更するステップと、
を有することを特徴とする。
A packet processing method according to an aspect of the present invention includes:
A packet processing method in a packet processing apparatus that applies at least one of a plurality of predetermined functions to a received packet using a CPU and an accelerator,
Receiving a packet;
Measuring the bandwidth of the received packet flow for each flow and for each applied function;
Calculating an allocation capacity of a lookup table for registering a flow to be processed on the accelerator for each function based on the bandwidth of the measured flow;
Changing the allocation capacity of the lookup table based on the calculated allocation capacity of the lookup table;
It is characterized by having.
本発明によれば、パケットのフローの帯域を測定し、ルックアップテーブルの割り当て容量を動的に変更することにより、パケットの処理効率を向上させることが可能になる。 According to the present invention, it is possible to improve the packet processing efficiency by measuring the bandwidth of the packet flow and dynamically changing the allocated capacity of the lookup table.
以下、図面を参照して本発明の実施例について説明する。 Embodiments of the present invention will be described below with reference to the drawings.
図2に、本発明の実施例に係るパケット処理装置の構成を示す。パケット処理装置は、CPU及びアクセラレータを用いて、受信したパケットに対して、予め決められた複数の機能のうち少なくとも1つの機能を適用する装置であり、例えば、エッジルータ等の伝送装置でもよい。 FIG. 2 shows the configuration of a packet processing apparatus according to an embodiment of the present invention. The packet processing device is a device that applies at least one of a plurality of predetermined functions to a received packet using a CPU and an accelerator, and may be a transmission device such as an edge router, for example.
図2に示すパケット処理装置は、図1に示す装置に加えて、機能・フロー毎帯域測定機能部101と、帯域分布推定機能部103と、最適割り当て計算機能部105と、ルックアップテーブル容量割り当て変更機能部107と、コア割り当て変更機能部109とを有する。例えば、機能・フロー毎帯域測定機能部101及びルックアップテーブル容量割り当て変更機能部107は、アクセラレータ上で実現され、帯域分布推定機能部103、最適割り当て計算機能部105及びコア割り当て変更機能部109は、CPU上で実現される。なお、各機能部101〜109は、アクセラレータ及びCPUのいずれにおいて実現されてもよい。例えば、パケット処理装置の各機能部は、記憶装置又はメモリ装置(図示せず)に格納されているデータやプログラムをアクセラレータ又はCPUが実行することによって実現されてもよい。
In addition to the apparatus shown in FIG. 1, the packet processing apparatus shown in FIG. 2 has a function / flow band
図1を参照して説明した通り、パケット処理装置では、FPGAのようなアクセラレータがCPUと組み合わせて用いられる。CPUでは、様々な機能(機能A、機能B、機能C)を実現することができ、機能毎に独立した実行環境を提供する複数のコンテナ(コンテナA、コンテナB、コンテナC)が設定される。また、コンテナは、仮想マシン(Virtual Machine)によって実現されてもよい。アクセラレータにおいても、必要に応じて様々な機能(機能A、機能B、機能C)を提供することができる。機能A、機能B、機能Cの例として、NAPT(Network Address Port Translation)、VLAN(Virtual Local Area Network)カプセル化、暗号化等がある。 As described with reference to FIG. 1, in the packet processing apparatus, an accelerator such as an FPGA is used in combination with the CPU. The CPU can implement various functions (Function A, Function B, Function C), and multiple containers (Container A, Container B, Container C) that provide an independent execution environment for each function are set. . The container may be realized by a virtual machine. The accelerator can also provide various functions (function A, function B, function C) as necessary. Examples of function A, function B, and function C include NAPT (Network Address Port Translation), VLAN (Virtual Local Area Network) encapsulation, and encryption.
パケット処理装置が受信したパケットのフローがコンテナにおいて処理されるか、アクセラレータ上で処理されるかは、アクセラレータ上のルックアップテーブル(ルックアップテーブルA、ルックアップテーブルB、ルックアップテーブルC)に定義される。ルックアップテーブルは、アクセラレータ上で処理するフローを機能毎に登録する。例えば、ルックアップテーブルAに登録された識別子を持つパケットは、アクセラレータ上に設定された機能部Aで処理され、ルックアップテーブルAに登録されていない識別子を持つパケットは、コンテナAにおいて、CPUリソースを論理的に分割したCPUコアを用いて処理される。例えば、パケットの5tuple(宛先IPアドレス、送信元IPアドレス、宛先ポート、送信元ポート、プロトコル番号)が識別子として用いられてもよく、アクセラレータ上でNAPT、VLANカプセル化、暗号化等の機能を適用するか否かは、パケットの5tupleによって決められてもよい。なお、1つのパケットに対して複数の機能が適用されてもよい。 Whether the packet flow received by the packet processing device is processed in the container or on the accelerator is defined in the lookup table (lookup table A, lookup table B, lookup table C) on the accelerator Is done. The lookup table registers a flow to be processed on the accelerator for each function. For example, a packet having an identifier registered in the lookup table A is processed by the function unit A set on the accelerator, and a packet having an identifier not registered in the lookup table A is stored in the CPU resource in the container A. Is processed using a CPU core that is logically divided. For example, 5tuple (destination IP address, source IP address, destination port, source port, protocol number) of the packet may be used as an identifier, and functions such as NAPT, VLAN encapsulation, and encryption are applied on the accelerator Whether or not to do so may be determined by the 5tuple of the packet. A plurality of functions may be applied to one packet.
本発明の実施例では、CPUコアの割り当て数やルックアップテーブルの割り当て容量を固定的に決めてしまうと、パケットのフローの帯域(例えば、5tupleフロー毎の帯域)の時間的なゆらぎによって、アクセラレータ上のリソースが余る可能性があるため、CPUコアの割り当て数やルックアップテーブルの割り当て容量を動的に変更する。 In the embodiment of the present invention, if the number of CPU cores to be allocated and the allocation capacity of the lookup table are fixedly determined, the accelerator is caused by temporal fluctuations in the packet flow bandwidth (for example, bandwidth for every 5 tuple flows). Since the above resources may be left over, the number of CPU cores allocated and the allocation capacity of the lookup table are dynamically changed.
機能・フロー毎帯域測定機能部101は、インタフェース部(I/F)において受信したパケットのフローの帯域を、フロー毎に、且つ、適用される機能毎に測定する。
The function / flow band
帯域分布推定機能部103は、機能・フロー毎帯域測定機能部101において測定されたフローの帯域に基づいて、フローの帯域分布を推定する。
The band distribution
最適割り当て計算機能部105は、機能・フロー毎帯域測定機能部101において測定されたフローの帯域又は帯域分布推定機能部103において推定されたフローの帯域分布に基づいて、ルックアップテーブルの割り当て容量を計算する。ルックアップテーブルの割り当て容量とは、アクセラレータ上でルックアップテーブルに割り当てられるリソース量を示す。ルックアップテーブルがSRAM(Static Random Access Memory)等のメモリに保存される場合、ルックアップテーブルの割り当て容量は、メモリ内においてルックアップテーブルが使用できるメモリリソース量に相当する。ルックアップテーブルの割り当て容量を変更することで、ルックアップテーブルによって定義されるオフロード対象のパケットの量を制御することができる。例えば、ルックアップテーブルCの割り当て容量を増やすことで、そのルックアップテーブルCに対応する機能Cを必要とするパケットがアクセラレータ上で処理される可能性が高くなる。一方、ルックアップテーブルA、B及びCは同じアクセラレータ上のリソースを共有しているため、ルックアップテーブルCの割り当て容量を増やした結果、ルックアップテーブルA及びBの割り当て容量が減ることになり、ルックアップテーブルA及びBに対応する機能A及びBを必要とするパケットがコンテナA及びBにおいて処理される可能性が高くなる。
The optimal allocation
また、最適割り当て計算機能部105は、機能・フロー毎帯域測定機能部101において測定されたフローの帯域に基づいて、各コンテナに対するCPUコアの割り当て数を計算する。最適割り当て計算機能部105は、コンテナに流入するトラヒックの帯域を推定し、CPU処理量を多く必要とするコンテナに対してCPUコアの割り当てを増やし、CPU処理量をあまり必要としないコンテナに対してCPUコアの割り当てを減らす。
The optimum allocation
ルックアップテーブル容量割り当て変更機能部107は、最適割り当て計算機能部105において計算されたルックアップテーブルの割り当て容量に基づいて、ルックアップテーブルの割り当て容量を変更する。また、ルックアップテーブル容量割り当て変更機能部107は、例えば、帯域の大きい方のフローから順にフローの識別子をルックアップテーブルに登録することにより、帯域の大きい方のフローが優先的にアクセラレータ上で処理されるようにルックアップテーブルを変更する。
The lookup table capacity allocation
コア割り当て変更機能部109は、最適割り当て計算機能部105において計算されたCPUコアの割り当て数に基づいて、CPUコアの割り当てを変更する。
The core assignment
図3に、本発明の実施例に係るパケット処理装置における処理を示す。図3に示す処理は、予め決められた周期で繰り返されてもよく、予め決められた量のパケットを受信したときに繰り返されてもよい。 FIG. 3 shows processing in the packet processing apparatus according to the embodiment of the present invention. The process shown in FIG. 3 may be repeated at a predetermined cycle, or may be repeated when a predetermined amount of packets is received.
まず、機能・フロー毎帯域測定機能部101は、受信したパケットのフローの帯域を、フロー毎に、且つ、適用される機能毎に測定し、帯域分布推定機能部103に対して出力する(S101)。
First, the bandwidth
帯域分布推定機能部103は、フロー毎且つ機能毎の帯域情報から帯域分布を推定し(S103)、帯域分布を最適割り当て計算機能部105に対して出力する(S105)。
The band distribution
最適割り当て計算機能部105は、帯域分布からパケットの処理効率を最大化するCPUコアの割り当て数及びルックアップテーブルの割り当て容量を計算する(S107)。最適割り当て計算機能部105は、例えば、帯域の大きいフローを多く含む機能に対して優先的にルックアップテーブルの容量を割り当てる。さらに、ルックアップテーブルの割り当て容量を変更することで、コンテナに流入するトラヒック量が変化するため、最適割り当て計算機能部105は、コンテナに流入するトラヒックの帯域を推定し、CPUコアの割り当て数を計算する。
The optimal allocation
最適割り当て計算機能部105は、コア割り当て変更機能部109に対してコア割り当ての変更を指示し、コア割り当て変更機能部109は、CPUコアの割り当てを変更する(S109)。
The optimal allocation
最適割り当て計算機能部105は、ルックアップテーブル容量割り当て変更機能部107に対してルックアップテーブルの割り当て容量の変更を指示し、ルックアップテーブル容量割り当て変更機能部107は、ルックアップテーブルの割り当て容量を変更する(S111)。また、ルックアップテーブル容量割り当て変更機能部107は、帯域の大きい方のフローが優先的にアクセラレータ上で処理されるようにルックアップテーブルを変更する。
The optimal allocation
なお、上記の実施例では、コンテナとアクセラレータ上の機能とが1対1の関係にあるが、コンテナとアクセラレータ上の機能とは、1対1の関係に限られず、1対多、多対1、多対多の関係でもよい。 In the above embodiment, the container and the function on the accelerator have a one-to-one relationship. However, the container and the function on the accelerator are not limited to a one-to-one relationship, but are one-to-many and many-to-one. Or a many-to-many relationship.
図4に、本発明の別の実施例に係るパケット処理装置の構成を示す。図4では、機能Aを提供するために、コンテナA1及びコンテナA2が用いられ、機能Bを提供するためにコンテナB1及びコンテナB2が用いられる例が示されている。 FIG. 4 shows the configuration of a packet processing apparatus according to another embodiment of the present invention. FIG. 4 shows an example in which the container A1 and the container A2 are used to provide the function A, and the container B1 and the container B2 are used to provide the function B.
図4に示すパケット処理装置は、図2に示すパケット処理装置に加えて、コンテナ流入トラヒック帯域測定機能部111を更に有する。
The packet processing device shown in FIG. 4 further includes a container inflow traffic band
コンテナ流入トラヒック帯域測定機能部111は、各コンテナに流入するトラヒックの帯域を測定する。
The container inflow traffic band
また、最適割り当て計算機能部105は、コンテナ流入トラヒック帯域測定機能部111において測定されたトラヒックの帯域に基づいて、各コンテナに対するCPUコアの割り当て数を計算する。
The optimum allocation
このように、コンテナ毎にトラヒックの帯域を測定することで、コンテナとアクセラレータ上の機能とが1対1の関係にない場合に、CPUコアの割り当てをより適切に行うことが可能になる。 Thus, by measuring the traffic band for each container, it is possible to more appropriately allocate CPU cores when the container and the function on the accelerator are not in a one-to-one relationship.
<本発明の実施例の効果>
一般的に、ルックアップテーブルの割り当て容量の変更に対するカットスルートラヒック量の変化はフロー毎の帯域に依存し、フローの帯域は各フローで均一でなく、その分布も不明である。したがって、CPUコアの割り当て数やルックアップテーブルの割り当て容量を固定的に決めてしまうと、パケットの処理効率が低下する。
<Effect of the embodiment of the present invention>
In general, the change of the cut-through traffic amount with respect to the change of the allocated capacity of the lookup table depends on the bandwidth for each flow, the bandwidth of the flow is not uniform in each flow, and the distribution is unknown. Therefore, if the number of CPU cores allocated and the allocation capacity of the lookup table are fixedly determined, the packet processing efficiency decreases.
本発明の実施例によれば、パケットのフローの帯域を測定し、CPUコアの割り当て数やルックアップテーブルの割り当て容量を動的に変更することにより、パケットの処理効率を向上させることが可能になる。その結果、本発明の実施例に係るパケット処理装置がエッジルータ等の伝送装置に用いられる場合、パケットの転送効率を向上させることが可能になる。 According to the embodiment of the present invention, it is possible to improve packet processing efficiency by measuring the bandwidth of a packet flow and dynamically changing the number of CPU cores allocated and the allocation capacity of a lookup table. Become. As a result, when the packet processing apparatus according to the embodiment of the present invention is used in a transmission apparatus such as an edge router, the packet transfer efficiency can be improved.
また、コンテナとアクセラレータ上の機能とが1対1の関係にない場合であっても、コンテナ毎にトラヒックの帯域を測定することで、CPUコアの割り当てをより適切に行うことが可能になる。 Even when the container and the function on the accelerator are not in a one-to-one relationship, the CPU core can be allocated more appropriately by measuring the traffic bandwidth for each container.
<補足>
説明の便宜上、本発明の実施例に係るパケット処理装置は機能的なブロック図を用いて説明しているが、本発明の実施例に係るパケット処理装置は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。例えば、本発明の実施例は、コンピュータに対して本発明の実施例に係るパケット処理装置の機能を実現させるプログラム、コンピュータに対して本発明の実施例に係る方法の各手順を実行させるプログラム等により、実現されてもよい。また、各機能部が必要に応じて組み合わせて使用されてもよい。また、本発明の実施例に係る方法は、実施例に示す順序と異なる順序で実施されてもよい。
<Supplement>
For convenience of explanation, the packet processing device according to the embodiment of the present invention is described using a functional block diagram. However, the packet processing device according to the embodiment of the present invention may be hardware, software, or a combination thereof. It may be realized. For example, the embodiment of the present invention includes a program that causes a computer to realize the functions of the packet processing device according to the embodiment of the present invention, a program that causes a computer to execute each procedure of the method according to the embodiment of the present invention, and the like. May be realized. In addition, the functional units may be used in combination as necessary. In addition, the method according to the embodiment of the present invention may be performed in an order different from the order shown in the embodiment.
以上、パケットのフローの帯域を測定し、ルックアップテーブルの割り当て容量を動的に変更することにより、パケットの処理効率を向上させるための手法について説明したが、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において、種々の変更・応用が可能である。 As described above, the method for improving the packet processing efficiency by measuring the bandwidth of the packet flow and dynamically changing the allocation capacity of the lookup table has been described. However, the present invention is not limited to the above embodiment. Without being limited, various modifications and applications are possible within the scope of the claims.
101 機能・フロー毎帯域測定機能部
103 帯域分布推定機能部
105 最適割り当て計算機能部
107 ルックアップテーブル容量割り当て変更機能部
109 コア割り当て変更機能部
111 コンテナ流入トラヒック帯域測定機能部
101 Bandwidth measurement function unit for each function /
Claims (6)
パケットを受信する受信部と、
前記受信したパケットのフローの帯域を、フロー毎に、且つ、適用される機能毎に測定する帯域測定機能部と、
前記測定されたフローの帯域に基づいて、前記アクセラレータ上で処理するフローを機能毎に登録するルックアップテーブルの割り当て容量を計算する割り当て計算機能部と、
前記計算されたルックアップテーブルの割り当て容量に基づいて、前記ルックアップテーブルの割り当て容量を変更するルックアップテーブル容量割り当て変更機能部と、
を有するパケット処理装置。 A packet processing device that applies at least one of a plurality of predetermined functions to a received packet using a CPU and an accelerator,
A receiver for receiving the packet;
A bandwidth measurement function unit that measures the bandwidth of the flow of the received packet for each flow and for each applied function;
An allocation calculation function unit that calculates an allocation capacity of a lookup table that registers, for each function, a flow to be processed on the accelerator based on the measured flow bandwidth;
A lookup table capacity allocation change function unit for changing the allocation capacity of the lookup table based on the calculated allocation capacity of the lookup table;
A packet processing apparatus.
前記割り当て計算機能部は、前記測定されたフローの帯域に基づいて、各コンテナに対するCPUコアの割り当て数を計算し、
当該パケット処理装置は、前記計算されたCPUコアの割り当て数に基づいて、CPUコアの割り当てを変更するコア割り当て変更機能部を更に有する、請求項1に記載のパケット処理装置。 When a flow that is not registered in the lookup table is processed in at least one container among a plurality of containers set in the packet processing device,
The allocation calculation function unit calculates the number of CPU cores allocated to each container based on the measured flow bandwidth,
The packet processing device according to claim 1, further comprising a core assignment changing function unit that changes the assignment of CPU cores based on the calculated number of assigned CPU cores.
当該パケット処理装置は、各コンテナに流入するトラヒックの帯域を測定するコンテナ流入トラヒック帯域測定機能部を更に有し、
前記割り当て計算機能部は、前記測定されたトラヒックの帯域に基づいて、各コンテナに対するCPUコアの割り当て数を計算し、
当該パケット処理装置は、前記計算されたCPUコアの割り当て数に基づいて、CPUコアの割り当てを変更するコア割り当て変更機能部を更に有する、請求項1に記載のパケット処理装置。 When a flow that is not registered in the lookup table is processed in at least one container among a plurality of containers set in the packet processing device,
The packet processing apparatus further includes a container inflow traffic band measurement function unit that measures a band of traffic flowing into each container,
The allocation calculation function unit calculates the number of CPU cores allocated to each container based on the measured traffic bandwidth,
The packet processing device according to claim 1, further comprising a core assignment changing function unit that changes the assignment of CPU cores based on the calculated number of assigned CPU cores.
前記割り当て計算機能部は、前記推定されたフローの帯域分布に基づいて、ルックアップテーブルの割り当て容量を計算する、請求項1乃至3のうちいずれか1項に記載のパケット処理装置。 A band distribution estimation function unit for estimating a flow band distribution based on the measured flow band;
4. The packet processing device according to claim 1, wherein the allocation calculation function unit calculates an allocation capacity of a lookup table based on the estimated bandwidth distribution of the flow. 5.
パケットを受信するステップと、
前記受信したパケットのフローの帯域を、フロー毎に、且つ、適用される機能毎に測定するステップと、
前記測定されたフローの帯域に基づいて、前記アクセラレータ上で処理するフローを機能毎に登録するルックアップテーブルの割り当て容量を計算するステップと、
前記計算されたルックアップテーブルの割り当て容量に基づいて、前記ルックアップテーブルの割り当て容量を変更するステップと、
を有するパケット処理方法。 A packet processing method in a packet processing apparatus that applies at least one of a plurality of predetermined functions to a received packet using a CPU and an accelerator,
Receiving a packet;
Measuring the bandwidth of the received packet flow for each flow and for each applied function;
Calculating an allocation capacity of a lookup table for registering a flow to be processed on the accelerator for each function based on the bandwidth of the measured flow;
Changing the allocation capacity of the lookup table based on the calculated allocation capacity of the lookup table;
A packet processing method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017152597A JP2019033351A (en) | 2017-08-07 | 2017-08-07 | Packet processor and packet processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017152597A JP2019033351A (en) | 2017-08-07 | 2017-08-07 | Packet processor and packet processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019033351A true JP2019033351A (en) | 2019-02-28 |
Family
ID=65523707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017152597A Pending JP2019033351A (en) | 2017-08-07 | 2017-08-07 | Packet processor and packet processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019033351A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021027398A (en) * | 2019-07-31 | 2021-02-22 | 日本電気株式会社 | Container daemon, information processing device, container-type virtualization system, packet distribution method, and program |
DE112019006922T5 (en) | 2019-02-26 | 2021-11-04 | Ngk Insulators, Ltd. | Sensor element and gas sensor |
DE112019006924T5 (en) | 2019-02-26 | 2021-11-04 | Ngk Insulators, Ltd. | Sensor element and gas sensor |
-
2017
- 2017-08-07 JP JP2017152597A patent/JP2019033351A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112019006922T5 (en) | 2019-02-26 | 2021-11-04 | Ngk Insulators, Ltd. | Sensor element and gas sensor |
DE112019006924T5 (en) | 2019-02-26 | 2021-11-04 | Ngk Insulators, Ltd. | Sensor element and gas sensor |
JP2021027398A (en) * | 2019-07-31 | 2021-02-22 | 日本電気株式会社 | Container daemon, information processing device, container-type virtualization system, packet distribution method, and program |
JP7363167B2 (en) | 2019-07-31 | 2023-10-18 | 日本電気株式会社 | Container daemon, information processing device, container virtualization system, packet distribution method and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11102295B2 (en) | Methods, systems and devices for parallel network interface data structures with differential data storage and processing service capabilities | |
KR102008551B1 (en) | Offloading virtual machine flows to physical queues | |
US11316797B2 (en) | Queue filter configuration for multicast packet handling | |
US9590914B2 (en) | Randomized per-packet port channel load balancing | |
WO2021041440A1 (en) | Computer device including nested network interface controller switches | |
US11509638B2 (en) | Receive-side processing for encapsulated encrypted packets | |
US20190260706A1 (en) | Managing link aggregation traffic in edge nodes | |
WO2018109531A1 (en) | Method and apparatus for tunnel endpoint ip address selection in a network environment | |
JP2019033351A (en) | Packet processor and packet processing method | |
US11750525B2 (en) | Congestion control for low latency datacenter networks | |
US20190065265A1 (en) | Performance characterization for datacenters | |
Guenender et al. | NoEncap: overlay network virtualization with no encapsulation overheads | |
Livi et al. | Container-based service chaining: A performance perspective | |
US20180322913A1 (en) | Flow based rate limit | |
US20180091447A1 (en) | Technologies for dynamically transitioning network traffic host buffer queues | |
US11811685B1 (en) | Selective packet processing including a run-to-completion packet processing data plane | |
Egi et al. | Improved parallelism and scheduling in multi-core software routers | |
KR20170125564A (en) | Packet distribution method and apparatus for parallel packet processing | |
US11509593B2 (en) | Congestion control for low latency datacenter networks | |
Rezende et al. | Analysis of monitoring and multipath support on top of OpenFlow specification | |
CN116266141A (en) | Method and apparatus for assigning and checking anti-replay sequence numbers using load balancing | |
CN109792405B (en) | Method and apparatus for shared buffer allocation in a transmission node | |
Tanyingyong et al. | Improving performance in a combined router/server | |
US11082354B2 (en) | Adaptive polling in software-defined networking (SDN) environments | |
Lin et al. | DiffServ over network processors: implementation and evaluation |