JP5900352B2 - Packet processing apparatus, packet processing method and program - Google Patents

Packet processing apparatus, packet processing method and program Download PDF

Info

Publication number
JP5900352B2
JP5900352B2 JP2012555968A JP2012555968A JP5900352B2 JP 5900352 B2 JP5900352 B2 JP 5900352B2 JP 2012555968 A JP2012555968 A JP 2012555968A JP 2012555968 A JP2012555968 A JP 2012555968A JP 5900352 B2 JP5900352 B2 JP 5900352B2
Authority
JP
Japan
Prior art keywords
packet
rule
target
processing device
processor
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
JP2012555968A
Other languages
Japanese (ja)
Other versions
JPWO2012105677A1 (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 JP2012555968A priority Critical patent/JP5900352B2/en
Publication of JPWO2012105677A1 publication Critical patent/JPWO2012105677A1/en
Application granted granted Critical
Publication of JP5900352B2 publication Critical patent/JP5900352B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04W12/088Access security using filters or firewalls

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

(関連出願についての記載)
本発明は、日本国特許出願:特願2011−022303号(2011年2月4日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
(Description of related applications)
The present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2011-022303 (filed on Feb. 4, 2011), the entire contents of which are incorporated herein by reference. Shall.

本発明は、パケット処理装置、パケット処理方法およびプログラムに関し、特に、複数のプロセッサを用いてパケットの送受信を行うパケット処理装置、パケット処理方法およびプログラムに関する。   The present invention relates to a packet processing device, a packet processing method, and a program, and more particularly, to a packet processing device, a packet processing method, and a program that transmit and receive packets using a plurality of processors.

インターネットトラフィックの増加に伴い、それを支えるパケット処理装置の高速化・高性能化が進んでいる。近年、高速なネットワークインタフェースカードの普及が進んでおり、汎用サーバでも当該ネットワークインタフェースカードを使用することで、パケット処理の高速化が可能となっている。一方、プロセッサの高クロック化による高速化は消費電力増大による限界が見えてきたため、マルチコア・マルチプロセッサ化による性能向上が進んでおり、パケット処理装置での対称型マルチプロセッサの利用も一般的になっている。   With the increase in Internet traffic, the speed and performance of packet processing devices that support it are increasing. In recent years, high-speed network interface cards have become widespread, and it is possible to speed up packet processing by using the network interface card even in general-purpose servers. On the other hand, the speed-up of the processor due to the higher clock speed has become the limit due to the increase in power consumption. Therefore, the performance improvement by the multi-core and multi-processor is progressing. ing.

Linux(登録商標)等の汎用OSを利用してパケット処理装置を実現した場合、高速なネットワークカードを搭載していると、送受信におけるプロセッサ処理がボトルネックとなってしまい、ワイヤレートでの通信が困難になる。仮にマルチコアプロセッサを採用していても、ネットワークインタフェースカードからの割り込み先となった単一のプロセッサ(コア)にパケットの処理が集中することにより、ボトルネックが発生し、十分な負荷分散を行うことができないという問題がある。   When a packet processing apparatus is realized using a general-purpose OS such as Linux (registered trademark), if a high-speed network card is installed, processor processing in transmission / reception becomes a bottleneck, and communication at a wire rate becomes impossible. It becomes difficult. Even if a multi-core processor is used, bottlenecks will occur due to the concentration of packet processing on a single processor (core) that is the interrupt destination from the network interface card, and sufficient load distribution will be performed. There is a problem that can not be.

この問題を解決するために、特許文献1では、処理すべきパケットのヘッダ情報に基づいて、複数のプロセッサから、そのパケットを処理するプロセッサを一意的に決定している。具体的には、パケットのヘッダの一部のフィールドからハッシュ値を算出し、得られたハッシュ値についてプロセッサ数(コア数)によるモジュロ演算を行い、プロセッサ番号を求めている。そして、求めたプロセッサ番号のプロセッサに、該パケットの処理を行わせる。ここで、プロセッサ数(コア数)によるモジュロ演算を行っているため、当該演算により、プロセッサ番号が一意に求まる。すなわち、ハッシュ値から求めた剰余(すなわち、プロセッサ番号)が異なれば、処理するプロセッサも異なることとなり、パケットの処理を複数のプロセッサ(コア)間で分散することが可能となる。したがって、単一のプロセッサ(コア)による処理がボトルネックとなることなく、負荷分散を実現することができる。   In order to solve this problem, in Patent Document 1, a processor that processes a packet is uniquely determined from a plurality of processors based on header information of the packet to be processed. Specifically, a hash value is calculated from a partial field of the packet header, and a modulo operation is performed on the obtained hash value by the number of processors (number of cores) to obtain a processor number. Then, the processor having the obtained processor number is made to process the packet. Here, since the modulo operation is performed by the number of processors (the number of cores), the processor number is uniquely obtained by the operation. That is, if the remainder (that is, the processor number) obtained from the hash value is different, the processor to be processed is also different, and packet processing can be distributed among a plurality of processors (cores). Therefore, load distribution can be realized without the processing by a single processor (core) becoming a bottleneck.

以下、プロセッサおよびプロセッサコアを、「プロセッサ」と総称する。   Hereinafter, the processor and the processor core are collectively referred to as a “processor”.

特表2002―538724号公報Special table 2002-538724 gazette

Nick McKeownほか7名,“OpenFlow:Enabling Innovation in Campus Networks,”[online],[平成22年12月17日検索],インターネット〈URL:http://www.openflowswitch.org//documents/openflow−wp−latest.pdf〉.Nick McKeown and 7 others, “OpenFlow: Enabling Innovation in Campus Networks,” [online], [December 17, 2010 search], Internet <URL: http: // www. openflowswitch. org // documents / openflow-wp-latest. pdf>. “OpenFlow Switch Specification Version 1.0.0.(Wire Protocol 0x01),”[平成22年12月17日検索],インターネット〈URL:http://www.openflowswitch.org/documents/openflow−spec−v1.0.0.pdf〉.“OpenFlow Specification Version 1.0.0. (Wire Protocol 0x01),” [searched on December 17, 2010], Internet <URL: http: // www. openflowswitch. org / documents / openflow-spec-v1.0.0. pdf>.

上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者によってなされたものである。   The disclosures of the above-mentioned patent documents and non-patent documents are incorporated herein by reference. The following analysis was made by the present inventors.

特許文献1に記載のパケット処理装置においては、上記のとおり、パケットのヘッダの一部のフィールドに基づいて、パケットを処理するプロセッサを一意に決定している。そのため、当該ヘッダの一部のフィールドから算出されるハッシュ値が同じであれば、モジュロ演算から求まるプロセッサ番号は常に同一となり、当該パケットを処理するプロセッサが固定されてしまう。したがって、パケットの処理を実行するプロセッサを柔軟に選択することはできないという問題がある。   In the packet processing device described in Patent Document 1, as described above, a processor that processes a packet is uniquely determined based on a partial field of the header of the packet. Therefore, if the hash values calculated from some fields of the header are the same, the processor number obtained from the modulo operation is always the same, and the processor that processes the packet is fixed. Therefore, there is a problem that a processor that executes packet processing cannot be flexibly selected.

そこで、複数のプロセッサを備えたパケット転送装置において、パケットの処理を実行するプロセッサを複数のプロセッサの中から柔軟かつ高速に選択できるようにすることが課題となる。本発明の目的は、かかる課題を解決するパケット処理装置、パケット処理方法およびプログラムを提供することにある。   Therefore, in a packet transfer apparatus including a plurality of processors, it becomes an issue to be able to select a processor that executes packet processing flexibly and at high speed from among the plurality of processors. The objective of this invention is providing the packet processing apparatus, the packet processing method, and program which solve this subject.

本発明の第1の視点に係るパケット処理装置は、
パケットに格納された情報、該パケットに対する第1の処理を示すアクション、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルと、
処理すべきパケットである対象パケットに格納された情報に対応するルールを、前記ルールテーブルから抽出するルール抽出部と、
抽出されたルールに基づいて、前記対象パケットに対する前記えアクションに従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行うルール適用部と、を備えている。
The packet processing device according to the first aspect of the present invention provides:
A rule table holding rules for associating information stored in a packet, an action indicating a first process for the packet, and a processor identifier for identifying a processor performing the second process for the packet;
A rule extraction unit that extracts a rule corresponding to information stored in a target packet, which is a packet to be processed, from the rule table;
A rule applying unit that executes the first process according to the action for the target packet based on the extracted rule, and requests the second process to the processor corresponding to the processor identifier; It has.

本発明の第2の視点に係るパケット処理方法は、
複数のプロセッサのうちの一のプロセッサが、パケットに格納された情報、該パケットに対する第1の処理を示すアクション、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルから、処理すべきパケットである対象パケットに格納された情報に対応するルールを抽出する工程と、
前記一のプロセッサが、抽出されたルール基づいて、前記対象パケットに対する前記アクションに従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行う工程と、を含む。
The packet processing method according to the second aspect of the present invention is:
A rule in which one of a plurality of processors associates information stored in a packet, an action indicating a first process for the packet, and a processor identifier for identifying a processor performing the second process for the packet Extracting a rule corresponding to information stored in a target packet, which is a packet to be processed, from a rule table holding
The one processor performs, based on the extracted rule, the execution of the first process according to the action for the target packet and the request for the second process to the processor corresponding to the processor identifier. And including.

本発明の第3の視点に係るプログラムは、
パケットに格納された情報、該パケットに対する第1の処理を示すアクション、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルから、処理すべきパケットである対象パケットに格納された情報に対応するルールを抽出する処理と、
抽出されたルールに基づいて、前記対象パケットに対する前記アクションに従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行う処理と、を複数のプロセッサのうちの一のプロセッサに実行させる。
The program according to the third aspect of the present invention is:
A packet to be processed from a rule table that holds information stored in the packet, an action indicating the first process for the packet, and a rule that associates a processor identifier for identifying the processor that performs the second process for the packet. A process for extracting a rule corresponding to information stored in the target packet,
Based on the extracted rule, a process of executing the first process according to the action on the target packet and requesting the second process to the processor corresponding to the processor identifier is a plurality of processes. One of the processors is executed.

なお、プログラムは、非トランジエントなコンピュータ読み取り可能記録媒体(non-transient computer-readable storage medium)に記録されたプログラム製品として提供してもよい。   The program may be provided as a program product recorded on a non-transient computer-readable storage medium.

本発明に係るパケット処理装置、パケット処理方法およびプログラムによると、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールテーブルを備えるため、該ルールテーブルのプロセッサ識別子を設定することにより、パケットの処理を実行するプロセッサを複数のプロセッサの中から柔軟に選択することができる。   According to the packet processing device, the packet processing method, and the program according to the present invention, the information stored in the packet, the processing rule indicating the first processing for the packet, and the processor performing the second processing for the packet are identified. Since a rule table for associating processor identifiers with each other is provided, by setting a processor identifier in the rule table, a processor that executes packet processing can be flexibly selected from a plurality of processors.

また、本発明に係るパケット処理装置およびパケット処理方法によると、該ルールテーブルから抽出した、処理すべきパケットに対応するルールに基づき、該パケットに対する第1の処理の実行と、該パケットを処理するプロセッサの選択とを1つの処理として実行するため、パケットの処理を高速に行うことができる。   Further, according to the packet processing device and the packet processing method according to the present invention, based on the rule corresponding to the packet to be processed, extracted from the rule table, the first process is performed on the packet and the packet is processed. Since the processor selection is executed as one process, packet processing can be performed at high speed.

本発明に係るパケット処理装置の構成を概略的に示すブロック図である。It is a block diagram which shows roughly the structure of the packet processing apparatus concerning this invention. 第1の実施形態に係るパケット処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the packet processing apparatus which concerns on 1st Embodiment. 第1の実施形態に係るパケット処理装置におけるルールテーブルを示す図である。It is a figure which shows the rule table in the packet processing apparatus which concerns on 1st Embodiment. 第1の実施形態に係るパケット処理装置の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the packet processing apparatus which concerns on 1st Embodiment. 第2の実施形態に係るパケット処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the packet processing apparatus which concerns on 2nd Embodiment. 第2の実施形態に係るパケット処理装置におけるルールテーブルを示す図である。It is a figure which shows the rule table in the packet processing apparatus which concerns on 2nd Embodiment. 第2の実施形態に係るパケット処理装置による送信処理を示すフローチャートである。It is a flowchart which shows the transmission process by the packet processing apparatus which concerns on 2nd Embodiment. 第2の実施形態に係るパケット処理装置による受信処理を示すフローチャートである。It is a flowchart which shows the reception process by the packet processing apparatus which concerns on 2nd Embodiment. 第2の実施形態に係るパケット処理装置による受信処理を示すフローチャートである。It is a flowchart which shows the reception process by the packet processing apparatus which concerns on 2nd Embodiment. 第3の実施形態に係るパケット処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the packet processing apparatus which concerns on 3rd Embodiment. 第3の実施形態に係るパケット処理装置におけるルールテーブルを示す図である。It is a figure which shows the rule table in the packet processing apparatus which concerns on 3rd Embodiment. 第4の実施形態に係るパケット処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the packet processing apparatus which concerns on 4th Embodiment. オープンフローのフローテーブルのエントリを示す図である。It is a figure which shows the entry of the flow table of OpenFlow. オープンフローのアクションを示す図である。It is a figure which shows the action of OpenFlow.

はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。   First, the outline of the present invention will be described. Note that the reference numerals of the drawings attached to this summary are merely examples for facilitating understanding, and are not intended to limit the present invention to the illustrated embodiment.

図1を参照すると、本発明のパケット処理装置は、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブル(110)と、処理すべきパケットである対象パケットに格納された情報に適合するルールを、ルールテーブル(110)から抽出するルール抽出部(130)と、抽出されたルールに基づいて、前記対象パケットに対する前記処理規則に従った第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する第2の処理を依頼するルール適用部(140)と、を備えている。   Referring to FIG. 1, the packet processing apparatus according to the present invention includes information stored in a packet, a processing rule indicating a first process for the packet, and a processor identifier for identifying a processor that performs the second process for the packet. A rule table (110) that holds rules for associating each other with each other, a rule extraction unit (130) that extracts rules that match information stored in a target packet that is a packet to be processed, from the rule table (110), and an extraction A rule applying unit (140) for requesting execution of a first process according to the processing rule for the target packet and a second process for a processor corresponding to the processor identifier based on the determined rule. ing.

本発明のパケット処理装置は、パケットに対する照合条件とパケットを処理するプロセッサとを関連付けるルールを保持するルールテーブル(110)を備えている。したがって、ルールテーブル(110)のルールに対して、照合条件およびプロセッサの識別子を直接設定することで、パケットを処理するプロセッサを柔軟に選択することができ、特許文献1のように、同一のヘッダ情報を有するパケット群を処理するプロセッサが、所定の演算規則にしたがって一意に固定されることがなくなる。また、本発明のパケット処理装置によると、ユーザはルールテーブル(110)に格納されたルールを書き換えることで、パケットを処理するプロセッサ選択の規則を容易に変更することができる。   The packet processing apparatus according to the present invention includes a rule table (110) that holds a rule that associates a matching condition for a packet with a processor that processes the packet. Therefore, by directly setting the matching condition and the processor identifier for the rule in the rule table (110), the processor that processes the packet can be flexibly selected. A processor that processes a packet group having information is not uniquely fixed according to a predetermined calculation rule. Also, according to the packet processing apparatus of the present invention, the user can easily change the rules for selecting a processor for processing a packet by rewriting the rules stored in the rule table (110).

さらに、本発明のパケット処理装置におけるルールテーブル(110)のルールは、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付ける。したがって、ルール抽出部(130)によって、対象パケットに対応するルールが抽出されると、パケットに対して実行すべき第1の処理の内容が特定されるのみならず、該パケットに対する第2の処理を実行すべきプロセッサも特定される。したがって、本発明のパケット処理装置によると、パケットに対する処理を示す処理規則をテーブルの参照によって特定し、パケットに対する処理を実行するプロセッサを別途特定する場合と比較して、パケットの処理を高速に行うことができる。   Further, the rules of the rule table (110) in the packet processing device of the present invention include information stored in a packet, a processing rule indicating a first process for the packet, and a processor that performs a second process for the packet. Associate the identifying processor identifiers with each other. Therefore, when the rule corresponding to the target packet is extracted by the rule extraction unit (130), not only the content of the first process to be executed on the packet is specified, but also the second process for the packet is performed. A processor to execute is also specified. Therefore, according to the packet processing device of the present invention, the processing rule indicating the processing for the packet is specified by referring to the table, and the processing of the packet is performed at a higher speed than when the processor for executing the processing for the packet is specified separately. be able to.

以上より、本発明のパケット処理装置によると、複数のプロセッサを備えたパケット転送装置において、パケットの処理を実行するプロセッサを複数のプロセッサの中から柔軟かつ高速に選択することができる。   As described above, according to the packet processing apparatus of the present invention, in a packet transfer apparatus including a plurality of processors, a processor that executes packet processing can be selected flexibly and at high speed.

なお、本発明において、下記の形態が可能である。   In the present invention, the following modes are possible.

[形態1]
上記第1の視点に係るパケット処理装置のとおりである。
[Form 1]
The packet processing apparatus according to the first aspect is as described above.

[形態2]
前記第1の処理は、前記対象パケットを破棄すべきか否かを判定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であってもよい。
[Form 2]
The first process is a process for determining whether or not to discard the target packet;
The second process is an upper layer process for the target packet when the target packet is a packet to be received by the packet processing device, and the target packet is a packet to be transmitted by the packet processing device. In some cases, it may be a lower layer process for the target packet.

[形態3]
前記ルール適用部は、前記第1の処理において前記対象パケットが破棄すべきパケットでない場合には、前記対象パケットに対する前記第2の処理を前記プロセッサに依頼するようにしてもよい。
[Form 3]
The rule application unit may request the processor to perform the second process on the target packet when the target packet is not a packet to be discarded in the first process.

[形態4]
前記ルールテーブルは、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子、および、該パケットを含むフローを定義するフィールドを示すフロー定義フィールドを互いに関連付けるルールを保持し、
前記ルール適用部は、抽出されたルールに複数のプロセッサ識別子が含まれる場合には、前記フロー定義フィールドを参照し、該複数のプロセッサ識別子に相当する複数のプロセッサのうちのいずれかのプロセッサに対して、同一のフローに含まれるすべての対象パケットに対する前記第2の処理を依頼するようにしてもよい。
[Form 4]
The rule table defines information stored in a packet, a processing rule indicating a first process for the packet, a processor identifier for identifying a processor that performs a second process for the packet, and a flow including the packet Holds rules that associate flow definition fields that represent fields with each other,
When a plurality of processor identifiers are included in the extracted rule, the rule application unit refers to the flow definition field, and selects one of a plurality of processors corresponding to the plurality of processor identifiers. Thus, the second process may be requested for all target packets included in the same flow.

[形態5]
前記ルール抽出部は、前記ルールテーブルが前記対象パケットに格納された情報に対応するルールを保持していない場合には、前記ルールを設定可能なルール設定装置に該情報に適合するルールを設定するように依頼するようにしてもよい。
[Form 5]
When the rule table does not hold a rule corresponding to the information stored in the target packet, the rule extraction unit sets a rule that matches the information in a rule setting device capable of setting the rule. You may make it request.

[形態6]
前記第1の処理は、前記対象パケットの宛先を判定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であってもよい。
[Form 6]
The first process is a process of determining a destination of the target packet;
The second process is an upper layer process for the target packet when the target packet is a packet to be received by the packet processing device, and the target packet is a packet to be transmitted by the packet processing device. In some cases, it may be a lower layer process for the target packet.

[形態7]
前記ルール適用部は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合において、前記対象パケットの宛先が前記パケット処理装置である場合には、前記対象パケットに対する前記第2の処理を前記プロセッサに依頼するようにしてもよい。
[Form 7]
When the target packet is a packet to be received by the packet processing device and the destination of the target packet is the packet processing device, the rule application unit performs the second processing on the target packet. You may make it ask the said processor.

[形態8]
前記ルール抽出部は、抽出したルールを一時的に保持するキャッシュを有し、前記対象パケットに格納された情報に適合するルールを該キャッシュから抽出し、
前記ルール適用部は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合において、前記対象パケットに適合するルールが前記ルール抽出部により前記キャッシュから抽出されたときには、前記対象パケットに対する前記第2の処理を前記プロセッサに依頼するようにしてもよい。
[Form 8]
The rule extraction unit has a cache that temporarily holds the extracted rules, and extracts rules that match the information stored in the target packet from the cache,
The rule application unit, when the target packet is a packet to be received by the packet processing device, and when a rule that matches the target packet is extracted from the cache by the rule extraction unit, the rule application unit The second process may be requested from the processor.

[形態9]
前記第1の処理は、前記対象パケットを送受信する際のトランスポートレイヤにおける制御情報を特定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4の受信処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4以下の送信処理であってもよい。
[Form 9]
The first process is a process of specifying control information in a transport layer when transmitting / receiving the target packet;
When the target packet is a packet to be received by the packet processing device, the second process is a layer 4 reception process for the target packet using the specified control information. When the packet is to be transmitted by the packet processing device, it may be a layer 4 or lower transmission process for the target packet using the specified control information.

[形態10]
前記ルールテーブルは、優先度に応じてソートされた複数のルールを保持し、
前記ルール抽出部は、前記対象パケットに格納された情報に適合する複数のルールが前記ルールテーブルに格納されている場合には、該複数のルールのうちの優先度が高いものを抽出するようにしてもよい。
[Mode 10]
The rule table holds a plurality of rules sorted according to priority,
When a plurality of rules that match the information stored in the target packet are stored in the rule table, the rule extraction unit extracts a rule having a high priority from the plurality of rules. May be.

[形態11]
前記ルールテーブルのルールは、パケットに格納された情報として、送信元アドレス、宛先アドレス、送信元ポート番号、および、宛先ポート番号のうちの少なくともいずれかを含んでいてもよい。
[Form 11]
The rules in the rule table may include at least one of a source address, a destination address, a source port number, and a destination port number as information stored in the packet.

[形態12]
前記ルールテーブルに対して、ルールの追加、変更、または、削除を行うルール設定部をさらに備えていてもよい。
[Form 12]
You may further provide the rule setting part which adds, changes, or deletes a rule with respect to the said rule table.

[形態13]
上記第2の視点に係るパケット処理方法のとおりである。
[Form 13]
The packet processing method according to the second aspect is as described above.

[形態14]
また、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルから、処理すべきパケットである対象パケットに格納された情報に対応するルールを抽出する処理と、
抽出されたルールに基づいて、前記対象パケットに対する前記処理規則に従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行う処理と、を複数のプロセッサのうちの一のプロセッサに実行させるプログラムが提供される。
[Form 14]
Further, processing is performed from a rule table that holds information stored in a packet, a processing rule indicating a first process for the packet, and a rule that associates a processor identifier for identifying a processor that performs the second process for the packet. A process for extracting a rule corresponding to information stored in a target packet that is a packet to be processed;
A plurality of processes for executing the first process according to the processing rule for the target packet and performing a request for the second process to the processor corresponding to the processor identifier based on the extracted rule A program to be executed by one of the processors is provided.

(実施形態1)
第1の実施形態に係るパケット処理装置について、図面を参照して説明する。図2は、本実施形態に係るパケット処理装置の構成を一例として示すブロック図である。図2を参照すると、本実施形態に係るパケット処理装置は、ルールテーブル10、ルール設定部20、ルール抽出部30、ルール適用部40、処理スレッド50、送信受付部60、および、受信受付部70を備えている。
(Embodiment 1)
The packet processing apparatus according to the first embodiment will be described with reference to the drawings. FIG. 2 is a block diagram illustrating an example of the configuration of the packet processing apparatus according to the present embodiment. Referring to FIG. 2, the packet processing apparatus according to the present embodiment includes a rule table 10, a rule setting unit 20, a rule extraction unit 30, a rule application unit 40, a processing thread 50, a transmission reception unit 60, and a reception reception unit 70. It has.

また、本実施形態のパケット処理装置は、複数のプロセッサ(またはプロセッサコア)に対応するOSを搭載しており、ネットワークインタフェースデバイスを介してネットワークと接続し、IPパケットに代表されるパケットの処理および上位レイヤのプロトコル処理をソフトウェア(OSを含む)で行うものである。すなわち、図2に示した構成要素は、それぞれ、ソフトウェアにより実現しうる。ただし、図2の構成要素の一部または全部をハードウェアにより実現してもよい。   The packet processing apparatus according to the present embodiment includes an OS corresponding to a plurality of processors (or processor cores), is connected to a network via a network interface device, and processes packets represented by IP packets. The upper layer protocol processing is performed by software (including the OS). That is, each of the components shown in FIG. 2 can be realized by software. However, some or all of the components in FIG. 2 may be realized by hardware.

ルールテーブル10は、送受信パケットのフィルタリングの規則を記述したフィルタリングルールとプロセッサの割り当て規則を記述したディスパッチルールを保持する。フィルタリングルールおよびディスパッチルールは、単一のテーブルで管理する。   The rule table 10 holds a filtering rule describing a filtering rule for transmission / reception packets and a dispatch rule describing a processor allocation rule. Filtering rules and dispatch rules are managed in a single table.

図3は、ルールテーブル10を一例として示す図である。図3を参照すると、ルールテーブル10は、受信・送信ごとに管理される。ルールテーブル10の各行に相当する一つのルールは、少なくとも、照合条件、アクション、および、処理プロセッサ識別子を含む。また、ルールテーブル10の各ルールは、フロー定義フィールドを含んでいてもよい。   FIG. 3 is a diagram illustrating the rule table 10 as an example. Referring to FIG. 3, the rule table 10 is managed for each reception / transmission. One rule corresponding to each row of the rule table 10 includes at least a matching condition, an action, and a processor identifier. Each rule in the rule table 10 may include a flow definition field.

照合条件は、パケットのL3レイヤ以上のヘッダのフィールドに関する条件式を表す。例えば、図3の第1行目のルールは、TCPプロトコルであり、宛先ポート番号が80番であるパケットに関するルールであることを表す。照合条件として、図3に示したプロトコル番号およびポート番号のみならず、IPアドレス、AHヘッダ(Authentication Header)、ESP(Encapsulating Security Payload)ヘッダにおけるSPI(Security Parameter Index)値等のさまざまなフィールドに関する条件を記述しうる。   The matching condition represents a conditional expression regarding the header field of the L3 layer or higher of the packet. For example, the rule on the first line in FIG. 3 is a TCP protocol and represents a rule relating to a packet whose destination port number is 80. As a matching condition, not only the protocol number and port number shown in FIG. 3 but also conditions related to various fields such as an IP address, an AH header (Authentication Header), and an ESP (Encapsulating Security Payload) value such as SPI (Security Parameter Index) Can be described.

アクションは、送受信パケットに対する第1の処理(第1の処理、基本処理)を示す。アクションには、例えば、パケットの処理を続行するACCEPT、パケットを破棄するDROPが用いられる。また、アクションとして、これら2つの処理以外に、パケットの一部のデータを書き換える処理などを記述してもよい。   The action indicates a first process (first process, basic process) for a transmission / reception packet. For the action, for example, ACCEPT for continuing the processing of the packet or DROP for discarding the packet is used. In addition to these two processes, a process for rewriting part of the data of the packet may be described as an action.

処理プロセッサ識別子は、照合条件にマッチ(適合)したパケットの処理を行うプロセッサを表す。処理プロセッサ識別子には、0個以上のプロセッサ識別子を記述することができる。   The processing processor identifier represents a processor that processes a packet that matches the matching condition. The processing processor identifier can describe zero or more processor identifiers.

フロー定義フィールドは、同一のフローか否かを識別するために使用するパケットのヘッダのフィールドを表す。フロー定義フィールドは、処理プロセッサ識別子に複数のプロセッサ識別子が記載されている場合において、同一のフローに属するパケットが同一のプロセッサで処理されるように、処理プロセッサ識別子に記載の中から1つのプロセッサを選択するために用いられる。   The flow definition field represents a header field of a packet used for identifying whether or not the flow is the same. In the flow definition field, when a plurality of processor identifiers are described in the processing processor identifier, one processor among the descriptions in the processing processor identifier is selected so that packets belonging to the same flow are processed by the same processor. Used to select.

ルールテーブル10中のルールは、優先度順に整列して管理することが好ましい。   The rules in the rule table 10 are preferably managed by arranging them in order of priority.

ルール設定部20は、ルールテーブル10に対してルールの追加、変更、削除等のルールの設定を行う。ルール設定部20は、例えば、ユーザアプリケーションとして動作し、ユーザ/カーネル間のメッセージ通信を行うことで、ルールを設定する。   The rule setting unit 20 sets rules such as adding, changing, and deleting rules with respect to the rule table 10. For example, the rule setting unit 20 operates as a user application and sets a rule by performing message communication between the user and the kernel.

ルール抽出部30は、送受信パケットに格納された情報とルールテーブル10の照合条件とを照合し、マッチするルールを検索する。ルール抽出部30は、複数のルールがマッチした場合には、例えば、マッチするルールのうちの優先度の最も高いものを検索結果として返す。   The rule extraction unit 30 collates the information stored in the transmission / reception packet with the collation conditions of the rule table 10 and searches for a matching rule. When a plurality of rules are matched, the rule extraction unit 30 returns, for example, the highest priority among matching rules as a search result.

ルール適用部40は、基本適用部401およびディスパッチ部402を有する。ルール適用部40は、ルールと送受信パケットを受け取ると、基本適用部401において第1の処理としてフィルタリングルールが適用され、ディスパッチ部402においてディスパッチルールが適用される。一方、フィルタリングルールの適用により処理が中止された場合には、ディスパッチ部402におけるディスパッチルールの適用を行わず、そのパケットの処理を終了する。   The rule application unit 40 includes a basic application unit 401 and a dispatch unit 402. When the rule application unit 40 receives the rule and the transmission / reception packet, the basic application unit 401 applies the filtering rule as the first process, and the dispatch unit 402 applies the dispatch rule. On the other hand, when the processing is canceled due to the application of the filtering rule, the dispatch rule is not applied in the dispatch unit 402, and the processing of the packet is terminated.

基本適用部401は、第1の処理として、ルールにおけるアクションに関する処理を行う。ルールのアクションがDROPである場合には、基本適用部401は、送受信パケットを破棄する。一方、アクションがACCEPTである場合に、ディスパッチ部402は、ルール中の処理プロセッサ識別子に応じて送受信パケットを処理する処理プロセッサを決定し、そのプロセッサに対応する処理スレッド50に対してパケットの処理を依頼する。   The basic application unit 401 performs a process related to an action in the rule as the first process. When the rule action is DROP, the basic application unit 401 discards the transmission / reception packet. On the other hand, when the action is ACCEPT, the dispatch unit 402 determines a processing processor that processes the transmission / reception packet according to the processing processor identifier in the rule, and processes the packet to the processing thread 50 corresponding to the processor. Ask.

処理スレッド50は、プロセッサ毎に用意されるカーネルスレッドであり、パケットに対する第2の処理として、受信パケットのレイヤ3およびレイヤ4の受信処理、送信パケットのレイヤ3およびレイヤ2の送信処理を行う。処理スレッド50は、受信処理部501および送信処理部502を備え、処理キュー(非図示)を保持する。処理キューには、パケットと処理区分(送信/受信)が格納される。処理スレッド50は、処理キューに格納されたパケットを順次取り出し、処理区分が送信の場合には、送信処理部502による送信処理をパケットに対して行う。一方、処理区分が受信の場合には、処理スレッド50は、受信処理部501による受信処理をパケットに対して行う。送信処理部502は、送信パケットに対してレイヤ3およびレイヤ2の送信処理を行い、パケットをネットワークに送出する。一方、受信処理部501は、受信パケットに対して、レイヤ3およびレイヤ4の受信処理を行い、必要に応じてユーザアプリケーションに受信パケットを渡す処理を行う。   The processing thread 50 is a kernel thread prepared for each processor, and performs layer 3 and layer 4 reception processing for received packets and layer 3 and layer 2 transmission processing for transmission packets as second processing for packets. The processing thread 50 includes a reception processing unit 501 and a transmission processing unit 502, and holds a processing queue (not shown). The processing queue stores a packet and a processing classification (transmission / reception). The processing thread 50 sequentially takes out the packets stored in the processing queue, and when the processing classification is transmission, performs transmission processing by the transmission processing unit 502 on the packet. On the other hand, when the processing classification is reception, the processing thread 50 performs reception processing by the reception processing unit 501 on the packet. The transmission processing unit 502 performs layer 3 and layer 2 transmission processing on the transmission packet, and sends the packet to the network. On the other hand, the reception processing unit 501 performs layer 3 and layer 4 reception processing on the received packet, and performs processing of passing the received packet to the user application as necessary.

送信受付部60は、ユーザアプリケーションまたはカーネル内部からの送信パケットを受け取り、送信パケットをルール抽出部30で照合し、照合結果として得られたルールと送信パケットをルール適用部40に渡す。   The transmission reception unit 60 receives a transmission packet from the user application or the kernel, collates the transmission packet by the rule extraction unit 30, and passes the rule and the transmission packet obtained as a collation result to the rule application unit 40.

受信受付部70は、ネットワークからの受信パケットを受け取り、受信パケットをルール抽出部30で照合し、照合結果として得られたルールと受信パケットをルール適用部40に渡す。   The reception receiving unit 70 receives a received packet from the network, collates the received packet with the rule extracting unit 30, and passes the rule and the received packet obtained as a matching result to the rule applying unit 40.

次に、本実施形態に係るパケット処理装置の動作について、図面を参照して説明する。図4は、本実施形態に係るパケット処理装置の動作を一例として示すフローチャートである。   Next, the operation of the packet processing apparatus according to the present embodiment will be described with reference to the drawings. FIG. 4 is a flowchart showing an example of the operation of the packet processing apparatus according to the present embodiment.

図4を参照すると、ネットワークからパケットが到着すると、受信受付部70に受信パケットが渡される。受信パケットを受け取った受信受付部70は、ルール抽出部30によって受信パケットにマッチするルールをルールテーブル10から検索し(ステップS1)、その結果を受信パケットと共にルール適用部40に渡す。   Referring to FIG. 4, when a packet arrives from the network, the received packet is delivered to reception reception unit 70. The reception accepting unit 70 that has received the received packet searches the rule table 10 for a rule that matches the received packet by the rule extracting unit 30 (step S1), and passes the result to the rule applying unit 40 together with the received packet.

次に、ルール適用部40は、ルールと受信パケットを受け取ると、基本適用部401が、第1の処理としてアクションを適用する(ステップS2)。ルール中のアクションがDROPである場合には(ステップS3のNo)、基本適用部401は、受信パケットを破棄し(ステップS4)、その受信パケットの処理を完了する。   Next, when the rule applying unit 40 receives the rule and the received packet, the basic applying unit 401 applies an action as the first process (step S2). If the action in the rule is DROP (No in step S3), the basic application unit 401 discards the received packet (step S4) and completes the processing of the received packet.

一方、アクションがACCEPTである場合には(ステップS3のYes)、ディスパッチ部402は、ルールの処理プロセッサ識別子に応じて処理プロセッサを選択する(ステップS5のYes、S6)。一方、ルールに処理プロセッサ識別子が指定されていない場合には(ステップS5のNo)、ディスパッチ部402は、現在処理を実行中のプロセッサ(すなわち、ディスパッチ部402の処理を実行しているプロセッサ自身)を処理プロセッサとして選択する(ステップS7)。   On the other hand, when the action is ACCEPT (Yes in step S3), the dispatch unit 402 selects a processing processor according to the processing processor identifier of the rule (Yes in step S5, S6). On the other hand, when the processing processor identifier is not specified in the rule (No in step S5), the dispatch unit 402 is currently executing the processor (that is, the processor executing the processing of the dispatch unit 402 itself). Is selected as a processing processor (step S7).

次に、ディスパッチ部402は、決定した処理プロセッサに対応する処理スレッド50の処理キューに受信パケットの上位プロトコルの受信処理をキューイングすることで処理を依頼する(ステップS8)。依頼を受けた処理スレッド50の受信処理部501は、パケットに対する第2の処理として、パケット受信処理(すなわち、受信パケットに対する上位レイヤの受信処理)を実行する。   Next, the dispatch unit 402 requests processing by queuing the reception processing of the upper protocol of the received packet in the processing queue of the processing thread 50 corresponding to the determined processing processor (step S8). The reception processing unit 501 of the processing thread 50 that has received the request executes a packet reception process (that is, a higher layer reception process for the received packet) as a second process for the packet.

ステップS6において、フロー定義フィールドを利用する場合、指定されたフィールドのハッシュ値をもとに、処理プロセッサ識別子で指定されたプロセッサの中から処理プロセッサを決定する。特に、フロー定義フィールドとして、同一のフローを識別することができるフィールドを選択することが好ましい。これにより、同一のフローに属するパケットが複数のプロセッサに分散することを防ぐことができ、排他制御およびパケットの整列によって生じるオーバーヘッドを軽減することができる。   In step S6, when the flow definition field is used, a processing processor is determined from the processors specified by the processing processor identifier based on the hash value of the specified field. In particular, it is preferable to select a field that can identify the same flow as the flow definition field. Thereby, packets belonging to the same flow can be prevented from being distributed to a plurality of processors, and overhead caused by exclusive control and packet alignment can be reduced.

パケットの送信処理では、パケット送信時に送信パケットに対してルール照合が行われ、依頼を受けた処理スレッドがパケットの送信処理を行う点を除いて同様の処理が行われる。したがって、パケット送信時の処理シーケンスについては、説明を省略する。   In the packet transmission process, the same process is performed except that the rule matching is performed on the transmission packet at the time of packet transmission, and the processing thread that receives the request performs the packet transmission process. Therefore, description of the processing sequence at the time of packet transmission is omitted.

本実施形態では、フィルタリングルール(図3の照合条件とアクションとの組)を記載したルールテーブル10に、送受信パケットの処理を行う処理プロセッサを決定するディスパッチルール(図3の照合条件と処理プロセッサ識別子およびフロー定義フィールドとの組)を併せて記載する。また、本実施形態によると、ルールテーブル10へのルールをユーザ側から設定することができる。したがって、処理プロセッサを選択するためのルールを一元的に管理でき、ユーザのポリシーに基づいて柔軟なプロセッサ選択を行うことができる。さらに、パケットに対するフィルタリング処理とパケットに対する第2の処理を行う処理プロセッサの選択とを1つの処理として実行するため、該パケットに対する処理時間を削減することが可能である。   In this embodiment, a dispatch rule (a matching condition and a processing processor identifier in FIG. 3) is determined in the rule table 10 in which filtering rules (a set of matching conditions and actions in FIG. 3) are described. And the flow definition field). Moreover, according to this embodiment, the rule to the rule table 10 can be set from the user side. Therefore, rules for selecting processing processors can be managed in a centralized manner, and flexible processor selection can be performed based on a user policy. Furthermore, since the filtering process for the packet and the selection of the processing processor that performs the second process for the packet are executed as one process, the processing time for the packet can be reduced.

(実施形態2)
第2の実施形態に係るパケット処理装置について、図面を参照して説明する。図5は、本実施形態に係るパケット処理装置の構成を一例として示すブロック図である。図5を参照すると、本実施形態におけるパケット処理装置は、ルールテーブル11、ルール設定部21、ルール抽出部31、ルール適用部41、処理スレッド50、送信受付部61、および、受信受付部71を備えている。
(Embodiment 2)
A packet processing apparatus according to the second embodiment will be described with reference to the drawings. FIG. 5 is a block diagram illustrating an example of the configuration of the packet processing apparatus according to the present embodiment. Referring to FIG. 5, the packet processing apparatus according to the present embodiment includes a rule table 11, a rule setting unit 21, a rule extraction unit 31, a rule application unit 41, a processing thread 50, a transmission reception unit 61, and a reception reception unit 71. I have.

ルールテーブル11は、送受信パケットの宛先アドレスから転送先を決定するための経路ルール、および、送信パケットの宛先アドレス又は受信パケットの送信元アドレスから処理プロセッサを決定するためのディスパッチルールを1つのテーブルとして保持する。   The rule table 11 includes a route rule for determining a transfer destination from a destination address of a transmission / reception packet and a dispatch rule for determining a processing processor from a destination address of a transmission packet or a transmission source address of a reception packet as one table. Hold.

図6は、ルールテーブル11を一例として示す図である。図6を参照すると、ルールテーブル11は、ネットワークアドレス(アドレスとネットマスク)、転送先のゲートウェイ、出力インタフェース、および、処理プロセッサ識別子とを関連付けて保持する。ここで、ネットワークアドレス、転送先のゲートウェイ、および、出力インタフェースの対応関係は、経路ルールの適用で用いられる。また、ネットワークアドレスと処理プロセッサ識別子との対応関係は、ディスパッチルールの適用で用いられる。ディスパッチルールは、送信パケットでは宛先アドレスに対するルール、受信パケットでは送信元アドレスに対するルールとして解釈される。   FIG. 6 is a diagram illustrating the rule table 11 as an example. Referring to FIG. 6, the rule table 11 holds a network address (address and netmask), a transfer destination gateway, an output interface, and a processing processor identifier in association with each other. Here, the correspondence relationship between the network address, the transfer destination gateway, and the output interface is used in the application of the route rule. Also, the correspondence between the network address and the processor identifier is used in the application of dispatch rules. The dispatch rule is interpreted as a rule for the destination address in the transmission packet and as a rule for the transmission source address in the reception packet.

ルール設定部21は、ルールテーブル11に対して経路ルールおよびディスパッチルールの追加、変更、削除等のルールの設定を行う。ルール設定部21は、例えば、ユーザアプリケーションとして動作し、ユーザとカーネル間でメッセージ通信を行うことで、経路ルールを設定する。   The rule setting unit 21 sets rules such as addition, change, and deletion of route rules and dispatch rules in the rule table 11. The rule setting unit 21 operates as a user application, for example, and sets a route rule by performing message communication between the user and the kernel.

ルール抽出部31は、パケットに格納されたアドレスとルールテーブル11のネットワークアドレスとを照合し、マッチするルールを検索する。ルール抽出部31は、最近検索した検索結果の一部を保持し、高速に検索可能な経路キャッシュ(非図示)を備えていてもよい。   The rule extraction unit 31 collates the address stored in the packet with the network address in the rule table 11 and searches for a matching rule. The rule extraction unit 31 may include a route cache (not shown) that holds a part of recently searched search results and can be searched at high speed.

ルール適用部41は、基本適用部411およびディスパッチ部402を有する。ルール適用部41は、経路ルールと送受信パケットを受け取ると、基本適用部411は、第1の処理として経路ルールに従った処理を行う。具体的には、送信パケットに対しては、送信パケットが経路ルール中の出力先インタフェースからゲートウェイに対して送信されるように設定する。経路ルールから受信パケットが他ホスト宛のパケットであると判断された場合には、基本適用部411は、受信パケットの転送処理を行う。ディスパッチ部402の動作については、第1の実施形態と同様であるため、詳細な説明を省略する。   The rule application unit 41 includes a basic application unit 411 and a dispatch unit 402. When the rule application unit 41 receives the route rule and the transmission / reception packet, the basic application unit 411 performs processing according to the route rule as the first processing. Specifically, the transmission packet is set to be transmitted from the output destination interface in the route rule to the gateway. When it is determined from the routing rule that the received packet is a packet addressed to another host, the basic application unit 411 performs a transfer process of the received packet. Since the operation of the dispatch unit 402 is the same as that of the first embodiment, detailed description thereof is omitted.

また、処理スレッド50の動作についても、第1の実施形態と同様であるため、詳細な説明を省略する。   Also, the operation of the processing thread 50 is the same as that in the first embodiment, and thus detailed description thereof is omitted.

送信受付部61は、ユーザアプリケーションまたはカーネル内部からの送信パケットを受け取り、送信パケットの宛先アドレスに対応するルールをルール抽出部31で検索し、検索結果として得られたルールと送信パケットをルール適用部41に渡す。   The transmission reception unit 61 receives a transmission packet from the user application or the kernel, searches the rule extraction unit 31 for a rule corresponding to the destination address of the transmission packet, and determines the rule and the transmission packet obtained as a search result as a rule application unit Pass to 41.

受信受付部71は、ネットワークからの受信パケットを受け取り、ルール抽出部31において、受信パケットの宛先アドレスから経路ルールを、送信元アドレスからディスパッチルールをそれぞれ検索し、前記検索した経路ルールとディスパッチルール、及び受信パケットをルール適用部41に渡す。ルール抽出部31が経路キャッシュを備えている場合には、ディスパッチルールの検索を、経路キャッシュを用いて行うようにしてもよい。   The reception accepting unit 71 receives a received packet from the network, and the rule extracting unit 31 searches the routing rule from the destination address of the received packet and the dispatch rule from the transmission source address. The received packet is passed to the rule application unit 41. When the rule extraction unit 31 includes a route cache, the search for the dispatch rule may be performed using the route cache.

次に、本実施形態に係るパケット処理装置の動作について、図面を参照して説明する。図7は、本実施形態に係るパケット処理装置による送信処理を一例として示すフローチャートである。   Next, the operation of the packet processing apparatus according to the present embodiment will be described with reference to the drawings. FIG. 7 is a flowchart showing an example of transmission processing by the packet processing apparatus according to the present embodiment.

図7を参照すると、アプリケーションまたはカーネル内部からパケットが到着すると、送信受付部61に送信パケットが渡される。送信パケットを受け取った送信受付部61は、ルール抽出部31によって、送信パケットの宛先アドレスとマッチするルールをルールテーブル11から検索する(ステップS11)。ルール抽出部31が経路キャッシュを備えている場合には、検索結果を経路キャッシュに保持することで以降の検索を高速化することができる。送信受付部61は、ルールの検索結果を送信パケットとともにルール適用部41に渡す。   Referring to FIG. 7, when a packet arrives from within the application or the kernel, the transmission packet is delivered to the transmission reception unit 61. Upon receiving the transmission packet, the transmission accepting unit 61 uses the rule extraction unit 31 to search the rule table 11 for a rule that matches the destination address of the transmission packet (step S11). When the rule extraction unit 31 includes a route cache, subsequent searches can be speeded up by holding the search results in the route cache. The transmission reception unit 61 passes the rule search result to the rule application unit 41 together with the transmission packet.

次に、ルール適用部41は、検索されたルールと送信パケットを受け取ると、基本適用部411が、該ルールに基づき、第1の処理として、送信パケットに対して出力インタフェースを設定する(ステップS12)。対応する経路ルールがない場合には、基本適用部411は、送信パケットを破棄し、送信処理を完了する。   Next, when the rule application unit 41 receives the retrieved rule and the transmission packet, the basic application unit 411 sets an output interface for the transmission packet as a first process based on the rule (step S12). ). If there is no corresponding route rule, the basic application unit 411 discards the transmission packet and completes the transmission process.

