JPWO2016125501A1 - Data processing apparatus, information entry management method, and information entry management program - Google Patents

Data processing apparatus, information entry management method, and information entry management program Download PDF

Info

Publication number
JPWO2016125501A1
JPWO2016125501A1 JP2016573232A JP2016573232A JPWO2016125501A1 JP WO2016125501 A1 JPWO2016125501 A1 JP WO2016125501A1 JP 2016573232 A JP2016573232 A JP 2016573232A JP 2016573232 A JP2016573232 A JP 2016573232A JP WO2016125501 A1 JPWO2016125501 A1 JP WO2016125501A1
Authority
JP
Japan
Prior art keywords
information
search
search tree
node
information entry
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.)
Granted
Application number
JP2016573232A
Other languages
Japanese (ja)
Other versions
JP6652070B2 (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
Publication of JPWO2016125501A1 publication Critical patent/JPWO2016125501A1/en
Application granted granted Critical
Publication of JP6652070B2 publication Critical patent/JP6652070B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Abstract

データ処理用の情報エントリを探索する探索木が複数の場合でも負荷を低減可能なデータ処理装置を提供する。探索木制御部10にて探索木をグループ化した各グループのベース探索木を選択し、情報エントリの操作に際し、該情報エントリのデータ識別情報と重複する探索空間にあるノードの更新履歴情報を、また該ノードを含む探索木が属するグループのベース探索木について該データ識別情報と重複する探索空間にあるノードの共有更新履歴情報を更新する。キャッシュテーブル制御部40にて探索木による情報エントリの探索結果の到達ノードと該ノードの更新履歴情報及び共有更新履歴情報とを含む情報をキャッシュエントリとして記憶し、該キャッシュエントリによるデータ処理に際し、該キャッシュエントリに関する更新履歴情報及び共有更新履歴情報の各キャッシュを最新のものと比較し、不整合がある場合該キャッシュエントリは無効とする。Provided is a data processing device capable of reducing the load even when there are a plurality of search trees for searching information entries for data processing. The search tree control unit 10 selects a base search tree of each group obtained by grouping the search trees, and when operating the information entry, update history information of nodes in the search space overlapping with the data identification information of the information entry, In addition, the shared update history information of the node in the search space overlapping the data identification information is updated for the base search tree of the group to which the search tree including the node belongs. The cache table control unit 40 stores, as a cache entry, information including the arrival node of the search result of the information entry by the search tree, the update history information of the node, and the shared update history information. Each cache of the update history information and the shared update history information related to the cache entry is compared with the latest cache, and if there is a mismatch, the cache entry is invalidated.

Description

本発明は、データ処理装置、情報エントリ管理方法および情報エントリ管理プログラムに関し、特に、データ処理の一例として、受信したパケットを処理するデータ処理装置、情報エントリ管理方法および情報エントリ管理プログラムに関する。   The present invention relates to a data processing apparatus, an information entry management method, and an information entry management program. In particular, the present invention relates to a data processing apparatus, an information entry management method, and an information entry management program that process received packets as an example of data processing.

イーサネット(Ethernet)(登録商標)スイッチやルータ、オープンフロー(OpenFlow)スイッチのように、一定のルールにしたがってパケットを転送したり破棄したりするパケット処理装置は、パケットを受信し処理する場合、一般的に以下のような処理を実行する。   A packet processing device that transfers or discards a packet according to a certain rule, such as an Ethernet (registered trademark) switch, a router, or an open flow (OpenFlow) switch, generally receives and processes a packet. Specifically, the following processing is executed.

(1)まず、パケットを通信インタフェースから受信する。   (1) First, a packet is received from the communication interface.

(2)次に、受信したパケットを処理するために必要な情報を検索する。   (2) Next, information necessary for processing the received packet is searched.

(3)最後に、検索した当該情報に基づき、受信した当該パケットを処理する。   (3) Finally, the received packet is processed based on the retrieved information.

上記(2)の処理は、一般に、パケット分類分け(Packet Classification)とも呼ばれ、あらかじめ与えられたルールセットの中から受信パケットに適合する最高優先度のルールを探索する処理である。当該ルールは、マッチ条件(例えば適合するアドレスの範囲)と、当該マッチ条件に適合したパケットに対して実行される処理であるアクションとから構成される。また、当該ルールには優先度や統計情報が含まれる場合もある。   The process (2) is generally called packet classification, and is a process for searching for a rule having the highest priority matching a received packet from a rule set given in advance. The rule includes a match condition (for example, a range of suitable addresses) and an action that is a process executed on a packet that meets the match condition. In addition, the rule may include priority and statistical information.

ここで、探索木を用いたパケット分類分け(Packet Classification)方式に関する技術が非特許文献1(Balajee Vamananらによる“EffiCuts: Optimizing Packet Classification for Memory and Throughput”(Proceedings of the ACM SIGCOMM 2010))に開示されている。該非特許文献1に記載の技術は、dフィールドのルール探索問題をd次元空間内の部分空間探索問題として扱う。該非特許文献1に記載の技術は、探索木を辿るたびに探索空間をカットして探索領域を狭めていくことによって、受信パケットに適合するルールを見つけ出すという技術である。   Here, a technique related to a packet classification method using a search tree is described in Non-Patent Document 1 (“EffiCuts: Optimized Packet Classification for Memory and Throughs”, disclosed in “EffiCuts: Optimized Packets for Memory and Throughs” by Prof. 20). Has been. The technique described in Non-Patent Document 1 treats the d field rule search problem as a subspace search problem in the d-dimensional space. The technique described in Non-Patent Document 1 is a technique for finding a rule that matches a received packet by cutting the search space and narrowing the search area each time the search tree is traced.

ここで、探索木を構成するノードは、d次元空間の部分空間を表し、ルートノードは、d次元空間において採り得る全領域(初期探索領域)を表す。各ルールは、それぞれのルールが表すd次元部分空間と重複する部分空間を有する全てのノードに関連付けられる。或るノードに関連付けられる(含まれる)ルールの数が、あらかじめ定めた一定数(Binth)より多い場合、当該ノードは1つまたは複数の次元においてカット(Cut)され、子ノードが作成される(つまり、当該ノードは中間ノードである)。一方、或るノードに関連付けられる(含まれる)ルールの数が、一定数(Binth)以下の場合、当該ノードはリーフ(葉)ノードとなる。   Here, the nodes constituting the search tree represent a partial space of the d-dimensional space, and the root node represents the entire region (initial search region) that can be taken in the d-dimensional space. Each rule is associated with every node having a subspace that overlaps the d-dimensional subspace represented by the respective rule. If the number of rules associated with (included in) a certain node is greater than a predetermined number (Binth), the node is cut in one or more dimensions to create child nodes ( That is, the node is an intermediate node). On the other hand, when the number of rules associated with (included in) a certain node is equal to or less than a certain number (Binth), the node is a leaf node.

探索木を用いた探索処理の例を図23〜図25を用いて説明する。図23は、ルールセットの一例を示す模式図である。図23に示す例は、2フィールド(次元Xおよび次元Y)のルール探索を想定し、次元Xおよび次元Yの採り得る範囲が、それぞれ、0〜255および0〜127である場合を示している。図23において、各矩形は、それぞれ、ルールR1〜R7のマッチ条件に対応する2次元部分空間を示している。矩形が重複している場合、矩形の全てが表示されているルールが、より高い優先度を持つものとする。   An example of search processing using a search tree will be described with reference to FIGS. FIG. 23 is a schematic diagram illustrating an example of a rule set. The example shown in FIG. 23 assumes a rule search of two fields (dimension X and dimension Y), and shows a case where the ranges that dimension X and dimension Y can take are 0 to 255 and 0 to 127, respectively. . In FIG. 23, each rectangle represents a two-dimensional subspace corresponding to the matching conditions of the rules R1 to R7. If the rectangles overlap, the rule in which all of the rectangles are displayed shall have a higher priority.

図24は、探索木の一例を示す模式図であり、図23に示したルールセットのルールR1〜R7からルール探索を行うための探索木の一例を示している(Binth=2の場合)。つまり、図24は、図23に示したルールセット例に関して、ルートノードにおいて、探索空間をX軸で4つの部分空間にカット(Cut)し、また、ノード1において、探索空間をY軸で2つの部分空間にカット(Cut)した例を示している。なお、図24において、楕円は中間ノードを示し、矩形はリーフノードを示している。   FIG. 24 is a schematic diagram illustrating an example of a search tree, and illustrates an example of a search tree for performing a rule search from the rules R1 to R7 of the rule set illustrated in FIG. 23 (when Binth = 2). That is, in FIG. 24, with respect to the rule set example shown in FIG. 23, the search space is cut into four partial spaces along the X axis at the root node, and the search space is divided into two along the Y axis at node 1. An example in which a cut is made into two partial spaces is shown. In FIG. 24, an ellipse indicates an intermediate node, and a rectangle indicates a leaf node.

図25は、探索木のノードに係る情報の一例を示す表であり、図24の探索木の各ノードが表す部分空間および各ノードが含むルールを示している。図25に示すように、ルートノードが表す部分空間は、探索空間全体である。これより、当該ルートノードが表す部分空間は、次元Xおよび次元Yそれぞれが0≦X≦255および0≦Y≦127の範囲であり、当該ルートノードに含まれるルールはR1〜R7である。また、リーフノード4については、ルートノードからリーフノード4に到達する過程において、探索空間がX軸で4つにカット(Cut)され、Y軸で2つにカット(Cut)されている。また、X軸およびY軸の各カット(Cut)におけるリーフノード4の位置は、それぞれ、第4番目および第1番目である。これより、当該リーフノード4が表す部分空間は、次元Xおよび次元Yそれぞれが192≦X≦255および0≦Y≦63の範囲であり、当該リーフノード4に含まれるルールはR5、R7である。   FIG. 25 is a table showing an example of information related to the nodes of the search tree, and shows the partial space represented by each node of the search tree of FIG. 24 and the rules included in each node. As shown in FIG. 25, the partial space represented by the root node is the entire search space. As a result, the subspace represented by the root node has dimensions X and Y in the ranges of 0 ≦ X ≦ 255 and 0 ≦ Y ≦ 127, and the rules included in the root node are R1 to R7. For the leaf node 4, in the process of reaching the leaf node 4 from the root node, the search space is cut into four on the X axis and cut into two on the Y axis. The positions of the leaf nodes 4 in the X-axis and Y-axis cuts (Cut) are the fourth and first positions, respectively. As a result, the subspace represented by the leaf node 4 has dimensions X and Y in the ranges of 192 ≦ X ≦ 255 and 0 ≦ Y ≦ 63, and the rules included in the leaf node 4 are R5 and R7. .

ここで、例えば、XおよびYの値が、それぞれ、230および30であるパケットを受信した場合のルール探索処理の例について説明する。まず、パケット処理装置は、ルートノードを確認し、受信パケットのXの値が230であることから、4番目の部分空間を示すノード1(192≦X≦255)を選択する。次に、パケット処理装置は、ノード1を確認し、受信パケットのYの値が30であることから、第1番目の部分空間を示すリーフノード4(0≦Y≦63)を選択する。リーフノード4は、前述のように、ルールR5およびR7を含んでいる。パケット処理装置は、、これらのルールの中から、線形探索を行い、受信パケットに対応する最高優先度を持つルールとして例えばルールR7を発見する。   Here, for example, an example of rule search processing when packets with X and Y values of 230 and 30 are received will be described. First, the packet processing apparatus confirms the root node and selects the node 1 (192 ≦ X ≦ 255) indicating the fourth partial space because the value of X of the received packet is 230. Next, the packet processing apparatus confirms the node 1 and selects the leaf node 4 (0 ≦ Y ≦ 63) indicating the first partial space because the Y value of the received packet is 30. The leaf node 4 includes the rules R5 and R7 as described above. The packet processing device performs a linear search from these rules and finds, for example, rule R7 as a rule having the highest priority corresponding to the received packet.

以上の探索処理の説明においては、探索木が一つの場合を例示した。上記非特許文献1には、ルールの特徴を用いて分類することによってルールセットを複数のサブルールセットに分割し、サブルールセット毎に探索木を構築して、探索処理に使用する例が開示されている。サブルールセット毎に探索木を構築した場合、受信パケットに対するルール探索処理は、各サブルールセットの各探索木それぞれに対して実行され、得られた複数のルール(得られるルール数はサブルールセットの数と同じ)の中から最高優先度のルールが選択される。   In the above description of the search process, the case where there is one search tree is exemplified. Non-Patent Document 1 discloses an example in which a rule set is divided into a plurality of sub-rule sets by classifying using rule characteristics, a search tree is constructed for each sub-rule set, and used for search processing. Has been. When a search tree is constructed for each sub-rule set, the rule search process for the received packet is executed for each search tree of each sub-rule set, and a plurality of obtained rules (the number of obtained rules is the sub-rule set). Rule with the highest priority) is selected.

また、探索木を用いたルール探索処理の探索結果を記憶しておいて(キャッシュしておいて)、再利用することによって、探索性能を向上させる技術が、特許文献1(特開2000−41065号公報「データ検索回路」)に開示されている。該特許文献1に記載の技術においては、探索木による探索結果が、例えば、ハッシュテーブルとして実装されている、完全一致のキャッシュエントリ検索用テーブルに登録される。パケット受信時に、当該パケットに完全一致するキャッシュエントリがキャッシュエントリ検索用テーブルに存在する場合には、当該キャッシュエントリに記憶された探索木による探索結果が使用され、探索木を用いた探索処理は省略される。   Japanese Patent Laid-Open No. 2000-41065 discloses a technique for improving search performance by storing (caching) search results of rule search processing using a search tree and reusing them. No. “Data Search Circuit”). In the technique described in Patent Document 1, a search result based on a search tree is registered in an exact match cache entry search table implemented as, for example, a hash table. When a cache entry that exactly matches the packet exists in the cache entry search table when the packet is received, the search result based on the search tree stored in the cache entry is used, and the search process using the search tree is omitted. Is done.

ここで、探索結果がキャッシュエントリ検索用テーブルにキャッシュされて使用される構成において、ルールセットの変更(すなわち、探索木へのルールの追加、変更、削除)が行われた場合、キャッシュされている探索結果も適切に更新されなければならない。適切に更新されない場合には、受信したパケットは古いルールセットにおける探索結果にしたがって処理されることとなり、ルールによる通信処理・制御が正しく行なわれなくなる。   Here, in the configuration in which the search result is cached in the cache entry search table and used, if the rule set is changed (that is, the rule is added to, changed, or deleted from the search tree), it is cached. Search results must also be updated appropriately. If it is not updated properly, the received packet is processed according to the search result in the old rule set, and communication processing / control by the rule is not performed correctly.

探索木(ルーティングテーブル)の変更に伴って、探索木による探索結果をキャッシュしていたキャッシュエントリを、キャッシュエントリ検索用テーブルから削除する場合の負荷を低減する技術が、特許文献2(特許第4646823号公報「ルータ装置、ルータ装置におけるルート決定方法」)に開示されている。該特許文献2に記載の技術においては、ルーティングテーブルに格納される、パケットの宛先アドレスと、ルートとの対応関係を表すルーティングエントリにカウンタ値が設けられ、ルーティングエントリが更新された際には、当該カウンタ値がインクリメントされる。   Patent Document 2 (Patent No. 4664623) is a technique for reducing a load when a cache entry that has cached a search result based on a search tree is deleted from the cache entry search table in accordance with a change in the search tree (routing table). No. “Router Device, Route Determination Method in Router Device”). In the technique described in Patent Document 2, when a counter value is provided in a routing entry representing a correspondence relationship between a destination address of a packet and a route stored in the routing table, and the routing entry is updated, The counter value is incremented.

そして、特許文献2に開示された装置は、パケットを受信し、当該パケットに対応するキャッシュエントリ(ルーティングテーブルの検索結果(すなわちルーティングエントリの情報)を含む)を使用して、当該パケットを処理する。この処理の際、該装置は、当該ルーティングエントリのカウンタ値を参照して、当該ルーティングエントリの更新の有無を判断する。該装置は、更新が検出された場合には、キャッシュエントリを削除する。これにより、該装置は、削除するキャッシュエントリを特定するための負荷を低減することができ、キャッシュエントリを削除する負荷を低減することができる。   Then, the device disclosed in Patent Document 2 receives a packet, and processes the packet using a cache entry (including a routing table search result (that is, routing entry information)) corresponding to the packet. . During this process, the device refers to the counter value of the routing entry to determine whether the routing entry has been updated. The device deletes the cache entry when an update is detected. Accordingly, the apparatus can reduce the load for specifying the cache entry to be deleted, and can reduce the load for deleting the cache entry.

特開2000−41065号公報JP 2000-41065 A 特許第4646823号公報Japanese Patent No. 4664623

Balajee Vamanan、Gwendolyn Voskuilen and T.N. Vijaykumar;“EffiCuts: Optimizing Packet Classification for Memory and Throughput”、Proceedings of the ACM SIGCOMM 2010 conference、2010年、p.p.207−218Balajee Vamanan, Gwendlyn Voskuiren and T.M. N. Vijaykumar; “EffiCuts: Optimizing Packet Classification for Memory and Throughput”, Processeds of the ACM SIGCOMM 2010 conference, 2010. p. p. 207-218

以上のように、ルールセットをサブルールセットに分割し、サブルールセット毎に探索木を構築して探索に使用するパケット分類分け(Packet Classification)方式においても、探索結果をキャッシュして再利用することによって、処理性能の向上を期待することができる。一方、最新のルールセットに基づく通信処理・制御を行うためには、探索木群への変更に応じて、キャッシュされた情報も適切に更新される必要がある。   As described above, even in a packet classification method in which a rule set is divided into sub-rule sets and a search tree is constructed for each sub-rule set and used for searching, the search results are cached and reused. Thus, improvement in processing performance can be expected. On the other hand, in order to perform communication processing / control based on the latest rule set, the cached information needs to be appropriately updated in accordance with the change to the search tree group.

しかしながら、上記特許文献2に開示された技術は、単一の探索木を前提としたものである。該技術を、探索木が複数存在する場合に適用すると、パケットを受信する都度、全ての探索木それぞれについてカウンタ値を参照して、更新の有無を確認する処理が実行される。したがって、複数の探索木が存在する場合、パケット受信処理におけるデータ参照回数が増え、処理性能が悪化するという問題が発生する。かかる問題は、特に、CPU(Central Processing Unit)と、キャッシュメモリを含む階層メモリ構成を備えたメモリとからなるコンピュータにおいて上記のような処理が実行される場合に、より顕著となる。   However, the technique disclosed in Patent Document 2 is based on a single search tree. When this technique is applied to a case where there are a plurality of search trees, each time a packet is received, a process for confirming whether or not there is an update is executed by referring to the counter value for each of the search trees. Therefore, when there are a plurality of search trees, there is a problem that the number of times of data reference in the packet reception process increases and the processing performance deteriorates. Such a problem becomes more prominent particularly when the above-described processing is executed in a computer including a CPU (Central Processing Unit) and a memory having a hierarchical memory configuration including a cache memory.

つまり、カウンタ値は、探索木のノード毎に存在し、各パケットは、典型的には、異なるノードに含まれるルールに適合される。このため、カウンタ値へのメモリアクセスは、メモリアドレス空間において離散的な領域(アドレス)に対して実行される。メモリアクセスが離散的な領域に対して実行される場合、キャッシュメモリによるメモリアクセス遅延隠蔽効果が得難くなる。これにより、パケットの処理に要する時間が長くなるという問題が、より顕著に発生する。   That is, a counter value exists for each node of the search tree, and each packet is typically adapted to a rule included in a different node. For this reason, the memory access to the counter value is executed for a discrete area (address) in the memory address space. When memory access is performed on a discrete area, it is difficult to obtain a memory access delay concealment effect by the cache memory. As a result, the problem that the time required for packet processing becomes longer occurs more remarkably.

[本発明の目的]
本発明は、かかる問題に鑑みてなされたものである。即ち、本発明は、データ処理(例えばパケット処理)に用いる情報エントリを探索する際に用いる探索木を複数有する場合であっても、情報エントリの探索に要する負荷を低減することができるデータ処理装置等を提供することを、主たる目的の一つとする。
[Object of the present invention]
The present invention has been made in view of such problems. That is, the present invention is a data processing apparatus capable of reducing the load required for searching for information entries even when there are a plurality of search trees used when searching for information entries used for data processing (for example, packet processing). It is one of the main purposes to provide such.

前述の課題を解決するため、本発明の一態様に係るデータ処理装置等は、主に、次のような構成を採用している。   In order to solve the above-described problem, a data processing device and the like according to one embodiment of the present invention mainly adopts the following configuration.

(1)本発明の一態様に係るデータ処理装置は、
処理対象とするデータを処理する方法を決定するための第1の情報エントリを、それぞれの適用対象とするデータ識別情報を含む第1の情報エントリの集合の中から1ないし複数の探索木を用いて探索し、探索した上記第1の情報エントリを用いて上記データを処理する場合において、各上記探索木を構成するノードである中間ノードおよびリーフノードを上記データ識別情報の探索空間に対応付けて探索した際に得られた上記探索木による上記第1の情報エントリの探索結果を第2の情報エントリとして記憶しておき、上記データを処理する際に、当該データに関する上記第2の情報エントリが記憶されていた場合、当該第2の情報エントリを使用して当該データを処理するデータ処理装置であって、
1ないし複数の上記探索木をグループ化し、各探索木グループにおけるベース探索木を選択する探索木初期化手段と、
上記探索木を構成する中間ノードおよびリーフノードの各ノードに関し、上記ノードの更新の履歴を示す更新履歴情報および当該探索木を構成するいずれかの上記ノードの更新の履歴を示す共有更新履歴情報を記憶する探索木記憶手段と、
上記第1の情報エントリの内容を操作した際に、当該第1の情報エントリの上記データ識別情報である操作対象データ識別情報と重複する探索空間に対応付けられた上記ノードの更新履歴情報を更新するとともに、当該ノードを含む上記探索木が属する上記探索木グループのベース探索木について上記操作対象データ識別情報と重複する探索空間に対応付けられた上記ノードの共有更新履歴情報を更新する更新手段と、
上記第2の情報エントリとして、上記探索木による上記第1の情報エントリの探索結果として得られる、各上記探索木における探索によって到達したノードを示すノード識別子と当該ノードの上記更新履歴情報および上記共有更新履歴情報とのキャッシュを記憶する情報エントリ記憶手段と、
上記第2の情報エントリを使用したデータ処理を行う際に、上記情報エントリ記憶手段に記憶された当該第2の情報エントリに関する上記ノードの上記共有更新履歴情報のキャッシュと当該ノードの最新の上記共有更新履歴情報とを、各上記ベース探索木について比較し、両者に不整合があった場合には、当該ノードを含む上記ベース探索木が属する上記探索木グループの各上記探索木について、上記情報エントリ記憶手段に記憶された当該第2の情報エントリに関する各上記ノードの上記更新履歴情報のキャッシュと各当該ノードの最新の上記更新履歴情報とを比較し、両者に不整合があった場合は、上記情報エントリ記憶手段に記憶された当該第2の情報エントリは無効であるものと判定する再評価手段と
を備える。
(1) A data processing device according to an aspect of the present invention includes:
As a first information entry for determining a method for processing data to be processed, one or more search trees are used from a set of first information entries including data identification information to be applied. In the case of processing the data using the searched first information entry, the intermediate nodes and leaf nodes that are nodes constituting each search tree are associated with the search space of the data identification information. The search result of the first information entry by the search tree obtained when searching is stored as a second information entry, and when the data is processed, the second information entry related to the data is If stored, a data processing device for processing the data using the second information entry,
Search tree initialization means for grouping one or more search trees and selecting a base search tree in each search tree group;
For each of the intermediate nodes and leaf nodes constituting the search tree, update history information indicating the update history of the node and shared update history information indicating the update history of any of the nodes constituting the search tree. Search tree storage means for storing;
When the contents of the first information entry are manipulated, the update history information of the node associated with the search space overlapping the operation target data identification information that is the data identification information of the first information entry is updated. And updating means for updating the shared update history information of the node associated with the search space overlapping the operation target data identification information for the base search tree of the search tree group to which the search tree including the node belongs. ,
As the second information entry, the node identifier indicating the node reached by the search in each search tree, the update history information of the node, and the sharing obtained as a search result of the first information entry by the search tree Information entry storage means for storing a cache of update history information;
When performing data processing using the second information entry, the shared update history information cache of the node related to the second information entry stored in the information entry storage unit and the latest shared of the node The update history information is compared for each of the base search trees. If there is a mismatch, the information entry for each search tree of the search tree group to which the base search tree including the node belongs. The cache of the update history information of each of the nodes related to the second information entry stored in the storage means is compared with the latest update history information of each of the nodes, and if both are inconsistent, Re-evaluation means for determining that the second information entry stored in the information entry storage means is invalid.

(2)本発明の一態様に係る情報エントリ管理方法は、
処理対象とするデータを処理する方法を決定するための第1の情報エントリを、それぞれの適用対象とするデータ識別情報を含む第1の情報エントリの集合の中から1ないし複数の探索木を用いて探索し、探索した上記第1の情報エントリを用いて上記データを処理する場合において、各上記探索木を構成するノードである中間ノードおよびリーフノードを上記データ識別情報の探索空間に対応付けて探索した際に得られた上記探索木による上記第1の情報エントリの探索結果を第2の情報エントリとして記憶しておき、上記データを処理する際に、当該データに関する上記第2の情報エントリが記憶されていた場合、当該第2の情報エントリを使用して当該データを処理する情報エントリ管理方法であって、 1ないし複数の上記探索木をグループ化し、各探索木グループにおけるベース探索木を選択し、
上記探索木を構成する中間ノードおよびリーフノードの各ノードに関し、上記ノードの更新の履歴を示す更新履歴情報および当該探索木を構成するいずれかの上記ノードの更新の履歴を示す共有更新履歴情報を記憶し、
上記第1の情報エントリの内容を操作した際に、当該第1の情報エントリの上記データ識別情報である操作対象データ識別情報と重複する探索空間に対応付けられた上記ノードの更新履歴情報を更新するとともに、当該ノードを含む上記探索木が属する上記探索木グループのベース探索木について上記操作対象データ識別情報と重複する探索空間に対応付けられた上記ノードの共有更新履歴情報を更新し、
上記第2の情報エントリとして、上記探索木による上記第1の情報エントリの探索結果として得られる、各上記探索木における探索によって到達したノードを示すノード識別子と当該ノードの上記更新履歴情報および上記共有更新履歴情報とのキャッシュを記憶し、
上記第2の情報エントリを使用したデータ処理を行う際に、上記記憶された当該第2の情報エントリに関する上記ノードの上記共有更新履歴情報のキャッシュと当該ノードの最新の上記共有更新履歴情報とを、各上記ベース探索木について比較し、両者に不整合があった場合には、当該ノードを含む上記ベース探索木が属する上記探索木グループの各上記探索木について、上記記憶された当該第2の情報エントリに関する各上記ノードの上記更新履歴情報のキャッシュと各当該ノードの最新の上記更新履歴情報とを比較し、両者に不整合があった場合は、上記記憶された当該第2の情報エントリは無効であると判定することで、第2の情報エントリを再評価する。
(2) An information entry management method according to an aspect of the present invention includes:
As a first information entry for determining a method for processing data to be processed, one or more search trees are used from a set of first information entries including data identification information to be applied. In the case of processing the data using the searched first information entry, the intermediate nodes and leaf nodes that are nodes constituting each search tree are associated with the search space of the data identification information. The search result of the first information entry by the search tree obtained when searching is stored as a second information entry, and when the data is processed, the second information entry related to the data is An information entry management method for processing the data using the second information entry, wherein one or more search trees are grouped; Loop, select base search tree in each search tree group,
For each of the intermediate nodes and leaf nodes constituting the search tree, update history information indicating the update history of the node and shared update history information indicating the update history of any of the nodes constituting the search tree. Remember,
When the contents of the first information entry are manipulated, the update history information of the node associated with the search space overlapping the operation target data identification information that is the data identification information of the first information entry is updated. And updating the shared update history information of the node associated with the search space overlapping the operation target data identification information for the base search tree of the search tree group to which the search tree including the node belongs,
As the second information entry, the node identifier indicating the node reached by the search in each search tree, the update history information of the node, and the sharing obtained as a search result of the first information entry by the search tree Memorize cache with update history information,
When performing the data processing using the second information entry, the cache of the shared update history information of the node related to the stored second information entry and the latest shared update history information of the node The base search trees are compared, and if both are inconsistent, the stored second second search is performed for each search tree of the search tree group to which the base search tree including the node belongs. The cache of the update history information of each of the nodes related to the information entry is compared with the latest update history information of each of the nodes, and if both are inconsistent, the stored second information entry is By determining that it is invalid, the second information entry is reevaluated.

