JP2019033351A - Packet processor and packet processing method - Google Patents

Packet processor and packet processing method Download PDF

Info

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
Application number
JP2017152597A
Other languages
Japanese (ja)
Inventor
聡史 西山
Satoshi Nishiyama
聡史 西山
勇樹 武井
Yuki Takei
勇樹 武井
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2017152597A priority Critical patent/JP2019033351A/en
Publication of JP2019033351A publication Critical patent/JP2019033351A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

To improve processing efficiency of a packet, by measuring the band width of packet flow, and changing the allocation capacity of a lookup table dynamically.SOLUTION: A packet processor for applying at least one function, out of predetermined multiple functions, to a received packet by using a CPU and an accelerator has a receiving part for receiving a packet, a band width measurement function part for measuring the band width of the flow of received packets for each flow and each function to be applied, an allocation calculation function part for calculating the allocation capacity of the lookup table, registering the flows to be processed on the accelerator for each function, based on the measured band width of flow, and a lookup table capacity allocation change function part for changing the allocation capacity of the lookup table, based on the calculated allocation capacity of lookup table.SELECTED DRAWING: Figure 2

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 Documents 1 to 3).

Zvika Bronstein, et. al., "Uniform Handling and Abstraction of NFV Hardware Accelerators", インターネット, http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7113221&tag=1, 2017年7月7日取得Zvika Bronstein, et. Al., "Uniform Handling and Abstraction of NFV Hardware Accelerators", Internet, http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7113221&tag=1, acquired July 7, 2017 Koji Yamazaki, et. al., "Accelerating SDN/NFV with transparent offloading architecture", インターネット, https://www.usenix.org/system/files/conference/ons2014/ons2014-paper-yamazaki.pdf, 2017年7月7日取得Koji Yamazaki, et. Al., "Accelerating SDN / NFV with transparent offloading architecture", Internet, https://www.usenix.org/system/files/conference/ons2014/ons2014-paper-yamazaki.pdf, 2017/7 Acquired on 7th of May Leonhard Nobach, "Open, Elastic Provisioning of Hardware Acceleration in NFV Environments", インターネット, http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7089057, 2017年7月7日取得Leonhard Nobach, "Open, Elastic Provisioning of Hardware Acceleration in NFV Environments", Internet, http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7089057, acquired July 7, 2017

図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.

従来技術においてアクセラレータを用いて様々な処理機能を実現する構成例である。It is an example of a structure which implement | achieves various processing functions using an accelerator in a prior art. 本発明の実施例に係るパケット処理装置の構成を示す図である。It is a figure which shows the structure of the packet processing apparatus which concerns on the Example of this invention. 本発明の実施例に係るパケット処理装置における処理を示すシーケンス図である。It is a sequence diagram which shows the process in the packet processing apparatus concerning the Example of this invention. 本発明の別の実施例に係るパケット処理装置の構成を示す図である。It is a figure which shows the structure of the packet processing apparatus which concerns on another Example of this invention.

以下、図面を参照して本発明の実施例について説明する。   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 measurement function unit 101, a band distribution estimation function unit 103, an optimum allocation calculation function unit 105, and a lookup table capacity allocation. A change function unit 107 and a core allocation change function unit 109 are included. For example, the function / flow-by-flow bandwidth measurement function unit 101 and the lookup table capacity allocation change function unit 107 are realized on an accelerator, and the band distribution estimation function unit 103, the optimum allocation calculation function unit 105, and the core allocation change function unit 109 Realized on the CPU. Note that each of the functional units 101 to 109 may be realized by either an accelerator or a CPU. For example, each functional unit of the packet processing device may be realized by an accelerator or CPU executing data or a program stored in a storage device or a memory device (not shown).

図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 measurement function unit 101 measures the bandwidth of the flow of the packet received by the interface unit (I / F) for each flow and for each applied function.

帯域分布推定機能部103は、機能・フロー毎帯域測定機能部101において測定されたフローの帯域に基づいて、フローの帯域分布を推定する。   The band distribution estimation function unit 103 estimates a flow band distribution based on the flow band measured by the function / flow-by-flow band measurement function unit 101.