一方、ディスパッチ部402は、ルールの処理プロセッサ識別子に応じて処理プロセッサを選択する(ステップS13のYes、S14)。また、ディスパッチルールで処理プロセッサ識別子が指定されていない場合には(ステップS13のNo)、ディスパッチ部402は、現在処理を実行中のプロセッサ(すなわち、ディスパッチ部402の処理を実行しているプロセッサ自身)を処理プロセッサとして選択する(ステップS15)。   On the other hand, the dispatch unit 402 selects a processing processor according to the processing processor identifier of the rule (Yes in step S13, S14). When the processing processor identifier is not specified in the dispatch rule (No in step S13), the dispatch unit 402 is the processor that is currently executing the processing (that is, the processor that is executing the processing of the dispatch unit 402 itself) ) Is selected as a processing processor (step S15).

そして、ディスパッチ部402は、決定した処理プロセッサに対応する処理スレッド50の処理キューに、送信パケットの上位プロトコルの送信処理をキューイングすることで処理を依頼する(ステップS16)。依頼を受けた処理スレッド50の送信処理部502は、パケットに対する第2の処理としてパケットの送信処理(パケットに対する下位レイヤの送信処理)を実行する。   Then, the dispatch unit 402 requests processing by queuing the transmission processing of the upper protocol of the transmission packet in the processing queue of the processing thread 50 corresponding to the determined processing processor (step S16). The transmission processing unit 502 of the processing thread 50 that has received the request executes a packet transmission process (a lower layer transmission process for the packet) as a second process for the packet.