(3)本発明の一態様に係る情報エントリ管理プログラムは、上記(2)に記載の情報エントリ管理方法を、コンピュータによって実行可能なプログラムとして実施する。   (3) An information entry management program according to an aspect of the present invention implements the information entry management method described in (2) above as a program executable by a computer.

また、上記本発明の目的は、上記構成を有するデータ処理装置、データ処理方法をコンピュータによって実現する上記情報エントリ管理プログラムが格納されているコンピュータ読み取り可能な記録媒体等によっても達成される。   The object of the present invention is also achieved by a data processing apparatus having the above configuration, a computer-readable recording medium storing the information entry management program for realizing the data processing method by a computer, and the like.

本発明によれば、以下のような効果を奏することができる。   According to the present invention, the following effects can be achieved.

すなわち、本発明によれば、データ処理(例えばパケット処理)に用いる情報エントリを探索する際に用いる探索木を複数有する場合であっても、情報エントリの探索に要する負荷を低減することができる。   That is, according to the present invention, even when there are a plurality of search trees used when searching for information entries used for data processing (for example, packet processing), it is possible to reduce the load required for searching for information entries.

図1は、本発明の実施の形態に係るデータ処理装置のブロック構成の一例を示すブロック構成図である。FIG. 1 is a block configuration diagram showing an example of a block configuration of a data processing apparatus according to an embodiment of the present invention. 図2は、図1に示したデータ処理装置の探索木制御部の詳細なブロック構成の一例を示すブロック構成図である。FIG. 2 is a block configuration diagram illustrating an example of a detailed block configuration of the search tree control unit of the data processing apparatus illustrated in FIG. 1. 図3は、図1に示したデータ処理装置のキャッシュテーブル制御部の詳細なブロック構成の一例を示すブロック構成図である。FIG. 3 is a block configuration diagram illustrating an example of a detailed block configuration of the cache table control unit of the data processing apparatus illustrated in FIG. 1. 図4は、図1に示したデータ処理装置において使用されるルールの一構成例を説明するための表である。FIG. 4 is a table for explaining a configuration example of rules used in the data processing apparatus shown in FIG. 図5は、図1に示したデータ処理装置において使用される探索木に係る情報およびノードに係る情報の一構成例を説明するための表である。FIG. 5 is a table for explaining a configuration example of information related to a search tree and information related to a node used in the data processing apparatus shown in FIG. 図6は、図1に示したデータ処理装置のキャッシュテーブル記憶部に記憶される、キャッシュテーブルおよびキャッシュエントリに関する情報の一例を示す表である。FIG. 6 is a table showing an example of information about the cache table and the cache entry stored in the cache table storage unit of the data processing apparatus shown in FIG. 図7は、図1に示したデータ処理装置の探索木制御部における探索木初期化部が探索木記憶部およびルール記憶部それぞれに記憶される探索木およびルールセットを初期化する際の動作の一例を示すフローチャートである。FIG. 7 shows the operation when the search tree initialization unit in the search tree control unit of the data processing apparatus shown in FIG. 1 initializes the search tree and rule set stored in the search tree storage unit and rule storage unit, respectively. It is a flowchart which shows an example. 図8は、図1に示したデータ処理装置の探索木制御部における探索木初期化部が探索木構築処理を行う際の動作の一例を示すフローチャートである。FIG. 8 is a flowchart showing an example of the operation when the search tree initialization unit in the search tree control unit of the data processing apparatus shown in FIG. 1 performs the search tree construction process. 図9は、図8のフローチャートのステップS112において実行される探索木構築サブ処理Aの詳細な動作の一例を示すフローチャートである。FIG. 9 is a flowchart showing an example of detailed operation of the search tree construction sub-process A executed in step S112 of the flowchart of FIG. 図10は、図1に示したデータ処理装置の探索木制御部におけるルール更新部が、探索木記憶部およびルール記憶部それぞれに記憶される探索木およびルールセットを更新する際の動作の一例を示すフローチャートである。FIG. 10 shows an example of an operation when the rule update unit in the search tree control unit of the data processing apparatus shown in FIG. 1 updates the search tree and the rule set stored in the search tree storage unit and the rule storage unit, respectively. It is a flowchart to show. 図11は、図10のフローチャートのステップS136において実行されるルール更新サブ処理A1の詳細な動作の一例を示すフローチャートである。FIG. 11 is a flowchart showing an example of detailed operation of the rule update sub-process A1 executed in step S136 of the flowchart of FIG. 図12は、図11のフローチャートのステップS143において実行されるルール更新サブ処理A2の詳細な動作の一例を示すフローチャートである。FIG. 12 is a flowchart showing an example of detailed operation of the rule update sub-process A2 executed in step S143 of the flowchart of FIG. 図13は、図10のフローチャートのステップS137において実行されるルール更新サブ処理Bの詳細な動作の一例を示すフローチャートである。FIG. 13 is a flowchart showing an example of detailed operation of the rule update sub-process B executed in step S137 of the flowchart of FIG. 図14は、図10のフローチャートのステップS139において実行されるルール更新サブ処理Cの詳細な動作の一例を示すフローチャートである。FIG. 14 is a flowchart showing an example of detailed operation of the rule update sub-process C executed in step S139 of the flowchart of FIG. 図15は、図1に示したデータ処理装置の探索木制御部における探索木探索部が、探索木記憶部およびルール記憶部それぞれに記憶される探索木およびルールセットを参照して与えられたキーに適合するルールを探索する際の動作の一例を示すフローチャートである。15 shows a key given by the search tree search unit in the search tree control unit of the data processing apparatus shown in FIG. 1 with reference to the search tree and rule set stored in the search tree storage unit and the rule storage unit, respectively. It is a flowchart which shows an example of the operation | movement at the time of searching for the rule which suits. 図16は、図15のフローチャートのステップS181において実行されるルール探索サブ処理Aの詳細な動作の一例を示すフローチャートである。FIG. 16 is a flowchart showing an example of detailed operation of the rule search sub-process A executed in step S181 of the flowchart of FIG. 図17は、図1に示したデータ処理装置のパケット処理部がパケットを受信した際の動作の一例を示すフローチャートである。FIG. 17 is a flowchart illustrating an example of an operation when the packet processing unit of the data processing apparatus illustrated in FIG. 1 receives a packet. 図18は、図1に示したデータ処理装置のキャッシュテーブル制御部におけるキャッシュエントリ作成部がキャッシュエントリを作成する際の動作の一例を示すフローチャートである。FIG. 18 is a flowchart showing an example of an operation when the cache entry creation unit in the cache table control unit of the data processing apparatus shown in FIG. 1 creates a cache entry. 図19は、図1に示したデータ処理装置のキャッシュテーブル制御部におけるキャッシュエントリ探索部がキャッシュエントリを探索する際の動作の一例を示すフローチャートである。FIG. 19 is a flowchart showing an example of an operation when the cache entry search unit in the cache table control unit of the data processing apparatus shown in FIG. 1 searches for a cache entry. 図20は、図1に示したデータ処理装置のキャッシュテーブル制御部におけるキャッシュエントリ再評価部がキャッシュエントリを再評価する際の動作の一例を示すフローチャートである。FIG. 20 is a flowchart showing an example of an operation when the cache entry reevaluation unit in the cache table control unit of the data processing apparatus shown in FIG. 1 reevaluates a cache entry. 図21Aは、図1に示したデータ処理装置の探索木制御部における探索木初期化部がルールセットをルールの特徴に基づいて分割する際のサブルールセット例を示す説明図(1/2)である。21A is an explanatory diagram (1/2) illustrating an example of a sub-rule set when the search tree initialization unit in the search tree control unit of the data processing apparatus illustrated in FIG. 1 divides the rule set based on the characteristics of the rules. It is. 図21Bは、図1に示したデータ処理装置の探索木制御部における探索木初期化部がルールセットをルールの特徴に基づいて分割する際のサブルールセット例を示す説明図(2/2)である。21B is an explanatory diagram (2/2) illustrating an example of a sub-rule set when the search tree initialization unit in the search tree control unit of the data processing apparatus illustrated in FIG. 1 divides the rule set based on the characteristics of the rules. It is. 図22は、図1に示したデータ処理装置の探索木制御部における探索木初期化部により作成される探索木グループの一例を示す表である。FIG. 22 is a table showing an example of a search tree group created by the search tree initialization unit in the search tree control unit of the data processing apparatus shown in FIG. 図23は、ルールセットの一例を示す模式図である。FIG. 23 is a schematic diagram illustrating an example of a rule set. 図24は、探索木の一例を示す模式図である。FIG. 24 is a schematic diagram illustrating an example of a search tree. 図25は、探索木のノードに係る情報の一例を示す表である。FIG. 25 is a table showing an example of information related to nodes in the search tree. 図26は、本発明の実施の形態に係るデータ処理装置を実現可能な情報処理装置のハードウェア構成を例示する図面である。FIG. 26 is a diagram illustrating a hardware configuration of an information processing apparatus capable of realizing the data processing apparatus according to the embodiment of the present invention.

以下、本発明によるデータ処理装置等の好適な実施形態について添付図を参照して説明する。なお、以下においては、本発明によるデータ処理装置および情報エントリ管理方法の実施形態について説明する。かかる情報エントリ管理方法は、コンピュータにより実行可能な情報エントリ管理プログラムとして実施されてもよい。係る情報エントリ管理プログラムは、コンピュータにより読み取り可能な記録媒体に記録されてもよい。また、以下の各図面に付した図面参照符号は、理解を助けるための一例として、各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。   Preferred embodiments of a data processing apparatus and the like according to the present invention will be described below with reference to the accompanying drawings. In the following, embodiments of the data processing apparatus and the information entry management method according to the present invention will be described. Such an information entry management method may be implemented as an information entry management program executable by a computer. Such an information entry management program may be recorded on a computer-readable recording medium. In addition, the drawing reference numerals attached to the following drawings are added to the respective elements for convenience as an example for facilitating understanding, and are not intended to limit the present invention to the illustrated embodiments.

本発明の実施形態の詳細な説明に先立って、本発明に係るデータ処理装置等について、その概要をまず説明する。   Prior to detailed description of embodiments of the present invention, an outline of a data processing apparatus and the like according to the present invention will be described first.

本発明の実施形態に係るデータ処理装置は、処理対象とするデータを処理する方法を決定する第1の情報エントリを、上記データを適用対象とするデータ識別情報を含む第1の情報エントリの集合の中から、1ないし複数の探索木を用いて探索する。   A data processing apparatus according to an embodiment of the present invention includes a first information entry that determines a method for processing data to be processed, and a set of first information entries including data identification information to which the data is applied. Search using one or a plurality of search trees.

データ処理装置は、探索した第1の情報エントリを用いて上記データを処理する場合、各探索木を構成するノードである中間ノードおよびリーフノードを、上記データ識別情報の探索空間に対応付けて探索する。そして、探索木による第1の情報エントリの探索結果を、第2の情報エントリとして記憶する。データ処理装置は、データを処理する際に、当該データに関する第2の情報エントリが記憶されていた場合、第2の情報エントリを使用して当該データを処理する。   When the data processing apparatus processes the data using the searched first information entry, the data processing apparatus searches the intermediate nodes and leaf nodes constituting the search trees in association with the search space of the data identification information. To do. Then, the search result of the first information entry by the search tree is stored as the second information entry. When processing the data, if the second information entry related to the data is stored, the data processing apparatus processes the data using the second information entry.

該データ処理装置は、1ないし複数の上記探索木をグループ化し、各探索木グループにおけるベース探索木を選択する探索木初期化部(探索木初期化手段)を有する。   The data processing apparatus includes a search tree initialization unit (search tree initialization unit) that groups one or a plurality of the search trees and selects a base search tree in each search tree group.

また、該データ処理装置は、以下のような処理を実行する探索木記憶部(探索木記憶手段)を備える。即ち、当該探索木記憶部(探索木記憶手段)は、上記探索木を構成する中間ノードおよびリーフノードの各ノードに関し、当該ノードの更新の履歴を示す更新履歴情報、および、当該探索木を構成するいずれかの上記ノードの更新の履歴を示す共有更新履歴情報を記憶する。   In addition, the data processing apparatus includes a search tree storage unit (search tree storage unit) that executes the following processing. That is, the search tree storage unit (search tree storage means) configures update history information indicating the update history of the node and the search tree with respect to each of the intermediate nodes and leaf nodes constituting the search tree. The shared update history information indicating the update history of any of the above nodes is stored.

また、データ処理装置は、以下のような処理を実行する更新部(更新手段)を備える。即ち、係る更新部は、第1の情報エントリの内容を操作した際に、操作された第1の情報エントリにおけるデータ識別情報である操作対象データ識別情報と重複する探索空間に対応付けられたノードの更新履歴情報を更新する。また、更新部は、当該ノードを含む上記探索木が属する上記探索木グループのベース探索木について、上記操作対象データ識別情報と重複する探索空間に対応付けられた上記ノードの共有更新履歴情報を更新する。   Further, the data processing apparatus includes an updating unit (updating unit) that executes the following processing. In other words, when the contents of the first information entry are manipulated, the updating unit relates to a node associated with the search space that overlaps the operation target data identification information that is the data identification information in the operated first information entry. Update update history information for. The updating unit updates the shared update history information of the node associated with the search space overlapping the operation target data identification information for the base search tree of the search tree group to which the search tree including the node belongs. To do.

また、該データ処理装置は、以下のような処理を実行する情報エントリ記憶部(情報エントリ記憶手段)を備える。即ち、情報エントリ記憶部は、探索木による第1の情報エントリの探索結果として得られる、各探索木における探索によって到達したノードを示すノード識別子と、当該ノードの更新履歴情報および共有更新履歴情報と、を含むキャッシュを、第2の情報エントリとして記憶する。   In addition, the data processing apparatus includes an information entry storage unit (information entry storage unit) that executes the following processing. That is, the information entry storage unit obtains the node identifier indicating the node reached by the search in each search tree, the update history information and the shared update history information of the node obtained as a search result of the first information entry by the search tree. Are stored as a second information entry.

また、該データ処理装置は、以下のような処理を実行する再評価部(再評価手段)を備える。即ち、係る再評価部は、第2の情報エントリを使用したデータ処理を行う際、上記情報エントリ記憶部に記憶された第2の情報エントリに関する、ノードの共有更新履歴情報のキャッシュと、当該ノードの最新の共有更新履歴情報とを、各上記ベース探索木について比較する。係る比較処理の結果、両者に不整合があった場合、再評価部は、当該ノードを含むベース探索木が属する探索木グループの各探索木について、第2の情報エントリ記憶部に記憶された第2の情報エントリに関する各ノードの更新履歴情報のキャッシュと、各ノードの最新の更新履歴情報とを比較する。再評価部は、両者に不整合があった場合は、上記第2の情報エントリ記憶部に記憶された第2の情報エントリは無効であると判定する。   Further, the data processing apparatus includes a re-evaluation unit (re-evaluation unit) that executes the following processing. That is, when the re-evaluation unit performs data processing using the second information entry, the cache of the shared update history information of the node regarding the second information entry stored in the information entry storage unit, the node Are compared for each of the above-mentioned base search trees. If there is a mismatch between the two as a result of the comparison processing, the re-evaluation unit stores the first search tree stored in the second information entry storage unit for each search tree of the search tree group to which the base search tree including the node belongs. The cache of update history information of each node regarding the information entry 2 is compared with the latest update history information of each node. If there is a mismatch between the two, the re-evaluation unit determines that the second information entry stored in the second information entry storage unit is invalid.

[実施の形態の説明]
以下に記載する本実施の形態の説明においては、一例として、データ処理としてパケット処理を実施し、当該データ処理に用いられる情報エントリとしてルールを使用する場合について説明する。また、本実施の形態においてはパケット(通信パケット)として、IPv4(Internet Protocol version 4)パケットを扱う例を示している。しかし、本発明は、上記のようなパケット処理の場合に限定されず、他の一般的なデータ処理についても広く適用可能である。
[Description of Embodiment]
In the description of the present embodiment described below, a case where packet processing is performed as data processing and a rule is used as an information entry used for the data processing will be described as an example. In this embodiment, an example is shown in which an IPv4 (Internet Protocol version 4) packet is handled as a packet (communication packet). However, the present invention is not limited to the packet processing as described above, and can be widely applied to other general data processing.

[実施の形態の構成例]
まず、本実施の形態の構成例について、図1を用いて説明する。図1は、本発明の実施の形態に係るデータ処理装置のブロック構成の一例を示すブロック構成図である。図1に例示するデータ処理装置1は、探索木制御部10と、探索木記憶部20と、ルール記憶部30と、キャッシュテーブル制御部40と、キャッシュテーブル記憶部50と、パケット処理部60と、通信IF部70と、データ処理装置制御部80と、を含む。
[Configuration example of the embodiment]
First, a configuration example of this embodiment will be described with reference to FIG. FIG. 1 is a block configuration diagram showing an example of a block configuration of a data processing apparatus according to an embodiment of the present invention. The data processing device 1 illustrated in FIG. 1 includes a search tree control unit 10, a search tree storage unit 20, a rule storage unit 30, a cache table control unit 40, a cache table storage unit 50, and a packet processing unit 60. The communication IF unit 70 and the data processing device control unit 80 are included.

探索木制御部10は、探索木記憶部20に記憶される探索木およびルール記憶部30に記憶されるルールの管理を行う。具体的には、探索木制御部10は、例えば、探索木の初期化や探索、ルールの追加等を行う部位である。   The search tree control unit 10 manages the search tree stored in the search tree storage unit 20 and the rules stored in the rule storage unit 30. Specifically, the search tree control unit 10 is a part that performs, for example, initialization or search of the search tree, addition of rules, and the like.

探索木記憶部20は、詳細は後述するが、主に、受信パケット(すなわち処理対象のデータの一種)に対応するルール(すなわち情報エントリの一種、第1の情報エントリ)を探索する際に用いられる探索木を記憶する。探索木記憶部20に記憶される探索木は、1つまたは複数のノードによって構成される。該ノードは、中間ノードまたはリーフノードのいずれかである。また、探索木記憶部20は、探索木のグループ化に係る情報を記憶する。探索木記憶部20が記憶する探索木の数は、通常、2個以上であるが、一つであってもよい。探索木記憶部20は、例えば、メモリを用いて探索木を記憶する。各探索木、各ノードおよび各探索木グループには、それぞれを一意に識別する識別子が割り当てられ、当該識別子が参照等の操作の際に使用される。   Although the details will be described later, the search tree storage unit 20 is mainly used when searching for a rule (that is, a type of information entry, a first information entry) corresponding to a received packet (that is, a type of data to be processed). The search tree to be stored is stored. The search tree stored in the search tree storage unit 20 is composed of one or a plurality of nodes. The node is either an intermediate node or a leaf node. In addition, the search tree storage unit 20 stores information regarding grouping of search trees. The number of search trees stored in the search tree storage unit 20 is usually two or more, but may be one. The search tree storage unit 20 stores a search tree using, for example, a memory. Each search tree, each node, and each search tree group is assigned an identifier that uniquely identifies the search tree, and the identifier is used for operations such as reference.

ルール記憶部30は、パケット処理するための情報であるルール(すなわち情報エントリの一種、第1の情報エントリ)の集合(ルールセット、サブルールセット)を記憶する。ルール記憶部30は、例えば、メモリを用いてルールの集合を記憶する。ルール記憶部30は、例えば、配列やハッシュテーブルなどのデータ構造を使用して、ルールの集合をメモリに記憶する。各ルールおよび各ルールセットや各サブルールセットには、それらを一意に識別する識別子が割り当てられ、当該識別子が参照等の操作の際に使用される。   The rule storage unit 30 stores a set (rule set, sub-rule set) of rules (that is, a kind of information entry, first information entry) that is information for packet processing. The rule storage unit 30 stores a set of rules using, for example, a memory. The rule storage unit 30 stores a set of rules in a memory using, for example, a data structure such as an array or a hash table. Each rule, each rule set, and each sub-rule set is assigned an identifier for uniquely identifying the rule, and the identifier is used for operations such as reference.

キャッシュテーブル制御部40は、キャッシュテーブル記憶部50に記憶されるキャッシュエントリの管理を行う。キャッシュテーブル制御部40は、例えば、キャッシュエントリの作成や探索等を行う。   The cache table control unit 40 manages cache entries stored in the cache table storage unit 50. For example, the cache table control unit 40 creates and searches a cache entry.

キャッシュテーブル記憶部50は、探索木による探索の結果を含む(キャッシュする)キャッシュエントリ(すなわち情報エントリの一種、第2の情報エントリ)を記憶する部位である。キャッシュテーブル記憶部50は、例えば、情報エントリ記憶手段として機能する。キャッシュテーブル記憶部50は、例えば、メモリを用いてキャッシュエントリを記憶する。キャッシュテーブル記憶部50は、例えば、ハッシュテーブルのデータ構造を使用してキャッシュエントリをメモリに記憶する。各キャッシュエントリにはそれぞれを一意に識別する識別子が割り当てられ、当該識別子が参照等の操作の際に使用される。   The cache table storage unit 50 is a part that stores a cache entry (that is, a type of information entry, a second information entry) that includes (caches) a result of a search by a search tree. The cache table storage unit 50 functions as, for example, information entry storage means. The cache table storage unit 50 stores a cache entry using a memory, for example. The cache table storage unit 50 stores a cache entry in a memory using, for example, a data structure of a hash table. Each cache entry is assigned an identifier for uniquely identifying the cache entry, and this identifier is used for operations such as reference.

パケット処理部60は、通信IF部70からパケット(すなわち処理対象のデータの一種)を受信し、受信したパケットの処理を行う。その際、パケット処理部60は、探索木制御部10およびキャッシュテーブル制御部40を使用して、当該パケットの処理に用いる情報エントリ(ノード、ルール、キャッシュエントリ)を探索し、探索結果を用いて当該パケットを処理する。なお、パケット処理部60は、処理対象のデータの一種(パケット)を処理する、データ処理実行手段として機能してもよい。   The packet processing unit 60 receives a packet (that is, a kind of data to be processed) from the communication IF unit 70, and processes the received packet. At that time, the packet processing unit 60 uses the search tree control unit 10 and the cache table control unit 40 to search for information entries (nodes, rules, cache entries) used for processing the packet, and uses the search results. Process the packet. Note that the packet processing unit 60 may function as a data processing execution unit that processes one type (packet) of data to be processed.

通信IF部70は、データ処理装置1と通信ネットワーク(図1には図示していない)とを接続するインタフェースであり、当該通信ネットワークで使用される通信プロトコル(以下、単に「プロトコル」と記載する場合がある)にしたがってパケットの送受信を行う。   The communication IF unit 70 is an interface for connecting the data processing apparatus 1 and a communication network (not shown in FIG. 1), and is described as a communication protocol (hereinafter simply referred to as “protocol”) used in the communication network. Packet transmission / reception is performed according to

データ処理装置制御部80は、データ処理装置1がルールセットやサブルールセットにしたがってパケットを処理するように制御する。データ処理装置制御部80は、例えば、データ処理装置1が起動する際、探索木初期化部11(図2)に初期ルールセットを渡して初期化するように指示する。データ処理装置制御部80は、当該初期ルールセットをデータ処理装置1が具備する記憶装置(図1には図示していない)から読み込んでもよい。また、データ処理装置制御部80は、当該初期ルールセットを、他の制御装置(図1には図示していない)から受信してもよい。また、データ処理装置制御部80は、ユーザインタフェース(図1には図示していない)を介して、ユーザからルール更新の命令を受け取った際に、探索木制御部10に対してルール更新を指示する。また、データ処理装置制御部80は、他の制御装置(図1には図示していない)からルール更新の命令を受信した際に、探索木制御部10に対してルール更新を指示してもよい。   The data processing device control unit 80 controls the data processing device 1 to process a packet according to a rule set or sub-rule set. For example, when the data processing device 1 is activated, the data processing device control unit 80 instructs the search tree initialization unit 11 (FIG. 2) to initialize by passing an initial rule set. The data processing device control unit 80 may read the initial rule set from a storage device (not shown in FIG. 1) included in the data processing device 1. Further, the data processing device control unit 80 may receive the initial rule set from another control device (not shown in FIG. 1). Further, the data processing device control unit 80 instructs the search tree control unit 10 to update the rule when receiving a rule update command from the user via a user interface (not shown in FIG. 1). To do. Further, the data processing device control unit 80 may instruct the search tree control unit 10 to update the rule when receiving a rule update command from another control device (not shown in FIG. 1). Good.

次に、図1に示した本実施の形態のデータ処理装置1において使用されるルールについて図4の表を用いて説明する。図4は、図1に示したデータ処理装置1において使用されるルールの一構成例を説明する表であり、図1のデータ処理装置1のルール記憶部30に記憶されるルールの構成例を示している。   Next, rules used in the data processing apparatus 1 of the present embodiment shown in FIG. 1 will be described using the table of FIG. FIG. 4 is a table for explaining an example of the configuration of rules used in the data processing apparatus 1 shown in FIG. 1, and an example of the configuration of rules stored in the rule storage unit 30 of the data processing apparatus 1 in FIG. Show.

図4の表の項目欄31に示すように、各ルールは、適用対象を示すデータ識別情報の一種であるマッチ条件や優先度、さらには、アクション、統計情報、削除フラグを含んで構成される。各ルールのマッチ条件は、図4の表の説明欄32に示すように、当該ルールに適合するパケットが持つフィールド値の条件を規定する。例えば、本実施の形態においては、以下の五つのフィールド(5タプル(5Tuple))をマッチ条件(データ識別情報の一種)として使用する。即ち、それら五つのフィールドは、開始送信先IPアドレスおよび終了送信先IPアドレス、開始送信元IPアドレスおよび終了送信元IPアドレス、開始送信先ポート番号および終了送信先ポート番号、開始送信元ポート番号および終了送信元ポート番号、開始プロトコル番号および終了プロトコル番号である。   As shown in the item column 31 of the table of FIG. 4, each rule is configured to include a match condition and priority as a kind of data identification information indicating an application target, and further, an action, statistical information, and a deletion flag. . As shown in the explanation column 32 of the table of FIG. 4, the match condition of each rule defines the field value condition possessed by a packet that conforms to the rule. For example, in the present embodiment, the following five fields (5 tuples) are used as match conditions (a type of data identification information). That is, these five fields are a start transmission destination IP address and an end transmission destination IP address, a start transmission source IP address and an end transmission source IP address, a start transmission destination port number and an end transmission destination port number, a start transmission source port number, and End source port number, start protocol number, and end protocol number.

例えば、本実施の形態においては、マッチ条件の一例として、以下のような具体例が図4の表の例欄33に示されている。即ち、係る具体例においては、(開始および終了)送信先IPアドレスは、‘0.0.0.0’〜‘255.255.255.255’の範囲内である。また、(開始および終了)送信元IPアドレスは、‘10.0.0.0’〜‘10.255.255.255’の範囲内である。また、(開始および終了)送信先ポート番号は‘80’である。また、(開始および終了)送信元ポート番号は、‘0’〜‘65535’の範囲内である。また、プロトコル番号は‘17’である。ただし、本発明は、かかるフィールド構成のみに限定されるものではない。   For example, in the present embodiment, the following specific example is shown in the example column 33 of the table of FIG. 4 as an example of the match condition. That is, in this specific example, the (start and end) destination IP address is in the range of '0.0.0.0' to '255.255.255.255'. The (start and end) source IP address is in the range of '10 .0.0.0 'to '10 .255.255.255'. Further, the (start and end) destination port number is '80'. The (start and end) transmission source port number is in the range of “0” to “65535”. The protocol number is '17'. However, the present invention is not limited to such a field configuration.

また、各ルールの優先度は、或るパケットに対して複数のルールが適合する場合に、採用されるルールを選択するために使用される。各ルールの優先度は、図4の表の説明欄32に示すように、例えば、各ルールそれぞれの優先度を表す数値(例えば非負整数)であり、大きい数値ほど高い優先度を示してもよい。例えば、図4の表の例欄33に示す当該ルールの優先度には、非負整数‘100’が設定されている。   The priority of each rule is used to select a rule to be adopted when a plurality of rules are applied to a certain packet. The priority of each rule is, for example, a numerical value (for example, a non-negative integer) representing the priority of each rule as shown in the explanation column 32 of the table of FIG. 4, and a higher numerical value may indicate a higher priority. . For example, the priority of the rule shown in the example column 33 of the table of FIG.