最適割り当て計算機能部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 calculation function unit 105 calculates the allocation capacity of the lookup table based on the flow band measured by the function / flow-based band measurement function unit 101 or the flow band distribution estimated by the band distribution estimation function unit 103. calculate. The allocation capacity of the lookup table indicates the amount of resources allocated to the lookup table on the accelerator. When the lookup table is stored in a memory such as SRAM (Static Random Access Memory), the allocated capacity of the lookup table corresponds to the amount of memory resources that the lookup table can use in the memory. By changing the allocated capacity of the lookup table, it is possible to control the amount of offload target packets defined by the lookup table. For example, increasing the allocation capacity of the lookup table C increases the possibility that a packet that requires the function C corresponding to the lookup table C will be processed on the accelerator. On the other hand, since the lookup tables A, B and C share resources on the same accelerator, as a result of increasing the allocation capacity of the lookup table C, the allocation capacity of the lookup tables A and B is reduced. Packets that require functions A and B corresponding to lookup tables A and B are more likely to be processed in containers A and B.

また、最適割り当て計算機能部105は、機能・フロー毎帯域測定機能部101において測定されたフローの帯域に基づいて、各コンテナに対するCPUコアの割り当て数を計算する。最適割り当て計算機能部105は、コンテナに流入するトラヒックの帯域を推定し、CPU処理量を多く必要とするコンテナに対してCPUコアの割り当てを増やし、CPU処理量をあまり必要としないコンテナに対してCPUコアの割り当てを減らす。   The optimum allocation calculation function unit 105 calculates the number of CPU cores allocated to each container based on the flow bandwidth measured by the function / flow-based bandwidth measurement function unit 101. The optimal allocation calculation function unit 105 estimates the bandwidth of traffic flowing into the container, increases the allocation of CPU cores to containers that require a large amount of CPU processing, and for containers that do not require a large amount of CPU processing Reduce CPU core allocation.

ルックアップテーブル容量割り当て変更機能部107は、最適割り当て計算機能部105において計算されたルックアップテーブルの割り当て容量に基づいて、ルックアップテーブルの割り当て容量を変更する。また、ルックアップテーブル容量割り当て変更機能部107は、例えば、帯域の大きい方のフローから順にフローの識別子をルックアップテーブルに登録することにより、帯域の大きい方のフローが優先的にアクセラレータ上で処理されるようにルックアップテーブルを変更する。   The lookup table capacity allocation change function unit 107 changes the allocation capacity of the lookup table based on the allocation capacity of the lookup table calculated by the optimum allocation calculation function unit 105. Further, the lookup table capacity allocation change function unit 107 preferentially processes the flow having the larger bandwidth on the accelerator by registering the flow identifier in the lookup table in order from the flow having the larger bandwidth, for example. Change the lookup table to be

コア割り当て変更機能部109は、最適割り当て計算機能部105において計算されたCPUコアの割り当て数に基づいて、CPUコアの割り当てを変更する。   The core assignment change function unit 109 changes the CPU core assignment based on the number of CPU core assignments calculated by the optimum assignment calculation function unit 105.

図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 measurement function unit 101 for each function / flow measures the bandwidth of the received packet flow for each flow and for each applied function, and outputs the measured bandwidth to the bandwidth distribution estimation function unit 103 (S101). ).

帯域分布推定機能部103は、フロー毎且つ機能毎の帯域情報から帯域分布を推定し(S103)、帯域分布を最適割り当て計算機能部105に対して出力する(S105)。   The band distribution estimation function unit 103 estimates the band distribution from the band information for each flow and for each function (S103), and outputs the band distribution to the optimum allocation calculation function unit 105 (S105).

最適割り当て計算機能部105は、帯域分布からパケットの処理効率を最大化するCPUコアの割り当て数及びルックアップテーブルの割り当て容量を計算する(S107)。最適割り当て計算機能部105は、例えば、帯域の大きいフローを多く含む機能に対して優先的にルックアップテーブルの容量を割り当てる。さらに、ルックアップテーブルの割り当て容量を変更することで、コンテナに流入するトラヒック量が変化するため、最適割り当て計算機能部105は、コンテナに流入するトラヒックの帯域を推定し、CPUコアの割り当て数を計算する。   The optimal allocation calculation function unit 105 calculates the allocation number of the CPU core and the allocation capacity of the lookup table that maximize the packet processing efficiency from the bandwidth distribution (S107). For example, the optimum allocation calculation function unit 105 preferentially allocates the capacity of the lookup table to a function including many flows having a large bandwidth. Furthermore, since the amount of traffic flowing into the container changes by changing the allocation capacity of the lookup table, the optimal allocation calculation function unit 105 estimates the bandwidth of traffic flowing into the container and determines the number of CPU cores allocated. calculate.

最適割り当て計算機能部105は、コア割り当て変更機能部109に対してコア割り当ての変更を指示し、コア割り当て変更機能部109は、CPUコアの割り当てを変更する(S109)。   The optimal allocation calculation function unit 105 instructs the core allocation change function unit 109 to change the core allocation, and the core allocation change function unit 109 changes the CPU core allocation (S109).