図8は、ルール抽出部31が経路キャッシュを備えていない場合における、本実施形態に係るパケット処理装置による受信処理を一例として示すフローチャートである。ネットワークから受信パケットが到着すると、受信受付部71はルール抽出部31によって、受信パケットの宛先アドレスとマッチするルールをルールテーブル11から検索する(ステップS21)。   FIG. 8 is a flowchart illustrating an example of reception processing by the packet processing device according to the present embodiment when the rule extraction unit 31 does not include a path cache. When the received packet arrives from the network, the reception accepting unit 71 searches the rule table 11 for a rule that matches the destination address of the received packet by the rule extracting unit 31 (step S21).

検索結果からパケット処理装置自身宛のパケットではないと判断された場合には(ステップS22のNo)、ルール適用部41の基本適用部411は、受信パケットを転送して処理を終了する(ステップS23)。一方、パケット処理装置自身宛のパケットと判断された場合には(ステップS22のYes)、受信受付部71は、ルール抽出部31を用いて、受信パケットの送信元アドレスに対応するディスパッチルールをルールテーブル11から検索する(ステップS24)。   If it is determined from the search result that the packet is not addressed to the packet processing device itself (No in step S22), the basic application unit 411 of the rule application unit 41 transfers the received packet and ends the process (step S23). ). On the other hand, when it is determined that the packet is addressed to the packet processing apparatus itself (Yes in step S22), the reception receiving unit 71 uses the rule extraction unit 31 to set a dispatch rule corresponding to the transmission source address of the received packet as a rule. Search from the table 11 (step S24).