また、各ルールのアクションは、図4の表の説明欄32に示すように、当該ルールに適合したパケットに対して実行する処理内容(処理方法)を規定する。適合したパケットに対するルールのアクションが、パケットの送受信に関わる場合には、図4の表の例欄33に示すように、当該パケットが通信IF部70に対して出力される。なお、各ルールそれぞれに含まれるアクションの数は、1つに限定されず、0であっても、あるいは、2つ以上であってもよい。ルールのアクションの一例を以下に示す。ただし、本実施形態は、ルールのアクションとして以下の処理に限定されるものではない。   Further, as shown in the explanation column 32 of the table of FIG. 4, the action of each rule defines the processing content (processing method) to be executed for a packet that conforms to the rule. When the action of the rule for the matched packet is related to packet transmission / reception, the packet is output to the communication IF unit 70 as shown in the example column 33 of the table of FIG. Note that the number of actions included in each rule is not limited to one, and may be zero or two or more. An example rule action is shown below. However, the present embodiment is not limited to the following processing as a rule action.

(a)指定された通信IF部70からパケットを出力する。   (A) A packet is output from the designated communication IF unit 70.

(b)パケットの送信先MAC(Media Access Control)アドレスを指定された値に変更する。   (B) The packet transmission destination MAC (Media Access Control) address is changed to a designated value.

(c)パケットの送信元MACアドレスを指定された値に変更する。   (C) Change the source MAC address of the packet to the specified value.

(d)パケットの送信先IPアドレスを指定された値に変更する。   (D) Change the destination IP address of the packet to the specified value.

(e)パケットの送信元IPアドレスを指定された値に変更する。   (E) The packet source IP address is changed to a specified value.

(f)パケットの送信先ポート番号を指定された値に変更する。   (F) The packet destination port number is changed to a designated value.

(g)パケットの送信元ポート番号を指定された値に変更する。   (G) The packet source port number is changed to a specified value.

(h)パケットにVLAN(Virtual Local Area Network)タグを追加する。   (H) A VLAN (Virtual Local Area Network) tag is added to the packet.

(i)パケットのVLANタグを削除する。   (I) Delete the VLAN tag of the packet.

(j)パケットのVLANタグを変更する。   (J) Change the VLAN tag of the packet.

(k)パケットを破棄する。   (K) Discard the packet.

次に、各ルールの統計情報は、図4の表の説明欄32に示すように、当該ルールに適合して、処理されたパケット群に関する統計値を表す。係る各ルールの統計情報は、例えば、図4の表の例欄33に示すように、合計送信パケットサイズ、合計受信パケットサイズ、送信パケット数、受信パケット数、等である。   Next, as shown in the explanation column 32 of the table of FIG. 4, the statistical information of each rule represents a statistical value relating to a packet group processed in accordance with the rule. The statistical information of each rule is, for example, the total transmission packet size, the total reception packet size, the number of transmission packets, the number of reception packets, etc., as shown in the example column 33 of the table of FIG.

また、各ルールの削除フラグは、図4の表の説明欄32に示すように、当該ルールに関して削除が要求されたものの、当該ルールが使用中であることから、削除処理が延期されているか否かを示すフラグである。   In addition, as shown in the explanation column 32 of the table of FIG. 4, the deletion flag of each rule indicates whether or not the deletion process is postponed because the rule is in use, although the deletion is requested for the rule. It is a flag indicating that.

次に、図1に示した本実施の形態のデータ処理装置1における、探索木記憶部20が記憶する探索木に係る情報およびノードに係る情報について図5の表を用いて説明する。   Next, information related to the search tree and information related to the node stored in the search tree storage unit 20 in the data processing device 1 of the present embodiment illustrated in FIG. 1 will be described with reference to the table of FIG.

探索木記憶部20は、探索木の集合と、探索木グループリストと、ノードの集合と、を記憶する。図5は、図1に示したデータ処理装置1において使用される探索木に係る情報およびノードに係る情報の一構成例を説明する表である。図5は、図1のデータ処理装置1の探索木記憶部20に記憶される探索木に係る情報およびノードに係る情報の構成例を示す。図5における(A)部分には、探索木に係る情報および探索木グループリストに係る情報が例示されている。また、図5における(B)部分には、ノードに係る情報が例示されている。なお、本実施の形態におけるノードは、中間ノードまたはリーフノードのいずれかである。図5の(B)部分においては、ノード種別欄24に示すように、中間ノード・リーフノードともに共通に有する情報は“中間ノード・リーフノード共通”の部分に、中間ノードのみが有する情報は“中間ノード”の部分に、リーフノードのみが有する情報は“リーフノード”の部分に示されている。   The search tree storage unit 20 stores a set of search trees, a search tree group list, and a set of nodes. FIG. 5 is a table for explaining a configuration example of information related to a search tree and information related to a node used in the data processing apparatus 1 shown in FIG. FIG. 5 shows a configuration example of information related to the search tree and information related to the node stored in the search tree storage unit 20 of the data processing apparatus 1 of FIG. The part (A) in FIG. 5 illustrates information related to the search tree and information related to the search tree group list. In addition, information regarding the node is illustrated in part (B) in FIG. Note that the node in the present embodiment is either an intermediate node or a leaf node. In the part (B) of FIG. 5, as shown in the node type column 24, the information common to both the intermediate node and the leaf node is in the “intermediate node / leaf node common” part, and the information only in the intermediate node is “ Information that only the leaf node has in the “intermediate node” portion is shown in the “leaf node” portion.

また、図5の(B)部分の項目欄25に示すノードの部分空間とは、当該ノードの探索対象である、当該ノードが表す部分空間の情報である。本部分空間の情報は、図23〜図25を用いて先に説明した一般的な探索木の例において、図25の“ノードが表す部分空間”欄に記載の情報に相当する。図25に示した例においては、探索空間の次元数が2次元の場合を示した。これに対して、本実施の形態におけるルールのマッチ条件は、前述のように、5タプル(5Tuple)であることから、本実施の形態における探索空間の次元数は5次元となる。   Further, the partial space of the node shown in the item column 25 of the part (B) in FIG. 5 is information on the partial space represented by the node that is a search target of the node. The information on this partial space corresponds to the information described in the “partial space represented by the node” field in FIG. 25 in the example of the general search tree described above with reference to FIGS. In the example shown in FIG. 25, the case where the number of dimensions of the search space is two-dimensional is shown. On the other hand, the rule match condition in the present embodiment is 5 tuples as described above, and therefore the number of dimensions of the search space in the present embodiment is 5 dimensions.

したがって、図5の(B)部分におけるノード種別欄24の“中間ノード”において、項目欄25に示す“カット(Cut)する次元”および“カット(Cut)数”は、探索空間を5次元にカッティング(Cutting)して、子ノードを作成する際に使用する情報である。例えば、図25の例において、ルートノードに関する“カット(Cut)する次元”および“カット(Cut)数”の情報は、それぞれ、‘X軸’および‘4’である。また、図25の例において、ノード1に関する“カット(Cut)する次元”および“カット(Cut)数”の情報は、それぞれ、‘Y軸’および‘2’である。なお、探索木を作成する際、或るノードにおいて同時に複数の次元に関するカット(Cut)が実行されてもよい。その場合、“カット(Cut)する次元”および“カット(Cut)数”の組は、複数の次元毎に記憶される。   Therefore, in the “intermediate node” of the node type column 24 in the part (B) of FIG. 5, the “dimension to cut” and the “number of cuts” shown in the item column 25 make the search space 5 dimensions. This is information used when creating a child node by cutting. For example, in the example of FIG. 25, the “Cut dimension” and “Cut number” information regarding the root node is “X axis” and “4”, respectively. In addition, in the example of FIG. 25, the “Cut dimension” and “Cut number” information regarding the node 1 are “Y axis” and “2”, respectively. Note that when creating a search tree, a certain node may simultaneously execute cuts related to a plurality of dimensions. In this case, a set of “dimension to be cut” and “cut number” is stored for each of a plurality of dimensions.

また、探索木に係る情報については、図5の(A)部分における種別欄21に示すように、探索木それぞれに係る情報と、1ないし複数の探索木をグループ化した探索木グループに係る情報と、が記憶されている。探索木それぞれに係る情報には、項目欄22および説明欄23に示すように、ルートとなるノード(ルートノード)を示すルートノード識別子、対応するサブルールセットを示すサブルールセット識別子、属する探索木グループを示す探索木グループ識別子、が含まれる。また、探索木グループに係る情報には、属する各探索木を示す探索木識別子リスト、ベースとなるベース探索木を示すベース探索木識別子、が含まれる。   As for the information related to the search tree, as shown in the type column 21 in part (A) of FIG. 5, information related to each search tree and information related to the search tree group obtained by grouping one or more search trees. And are stored. Information related to each search tree includes, as shown in the item column 22 and the description column 23, a root node identifier indicating a node (root node) serving as a root, a subrule set identifier indicating a corresponding subrule set, and a search tree to which the search tree belongs. A search tree group identifier indicating a group is included. The information related to the search tree group includes a search tree identifier list indicating each search tree to which the search tree group belongs, and a base search tree identifier indicating the base search tree as a base.

次に、本発明に係る実施の形態において使用されるキャッシュテーブルおよびキャッシュエントリについて説明する。キャッシュエントリは、探索木を用いた、受信パケットに適合するルールの探索結果を記憶して再利用するために用いられる。探索木の探索処理への入力としては、受信パケットにおいてルールのマッチ条件として使用されるフィールド群(本実施の形態においては5フィールド、すなわち5タプル(5Tuple))が用いられる。以降、当該フィールド群の値を‘キー’と呼称する。キーが同じパケット群に対して、同じルールセットによるルール探索を行った場合、同じルールが得られる。したがって、本実施の形態においては、データ処理装置1は、キーごとにキャッシュエントリを作成して使用する。なお、以降、キーが同じパケット群のことを‘フロー’と呼称する。   Next, the cache table and cache entry used in the embodiment according to the present invention will be described. The cache entry is used for storing and reusing a search result of a rule that matches a received packet using a search tree. As an input to the search processing for the search tree, a field group used as a rule matching condition in the received packet (in this embodiment, 5 fields, that is, 5 tuples) is used. Hereinafter, the value of the field group is referred to as a “key”. When a rule search using the same rule set is performed on a packet group having the same key, the same rule is obtained. Therefore, in the present embodiment, the data processing device 1 creates and uses a cache entry for each key. Hereinafter, a group of packets having the same key is referred to as a “flow”.

図6は、図1に示したデータ処理装置1のキャッシュテーブル記憶部50に記憶される、キャッシュテーブルおよびキャッシュエントリに関する情報の一例を示す表であり、図6における(A)の部分は、キャッシュエントリに係る情報の一例を示す。図6における(B)の部分は、キャッシュエントリノード状態の一例を示す。図6における(A)(B)いずれの部分も、本実施の形態が使用するキャッシュエントリに係る情報の一構成例を示している。本実施の形態においては、オープン・アドレス(Open Address)型のハッシュテーブルを使用して、キャッシュエントリを記憶する例を示している。ただし、本実施形態は、このようなオープン・アドレス型のハッシュテーブルに限定されるものではない。   FIG. 6 is a table showing an example of information about the cache table and the cache entry stored in the cache table storage unit 50 of the data processing apparatus 1 shown in FIG. 1, and the part (A) in FIG. An example of the information regarding an entry is shown. The part (B) in FIG. 6 shows an example of the cache entry node state. Each part of (A) and (B) in FIG. 6 shows a configuration example of information relating to the cache entry used in the present embodiment. In the present embodiment, an example is shown in which cache entries are stored using an open address type hash table. However, the present embodiment is not limited to such an open address type hash table.

キャッシュテーブルのバケツリスト(Bucket List)は、例えば、キャッシュエントリの配列として実現することができる。この場合、第N番目のバケツ(Bucket)のM番目のキャッシュエントリは、バケツリスト(Bucket List)における第(N−1)*(M−1)番目の要素にアクセスすることによって参照することができる。キャッシュエントリに係る情報は、図6の(A)部分の項目欄51に示すように、使用中フラグ、キー、ルール識別子、最終使用時刻、ノード状態リストに関する情報を含む。   A bucket list of the cache table can be realized, for example, as an array of cache entries. In this case, the Mth cache entry of the Nth bucket can be referred to by accessing the (N-1) * (M-1) th element in the bucket list. it can. The information related to the cache entry includes information on the in-use flag, key, rule identifier, last use time, and node state list, as shown in the item column 51 in part (A) of FIG.

図6の(A)部分の説明欄52に示すように、使用中フラグは、当該キャッシュエントリが使用中であるか否かを示すフラグである。使用中フラグがオンであれば、当該キャッシュエントリが使用中であることを示す。キーは、当該キャッシュエントリが表すフローに関するキーであり、ハッシュテーブル内探索用の探索キーとして使用される。また、ルール識別子は、当該キャッシュエントリに該当するパケットに適合するルールの識別子である。最終使用時刻は、当該キャッシュエントリを最後に使用した際の時刻を示す情報である。また、ノード状態リストは、図6の(B)部分に示すような、当該キャッシュエントリが最後に使用された際の、当該キャッシュエントリが表すフローが属するノードの状態(探索木毎の)リストを示している。   As shown in the explanation column 52 in part (A) of FIG. 6, the in-use flag is a flag indicating whether or not the cache entry is in use. If the in-use flag is on, it indicates that the cache entry is in use. The key is a key related to the flow represented by the cache entry, and is used as a search key for searching in the hash table. The rule identifier is an identifier of a rule that matches a packet corresponding to the cache entry. The last use time is information indicating the time when the cache entry was last used. Further, the node state list is a list (for each search tree) of the node to which the flow represented by the cache entry belongs when the cache entry is last used, as shown in part (B) of FIG. Show.

つまり、図6の(B)部分に示すキャッシュエントリのノード状態リストは、当該キャッシュエントリのキーを用いてルールを探索した際に最終的に到達したノード(探索木毎)の情報を記憶する。図6の(B)部分における項目欄53に示すように、キャッシュエントリのノード状態は、探索木識別子、ノード識別子、更新カウンタキャッシュ、共有更新カウンタキャッシュを含む。   That is, the node state list of the cache entry shown in part (B) of FIG. 6 stores information of the node (each search tree) that is finally reached when the rule is searched using the key of the cache entry. As shown in the item column 53 in part (B) of FIG. 6, the node state of the cache entry includes a search tree identifier, a node identifier, an update counter cache, and a shared update counter cache.

図6の(B)部分における説明欄54に示すように、ノード状態の探索木識別子は、当該ノード状態が示す探索木の識別子を示す。また、ノード状態のノード識別子は、当該キャッシュエントリが表すフローが当該探索木において属するノードの識別子である。また、ノード状態の更新カウンタキャッシュおよび共有更新カウンタキャッシュには、それぞれ、当該キャッシュエントリが最後に使用された際の、当該ノードの更新カウンタの値および共有更新カウンタの値が記憶される。なお、共有更新カウンタキャッシュは、ベース探索木のノードについてのみ使用される。   As shown in the description column 54 in part (B) of FIG. 6, the search tree identifier of the node state indicates the identifier of the search tree indicated by the node state. The node identifier of the node state is an identifier of a node to which the flow represented by the cache entry belongs in the search tree. In addition, the update counter cache and the shared update counter cache in the node state respectively store the update counter value and the shared update counter value of the node when the cache entry is last used. Note that the shared update counter cache is used only for the nodes of the base search tree.

次に、図1に示したデータ処理装置1の探索木制御部10の詳細な構成例について、図2のブロック構成図を用いて説明する。図2は、図1に示したデータ処理装置1の探索木制御部10の詳細なブロック構成の一例を示すブロック構成図である。図2に示すように、探索木制御部10は、探索木初期化部11と、ルール更新部12と、探索木探索部13と、更新カウンタ取得部14と、を含む。   Next, a detailed configuration example of the search tree control unit 10 of the data processing apparatus 1 shown in FIG. 1 will be described using the block configuration diagram of FIG. FIG. 2 is a block configuration diagram illustrating an example of a detailed block configuration of the search tree control unit 10 of the data processing device 1 illustrated in FIG. 1. As shown in FIG. 2, the search tree control unit 10 includes a search tree initialization unit 11, a rule update unit 12, a search tree search unit 13, and an update counter acquisition unit 14.

探索木初期化部11は、初期状態において使用するルールセット(初期ルールセット)を基にして、探索木記憶部20およびルール記憶部30それぞれに記憶される探索木およびルールに係る情報を初期化する。当該初期ルールセットは、データ処理装置1が具備する記憶装置(図2には図示されていない)にあらかじめ記憶されていてもよい。また、当該初期ルールセットは、他の制御装置(図2には図示されていない)から与えられてもよい。   The search tree initialization unit 11 initializes the search tree and information related to the rules stored in the search tree storage unit 20 and the rule storage unit 30, respectively, based on the rule set (initial rule set) used in the initial state. To do. The initial rule set may be stored in advance in a storage device (not shown in FIG. 2) included in the data processing device 1. Further, the initial rule set may be given from another control device (not shown in FIG. 2).

また、ルール更新部12は、例えば図1に示したデータ処理装置制御部80からの要求に応じて、探索木記憶部20およびルール記憶部30それぞれに記憶される探索木およびルール(第1の情報エントリの一種)に係る情報を更新する部位である。ルール更新部12は、例えば、更新手段として機能する。ルール更新部12は、データ処理装置制御部80からの要求に含まれる操作種別(追加、変更、削除、のいずれか)およびルールを、パラメータとして受け取る。データ処理装置制御部80からの要求に含まれる操作種別がルール更新(ルール変更)の場合、該当するルールの優先度およびアクションの変更を要求することは可能であるが、マッチ条件は変更することができない。   Further, the rule update unit 12, for example, in response to a request from the data processing device control unit 80 illustrated in FIG. 1, the search tree and rules (the first tree) stored in the search tree storage unit 20 and the rule storage unit 30, respectively. This is a part for updating information relating to a kind of information entry. The rule update unit 12 functions as an update unit, for example. The rule update unit 12 receives the operation type (either addition, change, or deletion) and the rule included in the request from the data processing device control unit 80 as parameters. When the operation type included in the request from the data processing device control unit 80 is rule update (rule change), it is possible to request change of priority and action of the corresponding rule, but change the match condition. I can't.

また、探索木探索部13は、例えば図1に示したパケット処理部60からの要求に応じて、指定されたキーに適合するルールを探索する。探索木探索部13は、探索に係るパラメータとして、探索に使用すべきキー(探索キー)をパケット処理部60から受け取る。探索木探索部13は、探索キーに適合する最高優先度のルールの識別子(最高優先度のルールが検出された場合)、および、探索木における探索において最終的に到達したノード(中間ノードもしくはリーフノード)の識別子(探索木毎)のリストを要求元に返す。   In addition, the search tree search unit 13 searches for a rule that matches the specified key, for example, in response to a request from the packet processing unit 60 illustrated in FIG. The search tree search unit 13 receives a key (search key) to be used for the search from the packet processing unit 60 as a parameter related to the search. The search tree search unit 13 identifies the identifier of the highest priority rule that matches the search key (when the highest priority rule is detected), and the node (intermediate node or leaf) that is finally reached in the search in the search tree. A list of node identifiers (for each search tree) is returned to the request source.

また、更新カウンタ取得部14は、例えば図1に示したパケット処理部60からの要求に応じて、指定されたノードの更新カウンタの最新の値および共有更新カウンタの最新の値を取得する。   Further, the update counter acquisition unit 14 acquires the latest value of the update counter of the designated node and the latest value of the shared update counter, for example, in response to a request from the packet processing unit 60 illustrated in FIG.

次に、図1に示したデータ処理装置1のキャッシュテーブル制御部40の詳細な構成例について、図3のブロック構成図を用いて説明する。図3は、図1に示したデータ処理装置1のキャッシュテーブル制御部40の詳細なブロック構成の一例を示すブロック構成図である。図3に示すように、キャッシュテーブル制御部40は、キャッシュエントリ作成部41と、キャッシュエントリ探索部42と、キャッシュエントリ再評価部43と、を含む。   Next, a detailed configuration example of the cache table control unit 40 of the data processing apparatus 1 illustrated in FIG. 1 will be described with reference to the block configuration diagram of FIG. FIG. 3 is a block configuration diagram showing an example of a detailed block configuration of the cache table control unit 40 of the data processing apparatus 1 shown in FIG. As shown in FIG. 3, the cache table control unit 40 includes a cache entry creation unit 41, a cache entry search unit 42, and a cache entry reevaluation unit 43.

キャッシュエントリ作成部41は、例えば図1に示したデータ処理装置1のパケット処理部60からの要求に応じて、キャッシュエントリを作成する。また、キャッシュエントリ作成部41は、指定されたキーに対応するバケツ(Bucket)に空きがない場合、当該バケツ(Bucket)内のキャッシュエントリを一つ削除し、新しいキャッシュエントリを作成する。   For example, the cache entry creation unit 41 creates a cache entry in response to a request from the packet processing unit 60 of the data processing apparatus 1 illustrated in FIG. In addition, when there is no empty bucket corresponding to the designated key, the cache entry creation unit 41 deletes one cache entry in the bucket and creates a new cache entry.

また、キャッシュエントリ探索部42は、例えば図1に示したデータ処理装置1のパケット処理部60からの要求に応じて、キャッシュエントリを探索する。キャッシュエントリ探索部42は、パラメータとしてキーを受け取り、受け取った当該キーに対応するキャッシュエントリを探索して、探索したキャッシュエントリを要求元に返す。   In addition, the cache entry search unit 42 searches for a cache entry in response to a request from the packet processing unit 60 of the data processing apparatus 1 illustrated in FIG. 1, for example. The cache entry search unit 42 receives a key as a parameter, searches for a cache entry corresponding to the received key, and returns the searched cache entry to the request source.

また、キャッシュエントリ再評価部43は、例えば図1に示したデータ処理装置1のパケット処理部60からの要求に応じて、キャッシュエントリを再評価する。キャッシュエントリ再評価部43は、キャッシュエントリの識別子を受け取る。ここで、キャッシュエントリの再評価とは、指定されたキャッシュエントリとして記憶している探索木探索結果(当該キャッシュエントリが表すフローに適合するルール)が、最新のルールセットの状態においても有効か否かを確認することである。キャッシュエントリ再評価部43は、あるキャッシュエントリが最新のルールセットの状態において有効か否かを確認するために、当該キャッシュエントリとして記憶された、以下のような情報を含むノード状態リストと、関連するノードの更新カウンタおよび共有更新カウンタの最新の値とを使用する。   Further, the cache entry re-evaluation unit 43 re-evaluates the cache entry in response to a request from the packet processing unit 60 of the data processing apparatus 1 shown in FIG. 1, for example. The cache entry reevaluation unit 43 receives the identifier of the cache entry. Here, the reevaluation of a cache entry is whether or not the search tree search result stored in the specified cache entry (the rule that matches the flow represented by the cache entry) is valid even in the state of the latest rule set. Is to check. The cache entry re-evaluation unit 43 is associated with a node state list including the following information stored as the cache entry in order to confirm whether a certain cache entry is valid in the state of the latest rule set. The latest value of the update counter and shared update counter of the node to be used is used.

(a)当該フローが各探索木において属するノード、
(b)当該キャッシュエントリが最後に使用された際の、各当該ノードの更新カウンタの値、
(c)当該キャッシュエントリが最後に使用された際の、各当該ノードの共有更新カウンタの値(ベース探索木のノードのみ有効)。
(A) a node to which the flow belongs in each search tree;
(B) The value of the update counter of each relevant node when the relevant cache entry is last used,
(C) The value of the shared update counter of each relevant node when the relevant cache entry is used last (only valid for nodes in the base search tree).

[実施の形態の動作例]
次に、本実施の形態の構成例として図1〜図3に例示したデータ処理装置1における以下の各動作について、その一例を、図面を参照しながら詳細に説明する。
(A)探索木初期化処理、
(B)ルール更新処理、
(C)ルール探索処理、
(D)パケット処理、
(E)キャッシュエントリ作成処理、
(F)キャッシュエントリ探索処理、
(G)キャッシュエントリ再評価処理。
[Example of operation of the embodiment]
Next, examples of the following operations in the data processing apparatus 1 illustrated in FIGS. 1 to 3 as exemplary configurations of the present embodiment will be described in detail with reference to the drawings.
(A) Search tree initialization processing,
(B) Rule update processing,
(C) rule search processing;
(D) packet processing,
(E) Cache entry creation processing,
(F) cache entry search processing;
(G) Cache entry reevaluation process.

<(A)探索木初期化処理>
まず、図7〜図9のフローチャートを用いて、探索木初期化処理の動作例について説明する。図7は、図1に示したデータ処理装置1の探索木制御部10における探索木初期化部11が、探索木記憶部20およびルール記憶部30にそれぞれ記憶される探索木およびルールセットを初期化する際の、動作の一例を示すフローチャートである。図7のフローチャートに例示する本探索木初期化処理の動作は、例えば、データ処理装置1の起動時に開始されてもよく、データ処理装置制御部80からの初期化要求に応じて開始されてもよい。なお、本探索木初期化処理の動作の開始に際して、探索木制御部10における探索木初期化部11には、初期状態で使用するルールセット(すなわち初期ルールセット)がパラメータとして与えられる。
<(A) Search tree initialization process>
First, an operation example of the search tree initialization process will be described using the flowcharts of FIGS. 7, the search tree initialization unit 11 in the search tree control unit 10 of the data processing apparatus 1 shown in FIG. 1 initializes the search trees and rule sets stored in the search tree storage unit 20 and the rule storage unit 30, respectively. It is a flowchart which shows an example of an operation | movement at the time of conversion. The operation of the search tree initialization process illustrated in the flowchart of FIG. 7 may be started, for example, when the data processing apparatus 1 is started, or may be started in response to an initialization request from the data processing apparatus control unit 80. Good. At the start of the operation of the search tree initialization process, the search tree initialization unit 11 in the search tree control unit 10 is given a rule set (that is, an initial rule set) used in the initial state as a parameter.

図7のフローチャートにおいて、探索木初期化部11は、まず、パラメータとして与えられた初期ルールセットを、各ルールの特徴を用いてサブルールセットに分割し、ルール記憶部30に記憶させる(ステップS101)。上記サブルールセットへの分割は、周知の技術を用いて行われて良く、例えば、上記非特許文献1に記載の分割方法を用いてもよい。   In the flowchart of FIG. 7, the search tree initialization unit 11 first divides the initial rule set given as a parameter into sub-rule sets using the characteristics of each rule, and stores them in the rule storage unit 30 (step S101). ). The division into the sub-rule sets may be performed using a known technique. For example, the division method described in Non-Patent Document 1 may be used.

当該サブルールセットへの分割方法においては、まず、ルールのマッチ条件として使用される各フィールドについて、該当する当該フィールドにおけるマッチ条件の大小を判定する閾値を設定する。例えば、プロトコル番号フィールド(採り得る値0〜255)について閾値”0.5”を設定する。そして、或るルールの”(終了プロトコル番号)−(開始プロトコル番号)”が、”127(=255*0.5(整数部))”以上であれば、探索木初期化部11が、当該ルールは、プロトコル番号について大きいと判定する。また、127未満であれば、探索木初期化部11は、当該ルールは、プロトコル番号について小さいと判定する。   In the method of dividing into sub-rule sets, first, for each field used as a rule match condition, a threshold value for determining the magnitude of the match condition in the corresponding field is set. For example, a threshold value “0.5” is set for the protocol number field (possible values 0 to 255). If “(end protocol number) − (start protocol number)” of a rule is equal to or greater than “127 (= 255 * 0.5 (integer part))”, the search tree initialization unit 11 The rule determines that the protocol number is large. If it is less than 127, the search tree initialization unit 11 determines that the rule is small for the protocol number.