最適割り当て計算機能部105は、ルックアップテーブル容量割り当て変更機能部107に対してルックアップテーブルの割り当て容量の変更を指示し、ルックアップテーブル容量割り当て変更機能部107は、ルックアップテーブルの割り当て容量を変更する(S111)。また、ルックアップテーブル容量割り当て変更機能部107は、帯域の大きい方のフローが優先的にアクセラレータ上で処理されるようにルックアップテーブルを変更する。   The optimal allocation calculation function unit 105 instructs the lookup table capacity allocation change function unit 107 to change the allocation capacity of the lookup table, and the lookup table capacity allocation change function unit 107 determines the allocation capacity of the lookup table. Change (S111). Also, the lookup table capacity allocation change function unit 107 changes the lookup table so that the flow with the larger bandwidth is preferentially processed on the accelerator.

なお、上記の実施例では、コンテナとアクセラレータ上の機能とが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 measurement function unit 111 in addition to the packet processing device shown in FIG.

コンテナ流入トラヒック帯域測定機能部111は、各コンテナに流入するトラヒックの帯域を測定する。   The container inflow traffic band measurement function unit 111 measures the band of traffic flowing into each container.

また、最適割り当て計算機能部105は、コンテナ流入トラヒック帯域測定機能部111において測定されたトラヒックの帯域に基づいて、各コンテナに対するCPUコアの割り当て数を計算する。   The optimum allocation calculation function unit 105 calculates the number of CPU cores allocated to each container based on the traffic band measured by the container inflow traffic band measurement function unit 111.

このように、コンテナ毎にトラヒックの帯域を測定することで、コンテナとアクセラレータ上の機能とが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 / flow 103 Band distribution estimation function unit 105 Optimal allocation calculation function unit 107 Lookup table capacity allocation change function unit 109 Core allocation change function unit 111 Container inflow traffic band measurement function unit

Claims (6)

CPU及びアクセラレータを用いて、受信したパケットに対して、予め決められた複数の機能のうち少なくとも1つの機能を適用するパケット処理装置であって、
パケットを受信する受信部と、
前記受信したパケットのフローの帯域を、フロー毎に、且つ、適用される機能毎に測定する帯域測定機能部と、
前記測定されたフローの帯域に基づいて、前記アクセラレータ上で処理するフローを機能毎に登録するルックアップテーブルの割り当て容量を計算する割り当て計算機能部と、
前記計算されたルックアップテーブルの割り当て容量に基づいて、前記ルックアップテーブルの割り当て容量を変更するルックアップテーブル容量割り当て変更機能部と、
を有するパケット処理装置。
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.
前記ルックアップテーブルに登録されていないフローが当該パケット処理装置内に設定された複数のコンテナのうち少なくとも1つのコンテナにおいて処理される場合、
前記割り当て計算機能部は、前記測定されたフローの帯域に基づいて、各コンテナに対する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.
前記ルックアップテーブルに登録されていないフローが当該パケット処理装置内に設定された複数のコンテナのうち少なくとも1つのコンテナにおいて処理される場合、
当該パケット処理装置は、各コンテナに流入するトラヒックの帯域を測定するコンテナ流入トラヒック帯域測定機能部を更に有し、
前記割り当て計算機能部は、前記測定されたトラヒックの帯域に基づいて、各コンテナに対する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.
前記ルックアップテーブル容量割り当て変更機能部は、帯域の大きい方のフローが優先的にアクセラレータ上で処理されるようにルックアップテーブルを変更する、請求項1乃至4のうちいずれか1項に記載のパケット処理装置。   The lookup table capacity allocation change function unit changes the lookup table so that a flow having a larger bandwidth is preferentially processed on the accelerator. Packet processing device. CPU及びアクセラレータを用いて、受信したパケットに対して、予め決められた複数の機能のうち少なくとも1つの機能を適用するパケット処理装置におけるパケット処理方法であって、
パケットを受信するステップと、
前記受信したパケットのフローの帯域を、フロー毎に、且つ、適用される機能毎に測定するステップと、
前記測定されたフローの帯域に基づいて、前記アクセラレータ上で処理するフローを機能毎に登録するルックアップテーブルの割り当て容量を計算するステップと、
前記計算されたルックアップテーブルの割り当て容量に基づいて、前記ルックアップテーブルの割り当て容量を変更するステップと、
を有するパケット処理方法。
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.
JP2017152597A 2017-08-07 2017-08-07 Packet processor and packet processing method Pending JP2019033351A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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