ディスパッチ部402は、ルールの処理プロセッサ識別子に応じて処理プロセッサを選択する(ステップS25のYes、S26)。一方、ルールに処理プロセッサ識別子が指定されていない場合には(ステップS25のNo)、現在処理を実行中のプロセッサ(すなわち、ディスパッチ部402の処理を実行しているプロセッサ自身)を処理プロセッサとして選択する(ステップS27)。   The dispatch unit 402 selects a processing processor according to the processing processor identifier of the rule (Yes in step S25, S26). On the other hand, when the processing processor identifier is not specified in the rule (No in step S25), the processor that is currently executing the processing (that is, the processor that is executing the processing of the dispatch unit 402) is selected as the processing processor. (Step S27).

そして、ディスパッチ部402は、選択された処理プロセッサに対応する処理スレッド50の処理キューに、受信パケットの上位プロトコルの受信処理をキューイングすることで処理を依頼する(ステップS28)。依頼を受けた処理スレッド50の受信処理部501は、パケットに対する第2の処理としてパケットの受信処理を実行する。   Then, the dispatch unit 402 requests processing by queuing the reception processing of the upper protocol of the received packet in the processing queue of the processing thread 50 corresponding to the selected processing processor (step S28). The reception processing unit 501 of the processing thread 50 that has received the request executes a packet reception process as a second process for the packet.