当該サブルールセットへの分割方法において、探索木初期化部11は、各ルールの各フィールド(5タプル(5Tuple))について、それぞれ大小判定を行う。次に、探索木初期化部11は、各フィールドの大小判定結果が同じであるルール群を、一つのサブルールセットとする。探索木初期化部11は、例えば、送信先IPアドレスおよび送信先ポート番号のフィールドのみが大きく、残りのフィールドが小さいと判定されたルール群により一つのサブルールセットを構成する。ただし、マッチ条件が小さいフィールドの数が4以上のルール群については、纏めて一つのサブルールセットとする。サブルールセットの構成例を図21Aおよび図21Bに例示する。このサブルールセットの構成例は図21Aおよび図21Bの2つの図面で示してあり、図21Bは図21Aの続きの部分を示す。即ち、図21Aおよび図21Bは一続きの図面として理解するべき図面であるので、以下では両図面を一つの図面として纏めて図21と称することとする。説明の便宜上、図21Aおよび図21Bの上部には同じ内容の凡例を設けられている。但し、図21Aおよび図21Bの両図を一体としてみる場合(即ち図21Aの下端に図21Bの上端を接続した形で両図をみる場合)には、図21B上部の凡例は省略されたものとして扱われてよい。図21は、図1に示したデータ処理装置1の探索木制御部10における探索木初期化部11が、ルールセットをルールの特徴に基づいて分割する際の、サブルールセットの例を示す説明図である。図21には、ルールが、送信元IPアドレス(IPS)、送信先IPアドレス(IPD)、(通信)プロトコル(P)、送信元ポート(TPS)、送信先ポート(TPD)の5つのフィールド(5タプル)からなる場合の、サブルールセットの構成例が示されている。なお、図21においては、各フィールドにおけるマッチ条件の指定が小さいフィールドを、ハッチング(網掛け)を施した四角形によって示している。   In the division method into the sub-rule sets, the search tree initialization unit 11 performs size determination for each field (5 tuple) of each rule. Next, the search tree initialization unit 11 sets a rule group having the same magnitude determination result for each field as one sub-rule set. For example, the search tree initialization unit 11 configures one sub-rule set by a rule group in which it is determined that only the destination IP address and destination port number fields are large and the remaining fields are small. However, rule groups having four or more fields with small match conditions are collectively set as one sub-rule set. A configuration example of the sub-rule set is illustrated in FIGS. 21A and 21B. An example of the configuration of this sub-rule set is shown in two drawings of FIGS. 21A and 21B, and FIG. 21B shows a continuation of FIG. 21A. That is, FIGS. 21A and 21B are drawings to be understood as a series of drawings. In the following, both drawings will be collectively referred to as FIG. 21. For convenience of explanation, legends having the same contents are provided at the top of FIGS. 21A and 21B. However, when viewing both figures of FIG. 21A and FIG. 21B together (that is, when viewing both figures with the lower end of FIG. 21A connected to the upper end of FIG. 21B), the legend at the top of FIG. 21B is omitted. May be treated as FIG. 21 illustrates an example of a sub-rule set when the search tree initialization unit 11 in the search tree control unit 10 of the data processing apparatus 1 illustrated in FIG. 1 divides the rule set based on the rule characteristics. FIG. In FIG. 21, the rule has five fields (source IP address (IPS), destination IP address (IPD), (communication) protocol (P), source port (TPS), destination port (TPD)). A configuration example of a sub-rule set in the case of 5 tuples) is shown. In FIG. 21, a field with a small match condition designation in each field is indicated by a hatched rectangle.

図21のサブルールセット構成例において、図21(図21A)における(a)部分は、マッチ条件の指定が5フィールド(5タプル)とも大きいルール群として‘サブセット5’の1個のサブルールセットが存在する場合を示す。また、図21(図21A)の(b)部分は、マッチ条件の指定が小さいフィールドの数が1個のルール群として、‘サブセット1−1’〜‘サブセット1−5’の5個のサブルールセットが存在する場合を示す。例えば、‘サブセット1−1’の場合は、ハッチングによって示しているように、送信元IPアドレスのフィールドが、小さいフィールドであることを示している。   In the sub-rule set configuration example of FIG. 21, (a) part in FIG. 21 (FIG. 21A) is one sub-rule set of “subset 5” as a rule group in which the designation of the match condition is large for all 5 fields (5 tuples) Indicates the presence of. Further, part (b) of FIG. 21 (FIG. 21A) shows five sub-groups “subset 1-1” to “subset 1-5” as a rule group having one field with a small match condition designation. Indicates the case where a rule set exists. For example, “subset 1-1” indicates that the source IP address field is a small field, as indicated by hatching.

また、図21(図21A)の(c)部分は、マッチ条件の指定が小さいフィールドの数が2個のルール群として、‘サブセット2−1’〜‘サブセット2−10’の10個のサブルールセットが存在する場合を示している。例えば、‘サブセット2−1’の場合は、ハッチングによって示しているように、送信元IPアドレスと送信先IPアドレスとの2つのフィールドが、小さいフィールドであることを示している。また、図21(図21B)の(d)は、マッチ条件の指定が小さいフィールドの数が3個のルール群として、‘サブセット3−1’〜‘サブセット3−10’の10個のサブルールセットが存在する場合を示している。例えば、‘サブセット3−1’の場合は、ハッチングによって示しているように、送信元IPアドレスと送信先IPアドレスとプロトコルとの3つのフィールドが、小さいフィールドであることを示している。   Further, part (c) of FIG. 21 (FIG. 21A) shows ten sub-groups from “subset 2-1” to “subset 2-10” as a rule group having two fields with a small match condition designation. The case where a rule set exists is shown. For example, in the case of “subset 2-1”, as indicated by hatching, the two fields of the transmission source IP address and the transmission destination IP address are small fields. Further, (d) of FIG. 21 (FIG. 21B) shows ten subrules from “subset 3-1” to “subset 3-10” as a rule group having three fields with small match condition designations. The case where a set exists is shown. For example, in the case of “subset 3-1”, as indicated by hatching, three fields of a source IP address, a destination IP address, and a protocol are small fields.

また、図21(図21B)の(e)部分は、マッチ条件の指定が小さいフィールドの数が4個以上のルール群として、‘サブセット4’の1個のサブルールセットに纏められて収容される場合を示している。例えば、送信元IPアドレスと送信先IPアドレスとプロトコルと送信元ポートとの4つのフィールドが小さいフィールドである場合も、送信元IPアドレスと送信先IPアドレスとプロトコルと送信元ポートと送信先ポートの5つのフィールドが小さいフィールドである場合も、‘サブセット4’という一つのサブルールセットに纏めて収容される。   Further, the portion (e) of FIG. 21 (FIG. 21B) is accommodated as a group of rules of “subset 4” as a group of rules having four or more fields with small match condition designations. Shows the case. For example, when the four fields of the source IP address, destination IP address, protocol, and source port are small fields, the source IP address, destination IP address, protocol, source port, and destination port Even when the five fields are small fields, they are accommodated together in one subrule set called “subset 4”.

図7のフローチャートの説明に戻って、探索木初期化部11は、次に、サブルールセット毎に探索木を構築する(ステップS102)。その動作の詳細については後述する。しかる後、探索木初期化部11は、探索木グループと、各探索木グループのベース探索木と、を決定する(ステップS103)。ここで、探索木初期化部11は、例えば、各探索木に含まれるルールの特徴を用いてあらかじめ定めたグループ化基準により、探索木をグループ化する。係るグループ化基準は、例えば、ルールのマッチ条件(データ識別情報の一種)の粒度を与える、以下に示すようなグループ化基準であってもよい。   Returning to the description of the flowchart of FIG. 7, the search tree initialization unit 11 next constructs a search tree for each subrule set (step S <b> 102). Details of the operation will be described later. Thereafter, the search tree initialization unit 11 determines a search tree group and a base search tree for each search tree group (step S103). Here, for example, the search tree initialization unit 11 groups search trees according to a grouping criterion determined in advance using the characteristics of the rules included in each search tree. Such a grouping criterion may be, for example, a grouping criterion that gives the granularity of rule matching conditions (a type of data identification information) as shown below.

(a)グループ化基準A:マッチ条件の指定が5フィールドとも大きいルール群を収容する探索木(図21の(a)部分の‘サブセット5’用探索木)は、単独で探索木グループを構成する。   (A) Grouping criterion A: A search tree (search tree for “subset 5” in part (a) of FIG. 21) that accommodates a rule group in which all of the five match conditions are specified is a search tree group. To do.

(b)グループ化基準B:マッチ条件の指定が小さいフィールド数が4以上のルール群を収容する探索木(図21の(e)部分の‘サブセット4’用探索木)についても、単独で探索木グループを構成するようにしてもよい。   (B) Grouping criterion B: A search tree containing a group of rules having a small match condition specification and a field number of 4 or more (search tree for “subset 4” in part (e) of FIG. 21) is also searched independently. You may make it comprise a tree group.

(c)グループ化基準C:マッチ条件の指定が小さいフィールドの数が少ない(例えば1個の)ルール群を収容する探索木(図21の(b)部分の‘サブセット1−1’用探索木〜‘サブセット1−5’用探索木)は、それぞれ異なる探索木グループに含める。   (C) Grouping criterion C: a search tree containing a rule group with a small number of fields (for example, one) for which the match condition is small (for example, a search tree for “subset 1-1” in part (b) of FIG. 21) ~ 'Subset 1-5' search trees) are included in different search tree groups.

(d)グループ化基準D:マッチ条件の指定の大小パターンが似ている探索木同士を同じ探索木グループに含め、似ていない探索木同士は別の探索木グループに含める。   (D) Grouping criterion D: Search trees with similar size patterns specified by the match condition are included in the same search tree group, and dissimilar search trees are included in another search tree group.

(d−1)例えば、マッチ条件の指定が小さいフィールドを‘0’、大きいフィールドを‘1’と表し、各探索木についてマッチ条件の指定の大小パターンから5ビット2進数列を作成する。そして、各探索木について作成した5ビット2進数列間のハミング距離(具体的には、数値化されたハミング距離)を用いて、2つの探索木に関する類似度判定を行う。     (D-1) For example, a field with a small match condition specification is represented by ‘0’ and a large field is represented by ‘1’. For each search tree, a 5-bit binary sequence is created from the large and small patterns designated by the match condition. Then, using the Hamming distance (specifically, the digitized Hamming distance) between the 5-bit binary sequences created for each search tree, similarity determination for the two search trees is performed.

(d−2)例えば、図21の(c)部分の‘サブセット2−5’用2進数列は‘10011’、図21(d)の‘サブセット3−7’用2進数列は‘10001’であり、その間のハミング距離は‘1’である。また、図21の(c)部分の‘サブセット2−7’用2進数列は‘10110’であり、サブセット2−5用2進数列とのハミング距離は‘2’である。したがって、‘サブセット2−5’用探索木と同じ探索木グループに収容する探索木としては、ハミング距離が小さい‘サブセット3−7’用探索木の方が、‘サブセット2−7‘用探索木よりも望ましい。     (D-2) For example, the binary sequence for “subset 2-5” in part (c) of FIG. 21 is “10011”, and the binary sequence for “subset 3-7” in FIG. 21 (d) is “10001”. The Hamming distance between them is “1”. In addition, the binary sequence for “subset 2-7” in part (c) of FIG. 21 is “10110”, and the Hamming distance from the binary sequence for subset 2-5 is “2”. Therefore, as a search tree accommodated in the same search tree group as the search tree for 'subset 2-5', the search tree for 'subset 3-7' having a smaller Hamming distance is the search tree for 'subset 2-7'. More desirable.

(e)グループ化基準E:各探索木グループに含まれる探索木の数が、なるべく等しくなるようにする(ただし、グループ化基準Aおよびグループ化基準Bによるグループを除く)。   (E) Grouping criterion E: The number of search trees included in each search tree group is made as equal as possible (except for groups based on grouping criterion A and grouping criterion B).

図21のサブルールセット構成例における探索木初期化部11によるグループ化の結果を示す探索木グループの一例を、図22に示す。図22は、図1に示したデータ処理装置1の探索木制御部10における探索木初期化部11により作成される探索木グループの一例を示す表である。図21のサブルールセット構成例の場合、前述のグループ化基準A〜Eを適用することにより、図22の探索木グループ欄111に示すように、サブルールセットは、探索木グループ1〜探索木グループ7の7個の探索木グループにグルーピングされる。   An example of a search tree group showing the result of grouping by the search tree initialization unit 11 in the sub-rule set configuration example of FIG. 21 is shown in FIG. FIG. 22 is a table showing an example of a search tree group created by the search tree initialization unit 11 in the search tree control unit 10 of the data processing apparatus 1 shown in FIG. In the case of the sub-rule set configuration example of FIG. 21, by applying the above-described grouping criteria A to E, the sub-rule sets are represented as search tree group 1 to search tree as shown in the search tree group column 111 of FIG. Grouped into 7 search tree groups of group 7.

例えば、探索木グループ1には、図22の使用グループ化基準欄113に示すように、図21に例示するサブルールセットに対して、グループ化基準C、D、Eを適用することによりグループ化された探索木が含まれる。即ち、図22の所属探索木欄112に示すように、探索木グループ1には、図21の‘サブセット1−1’、‘サブセット2−1’、‘サブセット2−2’、‘サブセット3−1’、‘サブセット3−3’の5個の探索木が属する。同様に、探索木グループ2には、図21に例示するサブルールセットに対して、グループ化基準C、D、Eを適用することによりグループ化された探索木が含まれる。即ち、図22の所属探索木欄112に示すように、探索木グループ2には、図21の‘サブセット1−2’、‘サブセット2−5’、‘サブセット2−6’、‘サブセット3−7’、‘サブセット3−9’の5個の探索木が属する。また、探索木グループ6には、グループ化基準Aを適用することにより、‘サブセット5’の1個の探索木が属する。探索木グループ7には、グループ化基準Bを適用することにより、‘サブセット4’の1個の探索木が属する。   For example, the search tree group 1 is grouped by applying the grouping criteria C, D, and E to the subrule set illustrated in FIG. 21 as shown in the use grouping criteria column 113 of FIG. Searched search trees are included. That is, as shown in the belonging search tree column 112 of FIG. 22, the search tree group 1 includes “subset 1-1”, “subset 2-1”, “subset 2-2”, and “subset 3-” of FIG. Five search trees of 1 'and' subset 3-3 'belong. Similarly, the search tree group 2 includes search trees that are grouped by applying the grouping criteria C, D, and E to the subrule set illustrated in FIG. That is, as shown in the belonging search tree column 112 of FIG. 22, the search tree group 2 includes “subset 1-2”, “subset 2-5”, “subset 2-6”, and “subset 3-” of FIG. Five search trees of 7 ′ and “subset 3-9” belong. In addition, by applying the grouping criterion A to the search tree group 6, one search tree of 'subset 5' belongs. By applying the grouping criterion B to the search tree group 7, one search tree of 'subset 4' belongs.

さらに、探索木初期化部11は、例えば、決定された各探索木グループの中から、マッチ条件の指定が小さいフィールドの数が最も小さい(少ない)探索木を、当該探索木グループのベース探索木として選択する。図22の例においては、探索木初期化部11は、例えば、探索木グループ1のベース探索木として‘サブセット1−1’用探索木(マッチ条件の小さいフィールドの数が‘1’の探索木)を選択する。   Further, the search tree initialization unit 11 selects, for example, a search tree having the smallest (smallest) number of fields for which the match condition is specified from among the determined search tree groups, as a base search tree for the search tree group. Select as. In the example of FIG. 22, for example, the search tree initialization unit 11 uses a search tree for “subset 1-1” as a base search tree for search tree group 1 (a search tree with a small number of fields with a small match condition of “1”). ) Is selected.

次に、図7のステップS102において、探索木初期化部11がサブルールセット毎に探索木を構築する動作の一例について、図8および図9のフローチャートを参照して説明する。図8は、図1に示したデータ処理装置1の探索木制御部10における探索木初期化部11が、探索木構築処理を行う際の動作の一例を示すフローチャートであり、探索木初期化部11が探索木を構築する際の動作の一例を示している。   Next, an example of the operation in which the search tree initialization unit 11 constructs a search tree for each subrule set in step S102 of FIG. 7 will be described with reference to the flowcharts of FIGS. FIG. 8 is a flowchart showing an example of an operation when the search tree initialization unit 11 in the search tree control unit 10 of the data processing apparatus 1 shown in FIG. 1 performs the search tree construction process. 11 shows an example of the operation when a search tree is constructed.

図8のフローチャートにおいて、探索木初期化部11は、まず、構築する探索木のルートノードを割り当てる(ステップS111)。具体的には、探索木初期化部11は、探索木記憶部20にルートノードの情報を記憶するデータ領域を割り当て、当該ルートノードについて以下のような情報を設定する。   In the flowchart of FIG. 8, the search tree initialization unit 11 first assigns the root node of the search tree to be constructed (step S111). Specifically, the search tree initialization unit 11 assigns a data area for storing information on the root node to the search tree storage unit 20 and sets the following information for the root node.

(a)リーフノードフラグ:オフ、
(b)親ノード識別子 :無効値、
(c)部分空間 :下記の探索空間全体、
(c−1)送信先IPアドレス:0.0.0.0〜255.255.255.255、
(c−2)送信元IPアドレス:0.0.0.0〜255.255.255.255、
(c−3)プロトコル番号 :0〜255、
(c−4)送信先ポート番号 :0〜65535、
(c−5)送信元ポート番号 :0〜65535、
(d)更新カウンタおよび共有更新カウンタ:0。
(A) Leaf node flag: off,
(B) Parent node identifier: invalid value,
(C) Subspace: The entire search space below,
(C-1) Destination IP address: 0.0.0.0 to 255.255.255.255,
(C-2) Source IP address: 0.0.0.0 to 255.255.255.255,
(C-3) Protocol number: 0-255,
(C-4) Destination port number: 0 to 65535
(C-5) Source port number: 0 to 65535,
(D) Update counter and shared update counter: 0.

次いで、探索木初期化部11は、割り当てたルートノードについて、後述する探索木構築サブ処理Aを実行する(ステップS112)。その際、探索木初期化部11は、当該ルートノードと、処理対象のサブルールセットに含まれる全てのルールと、をパラメータとして使用する。   Next, the search tree initialization unit 11 executes a search tree construction sub-process A described later for the assigned root node (step S112). At that time, the search tree initialization unit 11 uses the root node and all the rules included in the sub-rule set to be processed as parameters.

次に、図8のフローチャートのステップS112において実行される探索木構築サブ処理Aの詳細な動作について、図9のフローチャートを用いて説明する。図9は、図8のフローチャートのステップS112において実行される探索木構築サブ処理Aの詳細な動作の一例を示すフローチャートである。本探索木構築サブ処理Aは、パラメータとして、処理対象のノード(例えばノード識別子の形式、以降‘処理対象ノード’と記載)および当該ノードに含まれるルールの集合(例えばルール識別子のリストの形式、以降‘処理対象ルールセット’と記載)を受け取る。   Next, the detailed operation of the search tree construction sub-process A executed in step S112 of the flowchart of FIG. 8 will be described using the flowchart of FIG. FIG. 9 is a flowchart showing an example of detailed operation of the search tree construction sub-process A executed in step S112 of the flowchart of FIG. The search tree construction sub-process A includes, as parameters, a processing target node (for example, a node identifier format, hereinafter referred to as “processing target node”), and a set of rules included in the node (for example, a rule identifier list format, (Receive 'rule set for processing').

図9のフローチャートにおいて、探索木初期化部11は、まず、処理対象ルールセットに含まれるルールの数があらかじめ定めた一定数(Binth)以下か否かを確認する(ステップS121)。ルールの数が一定数(Binth)以下ではなかった場合(ステップS121のNO)、探索木初期化部11は、処理対象ノードが表す部分空間をカット(Cut)する次元およびカット(Cut)数を決定する(ステップS122)。ここで、カット(Cut)する次元およびカット(Cut)数は、周知の技術を用いて決定されてもよく、例えば、係る技術として、上記非特許文献1および該非特許文献1が参照する文献に記載の分割方法が用いられてもよい。   In the flowchart of FIG. 9, the search tree initialization unit 11 first checks whether or not the number of rules included in the processing target rule set is equal to or less than a predetermined number (Binth) (step S121). If the number of rules is not less than or equal to a certain number (Binth) (NO in step S121), the search tree initialization unit 11 sets the dimension and the number of cuts to cut the subspace represented by the processing target node. Determine (step S122). Here, the dimension to be cut (Cut) and the number of cuts (Cut) may be determined using a well-known technique. For example, as such a technique, the non-patent document 1 and the document referred to by the non-patent document 1 refer to The described division method may be used.

上記非特許文献1および該非特許文献1が参照する文献に記載の当該分割方法においては、処理対象ルールセットの各ルールのマッチ条件が、処理対象ノードの部分空間との共通部分に限定される。例えば、或るルールのプロトコル番号が10〜20であり、処理対象ノードの部分空間のプロトコル番号が15〜25であった場合、当該ルールのマッチ条件のプロトコル番号は、15〜20に決定される。   In the division method described in Non-Patent Document 1 and the literature referred to by Non-Patent Document 1, the matching condition of each rule of the processing target rule set is limited to a common part with the partial space of the processing target node. For example, when the protocol number of a certain rule is 10 to 20 and the protocol number of the partial space of the processing target node is 15 to 25, the protocol number of the matching condition of the rule is determined to be 15 to 20 .

さらに、当該分割方法は、各次元(フィールド)について、ユニークな範囲の数を計算する。例えば、ルールが3つあり、各ルールのマッチ条件のプロトコル番号が、それぞれ、15〜20、16〜20、17〜17、であった場合、ユニークな範囲の数は3となる。また、各ルールのマッチ条件のプロトコル番号が、それぞれ、15〜20、15〜20、17〜17、であった場合には、ユニークな範囲の数は2となる(すなわち、第1番目と第2番目とは同一のプロトコル番号であるため)。そして、当該分割方法は、全次元についてのユニークな範囲の数の平均より大きいユニークな範囲の数を有する次元を、カット(Cut)する次元として選択する。   Furthermore, the division method calculates the number of unique ranges for each dimension (field). For example, if there are three rules and the protocol numbers of the match conditions of each rule are 15 to 20, 16 to 20, and 17 to 17, respectively, the number of unique ranges is 3. Further, when the protocol number of the match condition of each rule is 15 to 20, 15 to 20, and 17 to 17, respectively, the number of unique ranges is 2 (that is, the first and the first) (The second is the same protocol number). Then, the division method selects a dimension having a number of unique ranges larger than the average of the number of unique ranges for all dimensions as a dimension to be cut.

また、当該分割方法は、カット(Cut)する数の上限値を、メモリ使用量を調整するためのパラメータであるspfac(Special Factor)と、処理対象ルールセットの大きさ(ルール数)とから決定する。例えば、当該分割方法は、当該ルール数の平方根と、パラメータspfacとを積算した値をカット(Cut)する数の上限値とする。そして、当該分割方法は、カット(Cut)する数を2としたときの、各子ノードに含まれるルールの数の平均値および最大値を求める。   In the division method, the upper limit value of the number of cuts is determined from spfac (Special Factor), which is a parameter for adjusting the memory usage, and the size (number of rules) of the rule set to be processed. To do. For example, in the division method, the upper limit value of the number to be cut (Cut) is a value obtained by integrating the square root of the rule number and the parameter spfac. Then, the division method obtains an average value and a maximum value of the number of rules included in each child node when the number of cuts is 2.

さらに、当該分割方法は、カット(Cut)する数を増やし、その時の各子ノードに含まれるルールの数の平均値および最大値を求める。そして、当該分割方法は、カット(Cut)する値が上限値に達するか、もしくは、カット(Cut)する数を増やしても、各子ノードに含まれるルールの数の平均値および最大値に大きな変化が現れなくなった際のカット(Cut)する数を、処理対象ノードをカット(Cut)する数として決定する。   Further, the division method increases the number of cuts, and obtains the average value and the maximum value of the number of rules included in each child node at that time. Then, even if the value to be cut reaches the upper limit value or the number of cuts is increased, the division method is large in the average value and the maximum value of the number of rules included in each child node. The number of cuts when the change stops appearing is determined as the number of cuts of the processing target node.

図9のフローチャートの説明に戻る。探索木初期化部11は、次に、ステップS122において決定したカット(Cut)方法(Cutする次元と、Cutする数)に基づき、処理対象ノードが表す部分空間をカット(Cut)した場合に得られる各部分空間について、子ノードを割り当てる(ステップS123)。具体的には、探索木初期化部11は、探索木記憶部20に各子ノードの情報を記憶するデータ領域を割り当てさせ、各子ノードについて以下のような情報を設定する。なお、カット(Cut)した結果得られた部分空間に含まれるルールの数が‘0’の場合には、当該部分空間を表す子ノードは割り当てなくてもよい。   Returning to the flowchart of FIG. Next, the search tree initialization unit 11 obtains when the partial space represented by the processing target node is cut based on the cut method (the dimension to be cut and the number to be cut) determined in step S122. A child node is assigned to each partial space (step S123). Specifically, the search tree initialization unit 11 assigns a data area for storing information of each child node to the search tree storage unit 20 and sets the following information for each child node. When the number of rules included in the partial space obtained as a result of the cut is “0”, a child node representing the partial space may not be assigned.

(a)リーフノードフラグ:オフ、
(b)親ノード識別子 :処理対象ノードの識別子、
(c)部分空間情報 :当該子ノードが表す部分空間、
(d)更新カウンタおよび共有更新カウンタ:0。
(A) Leaf node flag: off,
(B) Parent node identifier: identifier of the processing target node,
(C) Subspace information: the subspace represented by the child node,
(D) Update counter and shared update counter: 0.

次いで、探索木初期化部11は、ステップS123において割り当てた各子ノードについて、ステップS121〜S123までの本探索木構築サブ処理Aを実行する(ステップS124)。その際、探索木初期化部11は、処理対象の子ノードと、当該子ノードに含まれるルールの集合と、をパラメータとして使用する。   Next, the search tree initialization unit 11 executes the main search tree construction sub-process A from step S121 to S123 for each child node assigned in step S123 (step S124). At that time, the search tree initialization unit 11 uses a child node to be processed and a set of rules included in the child node as parameters.

なお、ステップS121において、ルールの数が一定数(Binth)以下であった場合には(ステップS121のYES)、探索木初期化部11は、処理対象ノードをリーフノードとしてセットアップする(ステップS125)。具体的には、探索木初期化部11は、処理対象ノードについて以下のような設定変更・追加を行う。   In step S121, if the number of rules is equal to or less than a certain number (Binth) (YES in step S121), the search tree initialization unit 11 sets up the processing target node as a leaf node (step S125). . Specifically, the search tree initialization unit 11 performs the following setting change / addition for the processing target node.

(a)リーフノードフラグ: オン、
(b)ルール識別子リスト: 当該子ノードに含まれるルールの識別子のリスト。
(A) Leaf node flag: ON,
(B) Rule identifier list: A list of identifiers of rules included in the child node.

<(B)ルール更新処理>
次に、図10〜図14のフローチャートを用いて、ルール更新処理の動作例について説明する。図10は、図1に示したデータ処理装置1の探索木制御部10におけるルール更新部12が、探索木記憶部20およびルール記憶部30それぞれに記憶される探索木およびルールセットを更新する際の動作の一例を示すフローチャートである。図10のフローチャートに例示する本ルール更新処理の動作は、例えば、データ処理装置制御部80からの要求により開始されてもよい。ルール更新部12は、ルール更新処理に係るパラメータとして、操作種別(追加、変更、削除、のいずれか)およびルール(以降、‘処理対象ルール’と記載)を受け取る。
<(B) Rule update process>
Next, an example of the rule update process will be described with reference to the flowcharts of FIGS. 10 shows a case where the rule update unit 12 in the search tree control unit 10 of the data processing apparatus 1 shown in FIG. 1 updates the search tree and rule set stored in the search tree storage unit 20 and the rule storage unit 30, respectively. It is a flowchart which shows an example of this operation | movement. The operation of this rule update process illustrated in the flowchart of FIG. 10 may be started by a request from the data processing device control unit 80, for example. The rule update unit 12 receives an operation type (any one of addition, change, and deletion) and a rule (hereinafter referred to as “processing target rule”) as parameters related to the rule update process.

図10のフローチャートにおいて、ルール更新部12は、まず、処理対象ルールが含まれる、処理対象のサブルールセットを選択する(ステップS131)。該サブルールセットの選択は、処理対象ルールの特徴に基づき、図7のフローチャートのステップS101によって用いられた方法と同じ方法によって行われる。   In the flowchart of FIG. 10, the rule update unit 12 first selects a processing target sub-rule set including a processing target rule (step S131). The selection of the sub-rule set is performed by the same method as that used in step S101 in the flowchart of FIG. 7 based on the characteristics of the processing target rule.

次に、ルール更新部12は、パラメータとして要求されている現在の操作が、ルール削除か否かを確認する(ステップS132)。要求されている現在の操作がルール削除であった場合には(ステップS132のYES)、ルール更新部12は、ルール記憶部30に記憶されている処理対象ルールの削除フラグをオンに設定した後(ステップS134)、ステップS135に移行する。一方、要求されている現在の操作がルール削除ではなかった場合には(ステップS132のNO)、ルール更新部12は、処理対象のサブルールセットを、パラメータによる要求にしたがって更新した後(ステップS133)、ステップS135に移行する。具体的な更新処理としては、ルール追加の場合には、ルール更新部12は、ルール記憶部30に処理対象サブルールセットの一要素として処理対象ルールを新たに記憶させる。また、ルール変更の場合には、ルール更新部12は、ルール記憶部30に処理対象サブルールセットの一要素として記憶されている処理対象ルールの情報(優先度およびアクション)を変更する。   Next, the rule update unit 12 confirms whether or not the current operation requested as a parameter is a rule deletion (step S132). When the requested current operation is rule deletion (YES in step S132), the rule update unit 12 sets the process target rule deletion flag stored in the rule storage unit 30 to ON. (Step S134), the process proceeds to Step S135. On the other hand, if the requested current operation is not a rule deletion (NO in step S132), the rule update unit 12 updates the processing target subrule set according to the request by the parameter (step S133). ), The process proceeds to step S135. As a specific update process, in the case of adding a rule, the rule update unit 12 causes the rule storage unit 30 to newly store the process target rule as an element of the process target sub-rule set. Further, in the case of rule change, the rule update unit 12 changes information (priority and action) of the processing target rule stored in the rule storage unit 30 as one element of the processing target subrule set.

次いで、ルール更新部12は、パラメータとして要求されている現在の操作がルール追加か否かを確認する(ステップS135)。要求されている現在の操作がルール追加であった場合には(ステップS135のYES)、ルール更新部12は、処理対象サブルールセットの探索木(すなわち処理対象探索木)のルートノードについて、後述するルール更新サブ処理A1を実行した後(ステップS136)、ステップS138に移行する。一方、要求されている現在の操作がルール追加ではなかった場合には(ステップS135のNO)、ルール更新部12は、処理対象探索木のルートノードについて、後述するルール更新サブ処理Bを実行した後(ステップS137)、ステップS138に移行する。   Next, the rule update unit 12 confirms whether or not the current operation requested as a parameter is a rule addition (step S135). When the requested current operation is a rule addition (YES in step S135), the rule update unit 12 describes the root node of the search tree of the processing target subrule set (that is, the processing target search tree) later. After executing the rule update sub-process A1 to be executed (step S136), the process proceeds to step S138. On the other hand, when the requested current operation is not a rule addition (NO in step S135), the rule update unit 12 executes a rule update sub-process B described later for the root node of the processing target search tree. After (step S137), the process proceeds to step S138.

しかる後、ルール更新部12は、処理対象探索木のベース探索木を選択する(ステップS138)。具体的には、ルール更新部12は、探索木記憶部20に記憶されている探索木グループリストを参照し、処理対象探索木が属する探索木グループのベース探索木の識別子を取得する。次いで、ルール更新部12は、ステップS138において選択したベース探索木のルートノードについて、後述するルール更新サブ処理Cを実行する(ステップS139)。   Thereafter, the rule update unit 12 selects a base search tree for the processing target search tree (step S138). Specifically, the rule update unit 12 refers to the search tree group list stored in the search tree storage unit 20 and acquires the identifier of the base search tree of the search tree group to which the processing target search tree belongs. Next, the rule update unit 12 executes a rule update sub-process C described later on the root node of the base search tree selected in step S138 (step S139).

詳細は後述するが、ステップS136のルール更新サブ処理A1およびステップS137のルール更新サブ処理Bにより、処理対象探索木の、処理対象ルールを含んでいるノードの更新カウンタが更新される。また、ステップS139のルール更新サブ処理Cにより、処理対象探索木が属する探索木グループのベース探索木の、処理対象ルールを含んでいるノードの共有更新カウンタが更新される。   Although details will be described later, the update counter of the node including the processing target rule in the processing target search tree is updated by the rule update sub processing A1 in step S136 and the rule update sub processing B in step S137. In addition, by the rule update sub-process C in step S139, the shared update counter of the node including the processing target rule in the base search tree of the search tree group to which the processing target search tree belongs is updated.

次に、図10のフローチャートのステップS136において実行されるルール更新サブ処理A1の詳細な動作について、図11のフローチャートを用いて説明する。図11は、図10のフローチャートのステップS136において実行されるルール更新サブ処理A1の詳細な動作の一例を示すフローチャートである。本ルール更新サブ処理A1においては、処理対象のノード(処理対象ノード)および当該ノードに追加するルール(処理対象ルール)が与えられる。   Next, the detailed operation of the rule update sub-process A1 executed in step S136 of the flowchart of FIG. 10 will be described using the flowchart of FIG. FIG. 11 is a flowchart showing an example of detailed operation of the rule update sub-process A1 executed in step S136 of the flowchart of FIG. In this rule update sub-process A1, a processing target node (processing target node) and a rule to be added to the node (processing target rule) are given.

図11のフローチャートにおいて、ルール更新部12は、まず、処理対象ノードがリーフノードか否かを確認する(ステップS141)。リーフノードか否かの確認は、処理対象ノードのリーフノードフラグがオンか否かを確認することによって行われる。処理対象ノードがリーフノードではなかった場合には(ステップS141のNO)、ルール更新部12は、処理対象ルールを含む子ノード群を選択する(ステップS142)。或る子ノードが処理対象ルールを含んでいるか否かは、当該子ノードが表す部分空間と、処理対象ルールのマッチ条件が表す部分空間とに重なり(重なる部分)があるか否か(すなわち共通部分があるか否か)によって判定することができる。   In the flowchart of FIG. 11, the rule update unit 12 first confirms whether or not the processing target node is a leaf node (step S141). Whether or not it is a leaf node is confirmed by checking whether or not the leaf node flag of the processing target node is on. When the processing target node is not a leaf node (NO in step S141), the rule update unit 12 selects a child node group including the processing target rule (step S142). Whether or not a certain child node includes a processing target rule is whether or not there is an overlap (overlapping portion) between the partial space represented by the child node and the partial space represented by the matching condition of the processing target rule (that is, common). Whether or not there is a part).

次いで、ルール更新部12は、ステップS142において選択された各子ノード(未割り当ての子ノードを含む)それぞれについて、後述するルール更新サブ処理A2を実行する(ステップS143)。その際、ルール更新部12は、パラメータとして、選択された子ノード(新しい処理対象ノードとして)と、現在の処理対象ノード(新しい処理対象ノードの親ノードとして)と、処理対象ルールと、を使用する。   Next, the rule update unit 12 executes a rule update sub-process A2 described later for each child node (including unassigned child nodes) selected in step S142 (step S143). At that time, the rule update unit 12 uses the selected child node (as a new processing target node), the current processing target node (as a parent node of the new processing target node), and the processing target rule as parameters. To do.

しかる後、ルール更新部12は、ステップS143において1回もしくは複数回実行されたルール更新サブ処理A2のいずれかにおいて新規に割り当てられた子ノードがあるか否かを確認する(ステップS144)。その確認の結果、新規に割り当てられた子ノードがなかった場合には(ステップS144のNO)、ルール更新部12は、本ルール更新サブ処理A1を終了する。一方、新規に割り当てられた子ノードがあった場合には(ステップS144のYES)、ルール更新部12は、処理対象ノードの更新カウンタを更新する(ステップS145)。具体的には、ルール更新部12は、処理対象ノードの更新カウンタの値を、現在の値に‘1’加えたものに変更する。   Thereafter, the rule updating unit 12 confirms whether or not there is a child node newly assigned in any of the rule update sub-process A2 executed once or a plurality of times in step S143 (step S144). As a result of the confirmation, if there is no newly assigned child node (NO in step S144), the rule update unit 12 ends the rule update sub-process A1. On the other hand, when there is a newly assigned child node (YES in step S144), the rule update unit 12 updates the update counter of the processing target node (step S145). Specifically, the rule update unit 12 changes the value of the update counter of the processing target node to a value obtained by adding “1” to the current value.

また、ステップS141において、処理対象ノードがリーフノードであった場合には(ステップS141のYES)、ルール更新部12は、ルール追加後の処理対象ノード(リーフノード)に対応するルールの数があらかじめ定めた一定数(Binth)以下か否かを確認する(ステップS146)。ルールの数が該一定数(Binth)以下であった場合(ステップS146のYES)、ルール更新部12は、処理対象ノード(リーフノード)のルール識別子リストに処理対象ルールの識別子を追加した後(ステップS147)、前述したステップS145に移行する。   In step S141, if the processing target node is a leaf node (YES in step S141), the rule update unit 12 determines that the number of rules corresponding to the processing target node (leaf node) after the rule is added in advance. It is confirmed whether or not it is equal to or less than a predetermined fixed number (Binth) (step S146). When the number of rules is equal to or less than the predetermined number (Binth) (YES in step S146), the rule update unit 12 adds the identifier of the processing target rule to the rule identifier list of the processing target node (leaf node) ( Step S147), the process proceeds to the above-described Step S145.

一方、ルールの数が該一定数(Binth)以下ではなかった場合には(ステップS146のNO)、ルール更新部12は、処理対象ノード(リーフノード)を中間ノードに変更(中間ノードとして設定)し、新たに、子ノードを作成した後(ステップS148)、前述したステップS145に移行する。ステップS148においては、具体的には、ルール更新部12は、処理対象ノードのリーフノードフラグをオフに変更する。さらに、子ノードを作成するために、ルール更新部12は、処理対象ノードの識別子と、処理対象ノードのルール識別子リストに処理対象ルールの識別子を加えたルールセットと、をパラメータとして、図9を用いて説明した探索木構築サブ処理Aを実行する。   On the other hand, when the number of rules is not equal to or less than the predetermined number (Binth) (NO in step S146), the rule update unit 12 changes the processing target node (leaf node) to an intermediate node (set as an intermediate node). Then, after a new child node is created (step S148), the process proceeds to step S145 described above. In step S148, specifically, the rule update unit 12 changes the leaf node flag of the processing target node to OFF. Furthermore, in order to create a child node, the rule updating unit 12 uses the identifier of the processing target node and the rule set obtained by adding the identifier of the processing target rule to the rule identifier list of the processing target node as parameters, and FIG. The search tree construction sub-process A described above is executed.

次に、図11のフローチャートのステップS143において実行されるルール更新サブ処理A2の詳細な動作について、図12のフローチャートを用いて説明する。図12は、図11のフローチャートのステップS143において実行されるルール更新サブ処理A2の詳細な動作の一例を示すフローチャートである。本ルール更新サブ処理A2においては、処理対象のノード(処理対象ノード)と、処理対象ノードの親ノードの識別子と、処理対象ノードが表す部分空間と、当該ノードに追加するルール(処理対象ルール)と、がパラメータとして与えられる。   Next, detailed operation of the rule update sub-process A2 executed in step S143 of the flowchart of FIG. 11 will be described using the flowchart of FIG. FIG. 12 is a flowchart showing an example of detailed operation of the rule update sub-process A2 executed in step S143 of the flowchart of FIG. In this rule update sub-process A2, a processing target node (processing target node), an identifier of a parent node of the processing target node, a partial space represented by the processing target node, and a rule to be added to the node (processing target rule) And are given as parameters.

図12のフローチャートにおいて、ルール更新部12は、まず、処理対象ノードのためのデータ領域が割り当て済みか否かを確認する(ステップS151)。データ領域が割り当て済みであった場合は(ステップS151のYES)、ルール更新部12は、処理対象ノードおよび処理対象ルールをパラメータとして、図11に示したルール更新サブ処理A1を実行する(ステップS152)。一方、データ領域が割り当て済みではなかった場合には(ステップS151のNO)、ルール更新部12は、処理対象ノードのためのデータ領域を割り当て、リーフノードとしてセットアップする(ステップS153)。具体的には、ルール更新部12は、探索木記憶部20に処理対象ノードの情報を記憶するデータ領域を割り当てさせ、当該ノードについて以下のような情報を設定する。   In the flowchart of FIG. 12, the rule update unit 12 first checks whether or not a data area for the processing target node has been allocated (step S151). If the data area has been allocated (YES in step S151), the rule update unit 12 executes the rule update sub-process A1 illustrated in FIG. 11 using the processing target node and the processing target rule as parameters (step S152). ). On the other hand, if the data area has not been allocated (NO in step S151), the rule updating unit 12 allocates a data area for the processing target node and sets it up as a leaf node (step S153). Specifically, the rule update unit 12 assigns a data area for storing information on the processing target node to the search tree storage unit 20, and sets the following information for the node.

(a)リーフノードフラグ:オン、
(b)親ノード識別子 :パラメータとして与えられた親ノード識別子、
(c)部分空間 :パラメータとして与えられた部分空間、
(d)更新カウンタおよび共有更新カウンタ:0、
(e)ルール識別子リスト:処理対象ルールの識別子。
(A) Leaf node flag: ON
(B) Parent node identifier: a parent node identifier given as a parameter,
(C) Subspace: the subspace given as a parameter,
(D) Update counter and shared update counter: 0,
(E) Rule identifier list: identifiers of rules to be processed.

次に、図10のフローチャートのステップS137において実行されるルール更新サブ処理Bの詳細な動作について、図13のフローチャートを用いて説明する。図13は、図10のフローチャートのステップS137において実行されるルール更新サブ処理Bの詳細な動作の一例を示すフローチャートである。本ルール更新サブ処理Bにおいては、パラメータとして、処理対象のノード(処理対象ノード)と、削除もしくは変更するルール(処理対象ルール)と、を受け取る。   Next, the detailed operation of the rule update sub-process B executed in step S137 of the flowchart of FIG. 10 will be described using the flowchart of FIG. FIG. 13 is a flowchart showing an example of detailed operation of the rule update sub-process B executed in step S137 of the flowchart of FIG. In this rule update sub-process B, a process target node (process target node) and a rule to be deleted or changed (process target rule) are received as parameters.

図13のフローチャートにおいて、ルール更新部12は、まず、処理対象ノードがリーフノードか否かを確認する(ステップS161)。リーフノードか否かの確認は、処理対象ノードのリーフノードフラグがオンか否かによって行われる。処理対象ノードがリーフノードではなかった場合には(ステップS161のN)、ルール更新部12は、処理対象ルールを含む子ノード群を選択する(ステップS162)。或る子ノードが処理対象ルールを含んでいるか否かは、当該子ノードが表す部分空間と、処理対象ルールのマッチ条件が表す部分空間とに重なる部分があるか否か(すなわち共通部分があるか否か)によって判定することができる。   In the flowchart of FIG. 13, the rule update unit 12 first checks whether or not the processing target node is a leaf node (step S161). Whether or not the node is a leaf node is checked based on whether or not the leaf node flag of the processing target node is on. When the processing target node is not a leaf node (N in Step S161), the rule update unit 12 selects a child node group including the processing target rule (Step S162). Whether or not a certain child node includes a processing target rule is whether or not there is an overlapping portion between the partial space represented by the child node and the partial space represented by the matching condition of the processing target rule (that is, there is a common part) Or not).

次いで、ルール更新部12は、ステップS162において選択された各子ノード(割り当て済みの子ノードのみ)それぞれについて、ルール更新サブ処理Bを実行する(ステップS163)。   Next, the rule update unit 12 executes the rule update sub-process B for each of the child nodes (only assigned child nodes) selected in step S162 (step S163).

ステップS161において、処理対象ノードがリーフノードであった場合には(ステップS161のYES)、ルール更新部12は、処理対象ノード(リーフノード)のルール識別子リストを更新する(ステップS164)。具体的には、要求されている現在の操作がルール削除である場合には、ルール更新部12は、処理対象ルールの識別子を当該ルール識別子リストから削除する。また、要求されている現在の操作がルール更新である場合には、本動作を省略することができる。しかる後、ルール更新部12は、処理対象ノード(リーフノード)の更新カウンタを更新する(ステップS165)。具体的には、ルール更新部12は、処理対象ノード(リーフノード)の更新カウンタの値を、現在の値に‘1’加えたものに変更する。   In step S161, when the processing target node is a leaf node (YES in step S161), the rule update unit 12 updates the rule identifier list of the processing target node (leaf node) (step S164). Specifically, if the requested current operation is rule deletion, the rule update unit 12 deletes the identifier of the processing target rule from the rule identifier list. Further, when the requested current operation is rule update, this operation can be omitted. Thereafter, the rule update unit 12 updates the update counter of the processing target node (leaf node) (step S165). Specifically, the rule update unit 12 changes the value of the update counter of the processing target node (leaf node) to a value obtained by adding “1” to the current value.

次に、図10のフローチャートのステップS139において実行されるルール更新サブ処理Cの詳細な動作について、図14のフローチャートを用いて説明する。図14は、図10のフローチャートのステップS139において実行されるルール更新サブ処理Cの詳細な動作の一例を示すフローチャートである。本ルール更新サブ処理Cにおいては、処理対象のノード(処理対象ノード)および当該ノードに追加するルール(処理対象ルール)が、パラメータとして与えられる。   Next, detailed operation of the rule update sub-process C executed in step S139 of the flowchart of FIG. 10 will be described using the flowchart of FIG. FIG. 14 is a flowchart showing an example of detailed operation of the rule update sub-process C executed in step S139 of the flowchart of FIG. In the rule update sub-process C, a node to be processed (processing target node) and a rule to be added to the node (processing target rule) are given as parameters.

図14のフローチャートにおいて、ルール更新部12は、まず、処理対象ノードがリーフノードか否かを確認する(ステップS171)。リーフノードか否かの確認は、処理対象ノードのリーフノードフラグがオンか否かによって行われる。処理対象ノードがリーフノードではなかった場合には(ステップS171のNO)、ルール更新部12は、処理対象ルールを含む子ノード群を選択する(ステップS172)。或る子ノードが処理対象ルールを含んでいるか否かは、当該子ノードが表す部分空間と、処理対象ルールのマッチ条件が表す部分空間とに重なる部分があるか否か(すなわち共通部分があるか否か)によって判定することができる。   In the flowchart of FIG. 14, the rule update unit 12 first confirms whether or not the processing target node is a leaf node (step S171). Whether or not the node is a leaf node is checked based on whether or not the leaf node flag of the processing target node is on. If the processing target node is not a leaf node (NO in step S171), the rule update unit 12 selects a child node group including the processing target rule (step S172). Whether or not a certain child node includes a processing target rule is whether or not there is an overlapping portion between the partial space represented by the child node and the partial space represented by the matching condition of the processing target rule (that is, there is a common part) Or not).

次いで、ルール更新部12は、ステップS172において選択された各子ノード(割り当て済みの子ノードのみ)それぞれについて、ルール更新サブ処理Cを実行する(ステップS173)。   Next, the rule update unit 12 executes the rule update sub-process C for each child node (only assigned child nodes) selected in step S172 (step S173).

しかる後、ルール更新部12は、以下の条件が満たされるか否かを確認する。即ち、ルール更新部12は、ステップS172において選択された子ノードにデータ領域が未割り当ての子ノード(すなわち関係するルールの数が0の子ノード)があり、かつ、要求されている現在の操作がルール追加であり、かつ、当該未割当の子ノードが表す部分空間と処理対象ルールのマッチ条件が表す部分空間とに重なる部分がある、という条件を確認する(ステップS174)。データ領域が未割り当ての子ノードがあり、かつ、要求されている現在の操作がルール追加であり、かつ、当該未割当の子ノードが表す部分空間と処理対象ルールのマッチ条件が表す部分空間とに重なる部分がある場合には(ステップS174のYES)、ルール更新部12は、処理対象ノードの共有更新カウンタを更新して(ステップS175)、本ルール更新サブ処理Cを終了する。具体的には、ルール更新部12は、処理対象ノードの共有更新カウンタの値を、現在の値に‘1’加えたものに変更する。一方、ステップS174において、データ領域が未割り当ての子ノードがなかったか、もしくは、要求されている現在の操作がルール追加ではなかった場合には(ステップS174のNO)、ルール更新部12は、本ルール更新サブ処理Cを終了する。なお、ステップS174において、未割当の子ノードが表す部分空間と処理対象ルールのマッチ条件が表す部分空間とに重なる部分が無い場合も、ルール更新部12は、本ルール更新サブ処理Cを終了してもよい。   Thereafter, the rule update unit 12 checks whether or not the following conditions are satisfied. That is, the rule update unit 12 has a child node whose data area is not allocated to the child node selected in step S172 (that is, a child node whose related rule number is 0), and the requested current operation. Is a rule addition, and the condition that there is a portion that overlaps the partial space represented by the unallocated child node and the partial space represented by the matching condition of the processing target rule is confirmed (step S174). The data area has an unallocated child node, the requested current operation is a rule addition, and the partial space represented by the unallocated child node and the partial space represented by the matching condition of the processing rule (YES in step S174), the rule update unit 12 updates the shared update counter of the processing target node (step S175), and ends this rule update sub-process C. Specifically, the rule update unit 12 changes the value of the shared update counter of the processing target node to a value obtained by adding “1” to the current value. On the other hand, in step S174, if there is no child node to which the data area is not assigned, or if the requested current operation is not a rule addition (NO in step S174), the rule update unit 12 The rule update sub-process C is terminated. In step S174, the rule update unit 12 also ends the rule update sub-process C when there is no overlapping portion between the partial space represented by the unallocated child node and the partial space represented by the matching condition of the processing target rule. May be.

また、ステップS171において、処理対象ノードがリーフノードであった場合には(ステップS171のYES)、ルール更新部12は、処理対象ノード(リーフノード)の共有更新カウンタを更新して(ステップS176)、本ルール更新サブ処理Cを終了する。具体的には、ルール更新部12は、処理対象ノード(リーフノード)の共有更新カウンタの値を、現在の値に‘1’加えたものに変更する。ルール更新部12は、図14にフローチャートで示したルール更新サブ処理C(すなわち、図10のステップS139)の実行と並行して、削除待ちフラグがオンのルールを削除する処理を、例えば、定期的に実行する。ルール更新部12は、ルール記憶部30に記憶されたルールのうち、削除フラグがオンであり、かつ、参照カウンタが0であるルールについて、ルール記憶部30に削除させる。   If the processing target node is a leaf node in step S171 (YES in step S171), the rule update unit 12 updates the shared update counter of the processing target node (leaf node) (step S176). This rule update sub-process C is terminated. Specifically, the rule update unit 12 changes the value of the shared update counter of the processing target node (leaf node) to a value obtained by adding “1” to the current value. In parallel with the execution of the rule update sub-process C (that is, step S139 in FIG. 10) shown in the flowchart of FIG. Run it. The rule update unit 12 causes the rule storage unit 30 to delete a rule whose deletion flag is on and the reference counter is 0 among the rules stored in the rule storage unit 30.

<(C)ルール探索処理>
次に、図15、図16のフローチャートを用いて、ルール探索処理の動作例について説明する。図15は、図1に示したデータ処理装置1の探索木制御部10における探索木探索部13が、探索木記憶部20およびルール記憶部30それぞれに記憶される探索木およびルールセットを参照して、与えられたキーに適合するルールを探索する際の動作の一例を示すフローチャートである。図15のフローチャートに例示する本ルール探索処理の動作は、例えば、パケット処理部60からの要求により開始され、本ルール探索処理に係るパラメータとして、探索木探索部13は、探索に使用すべきキー(探索キー)を受け取る。
本ルール探索処理においては、探索木探索部13は、パラメータとして与えられた探索キーに適合する最高優先度のルールの識別子(探索された場合)を、要求元(例えば、パケット処理部60)に返す。探索木探索部13は、また、探索木における探索において最終的に到達したノード(中間ノードもしくはリーフノード)の識別子(探索木毎)のリストを、要求元に返す。
<(C) Rule search process>
Next, an exemplary operation of the rule search process will be described with reference to the flowcharts of FIGS. 15 refers to the search tree and rule set stored in the search tree storage unit 20 and the rule storage unit 30 by the search tree search unit 13 in the search tree control unit 10 of the data processing apparatus 1 shown in FIG. FIG. 6 is a flowchart showing an example of an operation when searching for a rule that matches a given key. The operation of the rule search process illustrated in the flowchart of FIG. 15 is started by, for example, a request from the packet processing unit 60, and the search tree search unit 13 uses a key to be used for the search as a parameter related to the rule search process. (Search key) is received.
In this rule search process, the search tree search unit 13 sends the identifier of the highest priority rule (when searched) matching the search key given as a parameter to the request source (for example, the packet processing unit 60). return. The search tree search unit 13 also returns a list of identifiers (for each search tree) of nodes (intermediate nodes or leaf nodes) finally reached in the search in the search tree to the request source.

図15のフローチャートにおいて、探索木探索部13は、まず、各探索木について、後述するルール探索サブ処理Aを実行する(ステップS181)。次いで、探索木探索部13は、ステップS181において得られた、各探索木内で発見されたルールの集合の中から最高優先度のルールを選択する。探索木探索部13は、選択したルールを、パラメータとして受け取った探索キーに適合するルールとして要求元に返す(ステップS182)。また、探索木探索部13は、ステップS181において各探索木について得られる、探索により最終的に到達したノード(中間ノードもしくはリーフノード)の識別子(探索木毎)のリストも要求元に返す。   In the flowchart of FIG. 15, the search tree search unit 13 first executes a rule search sub-process A described later for each search tree (step S181). Next, the search tree search unit 13 selects the highest priority rule from the set of rules found in each search tree obtained in step S181. The search tree search unit 13 returns the selected rule to the request source as a rule that matches the search key received as a parameter (step S182). Further, the search tree search unit 13 also returns a list of identifiers (for each search tree) of nodes (intermediate nodes or leaf nodes) finally reached by the search obtained for each search tree in step S181 to the request source.

次に、図15のフローチャートのステップS181において実行されるルール探索サブ処理Aの詳細な動作について、図16のフローチャートを用いて説明する。図16は、図15のフローチャートのステップS181において実行されるルール探索サブ処理Aの詳細な動作の一例を示すフローチャートである。本ルール探索サブ処理Aにおいては、探索木探索部13は、パラメータとして、処理対象の探索木(例えば探索木識別子の形式、以降‘処理対象探索木’と記載)および探索に使用すべきキー(探索キー)を受け取る。また、本ルール探索サブ処理Aにおいては、探索木探索部13は、探索の結果、探索されたルールおよび探索により最終的に到達したノードの識別子を要求元に返す。なお、本ルール探索サブ処理Aにおいて処理の対象としているノードを‘処理対象ノード’と呼称する。   Next, the detailed operation of the rule search sub-process A executed in step S181 of the flowchart of FIG. 15 will be described using the flowchart of FIG. FIG. 16 is a flowchart showing an example of detailed operation of the rule search sub-process A executed in step S181 of the flowchart of FIG. In this rule search sub-process A, the search tree search unit 13 uses, as parameters, a search tree to be processed (for example, a search tree identifier format, hereinafter referred to as “process target search tree”) and a key to be used for the search ( Search key). In the rule search sub-process A, the search tree search unit 13 returns the searched rule and the identifier of the node finally reached by the search to the request source as a result of the search. Note that a node that is a processing target in the rule search sub-process A is referred to as a “processing target node”.

図16のフローチャートにおいて、探索木探索部13は、まず、処理対象ノードとして処理対象探索木のルートノードを選択する(ステップS191)。次に、探索木探索部13は、処理対象ノードがリーフノードか否かを確認する(ステップS192)。リーフノードか否かの確認は、処理対象ノードのリーフノードフラグがオンか否かによって行われる。   In the flowchart of FIG. 16, the search tree search unit 13 first selects the root node of the processing target search tree as the processing target node (step S191). Next, the search tree search unit 13 checks whether or not the processing target node is a leaf node (step S192). Whether or not the node is a leaf node is checked based on whether or not the leaf node flag of the processing target node is on.

処理対象ノードがリーフノードではなかった場合には(ステップS192のNO)、探索木探索部13は、パラメータとして受け取った探索キーに対応する子ノードを選択する(ステップS193)。次いで、探索木探索部13は、ステップS193において選択した子ノードに対してデータ領域が割り当て済みか否かを確認する(ステップS194)。データ領域が割り当て済みであった場合には(ステップS194のYES)、探索木探索部13は、処理対象ノードとして当該子ノードを選択して(ステップS195)、ステップS192に復帰する。   If the processing target node is not a leaf node (NO in step S192), the search tree search unit 13 selects a child node corresponding to the search key received as a parameter (step S193). Next, the search tree search unit 13 checks whether or not a data area has been assigned to the child node selected in step S193 (step S194). If the data area has been allocated (YES in step S194), the search tree search unit 13 selects the child node as a processing target node (step S195), and returns to step S192.

一方、ステップS194において、データ領域が割り当て済みではなかった場合には(ステップS194のNO)、探索木探索部13は、探索キーに対応するルールは存在しないので、本探索において最終的に到達したノードを現在の処理対象ノードとして本ルール探索サブ処理Aを終了する。   On the other hand, if the data area has not been allocated in step S194 (NO in step S194), the search tree search unit 13 has finally reached in the main search because there is no rule corresponding to the search key. The rule search sub-process A is terminated with the node as the current process target node.