図9は、ルール抽出部31が経路キャッシュを備えている場合における、本実施形態に係るパケット処理装置による受信処理を一例として示すフローチャートである。図9において、ステップS21からS23およびステップS25からS28に関しては、ルール抽出部31が経路キャッシュを備えていない場合(図8)と同様であるため、詳細な説明を省略する。図9は、図8のステップS24の代わりに、ステップS29およびステップS30を含む点で、図8と相違する。   FIG. 9 is a flowchart illustrating an example of reception processing by the packet processing device according to the present embodiment when the rule extraction unit 31 includes a route cache. In FIG. 9, steps S21 to S23 and steps S25 to S28 are the same as when the rule extraction unit 31 does not include a path cache (FIG. 8), and thus detailed description thereof is omitted. FIG. 9 differs from FIG. 8 in that step S29 and step S30 are included instead of step S24 in FIG.

ルール抽出部31が経路キャッシュを備えている場合には、受信受付部71は、経路キャッシュを利用して、ディスパッチルールを検索する(ステップS29)。   If the rule extraction unit 31 includes a route cache, the reception receiving unit 71 searches for a dispatch rule using the route cache (step S29).

経路キャッシュにマッチするルールが保持されていない場合には(ステップS30のNo)、プロセッサ識別子が指定されていないものとみなして、処理が行われる。このように、高速に検索を可能な経路キャッシュにルールが保持されている場合に(ステップS30のYes)、ディスパッチルールを利用する(ステップS25〜S27)ことにより、検索に要する時間を削減することができる。   If no rule that matches the route cache is held (No in step S30), it is assumed that the processor identifier is not specified, and processing is performed. As described above, when a rule is held in a route cache that can be searched at high speed (Yes in step S30), the time required for the search can be reduced by using the dispatch rule (steps S25 to S27). Can do.

経路キャッシュは、送信処理における経路検索で更新される(図7のステップS11)。したがって、定期的に送信が行われているアドレスからの受信パケットであれば、経路キャッシュにマッチするルールが保持されるため(図9のステップS30のYes)、ディスパッチルールに基づくプロセッサの選択(図9のステップS25〜S27)が可能となる。   The route cache is updated by route search in the transmission process (step S11 in FIG. 7). Therefore, if it is a received packet from an address that is periodically transmitted, a rule that matches the route cache is retained (Yes in step S30 in FIG. 9), and therefore the processor is selected based on the dispatch rule (FIG. 9). 9 steps S25 to S27) are possible.

本実施形態では、図6に示すように、ルールテーブル11に処理プロセッサを決定するディスパッチルールを設定する。第1の実施形態におけるフィルタリング処理は、パケット処理において常に必要とされるわけではない。一方、経路の検索処理は、パケットの処理に不可欠である。したがって、本実施形態に係るパケット処理装置は、フィルタリング処理を行わない場合のパケット転送にも適用することができ、ルールテーブル11へのルールをユーザ側から設定することにより、柔軟なプロセッサ選択を行うことが可能である。また、本実施形態に係るパケット処理装置による送信処理では、送信パケットに対して出力インタフェースを設定する処理と、該送信パケットに対する第2の処理を行うプロセッサを選択する処理とを、1つの処理として実行するため、該送信パケットに対する処理時間を削減することができる。   In the present embodiment, as shown in FIG. 6, a dispatch rule for determining a processing processor is set in the rule table 11. The filtering process in the first embodiment is not always required in packet processing. On the other hand, route search processing is indispensable for packet processing. Therefore, the packet processing apparatus according to the present embodiment can also be applied to packet forwarding when filtering processing is not performed, and performs flexible processor selection by setting rules in the rule table 11 from the user side. It is possible. In the transmission processing by the packet processing apparatus according to the present embodiment, the processing for setting the output interface for the transmission packet and the processing for selecting the processor that performs the second processing for the transmission packet are performed as one processing. As a result, the processing time for the transmission packet can be reduced.