また、ステップS192において、処理対象ノードがリーフノードであった場合には(ステップS192のYES)、探索木探索部13は、処理対象ノード(リーフノード)のルール識別子リストを基にして、ルール記憶部30を参照して、本リーフノードに関係するルールを取得する(ステップS196)。さらに、探索木探索部13は、例えば、当該ルール群内において線形探索処理を実施して、当該ルール群の中から探索キーに適合する最高優先度のルールを選択し、探索キーに適合するルールとして出力する。その後、探索木探索部13は、本ルール探索サブ処理Aを終了する。この場合、本探索で最終的に到達したノードは、現在の処理対象ノード(リーフノード)となる。   In step S192, when the processing target node is a leaf node (YES in step S192), the search tree search unit 13 stores a rule based on the rule identifier list of the processing target node (leaf node). The rule related to the leaf node is acquired with reference to the unit 30 (step S196). Further, for example, the search tree search unit 13 performs a linear search process in the rule group, selects a rule with the highest priority that matches the search key from the rule group, and a rule that matches the search key. Output as. Thereafter, the search tree search unit 13 ends the rule search sub-process A. In this case, the node finally reached in this search becomes the current processing target node (leaf node).

<(D)パケット処理>
次に、図17のフローチャートを用いて、パケット処理の動作例について説明する。図17は、図1に示したデータ処理装置1のパケット処理部60がパケットを受信した際の動作の一例を示すフローチャートである。図17のフローチャートに例示する本パケット処理の動作は、データ処理装置1の通信IF部70がパケット(処理対象パケット)を受信し、パケット処理部60にパケットの受信通知がなされた際に開始される。
<(D) Packet processing>
Next, an example of packet processing operation will be described with reference to the flowchart of FIG. FIG. 17 is a flowchart illustrating an example of an operation when the packet processing unit 60 of the data processing device 1 illustrated in FIG. 1 receives a packet. The operation of this packet processing illustrated in the flowchart of FIG. 17 is started when the communication IF unit 70 of the data processing apparatus 1 receives a packet (processing target packet) and the packet processing unit 60 is notified of packet reception. The

図17のフローチャートにおいて、パケット処理部60は、まず、受信した処理対象パケットからルール探索に使用するためのキー(探索キー)を抽出する(ステップS201)。具体的には、パケット処理部60は、受信したパケットから、送信元IPアドレス、送信先IPアドレス、プロトコル番号、送信元ポート番号、送信先ポート番号を探索キーとして取り出す。次に、パケット処理部60は、ステップS201において抽出された探索キーをパラメータとして、図3に示すキャッシュテーブル制御部40のキャッシュエントリ探索部42に依頼して、キャッシュエントリを探索する(ステップS202)。   In the flowchart of FIG. 17, the packet processing unit 60 first extracts a key (search key) to be used for rule search from the received processing target packet (step S201). Specifically, the packet processing unit 60 extracts a transmission source IP address, a transmission destination IP address, a protocol number, a transmission source port number, and a transmission destination port number from the received packet as a search key. Next, the packet processing unit 60 requests the cache entry search unit 42 of the cache table control unit 40 shown in FIG. 3 using the search key extracted in step S201 as a parameter to search for a cache entry (step S202). .

パケット処理部60は、キャッシュエントリ探索部42に対する依頼結果として、パラメータとして引き渡した探索キーに対応するキャッシュエントリ(処理対象キャッシュエントリ)が検出されたか否かを確認する(ステップS203)。処理対象キャッシュエントリが検出された場合には(ステップS203のYES)、パケット処理部60は、図3に示すキャッシュテーブル制御部40のキャッシュエントリ再評価部43に依頼して、当該処理対象キャッシュエントリの再評価を行う(ステップS204)。キャッシュエントリ再評価部43は、再評価の結果として、当該処理対象キャッシュエントリが更新されたか(探索キーに適合するルールが検出された場合)、もしくは、削除されたか(探索キーに適合するルールが検出されなかった場合)、のいずれかを返す。   The packet processing unit 60 checks whether or not a cache entry (processing target cache entry) corresponding to the search key delivered as a parameter has been detected as a request result to the cache entry searching unit 42 (step S203). When the processing target cache entry is detected (YES in step S203), the packet processing unit 60 requests the cache entry re-evaluation unit 43 of the cache table control unit 40 shown in FIG. Is re-evaluated (step S204). As a result of the re-evaluation, the cache entry re-evaluation unit 43 has updated the processing target cache entry (when a rule that matches the search key is detected) or deleted it (if there is a rule that matches the search key). Returns one of the following:

パケット処理部60は、キャッシュエントリ再評価部43からの再評価の結果を受け取ると、ステップS204において探索キーに適合するルールが検出されたか否かを確認する(ステップS205)。探索キーに適合するルールが検出された場合には(ステップS205のYES)、パケット処理部60は、当該適合ルールのアクションに従い、処理対象パケットを処理する(ステップS206)。   When the packet processing unit 60 receives the re-evaluation result from the cache entry re-evaluation unit 43, the packet processing unit 60 checks whether or not a rule that matches the search key is detected in step S204 (step S205). When a rule that matches the search key is detected (YES in step S205), the packet processing unit 60 processes the processing target packet according to the action of the matching rule (step S206).

一方、ステップS205において、探索キーに適合するルールが検出されなかった場合には(ステップS205のNO)、パケット処理部60は、処理対象パケットについて、適合ルールが不明の場合の処理を実行する(ステップS207)。具体的には、例えば、パケット処理部60は、以下に示すいずれかもしくは組み合わせの処理を実行する。   On the other hand, when a rule that matches the search key is not detected in step S205 (NO in step S205), the packet processing unit 60 executes a process when the matching rule is unknown for the processing target packet ( Step S207). Specifically, for example, the packet processing unit 60 executes any one or combination of processes shown below.

(a)当該パケットを破棄する。
(b)当該パケットの適合ルールが不明の旨をログ出力する。
(c)当該パケットの適合ルールが不明の旨をデータ処理装置制御部80に通知する。
(d)当該パケットの適合ルールが不明の旨を他の装置(例えば、ネットワーク管理装置。図1〜図3には図示されていない)に通知する。
(A) Discard the packet.
(B) A log output indicating that the matching rule of the packet is unknown.
(C) Notifying the data processing device controller 80 that the matching rule of the packet is unknown.
(D) Notifying other devices (for example, network management device, not shown in FIGS. 1 to 3) that the matching rule of the packet is unknown.

また、ステップS203において、処理対象キャッシュエントリが検出されなかった場合には(ステップS203のNO)、パケット処理部60は、図2に示す探索木制御部10の探索木探索部13に依頼して、探索キーに適合するルールを探索する(ステップS208)。パケット処理部60は、探索木探索部13への依頼結果として、探索キーに適合するルールが探索されたか否かを確認する(ステップS209)。探索キーに適合するルールが探索されなかった場合(ステップS209のNO)、パケット処理部60は、ステップS207へ移行して、前述のような適合ルールが不明の場合の処理を実行する。   If no processing target cache entry is detected in step S203 (NO in step S203), the packet processing unit 60 requests the search tree search unit 13 of the search tree control unit 10 shown in FIG. A rule that matches the search key is searched (step S208). The packet processing unit 60 confirms whether or not a rule that matches the search key has been searched as a result of the request to the search tree search unit 13 (step S209). If no rule that matches the search key is found (NO in step S209), the packet processing unit 60 proceeds to step S207, and executes the process when the matching rule is unknown.

一方、探索キーに適合するルールが探索された場合には(ステップS209のYES)、パケット処理部60は、図3に示すキャッシュテーブル制御部40のキャッシュエントリ作成部41に依頼して、当該処理対象パケットを処理するためのキャッシュエントリを作成して、キャッシュテーブル記憶部50に記憶させる(ステップS210)。なお、キャッシュエントリ作成部41に依頼する際、パケット処理部60は、パラメータとして、ステップS201において抽出した探索キーと、ステップS208において発見されたルールの識別子と、ステップS208において探索木探索部13から返されたノード識別子のリストと、をキャッシュエントリ作成部41に渡す。   On the other hand, when a rule that matches the search key is found (YES in step S209), the packet processing unit 60 requests the cache entry creation unit 41 of the cache table control unit 40 shown in FIG. A cache entry for processing the target packet is created and stored in the cache table storage unit 50 (step S210). When requesting the cache entry creation unit 41, the packet processing unit 60 uses the search key extracted in step S201, the identifier of the rule found in step S208, and the search tree search unit 13 in step S208 as parameters. The returned list of node identifiers is passed to the cache entry creation unit 41.

しかる後、パケット処理部60は、ステップS206に移行して、ステップS208において探索された適合ルールが示すアクションに従い、処理対象パケットを処理する。   Thereafter, the packet processing unit 60 proceeds to step S206, and processes the processing target packet according to the action indicated by the matching rule searched in step S208.

<(E)キャッシュエントリ作成処理>
次に、図18のフローチャートを用いて、キャッシュエントリ作成処理の動作例について説明する。図18は、図1に示したデータ処理装置1のキャッシュテーブル制御部40におけるキャッシュエントリ作成部41が、キャッシュエントリを作成する際の動作の一例を示すフローチャートである。図18のフローチャートに例示する本キャッシュエントリ作成処理の動作は、例えば、パケット処理部60からの要求に基づいて開始される。なお、キャッシュエントリ作成部41は、本キャッシュエントリ作成処理に係るパラメータとして、キー(探索キー)と、ルール識別子と、キーを用いた探索木の探索において最終的に到達したノードの識別子(探索木毎)と、を受け取る。
<(E) Cache entry creation process>
Next, an example of the operation of the cache entry creation process will be described using the flowchart of FIG. FIG. 18 is a flowchart showing an example of an operation when the cache entry creation unit 41 in the cache table control unit 40 of the data processing apparatus 1 shown in FIG. 1 creates a cache entry. The operation of this cache entry creation process illustrated in the flowchart of FIG. 18 is started based on a request from the packet processing unit 60, for example. Note that the cache entry creation unit 41 uses the key (search key), the rule identifier, and the identifier of the node finally reached in the search of the search tree using the key (search tree) as parameters related to the cache entry creation process. And every).

図18のフローチャートにおいて、キャッシュエントリ作成部41は、まず、パラメータとして受け取ったキーのハッシュ値を計算し、計算結果を基にして、当該キーに対応するハッシュテーブルのバケツ(Bucket)を選択する(ステップS221)。次に、キャッシュエントリ作成部41は、ステップS221において選択したバケツ(Bucket)に空きがあるか否かを確認する(ステップS222)。バケツ(Bucket)の空きの有無は、当該バケツ(Bucket)内の各キャッシュエントリについて、使用中フラグを確認することによって確認することができる。   In the flowchart of FIG. 18, the cache entry creation unit 41 first calculates a hash value of a key received as a parameter, and selects a hash table bucket corresponding to the key based on the calculation result ( Step S221). Next, the cache entry creation unit 41 confirms whether or not the bucket selected in step S221 has a vacancy (step S222). Whether or not the bucket is empty can be confirmed by checking the in-use flag for each cache entry in the bucket.

選択したバケツ(Bucket)に空きがあった場合には(ステップS222のYES)、ステップS224に移行する。選択したバケツ(Bucket)に空きがなかった場合は(ステップS222のNO)、キャッシュエントリ作成部41は、当該バケツ(Bucket)内の各キャッシュエントリのうち、いずれか一つのキャッシュエントリを削除した後(ステップS223)、ステップS224に移行する。ここで、キャッシュエントリ作成部41は、キャッシュエントリの使用中フラグをオフに設定することによってキャッシュエントリを削除することができる。その際、キャッシュエントリ作成部41は、当該キャッシュエントリの適合ルールの参照カウンタを1減らす。また、キャッシュエントリ作成部41は、例えば、最終使用時刻が最も古いキャッシュエントリを削除対象として選択してもよい。   If the selected bucket is empty (YES in step S222), the process proceeds to step S224. If there is no space in the selected bucket (NO in step S222), the cache entry creation unit 41 deletes any one of the cache entries in the bucket (bucket). (Step S223), the process proceeds to Step S224. Here, the cache entry creation unit 41 can delete the cache entry by setting the cache entry busy flag to OFF. At that time, the cache entry creation unit 41 decrements the reference counter of the matching rule of the cache entry by 1. Further, the cache entry creation unit 41 may select, for example, a cache entry having the oldest last use time as a deletion target.

ステップS224においては、キャッシュエントリ作成部41は、当該バケツ(Bucket)内の空きキャッシュエントリの一つを選択して、セットアップする(ステップS224)。具体的には、キャッシュエントリ作成部41は、選択したキャッシュエントリに対して、以下のような情報を設定する。また、キャッシュエントリ作成部41は、パラメータとして与えられたルールの参照カウンタを1増やす。   In step S224, the cache entry creation unit 41 selects one of the free cache entries in the bucket and sets it up (step S224). Specifically, the cache entry creation unit 41 sets the following information for the selected cache entry. Further, the cache entry creation unit 41 increments the reference counter of the rule given as a parameter by 1.

(a)使用中フラグ:オン、
(b)キー :パラメータとして与えられたキー、
(c)ルール識別子:パラメータとして与えられたルールの識別子、
(d)最終使用時刻: 処理実行時点における時刻、
(e)ノード状態.ノード識別子 (探索木毎):パラメータとして与えられたノード識別子、
(f)ノード状態.更新カウンタキャッシュ (探索木毎):前記ノード識別子を基に図2に示す更新カウンタ取得部14に依頼して取得した値、
(g)ノード状態.共有更新カウンタキャッシュ (ベース探索木毎):前記ノード識別子を基に図2に示す更新カウンタ取得部14に依頼して取得した値。
(A) In-use flag: ON
(B) Key: Key given as a parameter,
(C) Rule identifier: the identifier of the rule given as a parameter,
(D) Last use time: Time at the time of processing execution,
(E) Node state. Node identifier (for each search tree): Node identifier given as a parameter,
(F) Node state. Update counter cache (for each search tree): a value acquired by requesting the update counter acquisition unit 14 shown in FIG.
(G) Node state. Shared update counter cache (for each base search tree): A value acquired by requesting the update counter acquisition unit 14 shown in FIG. 2 based on the node identifier.

<(F)キャッシュエントリ探索処理>
次に、図19のフローチャートを用いて、キャッシュエントリ探索処理の動作例について説明する。図19は、図1に示したデータ処理装置1のキャッシュテーブル制御部40におけるキャッシュエントリ探索部42が、キャッシュエントリを探索する際の動作の一例を示すフローチャートである。図19のフローチャートに例示する本キャッシュエントリ探索処理の動作は、例えば、パケット処理部60からの要求に基づいて開始される。なお、キャッシュエントリ作成部41は、本キャッシュエントリ探索処理に係るパラメータとして、キー(探索キー)を受け取る。
<(F) Cache entry search processing>
Next, an operation example of the cache entry search process will be described with reference to the flowchart of FIG. FIG. 19 is a flowchart showing an example of an operation when the cache entry search unit 42 in the cache table control unit 40 of the data processing apparatus 1 shown in FIG. 1 searches for a cache entry. The operation of the cache entry search process illustrated in the flowchart of FIG. 19 is started based on a request from the packet processing unit 60, for example. The cache entry creation unit 41 receives a key (search key) as a parameter related to the cache entry search process.

図19のフローチャートにおいて、キャッシュエントリ探索部42は、まず、パラメータとして受け取ったキーのハッシュ値を計算する。キャッシュエントリ探索部42は、係る計算結果を基にして、当該キーに対応するハッシュテーブルのバケツ(Bucket)を選択する(ステップS231)。次に、キャッシュエントリ探索部42は、ステップS231において選択したバケツ(Bucket)内の最初のキャッシュエントリを選択する(ステップS232)。   In the flowchart of FIG. 19, the cache entry search unit 42 first calculates the hash value of the key received as a parameter. Based on the calculation result, the cache entry search unit 42 selects a hash table bucket corresponding to the key (step S231). Next, the cache entry search unit 42 selects the first cache entry in the bucket selected in step S231 (step S232).

次いで、キャッシュエントリ探索部42は、選択したキャッシュエントリの使用中フラグがオンであり、かつ、当該キャッシュエントリのキーと本キャッシュエントリ探索処理のパラメータとして与えられたキーとが一致するか否かを確認する(ステップS233)。キャッシュエントリの使用中フラグがオンであり、かつ、当該キャッシュエントリのキーと本キャッシュエントリ探索処理のパラメータとして与えられたキーとが一致した場合は(ステップS233のYES)、キャッシュエントリ探索部42は、キーに合致するキャッシュエントリの探索に成功したと判定する。この場合、キャッシュエントリ探索部42は、本キャッシュエントリ探索処理を終了し、探索の結果として、当該キャッシュエントリの識別子を要求元に返す。   Next, the cache entry search unit 42 determines whether or not the in-use flag of the selected cache entry is ON and whether the key of the cache entry matches the key given as a parameter of the cache entry search process. Confirmation is made (step S233). If the in-use flag of the cache entry is on and the key of the cache entry matches the key given as a parameter of the cache entry search process (YES in step S233), the cache entry search unit 42 The cache entry matching the key is determined to have been successfully searched. In this case, the cache entry search unit 42 ends the cache entry search process, and returns the identifier of the cache entry to the request source as a result of the search.

一方、ステップS233において、キャッシュエントリの使用中フラグがオンであり、かつ、当該キャッシュエントリのキーと本キャッシュエントリ探索処理のパラメータとして与えられたキーとが一致しなかった場合は(ステップS233のNO)、キャッシュエントリ探索部42は、選択したキャッシュエントリがバケツ(Bucket)内の最後のキャッシュエントリか否かを確認する(ステップS234)。選択したキャッシュエントリがバケツ(Bucket)内の最後のキャッシュエントリであった場合には(ステップS234のYES)、キャッシュエントリ探索部42は、本キャッシュエントリ探索処理を終了する。キャッシュエントリ探索部42は、探索の結果として、キーに合致するキャッシュエントリを探索することができなかったことを要求元に通知する。なお、選択したキャッシュエントリの使用中フラグがオフの場合も(ステップS233においてNO)、上記と同様に、ステップS234以降の処理が実行される。   On the other hand, when the in-use flag of the cache entry is on in step S233 and the key of the cache entry does not match the key given as the parameter of the cache entry search process (NO in step S233) ) The cache entry search unit 42 confirms whether or not the selected cache entry is the last cache entry in the bucket (step S234). If the selected cache entry is the last cache entry in the bucket (YES in step S234), the cache entry search unit 42 ends the cache entry search process. As a result of the search, the cache entry search unit 42 notifies the request source that the cache entry matching the key could not be searched. Even when the in-use flag of the selected cache entry is OFF (NO in step S233), the processing after step S234 is executed as described above.

また、ステップS234において、バケツ(Bucket)内の最後のキャッシュエントリではなかった場合には(ステップS234のNO)、キャッシュエントリ探索部42は、バケツ(Bucket)内の次のキャッシュエントリを選択して(ステップS235)、ステップS233に復帰する。   In step S234, if it is not the last cache entry in the bucket (NO in step S234), the cache entry search unit 42 selects the next cache entry in the bucket. (Step S235), the process returns to Step S233.

<(G)キャッシュエントリ再評価処理>
次に、図20のフローチャートを用いて、キャッシュエントリ再評価処理の動作例について説明する。図20は、図1に示したデータ処理装置1のキャッシュテーブル制御部40におけるキャッシュエントリ再評価部43が、キャッシュエントリを再評価する際の動作の一例を示すフローチャートである。図20のフローチャートに例示する本キャッシュエントリ再評価処理の動作は、例えば、パケット処理部60からの要求に基づいて開始される。なお、キャッシュエントリ再評価部43は、本キャッシュエントリ再評価処理に係るパラメータとして、再評価対象のキャッシュエントリ(処理対象キャッシュエントリ)の識別子を受け取る。
<(G) Cache entry reevaluation process>
Next, an operation example of the cache entry reevaluation process will be described using the flowchart of FIG. FIG. 20 is a flowchart showing an example of an operation when the cache entry reevaluation unit 43 in the cache table control unit 40 of the data processing apparatus 1 shown in FIG. 1 reevaluates a cache entry. The operation of the cache entry reevaluation process illustrated in the flowchart of FIG. 20 is started based on a request from the packet processing unit 60, for example. Note that the cache entry re-evaluation unit 43 receives an identifier of a re-evaluation target cache entry (processing target cache entry) as a parameter related to this cache entry re-evaluation process.

図20のフローチャートにおいて、キャッシュエントリ再評価部43は、まず、処理対象キャッシュエントリのノード状態リストを参照する。キャッシュエントリ再評価部43は、図2に示す探索木制御部10の更新カウンタ取得部14に依頼して、処理対象キャッシュエントリが表すフローが属するノードの最新の共有更新カウンタ値(ベース探索木毎)を取得する(ステップS241)。次に、キャッシュエントリ再評価部43は、ステップS241において取得された最新の共有更新カウンタ値と、キャッシュテーブル記憶部50に記憶された処理対象キャッシュエントリに関する各ベース探索木の共有更新カウンタ値との間に差分があるか否かを確認する(ステップS242)。   In the flowchart of FIG. 20, the cache entry reevaluation unit 43 first refers to the node state list of the processing target cache entry. The cache entry reevaluation unit 43 requests the update counter acquisition unit 14 of the search tree control unit 10 illustrated in FIG. 2 to obtain the latest shared update counter value (for each base search tree) of the node to which the flow represented by the processing target cache entry belongs. ) Is acquired (step S241). Next, the cache entry re-evaluation unit 43 calculates the latest shared update counter value acquired in step S241 and the shared update counter value of each base search tree related to the processing target cache entry stored in the cache table storage unit 50. It is confirmed whether there is a difference between them (step S242).

最新の共有更新カウンタ値とキャッシュテーブル記憶部50に記憶された処理対象キャッシュエントリに関する各ベース探索木の共有更新カウンタ値との間に差分がない場合は(ステップS242のNO)、ステップS247に移行する。一方、最新の共有更新カウンタ値と、キャッシュテーブル記憶部50に記憶された処理対象キャッシュエントリに関する各ベース探索木の共有更新カウンタ値との間に差分がある場合は(ステップS242のYES)、キャッシュエントリ再評価部43は、以下の処理を実行する。即ち、キャッシュエントリ再評価部43は、当該処理対象キャッシュエントリのうち、適合ルールおよび共有更新カウンタ値に差分があった探索木グループ内のノードに係る情報は無効である可能性があるものと判定する。そして、キャッシュエントリ再評価部43は、処理対象キャッシュエントリのノード状態リストを参照し、図2に示す探索木制御部10の更新カウンタ取得部14に依頼して、処理対象キャッシュエントリが表すフローが属するノードの最新の更新カウンタ値(探索木毎)を取得する(ステップS243)。その際、キャッシュエントリ再評価部43は、ステップS242において差分が検出されたベース探索木が属する探索木グループ内の探索木群を、更新カウンタ値(探索木毎)の取得対象とする。   If there is no difference between the latest shared update counter value and the shared update counter value of each base search tree related to the processing target cache entry stored in the cache table storage unit 50 (NO in step S242), the process proceeds to step S247. To do. On the other hand, if there is a difference between the latest shared update counter value and the shared update counter value of each base search tree related to the processing target cache entry stored in the cache table storage unit 50 (YES in step S242), the cache The entry reevaluation unit 43 executes the following processing. That is, the cache entry re-evaluation unit 43 determines that the information related to the nodes in the search tree group in which there is a difference in the matching rule and the shared update counter value among the processing target cache entries may be invalid. To do. Then, the cache entry reevaluation unit 43 refers to the node state list of the processing target cache entry and requests the update counter acquisition unit 14 of the search tree control unit 10 shown in FIG. The latest update counter value (for each search tree) of the node to which it belongs is acquired (step S243). At that time, the cache entry reevaluation unit 43 sets the search tree group in the search tree group to which the base search tree in which the difference is detected in step S242 belong to the acquisition target of the update counter value (for each search tree).

次いで、キャッシュエントリ再評価部43は、ステップS243において取得された最新の更新カウンタ値と、キャッシュテーブル記憶部50に記憶された処理対象キャッシュエントリに関する各探索木の更新カウンタ値との間に差分があるか否かを確認する(ステップS244)。最新の更新カウンタ値とキャッシュテーブル記憶部50に記憶された処理対象キャッシュエントリに関する各探索木の更新カウンタ値との間に差分がない場合は(ステップS244のNO)、ステップS247に移行する。   Next, the cache entry re-evaluation unit 43 finds a difference between the latest update counter value acquired in step S243 and the update counter value of each search tree related to the processing target cache entry stored in the cache table storage unit 50. It is confirmed whether or not there is (step S244). When there is no difference between the latest update counter value and the update counter value of each search tree related to the processing target cache entry stored in the cache table storage unit 50 (NO in step S244), the process proceeds to step S247.

一方、ステップS244において、最新の更新カウンタ値と、キャッシュテーブル記憶部50に記憶された処理対象キャッシュエントリに関する各探索木の更新カウンタ値との間に差分があった場合は(ステップS244のYES)、キャッシュエントリ再評価部43は、以下の処理を実行する。即ち、キャッシュエントリ再評価部43は、当該処理対象キャッシュエントリのうち、適合ルールおよび更新カウンタ値に差分があった探索木のノードに係る情報は無効であると判定する。そして、キャッシュエントリ再評価部43は、図2に示す探索木制御部10の探索木探索部13に依頼して、当該処理対象キャッシュエントリのキーに適合するルールを再度探索し直す(ステップS245)。このとき、キャッシュエントリ再評価部43は、ステップS244において更新カウンタ値に差分があったと判定された探索木の識別子のリストを、探索木探索部13に渡す。当該探索木の識別子のリストを受け取った探索木探索部13は、探索対象を当該探索木に限定して探索処理を行ってもよい。また、キャッシュエントリ再評価部43は、処理対象キャッシュエントリのノード状態リストに含まれるノード識別子のリストを、探索木探索部13に渡す。当該ノード識別子のリストを受け取った探索木探索部13は、探索木の探索処理を、ルートノードからではなく、受け取ったノード識別子によって識別されるノードから始めてもよい。   On the other hand, in step S244, if there is a difference between the latest update counter value and the update counter value of each search tree related to the processing target cache entry stored in the cache table storage unit 50 (YES in step S244). The cache entry re-evaluation unit 43 executes the following processing. That is, the cache entry re-evaluation unit 43 determines that the information related to the node of the search tree having a difference between the matching rule and the update counter value in the processing target cache entry is invalid. Then, the cache entry re-evaluation unit 43 requests the search tree search unit 13 of the search tree control unit 10 shown in FIG. 2 to search again for a rule that matches the key of the processing target cache entry (step S245). . At this time, the cache entry re-evaluation unit 43 passes to the search tree search unit 13 a list of search tree identifiers determined to have a difference in update counter values in step S244. The search tree search unit 13 that has received the list of identifiers of the search tree may limit the search target to the search tree and perform search processing. In addition, the cache entry re-evaluation unit 43 passes the list of node identifiers included in the node state list of the processing target cache entry to the search tree search unit 13. The search tree search unit 13 that has received the list of node identifiers may start the search tree search process not from the root node but from the node identified by the received node identifier.

しかる後、キャッシュエントリ再評価部43は、ステップS245において探索されたルールの情報を基にして、処理対象キャッシュエントリを更新する(ステップS246)。具体的には、ステップS245においてキーに適合するルールを探索することができなかった場合には、キャッシュエントリ再評価部43は、処理対象キャッシュエントリの使用中フラグをオフに設定し、処理対象キャッシュエントリを削除する。その際、キャッシュエントリ再評価部43は、以前の適合ルールの参照カウンタを1減らす。   Thereafter, the cache entry re-evaluation unit 43 updates the processing target cache entry based on the rule information searched in step S245 (step S246). Specifically, if a rule that matches the key cannot be searched in step S245, the cache entry re-evaluation unit 43 sets the processing target cache entry in-use flag to OFF and sets the processing target cache. Delete the entry. At that time, the cache entry re-evaluation unit 43 decrements the reference counter of the previous matching rule by one.

一方、キーに適合するルールを探索することができた場合には、キャッシュエントリ再評価部43は、処理対象キャッシュエントリのルール識別子に、探索された当該適合ルールの識別子を設定する。その際、キャッシュエントリ再評価部43は、以前の適合ルールの参照カウンタを1減らし、新しい適合ルールの参照カウンタを1増やす。また、キャッシュエントリ再評価部43は、処理対象キャッシュエントリの最終使用時刻に、処理時点の時刻を設定する。さらに、キャッシュエントリ再評価部43は、ステップS241およびS243において、最新の共有更新カウンタ値および最新の更新カウンタ値を取得していた場合には、取得した最新の共有更新カウンタ値、最新の更新カウンタ値をそれぞれ処理対象キャッシュエントリの共有更新カウンタキャッシュ、更新カウンタキャッシュに記憶する。   On the other hand, when the rule that matches the key can be searched, the cache entry reevaluation unit 43 sets the identifier of the searched matching rule as the rule identifier of the processing target cache entry. At that time, the cache entry re-evaluation unit 43 decreases the reference counter of the previous matching rule by 1 and increases the reference counter of the new matching rule by 1. In addition, the cache entry re-evaluation unit 43 sets the time of processing as the last use time of the processing target cache entry. Furthermore, if the cache entry reevaluation unit 43 has acquired the latest shared update counter value and the latest update counter value in steps S241 and S243, the cache entry re-evaluation unit 43 acquires The values are stored in the shared update counter cache and update counter cache of the processing target cache entry, respectively.

なお、ステップS242において、最新の共有更新カウンタ値と処理対象キャッシュエントリに記憶された各ベース探索木の共有更新カウンタ値との間に差分がなかった場合(ステップS242のNO)、または、ステップS244において、最新の更新カウンタ値と処理対象キャッシュエントリに記憶された各探索木の更新カウンタ値との間に差分がなかった場合には(ステップS244のNO)、キャッシュエントリ再評価部43は、以下の処理を実行する。すなわち、キャッシュエントリ再評価部43は、ステップS247において、当該処理対象キャッシュエントリは有効であるものと評価して、処理対象キャッシュエントリの最終使用時刻を、処理実行時点の時刻に設定する(ステップS247)。   In step S242, if there is no difference between the latest shared update counter value and the shared update counter value stored in the processing target cache entry (NO in step S242), or step S244. When there is no difference between the latest update counter value and the update counter value of each search tree stored in the processing target cache entry (NO in step S244), the cache entry re-evaluation unit 43 Execute the process. That is, the cache entry re-evaluation unit 43 evaluates that the processing target cache entry is valid in step S247, and sets the last use time of the processing target cache entry to the time when the processing is executed (step S247). ).

また、キャッシュエントリ再評価部43は、本キャッシュエントリ再評価処理を終了する際に、処理対象キャッシュエントリが更新されたか(キーに適合するルールを探索できた場合)、あるいは、削除されたか(キーに適合するルールを探索できなかった場合)、のいずれかを示す情報を要求元に返す。   When the cache entry re-evaluation unit 43 ends the cache entry re-evaluation process, whether the processing target cache entry has been updated (when a rule that matches the key has been found) or has been deleted (key If no rule conforming to is found, information indicating one of the following is returned to the request source.

(本実施の形態の効果)
以上に詳細に説明したように、本実施の形態においては、次のような効果が得られる。
(Effect of this embodiment)
As described in detail above, the following effects are obtained in the present embodiment.

本実施の形態によれば、図2に示す探索木制御部10の探索木初期化部11は、ルールセットをルールの特徴に基づいてサブルールセットに分割して、サブルールセット毎に探索木を構築する。さらに、探索木初期化部11は、各サブルールセットの特徴に基づいて探索木をグループ化し、探索木グループ毎にベース探索木を決定する。また、図1に示す探索木記憶部20が記憶する探索木のノードは、更新カウンタおよび共有更新カウンタに関する情報を有している。   According to the present embodiment, the search tree initialization unit 11 of the search tree control unit 10 shown in FIG. 2 divides the rule set into sub-rule sets based on the characteristics of the rules, and the search tree for each sub-rule set. Build up. Further, the search tree initialization unit 11 groups search trees based on the characteristics of each subrule set, and determines a base search tree for each search tree group. Further, the search tree node stored in the search tree storage unit 20 shown in FIG. 1 has information on the update counter and the shared update counter.

また、図2に示す探索木制御部10のルール更新部12は、ルール更新(追加、変更、削除)に際し、処理対象ルールのマッチ条件が表す部分空間と重複する部分空間を表しているノード(群)に関し、処理対象ルールが含まれるサブルールセットに対する探索木における、当該ノードの更新カウンタを更新する。さらに、探索木制御部10は、当該探索木が属する探索木グループのベース探索木における当該ノードの共有更新カウンタをも更新する。また、図1に示すキャッシュテーブル記憶部50が記憶するキャッシュエントリは、当該キャッシュエントリが表すフローが属するノードの情報(探索木毎;ノードの更新カウンタおよび共有更新カウンタのキャッシュを含む情報)を有する。当該情報は、キャッシュエントリ作成部41およびキャッシュエントリ再評価部43によって当該キャッシュエントリが使用される毎に更新される。   In addition, the rule update unit 12 of the search tree control unit 10 shown in FIG. 2 performs a node update (addition, change, deletion) representing a partial space that overlaps with the partial space represented by the matching condition of the processing target rule ( Group), the update counter of the node in the search tree for the sub-rule set including the processing target rule is updated. Furthermore, the search tree control unit 10 also updates the shared update counter of the node in the base search tree of the search tree group to which the search tree belongs. Further, the cache entry stored in the cache table storage unit 50 shown in FIG. 1 has information on a node to which a flow represented by the cache entry belongs (for each search tree; information including a cache of a node update counter and a shared update counter). . The information is updated every time the cache entry is used by the cache entry creation unit 41 and the cache entry reevaluation unit 43.

また、図1に示すパケット処理部60は、受信パケットを処理する際に、当該パケット(フロー)用のキャッシュエントリが存在する場合、当該キャッシュエントリを再評価してから使用する。   In addition, when processing a received packet, when the packet entry for the packet (flow) exists, the packet processing unit 60 shown in FIG. 1 uses the cache entry after re-evaluating the cache entry.

また、図3に示すキャッシュテーブル制御部40のキャッシュエントリ再評価部43は、キャッシュエントリが表すフローが属するノード(群)に関し、記憶されている更新カウンタキャッシュの値(更新履歴情報のキャッシュの一種)と当該ノードの最新の更新カウンタの値(最新の更新履歴情報の一種)とを比較する。そして、両者に不整合がある場合、キャッシュエントリ再評価部43は、適合するルールの再探索が必要であると判断する。その際、キャッシュエントリ再評価部43は、記憶されている共有更新カウンタキャッシュの値(共有更新履歴情報のキャッシュの一種)と、当該ノード(ベース探索木に属する)の最新の共有更新カウンタの値(最新の共有更新履歴情報の一種)とを比較する。キャッシュエントリ再評価部43は、両者に不整合があった場合にのみ、当該ノードが属する探索木グループ内において更新カウンタキャッシュの値(更新履歴情報のキャッシュの一種)が無効であるものとして扱う。この場合、キャッシュエントリ再評価部43は、前述した記憶されている更新カウンタキャッシュの値と当該ノードの最新の更新カウンタの値との比較を行う。   Further, the cache entry re-evaluation unit 43 of the cache table control unit 40 shown in FIG. 3 relates to the stored value of the update counter cache (a type of update history information cache) for the node (group) to which the flow represented by the cache entry belongs. ) And the latest update counter value of the node (a kind of latest update history information). If there is a mismatch between the two, the cache entry reevaluation unit 43 determines that a re-search for a matching rule is necessary. At that time, the cache entry re-evaluation unit 43 stores the stored shared update counter cache value (a kind of cache of shared update history information) and the latest shared update counter value of the node (belonging to the base search tree). (A kind of the latest shared update history information). The cache entry reevaluation unit 43 treats the value of the update counter cache (a type of cache of update history information) as invalid in the search tree group to which the node belongs only when there is a mismatch between the two. In this case, the cache entry reevaluation unit 43 compares the stored update counter cache value with the latest update counter value of the node.

よって、本実施の形態によれば、パケット処理(データ処理の一種)に用いる情報エントリを探索する探索木が複数の探索木から構成されている場合であっても、以下のような効果を期待することができる。   Therefore, according to the present embodiment, the following effects are expected even when a search tree for searching for information entries used for packet processing (a type of data processing) is composed of a plurality of search trees. can do.

具体的には、ルールセット(情報エントリの集合の一種)の更新時における、探索木による探索結果(第1の情報エントリ)と、該探索結果をキャッシュしているキャッシュエントリ(第2の情報エントリ)との間の同期処理(キャッシュエントリの再評価処理)を想定する。本実施の形態によれば、当該同期処理の際、パケット(処理対象のデータの一種)を受信する毎に確認する必要がある、共有更新カウンタ(共有更新履歴情報の一種)及び更新カウンタ(更新履歴情報の一種)の確認回数を、探索木の数から、ベース探索木の数に減らすことができる。その結果、パケット(処理対象のデータの一種)の処理におけるメモリアクセス回数を減らすことができる。さらには、アクセス先メモリアドレス領域が限定され(アクセス離散度が下がり)、かつ、キャッシュメモリによりメモリアクセス遅延の隠蔽効果も得られ易くなる。これにより、パケット処理(データ処理の一種)の性能の安定化、高速化を図ることができる。以上より、本実施形態におけるデータ処理装置1によれば、データ処理(例えばパケット処理)に用いる情報エントリを探索する際に用いる探索木を複数有する場合であっても、情報エントリの探索に要する負荷を低減することができる。   Specifically, a search result (first information entry) by a search tree at the time of updating a rule set (a kind of set of information entries), and a cache entry (second information entry) that caches the search result ) Is assumed to be synchronized (cache entry reevaluation process). According to the present embodiment, a shared update counter (a type of shared update history information) and an update counter (update) that need to be confirmed each time a packet (a type of data to be processed) is received during the synchronization process. The number of confirmations of a kind of history information can be reduced from the number of search trees to the number of base search trees. As a result, it is possible to reduce the number of memory accesses in processing a packet (a kind of data to be processed). Furthermore, the access destination memory address area is limited (access discreteness is lowered), and the memory access delay concealment effect is easily obtained by the cache memory. Thereby, it is possible to stabilize and speed up the performance of packet processing (a kind of data processing). As described above, according to the data processing device 1 of the present embodiment, even when there are a plurality of search trees used when searching for information entries used for data processing (for example, packet processing), the load required for searching for information entries Can be reduced.

なお、上記説明では、データ処理装置1は、受信したパケットに適合するルールが存在しない場合(ステップS209のNO、ステップS205のNO)に、当該パケットのフローに対応するキャッシュエントリを作成しないもしくは削除する(ステップS207)。しかしながら、本実施形態を用いて説明した本発明は、これに限定されるものではない。他の例として、データ処理装置1は、例えば、ステップS207において、上記に加え、適合するルールがない、という情報を記憶したキャッシュエントリを作成もしくは維持してもよい。これにより、データ処理装置1は、適合するルールがないパケットを受信した場合の探索木探索の実行回数を減らすことができる。   In the above description, the data processing device 1 does not create or delete a cache entry corresponding to the flow of the packet when there is no rule that matches the received packet (NO in step S209, NO in step S205). (Step S207). However, the present invention described using this embodiment is not limited to this. As another example, for example, in step S207, the data processing apparatus 1 may create or maintain a cache entry storing information that there is no matching rule in addition to the above. As a result, the data processing device 1 can reduce the number of executions of search tree search when a packet having no matching rule is received.

また、上記説明では、探索木は木構造であり、ルートノード以外のノードの親ノードの数は1である例を示した。しかしながら、本実施形態を用いて説明した本発明は、これに限定されるものではない。他の例として、ノードは複数の親ノードを持ってもよい。この場合、探索木は純粋な木ではなく、グラフとなる。ノードが複数の親ノードを持つ状態は、当該複数の親ノードが表す部分空間に重複がある場合に発生する。また、そのような重複は、あるノードの子ノード群を作成する際、各子ノードが表す部分空間の一部または全部に重なりを持たせることで発生する。そのような子ノード群の作成方法は、探索処理最適化の一環として行われてもよい。なお、探索処理においては、子ノード群の部分空間に重複があり、かつ探索キーが当該重複する部分空間に含まれる場合、当該部分空間を含む複数の子ノードを探索すればよい。   In the above description, the search tree has a tree structure, and the number of parent nodes of nodes other than the root node is 1. However, the present invention described using this embodiment is not limited to this. As another example, a node may have multiple parent nodes. In this case, the search tree is not a pure tree but a graph. The state in which a node has a plurality of parent nodes occurs when there is an overlap in the partial space represented by the plurality of parent nodes. Further, such duplication occurs when a part or all of the partial space represented by each child node is overlapped when a child node group of a certain node is created. Such a method for creating a child node group may be performed as part of search processing optimization. In the search process, when there are overlaps in the partial space of the child node group and the search key is included in the overlapping partial space, a plurality of child nodes including the partial space may be searched.

また、上記説明では、ルール更新の際、データ処理装置1は、常に、ベース木の共有更新カウンタを更新する。しかしながら、本実施形態を用いて説明した本発明は、これに限定されるものではない。他の例として、ルール更新の際、データ処理装置1は、所定の条件が成立する場合には、ベース木の共有更新カウンタを更新しないよう処理してもよい。その場合、ノードに係る情報に共有更新カウンタ非更新フラグを設け、データ処理装置1は、共有更新カウンタを更新せずに更新されたノードに係る情報の当該フラグをオンにする。また、キャッシュエントリのノード状態に当該フラグを追加し、キャッシュエントリ作成の際、データ処理装置1は、ノードの当該フラグの値をキャッシュエントリに記憶する。ステップS204においてキャッシュエントリを再評価する際、キャッシュエントリ再評価部43は、当該フラグを参照する。そして、キャッシュエントリ再評価部43は、当該フラグがオンのノードがある場合、当該ノードが属する探索木グループについて、ステップS241およびステップS242を省略し、ステップS242においてYESであったとして処理を行う。共有更新カウンタの利用は、前述したとおり、パケットを受信する毎に確認する必要がある共有更新カウンタ及び更新カウンタの確認回数を減らす効果がある一方、False Positiveを発生させる可能性がある。すなわち、当該更新の影響を受けないキャッシュエントリであっても、当該共有更新カウンタを参照している場合、当該共有更新カウンタの変更を検出して、各探索木の更新カウンタの取得および比較処理を行う場合が発生しうる。当該更新の影響を受けないキャッシュエントリについては、更新カウンタの比較では差異(不整合)が存在しないため、探索木の再探索は行われないものの、更新カウンタ取得および比較処理の負荷が発生する。所定の条件が成立する場合にベース木の共有更新カウンタを更新しないことで、そのようなFalse Positiveの発生、およびそれに伴う負荷の発生を抑制することができる。所定の条件として、例えば、下記(1)及び(2)のいずれかもしくは組み合わせを使用できる。
(1)更新されるルールの部分空間が、ベース木において多くのノードの部分空間と重複している場合 (すなわち、ルール更新により共有更新カウンタが更新されるノードの数が多い場合)
(2)更新されるルールに関係するノードを使用しているキャッシュエントリの数が少ない場合
あるノードを使用しているキャッシュエントリの数は、例えば、以下のような方法で確認することができる。即ち、ノードに係る情報に参照カウンタを追加する。そして、当該ノードを使用・参照するキャッシュエントリが作成された際に当該参照カウンタを1増やし、当該キャッシュエントリが当該ノードの使用・参照を終了する際に当該参照カウンタを1減らす。これにより、あるノードを使用しているキャッシュエントリの数を確認できる。
In the above description, the data processing apparatus 1 always updates the shared update counter of the base tree when updating the rules. However, the present invention described using this embodiment is not limited to this. As another example, when updating a rule, the data processing device 1 may perform processing so as not to update the shared update counter of the base tree when a predetermined condition is satisfied. In that case, a shared update counter non-update flag is provided in the information related to the node, and the data processing apparatus 1 turns on the flag of the information related to the updated node without updating the shared update counter. Further, the flag is added to the node state of the cache entry, and when the cache entry is created, the data processing apparatus 1 stores the value of the flag of the node in the cache entry. When the cache entry is reevaluated in step S204, the cache entry reevaluation unit 43 refers to the flag. Then, when there is a node with the flag turned on, the cache entry re-evaluation unit 43 omits steps S241 and S242 for the search tree group to which the node belongs, and performs the process assuming that YES is obtained in step S242. As described above, the use of the shared update counter has the effect of reducing the number of times of confirmation of the shared update counter and the update counter that need to be confirmed every time a packet is received, and may generate false positive. That is, even if the cache entry is not affected by the update, if the shared update counter is referenced, a change in the shared update counter is detected, and an update counter acquisition and comparison process for each search tree is performed. The case of doing can occur. For cache entries that are not affected by the update, there is no difference (inconsistency) in the comparison of the update counters. Therefore, the search tree is not re-searched, but a load of update counter acquisition and comparison processing occurs. By not updating the shared update counter of the base tree when a predetermined condition is satisfied, it is possible to suppress the occurrence of such false positive and the accompanying load. As the predetermined condition, for example, any one or combination of the following (1) and (2) can be used.
(1) When the subspace of the rule to be updated overlaps with the subspace of many nodes in the base tree (that is, when the number of nodes whose shared update counter is updated by rule update is large)
(2) When the number of cache entries using nodes related to the updated rule is small The number of cache entries using a certain node can be confirmed by the following method, for example. That is, the reference counter is added to the information related to the node. Then, the reference counter is incremented by 1 when a cache entry that uses and references the node is created, and the reference counter is decremented by 1 when the cache entry finishes using and referring to the node. As a result, the number of cache entries using a certain node can be confirmed.

また、上記説明では、データ処理装置1は、ベース木をルールの探索に使用する探索木の中から選択する。しかしながら、本実施形態を用いて説明した本発明は、これに限定されるものではない。他の例として、各探索木グループに探索用の探索木とは別の探索木(共有更新カウンタ用探索木)を追加し、当該共有更新カウンタ用探索木をベース木としてもよい。共有更新カウンタ用探索木は、ルールの収容を行わず、その構築は当該探索木グループの初期ルールセットと独立であってもよい。例えば、共有更新カウンタ用探索木の構築における各ノードでのCutする次元やCut数は予め与えられてもよい。   In the above description, the data processing apparatus 1 selects a base tree from search trees used for rule search. However, the present invention described using this embodiment is not limited to this. As another example, a search tree (shared update counter search tree) different from the search tree for search may be added to each search tree group, and the shared update counter search tree may be used as a base tree. The shared update counter search tree does not contain rules, and its construction may be independent of the initial rule set of the search tree group. For example, the dimension and the number of cuts at each node in the construction of the shared update counter search tree may be given in advance.

<ハードウェア及びソフトウェア・プログラム(コンピュータ・プログラム)の構成>
以下、上記説明した実施形態を実現可能なハードウェア構成について説明する。
<Configuration of hardware and software program (computer program)>
Hereinafter, a hardware configuration capable of realizing the above-described embodiment will be described.

以下の説明においては、上記実施形態において説明したデータ処理装置1を、単に「データ処理装置」と記載する。また、データ処理装置の各構成要素を、単に「データ処理装置の構成要素」と記載する場合がある。   In the following description, the data processing device 1 described in the above embodiment is simply referred to as “data processing device”. In addition, each component of the data processing device may be simply referred to as “component of the data processing device”.

上記実施形態において説明したデータ処理装置は、1つ又は複数の専用のハードウェア装置により構成されてもよい。その場合、上記各図(図1乃至図3)に示した各構成要素は、その一部又は全部を統合したハードウェア(処理ロジックを実装した集積回路あるいは記憶デバイス等)を用いて実現されてもよい。   The data processing device described in the above embodiment may be configured by one or a plurality of dedicated hardware devices. In that case, each component shown in each of the above-described drawings (FIGS. 1 to 3) is realized by using hardware (an integrated circuit or a storage device mounted with processing logic) partially or entirely integrated. Also good.

データ処理装置が専用のハードウェアにより実現される場合、係るデータ処理装置の構成要素は、例えば、それぞれの機能を提供可能な回路構成(circuitry)により実現されてもよい。係る回路構成は、例えば、SoC(System on a Chip)等の集積回路や、当該集積回路を用いて実現されたチップセット等を含む。この場合、データ処理装置の構成要素が保持するデータは、例えば、SoCとして統合されたRAM(Random Access Memory)領域やフラッシュメモリ領域、あるいは、当該SoCに接続された記憶デバイス(半導体記憶装置等)に記憶されてもよい。   When the data processing device is realized by dedicated hardware, the components of the data processing device may be realized by, for example, a circuit configuration capable of providing each function. Such a circuit configuration includes, for example, an integrated circuit such as SoC (System on a Chip), a chip set realized using the integrated circuit, and the like. In this case, the data held by the components of the data processing apparatus is, for example, a RAM (Random Access Memory) area integrated as SoC, a flash memory area, or a storage device (semiconductor storage device or the like) connected to the SoC. May be stored.

また、この場合、データ処理装置の各構成要素を接続する通信回線としては、周知の通信ネットワーク(例えば通信バス等)を採用してもよい。また、各構成要素を接続する通信回線は、それぞれの構成要素間をピアツーピアで接続してもよい。   In this case, a well-known communication network (for example, a communication bus) may be employed as a communication line that connects each component of the data processing apparatus. Further, the communication line connecting each component may be connected between each component by peer-to-peer.

また、上述したデータ処理装置は、図26に例示するような汎用のハードウェア2600と、係るハードウェアによって実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、データ処理装置は、任意の数の、汎用のハードウェア装置及びソフトウェア・プログラムにより構成されてもよい。即ち、データ処理装置を構成する構成要素毎に、個別のハードウェア装置が割当てられてもよく、複数の構成要素が、一つのハードウェア装置を用いて実現されてもよい。   The above-described data processing apparatus may be configured by general-purpose hardware 2600 exemplified in FIG. 26 and various software programs (computer programs) executed by the hardware. In this case, the data processing device may be configured by an arbitrary number of general-purpose hardware devices and software programs. That is, an individual hardware device may be assigned to each component configuring the data processing device, or a plurality of components may be realized using a single hardware device.

図26における演算装置2601は、汎用のCPU(中央処理装置:Central Processing Unit)やマイクロプロセッサ等の演算処理装置である。演算装置2601は、例えば後述する不揮発性記憶装置2603に記憶された各種ソフトウェア・プログラムを記憶装置2602に読み出し、係るソフトウェア・プログラムに従って処理を実行してもよい。この場合、上記実施形態におけるデータ処理装置の構成要素の機能は、演算装置2601により実行されるソフトウェア・プログラムを用いて実現される。   An arithmetic device 2601 in FIG. 26 is an arithmetic processing device such as a general-purpose CPU (Central Processing Unit) or a microprocessor. The arithmetic device 2601 may read various software programs stored in a nonvolatile storage device 2603, which will be described later, into the storage device 2602, and execute processing according to the software programs. In this case, the functions of the components of the data processing device in the above embodiment are realized using a software program executed by the arithmetic device 2601.

記憶装置2602は、演算装置2601から参照可能な、RAMあるいはROM等のメモリ装置であり、ソフトウェア・プログラムや各種データ等を記憶する。なお、記憶装置2602は、揮発性のメモリ装置であってもよく、不揮発性のメモリ装置であってもよい。記憶装置2602には、データ処理装置の構成要素が保持するデータが一時的に記憶されてもよい。   The storage device 2602 is a memory device such as a RAM or a ROM that can be referred to from the arithmetic device 2601 and stores software programs, various data, and the like. Note that the storage device 2602 may be a volatile memory device or a nonvolatile memory device. The storage device 2602 may temporarily store data held by the components of the data processing device.

なお、記憶装置2602、あるいは、演算装置2601には、記憶装置2602よりも比較的高速にアクセス可能なキャッシュメモリ2602aが設けられてもよい。ハードウェア2600は、CPUと、キャッシュメモリとを含む階層メモリ構成を備えたコンピュータを構成することができる。   Note that the storage device 2602 or the arithmetic device 2601 may be provided with a cache memory 2602 a that can be accessed at a relatively higher speed than the storage device 2602. The hardware 2600 can constitute a computer having a hierarchical memory configuration including a CPU and a cache memory.

不揮発性記憶装置2603は、例えば磁気ディスクドライブや、フラッシュメモリによる半導体記憶装置等の、不揮発性の記憶装置である。不揮発性記憶装置2603は、各種ソフトウェア・プログラムやデータ等を記憶可能である。   The nonvolatile storage device 2603 is a nonvolatile storage device such as a magnetic disk drive or a semiconductor storage device using a flash memory. The nonvolatile storage device 2603 can store various software programs, data, and the like.

ネットワークインタフェース2606は、通信ネットワークに接続するインタフェース装置であり、例えば有線及び無線のLAN接続用インタフェース装置を採用してもよい。例えば、データ処理装置は、ネットワークインタフェース2606を介して、各種通信ネットワークを介して、通信パケットを取得してもよい。   The network interface 2606 is an interface device connected to a communication network, and for example, a wired and wireless LAN connection interface device may be employed. For example, the data processing apparatus may acquire a communication packet via the network interface 2606 and various communication networks.

ドライブ装置2604は、例えば、後述する記録媒体2605に対するデータの読み込みや書き込みを処理する装置である。   The drive device 2604 is, for example, a device that processes reading and writing of data with respect to a recording medium 2605 described later.

記録媒体2605は、例えば光ディスク、光磁気ディスク、半導体フラッシュメモリ等、データを記録可能な任意の記録媒体である。   The recording medium 2605 is an arbitrary recording medium capable of recording data, such as an optical disk, a magneto-optical disk, and a semiconductor flash memory.

入出力インタフェース2607は、外部装置との間の入出力を制御する装置である。   The input / output interface 2607 is a device that controls input / output with an external device.

上述した実施形態を例に説明した本発明におけるデータ処理装置、あるいはその構成要素は、例えば、図26に例示するハードウェア装置に対して、上記実施形態において説明した機能を実現可能なソフトウェア・プログラムを供給することにより実現されてもよい。より具体的には、例えば、係るハードウェア装置に対して供給したソフトウェア・プログラムを、演算装置2601が実行することによって、本発明が実現されてもよい。この場合、係るハードウェア装置で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト、仮想環境基盤等のミドルウェアなどが各処理の一部を実行してもよい。   The data processing apparatus according to the present invention described with the above-described embodiment as an example, or a component thereof, for example, a software program capable of realizing the functions described in the above-described embodiment with respect to the hardware apparatus illustrated in FIG. It may be realized by supplying More specifically, for example, the present invention may be realized by the arithmetic device 2601 executing a software program supplied to such a hardware device. In this case, an operating system running on the hardware device, database management software, network software, middleware such as a virtual environment platform, etc. may execute part of each process.

上述した実施形態において上記各図に示した各部は、上述したハードウェアにより実行されるソフトウェア・プログラムの機能(処理)単位である、ソフトウェアモジュールとして実現することができる。ただし、これらの図面に示した各ソフトウェアモジュールの区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。   In the above-described embodiment, each unit illustrated in each drawing can be realized as a software module, which is a function (processing) unit of a software program executed by the above-described hardware. However, the division of each software module shown in these drawings is a configuration for convenience of explanation, and various configurations can be assumed for implementation.

例えば、図1乃至図3に例示したデータ処理装置の各構成要素をソフトウェアモジュールとして実現する場合、これらのソフトウェアモジュールが不揮発性記憶装置2603に記憶される。そして、演算装置2601がそれぞれの処理を実行する際に、これらのソフトウェアモジュールを記憶装置2602に読み出す。   For example, when each component of the data processing apparatus illustrated in FIGS. 1 to 3 is realized as a software module, these software modules are stored in the nonvolatile storage device 2603. Then, when the arithmetic device 2601 executes each process, these software modules are read out to the storage device 2602.

また、これらのソフトウェアモジュールは、共有メモリやプロセス間通信等の適宜の方法により、相互に各種データを伝達できるように構成されてもよい。このような構成により、これらのソフトウェアモジュールは、相互に通信可能に接続される。   In addition, these software modules may be configured to transmit various data to each other by an appropriate method such as shared memory or inter-process communication. With such a configuration, these software modules are connected so as to communicate with each other.

更に、上記ソフトウェア・プログラムは記録媒体2605に記録されてもよい。この場合、上記ソフトウェア・プログラムは、上記データ処理装置の構成要素の出荷段階、あるいは運用段階等において、適宜ドライブ装置2604を通じて不揮発性記憶装置2603に格納されるよう構成されてもよい。   Further, the software program may be recorded on the recording medium 2605. In this case, the software program may be stored in the non-volatile storage device 2603 through the drive device 2604 as appropriate at the shipping stage or operation stage of the components of the data processing apparatus.

なお、上記の場合において、上記ハードウェアへの各種ソフトウェア・プログラムの供給方法は、出荷前の製造段階、あるいは出荷後のメンテナンス段階等において、適当な治具を利用して当該装置内にインストールする方法を採用してもよい。また、各種ソフトウェア・プログラムの供給方法は、インターネット等の通信回線を介して外部からダウンロードする方法等のように、現在では一般的な手順を採用してもよい。   In the above case, the method of supplying various software programs to the hardware is installed in the apparatus using an appropriate jig in the manufacturing stage before shipment or the maintenance stage after shipment. A method may be adopted. As a method for supplying various software programs, a general procedure may be adopted at present, such as a method of downloading from the outside via a communication line such as the Internet.