(実施形態3)
第3の実施形態に係るパケット処理装置について、図面を参照して説明する。図10は、本実施形態に係るパケット処理装置の構成を一例として示すブロック図である。図10を参照すると、本実施形態に係るパケット処理装置は、ルールテーブル12、ユーザアプリケーション22、ルール抽出部32、ルール適用部42、処理スレッド52、送信受付部62、および、受信受付部72を備えている。
(Embodiment 3)
A packet processing apparatus according to a third embodiment will be described with reference to the drawings. FIG. 10 is a block diagram illustrating an example of the configuration of the packet processing apparatus according to the present embodiment. Referring to FIG. 10, the packet processing device according to the present embodiment includes a rule table 12, a user application 22, a rule extraction unit 32, a rule application unit 42, a processing thread 52, a transmission reception unit 62, and a reception reception unit 72. I have.

ルールテーブル12は、アドレスとポート番号とソケットの対応関係を保持する。ここで、ソケットは、TCP、UDP等に代表されるトランスポートレイヤの接続情報に関する制御データと、該制御データと関連付けられた処理プロセッサ識別子とを保持する。   The rule table 12 holds the correspondence between addresses, port numbers, and sockets. Here, the socket holds control data related to transport layer connection information represented by TCP, UDP, and the like, and a processor identifier associated with the control data.

図11は、本実施形態に係るパケット処理装置におけるルールテーブル12を一例として示す図である。図11を参照すると、ルールテーブル12は、ソケットとして、プロトコル処理に必要な制御データ以外に、処理プロセッサ識別子を含む。   FIG. 11 is a diagram illustrating an example of the rule table 12 in the packet processing apparatus according to the present embodiment. Referring to FIG. 11, the rule table 12 includes a processing processor identifier as a socket, in addition to control data necessary for protocol processing.

ユーザアプリケーション22は、ソケットを特定するためのファイル記述子をもち、ファイル記述子を利用してシステムコール(例えば、setsockopt)を利用し、ソケットの処理プロセッサ識別子を設定することができる。また、ユーザアプリケーション22は、ファイル記述子を指定し、readおよびwriteシステムコールにより、特定のソケット(コネクション)を利用したデータの送受信を行うことができる。   The user application 22 has a file descriptor for specifying a socket, and can set a processing processor identifier of the socket by using a system call (for example, setsockopt) using the file descriptor. Further, the user application 22 can send and receive data using a specific socket (connection) by specifying a file descriptor and using read and write system calls.

ルール抽出部32は、パケットに格納されている送信元のアドレスとポート番号、および、送信先のアドレスとポート番号の4つ組から、トランスポートレイヤの制御情報を表すソケットを特定する。   The rule extraction unit 32 specifies a socket representing control information of the transport layer from a set of four of the transmission source address and port number and the transmission destination address and port number stored in the packet.

ルール適用部42は、基本適用部421およびディスパッチ部422を有する。ルール適用部42は、送信受付部62または受信受付部72から送信パケットまたは受信パケットとソケットを受け取ると、基本適用部421は、第1の処理として、送信パケットまたは受信パケットがソケットに保持されるトランスポートレイヤの制御情報を利用して、送信または受信の設定を行う。また、ディスパッチ部422は、ソケットに保持されるプロセッサ識別子に応じてプロセッサを選択し、対応する処理スレッド52に、第2の処理として、送信パケットまたは受信パケットの送信処理または受信処理を行うように依頼する。   The rule application unit 42 includes a basic application unit 421 and a dispatch unit 422. When the rule application unit 42 receives the transmission packet or the reception packet and the socket from the transmission reception unit 62 or the reception reception unit 72, the basic application unit 421 holds the transmission packet or the reception packet in the socket as the first processing. Use the transport layer control information to configure transmission or reception. In addition, the dispatch unit 422 selects a processor according to the processor identifier held in the socket, and performs the transmission process or the reception process of the transmission packet or the reception packet as the second process in the corresponding processing thread 52. Ask.

処理スレッド52は、第1の実施形態における処理スレッド50と同様に、プロセッサ毎に用意されるカーネルスレッドである。ただし、本実施形態では、受信処理部521が受信パケットに対するレイヤ4の受信処理を行い、送信処理部522が送信パケットに対するレイヤ4以下の送信処理を行う点において、第1の実施形態と相違する。受信処理部521は、最終的に、受信パケットをユーザアプリケーション22に届ける。   The processing thread 52 is a kernel thread prepared for each processor, like the processing thread 50 in the first embodiment. However, this embodiment is different from the first embodiment in that the reception processing unit 521 performs layer 4 reception processing on the received packet, and the transmission processing unit 522 performs layer 4 or lower transmission processing on the transmission packet. . The reception processing unit 521 finally delivers the received packet to the user application 22.

送信受付部62は、ユーザアプリケーション22からファイル記述子と送信パケットを受け取る。送信受付部62は、ファイル記述子と送信パケットを受け取ると、それが示すソケットを特定し、ルール適用部42に渡す。   The transmission receiving unit 62 receives a file descriptor and a transmission packet from the user application 22. When receiving the file descriptor and the transmission packet, the transmission reception unit 62 specifies the socket indicated by the file descriptor and passes it to the rule application unit 42.

受信受付部72は、ネットワークから受信パケットを受け取り、そのアドレスおよびポート番号でルールテーブル12を検索する。また、受信受付部72は、検索結果のソケットと受信パケットをルール適用部42に渡す。   The reception receiving unit 72 receives a received packet from the network, and searches the rule table 12 with the address and port number. Also, the reception accepting unit 72 passes the search result socket and the received packet to the rule applying unit 42.

次に、本実施形態に係るパケット処理装置による送受信処理について説明する。   Next, transmission / reception processing by the packet processing apparatus according to the present embodiment will be described.

送信処理の動作は、次のとおりである。まず、ユーザアプリケーション22はソケットを識別するためのファイル記述子と送信パケットを引数として、sendシステムコールを呼び出す。sendシステムコールにより、ファイル記述子と送信パケットを受け取ると、送信受付部62は、ファイル記述子からソケットを特定する。次に、ルール適用部42の基本適用部421は、第1の処理として、特定されたソケットに保持されるトランスポートレイヤの制御情報を用いて、送信パケットに対する送信の設定を行う。また、ディスパッチ部422は、ソケットに保持されるプロセッサ識別子から対応する処理スレッド52を選択し、第2の処理として送信パケットの送信処理を依頼する。   The operation of the transmission process is as follows. First, the user application 22 calls a send system call using a file descriptor for identifying a socket and a transmission packet as arguments. When the file descriptor and the transmission packet are received by the send system call, the transmission reception unit 62 specifies the socket from the file descriptor. Next, as a first process, the basic application unit 421 of the rule application unit 42 sets transmission for the transmission packet using the control information of the transport layer held in the specified socket. Further, the dispatch unit 422 selects the corresponding processing thread 52 from the processor identifier held in the socket, and requests transmission processing of the transmission packet as the second processing.

一方、受信処理の動作は、次のとおりである。ネットワークから受信パケットが到着すると、受信受付部72は、受信パケットのアドレスおよびポート番号をもとに、ルールテーブル12から対応するソケットを特定する。次に、ルール適用部42の基本適用部421は、第1の処理として、特定されたソケットに保持されるトランスポートレイヤの制御情報を用いて、受信パケットの受信処理の設定を行う。また、ディスパッチ部422は、ソケットに保持されるプロセッサ識別子から対応する処理スレッド52を選択し、第2の処理として受信パケットの受信処理を依頼する。   On the other hand, the operation of the reception process is as follows. When a received packet arrives from the network, the reception accepting unit 72 specifies a corresponding socket from the rule table 12 based on the address and port number of the received packet. Next, the basic application unit 421 of the rule application unit 42 sets the reception process of the received packet using the control information of the transport layer held in the specified socket as the first process. In addition, the dispatch unit 422 selects the corresponding processing thread 52 from the processor identifier held in the socket, and requests the reception processing of the reception packet as the second processing.

本実施形態に係るパケット処理装置によると、ソケットが、トランスポートレイヤの接続情報に関する制御データと処理プロセッサとを関連付けて保持することにより、送信又は受信パケットに対する送信又は受信の設定と、該送信又は受信パケットに対する第2の処理を行うプロセッサの選択とを、1つの処理として実行するため、該送信又は受信パケットに対する処理時間を削減することができる。また、setsockopt等の既存のシステムコールを利用することにより、ユーザアプリケーション22が容易に第2の処理を行うプロセッサの設定を行うことができ、柔軟なプロセッサ選択を行うことが可能である。   According to the packet processing device according to the present embodiment, the socket holds the control data related to the transport layer connection information and the processing processor in association with each other, thereby setting the transmission or reception for the transmission or reception packet, and the transmission or reception. Since the selection of the processor that performs the second process on the received packet is executed as one process, the processing time for the transmitted or received packet can be reduced. Further, by using an existing system call such as setsockopt, the user application 22 can easily set a processor for performing the second process, and flexible processor selection can be performed.

(実施形態4)
本発明の第4の実施形態に係るパケット処理装置について、図面を参照して説明する。図12は、本実施形態に係るパケット処理装置の構成を一例として示すブロック図である。図12を参照すると、本実形態に係るパケット処理装置は、ルールテーブル13、ルール抽出部33、ルール適用部40、処理スレッド50、送信受付部60、および、受信受付部70を備えている。図12に示した本実施形態の構成要素のうち、図2と同一の符号を付したものの動作は、第1の実施形態における構成要素の動作と同一であることから、説明を省略する。
(Embodiment 4)
A packet processing apparatus according to a fourth embodiment of the present invention will be described with reference to the drawings. FIG. 12 is a block diagram illustrating an example of the configuration of the packet processing apparatus according to the present embodiment. Referring to FIG. 12, the packet processing apparatus according to this embodiment includes a rule table 13, a rule extraction unit 33, a rule application unit 40, a processing thread 50, a transmission reception unit 60, and a reception reception unit 70. Among the components of the present embodiment shown in FIG. 12, the operations of those denoted by the same reference numerals as those in FIG. 2 are the same as the operations of the components in the first embodiment, and thus the description thereof is omitted.

ルールテーブル13は、パケット処理装置の外部に設けられたルール設定装置23により、ルールが設定される。ルールテーブル13およびルール設定装置23に対して、一例として、非特許文献1に記載されているオープンフロー(OpenFlow)技術を採用することができる。   Rules are set in the rule table 13 by a rule setting device 23 provided outside the packet processing device. As an example, the open flow (OpenFlow) technique described in Non-Patent Document 1 can be adopted for the rule table 13 and the rule setting device 23.

オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。転送ノードとして機能するオープンフロースイッチ(OFS:OpenFlow Switch)は、制御サーバに位置付けられるオープンフローコントローラ(OFC:OpenFlow Controller)との通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。   OpenFlow captures communication as an end-to-end flow and performs path control, failure recovery, load balancing, and optimization on a per-flow basis. The OpenFlow Switch (OFS: OpenFlow Switch) functioning as a forwarding node has a secure channel for communication with an OpenFlow Controller (OFC: OpenFlow Controller) positioned in the control server, and an appropriate addition or rewrite instruction is given from the OpenFlow Controller. It operates according to the flow table.

本実施形態におけるパケット処理装置、ルール設定装置23、ルールテーブル13、および、ルールテーブル13に格納されたルールは、それぞれ、オープンフローにおけるオープンフロースイッチ、オープンフローコントローラ、フローテーブル、および、フローテーブルのエントリに相当する。   The packet processing device, the rule setting device 23, the rule table 13, and the rule stored in the rule table 13 in the present embodiment are the OpenFlow switch, OpenFlow controller, Flow table, and Flow table in OpenFlow, respectively. Corresponds to an entry.

図13は、オープンフローのフローテーブルのエントリを一例として示す図である。図13を参照すると、フローテーブルには、フロー毎に、パケットヘッダと照合する照合条件と、処理内容を定義したアクション(actions)と、フロー統計情報(stats)との組が定義される。   FIG. 13 is a diagram illustrating an example of an OpenFlow flow table entry. Referring to FIG. 13, for each flow, a set of a collation condition to collate with a packet header, an action (actions) that defines processing contents, and flow statistical information (stats) is defined for each flow.

図14は、非特許文献2に定義されているアクション名とアクションの内容を一例として示す表である。OUTPUTは、指定ポート(インタフェース)に出力するアクションである。SET_VLAN_VIDからSET_TP_DSTは、パケットヘッダのフィールドを修正するアクションである。   FIG. 14 is a table showing an example of action names and action contents defined in Non-Patent Document 2. OUTPUT is an action to be output to a designated port (interface). SET_VLAN_VID to SET_TP_DST are actions for modifying the field of the packet header.

オープンフロースイッチは、パケットを受信すると、フローテーブル(図13)から、受信パケットのヘッダ情報に適合する照合条件(FlowKey)を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送し、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを処理規則として用いてパケットを転送する。   When the OpenFlow switch receives the packet, the OpenFlow switch searches the flow table (FIG. 13) for an entry having a matching condition (FlowKey) that matches the header information of the received packet. When an entry that matches the received packet is found as a result of the search, the OpenFlow switch performs the processing content described in the action field of the entry on the received packet. On the other hand, if no entry matching the received packet is found as a result of the search, the OpenFlow switch forwards the received packet to the OpenFlow controller via the secure channel, and sends it to the source / destination of the received packet. Requests the determination of the route of the packet based on it, receives a flow entry that realizes this, and updates the flow table. In this way, the OpenFlow switch transfers a packet using the entry stored in the flow table as a processing rule.

本実施形態のルールテーブル13(図12)は、図13に示すように、照合条件フィールドおよびアクション(actions)フィールドを有する。また、照合条件フィールドには、第1の実施形態におけるルールテーブル10(図3)と同様に、照合条件が格納される。さらに、アクションフィールドには、第1の実施形態におけるルールテーブル10(図3)と同様に、アクションおよび処理プロセッサ識別子が格納される。   The rule table 13 (FIG. 12) of this embodiment has a collation condition field and an action (actions) field, as shown in FIG. In the collation condition field, collation conditions are stored as in the rule table 10 (FIG. 3) in the first embodiment. Further, the action field stores an action and a processor identifier as in the rule table 10 (FIG. 3) in the first embodiment.

ルール抽出部33は、ルールテーブル13を参照し、処理対象のパケットに適合するルールがルールテーブル13に存在しない場合には、オープンフローコントローラに相当するルール設定装置23に問い合わせる。ルール設定装置23は、ルール抽出部13から問い合わせを受けると、アクションと処理プロセッサ識別子と関連付けたルールをルールテーブル10のルールとして設定する。   The rule extraction unit 33 refers to the rule table 13 and inquires the rule setting device 23 corresponding to the OpenFlow controller when there is no rule matching the processing target packet in the rule table 13. When receiving an inquiry from the rule extraction unit 13, the rule setting device 23 sets a rule associated with an action and a processor identifier as a rule in the rule table 10.

本実施形態のように、複数のプロセッサを備えたパケット処理装置をオープンフローのオープンフロースイッチとして利用することで、各オープンフロースイッチは複数のプロセッサの中からパケットの処理を実行するプロセッサを柔軟かつ高速に選択することができる。   As in this embodiment, by using a packet processing device having a plurality of processors as an OpenFlow OpenFlow switch, each OpenFlow switch can flexibly and flexibly select a processor that executes packet processing from among a plurality of processors. Can be selected at high speed.

本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。   Within the scope of the entire disclosure (including claims) of the present invention, the embodiment can be changed and adjusted based on the basic technical concept. Various combinations or selections of various disclosed elements (including each element of each claim, each element of each embodiment, each element of each drawing, etc.) are possible within the scope of the claims of the present invention. . That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.

10〜13,110 ルールテーブル
20、21 ルール設定部
22 ユーザアプリケーション
23 ルール設定装置
30〜33,130 ルール抽出部
40,41,42,140 ルール適用部
401,411,421 基本適用部
402,422 ディスパッチ部
50,52 処理スレッド
501,521 受信処理部
502,522 送信処理部
60〜62 送信受付部
70〜72 受信受付部
10 to 13, 110 Rule table 20, 21 Rule setting unit 22 User application 23 Rule setting device 30 to 33, 130 Rule extraction unit 40, 41, 42, 140 Rule application unit 401, 411, 421 Basic application unit 402, 422 Dispatch Units 50 and 52 Processing threads 501 and 521 Reception processing units 502 and 522 Transmission processing units 60 to 62 Transmission reception units 70 to 72 Reception reception units

Claims (20)