そして、このような場合において、本発明は、係るソフトウェア・プログラムを構成するコード、あるいは係るコードが記録されたところの、コンピュータ読み取り可能な記録媒体によって構成されると捉えることができる。この場合、係る記録媒体は、ハードウェア装置と独立した媒体に限らず、LANやインターネットなどにより伝送されたソフトウェア・プログラムをダウンロードして記憶又は一時記憶した記録媒体を含む。   In such a case, the present invention can be considered to be configured by a code that constitutes the software program or a computer-readable recording medium on which the code is recorded. In this case, the recording medium is not limited to a medium independent of the hardware device, but includes a recording medium in which a software program transmitted via a LAN or the Internet is downloaded and stored or temporarily stored.

また、上述したデータ処理装置の構成要素は、図26に例示するハードウェア装置を仮想化した仮想化環境と、当該仮想化環境において実行される各種ソフトウェア・プログラム(コンピュータ・プログラム)とによって構成されてもよい。この場合、図26に例示するハードウェア装置の構成要素は、当該仮想化環境における仮想デバイスとして提供される。なお、この場合も、図26に例示するハードウェア装置を物理的な装置として構成した場合と同様の構成にて、本発明を実現可能である。   In addition, the components of the data processing apparatus described above are configured by a virtualized environment in which the hardware device illustrated in FIG. 26 is virtualized and various software programs (computer programs) executed in the virtualized environment. May be. In this case, the components of the hardware device illustrated in FIG. 26 are provided as virtual devices in the virtual environment. In this case as well, the present invention can be realized with the same configuration as the case where the hardware device illustrated in FIG. 26 is configured as a physical device.

以上、本発明の好適な実施形態の構成を説明した。しかし、かかる実施形態は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であることが、当業者には容易に理解できよう。   The configuration of the preferred embodiment of the present invention has been described above. However, it should be noted that such embodiments are merely examples of the present invention and do not limit the present invention in any way. Those skilled in the art will readily understand that various modifications and changes can be made according to a specific application without departing from the gist of the present invention.

即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。   That is, the present invention can apply various modes that can be understood by those skilled in the art within the scope of the present invention.

この出願は、2015年2月6日に出願された日本出願特願2015−022010を基礎とする優先権を主張し、その開示の全てをここに取り込む。   This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2015-022010 for which it applied on February 6, 2015, and takes in those the indications of all here.

1 データ処理装置
10 探索木制御部
11 探索木初期化部
12 ルール更新部
13 探索木探索部
14 更新カウンタ取得部
20 探索木記憶部
21 種別欄
22 項目欄
23 説明欄
24 ノード種別欄
25 項目欄
26 説明欄
30 ルール記憶部
31 項目欄
32 説明欄
33 例欄
40 キャッシュテーブル制御部
41 キャッシュエントリ作成部
42 キャッシュエントリ探索部
43 キャッシュエントリ再評価部
50 キャッシュテーブル記憶部
51 項目欄
52 説明欄
53 項目欄
54 説明欄
60 パケット処理部
70 通信IF部
80 データ処理装置制御部
111 探索木グループ欄
112 所属探索木欄
113 使用グループ化基準欄
DESCRIPTION OF SYMBOLS 1 Data processor 10 Search tree control part 11 Search tree initialization part 12 Rule update part 13 Search tree search part 14 Update counter acquisition part 20 Search tree memory | storage part 21 Type column 22 Item column 23 Explanation column 24 Node type column 25 Item column 26 Description column 30 Rule storage unit 31 Item column 32 Description column 33 Example column 40 Cache table control unit 41 Cache entry creation unit 42 Cache entry search unit 43 Cache entry reevaluation unit 50 Cache table storage unit 51 Item column 52 Description column 53 Item Column 54 Description column 60 Packet processing unit 70 Communication IF unit 80 Data processing device control unit 111 Search tree group column 112 Affiliation search tree column 113 Use grouping criterion column

Claims (12)

処理対象とするデータを処理する方法を決定するための第1の情報エントリを、それぞれの適用対象とするデータ識別情報を含む第1の情報エントリの集合の中から1ないし複数の探索木を用いて探索し、探索した前記第1の情報エントリを用いて前記データを処理する場合において、各前記探索木を構成するノードである中間ノードおよびリーフノードを前記データ識別情報の探索空間に対応付けて探索した際に得られた前記探索木による前記第1の情報エントリの探索結果を第2の情報エントリとして記憶しておき、前記データを処理する際に、当該データに関する前記第2の情報エントリが記憶されていた場合、当該第2の情報エントリを使用して当該データを処理するデータ処理装置であって、
1ないし複数の前記探索木をグループ化し、各探索木グループにおけるベース探索木を選択する探索木初期化手段と、
前記探索木を構成する中間ノードおよびリーフノードの各ノードに関し、前記ノードの更新の履歴を示す更新履歴情報および当該探索木を構成するいずれかの前記ノードの更新の履歴を示す共有更新履歴情報を記憶する探索木記憶手段と、
前記第1の情報エントリの内容を操作した際に、当該第1の情報エントリの前記データ識別情報である操作対象データ識別情報と重複する探索空間に対応付けられた前記ノードの更新履歴情報を更新するとともに、当該ノードを含む前記探索木が属する前記探索木グループのベース探索木について前記操作対象データ識別情報と重複する探索空間に対応付けられた前記ノードの共有更新履歴情報を更新する更新手段と、
前記第2の情報エントリとして、前記探索木による前記第1の情報エントリの探索結果として得られる、各前記探索木における探索によって到達したノードを示すノード識別子と当該ノードの前記更新履歴情報および前記共有更新履歴情報とのキャッシュを記憶する情報エントリ記憶手段と、
前記第2の情報エントリを使用したデータ処理を行う際に、前記情報エントリ記憶手段に記憶された当該第2の情報エントリに関する前記ノードの前記共有更新履歴情報のキャッシュと当該ノードの最新の前記共有更新履歴情報とを、各前記ベース探索木について比較し、両者に不整合があった場合には、当該ノードを含む前記ベース探索木が属する前記探索木グループの各前記探索木について、前記情報エントリ記憶手段に記憶された当該第2の情報エントリに関する各前記ノードの前記更新履歴情報のキャッシュと各当該ノードの最新の前記更新履歴情報とを比較し、両者に不整合があった場合は、前記情報エントリ記憶手段に記憶された当該第2の情報エントリに含まれる情報のうち少なくとも前記更新履歴情報に関し前記不整合が検出されたノードに係る情報は無効であるものと判定する再評価手段と
を備えるデータ処理装置。
As a first information entry for determining a method for processing data to be processed, one or more search trees are used from a set of first information entries including data identification information to be applied. In the case where the data is processed using the searched first information entry, the intermediate nodes and leaf nodes that are nodes constituting each search tree are associated with the search space of the data identification information. A search result of the first information entry by the search tree obtained when searching is stored as a second information entry, and when the data is processed, the second information entry related to the data is If stored, a data processing device for processing the data using the second information entry,
Search tree initialization means for grouping one or more search trees and selecting a base search tree in each search tree group;
For each of the intermediate nodes and leaf nodes constituting the search tree, update history information indicating the update history of the node and shared update history information indicating the update history of any of the nodes constituting the search tree. Search tree storage means for storing;
When the contents of the first information entry are operated, the update history information of the node associated with the search space overlapping the operation target data identification information that is the data identification information of the first information entry is updated. And updating means for updating the shared update history information of the node associated with the search space overlapping the operation target data identification information for the base search tree of the search tree group to which the search tree including the node belongs. ,
As the second information entry, the node identifier indicating the node reached by the search in each search tree, the update history information of the node, and the sharing obtained as a search result of the first information entry by the search tree Information entry storage means for storing a cache of update history information;
When performing data processing using the second information entry, the shared update history information cache of the node related to the second information entry stored in the information entry storage unit and the latest share of the node The update history information is compared for each base search tree, and if there is a mismatch, the information entry for each search tree of the search tree group to which the base search tree including the node belongs. The cache of the update history information of each of the nodes related to the second information entry stored in the storage means is compared with the latest update history information of each of the nodes, and if both are inconsistent, Of the information included in the second information entry stored in the information entry storage means, the inconsistency is detected at least with respect to the update history information. Is information relating to node data processing apparatus and a revaluation unit determines that invalid.
前記再評価手段は、前記情報エントリ記憶手段に記憶された前記第2の情報エントリが無効であるものと判定した際に、前記情報エントリ記憶手段に記憶された当該第2の情報エントリに関する前記更新履歴情報のキャッシュの値と最新の更新履歴情報の値とに不整合があった前記ノードが属する前記探索木について前記第1の情報エントリの再探索を行い、再探索した結果を用いて当該情報エントリ記憶手段に記憶された当該第2の情報エントリを更新する
請求項1に記載のデータ処理装置。
When the re-evaluation unit determines that the second information entry stored in the information entry storage unit is invalid, the re-evaluation unit updates the update related to the second information entry stored in the information entry storage unit. Re-search the first information entry for the search tree to which the node to which the cache value of the history information and the latest update history information value are inconsistent belongs, and use the result of the search again The data processing apparatus according to claim 1, wherein the second information entry stored in the entry storage unit is updated.
前記再評価手段は、前記第1の情報エントリの再探索を、前記情報エントリ記憶手段に記憶された当該第2の情報エントリに関する前記更新履歴情報のキャッシュの値と最新の更新履歴情報の値とに不整合があった前記ノードが属する前記探索木のルートのノードから開始する代わりに、前記情報エントリ記憶手段に記憶された当該第2の情報エントリに関する前記ノード識別子のキャッシュが示すノードから開始する
請求項2に記載のデータ処理装置。
The re-evaluation means performs a re-search of the first information entry by executing a cache value of the update history information and a value of the latest update history information related to the second information entry stored in the information entry storage means. Instead of starting from the node of the root of the search tree to which the node that has been inconsistent belongs, start from the node indicated by the cache of the node identifier relating to the second information entry stored in the information entry storage means The data processing apparatus according to claim 2.
前記探索木初期化手段は、1ないし複数の前記探索木をグループ化する際に、各前記探索木に含まれる前記第1の情報エントリの特徴を用いてあらかじめ定めたグループ化基準に基づいて、前記探索木のグループ化を行う
請求項1ないし請求項3のいずれかに記載のデータ処理装置。
The search tree initializing means, when grouping one or a plurality of the search trees, based on a grouping criterion determined in advance using the characteristics of the first information entry included in each search tree, 4. The data processing apparatus according to claim 1, wherein the search tree is grouped.
前記探索木初期化手段は、前記グループ化基準として、前記第1の情報エントリに含まれる前記データ識別情報の粒度を用いる
請求項4に記載のデータ処理装置。
The data processing apparatus according to claim 4, wherein the search tree initialization unit uses a granularity of the data identification information included in the first information entry as the grouping criterion.
前記更新履歴情報および前記共有更新履歴情報が、それぞれの更新回数をカウントする更新カウンタおよび共有更新カウンタからなっており、前記ノードの値と前記キャッシュの値に差異がある状態を不整合とみなす
請求項1ないし請求項5のいずれかに記載のデータ処理装置。
The update history information and the shared update history information are composed of an update counter and a shared update counter that count the number of updates, respectively, and a state in which there is a difference between the value of the node and the value of the cache is regarded as inconsistent The data processing device according to any one of claims 1 to 5.
処理対象とするデータを処理する方法を決定するための第1の情報エントリを、それぞれの適用対象とするデータ識別情報を含む第1の情報エントリの集合の中から1ないし複数の探索木を用いて探索し、探索した前記第1の情報エントリを用いて前記データを処理する場合において、各前記探索木を構成するノードである中間ノードおよびリーフノードを前記データ識別情報の探索空間に対応付けて探索した際に得られた前記探索木による前記第1の情報エントリの探索結果を第2の情報エントリとして記憶しておき、前記データを処理する際に、当該データに関する前記第2の情報エントリが記憶されていた場合、当該第2の情報エントリを使用して当該データを処理する情報エントリ管理方法であって、 1ないし複数の前記探索木をグループ化し、各探索木グループにおけるベース探索木を選択し、
前記探索木を構成する中間ノードおよびリーフノードの各ノードに関し、前記ノードの更新の履歴を示す更新履歴情報および当該探索木を構成するいずれかの前記ノードの更新の履歴を示す共有更新履歴情報を記憶し、
前記第1の情報エントリの内容を操作した際に、当該第1の情報エントリの前記データ識別情報である操作対象データ識別情報と重複する探索空間に対応付けられた前記ノードの更新履歴情報を更新するとともに、当該ノードを含む前記探索木が属する前記探索木グループのベース探索木について前記操作対象データ識別情報と重複する探索空間に対応付けられた前記ノードの共有更新履歴情報を更新し、
前記第2の情報エントリとして、前記探索木による前記第1の情報エントリの探索結果として得られる、各前記探索木における探索によって到達したノードを示すノード識別子と当該ノードの前記更新履歴情報および前記共有更新履歴情報とのキャッシュを記憶し、
前記第2の情報エントリを使用したデータ処理を行う際に、前記第2の情報エントリを記憶することによって記憶された当該第2の情報エントリに関する前記ノードの前記共有更新履歴情報のキャッシュと当該ノードの最新の前記共有更新履歴情報とを、各前記ベース探索木について比較し、両者に不整合があった場合には、当該ノードを含む前記ベース探索木が属する前記探索木グループの各前記探索木について、前記記憶された当該第2の情報エントリに関する各前記ノードの前記更新履歴情報のキャッシュと各当該ノードの最新の前記更新履歴情報とを比較し、両者に不整合があった場合は、前記記憶された当該第2の情報エントリは無効であると判定することで、第2の情報エントリを再評価する
情報エントリ管理方法。
As a first information entry for determining a method for processing data to be processed, one or more search trees are used from a set of first information entries including data identification information to be applied. In the case where the data is processed using the searched first information entry, the intermediate nodes and leaf nodes that are nodes constituting each search tree are associated with the search space of the data identification information. A search result of the first information entry by the search tree obtained when searching is stored as a second information entry, and when the data is processed, the second information entry related to the data is An information entry management method for processing the data using the second information entry when stored, wherein one or more search trees are grouped. Loop, select base search tree in each search tree group,
For each of the intermediate nodes and leaf nodes constituting the search tree, update history information indicating the update history of the node and shared update history information indicating the update history of any of the nodes constituting the search tree. Remember,
When the contents of the first information entry are operated, the update history information of the node associated with the search space overlapping the operation target data identification information that is the data identification information of the first information entry is updated. And updating the shared update history information of the node associated with the search space overlapping the operation target data identification information for the base search tree of the search tree group to which the search tree including the node belongs,
As the second information entry, the node identifier indicating the node reached by the search in each search tree, the update history information of the node, and the sharing obtained as a search result of the first information entry by the search tree Memorize cache with update history information,
When performing data processing using the second information entry, the cache of the shared update history information of the node related to the second information entry stored by storing the second information entry and the node Each of the search tree groups to which the base search tree to which the base search tree including the node belongs belongs when the base search trees are compared with each other. For the stored second information entry, the cache of the update history information of each of the nodes and the latest update history information of each of the nodes are compared, and if both are inconsistent, An information entry management method for re-evaluating a second information entry by determining that the stored second information entry is invalid.
前記第2の情報エントリの再評価は、前記記憶された前記第2の情報エントリが無効であると判定した際に、前記記憶された当該第2の情報エントリに関する前記更新履歴情報のキャッシュの値と、最新の更新履歴情報の値と、に不整合があった前記ノードが属する前記探索木について前記第1の情報エントリの再探索を行い、再探索した結果を用いて前記記憶された当該第2の情報エントリを更新する
請求項7に記載の情報エントリ管理方法。
When the second information entry is re-evaluated, it is determined that the stored second information entry is invalid, and the cache value of the update history information related to the stored second information entry is determined. And the latest update history information value, the search tree to which the node having the inconsistency belongs is re-searched for the first information entry, and the stored first number is stored using the result of the re-search. The information entry management method according to claim 7, wherein two information entries are updated.
前記第2の情報エントリの再評価は、前記第1の情報エントリの再探索を、前記記憶された当該第2の情報エントリに関する前記更新履歴情報のキャッシュの値と、最新の更新履歴情報の値と、に不整合があった前記ノードが属する前記探索木のルートのノードから開始する代わりに、前記記憶された当該第2の情報エントリに関する前記ノード識別子のキャッシュが示すノードから開始する
請求項8に記載の情報エントリ管理方法。
The re-evaluation of the second information entry is performed by re-searching the first information entry by storing the cache value of the update history information related to the stored second information entry and the value of the latest update history information. And starting from the node indicated by the cache of the node identifier relating to the stored second information entry, instead of starting from the node of the root of the search tree to which the node having the inconsistency belongs. Information entry management method described in 1.
請求項7ないし9のいずれかに記載の情報エントリ管理方法を、コンピュータによって実行可能なプログラムとして実施する情報エントリ管理プログラムが記録された記録媒体。   10. A recording medium on which an information entry management program for executing the information entry management method according to claim 7 as a program executable by a computer is recorded. 処理対象とするデータを処理する方法を決定するための第1の情報エントリを、それぞれの適用対象とするデータ識別情報を含む第1の情報エントリの集合の中から探索する際に用いられる探索木について、1ないし複数の前記探索木をグループ化し、各探索木グループにおけるベース探索木を選択する探索木初期化手段と、
前記探索木を構成するノードである中間ノードおよびリーフノードの各ノードに関し、前記ノードの更新の履歴を示す更新履歴情報および当該探索木を構成するいずれかの前記ノードの更新の履歴を示す共有更新履歴情報を記憶する探索木記憶手段と、
前記第1の情報エントリの内容を操作した際に、当該第1の情報エントリの前記データ識別情報である操作対象データ識別情報と重複する探索空間に対応付けられた前記ノードの更新履歴情報を更新するとともに、当該ノードを含む前記探索木が属する前記探索木グループのベース探索木について前記操作対象データ識別情報と重複する探索空間に対応付けられた前記ノードの共有更新履歴情報を更新する更新手段と、
第2の情報エントリとして、前記探索木による前記第1の情報エントリの探索結果として得られる、各前記探索木における探索によって到達したノードを示すノード識別子と当該ノードの前記更新履歴情報および前記共有更新履歴情報とのキャッシュを記憶する情報エントリ記憶手段と、
前記第2の情報エントリを使用したデータ処理を行う際に、前記情報エントリ記憶手段に記憶された当該第2の情報エントリに関する前記ノードの前記共有更新履歴情報のキャッシュと当該ノードの最新の前記共有更新履歴情報とを、各前記ベース探索木について比較し、両者に不整合があった場合には、当該ノードを含む前記ベース探索木が属する前記探索木グループの各前記探索木について、前記情報エントリ記憶手段に記憶された当該第2の情報エントリに関する各前記ノードの前記更新履歴情報のキャッシュと各当該ノードの最新の前記更新履歴情報とを比較し、両者に不整合があった場合は、前記情報エントリ記憶手段に記憶された当該第2の情報エントリに含まれる情報のうち少なくとも前記更新履歴情報に関し前記不整合が検出されたノードに係る情報は無効であるものと判定する再評価手段と、
前記処理対象とするデータを処理する際に、当該データに関する前記第2の情報エントリが前記情報エントリ記憶手段に記憶されていた場合、当該第2の情報エントリを使用して当該データを処理するデータ処理実行手段と、を備える
データ処理装置。
A search tree used when searching for a first information entry for determining a method for processing data to be processed from a set of first information entries including data identification information to be applied. Search tree initialization means for grouping one or a plurality of the search trees and selecting a base search tree in each search tree group;
For each of the intermediate node and leaf node that are nodes constituting the search tree, update history information indicating the update history of the node and shared update indicating the update history of any of the nodes constituting the search tree Search tree storage means for storing history information;
When the contents of the first information entry are operated, the update history information of the node associated with the search space overlapping the operation target data identification information that is the data identification information of the first information entry is updated. And updating means for updating the shared update history information of the node associated with the search space overlapping the operation target data identification information for the base search tree of the search tree group to which the search tree including the node belongs. ,
As a second information entry, a node identifier indicating a node reached by the search in each search tree, the update history information of the node, and the shared update obtained as a search result of the first information entry by the search tree Information entry storage means for storing a cache of history information;
When performing data processing using the second information entry, the shared update history information cache of the node related to the second information entry stored in the information entry storage unit and the latest share of the node The update history information is compared for each base search tree, and if there is a mismatch, the information entry for each search tree of the search tree group to which the base search tree including the node belongs. The cache of the update history information of each of the nodes related to the second information entry stored in the storage means is compared with the latest update history information of each of the nodes, and if both are inconsistent, Of the information included in the second information entry stored in the information entry storage means, the inconsistency is detected at least with respect to the update history information. Information and re-evaluating means determines that invalid according to nodes,
When processing the data to be processed, if the second information entry related to the data is stored in the information entry storage means, the data for processing the data using the second information entry A data processing apparatus comprising: a process execution unit;
処理対象とするデータを処理する方法を決定するための第1の情報エントリを、それぞれの適用対象とするデータ識別情報を含む第1の情報エントリの集合の中から1ないし複数の探索木を用いて探索し、探索した前記第1の情報エントリを用いて前記データを処理する場合において、各前記探索木を構成するノードである中間ノードおよびリーフノードを前記データ識別情報の探索空間に対応付けて探索した際に得られた前記探索木による前記第1の情報エントリの探索結果を第2の情報エントリとして記憶しておき、前記データを処理する際に、当該データに関する前記第2の情報エントリが記憶されていた場合、当該第2の情報エントリを使用して当該データを処理する情報エントリ管理方法であって、 1ないし複数の前記探索木をグループ化し、各探索木グループにおけるベース探索木を選択する探索木初期化処理と、
前記探索木を構成する中間ノードおよびリーフノードの各ノードに関し、前記ノードの更新の履歴を示す更新履歴情報および当該探索木を構成するいずれかの前記ノードの更新の履歴を示す共有更新履歴情報を記憶する探索木記憶処理と、
前記第1の情報エントリの内容を操作した際に、当該第1の情報エントリの前記データ識別情報である操作対象データ識別情報と重複する探索空間に対応付けられた前記ノードの更新履歴情報を更新するとともに、当該ノードを含む前記探索木が属する前記探索木グループのベース探索木について前記操作対象データ識別情報と重複する探索空間に対応付けられた前記ノードの共有更新履歴情報を更新する更新処理と、
前記第2の情報エントリとして、前記探索木による前記第1の情報エントリの探索結果として得られる、各前記探索木における探索によって到達したノードを示すノード識別子と当該ノードの前記更新履歴情報および前記共有更新履歴情報とのキャッシュを記憶する第2の情報エントリ記憶処理と、
前記第2の情報エントリを使用したデータ処理を行う際に、前記第2の情報エントリ記憶処理によって記憶された当該第2の情報エントリに関する前記ノードの前記共有更新履歴情報のキャッシュと当該ノードの最新の前記共有更新履歴情報とを、各前記ベース探索木について比較し、両者に不整合があった場合には、当該ノードを含む前記ベース探索木が属する前記探索木グループの各前記探索木について、前記第2の情報エントリ記憶処理によって記憶された当該第2の情報エントリに関する各前記ノードの前記更新履歴情報のキャッシュと各当該ノードの最新の前記更新履歴情報とを比較し、両者に不整合があった場合は、前記第2の情報エントリ記憶処理によって記憶された当該第2の情報エントリは無効であるものと判定する再評価処理と、をコンピュータに実行させる
情報エントリ管理プログラムが記録された記録媒体。
As a first information entry for determining a method for processing data to be processed, one or more search trees are used from a set of first information entries including data identification information to be applied. In the case where the data is processed using the searched first information entry, the intermediate nodes and leaf nodes that are nodes constituting each search tree are associated with the search space of the data identification information. A search result of the first information entry by the search tree obtained when searching is stored as a second information entry, and when the data is processed, the second information entry related to the data is An information entry management method for processing the data using the second information entry when stored, wherein one or more search trees are grouped. A search tree initialization process for looping and selecting a base search tree in each search tree group;
For each of the intermediate nodes and leaf nodes constituting the search tree, update history information indicating the update history of the node and shared update history information indicating the update history of any of the nodes constituting the search tree. A search tree storage process to store;
When the contents of the first information entry are operated, the update history information of the node associated with the search space overlapping the operation target data identification information that is the data identification information of the first information entry is updated. And updating the shared update history information of the node associated with the search space overlapping the operation target data identification information for the base search tree of the search tree group to which the search tree including the node belongs. ,
As the second information entry, the node identifier indicating the node reached by the search in each search tree, the update history information of the node, and the sharing obtained as a search result of the first information entry by the search tree A second information entry storage process for storing a cache of update history information;
When performing data processing using the second information entry, the cache of the shared update history information of the node related to the second information entry stored by the second information entry storage processing and the latest of the node The shared update history information for each of the base search trees, and if both are inconsistent, for each search tree of the search tree group to which the base search tree including the node belongs, The cache of the update history information of each of the nodes related to the second information entry stored by the second information entry storing process is compared with the latest update history information of each of the nodes. If there is, the second information entry stored by the second information entry storing process is re-evaluated to determine that it is invalid. Recording medium in which information entry management program executed process and, to a computer is recorded.
JP2016573232A 2015-02-06 2016-02-05 Data processing device, information entry management method, and information entry management program Active JP6652070B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015022010 2015-02-06
JP2015022010 2015-02-06
PCT/JP2016/000593 WO2016125501A1 (en) 2015-02-06 2016-02-05 Data processing device, information entry management method, and recording medium with information entry management program recorded thereon

Publications (2)

Publication Number Publication Date
JPWO2016125501A1 true JPWO2016125501A1 (en) 2017-11-16
JP6652070B2 JP6652070B2 (en) 2020-02-19

Family

ID=56563853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016573232A Active JP6652070B2 (en) 2015-02-06 2016-02-05 Data processing device, information entry management method, and information entry management program

Country Status (2)

Country Link
JP (1) JP6652070B2 (en)
WO (1) WO2016125501A1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3284064B2 (en) * 1996-11-28 2002-05-20 日本電信電話株式会社 Digital search device
ATE319249T1 (en) * 2000-01-27 2006-03-15 Ibm METHOD AND DEVICE FOR CLASSIFICATION OF DATA PACKETS
JP3609358B2 (en) * 2000-08-17 2005-01-12 日本電信電話株式会社 Flow identification search apparatus and method
JP2008244642A (en) * 2007-03-26 2008-10-09 Nec Corp Retrieval device, method, and program

Also Published As

Publication number Publication date
JP6652070B2 (en) 2020-02-19
WO2016125501A1 (en) 2016-08-11

Similar Documents

Publication Publication Date Title
US10511532B2 (en) Algorithmic longest prefix matching in programmable switch
US10572442B2 (en) Systems and methods for providing distributed tree traversal using hardware-based processing
US8478707B1 (en) System and method for reducing flow rules in forwarding tables
US7478426B2 (en) Multi-field classification dynamic rule updates
US9710503B2 (en) Tunable hardware sort engine for performing composite sorting algorithms
EP2772040B1 (en) Prefix and predictive search in a distributed hash table
JP6940239B2 (en) Methods and systems for anonymizing data stock
TWI645694B (en) Apparatus and method for processing alternately configured longest prefix match tables
US20140222870A1 (en) System, Method, Software, and Data Structure for Key-Value Mapping and Keys Sorting
US20160335296A1 (en) Memory System for Optimized Search Access
US20170142013A1 (en) Search apparatus, search configuration method, and search method
US11562004B2 (en) Classifying and filtering platform data via k-means clustering
US9021098B1 (en) Allocation of interface identifiers within network device having multiple forwarding components
US20170083617A1 (en) Posterior probabilistic model for bucketing records
US20170012874A1 (en) Software router and methods for looking up routing table and for updating routing entry of the software router
Barta et al. Online probabilistic metric embedding: A general framework for bypassing inherent bounds
JP6652070B2 (en) Data processing device, information entry management method, and information entry management program
CN109754021B (en) Online packet classification method based on range tuple search
WO2016149905A1 (en) Field programmable gate array memory allocation
CN107045535B (en) Database table index
Bahrambeigy et al. Bloom-Bird: A scalable open source router based on Bloom filter
CN106302178B (en) Route query method and device
WO2017130824A1 (en) Information processing device, information processing method, and recording medium containing information processing program
WO2016208148A1 (en) Data processing device, data processing method, and computer-readable recording medium
KR101583439B1 (en) Packet classification method and packet classification apparatus using an area-based quad trie with leaf-pushing

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170724

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190115

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200106

R150 Certificate of patent or registration of utility model

Ref document number: 6652070

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150