パケットに格納された情報、該パケットに対する第1の処理を示すアクション、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルと、
処理すべきパケットである対象パケットに格納された情報に対応するルールを、前記ルールテーブルから抽出するルール抽出部と、
抽出されたルールに基づいて、前記対象パケットに対する前記アクションに従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行うルール適用部と、を備えていることを特徴とするパケット処理装置。
A rule table holding rules for associating information stored in a packet, an action indicating a first process for the packet, and a processor identifier for identifying a processor performing the second process for the packet;
A rule extraction unit that extracts a rule corresponding to information stored in a target packet, which is a packet to be processed, from the rule table;
A rule applying unit that executes the first process according to the action on the target packet based on the extracted rule and requests the second process to the processor corresponding to the processor identifier; A packet processing apparatus comprising:
前記第1の処理は、前記対象パケットを破棄すべきか否かを判定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であることを特徴とする、請求項1に記載のパケット処理装置。
The first process is a process for determining whether or not to discard the target packet;
The second process is an upper layer process for the target packet when the target packet is a packet to be received by the packet processing device, and the target packet is a packet to be transmitted by the packet processing device. The packet processing device according to claim 1, wherein in some cases, the processing is a lower layer process for the target packet.
前記ルール適用部は、前記第1の処理において前記対象パケットが破棄すべきパケットでない場合には、前記対象パケットに対する前記第2の処理を前記プロセッサに依頼することを特徴とする、請求項2に記載のパケット処理装置。   The rule applying unit requests the processor to perform the second process on the target packet when the target packet is not a packet to be discarded in the first process. The packet processing apparatus as described. 前記ルールテーブルは、パケットに格納された情報、該パケットに対する第1の処理を示すアクション、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子、および、該パケットを含むフローを定義するフィールドを示すフロー定義フィールドを互いに関連付けるルールを保持し、
前記ルール適用部は、抽出されたルールに複数のプロセッサ識別子が含まれる場合には、前記フロー定義フィールドを参照し、該複数のプロセッサ識別子に相当する複数のプロセッサのうちのいずれかのプロセッサに対して、同一のフローに含まれるすべての対象パケットに対する前記第2の処理を依頼することを特徴とする、請求項2または3に記載のパケット処理装置。
The rule table includes information stored in a packet, an action indicating a first process for the packet, a processor identifier for identifying a processor performing a second process for the packet, and a field defining a flow including the packet Maintains a rule that associates flow definition fields that indicate
When a plurality of processor identifiers are included in the extracted rule, the rule application unit refers to the flow definition field, and selects one of a plurality of processors corresponding to the plurality of processor identifiers. The packet processing apparatus according to claim 2, wherein the second processing is requested for all target packets included in the same flow.
前記ルール抽出部は、前記ルールテーブルが前記対象パケットに格納された情報に対応するルールを保持していない場合には、前記ルールを設定可能なルール設定装置に該情報に適合するルールを設定するように依頼することを特徴とする、請求項2ないし4のいずれか1項に記載のパケット処理装置。   When the rule table does not hold a rule corresponding to the information stored in the target packet, the rule extraction unit sets a rule that matches the information in a rule setting device capable of setting the rule. The packet processing device according to claim 2, wherein the packet processing device is requested as follows. 前記第1の処理は、前記対象パケットの宛先を判定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であることを特徴とする、請求項1に記載のパケット処理装置。
The first process is a process of determining a destination of the target packet;
The second process is an upper layer process for the target packet when the target packet is a packet to be received by the packet processing device, and the target packet is a packet to be transmitted by the packet processing device. The packet processing device according to claim 1, wherein in some cases, the processing is a lower layer process for the target packet.
前記ルール適用部は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合において、前記対象パケットの宛先が前記パケット処理装置である場合には、前記対象パケットに対する前記第2の処理を前記プロセッサに依頼することを特徴とする、請求項6に記載のパケット処理装置。   When the target packet is a packet to be received by the packet processing device and the destination of the target packet is the packet processing device, the rule application unit performs the second processing on the target packet. The packet processing apparatus according to claim 6, wherein the packet processing apparatus requests the processor. 前記ルール抽出部は、抽出したルールを一時的に保持するキャッシュを有し、前記対象パケットに格納された情報に適合するルールを該キャッシュから抽出し、
前記ルール適用部は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合において、前記対象パケットに適合するルールが前記ルール抽出部により前記キャッシュから抽出されたときには、前記対象パケットに対する前記第2の処理を前記プロセッサに依頼することを特徴とする、請求項6または7に記載のパケット処理装置。
The rule extraction unit has a cache that temporarily holds the extracted rules, and extracts rules that match the information stored in the target packet from the cache,
The rule application unit, when the target packet is a packet to be received by the packet processing device, and when a rule that matches the target packet is extracted from the cache by the rule extraction unit, the rule application unit The packet processing device according to claim 6, wherein the packet processing device requests the processor to perform a second process.
前記第1の処理は、前記対象パケットを送受信する際のトランスポートレイヤにおける制御情報を特定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4の受信処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4以下の送信処理であることを特徴とする、請求項1に記載のパケット処理装置。
The first process is a process of specifying control information in a transport layer when transmitting / receiving the target packet;
When the target packet is a packet to be received by the packet processing device, the second process is a layer 4 reception process for the target packet using the specified control information. The packet processing device according to claim 1, wherein when the packet is to be transmitted by the packet processing device, the packet processing device is a layer 4 or lower transmission processing for the target packet using the specified control information. .
前記ルールテーブルは、優先度に応じてソートされた複数のルールを保持し、
前記ルール抽出部は、前記対象パケットに格納された情報に適合する複数のルールが前記ルールテーブルに格納されている場合には、該複数のルールのうちの優先度が高いものを抽出することを特徴とする、請求項1に記載のパケット処理装置。
The rule table holds a plurality of rules sorted according to priority,
The rule extraction unit, when a plurality of rules that match the information stored in the target packet is stored in the rule table, to extract a rule having a high priority among the plurality of rules. The packet processing device according to claim 1, wherein the packet processing device is characterized by:
前記ルールテーブルのルールは、パケットに格納された情報として、送信元アドレス、宛先アドレス、送信元ポート番号、および、宛先ポート番号のうちの少なくともいずれかを含んでいることを特徴とする、請求項1に記載のパケット処理装置。   The rule of the rule table includes at least one of a source address, a destination address, a source port number, and a destination port number as information stored in a packet. 2. The packet processing device according to 1. 前記ルールテーブルに対して、ルールの追加、変更、または、削除を行うルール設定部をさらに備えていることを特徴とする、請求項1に記載のパケット処理装置。   The packet processing device according to claim 1, further comprising a rule setting unit that adds, changes, or deletes rules with respect to the rule table. 複数のプロセッサのうちの一のプロセッサが、パケットに格納された情報、該パケットに対する第1の処理を示すアクション、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルから、処理すべきパケットである対象パケットに格納された情報に対応するルールを抽出する工程と、
前記一のプロセッサが、抽出されたルールに基づいて、前記対象パケットに対する前記アクションに従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行う工程と、を含むことを特徴とするパケット処理方法。
A rule in which one of a plurality of processors associates information stored in a packet, an action indicating a first process for the packet, and a processor identifier for identifying a processor performing the second process for the packet Extracting a rule corresponding to information stored in a target packet, which is a packet to be processed, from a rule table holding
Based on the extracted rule, the one processor executes the first process according to the action for the target packet and requests the processor corresponding to the processor identifier for the second process. And a packet processing method.
前記第1の処理は、前記対象パケットを破棄すべきか否かを判定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であることを特徴とする、請求項13に記載のパケット処理方法。
The first process is a process for determining whether or not to discard the target packet;
The second process is an upper layer process for the target packet when the target packet is a packet to be received by the packet processing device, and the target packet is a packet to be transmitted by the packet processing device. 14. The packet processing method according to claim 13, wherein the packet processing is a lower layer process for the target packet in some cases.
前記第1の処理は、前記対象パケットの宛先を判定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であることを特徴とする、請求項13に記載のパケット処理方法。
The first process is a process of determining a destination of the target packet;
The second process is an upper layer process for the target packet when the target packet is a packet to be received by the packet processing device, and the target packet is a packet to be transmitted by the packet processing device. 14. The packet processing method according to claim 13, wherein the packet processing is a lower layer process for the target packet in some cases.
前記第1の処理は、前記対象パケットを送受信する際のトランスポートレイヤにおける制御情報を特定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4の受信処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4以下の送信処理であることを特徴とする、請求項13に記載のパケット処理方法。
The first process is a process of specifying control information in a transport layer when transmitting / receiving the target packet;
When the target packet is a packet to be received by the packet processing device, the second process is a layer 4 reception process for the target packet using the specified control information. 14. The packet processing method according to claim 13, wherein when the packet is to be transmitted by the packet processing device, the packet processing method is a layer 4 or lower transmission process for the target packet using the specified control information. .
パケットに格納された情報、該パケットに対する第1の処理を示すアクション、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルから、処理すべきパケットである対象パケットに格納された情報に対応するルールを抽出する処理と、
抽出されたルールに基づいて、前記対象パケットに対する前記アクションに従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行う処理と、を複数のプロセッサのうちの一のプロセッサに実行させることを特徴とするプログラム。
A packet to be processed from a rule table that holds information stored in the packet, an action indicating the first process for the packet, and a rule that associates a processor identifier for identifying the processor that performs the second process for the packet. A process for extracting a rule corresponding to information stored in the target packet,
Based on the extracted rule, a process of executing the first process according to the action on the target packet and requesting the second process to the processor corresponding to the processor identifier is a plurality of processes. A program that is executed by one of the processors.
前記第1の処理は、前記対象パケットを破棄すべきか否かを判定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であることを特徴とする、請求項17に記載のプログラム。
The first process is a process for determining whether or not to discard the target packet;
The second process is an upper layer process for the target packet when the target packet is a packet to be received by the packet processing device, and the target packet is a packet to be transmitted by the packet processing device. The program according to claim 17, wherein in some cases, the processing is a lower layer process for the target packet.
前記第1の処理は、前記対象パケットの宛先を判定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であることを特徴とする、請求項17に記載のプログラム。
The first process is a process of determining a destination of the target packet;
The second process is an upper layer process for the target packet when the target packet is a packet to be received by the packet processing device, and the target packet is a packet to be transmitted by the packet processing device. The program according to claim 17, wherein in some cases, the processing is a lower layer process for the target packet.
前記第1の処理は、前記対象パケットを送受信する際のトランスポートレイヤにおける制御情報を特定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4の受信処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4以下の送信処理であることを特徴とする、請求項17に記載のプログラム。
The first process is a process of specifying control information in a transport layer when transmitting / receiving the target packet;
When the target packet is a packet to be received by the packet processing device, the second process is a layer 4 reception process for the target packet using the specified control information. 18. The program according to claim 17, wherein if the packet is to be transmitted by the packet processing device, the program is a transmission process of layer 4 or lower for the target packet using the specified control information.
JP2012555968A 2011-02-04 2012-02-03 Packet processing apparatus, packet processing method and program Active JP5900352B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012555968A JP5900352B2 (en) 2011-02-04 2012-02-03 Packet processing apparatus, packet processing method and program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011022303 2011-02-04
JP2011022303 2011-02-04
PCT/JP2012/052465 WO2012105677A1 (en) 2011-02-04 2012-02-03 Packet processing device, packet processing method and program
JP2012555968A JP5900352B2 (en) 2011-02-04 2012-02-03 Packet processing apparatus, packet processing method and program

Publications (2)

Publication Number Publication Date
JPWO2012105677A1 JPWO2012105677A1 (en) 2014-07-03
JP5900352B2 true JP5900352B2 (en) 2016-04-06

Family

ID=46602877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012555968A Active JP5900352B2 (en) 2011-02-04 2012-02-03 Packet processing apparatus, packet processing method and program

Country Status (2)

Country Link
JP (1) JP5900352B2 (en)
WO (1) WO2012105677A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2897332A4 (en) * 2012-09-11 2016-04-20 Nec Corp Controller, communication system, communication method and program
CN104811431B (en) 2014-01-29 2018-01-16 华为技术有限公司 Data package processing method and device based on parallel protocol stack instance
EP3116178B1 (en) * 2014-03-04 2019-02-06 Nec Corporation Packet processing device, packet processing method, and program
JP5917678B1 (en) * 2014-12-26 2016-05-18 株式会社Pfu Information processing apparatus, method, and program
US10649847B2 (en) 2015-05-11 2020-05-12 Nec Corporation Communication apparatus, system, method, and non-transitory medium
JP6600250B2 (en) * 2015-12-21 2019-10-30 Kddi株式会社 Control device and program for packet transfer device having multi-core CPU
JP6773458B2 (en) 2016-06-08 2020-10-21 日本電気通信システム株式会社 Packet processor, packet processing method, and program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63318894A (en) * 1987-06-12 1988-12-27 エイ・ティ・アンド・ティ・コーポレーション Call control for distributed processing communication exchange system
JP2002164928A (en) * 2000-10-11 2002-06-07 Lucent Technol Inc Communication method, communication system, and communication unit
JP2006174374A (en) * 2004-12-20 2006-06-29 Fujitsu Ltd Relay system
JP2007166513A (en) * 2005-12-16 2007-06-28 Nippon Telegr & Teleph Corp <Ntt> Device and method for processing communication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63318894A (en) * 1987-06-12 1988-12-27 エイ・ティ・アンド・ティ・コーポレーション Call control for distributed processing communication exchange system
JP2002164928A (en) * 2000-10-11 2002-06-07 Lucent Technol Inc Communication method, communication system, and communication unit
JP2006174374A (en) * 2004-12-20 2006-06-29 Fujitsu Ltd Relay system
JP2007166513A (en) * 2005-12-16 2007-06-28 Nippon Telegr & Teleph Corp <Ntt> Device and method for processing communication

Also Published As

Publication number Publication date
WO2012105677A1 (en) 2012-08-09
JPWO2012105677A1 (en) 2014-07-03

Similar Documents

Publication Publication Date Title
JP5900352B2 (en) Packet processing apparatus, packet processing method and program
KR101703088B1 (en) Aggregated routing method based on sdn and system thereof
RU2589340C2 (en) Network system and method of acquiring vlan tag data
US9614930B2 (en) Virtual machine mobility using OpenFlow
RU2523917C2 (en) Communication control system and communication control method
JP5440691B2 (en) Packet transfer system, control device, transfer device, processing rule creation method and program
US20160182385A1 (en) Shortening of service paths in service chains in a communications network
JP5800019B2 (en) Communication path control system, path control device, communication path control method, and path control program
CN108353029A (en) For managing the method and system for calculating the data service in network
US10243849B2 (en) Distributed methodology for peer-to-peer transmission of stateful packet flows
JP6323547B2 (en) COMMUNICATION SYSTEM, CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM
WO2015114473A1 (en) Method and apparatus for locality sensitive hash-based load balancing
WO2014112616A1 (en) Control apparatus, communication apparatus, communication system, switch control method and program
JP5993817B2 (en) Routing system and method in carrier network
CN106357726B (en) Load-balancing method and device
JP5858141B2 (en) Control device, communication device, communication system, communication method, and program
US20150043588A1 (en) Communication System, Upper Layer Switch, Control Apparatus, Switch Control Method, and Program
JP5725236B2 (en) Communication system, node, packet transfer method and program
JP2015533045A (en) Communication system, communication method, information processing apparatus, communication control method, and program
JP6524911B2 (en) Network controller, network control method and program
US20150381775A1 (en) Communication system, communication method, control apparatus, control apparatus control method, and program
US9894017B2 (en) Communication system, physical machine, virtual network management apparatus, and network control method
KR101707073B1 (en) Error detection network system based on sdn
JP5359357B2 (en) Packet processing apparatus, packet processing order control method and packet processing order control program used in the processing apparatus
JP2015511097A (en) COMMUNICATION SYSTEM, CONTROL DEVICE, COMMUNICATION METHOD, AND PROGRAM

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160104

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: 20160209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160222

R150 Certificate of patent or registration of utility model

Ref document number: 5900352

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150