JP4408052B2 - Packet classifier - Google Patents

Packet classifier Download PDF

Info

Publication number
JP4408052B2
JP4408052B2 JP2004112859A JP2004112859A JP4408052B2 JP 4408052 B2 JP4408052 B2 JP 4408052B2 JP 2004112859 A JP2004112859 A JP 2004112859A JP 2004112859 A JP2004112859 A JP 2004112859A JP 4408052 B2 JP4408052 B2 JP 4408052B2
Authority
JP
Japan
Prior art keywords
candidate
identifier group
value
search
identifier
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.)
Expired - Fee Related
Application number
JP2004112859A
Other languages
Japanese (ja)
Other versions
JP2005303417A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2004112859A priority Critical patent/JP4408052B2/en
Publication of JP2005303417A publication Critical patent/JP2005303417A/en
Application granted granted Critical
Publication of JP4408052B2 publication Critical patent/JP4408052B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、パケット通信技術に関し、特にネットワークを介して受信したパケット中に記載されている情報に応じて各パケットを分類するパケットクラシファイア装置に関する。   The present invention relates to a packet communication technique, and more particularly to a packet classifier device that classifies each packet according to information described in a packet received via a network.

従来、受信したパケットの経路制御を行うネットワーク機器として、L2スイッチ(Layer 2 Switch)やL3スイッチ(Layer 3 Switch)などの中継機器が知られている。これらは、それぞれ、OSI(Open System Interconnection)参照モデルにおけるレイヤ2、レイヤ3の情報に基づいて、受信したパケットの経路制御などを行うものである。
一方、通信の多様化に伴い、例えばレイヤ3のIP(Internet Protocol)、レイヤ4のTCP(Transmission Control Protocol)、UDP(User Datagram Protocol)などの、様々な通信プロトコルに基づいて通信が行われるようになってきた。
Conventionally, relay devices such as an L2 switch (Layer 2 Switch) and an L3 switch (Layer 3 Switch) are known as network devices that perform route control of received packets. These are used to perform path control of received packets based on layer 2 and layer 3 information in an OSI (Open System Interconnection) reference model, respectively.
On the other hand, with diversification of communication, for example, communication is performed based on various communication protocols such as Layer 3 IP (Internet Protocol), Layer 4 TCP (Transmission Control Protocol), UDP (User Datagram Protocol), and the like. It has become.

また、通信品質(QoS:Quality of Serviceともいう)を考慮した中継機器も研究され、これらの中継機器では、パケットの所定のフィールドに記録された情報、例えばIPv4の場合は、ToS(Type of Service)値などの情報に応じてパケットを振り分けて、パケットごとに異なる通信品質で通信が行われる(例えば、特許文献1など参照)。そして、通信品質に応じて多様にパケットを分類しようとする場合、プログラムに基づいてパケットのヘッダ情報などを読み出すパケット分類が行われていた。   In addition, relay devices taking communication quality (QoS: also called Quality of Service) into account are studied, and in these relay devices, information recorded in a predetermined field of a packet, for example, in the case of IPv4, ToS (Type of Service) ) Packets are distributed according to information such as values, and communication is performed with different communication qualities for each packet (see, for example, Patent Document 1). When variously classifying packets according to communication quality, packet classification for reading packet header information and the like based on a program has been performed.

なお、出願人は、本明細書に記載した先行技術文献情報で特定される先行技術文献以外には、本発明に関連する先行技術文献を出願時までに発見するには至らなかった。
特開2003−244225号公報
The applicant has not yet found prior art documents related to the present invention by the time of filing other than the prior art documents specified by the prior art document information described in this specification.
JP 2003-244225 A

しかしながら、このような従来のパケット分類技術では、種々の通信プロトコルの下に生成されたパケットを多様に分類しようとする場合、検索処理に要する時間を短縮する工夫が十分なされていないため、処理時間が長く、消費電力が大きく、高価であるなどの問題があった。
本発明はこのような課題を解決するためのものであり、パケット分類に要する処理時間を短縮できるとともに、消費電力を低減することが可能なパケットクラシファイア装置を提供することを目的としている。
However, in the conventional packet classification technique, when trying to classify packets generated under various communication protocols in various ways, the processing time has not been sufficiently devised to reduce the time required for search processing. However, there are problems such as long power consumption and high price.
An object of the present invention is to provide a packet classifier apparatus capable of reducing the processing time required for packet classification and reducing power consumption.

このような目的を達成するために、本発明にかかるパケットクラシファイア装置は、入力パケット中の所定のフィールドに記録されたデータからなる1つ以上の識別子値に基づいて、入力パケットを分類する情報として分類値を生成するパケットクラシファイア装置において、入力パケットの構文解析を行って、当該入力パケットからパケットデータと当該パケットデータ中の識別子値が含まれる部分を特定する識別子マークとを取得し、これらパケットデータと識別子マークとの組を識別子値として出力するパケット構文解析装置と、パケット構文解析装置から出力された識別子値のうちから、当該識別子マークがパラメータとして設定されている識別子マーク値と一致する識別子値を抽出し、これら識別子値のパケットデータから識別子群値を生成する識別子群値生成部と、識別子群値生成部で生成された識別子群値について任意の検索候補を検索し、その検索結果に応じて入力パケットに対する分類値を出力する検索部を備え、検索部で、識別子値の組み合わせからなる1つ以上の識別子群値のそれぞれに対して、識別子群値の1つ以上の検索候補と検索候補を特定する候補IDとを対応させた検索候補表を保持し、候補IDのうちの所定の候補IDを順次指定して、各識別子群値と一致する検索候補を対応する検索候補表中から検索し、検索して得られた各検索候補に対応する候補IDに応じた分類値を出力するようにしたものである。 In order to achieve such an object, the packet classifier apparatus according to the present invention provides information for classifying an input packet based on one or more identifier values composed of data recorded in a predetermined field in the input packet. In the packet classifier device that generates the classification value, the input packet is parsed to obtain packet data and an identifier mark that identifies a portion including the identifier value in the packet data, and the packet data A packet syntax analysis device that outputs a set of identifier marks as identifier values, and an identifier value that matches the identifier mark value set as a parameter from among the identifier values output from the packet syntax analysis device Extract the identifier from the packet data of these identifier values And identifier group value generation unit for generating a value, and a search unit which searches for any search candidate for the generated identifier group value identifier group value generating unit, and outputs a classification value for the input packets in accordance with the search result A search candidate in which one or more search candidates for the identifier group value and a candidate ID for specifying the search candidate are associated with each of one or more identifier group values composed of combinations of identifier values in the search unit A table is held, a predetermined candidate ID among candidate IDs is sequentially specified, search candidates matching each identifier group value are searched from the corresponding search candidate table, and each search candidate obtained by searching is searched. A classification value corresponding to a corresponding candidate ID is output.

具体的には、検索部で、候補IDに応じたマスクである識別子群マスクを識別子群値に施してマスク識別子群値を生成し、検索候補表で候補IDと候補IDに応じた識別子群マスクを施した識別子群値候補であるマスク識別子群値候補とを対応させて保持し、マスク識別子群値と一致するマスク識別子群値候補を検索候補表から検索し、検索して得られたマスク識別子群値候補に対応する候補IDに応じた分類値を出力するようにしてもよい。   Specifically, the search unit applies an identifier group mask that is a mask corresponding to the candidate ID to the identifier group value to generate a mask identifier group value, and the identifier group mask corresponding to the candidate ID and the candidate ID in the search candidate table The mask identifier group value candidate that is the identifier group value candidate that has been subjected to the search is stored in correspondence with the mask identifier group value candidate that matches the mask identifier group value, and the mask identifier obtained by searching the search candidate table A classification value corresponding to the candidate ID corresponding to the group value candidate may be output.

あるいは、検索部で、識別子群値のハッシュ値を算出し、検索候補表で識別子群値のハッシュ値の候補である識別子群ハッシュ値候補と識別子群ハッシュ値候補を特定する候補IDとを対応させて保持し、識別子群値のハッシュ値と一致する識別子群ハッシュ値候補を検索候補表から検索し、検索して得られた識別子群ハッシュ値候補に対応する候補IDに応じた分類値を出力するようにしてもよい。   Alternatively, the hash value of the identifier group value is calculated by the search unit, and the identifier group hash value candidate that is a candidate for the hash value of the identifier group value in the search candidate table is associated with the candidate ID that identifies the identifier group hash value candidate The identifier group hash value candidate that matches the hash value of the identifier group value is searched from the search candidate table, and the classification value corresponding to the candidate ID corresponding to the identifier group hash value candidate obtained by the search is output. You may do it.

また、検索部で、検索候補表の所定のエントリに識別子群値候補としてデータの範囲を指定する範囲指定情報を保持し、識別子群値がデータの範囲を指定する識別子群値候補と一致した場合、一致した識別子群値候補に対応する候補IDに応じた分類値を出力するようにしてもよい。   In addition, when the search unit holds range specification information for specifying a data range as an identifier group value candidate in a predetermined entry of the search candidate table, and the identifier group value matches an identifier group value candidate for specifying the data range The classification value corresponding to the candidate ID corresponding to the matched identifier group value candidate may be output.

分類値については、検索部で、所定の候補IDに対する分類値として、入力パケットの廃棄の要否、または入力パケットの廃棄の必要性を判断させる廃棄判断の要否を示す情報を示す分類値を生成するようにしてもよい。   For the classification value, the search unit uses a classification value indicating information indicating whether or not to discard the input packet or whether or not to discard the input packet as the classification value for the predetermined candidate ID. You may make it produce | generate.

あるいは、検索部で、所定の候補IDに対する分類値として、入力パケット中の所定のフィールドを除去させる指示の情報、入力パケット中に新たなフィールドを付加し所定のデータを記録させる指示の情報、または入力パケット中の所定のフィールドを除去するとともに新たなフィールドを付加し、除去されるフィールドに記録されたデータを変換して得られるデータを新たに付加されるフィールドに記録させる指示の情報を示す分類値を生成するようにしてもよい。   Alternatively, in the search unit, as a classification value for a predetermined candidate ID, information on an instruction to remove a predetermined field in the input packet, information on an instruction to add a new field in the input packet and record predetermined data, or Classification indicating information of instructions for removing a predetermined field from an input packet, adding a new field, and recording data obtained by converting data recorded in the field to be removed in the newly added field A value may be generated.

また、検索部で、候補IDとして、検索候補表中の所定のエントリの候補IDのみを対象として指定するようにしてもよい。   Further, the search unit may designate only candidate IDs of predetermined entries in the search candidate table as candidate IDs.

また、検索部で、分類値を入力パケットに付加して出力するようにしてもよい。   Further, the search unit may output the classification value added to the input packet.

また、本発明にかかる他のパケットクラシファイア装置は、入力パケット中の所定のフィールドに記録された1つ以上のデータである識別子値に基づいて、入力パケットを分類する情報である分類値を生成するパケットクラシファイア装置において、識別子値の組み合わせからなる1つ以上の識別子群値のうち、第1の識別子群値のそれぞれに対して、第1の識別子群値の1つ以上の識別子群値候補と識別子群値候補を特定する候補IDとを対応させた一次検索候補表を保持し、各第1の識別子群値と一致する識別子群値候補を対応する一次検索候補表中から検索し、検出した識別子群値候補に対応する候補IDに応じた識別子群IDを生成する一次検索部と、一次検索部で生成された識別子群IDのそれぞれに対して、識別子群IDの1つ以上の検索候補と検索候補を特定する候補IDとを対応させた第1の二次検索候補表を保持し、各識別子群IDと一致する検索候補を対応する第1の二次検索候補表中から検索するとともに、識別子群値のうち、第1の識別子群値とは異なる第2の識別子群値のそれぞれに対して、第2の識別子群値の1つ以上の検索候補と検索候補を特定する候補IDとを対応させた第2の二次検索候補表を保持し、各第2の識別子群値と一致する検索候補を対応する第2の二次検索候補表中から検索し、検索された各検索候補に対応する候補IDに応じた分類値を生成して出力する二次検索部とを備えるものである。 Further, another packet classifier apparatus according to the present invention generates a classification value that is information for classifying an input packet based on an identifier value that is one or more data recorded in a predetermined field in the input packet. in the packet classifier device, the one or more identifiers group values consisting of the identifier value, for each of the first identifier group values, one or more identifiers group value candidate and the identifier of the first identifier group value A primary search candidate table in which candidate IDs for specifying group value candidates are associated with each other, an identifier group value candidate that matches each first identifier group value is searched from the corresponding primary search candidate table, and the detected identifier a primary search unit for generating an identifier group ID corresponding to the candidate ID corresponding to the group value candidates for each of the identifier group ID generated by the primary search unit, one of the identifier group ID First secondary search retains the candidate table, the first secondary search candidate table in the corresponding search candidate to match each identifier group ID that the candidate ID identifying the search candidate search suggestions above are associated And at least one search candidate and a search candidate for the second identifier group value are identified for each of the second identifier group values different from the first identifier group value among the identifier group values. A second secondary search candidate table corresponding to each candidate ID to be searched, and search candidates that match each second identifier group value are searched and searched from the corresponding second secondary search candidate table. And a secondary search unit that generates and outputs a classification value corresponding to the candidate ID corresponding to each search candidate.

また、本発明にかかる他のパケットクラシファイア装置は、入力パケット中の所定のフィールドに記録された1つ以上のデータである識別子値に基づいて、入力パケットを分類する情報である分類値を生成するパケットクラシファイア装置において、識別子値の組み合わせからなる1つ以上の識別子群値のうち、第1の識別子群値のそれぞれに対して、第1の識別子群値の1つ以上の識別子群値候補と識別子群値候補を特定する候補IDとを対応させた一次検索候補表を保持し、各第1の識別子群値と一致する識別子群値候補を対応する一次検索候補表中から検索し、検出した識別子群値候補に対応する候補IDに応じた識別子群IDを生成する一次検索部と、一次検索部で生成された各識別子群IDから1つ以上の所定の識別子群IDを選択して1つ以上の選択識別子群IDを生成し、各識別子群IDのそれぞれに対して、選択識別子群IDの1つ以上の検索候補と検索候補を特定する候補IDとを対応させた第1の二次検索候補表を保持し、各選択識別子群IDと一致する検索候補を対応する第1の二次検索候補表中から検索し、検索された各検索候補に対応する候補IDに応じた分類値を生成して出力する1つ以上の二次検索部とを備えるものである。 Further, another packet classifier apparatus according to the present invention generates a classification value that is information for classifying an input packet based on an identifier value that is one or more data recorded in a predetermined field in the input packet. in the packet classifier device, the one or more identifiers group values consisting of the identifier value, for each of the first identifier group values, one or more identifiers group value candidate and the identifier of the first identifier group value A primary search candidate table in which candidate IDs for specifying group value candidates are associated with each other, an identifier group value candidate that matches each first identifier group value is searched from the corresponding primary search candidate table, and the detected identifier a primary search unit for generating an identifier group ID corresponding to the candidate ID corresponding to the group value candidates, select one or more predetermined identifier group ID from the identifier group ID generated by the primary search unit Relative to generate one or more selected identifier group ID, each of the identifier group ID, first that associates the candidate ID identifying one or more search suggestions and search the selected candidate identifier group ID The secondary search candidate table is stored, a search candidate that matches each selected identifier group ID is searched from the corresponding first secondary search candidate table, and the search is performed according to the candidate ID corresponding to each searched search candidate. And one or more secondary search units that generate and output classification values.

より具体的には、一次検索部のいずれかで、候補IDに応じたマスクである識別子群マスクを第1の識別子群値に施してマスク識別子群値を生成し、一次検索候補表で候補IDと候補IDに応じた識別子群マスクを施した識別子群値候補であるマスク識別子群値候補とを対応させて保持し、マスク識別子群値と一致するマスク識別子群値候補を一次検索候補表から検索し、検索して得られたマスク識別子群値候補と対応する候補IDに応じた識別子群IDを生成するようにしてもよい。 More specifically, in either the primary search unit, and it generates a mask identifier group value by performing identifier group mask is a mask corresponding to the candidate ID to the first identifier group values, candidate ID in the primary search candidate table And a mask identifier group value candidate, which is an identifier group value candidate subjected to an identifier group mask corresponding to the candidate ID, is stored in association with each other, and a mask identifier group value candidate matching the mask identifier group value is searched from the primary search candidate table Then, an identifier group ID corresponding to the candidate ID corresponding to the mask identifier group value candidate obtained by the search may be generated.

あるいは、一次検索部のいずれかで、第1の識別子群値のハッシュ値を算出し、一次検索候補表で第1の識別子群値のハッシュ値の候補である識別子群ハッシュ値候補と識別子群ハッシュ値候補を特定する候補IDとを対応させて保持し、第1の識別子群値のハッシュ値と一致する識別子群ハッシュ値候補を一次検索候補表から検索し、検索して得られた識別子群ハッシュ値候補と対応する候補IDに応じた識別子群IDを生成するようにしてもよい。 Alternatively, the hash value of the first identifier group value is calculated by any one of the primary search units, and the identifier group hash value candidate and the identifier group hash that are candidates for the hash value of the first identifier group value in the primary search candidate table An identifier group hash obtained by searching and searching for an identifier group hash value candidate matching the hash value of the first identifier group value in correspondence with a candidate ID for specifying a value candidate An identifier group ID corresponding to a candidate ID corresponding to a value candidate may be generated.

また、一次検索部のいずれかで、一次検索候補表の所定のエントリに識別子群値候補としてデータの範囲を指定する範囲指定情報を保持し、第1の識別子群値がデータの範囲を指定する識別子群値候補と一致した場合、一致した識別子群値候補に対応する候補IDに応じた識別子群IDを生成するようにしてもよい。 Further, in any one of the primary search units, range designation information for designating a data range as an identifier group value candidate is held in a predetermined entry of the primary search candidate table, and the first identifier group value designates the data range. When the identifier group value candidate matches, an identifier group ID corresponding to the candidate ID corresponding to the matched identifier group value candidate may be generated.

分類値としては、二次検索部で、所定の候補IDに対する分類値として、入力パケットの廃棄の要否、または入力パケットの廃棄の必要性を判断させる廃棄判断の要否を示す情報を示す分類値を生成するようにしてもよい。   As the classification value, a classification indicating information indicating whether or not to discard the input packet or whether or not to discard the input packet is determined as a classification value for the predetermined candidate ID in the secondary search unit. A value may be generated.

また、二次検索部で、所定の候補IDに対する分類値として、入力パケット中の所定のフィールドを除去させる指示の情報、入力パケット中に新たなフィールドを付加し所定のデータを記録させる指示の情報、または入力パケット中の所定のフィールドを除去するとともに新たなフィールドを付加し、除去されるフィールドに記録されたデータを変換して得られるデータを新たに付加されるフィールドに記録させる指示の情報を示す分類値を生成するようにしてもよい。   In addition, as a classification value for a predetermined candidate ID, information on an instruction to remove a predetermined field in the input packet and information on an instruction to add a new field to the input packet and record predetermined data in the secondary search unit Or a command to remove a predetermined field in the input packet, add a new field, and record data obtained by converting the data recorded in the field to be removed into the newly added field. A classification value may be generated.

また、一次検索部で、候補IDとして、一次検索候補表中の所定のエントリの候補IDのみを対象として指定し、二次検索部で、候補IDとして、第1の二次検索候補表中の所定のエントリの候補IDのみを対象として指定するようにしてもよい。 Further, the primary search unit, as a candidate ID, designated as a target only candidate ID of a given entry in the primary search candidate table, the secondary search unit, as a candidate ID, first in the secondary search candidate table Only a candidate ID of a predetermined entry may be designated as a target.

また、二次検索部で、分類値を入力パケットに付加して出力するようにしてもよい。   In addition, the secondary search unit may add the classification value to the input packet and output it.

本発明によれば、入力パケット中の予め特定された識別子値の組み合わせからなる識別子群値と一致する検索候補が、候補IDを順次指定することにより検索候補表中から検索されて、その検索候補に対応する候補IDに応じた分類値が出力されるため、従来のようにプログラムを用いた場合と比較して、パケットを分類するのに要する処理時間を短縮できるとともに、消費電力を低減できるという効果を有するパケットクラシファイア装置を提供することができるものである。   According to the present invention, a search candidate that matches an identifier group value consisting of a combination of identifier values specified in advance in an input packet is searched from the search candidate table by sequentially specifying candidate IDs, and the search candidate Since the classification value corresponding to the candidate ID corresponding to is output, the processing time required to classify the packet can be shortened and the power consumption can be reduced as compared with the case where the program is used as in the past. It is possible to provide a packet classifier device having an effect.

次に、本発明の実施の形態について図面を参照して説明する。
[第1の実施の形態]
まず、図1を参照して、本発明の第1の実施の形態にかかるパケットクラシファイア装置について説明する。図1は本発明の第1の実施の形態にかかるパケットクラシファイア装置の構成を示すブロック図である。
このパケットクラシファイア装置100は、入力パケット中の所定のフィールドに記録されたデータに基づいて、入力パケットを分類する装置であり、識別子群生成部110、および検索部120が設けられている。
Next, embodiments of the present invention will be described with reference to the drawings.
[First Embodiment]
First, a packet classifier apparatus according to a first embodiment of the present invention will be described with reference to FIG. FIG. 1 is a block diagram showing a configuration of a packet classifier apparatus according to a first embodiment of the present invention.
The packet classifier device 100 is a device that classifies an input packet based on data recorded in a predetermined field in the input packet, and includes an identifier group generation unit 110 and a search unit 120.

識別子群生成部110は、当該パケットクラシファイア装置100の前段に設けられたパケット構文解析装置10から出力された制御信号に含まれる識別子値[m](mは1〜Mの整数、Mは自然数)を、複数の識別子群に分けて識別子群値[n](nは1〜Nの整数、Nは自然数)として出力する回路部である。
検索部120は、識別子群生成部110から出力された識別子群値[n]を対象に一致検索を行い、検索結果に応じた分類値を出力する回路部である。
The identifier group generation unit 110 includes an identifier value [m] (m is an integer from 1 to M, and M is a natural number) included in the control signal output from the packet syntax analysis apparatus 10 provided in the preceding stage of the packet classifier apparatus 100. Are divided into a plurality of identifier groups and output as identifier group values [n] (n is an integer of 1 to N, N is a natural number).
The search unit 120 is a circuit unit that performs a match search on the identifier group value [n] output from the identifier group generation unit 110 and outputs a classification value corresponding to the search result.

ここで、パケット構文解析装置10は、入力されたパケットデータを構成するパケットの構文解析を行い、例えば送信元アドレス、宛先アドレス、TCP(Transmission Control Protocol)ポート番号、次ヘッダIDなどを特定する識別子値[m]を、パケット中の対応する情報とタイミングを合わせて生成し、出力するものとする。   Here, the packet syntax analysis apparatus 10 performs syntax analysis of the packets constituting the input packet data, and identifies, for example, a transmission source address, a destination address, a TCP (Transmission Control Protocol) port number, a next header ID, and the like. It is assumed that the value [m] is generated and matched with the corresponding information in the packet and output.

また、パケット構文解析装置10は、パケット構文解析が終了したことを示すフラグ(以下、パケット構文解析終了フラグという)をも出力するものとする。
パケット構文解析終了フラグは、例えば1ビットの信号からなり、パケット構文解析終了フラグが「1」のときパケット構文解析の終了を示し、「0」のときは終了していないことを示すものとする。
The packet syntax analysis apparatus 10 also outputs a flag indicating that the packet syntax analysis has ended (hereinafter referred to as a packet syntax analysis end flag).
The packet parsing end flag is composed of, for example, a 1-bit signal. When the packet parsing end flag is “1”, it indicates the end of packet parsing, and when it is “0”, it indicates that the packet parsing end is not ended. .

識別子群生成部110には、各識別子値[m]およびパケット構文解析終了フラグが入力され、パケット構文解析終了フラグが「1」になったことを検出して、識別子群値を生成する処理を開始する。
入力される各識別子値[m]は、パケットデータと、パケットデータ中の識別子値が含まれる部分を特定する識別子マークとして、識別子群生成部110に入力されるようにしてもよく、以下では、各識別子値[m]がパケットデータと1つ以上の識別子マークとによって構成されるものとする。
Each identifier value [m] and the packet syntax analysis end flag are input to the identifier group generation unit 110, and processing for generating an identifier group value by detecting that the packet syntax analysis end flag is “1” is performed. Start.
Each identifier value [m] that is input may be input to the identifier group generation unit 110 as an identifier mark that identifies packet data and a portion that includes the identifier value in the packet data. Assume that each identifier value [m] is composed of packet data and one or more identifier marks.

[識別子群生成部]
次に、図2を参照して、識別子群生成部110について説明する。図2は、識別子群生成部110の具体的構成例を示すブロック図である。
この識別子群生成部110には、第nの識別子抽出部111n(nは1〜Nの整数)、第nのパラメータレジスタ112n、および遅延回路113,114が設けられている。
第nの識別子抽出部111nは、パケット構文解析装置10からパケットデータと識別子マークとして各識別子値[m](mは1〜Mの整数)が入力され、上記の識別子群値[n]を生成する回路部である。
[Identifier group generator]
Next, the identifier group generation unit 110 will be described with reference to FIG. FIG. 2 is a block diagram illustrating a specific configuration example of the identifier group generation unit 110.
The identifier group generation unit 110 includes an nth identifier extraction unit 111 n (n is an integer from 1 to N), an nth parameter register 112 n , and delay circuits 113 and 114.
The n-th identifier extraction unit 111 n receives each identifier value [m] (m is an integer from 1 to M) as packet data and an identifier mark from the packet syntax analysis apparatus 10, and uses the identifier group value [n] described above. A circuit unit to be generated.

第nのパラメータレジスタ112nは、識別子抽出部111nの動作を指定する1つ以上のパラメータ(以下、パラメータ群という)を記憶し、記憶したパラメータ群を識別子抽出部111nに出力する回路部である。
遅延回路113,114は、最終の識別子群値の生成処理が終了したタイミングとなるように、入力されたパケット構文解析終了フラグを遅延させる回路部である。
Parameter register 112 n of the n-th one or more parameters that specify the behavior of the identifier extracting unit 111 n (hereinafter, referred to as parameter group) stores, circuitry for outputting the stored group of parameters identifier extracting unit 111 n It is.
The delay circuits 113 and 114 are circuit units that delay the input packet parsing end flag so that the final identifier group value generation processing is finished.

パケットデータおよび識別子マークは、例えば32ビットずつパラレルに、識別子群生成部110に入力してもよい。
各パラメータレジスタ112nには、上記のパケットデータおよび識別子マークに加え、リセット、クロック、およびパケット構文解析終了フラグの信号も入力される。ここで、リセットおよびクロックの信号は、外部から入力され、パケットの先頭のタイミングでリセットするように入力されるものとする。
The packet data and the identifier mark may be input to the identifier group generation unit 110 in parallel, for example, 32 bits each.
In addition to the packet data and the identifier mark, each parameter register 112 n also receives a reset, a clock, and a packet syntax analysis end flag signal. Here, it is assumed that the reset and clock signals are input from the outside so as to be reset at the leading timing of the packet.

各パラメータレジスタ112nは、上記の各識別子マークの比較対象の識別子マーク値[k](kは1〜Kの整数,Kは自然数)、識別子群長[n]などの、各識別子抽出部111nの動作を指定するパラメータ群を記憶する。ここで、「K」を例えば4とし、識別子マーク値[k]を例えば1バイトのデータとし、識別子群値[n]を例えば4バイト(1ワード)のデータとしてもよい。
このとき、識別子群長[n]を、例えばバイト単位で表し、3ビットのデータとしてもよい。具体的には、識別子群長[n]が「001」のとき、識別子群値のデータ長が1バイト(8ビット)としてもよい。ここで、各パラメータレジスタ112nが記憶するパラメータ群は、外部のCPUなどからの信号に応じて任意に設定できるようにしてもよい。
Each parameter register 112 n stores each identifier extraction unit 111 such as an identifier mark value [k] (k is an integer from 1 to K, K is a natural number), an identifier group length [n], and the like. The parameter group that specifies the operation of n is stored. Here, “K” may be, for example, 4, the identifier mark value [k] may be, for example, 1-byte data, and the identifier group value [n] may be, for example, 4-byte (1 word) data.
At this time, the identifier group length [n] may be expressed in units of bytes, for example, and may be 3-bit data. Specifically, when the identifier group length [n] is “001”, the data length of the identifier group value may be 1 byte (8 bits). Here, the parameter group stored in each parameter register 112 n may be arbitrarily set according to a signal from an external CPU or the like.

遅延回路113,114には、パケット構文解析終了フラグに加え、クロックの信号が入力される。遅延回路113,114は、本実施例では、入力されたパケット構文解析終了フラグを2クロック分、遅延させるようになっている。
パケット構文解析装置10からパケット構文解析終了フラグが入力されない場合、パケット構文解析終了フラグは、例えば以下の方法で設定できる。第1の方法は、パケット構文解析装置10から出力される識別子マークのうち、最終の次ヘッダ位置を示すフラグが検出されたとき、このフラグを用いるものである。第2の方法は、指定した識別子マーク値を検出し、識別子マーク値で特定されるパケットデータが予め指定された値であることを検出したタイミングにフラグを立てるものである。
In addition to the packet syntax analysis end flag, a clock signal is input to the delay circuits 113 and 114. In the present embodiment, the delay circuits 113 and 114 delay the input packet syntax analysis end flag by two clocks.
When the packet syntax analysis end flag is not input from the packet syntax analysis apparatus 10, the packet syntax analysis end flag can be set by the following method, for example. The first method uses this flag when a flag indicating the final next header position is detected among the identifier marks output from the packet syntax analysis apparatus 10. The second method is to detect a designated identifier mark value and set a flag at the timing when it is detected that the packet data specified by the identifier mark value is a value designated in advance.

[識別子抽出部の動作]
次に、図3〜図5を参照して、各識別子抽出部111nの動作について説明する。図3〜図5は、各識別子抽出部111nの動作をVHDL(VHSIC(Very High Speed Integrated Circuit)−Hardware Description Language)的に記載した説明図である。以下では、4種類(Kが4となる)の識別子マーク値と、32ビットの識別子マークが、パラレルで各識別子抽出部111n(nは1〜Nの整数)に入力されるものとする。
[Operation of identifier extractor]
Next, the operation of each identifier extraction unit 111 n will be described with reference to FIGS. 3 to 5 are explanatory diagrams describing the operation of each identifier extracting unit 111 n in VHDL (VHSIC (Very High Speed Integrated Circuit) -Hardware Description Language). In the following, it is assumed that four types of identifier mark values (K becomes 4) and 32-bit identifier marks are input in parallel to each identifier extraction unit 111 n (n is an integer from 1 to N).

まず、識別子マークのうちの第1ビット目から第8ビット目の値が、識別子マーク値[1]、識別子マーク値[2]、識別子マーク値[3]、または識別子マーク値[4]のうちのいずれか1つ以上と等しいという条件が満たされているか否かを判断する(S311)。以下、この条件をS311条件という。
ステップS311でS311条件が満たされていると判断したとき、「検出a」として「1」を代入し(S312)、後述の「格納位置カウンタ値」に「1」を加算して「格納位置a」に代入する(S313)。ステップS311でS311条件が満たされないと判断したときは、「検出a」として「0」を代入し(S314)、後述の「格納位置カウンタ値」を「格納位置a」に代入する(S315)。
First, the values of the first to eighth bits of the identifier mark are the identifier mark value [1], the identifier mark value [2], the identifier mark value [3], or the identifier mark value [4]. It is determined whether or not a condition that is equal to one or more of the above is satisfied (S311). Hereinafter, this condition is referred to as S311 condition.
When it is determined in step S311 that the S311 condition is satisfied, “1” is substituted as “detection a” (S312), and “1” is added to “storage position counter value” which will be described later. (S313). When it is determined in step S311 that the S311 condition is not satisfied, “0” is substituted for “detection a” (S314), and “storage position counter value” described later is substituted for “storage position a” (S315).

次に、識別子マークのうちの第9ビット目から第16ビット目の値が、識別子マーク値[1]、識別子マーク値[2]、識別子マーク値[3]、または識別子マーク値[4]のうちのいずれか1つ以上と等しいという条件が満たされているか否かを判断する(S321)。以下、この条件をS321条件という。
ステップS321でS321条件が満たされていると判断したとき、「検出b」として「1」を代入し(S322)、ステップS313またはS315で設定した「格納位置a」に「1」を加算して「格納位置b」に代入する(S323)。ステップS321でS321条件が満たされないと判断したときは、「検出b」として「0」を代入し(S324)、「格納位置a」を「格納位置b」に代入する(S325)。
Next, the values of the 9th to 16th bits of the identifier mark are the identifier mark value [1], the identifier mark value [2], the identifier mark value [3], or the identifier mark value [4]. It is determined whether or not the condition of being equal to one or more of the above is satisfied (S321). Hereinafter, this condition is referred to as S321 condition.
When it is determined in step S321 that the S321 condition is satisfied, “1” is substituted as “detection b” (S322), and “1” is added to “storage position a” set in step S313 or S315. Substituted in “storage position b” (S323). If it is determined in step S321 that the S321 condition is not satisfied, “0” is substituted for “detection b” (S324), and “storage position a” is substituted for “storage position b” (S325).

同様に、識別子マークのうちの第17ビット目から第24ビット目の値が、識別子マーク値[1]、識別子マーク値[2]、識別子マーク値[3]、または識別子マーク値[4]のうちのいずれか1つ以上と等しいという条件が満たされているか否かを判断する(S331)。以下、この条件をS331条件という。
ステップS331でS331条件が満たされていると判断したとき、「検出c」として「1」を代入し(S332)、ステップS323またはS325で設定した「格納位置b」に「1」を加算して「格納位置c」に代入する(S333)。ステップS331でS331条件が満たされないと判断したときは、「検出c」として「0」を代入し(S334)、「格納位置b」を「格納位置c」に代入する(S335)。
Similarly, the values of the 17th to 24th bits of the identifier mark are the identifier mark value [1], the identifier mark value [2], the identifier mark value [3], or the identifier mark value [4]. It is determined whether or not the condition of being equal to one or more of these is satisfied (S331). Hereinafter, this condition is referred to as S331 condition.
When it is determined in step S331 that the S331 condition is satisfied, “1” is substituted as “detection c” (S332), and “1” is added to “storage position b” set in step S323 or S325. Substituted in “storage position c” (S333). If it is determined in step S331 that the S331 condition is not satisfied, “0” is substituted for “detection c” (S334), and “storage position b” is substituted for “storage position c” (S335).

同様に、識別子マークのうちの第25ビット目から第32ビット目の値が、識別子マーク値[1]、識別子マーク値[2]、識別子マーク値[3]、または識別子マーク値[4]のうちのいずれか1つ以上と等しいという条件が満たされているか否かを判断する(S341)。以下、この条件をS341条件という。
ステップS341でS341条件が満たされていると判断したとき、「検出d」として「1」を代入し(S342)、ステップS333またはS335で設定した「格納位置c」に「1」を加算して「格納位置d」に代入する(S343)。ステップS341でS341条件が満たされないと判断したときは、「検出d」として「0」を代入し(S344)、「格納位置c」を「格納位置d」に代入する(S345)。
Similarly, the values of the 25th to 32nd bits of the identifier mark are the identifier mark value [1], the identifier mark value [2], the identifier mark value [3], or the identifier mark value [4]. It is determined whether or not the condition of being equal to one or more of these is satisfied (S341). Hereinafter, this condition is referred to as S341 condition.
When it is determined in step S341 that the S341 condition is satisfied, “1” is substituted as “detection d” (S342), and “1” is added to “storage position c” set in step S333 or S335. Substituted in “storage position d” (S343). If it is determined in step S341 that the S341 condition is not satisfied, “0” is substituted for “detection d” (S344), and “storage position c” is substituted for “storage position d” (S345).

以上の処理によって、識別子マークの検出ごとにフラグ(「検出a」〜「検出d」)が立てられ、これらのフラグの位置の情報が、格納位置カウンタの初期値の次から順番に、カウントされ「格納位置a」〜「格納位置d」として生成される。
次に、ステップS351〜S356までの処理は、格納位置カウンタ値を更新する格納位置カウンタ値更新動作の処理である。まず、クロックが入力されたら、以下の各ステップでの処理を開始する(S351)。次に、クロックが立ち上がりのタイミングを検出する(S352)。次に、リセット信号が「1」であるという条件が成立するか否かを判断し(S353)、「1」であると判断したときは、格納位置カウンタ値として「0」を代入する(S354)。これにより、格納位置カウンタ値を初期化する。
With the above processing, a flag (“detection a” to “detection d”) is set for each detection of the identifier mark, and information on the position of these flags is counted sequentially from the next of the initial value of the storage position counter. It is generated as “storage position a” to “storage position d”.
Next, the process from step S351 to S356 is a storage position counter value update operation for updating the storage position counter value. First, when a clock is input, processing in the following steps is started (S351). Next, the rising timing of the clock is detected (S352). Next, it is determined whether or not the condition that the reset signal is “1” is satisfied (S353). When it is determined that the condition is “1”, “0” is substituted as the storage position counter value (S354). ). As a result, the storage position counter value is initialized.

ステップS353でリセット信号が「1」でないと判断したときは、格納位置カウンタ値として「格納位置d」を代入する(S355)。これにより、リセット信号が入力された後のクロックからの、格納位置カウンタ値の更新が行われる。ステップS355での処理が完了したら格納位置カウンタ値初期化動作の処理は終了する(S356)。   If it is determined in step S353 that the reset signal is not “1”, “storage position d” is substituted as the storage position counter value (S355). Thereby, the storage position counter value is updated from the clock after the reset signal is input. When the process in step S355 is completed, the storage position counter value initialization operation process ends (S356).

次に、ステップS361〜S373までの処理は、パケットデータから読み取った識別子の値をレジスタに格納する識別子読取動作の処理である。まず、クロックが入力されたら、以下の各ステップでの処理を開始する(S361)。次に、クロックが立ち上がりのタイミングを検出する(S362)。次に、リセット信号が「1」であるという条件が成立するか否かを判断し(S363)、「1」であると判断したときは、識別子群レジスタ値[1]〜識別子群レジスタ値[N]として「0」を代入する(S3641〜S364N)。これにより、識別子群レジスタ値が初期化される。ここで、Nは識別子群の総個数である。   Next, the process from step S361 to S373 is an identifier reading operation process in which the value of the identifier read from the packet data is stored in a register. First, when a clock is input, processing in the following steps is started (S361). Next, the rising timing of the clock is detected (S362). Next, it is determined whether or not the condition that the reset signal is “1” is satisfied (S363). If it is determined that the reset signal is “1”, the identifier group register value [1] to the identifier group register value [ N] is substituted with “0” (S3641-S364N). As a result, the identifier group register value is initialized. Here, N is the total number of identifier groups.

ステップS363でリセット信号が「1」でないと判断したときは、「検出a」のフラグが「1」であるか否かを判断し(S365)、「1」であると判断したときは、パケットデータの、例えば1ビット目から8ビット目までのデータを読み出し、識別子群レジスタ値[格納位置a]に代入する(S366)。ステップS365で「検出a」のフラグがでないと判断したときは、「検出b」のフラグが「1」であるか否かを判断し(S367)、「1」であると判断したときは、パケットデータの、例えば9ビット目から16ビット目までのデータを読み出し、識別子群レジスタ値[格納位置b]に代入する(S368)。   If it is determined in step S363 that the reset signal is not “1”, it is determined whether or not the flag of “detection a” is “1” (S365), and if it is determined that it is “1”, the packet For example, data from the 1st bit to the 8th bit of the data is read and assigned to the identifier group register value [storage position a] (S366). When it is determined in step S365 that the “detection a” flag is not, it is determined whether or not the “detection b” flag is “1” (S367), and when it is determined that it is “1”, For example, data from the 9th bit to the 16th bit of the packet data is read and substituted into the identifier group register value [storage position b] (S368).

同様に、ステップS367で「検出b」のフラグが「1」でないと判断したときは、「検出c」のフラグが「1」であるか否かを判断し(S369)、「1」であると判断したときは、パケットデータの、例えば17ビット目から24ビット目までのデータを読み出し、識別子群レジスタ値[格納位置c]に代入する(S370)。次に、ステップS369で「検出c」のフラグが「1」でないと判断したときは、「検出d」のフラグが「1」であるか否かを判断し(S371)、「1」であると判断したときは、パケットデータの、例えば25ビット目から32ビット目までのデータを読み出し、識別子群レジスタ値[格納位置d]に代入する(S372)。これにより、リセット信号が入力された後のクロックからの、識別子の読み取りが行われる。ステップS372での処理が完了したら識別子読取動作の処理は終了する(S373)。   Similarly, when it is determined in step S367 that the “detection b” flag is not “1”, it is determined whether or not the “detection c” flag is “1” (S369). If it is determined that the packet data, for example, the data from the 17th bit to the 24th bit of the packet data is read and substituted into the identifier group register value [storage position c] (S370). Next, when it is determined in step S369 that the “detection c” flag is not “1”, it is determined whether the “detection d” flag is “1” (S371) and is “1”. When it is determined that the packet data, for example, data from the 25th bit to the 32nd bit is read and substituted into the identifier group register value [storage position d] (S372). Thus, the identifier is read from the clock after the reset signal is input. When the process in step S372 is completed, the identifier reading operation process ends (S373).

次に、ステップS381〜S387までの処理は、識別子群レジスタ値を識別子群値に代入する識別子群値代入動作の処理である。まず、クロックが入力されたら、以下の各ステップでの処理を開始する(S381)。次に、クロックが立ち上がりのタイミングを検出する(S382)。次に、リセット信号が「1」であるという条件が成立するか否かを判断し(S383)、「1」であると判断したときは、識別子群値[1]〜識別子群値[N]として「0」を代入する(S3841〜S384N)。これにより、識別子群値が初期化される。   Next, the process from step S381 to S387 is an identifier group value assigning operation for assigning an identifier group register value to an identifier group value. First, when a clock is input, processing in the following steps is started (S381). Next, the rising timing of the clock is detected (S382). Next, it is determined whether or not the condition that the reset signal is “1” is satisfied (S383). When it is determined that the reset signal is “1”, the identifier group value [1] to the identifier group value [N] are determined. "0" is substituted as (S3841 to S384N). Thereby, the identifier group value is initialized.

ステップS383でリセット信号が「1」でないと判断したときは、「パケット構文解析終了フラグ」が「1」であるか否かを判断し(S385)、「1」であると判断したときは、識別子群レジスタ値[n]を識別子群値[n]に代入する(S3861〜S386N)。これにより、リセット信号が入力された後のクロックからの、識別子群値への代入が行われる。ステップS386Nでの処理が完了したら識別子群値代入動作の処理は終了する(S387)。   When it is determined in step S383 that the reset signal is not “1”, it is determined whether or not the “packet syntax analysis end flag” is “1” (S385), and when it is determined that it is “1”, The identifier group register value [n] is substituted into the identifier group value [n] (S3861 to S386N). Thereby, substitution to the identifier group value is performed from the clock after the reset signal is input. When the processing in step S386N is completed, the processing for the identifier group value substitution operation ends (S387).

[検索部]
次に、図1を参照して、検索部120について説明する。検索部120は、各識別子値を組み合わせた1つ以上の識別子群値のそれぞれに対して、識別子群値の1つ以上の検索候補と検索候補を特定する候補IDとを対応させた検索候補表を保持し、候補IDのうちの所定の候補IDを順次指定して各識別子群値と一致する検索候補を対応する検索候補表中から検索し、検索して得られた各検索候補に対応する候補IDに応じた分類値を、入力パケットに別途付加して、または入力パケットとは別個に出力するようになっている。
[Search section]
Next, the search unit 120 will be described with reference to FIG. The search unit 120 has a search candidate table in which one or more search candidates for identifier group values and candidate IDs for specifying search candidates are associated with each of one or more identifier group values obtained by combining the identifier values. Corresponding to each search candidate obtained by searching the search candidate table corresponding to each identifier group value by sequentially designating predetermined candidate IDs among the candidate IDs, and searching the corresponding search candidate table A classification value corresponding to the candidate ID is added to the input packet separately or output separately from the input packet.

具体的構成として、検索部120には、識別子群検索器1211〜121N、候補ID生成器122、AND回路123、一致候補ID記憶器124、および分類値生成器125が設けられている。
識別子群検索器1211〜121Nは、識別子群生成部110から出力された各識別子群値[n](nは1〜Nの整数)が入力され、所定の検索を行い、検索で一致するデータがあったか否かを示す一致フラグ[n]を出力する1つ以上の回路部である。
候補ID生成器122は、各識別子群検索器1211〜121Nに検索対象の候補を特定する候補IDを出力する回路部である。
As a specific configuration, the search unit 120 includes identifier group searchers 121 1 to 121 N , a candidate ID generator 122, an AND circuit 123, a match candidate ID storage 124, and a classification value generator 125.
The identifier group searchers 121 1 to 121 N receive the identifier group values [n] (n is an integer from 1 to N) output from the identifier group generation unit 110, perform a predetermined search, and match in the search. One or more circuit units that output a match flag [n] indicating whether or not there is data.
The candidate ID generator 122 is a circuit unit that outputs candidate IDs for specifying candidates for search to the identifier group searchers 121 1 to 121 N.

AND回路123は、各識別子群検索器1211〜121Nから出力された一致フラグ[n]がすべて一致することを示す「1」の値の信号であるとき「1」になり、その他のときは「0」の値をとる全一致フラグを出力する回路部である。
一致候補ID記憶器124は、識別子群生成終了フラグ、全一致フラグおよび候補IDが入力され、全一致フラグが「1」のときの候補IDを記憶し、一致候補IDおよび検索終了フラグを出力する回路部である。
分類値生成器125は、一致候補IDおよび検索終了フラグが入力され、分類値を生成する回路部である。
The AND circuit 123 is “1” when the match flag [n] output from each of the identifier group searchers 121 1 to 121 N is a match, and becomes “1”. Is a circuit unit that outputs an all-match flag having a value of “0”.
The match candidate ID storage unit 124 receives the identifier group generation end flag, the all match flag, and the candidate ID, stores the candidate ID when the all match flag is “1”, and outputs the match candidate ID and the search end flag. It is a circuit part.
The classification value generator 125 is a circuit unit that receives a match candidate ID and a search end flag and generates a classification value.

第nの識別子群検索器121nには、識別子群生成部110から出力された各識別子群値[n]と、候補ID生成器122から出力された候補IDとが入力される。ここで、識別子群検索器121nには、予めK個の識別子群候補[n、k](kは1〜Kの整数)が検索候補表として格納されているものとする。
ここで、kは候補IDによって指定され、Kは識別子群検索器121nごとに異なるものでもよい。また、識別子群検索器121nが記憶する識別子群候補[n、k]は、外部から設定できるようにしてもよい。
Each identifier group value [n] output from the identifier group generation unit 110 and the candidate ID output from the candidate ID generator 122 are input to the nth identifier group searcher 121 n . Here, it is assumed that K identifier group candidates [n, k] (k is an integer from 1 to K) are stored in advance as a search candidate table in the identifier group searcher 121 n .
Here, k may be specified by a candidate ID, and K may be different for each identifier group searcher 121 n . The identifier group candidate [n, k] stored in the identifier group searcher 121 n may be set from the outside.

第nの識別子群検索器121nは、候補ID生成器122から出力された候補IDで特定される識別子群候補[n、k]と識別子群値[n]との一致判定を候補IDの順番で行い、一致したときに一致フラグ[n]をAND回路123に出力する。
他の各識別子群検索器についても、第nの識別子群検索器121nと同様の信号が入力されて同様の処理がなされ、同様の信号が出力される。ただし、識別子群候補は、識別子群検索器ごとに異なる。
The nth identifier group searcher 121 n determines whether or not the identifier group candidate [n, k] specified by the candidate ID output from the candidate ID generator 122 matches the identifier group value [n] in the order of candidate IDs. The match flag [n] is output to the AND circuit 123 when they match.
For each of the other identifier group searchers, the same signal as that of the nth identifier group searcher 121 n is input, the same processing is performed, and the same signal is output. However, identifier group candidates differ for each identifier group searcher.

第nの識別子群検索器121nは、さらに図6および図7に示すように構成してもよい。ここで、識別子群値のすべてのビットを識別子群候補と比較しなくても一致判定ができる場合がある。
図6に示す構成では、このような場合に、識別子群値のビットのうちの比較する必要のないビットにマスクを施し、マスクを施した識別子群値と識別子群候補とを比較するようになっている。
The nth identifier group searcher 121 n may be further configured as shown in FIGS. Here, it may be possible to make a match determination without comparing all bits of the identifier group value with the identifier group candidate.
In such a case, the configuration shown in FIG. 6 masks the bits of the identifier group value that need not be compared, and compares the masked identifier group value with the identifier group candidate. ing.

検索部120を構成する所定の識別子群検索器121nは、検索候補表の所定のエントリに識別子群値候補としてデータの範囲を指定する範囲指定情報が記録され、識別子群値がデータの範囲を指定する識別子群値候補と一致するとき、一致する識別子群値候補に対応する候補IDに応じた分類値を入力パケットに別途付加して出力するようにしてもよい。
また、検索部120を構成する所定の識別子群検索器121nは、候補IDが検索候補表中の所定のエントリの候補IDのみを対象として指定するようにしてもよい。
The predetermined identifier group search unit 121 n constituting the search unit 120 records range specifying information for specifying a data range as an identifier group value candidate in a predetermined entry of the search candidate table, and the identifier group value indicates the data range. When the identifier group value candidate to be designated matches, a classification value corresponding to the candidate ID corresponding to the matching identifier group value candidate may be added to the input packet and output.
Further, the predetermined identifier group searcher 121 n constituting the search unit 120 may specify only candidate IDs of predetermined entries in the search candidate table as candidate IDs.

図6に示す第nの識別子群検索器121nには、マスク処理器611、候補マスクレジスタ612、選択器613、比較処理器621、識別子群値候補レジスタ622、および選択器623が設けられている。
マスク処理器611は、入力された識別子群値[n]にマスクを施す処理(以下、マスク処理という)を行う回路部である。
候補マスクレジスタ612は、マスク処理器611が行うマスク処理に用いられるマスク(以下、識別子群マスクという)の候補を検索候補表として記憶する回路部である。
The n-th identifier group search unit 121 n shown in FIG. 6 includes a mask processor 611, a candidate mask register 612, a selector 613, a comparison processor 621, an identifier group value candidate register 622, and a selector 623. Yes.
The mask processor 611 is a circuit unit that performs a process for masking an input identifier group value [n] (hereinafter referred to as a mask process).
The candidate mask register 612 is a circuit unit that stores candidates for masks (hereinafter referred to as identifier group masks) used for mask processing performed by the mask processor 611 as a search candidate table.

選択器613は、入力された候補IDに応じて候補マスクレジスタ612が記憶する識別子群マスクを選択してマスク処理器611に出力する回路部である。
比較処理器621は、マスク処理後の識別子群値(以下、マスク識別子群値という)と識別子群値候補(以下、マスク識別子群値候補という)とを比較し、一致判定を行う回路部である。
識別子群値候補レジスタ622は、マスク識別子群値の比較対象であるマスク識別子群値候補を検索候補表として記憶する回路部である。
選択器623は、入力された候補IDに応じて識別子群値候補レジスタ622が記憶するマスク識別子群値候補を選択して比較処理器621に出力する回路部である。
The selector 613 is a circuit unit that selects an identifier group mask stored in the candidate mask register 612 according to the input candidate ID and outputs the identifier group mask to the mask processor 611.
The comparison processor 621 is a circuit unit that compares the identifier group value after mask processing (hereinafter referred to as a mask identifier group value) with an identifier group value candidate (hereinafter referred to as a mask identifier group value candidate) and performs a match determination. .
The identifier group value candidate register 622 is a circuit unit that stores a mask identifier group value candidate that is a comparison target of the mask identifier group value as a search candidate table.
The selector 623 is a circuit unit that selects a mask identifier group value candidate stored in the identifier group value candidate register 622 according to the input candidate ID and outputs the mask identifier group value candidate to the comparison processor 621.

識別子群マスクは、例えば「0」と「1」の組み合わせであり、マスク処理器611は例えばAND回路からなり、マスク識別子群値[n]は例えば「0」の値をとるビットが所定数以上並び、比較対象でないことを示すようにしてもよい。
比較処理器621は、一致判定の結果を「0」と「1」からなる一致フラグとして出力する。一致フラグが「1」のときは一致したことを示し、「0」のときは一致しなかったことを示す。
The identifier group mask is, for example, a combination of “0” and “1”, the mask processor 611 is composed of, for example, an AND circuit, and the mask identifier group value [n] has, for example, a predetermined number or more of bits having a value of “0”. You may make it show that it is not a comparison object.
The comparison processor 621 outputs the match determination result as a match flag composed of “0” and “1”. When the coincidence flag is “1”, it indicates that there is a match, and when it is “0”, it indicates that there is no match.

上記のように構成することにより、IPv4アドレスのように、識別子の一部に所定のマスクをかけて一致判定を行うことが一般的な識別子と、MAC(Media Access Control)アドレスなどのマスク処理が不要な識別子とが識別子群値に混在する場合、すべての識別子にマスク情報を指定するのではなく、マスクが必要な識別子のみにマスク情報を指定し、マスク処理を行うことが可能となるため、例えばマスク情報を記憶するメモリの容量の削減などの回路規模の削減と、マスク処理の処理量の削減が可能となる。   By configuring as described above, it is possible to perform a match determination by applying a predetermined mask to a part of an identifier, such as an IPv4 address, and mask processing such as a MAC (Media Access Control) address. When unnecessary identifiers are mixed in the identifier group value, it is possible to specify mask information only for identifiers that require masking and perform mask processing instead of specifying mask information for all identifiers. For example, it is possible to reduce the circuit scale, such as reducing the capacity of the memory that stores the mask information, and the amount of mask processing.

また、識別子が長く、すべてのビットを対象に一致処理を行うのでは、処理に時間がかかることがある。図7に示す構成は、識別子のハッシュ値を算出し、得られたハッシュ値を対象に一致処理を行い、一致したときに全体のビットについて一致判定を行い、処理時間を削減するものである。   In addition, if the identifier is long and the matching process is performed for all bits, the process may take time. The configuration shown in FIG. 7 calculates a hash value of an identifier, performs a matching process on the obtained hash value, performs a matching determination on all bits when they match, and reduces processing time.

図7に示す第nの識別子群検索器121nには、ハッシュ処理器701、ハッシュ値比較処理器711、ハッシュ候補レジスタ712、選択器713、一致検証処理器721、識別子群値候補レジスタ722、および選択器723が設けられている。
ハッシュ処理器701は、入力された識別子群値[n]のハッシュ値を算出する回路部である。
ハッシュ値比較処理器711は、ハッシュ処理器701が算出したハッシュ値と比較対象の候補(以下、識別子群ハッシュ値候補という)とを比較し、その結果をハッシュ値一致フラグとして出力する回路部である。
ハッシュ候補レジスタ712は、ハッシュ値比較処理器711が比較に用いる識別子群ハッシュ値候補を検索候補表として記憶する回路部である。
The n-th identifier group searcher 121 n shown in FIG. 7, the hash processor 701, the hash value comparison processing 711, the hash candidate register 712, selector 713, matches the verification processor 721, identifier group value candidate register 722, And a selector 723 is provided.
The hash processor 701 is a circuit unit that calculates a hash value of the input identifier group value [n].
The hash value comparison processor 711 is a circuit unit that compares the hash value calculated by the hash processor 701 with a candidate for comparison (hereinafter referred to as identifier group hash value candidate) and outputs the result as a hash value match flag. is there.
The hash candidate register 712 is a circuit unit that stores identifier group hash value candidates used by the hash value comparison processor 711 for comparison as a search candidate table.

選択器713は、入力された候補IDに応じてハッシュ候補レジスタ712が記憶する識別子群ハッシュ値候補を選択してハッシュ値比較処理器711に出力する回路部である。
一致検証処理器721は、ハッシュ値比較処理器711から出力されたハッシュ値一致フラグが一致を示すとき、識別子群と識別子群値候補とを比較し、一致判定を行う回路部である。
識別子群値候補レジスタ722は、識別子群値の比較対象である識別子群値候補を検索候補表として記憶する回路部である。
選択器723は、入力された候補IDに応じて識別子群値候補レジスタ722が記憶する識別子群値候補を選択して一致検証処理器721に出力する回路部である。
The selector 713 is a circuit unit that selects an identifier group hash value candidate stored in the hash candidate register 712 according to the input candidate ID and outputs the identifier group hash value candidate to the hash value comparison processor 711.
The coincidence verification processor 721 is a circuit unit that compares the identifier group with the identifier group value candidate when the hash value match flag output from the hash value comparison processor 711 indicates a match, and performs a match determination.
The identifier group value candidate register 722 is a circuit unit that stores identifier group value candidates to be compared with identifier group values as a search candidate table.
The selector 723 is a circuit unit that selects an identifier group value candidate stored in the identifier group value candidate register 722 according to the input candidate ID and outputs it to the matching verification processor 721.

ここで、ハッシュ値を生成する技術については、公知であり、その説明を省略する。また、ハッシュ処理器701が算出するハッシュ値は、そのビット数が入力された識別子群のビット数より少なく、ハッシュ処理器701での処理時間を短縮できるような値をとるものとする。ハッシュ値の生成方法は、特定のものに限定されるものではなく、本発明の趣旨に沿うものであればその種類を問題としない。   Here, the technique for generating the hash value is known and will not be described. The hash value calculated by the hash processor 701 is smaller than the number of bits of the identifier group to which the hash value is inputted, and takes a value that can shorten the processing time in the hash processor 701. The method of generating the hash value is not limited to a specific method, and the type of the hash value is not a problem as long as it is within the spirit of the present invention.

ハッシュ値比較処理器711が出力するハッシュ値一致フラグは、ハッシュ値一致フラグが「1」のとき、ハッシュ処理器701が算出したハッシュ値と識別子群ハッシュ値候補とが一致したことを示し、「0」のときは一致しなかったことを示す。
同様に、一致検証処理器721が出力する一致フラグは、一致フラグが「1」のとき、識別子群と識別子群値候補とが一致したことを示し、「0」のときは一致しなかったことを示す。
The hash value match flag output by the hash value comparison processor 711 indicates that the hash value calculated by the hash processor 701 matches the identifier group hash value candidate when the hash value match flag is “1”. “0” indicates that they do not match.
Similarly, the match flag output from the match verification processor 721 indicates that the identifier group matches the identifier group value candidate when the match flag is “1”, and does not match when the match flag is “0”. Indicates.

上記のように構成することにより、IPv6アドレスのように識別子のビット数が多い識別子を検索するときに、全ビットの一致を直接判定するのではなく、ハッシュ処理によってビット数を短縮した後で一致判定を行うことにより、処理時間を短縮することが可能となる。特に、候補数が多い場合は、ハッシュ処理を行うことによって処理時間を短縮できる。   By configuring as described above, when searching for an identifier having a large number of identifiers such as an IPv6 address, it does not directly determine whether all the bits match, but matches after reducing the number of bits by hash processing. By performing the determination, the processing time can be shortened. In particular, when the number of candidates is large, processing time can be shortened by performing hash processing.

一致候補ID記憶器124は、識別子群生成終了フラグが入力された後、全一致フラグが「1」になったときの候補ID(上記の一致候補ID)を記憶し、検索終了フラグとともに分類値生成器125に出力する。
複数の候補IDのときに一致する場合は、最優先の候補ID(例えば、一致した候補のうちの最小値)を一致候補としてもよい。
また、全一致フラグが「1」となる回数が最大1回に限られる場合や、最優先の候補から順に候補IDが生成されている場合などでは、候補IDで示すすべての候補が一致すると判断した(全一致フラグが「1」)時点で、以後の一致判定を中断して、一致候補IDと検索終了フラグを出力するようにしてもよい。
The match candidate ID storage unit 124 stores the candidate ID (the match candidate ID) when the all match flag is “1” after the identifier group generation end flag is input, and the classification value together with the search end flag. Output to the generator 125.
If there is a match for a plurality of candidate IDs, the highest priority candidate ID (for example, the minimum value among the matched candidates) may be used as the match candidate.
Further, when the number of times that the all-match flag is “1” is limited to a maximum of one, or when candidate IDs are generated in order from the highest-priority candidate, it is determined that all candidates indicated by the candidate ID match. At this point (all match flags are “1”), the subsequent match determination may be interrupted and the match candidate ID and the search end flag may be output.

分類値生成器125は、K個の分類候補を保持し、検索終了フラグと一致候補IDが入力されたら、入力された一致候補IDに対応する分類候補[L](=分類候補[一致候補ID]。Lは1〜Kの整数)を選択し、分類値として出力する。
分類値生成器125から出力される分類値は、パケットクラシファイア装置100の出力であり、他の装置で、パケットデータの分類を行うときに利用することができる。
The classification value generator 125 holds K classification candidates, and when the search end flag and the matching candidate ID are input, the classification candidate [L] (= classification candidate [matching candidate ID] corresponding to the input matching candidate ID. L is an integer of 1 to K) and is output as a classification value.
The classification value output from the classification value generator 125 is the output of the packet classifier device 100, and can be used when the packet data is classified by another device.

上記の検索部120は、所定の候補IDに対して、入力パケットの廃棄の要否(例えば、フィルタ処理)、または入力パケットの廃棄の必要性を判断させる廃棄判断の要否を示す情報を示す分類値を生成するようにしてもよい。
また、検索部120は、所定の候補IDに対して、入力パケット中の所定のフィールドを除去させる指示の情報、入力パケット中に新たなフィールドを付加し所定のデータを記録させる指示の情報、または入力パケット中の所定のフィールドを除去するとともに新たなフィールドを付加し、除去されるフィールドに記録されたデータを変換して得られるデータを新たに付加されるフィールドに記録させる指示の情報を示す分類値を生成するようにしてもよい。
The search unit 120 indicates information indicating whether or not the input packet is to be discarded (for example, filtering processing) or whether or not to discard the input packet. A classification value may be generated.
In addition, the search unit 120 may instruct the predetermined candidate ID to remove a predetermined field in the input packet, information on an instruction to add a new field to the input packet and record predetermined data, or Classification indicating information of instructions for removing a predetermined field from an input packet, adding a new field, and recording data obtained by converting data recorded in the field to be removed in the newly added field A value may be generated.

以上説明したように、本発明の第1の実施の形態にかかるパケットクラシファイア装置は、入力パケット中の予め特定された識別子値の組み合わせからなる識別子群値と一致する検索候補について、候補IDを順次指定することにより検索候補表中から検索し、その検索候補に対応する候補IDに応じた分類値を出力するようにしたので、従来のようにプログラムを用いた場合と比較して、パケットを分類するのに要する処理時間を短縮できるとともに、消費電力を低減できるという効果を有するパケットクラシファイア装置を提供することができるものである。   As described above, the packet classifier device according to the first exemplary embodiment of the present invention sequentially sets candidate IDs for search candidates that match an identifier group value that is a combination of identifier values specified in advance in an input packet. Since the search is performed from the search candidate table by specifying and the classification value corresponding to the candidate ID corresponding to the search candidate is output, the packet is classified as compared with the case of using the program as in the past. Thus, it is possible to provide a packet classifier apparatus that can shorten the processing time required for the operation and reduce the power consumption.

また、ビット数の長い識別子群値などの検索候補に応じてマスクを施して検索を行うようにしたため、一致判定を行うビット数を低減でき、さらにパケットを分類するのに要する処理時間を短縮できるとともに、消費電力を低減できる。
また、ビット数の長い識別子群値などの検索候補に応じてハッシュ値を算出し、ハッシュ値を対象として予備的に検索を行うようにしたため、個々のビット数の長い識別子群値の一致判定を行うビット数を低減でき、さらにパケットを分類するのに要する処理時間を短縮できるとともに、消費電力を低減できる。
In addition, since the search is performed by masking according to search candidates such as identifier group values having a long number of bits, the number of bits for matching determination can be reduced, and the processing time required for classifying packets can be further reduced. At the same time, power consumption can be reduced.
In addition, since hash values are calculated according to search candidates such as identifier group values having a long number of bits, and a preliminary search is performed on the hash values, it is possible to determine whether or not each identifier group value having a long number of bits matches. The number of bits to be performed can be reduced, the processing time required for classifying the packets can be shortened, and the power consumption can be reduced.

また、識別子群値候補としてデータの範囲を指定する範囲指定情報を検索候補表にエントリするようにしたため、検索候補表の規模を小さくすることができ、回路規模を縮小することができる。
また、入力パケットの廃棄などの要否を分類値として生成するため、判断に時間を要する処理を分類して専用の装置などに出力することが可能となり、回路規模を縮小できるとともに、上記の専用の装置などが行う処理の負担を軽減することができる。
In addition, since the range designation information for designating the data range as the identifier group value candidate is entered in the search candidate table, the scale of the search candidate table can be reduced and the circuit scale can be reduced.
In addition, because the necessity of discarding input packets is generated as a classification value, it is possible to classify processes that require time for judgment and output them to a dedicated device, etc. It is possible to reduce the processing load of the apparatus.

また、入力パケット中の所定のフィールドの除去、付加、書き換えなどを示す分類値を生成できるため、タグの付け替えなどの処理を指示することができる。
また、検索候補表中の所定のエントリの候補IDのみを検索対象とすることができるため、パケットを分類するのに要する処理時間を短縮できるとともに、消費電力を低減できる。
Further, since a classification value indicating removal, addition, rewriting, etc. of a predetermined field in the input packet can be generated, it is possible to instruct processing such as tag replacement.
Further, since only the candidate ID of a predetermined entry in the search candidate table can be set as a search target, the processing time required for classifying the packets can be shortened and the power consumption can be reduced.

[第2の実施の形態]
次に、図8を参照して、本発明の第2の実施の形態にかかるパケットクラシファイア装置について説明する。図8は、本発明の第2の実施の形態にかかるパケットクラシファイア装置のブロック構成を示す図である。
図8において、パケットクラシファイア装置800は、本発明の第1の実施の形態の検索部120が、一次検索部820n(nは1〜Nの整数)と、二次検索部830とに分けられた構成を有している。
本発明の第2の実施の形態にかかる識別子群生成部810は、出力信号の出力先が本発明の第1の実施の形態にかかる識別子群生成部110と異なるため、符号を変えているが処理内容は、識別子群生成部110と同様である。
[Second Embodiment]
Next, a packet classifier device according to a second exemplary embodiment of the present invention will be described with reference to FIG. FIG. 8 is a diagram showing a block configuration of a packet classifier apparatus according to the second exemplary embodiment of the present invention.
In FIG. 8, the packet classifier device 800 is divided into a primary search unit 820 n (n is an integer from 1 to N) and a secondary search unit 830 in the search unit 120 according to the first embodiment of this invention. It has a configuration.
The identifier group generation unit 810 according to the second embodiment of the present invention has a different code because the output destination of the output signal is different from the identifier group generation unit 110 according to the first embodiment of the present invention. The processing content is the same as that of the identifier group generation unit 110.

各一次検索部820nは、各識別子値を組み合わせた1つ以上の識別子群値のそれぞれに対して、識別子群値の1つ以上の識別子群値候補と、識別子群値候補を特定する候補IDとを対応させた一次検索候補表を保持し、各識別子群値と一致する識別子群値候補を対応する一次検索候補表中から検索し、検出した識別子群値候補に対応する候補IDに応じた識別子群IDを生成するようになっており、識別子群生成部110から出力された識別子群値[n]をデータ数の少ない識別子群IDに変換するものである。 Each primary search unit 820 n has one or more identifier group value candidates for identifier group values and candidate IDs for identifying identifier group value candidates for each of one or more identifier group values obtained by combining the identifier values. Is stored in the primary search candidate table, the identifier group value candidates matching the identifier group values are searched from the corresponding primary search candidate table, and the candidate ID corresponding to the detected identifier group value candidate is determined. An identifier group ID is generated, and the identifier group value [n] output from the identifier group generation unit 110 is converted into an identifier group ID having a small number of data.

[一次検索部]
次に、図9を参照して、本発明の第2の実施の形態にかかる各一次検索部について説明する。図9(a)は、本発明の第2の実施の形態にかかる各一次検索部820nのブロック構成を示す図である。
図9(a)において、各一次検索部820nには、識別子群検索器821n候補ID生成器822n、および一致候補ID記憶器823nが設けられている。
[Primary search section]
Next, with reference to FIG. 9, each primary search part concerning the 2nd Embodiment of this invention is demonstrated. FIG. 9A is a diagram showing a block configuration of each primary search unit 820 n according to the second embodiment of the present invention.
In FIG. 9A, each primary search unit 820 n is provided with an identifier group searcher 821 n candidate ID generator 822 n and a match candidate ID storage 823 n .

識別子群検索器821nは、識別子群生成部810から出力された識別子群値[n]を識別子群ID[n]に変換するための検索を行う回路部である。
候補ID生成器822nは、識別子群検索器821nが検索する対象候補を指定する候補IDを出力する回路部である。
一致候補ID記憶器823nは、識別子群検索器821nが行った検索で一致が得られたとき、一致の得られた候補IDに応じて識別子群ID[n]を出力する回路部である。
The identifier group search unit 821 n is a circuit unit that performs a search for converting the identifier group value [n] output from the identifier group generation unit 810 into the identifier group ID [n].
The candidate ID generator 822 n is a circuit unit that outputs a candidate ID that designates a target candidate to be searched by the identifier group searcher 821 n .
The match candidate ID storage unit 823 n is a circuit unit that outputs an identifier group ID [n] in accordance with a candidate ID for which a match is obtained when a match is obtained by a search performed by the identifier group search unit 821 n. .

識別子群検索器821nには、識別子群値[n]と、候補ID生成器822nから出力された候補IDとが入力される。
識別子群検索器821nは、識別子群値[n]と比較対象の1つ以上、候補を予め記憶しておき、候補ID生成器822nから出力された候補IDに対応する比較対象の候補と、上記の識別子群値[n]との一致判定を行い、その結果を一致フラグとして出力する。
識別子群検索器821nが記憶する識別子群の1つ以上の候補を候補IDごとに対応させた表が、上記の一次検索候補表である。一致フラグは、一致判定で一致と判定されたときに「1」の値をとり、一致と判定されないときは「0」の値をとるフラグである。
The identifier group search unit 821 n receives the identifier group value [n] and the candidate ID output from the candidate ID generator 822 n .
The identifier group searcher 821 n stores in advance one or more candidates for the identifier group value [n] and the comparison target, and the comparison target candidate corresponding to the candidate ID output from the candidate ID generator 822 n Then, a match determination with the identifier group value [n] is performed, and the result is output as a match flag.
A table in which one or more candidates of identifier groups stored in the identifier group searcher 821 n are associated with each candidate ID is the primary search candidate table. The match flag is a flag that takes a value of “1” when the match is determined to be a match and takes a value of “0” when the match is not determined.

ここで、上記の「比較対象の候補」は外部のCPUなどからの入力に応じて変更できるようにしてもよい。
また、各識別子群検索器821nは、異なる方法で検索を行うようにしてもよく、その際、上記の「比較対象の候補」は、識別子群検索器821nごとに異なるものを用いてもよい。さらに候補ID生成器822nが発生する候補IDについても、上記の「比較対象の候補」と同様に、外部から変更できるようにしてもよい。
Here, the above “candidate for comparison” may be changed according to an input from an external CPU or the like.
In addition, each identifier group searcher 821 n may perform a search by using a different method. In this case, the above “candidate for comparison” may be different for each identifier group searcher 821 n. Good. Further, the candidate ID generated by the candidate ID generator 822 n may be changed from the outside in the same manner as the above “candidate for comparison”.

一致候補ID記憶器823nには、識別子群検索器821nが出力した一致フラグと、候補ID生成器822nが出力した候補IDとが入力される。
一致候補ID記憶器823nは、識別子群検索器821nから一致を示す一致フラグ(値が「1」をとる)が入力された際に、候補IDに応じた識別子群ID[n]を生成し、出力する。
ここで、識別子群ID[n]を、一致フラグが「1」のときの候補IDとし、処理時間の短縮を図るようにしてもよい。一致候補ID記憶器823nは、また、検索が終了したことを示す検索終了フラグ[n]を一致フラグとともに出力する。
The match candidate ID storage unit 823 n receives the match flag output from the identifier group search unit 821 n and the candidate ID output from the candidate ID generator 822 n .
The match candidate ID storage unit 823 n generates an identifier group ID [n] corresponding to the candidate ID when a match flag indicating a match (value takes “1”) is input from the identifier group search unit 821 n. And output.
Here, the identifier group ID [n] may be set as a candidate ID when the match flag is “1” to shorten the processing time. The match candidate ID storage unit 823 n also outputs a search end flag [n] indicating that the search is completed together with the match flag.

[二次検索部]
次に、図9を参照して、本発明の第2の実施の形態にかかる二次検索部について説明する。図9(b)は、本発明の第2の実施の形態にかかる二次検索部830のブロック構成を示す図である。
二次検索部830は、識別子群IDのそれぞれに対して、識別子群IDの1つ以上の検索候補と、検索候補を特定する候補IDとを対応させた二次検索候補表を保持し、各識別子群IDと一致する検索候補を対応する二次検索候補表中から検索し、検索された各検索候補に対応する候補IDに応じた分類値を生成し、入力パケットに別途付加して、または入力パケットとは別個に出力するようになっている。
[Secondary search part]
Next, a secondary search unit according to the second embodiment of the present invention will be described with reference to FIG. FIG. 9B is a diagram illustrating a block configuration of the secondary search unit 830 according to the second embodiment of the present invention.
The secondary search unit 830 holds a secondary search candidate table in which one or more search candidates for the identifier group ID and a candidate ID for specifying the search candidate are associated with each of the identifier group IDs. A search candidate that matches the identifier group ID is searched from the corresponding secondary search candidate table, and a classification value corresponding to the candidate ID corresponding to each searched search candidate is generated and added to the input packet separately, or It is output separately from the input packet.

具体的には、二次検索部830には、識別子群ID検索器831n、候補ID生成器832、全一致フラグ生成AND回路833、全終了フラグAND回路834、一致候補ID記憶器835、および分類値生成器836が設けられている。
識別子群ID検索器831nは、各一次検索部820nから出力された識別子群ID[n]に基づいて検索を行い、検索の結果を内容とする一致フラグを出力する回路部である。
Specifically, the secondary search unit 830 includes an identifier group ID search unit 831 n , a candidate ID generator 832, an all match flag generation AND circuit 833, an all end flag AND circuit 834, a match candidate ID storage unit 835, and A classification value generator 836 is provided.
The identifier group ID search unit 831 n is a circuit unit that performs a search based on the identifier group ID [n] output from each primary search unit 820 n and outputs a match flag whose content is the result of the search.

候補ID生成器832は、識別子群ID検索器831nが検索する対象候補を指定する候補IDを出力する回路部である。
全一致フラグ生成AND回路833は、各識別子群ID検索器831nが出力したすべての一致フラグが一致したか否かを内容とする全一致フラグを出力する回路部である。
全終了フラグAND回路834は、各一次検索部820nから出力された検索終了フラグがすべて検索の終了を示すか否かを内容とする全検索終了フラグを出力する回路部である。
The candidate ID generator 832 is a circuit unit that outputs a candidate ID that designates a target candidate to be searched by the identifier group ID search unit 831 n .
The all coincidence flag generation AND circuit 833 is a circuit unit that outputs an all coincidence flag whose content is whether or not all the coincidence flags output from the identifier group ID searchers 831 n coincide.
The all end flag AND circuit 834 is a circuit unit that outputs an all search end flag whose content is whether or not all the search end flags output from the primary search units 820 n indicate the end of the search.

一致候補ID記憶器835は、全検索終了フラグ、全一致フラグおよび候補IDが入力され、全一致フラグが「1」のときの候補IDを記憶し、一致候補IDおよび検索終了フラグを出力する回路部である。
分類値生成器836は、一致候補IDおよび検索終了フラグが入力され、分類値を生成する回路部である。
The match candidate ID storage unit 835 receives the all search end flag, all match flag, and candidate ID, stores the candidate ID when the all match flag is “1”, and outputs the match candidate ID and the search end flag. Part.
The classification value generator 836 is a circuit unit that receives a match candidate ID and a search end flag and generates a classification value.

識別子群ID検索器831nが記憶する識別子群の1つ以上の候補を候補IDごとに対応させた表が、二次検索候補表である。
識別子群ID検索器831nおよび候補ID生成器832は、本発明の第1の実施の形態の第nの識別子群検索器121nおよび候補ID生成器122とは、検索対象が識別子群ID[n]であるという点で異なるが、構成および動作は同様であり、これらの構成および動作についての説明は省略する。
同様に、全一致フラグ生成AND回路833および分類値生成器836は、本発明の第1の実施の形態のAND回路123および一致候補ID記憶器124についても、構成および動作についての説明は省略する。
A table in which one or more candidates of identifier groups stored in the identifier group ID search unit 831 n are associated with each candidate ID is a secondary search candidate table.
The identifier group ID search unit 831 n and the candidate ID generator 832 are different from the nth identifier group search unit 121 n and the candidate ID generator 122 according to the first embodiment of this invention in that the search target is the identifier group ID [ n], the configuration and operation are the same, and the description of these configuration and operation is omitted.
Similarly, the all match flag generation AND circuit 833 and the classification value generator 836 omit the description of the configuration and operation of the AND circuit 123 and the match candidate ID storage 124 according to the first embodiment of the present invention. .

全終了フラグAND回路834には、各一次検索部820nから出力された検索終了フラグ[n]が入力される。
全終了フラグAND回路834は、入力されたすべての検索終了フラグ[n]が検索の終了を示すときに例えば「1」の値をとり、いずれか1つ以上の検索終了フラグが検索が終了していないことを示すときに例えば「0」の値をとる全検索終了フラグを出力するようになっている。以下では、全検索終了フラグの値を上記のように定義されるものとする。
The search end flag [n] output from each primary search unit 820 n is input to the all end flag AND circuit 834.
The all end flag AND circuit 834 takes a value of, for example, “1” when all the input search end flags [n] indicate the end of the search, and one or more search end flags end the search. For example, an all-search end flag having a value of “0” is output when it indicates that the search is not performed. In the following, it is assumed that the value of the all search end flag is defined as described above.

一致候補ID記憶器835は、上記の全検索終了フラグが「1」のとき、処理を行い、全一致フラグが「1」になったときの候補ID(上記の一致候補ID)を記憶し、検索終了フラグとともに分類値生成器836に出力する。
一致候補ID記憶器835は、全検索終了フラグが「1」のときに処理を行う点を除けば、本発明の第1の実施の形態の分類値生成器125と同様の処理を行うようにしてもよい。
The match candidate ID storage unit 835 performs processing when the all search end flag is “1”, and stores the candidate ID (the match candidate ID) when the all match flag is “1”. The result is output to the classification value generator 836 together with the search end flag.
The match candidate ID storage unit 835 performs the same process as the classification value generator 125 of the first exemplary embodiment of the present invention except that the process is performed when the all search end flag is “1”. May be.

ここで、上記のいずれか1つ以上の一次検索部820nが、候補IDに応じたマスクである識別子群マスクを識別子群値に施してマスク識別子群値を生成し、一次検索候補表が、候補IDと、候補IDに応じた識別子群マスクを施した識別子群値候補であるマスク識別子群値候補とを対応させた一次検索候補表を保持し、マスク識別子群値と一致するマスク識別子群値候補を一次検索候補表から検索し、検索して得られたマスク識別子群値候補と対応する候補IDに応じた識別子群IDを生成するように構成してもよい。 Here, any one or more of the primary search units 820 n described above applies an identifier group mask, which is a mask corresponding to the candidate ID, to the identifier group value to generate a mask identifier group value. A mask identifier group value that holds a primary search candidate table in which a candidate ID is associated with a mask identifier group value candidate that is an identifier group value candidate subjected to an identifier group mask corresponding to the candidate ID, and matches the mask identifier group value A candidate may be searched from the primary search candidate table, and an identifier group ID corresponding to a candidate ID corresponding to a mask identifier group value candidate obtained by the search may be generated.

また、上記のいずれか1つ以上の一次検索部820nが、識別子群値のハッシュ値を算出し、一次検索候補表が、識別子群値のハッシュ値の候補である識別子群ハッシュ値候補と、識別子群ハッシュ値候補を特定する候補IDとを対応させた一次検索候補表を保持し、識別子群値のハッシュ値と一致する識別子群ハッシュ値候補を一次検索候補表から検索し、検索して得られた識別子群ハッシュ値候補と対応する候補IDに応じた識別子群IDを生成するように構成してもよい。 Further, any one or more of the primary search units 820 n described above calculates a hash value of the identifier group value, and the primary search candidate table includes an identifier group hash value candidate that is a candidate of the hash value of the identifier group value; A primary search candidate table that associates candidate IDs for identifying identifier group hash value candidates is held, and an identifier group hash value candidate that matches the hash value of the identifier group value is searched from the primary search candidate table and searched. You may comprise so that identifier group ID according to candidate ID corresponding to the identifier group hash value candidate made may be produced | generated.

また、上記のいずれか1つ以上の一次検索部820nが、一次検索候補表の所定のエントリに識別子群値候補としてデータの範囲を指定する範囲指定情報が記録され、識別子群値がデータの範囲を指定する識別子群値候補と一致するとき、一致する識別子群値候補に対応する候補IDに応じた識別子群IDを生成するように構成してもよい。
また、上記の二次検索部830が、所定の候補IDに対して、入力パケットの廃棄の要否、または入力パケットの廃棄の必要性を判断させる廃棄判断の要否を示す情報を示す分類値を生成するように構成してもよい。
In addition, any one or more of the primary search units 820 n described above records range designation information for designating a range of data as identifier group value candidates in a predetermined entry of the primary search candidate table, and the identifier group value is the data of the identifier group value. When matching with an identifier group value candidate specifying a range, an identifier group ID corresponding to a candidate ID corresponding to the matching identifier group value candidate may be generated.
Further, the classification value indicating information indicating whether the secondary search unit 830 determines whether or not to discard the input packet or whether or not to discard the input packet for a predetermined candidate ID. May be configured to generate.

また、上記の二次検索部830が、所定の候補IDに対して、入力パケット中の所定のフィールドを除去させる指示の情報、入力パケット中に新たなフィールドを付加し所定のデータを記録させる指示の情報、または入力パケット中の所定のフィールドを除去するとともに新たなフィールドを付加し、除去されるフィールドに記録されたデータを変換して得られるデータを新たに付加されるフィールドに記録させる指示の情報を示す分類値を生成するように構成してもよい。   In addition, the secondary search unit 830 described above is an instruction for removing a predetermined field in the input packet for a predetermined candidate ID, and an instruction for adding a new field in the input packet and recording predetermined data. Or an instruction to remove the predetermined field in the input packet and add a new field, and record the data obtained by converting the data recorded in the removed field in the newly added field. You may comprise so that the classification value which shows information may be produced | generated.

また、上記のいずれか1つ以上の一次検索部820nが、候補IDが一次検索候補表中の所定のエントリの候補IDのみを対象として指定し、上記の二次検索部830が、候補IDが二次検索候補表中の所定のエントリの候補IDのみを対象として指定するように構成してもよい。 In addition, any one or more of the primary search units 820 n specify a candidate ID for only a candidate ID of a predetermined entry in the primary search candidate table, and the secondary search unit 830 selects a candidate ID. May be configured to specify only candidate IDs of predetermined entries in the secondary search candidate table.

以上説明したように、本発明の第2の実施の形態にかかるパケットクラシファイア装置は、一次検索部を設け、識別子群値をID化してから二次検索部が検索を行うようにしたため、パケットを分類するのに要する処理時間を短縮できるとともに、消費電力を低減できる。
また、ビット数の長い識別子群値などの検索候補に応じてマスクを施して検索を行うようにしたため、一致判定を行うビット数を低減でき、さらにパケットを分類するのに要する処理時間を短縮できるとともに、消費電力を低減できる。
As described above, the packet classifier apparatus according to the second exemplary embodiment of the present invention includes the primary search unit, and the identifier group value is converted into the ID and then the secondary search unit performs the search. The processing time required for classification can be shortened and power consumption can be reduced.
In addition, since the search is performed by masking according to search candidates such as identifier group values having a long number of bits, the number of bits for matching determination can be reduced, and the processing time required for classifying packets can be further reduced. At the same time, power consumption can be reduced.

また、ビット数の長い識別子群値などの検索候補に応じてハッシュ値を算出し、ハッシュ値を対象として予備的に検索を行うようにしたため、個々のビット数の長い識別子群値の一致判定を行うビット数を低減でき、さらにパケットを分類するのに要する処理時間を短縮できるとともに、消費電力を低減できる。
また、識別子群値候補としてデータの範囲を指定する範囲指定情報を検索候補表にエントリするようにしたため、検索候補表の規模を小さくすることができ、回路規模を縮小することができる。
In addition, since hash values are calculated according to search candidates such as identifier group values having a long number of bits, and a preliminary search is performed on the hash values, it is possible to determine whether or not each identifier group value having a long number of bits matches. The number of bits to be performed can be reduced, the processing time required for classifying the packets can be shortened, and the power consumption can be reduced.
In addition, since the range designation information for designating the data range as the identifier group value candidate is entered in the search candidate table, the scale of the search candidate table can be reduced and the circuit scale can be reduced.

また、入力パケットの廃棄などの要否を分類値として生成するため、判断に時間を要する処理を分類して専用の装置などに出力することが可能となり、回路規模を縮小できるとともに、上記の専用の装置などが行う処理の負担を軽減することができる。
また、入力パケット中の所定のフィールドの除去、付加、書き換えなどを示す分類値を生成できるため、タグの付け替えなどの処理を指示することができる。
また、検索候補表中の所定のエントリの候補IDのみを検索対象とすることができるため、パケットを分類するのに要する処理時間を短縮できるとともに、消費電力を低減できる。
In addition, because the necessity of discarding input packets is generated as a classification value, it is possible to classify processes that require time for judgment and output them to a dedicated device, etc. It is possible to reduce the processing load of the apparatus.
Further, since a classification value indicating removal, addition, rewriting, etc. of a predetermined field in the input packet can be generated, it is possible to instruct processing such as tag replacement.
Further, since only the candidate ID of a predetermined entry in the search candidate table can be set as a search target, the processing time required for classifying the packets can be shortened and the power consumption can be reduced.

[第3の実施の形態]
次に、図3を参照して、本発明の第3の実施の形態にかかるパケットクラシファイア装置について説明する。図10は、本発明の第3の実施の形態にかかるパケットクラシファイア装置のブロック構成を示す図である。
図10において、パケットクラシファイア装置1000は、識別子群値を、一次検索部820n(nは1〜Nの整数)に入力する識別子群値[n](nは1〜Nの整数)と、一次検索部820nを介さず、直接、二次検索部830に入力する識別子群値[n](nはN+1〜N+Oの整数,NおよびOは自然数)分けて処理を行うようになっている。
[Third Embodiment]
Next, with reference to FIG. 3, a packet classifier apparatus according to a third embodiment of the present invention will be described. FIG. 10 is a diagram showing a block configuration of a packet classifier apparatus according to the third exemplary embodiment of the present invention.
In FIG. 10, the packet classifier apparatus 1000 includes an identifier group value [n] (n is an integer of 1 to N) and a primary search unit 820 n (n is an integer of 1 to N). The processing is performed by dividing the identifier group value [n] (n is an integer from N + 1 to N + O, and N and O are natural numbers) input directly to the secondary search unit 830 without going through the search unit 820 n .

本発明の第3の実施の形態にかかるパケットクラシファイア装置1000の各構成部のうち、本発明の第1の実施の形態にかかるパケットクラシファイア装置100または本発明の第2の実施の形態にかかるパケットクラシファイア装置800の構成部と同様のものについては、同一の符号を付し、その説明を省略する。
また、本発明の第3の実施の形態にかかる識別子群生成部1010は、出力信号の出力先が本発明の第1の実施の形態にかかる識別子群生成部110と異なるため、符号を変えているが処理内容は、識別子群生成部110と同様である。
Of the components of the packet classifier apparatus 1000 according to the third embodiment of the present invention, the packet classifier apparatus 100 according to the first embodiment of the present invention or the packet according to the second embodiment of the present invention. The same components as those of the classifier device 800 are denoted by the same reference numerals, and the description thereof is omitted.
Also, the identifier group generation unit 1010 according to the third embodiment of the present invention is different from the identifier group generation unit 110 according to the first embodiment of the present invention in that the output destination of the output signal is changed. However, the processing content is the same as that of the identifier group generation unit 110.

図11は、本発明の第3の実施の形態にかかる二次検索部1030のブロック構成を示す図である。図11において、二次検索部1030には、識別子群検索器121n(nは1〜Nの整数)、識別子群ID検索器831n(nはN+1〜N+Oの整数,NおよびOは自然数)、候補ID生成器1032、全一致フラグ生成AND回路1033、全終了フラグAND回路834、一致候補ID記憶器1035、および分類値生成器1036が設けられている。 FIG. 11 is a diagram illustrating a block configuration of the secondary search unit 1030 according to the third embodiment of the present invention. In FIG. 11, the secondary search unit 1030 includes an identifier group searcher 121 n (n is an integer of 1 to N), an identifier group ID searcher 831 n (n is an integer of N + 1 to N + O, and N and O are natural numbers). A candidate ID generator 1032, an all-match flag generation AND circuit 1033, an all-end flag AND circuit 834, a match candidate ID storage 1035, and a classification value generator 1036 are provided.

識別子群検索器121nは、本発明の第1の実施の形態の識別子群検索器121nからなり、識別子群ID検索器831nは、本発明の第2の実施の形態の識別子群ID検索器831nからなる。
候補ID生成器1032各識別子群検索器にそれぞれの候補IDを出力する回路部である。
全一致フラグ生成AND回路1033は、各識別子群検索器121nおよび各識別子群ID検索器831nが出力したすべての一致フラグが一致したか否かを内容とする全一致フラグを出力する回路部である。
The identifier group search unit 121 n includes the identifier group search unit 121 n according to the first embodiment of the present invention, and the identifier group ID search unit 831 n includes the identifier group ID search according to the second embodiment of the present invention. A container 831 n .
Candidate ID generator 1032 is a circuit unit that outputs each candidate ID to each identifier group searcher.
The all-match flag generation AND circuit 1033 is a circuit unit that outputs an all-match flag containing whether or not all match flags output from each identifier group searcher 121 n and each identifier group ID search unit 831 n match. It is.

全終了フラグAND回路834は、各一次検索部820nから出力された検索終了フラグがすべて検索の終了を示すか否かを内容とする全検索終了フラグを出力すると回路部である。
一致候補ID記憶器1035は、全検索終了フラグ、全一致フラグおよび候補IDが入力され、全一致フラグが「1」のときの候補IDを記憶し、一致候補IDおよび検索終了フラグを出力する回路部である。
分類値生成器1036は、一致候補IDおよび検索終了フラグが入力され、分類値を生成する回路部である。
The all end flag AND circuit 834 is a circuit unit when an all search end flag including whether or not all the search end flags output from the respective primary search units 820 n indicate the end of the search is output.
A match candidate ID storage unit 1035 is a circuit that receives all search end flags, all match flags, and candidate IDs, stores candidate IDs when the all match flags are “1”, and outputs match candidate IDs and search end flags. Part.
The classification value generator 1036 is a circuit unit that receives a match candidate ID and a search end flag and generates a classification value.

本発明の第3の実施の形態にかかる候補ID生成器1032、全一致フラグ生成AND回路1033、一致候補ID記憶器1035および分類値生成器1036は、それぞれ、本発明の第2の実施の形態にかかる候補ID生成器832、全一致フラグ生成AND回路833、一致候補ID記憶器835および分類値生成器836と、構成および動作が同様であり、これらの構成および動作についての説明は省略する。   A candidate ID generator 1032, an all-match flag generation AND circuit 1033, a match candidate ID storage 1035 and a classification value generator 1036 according to the third embodiment of the present invention are respectively the second embodiment of the present invention. The configuration and operation of the candidate ID generator 832, the all-match flag generation AND circuit 833, the match candidate ID storage unit 835, and the classification value generator 836 are the same, and description of these configurations and operations is omitted.

このように、本発明の第3の実施の形態にかかるパケットクラシファイア装置1000は、識別子群をID化して検索を行う方法と、識別子群を、直接、検索する方法とを併せ持つものである。
このようにすることにより、ID化できる識別子群に関しては、処理を大幅に削減できるとともに、ID化できない識別子群が含まれる場合でも処理が可能となる。ここで、「ID化できない識別子群」としては、例えばポート番号などの値を範囲で示したものなどが該当する。
As described above, the packet classifier apparatus 1000 according to the third embodiment of the present invention has both a method of searching by converting an identifier group into an ID and a method of searching the identifier group directly.
In this way, regarding identifier groups that can be converted to IDs, the processing can be greatly reduced, and even when identifier groups that cannot be converted to IDs are included. Here, the “identifier group that cannot be converted to ID” corresponds to, for example, a value indicating a port number or the like as a range.

以上説明したように、本発明の第3の実施の形態にかかるパケットクラシファイア装置は、本発明の第2の実施の形態の効果に加え、識別子群値をID化できるものとできないものと分けて処理をできるようにしたため、種々の識別子群値を分類することができる。   As described above, the packet classifier device according to the third exemplary embodiment of the present invention is divided into the identifier group value that can be converted into an ID and the one that cannot be converted into an ID in addition to the effect of the second exemplary embodiment of the present invention. Since the processing can be performed, various identifier group values can be classified.

[第4の実施の形態]
次に、図12を参照して、本発明の第4の実施の形態にかかるパケットクラシファイア装置について説明する。図12は、本発明の第4の実施の形態にかかるパケットクラシファイア装置のブロック構成を示す図である。
図12において、本発明の第4の実施の形態にかかるパケットクラシファイア装置1200の構成部のうち、本発明の第2の実施の形態にかかるパケットクラシファイア装置800の構成部と同様のものには、同一の符号を付し、その説明を省略する。
[Fourth Embodiment]
Next, with reference to FIG. 12, a packet classifier apparatus according to a fourth embodiment of the present invention will be described. FIG. 12 is a diagram showing a block configuration of a packet classifier apparatus according to the fourth exemplary embodiment of the present invention.
In FIG. 12, among the constituent parts of the packet classifier apparatus 1200 according to the fourth embodiment of the present invention, the same constituent parts as those of the packet classifier apparatus 800 according to the second embodiment of the present invention include: The same reference numerals are given and the description thereof is omitted.

本発明の第4の実施の形態にかかるパケットクラシファイア装置1200は、識別子群生成部810と、一次検索部820n(nは1〜Nの整数)と、所定の識別子群IDの組み合わせで検索を行う複数の二次検索部1230p(pは1〜Pの整数、Pは自然数)と、パケットデータを二次検索部1230p(pは1〜Pの整数)が行う処理に要する処理時間分だけ遅延させるパケットバッファ部1240とを備えている。 The packet classifier apparatus 1200 according to the fourth exemplary embodiment of the present invention performs a search using a combination of an identifier group generation unit 810, a primary search unit 820 n (n is an integer from 1 to N), and a predetermined identifier group ID. a plurality of secondary search unit 1230 p (p is an integer of 1 to P, P is a natural number) for performing a packet data secondary search unit 1230 p (p is an integer of 1 to P) processing time required for processing performed by And a packet buffer unit 1240 that delays only by the amount of time.

このうち、一次検索部820nは、各識別子値を組み合わせた1つ以上の識別子群値のそれぞれに対して、識別子群値の1つ以上の識別子群値候補と、識別子群値候補を特定する候補IDとを対応させた一次検索候補表を保持し、各識別子群値と一致する識別子群値候補を対応する一次検索候補表中から検索し、検出した識別子群値候補に対応する候補IDに応じた識別子群IDを生成する。 Among these, the primary search unit 820 n specifies one or more identifier group value candidates of identifier group values and identifier group value candidates for each of one or more identifier group values obtained by combining the identifier values. A primary search candidate table in which candidate IDs are associated is retained, identifier group value candidates that match each identifier group value are searched from the corresponding primary search candidate table, and candidate IDs corresponding to the detected identifier group value candidates are set as candidate IDs. A corresponding identifier group ID is generated.

また、二次検索部1230pは、各識別子群IDから1つ以上の所定の識別子群IDを選択して1つ以上の選択識別子群IDを生成し、各識別子群IDのそれぞれに対して、選択識別子群IDの1つ以上の検索候補と、検索候補を特定する候補IDとを対応させた二次検索候補表を保持し、各選択識別子群IDと一致する検索候補を対応する二次検索候補表中から検索し、検索された各検索候補に対応する候補IDに応じた分類値を生成し、入力パケットに別途付加して出力するようになっている。 Further, the secondary search unit 1230 p selects one or more predetermined identifier group IDs from each identifier group ID to generate one or more selected identifier group IDs, and for each identifier group ID, A secondary search candidate table in which one or more search candidates of the selected identifier group ID and a candidate ID for specifying the search candidate are associated is held, and a secondary search corresponding to the search candidate that matches each selected identifier group ID A search is made from the candidate table, a classification value corresponding to the candidate ID corresponding to each searched search candidate is generated, added separately to the input packet, and output.

本発明の第4の実施の形態にかかる二次検索部1230pは、所定のパケット処理を行うパケット処理部20p(pは1〜Pの整数)ごとに設けられている。
ここで、上記のパケット処理は、分類値[p]に応じて異なるキューにパケットを振り分けるQoS(Quality of Service)処理、分類値[P]に応じてパケットを廃棄などするフィルタ処理、分類値[P]に応じてパケットの特定のヘッダを書き換え、追加、または、削除するヘッダ変更処理、分類値[P]に応じて暗号化、復号化、署名データの付与、認識などを行うパケット認証暗号処理(例えば、IPsec:Security Architecture for the Internet Protocol)があげられる。
The secondary search unit 1230 p according to the fourth embodiment of the present invention is provided for each packet processing unit 20 p (p is an integer from 1 to P) that performs predetermined packet processing.
Here, the packet processing described above includes QoS (Quality of Service) processing for distributing packets to different queues according to the classification value [p], filter processing for discarding packets according to the classification value [P], and classification value [ Packet authentication encryption processing that rewrites, adds, or deletes a specific header of a packet according to P], and performs encryption, decryption, assignment of signature data, recognition, etc. according to classification value [P] (For example, IPsec: Security Architecture for the Internet Protocol).

ここで、上記の「ヘッダ変更処理」には、例えばIPカプセル化の処理、NAT(Network Address Translation)およびVLAN(Virtual LAN)のタグ処理が含まれる。
そのため、本発明の第4の実施の形態にかかるパケットクラシファイア装置1200は、パケットクラシファイア装置1200での処理後に行うパケット処理に応じて、二次検索部1230pが設けられているという見方もできる。
Here, the “header changing process” includes, for example, an IP encapsulation process, a NAT (Network Address Translation) tag, and a VLAN (Virtual LAN) tag process.
Therefore, the packet classifier device 1200 according to the fourth exemplary embodiment of the present invention can be viewed as including the secondary search unit 1230 p according to the packet processing performed after the processing in the packet classifier device 1200.

ここで、本発明の第4の実施の形態にかかる二次検索部1230pは、S個の検索識別子群選択器1231s(sは1〜Sの整数、Sは自然数)が、各識別子群ID検索器831sの前段に設けられている点では異なるが、各識別子群ID検索器831s以降、分類値生成器836までの構成および動作は、本発明の第2の実施の形態において説明したものと同様である。 Here, the secondary search unit 1230 p according to the fourth embodiment of the present invention includes S search identifier group selectors 1231 s (s is an integer of 1 to S, S is a natural number), and each identifier group in terms provided in front of the ID search unit 831 s different, each identifier group ID searching unit 831 s later, the configuration and operation of the up classification value generator 836, described in the second embodiment of the present invention It is the same as what I did.

検索識別子群選択器1231sは、入力された識別子群ID[n](nは1〜Nの整数)から所定の識別子群IDを選択して識別子群ID検索器831sに出力するようになっている。ここで、検索識別子群選択器1231sが選択する識別子群IDは、固定されていてもよく、外部のCPUなどからの入力で変更できるようにしてもよい。 The search identifier group selector 1231 s selects a predetermined identifier group ID from the input identifier group ID [n] (n is an integer from 1 to N) and outputs the selected identifier group ID to the identifier group ID search unit 831 s. ing. Here, the identifier group ID selected by the search identifier group selector 1231 s may be fixed, or may be changed by an input from an external CPU or the like.

また、検索識別子群選択器の個数「S」は、二次検索部1230pごとに異なっていてもよい。個数「S」をパケット処理部20pが行うパケット処理(同様に、二次検索部1230pが行う検索)に応じて変更できるようにしてもよい。
パケット処理によっては、検索対象とすべき識別子群や、その識別子群の数も異なるからである。ここで、パケット処理と二次検索部1230pの構成および動作が関連付けられ、固定されている場合、個数「S」を予め関連が固定されたパケット処理に合わせておくことで、回路規模を削減できる。
Further, the number “S” of search identifier group selectors may be different for each secondary search unit 1230 p . The number “S” may be changed according to packet processing performed by the packet processing unit 20 p (similarly, search performed by the secondary search unit 1230 p ).
This is because, depending on the packet processing, the identifier group to be searched and the number of identifier groups are also different. Here, when the configuration and operation of the packet processing and the secondary search unit 1230 p are related and fixed, the circuit scale is reduced by matching the number “S” with the packet processing whose relationship is fixed in advance. it can.

さらに、すべての検索識別子群選択器1231sが識別子群IDを選択して識別子群ID検索器831sに出力するのでな、外部のCPUなどからの入力で識別子群IDを選択して出力する検索識別子群選択器を変更できるようにしてもよい。
また、一部の固定された検索識別子群選択器1231sが識別子群IDを選択して識別子群ID検索器831sに出力するようにしてもよい。
この場合、二次検索部1230p、識別子群ID検索器831sなどの変更に要する手段(例えば、上記の外部のCPUなど)を削除または小規模にできるため好適である。
Further, since all the search identifier group selectors 1231 s select an identifier group ID and output it to the identifier group ID search unit 831 s , a search that selects and outputs an identifier group ID by an input from an external CPU or the like. The identifier group selector may be changed.
Also, some fixed search identifier group selectors 1231 s may select an identifier group ID and output the identifier group ID to the identifier group ID search unit 831 s .
In this case, it is preferable because means (for example, the above-described external CPU) required for changing the secondary search unit 1230 p and the identifier group ID search unit 831 s can be deleted or reduced in scale.

以上説明したように、本発明の第4の実施の形態にかかるパケットクラシファイア装置は、本発明の第2の実施の形態の効果に加え、出力後のパケット処理ごとに二次検索部を設け、識別子群値をID化してから二次検索部がID化した識別子群値を選択し、選択されたものを対象に検索を行うようにしたため、二次検索部での処理量を稼ぐことができ、さらにパケットを分類するのに要する処理時間を短縮できるとともに、消費電力を低減できる。   As described above, the packet classifier device according to the fourth exemplary embodiment of the present invention includes a secondary search unit for each packet processing after output in addition to the effects of the second exemplary embodiment of the present invention. Since the identifier group value is converted into an ID after the identifier group value is converted into an ID, and the search is performed on the selected identifier group value, the processing amount in the secondary search unit can be increased. Furthermore, it is possible to shorten the processing time required for classifying the packets and reduce the power consumption.

産業上の利用分野Industrial application fields

本発明にかかるパケットクラシファイア装置は、パケットを分類するのに要する処理時間を短縮できるとともに、消費電力を低減できるという効果が有用なネットワーク上の中継器やスイッチなどの用途にも適用できる。   The packet classifier apparatus according to the present invention can be applied to applications such as a repeater and a switch on a network that can shorten the processing time required for classifying packets and can reduce power consumption.

本発明の一実施の形態にかかるパケットクラシファイア装置の構成を示すブロック図である。It is a block diagram which shows the structure of the packet classifier apparatus concerning one embodiment of this invention. 本発明の第1の実施の形態にかかる識別子群生成部の構成を示すブロック図である。It is a block diagram which shows the structure of the identifier group production | generation part concerning the 1st Embodiment of this invention. 本発明の第1の実施の形態にかかる識別子群生成部の動作について説明するための図である。It is a figure for demonstrating operation | movement of the identifier group production | generation part concerning the 1st Embodiment of this invention. 本発明の第1の実施の形態にかかる識別子群生成部の動作について説明するための図である。It is a figure for demonstrating operation | movement of the identifier group production | generation part concerning the 1st Embodiment of this invention. 本発明の第1の実施の形態にかかる識別子群生成部の動作について説明するための図である。It is a figure for demonstrating operation | movement of the identifier group production | generation part concerning the 1st Embodiment of this invention. 本発明の第1の実施の形態にかかる識別子群検索器のブロック構成例である。It is a block structural example of the identifier group searcher concerning the 1st Embodiment of this invention. 本発明の第1の実施の形態にかかる識別子群検索器の他のブロック構成例である。It is another example of block composition of an identifier group searcher concerning a 1st embodiment of the present invention. 本発明の第2の実施の形態にかかるパケットクラシファイア装置の構成を示すブロック図である。It is a block diagram which shows the structure of the packet classifier apparatus concerning the 2nd Embodiment of this invention. 本発明の第2の実施の形態にかかる各一次検索部および二次検索部の構成を示すブロック図である。It is a block diagram which shows the structure of each primary search part and secondary search part concerning the 2nd Embodiment of this invention. 本発明の第3の実施の形態にかかるパケットクラシファイア装置の構成を示すブロック図である。It is a block diagram which shows the structure of the packet classifier apparatus concerning the 3rd Embodiment of this invention. 本発明の第3の実施の形態にかかる二次検索部の構成を示すブロック図である。It is a block diagram which shows the structure of the secondary search part concerning the 3rd Embodiment of this invention. 本発明の第4の実施の形態にかかるパケットクラシファイア装置の構成を示すブロック図である。It is a block diagram which shows the structure of the packet classifier apparatus concerning the 4th Embodiment of this invention. 本発明の第4の実施の形態にかかる各二次検索部の構成を示すブロック図である。It is a block diagram which shows the structure of each secondary search part concerning the 4th Embodiment of this invention.

符号の説明Explanation of symbols

10…パケット構文解析装置、100,800,1000,1200…パケットクラシファイア装置、110,810,1010…識別子群生成部、1111〜111N,111n…識別子抽出部、1121〜112N,112n…パラメータレジスタ、113,114…遅延回路、120…検索部、1211〜121N,121n,821n…識別子群検索器、122,822n,832,1032…候補ID生成器、123…AND回路、124,823n,835,1035…一致候補ID記憶器、125,836,1036…分類値生成器、611…マスク処理器、612…候補マスクレジスタ、613,623,713,723…選択器、621…比較処理器、622…識別子群値候補レジスタ、701…ハッシュ処理器、711…ハッシュ値比較処理器、712…ハッシュ候補レジスタ、721…一致検証処理器、722…識別子群値候補レジスタ、8201〜820N,820n…一次検索部、830,1030,12301〜1230P,1230p…二次検索部、8311〜831N,831n,831s…識別子群ID検索器、833,1033…全一致フラグ生成AND回路、834…全終了フラグAND回路、12311〜1231S,1231s…検索識別子群選択器。
10 ... packet parsing unit, 100,800,1000,1200 ... packet classifier device, 110,810,1010 ... identifier group generation unit, 111 1 ~111 N, 111 n ... identifier extraction unit, 112 1 to 112 N, 112 n ... parameter register, 113, 114 ... delay circuit, 120 ... search unit, 121 1 to 121 N , 121 n , 821 n ... identifier group search unit, 122, 822 n , 832, 1032 ... candidate ID generator, 123 ... AND circuit, 124, 823 n , 835, 1035 ... matching candidate ID storage, 125, 836, 1036 ... classification value generator, 611 ... mask processor, 612 ... candidate mask register, 613, 623, 713, 723 ... selection 621 ... Comparative processor 622 ... Identifier group value candidate register 701 ... Hash processor 711 Hash value comparison processing unit, 712 ... hash candidate register, 721 ... matching verification processor, 722 ... identifier group value candidate register, 820 1 ~820 N, 820 n ... primary search unit, 830,1030,1230 1 ~1230 P, 1230 p ... Secondary search unit, 831 1 to 831 N , 831 n , 831 s ... Identifier group ID search unit, 833, 1033 ... All match flag generation AND circuit, 834 ... All end flag AND circuit, 1231 1 to 1231 S , 1231 s ... Search identifier group selector.

Claims (17)

入力パケット中の所定のフィールドに記録されたデータからなる1つ以上の識別子値に基づいて、前記入力パケットを分類する情報として分類値を生成するパケットクラシファイア装置において、
前記入力パケットの構文解析を行って、当該入力パケットからパケットデータと当該パケットデータ中の識別子値が含まれる部分を特定する識別子マークとを取得し、これらパケットデータと識別子マークとの組を識別子値として出力するパケット構文解析装置と、
前記パケット構文解析装置から出力された前記識別子値のうちから、当該識別子マークがパラメータとして設定されている識別子マーク値と一致する前記識別子値を抽出し、これら識別子値のパケットデータから識別子群値を生成する識別子群値生成部と、
前記識別子群値生成部で生成された前記識別子群値について任意の検索候補を検索し、その検索結果に応じて前記入力パケットに対する分類値を出力する検索部を備え、
前記検索部は、前記識別子値の組み合わせからなる1つ以上の識別子群値のそれぞれに対して、前記識別子群値の1つ以上の検索候補と前記検索候補を特定する候補IDとを対応させた検索候補表を保持し、前記候補IDのうちの所定の候補IDを順次指定して、前記各識別子群値と一致する前記検索候補を対応する前記検索候補表中から検索し、検索して得られた前記各検索候補に対応する候補IDに応じた前記分類値を出力する
ことを特徴とするパケットクラシファイア装置。
In a packet classifier device that generates a classification value as information for classifying the input packet based on one or more identifier values composed of data recorded in a predetermined field in the input packet.
Parsing the input packet to obtain packet data from the input packet and an identifier mark for identifying a portion including the identifier value in the packet data, and a set of the packet data and the identifier mark is set as an identifier value. A packet parser that outputs as
From the identifier values output from the packet parsing device, the identifier value whose identifier mark matches the identifier mark value set as a parameter is extracted, and the identifier group value is extracted from the packet data of these identifier values. An identifier group value generation unit to generate;
The searching any search candidates for the identifier group value generated by the identifier group value generation unit, and a retrieval unit that outputs a classification value for the input packet in accordance with the search result,
The search unit associates one or more search candidates for the identifier group value with a candidate ID for specifying the search candidate for each of one or more identifier group values composed of combinations of the identifier values. A search candidate table is stored, predetermined candidate IDs among the candidate IDs are sequentially specified, and the search candidates that match the identifier group values are searched from the corresponding search candidate table and obtained by searching. The packet classifier apparatus, wherein the classification value corresponding to the candidate ID corresponding to each of the search candidates is output.
請求項1に記載のパケットクラシファイア装置において、
前記検索部は、前記候補IDに応じたマスクである識別子群マスクを前記識別子群値に施してマスク識別子群値を生成し、前記検索候補表で前記候補IDと前記候補IDに応じた識別子群マスクを施した識別子群値候補であるマスク識別子群値候補とを対応させて保持し、前記マスク識別子群値と一致する前記マスク識別子群値候補を前記検索候補表から検索し、検索して得られた前記マスク識別子群値候補に対応する候補IDに応じた前記分類値を出力することを特徴とするパケットクラシファイア装置。
The packet classifier device according to claim 1,
The search unit generates an identifier group value by applying an identifier group mask, which is a mask corresponding to the candidate ID, to the identifier group value, and the identifier group corresponding to the candidate ID and the candidate ID in the search candidate table A mask identifier group value candidate that is a masked identifier group value candidate is stored in correspondence, and the mask identifier group value candidate that matches the mask identifier group value is retrieved from the search candidate table and retrieved. The packet classifier apparatus, wherein the classification value corresponding to the candidate ID corresponding to the mask identifier group value candidate is output.
請求項1に記載のパケットクラシファイア装置において、
前記検索部は、前記識別子群値のハッシュ値を算出し、前記検索候補表で前記識別子群値のハッシュ値の候補である識別子群ハッシュ値候補と前記識別子群ハッシュ値候補を特定する候補IDとを対応させて保持し、前記識別子群値のハッシュ値と一致する前記識別子群ハッシュ値候補を前記検索候補表から検索し、検索して得られた前記識別子群ハッシュ値候補に対応する候補IDに応じた前記分類値を出力することを特徴とするパケットクラシファイア装置。
The packet classifier device according to claim 1,
The search unit calculates a hash value of the identifier group value, and an identifier group hash value candidate that is a candidate for the hash value of the identifier group value in the search candidate table and a candidate ID that identifies the identifier group hash value candidate, The identifier group hash value candidate matching the hash value of the identifier group value is searched from the search candidate table, and the candidate ID corresponding to the identifier group hash value candidate obtained by the search is stored. A packet classifier device that outputs the corresponding classification value.
請求項1に記載のパケットクラシファイア装置において、
前記検索部は、前記検索候補表の所定のエントリに前記識別子群値候補としてデータの範囲を指定する範囲指定情報を保持し、前記識別子群値が前記データの範囲を指定する前記識別子群値候補と一致した場合、一致した前記識別子群値候補に対応する候補IDに応じた前記分類値を出力することを特徴とするパケットクラシファイア装置。
The packet classifier device according to claim 1,
The search unit retains range specification information for specifying a range of data as the identifier group value candidate in a predetermined entry of the search candidate table, and the identifier group value candidate for which the identifier group value specifies the range of data The packet classifier apparatus outputs the classification value corresponding to the candidate ID corresponding to the identifier group value candidate that matches.
請求項1に記載のパケットクラシファイア装置において、
前記検索部は、所定の候補IDに対する前記分類値として、前記入力パケットの廃棄の要否、または前記入力パケットの廃棄の必要性を判断させる廃棄判断の要否を示す情報を示す分類値を生成することを特徴とするパケットクラシファイア装置。
The packet classifier device according to claim 1,
The search unit generates, as the classification value for a predetermined candidate ID, a classification value indicating information indicating whether or not the input packet needs to be discarded or whether or not the input packet needs to be discarded. A packet classifier device.
請求項1に記載のパケットクラシファイア装置において、
前記検索部は、所定の候補IDに対する前記分類値として、前記入力パケット中の所定のフィールドを除去させる指示の情報、前記入力パケット中に新たなフィールドを付加し所定のデータを記録させる指示の情報、または前記入力パケット中の所定のフィールドを除去するとともに新たなフィールドを付加し、除去される前記フィールドに記録されたデータを変換して得られるデータを新たに付加される前記フィールドに記録させる指示の情報を示す分類値を生成することを特徴とするパケットクラシファイア装置。
The packet classifier device according to claim 1,
The search unit, as the classification value for a predetermined candidate ID, information on an instruction to remove a predetermined field in the input packet, information on an instruction to add a new field in the input packet and record predetermined data Or an instruction to remove a predetermined field in the input packet, add a new field, and record data obtained by converting data recorded in the removed field in the newly added field A packet classifier device that generates a classification value indicating the information of the packet.
請求項1に記載のパケットクラシファイア装置において、
前記検索部は、前記候補IDとして、前記検索候補表中の所定のエントリの候補IDのみを対象として指定することを特徴とするパケットクラシファイア装置。
The packet classifier device according to claim 1,
The packet classifier apparatus, wherein the search unit specifies only candidate IDs of predetermined entries in the search candidate table as the candidate IDs.
請求項1に記載のパケットクラシファイア装置において、
前記検索部は、前記分類値を前記入力パケットに付加して出力することを特徴とするパケットクラシファイア装置。
The packet classifier device according to claim 1,
The search unit adds the classification value to the input packet and outputs the packet.
入力パケット中の所定のフィールドに記録された1つ以上のデータである識別子値に基づいて、前記入力パケットを分類する情報である分類値を生成するパケットクラシファイア装置において、
前記識別子値の組み合わせからなる1つ以上の識別子群値のうち、第1の識別子群値のそれぞれに対して、前記第1の識別子群値の1つ以上の識別子群値候補と前記識別子群値候補を特定する候補IDとを対応させた一次検索候補表を保持し、前記各第1の識別子群値と一致する前記識別子群値候補を対応する前記一次検索候補表中から検索し、検出した前記識別子群値候補に対応する候補IDに応じた識別子群IDを生成する一次検索部と、
前記一次検索部で生成された前記識別子群IDのそれぞれに対して、前記識別子群IDの1つ以上の検索候補と前記検索候補を特定する候補IDとを対応させた第1の二次検索候補表を保持し、前記各識別子群IDと一致する前記検索候補を対応する前記第1の二次検索候補表中から検索するとともに、前記識別子群値のうち、前記第1の識別子群値とは異なる第2の識別子群値のそれぞれに対して、前記第2の識別子群値の1つ以上の検索候補と前記検索候補を特定する候補IDとを対応させた第2の二次検索候補表を保持し、前記各第2の識別子群値と一致する前記検索候補を対応する前記第2の二次検索候補表中から検索し、検索された前記各検索候補に対応する候補IDに応じた前記分類値を生成して出力する二次検索部と
を備えることを特徴とするパケットクラシファイア装置。
In a packet classifier device that generates a classification value that is information for classifying the input packet, based on an identifier value that is one or more data recorded in a predetermined field in the input packet.
The one or more identifiers group values consisting of a combination of the identifier values, for each of the first identifier group values, the first one or more identifiers group value candidate with the identifier group value of identifier group value A primary search candidate table that associates candidate IDs that identify candidates is held, and the identifier group value candidates that match the first identifier group values are searched from the corresponding primary search candidate table and detected. A primary search unit for generating an identifier group ID corresponding to a candidate ID corresponding to the identifier group value candidate;
For each of the identifier group ID generated by the primary search unit, the first secondary search candidates made to correspond to the candidate ID for identifying the search candidate with one or more search candidates of the identifier group ID A table is held, and the search candidates that match the identifier group IDs are searched from the corresponding first secondary search candidate table. Among the identifier group values, the first identifier group value is A second secondary search candidate table in which one or more search candidates of the second identifier group value and a candidate ID for specifying the search candidate are associated with each different second identifier group value. Holding the search candidate that matches the second identifier group value from the corresponding second secondary search candidate table, and according to the candidate ID corresponding to each searched search candidate A secondary search unit for generating and outputting classification values A packet classifier device.
入力パケット中の所定のフィールドに記録された1つ以上のデータである識別子値に基づいて、前記入力パケットを分類する情報である分類値を生成するパケットクラシファイア装置において、
前記識別子値の組み合わせからなる1つ以上の識別子群値のうち、第1の識別子群値のそれぞれに対して、前記第1の識別子群値の1つ以上の識別子群値候補と前記識別子群値候補を特定する候補IDとを対応させた一次検索候補表を保持し、前記各第1の識別子群値と一致する前記識別子群値候補を対応する前記一次検索候補表中から検索し、検出した前記識別子群値候補に対応する候補IDに応じた識別子群IDを生成する一次検索部と、
前記一次検索部で生成された前記各識別子群IDから1つ以上の所定の前記識別子群IDを選択して1つ以上の選択識別子群IDを生成し、前記各識別子群IDのそれぞれに対して、前記選択識別子群IDの1つ以上の検索候補と前記検索候補を特定する候補IDとを対応させた第1の二次検索候補表を保持し、前記各選択識別子群IDと一致する前記検索候補を対応する前記第1の二次検索候補表中から検索し、検索された前記各検索候補に対応する候補IDに応じた前記分類値を生成して出力する1つ以上の二次検索部と
を備えることを特徴とするパケットクラシファイア装置。
In a packet classifier device that generates a classification value that is information for classifying the input packet, based on an identifier value that is one or more data recorded in a predetermined field in the input packet.
The one or more identifiers group values consisting of a combination of the identifier values, for each of the first identifier group values, the first one or more identifiers group value candidate with the identifier group value of identifier group value A primary search candidate table that associates candidate IDs that identify candidates is held, and the identifier group value candidates that match the first identifier group values are searched from the corresponding primary search candidate table and detected. A primary search unit that generates an identifier group ID corresponding to a candidate ID corresponding to the identifier group value candidate;
One or more predetermined identifier group IDs are selected from each of the identifier group IDs generated by the primary search unit to generate one or more selected identifier group IDs, and for each of the identifier group IDs , Holding a first secondary search candidate table in which one or more search candidates of the selection identifier group ID and a candidate ID for specifying the search candidate are associated with each other, and the search that matches each of the selection identifier group IDs One or more secondary search units that search for candidates from the corresponding first secondary search candidate table, and generate and output the classification values corresponding to the candidate IDs corresponding to the searched search candidates. And a packet classifier device.
請求項9または請求項10に記載のパケットクラシファイア装置において、
前記一次検索部のいずれかは、前記候補IDに応じたマスクである識別子群マスクを前記第1の識別子群値に施してマスク識別子群値を生成し、前記一次検索候補表で前記候補IDと前記候補IDに応じた識別子群マスクを施した識別子群値候補であるマスク識別子群値候補とを対応させて保持し、前記マスク識別子群値と一致する前記マスク識別子群値候補を前記一次検索候補表から検索し、検索して得られた前記マスク識別子群値候補と対応する前記候補IDに応じた識別子群IDを生成する
ことを特徴とするパケットクラシファイア装置。
In the packet classifier device according to claim 9 or 10,
Any of the primary search units generates an identifier group value by applying an identifier group mask, which is a mask corresponding to the candidate ID, to the first identifier group value, and generates a mask identifier group value in the primary search candidate table. A mask identifier group value candidate that is an identifier group value candidate subjected to an identifier group mask corresponding to the candidate ID is stored in association with each other, and the mask identifier group value candidate that matches the mask identifier group value is the primary search candidate. A packet classifier device, characterized in that an identifier group ID corresponding to the candidate ID corresponding to the mask identifier group value candidate obtained by searching from a table and corresponding to the mask is generated.
請求項9または請求項10に記載のパケットクラシファイア装置において、
前記一次検索部のいずれかは、前記第1の識別子群値のハッシュ値を算出し、前記一次検索候補表で前記第1の識別子群値のハッシュ値の候補である識別子群ハッシュ値候補と前記識別子群ハッシュ値候補を特定する候補IDとを対応させて保持し、前記第1の識別子群値のハッシュ値と一致する前記識別子群ハッシュ値候補を前記一次検索候補表から検索し、検索して得られた前記識別子群ハッシュ値候補と対応する候補IDに応じた識別子群IDを生成する
ことを特徴とするパケットクラシファイア装置。
In the packet classifier device according to claim 9 or 10,
Wherein any of the primary searching unit, the first calculating a hash value of the identifier group values, the primary search candidates the said first candidates for hash value of the identifier group value identifier group hash value candidate table A candidate ID for identifying an identifier group hash value candidate is stored in correspondence, and the identifier group hash value candidate that matches the hash value of the first identifier group value is searched from the primary search candidate table and searched. An identifier group ID corresponding to a candidate ID corresponding to the obtained identifier group hash value candidate is generated.
請求項9または請求項10に記載のパケットクラシファイア装置において、
前記一次検索部のいずれかは、前記一次検索候補表の所定のエントリに前記識別子群値候補としてデータの範囲を指定する範囲指定情報を保持し、前記第1の識別子群値が前記データの範囲を指定する前記識別子群値候補と一致した場合、一致した前記識別子群値候補に対応する候補IDに応じた識別子群IDを生成する
ことを特徴とするパケットクラシファイア装置。
In the packet classifier device according to claim 9 or 10,
One of the primary search units retains range designation information for designating a range of data as the identifier group value candidate in a predetermined entry of the primary search candidate table, and the first identifier group value is a range of the data When the identifier group value candidate designating the identifier group value matches, the identifier group ID corresponding to the candidate ID corresponding to the matched identifier group value candidate is generated.
請求項9または請求項10に記載のパケットクラシファイア装置において、
前記二次検索部は、所定の候補IDに対する前記分類値として、前記入力パケットの廃棄の要否、または前記入力パケットの廃棄の必要性を判断させる廃棄判断の要否を示す情報を示す分類値を生成することを特徴とするパケットクラシファイア装置。
In the packet classifier device according to claim 9 or 10,
The secondary search unit, as the classification value for a predetermined candidate ID, a classification value indicating information indicating the necessity of discarding the input packet or the necessity of discarding determination for determining the necessity of discarding the input packet A packet classifier device.
請求項9または請求項10に記載のパケットクラシファイア装置において、
前記二次検索部は、所定の候補IDに対する前記分類値として、前記入力パケット中の所定のフィールドを除去させる指示の情報、前記入力パケット中に新たなフィールドを付加し所定のデータを記録させる指示の情報、または前記入力パケット中の所定のフィールドを除去するとともに新たなフィールドを付加し、除去される前記フィールドに記録されたデータを変換して得られるデータを新たに付加される前記フィールドに記録させる指示の情報を示す分類値を生成することを特徴とするパケットクラシファイア装置。
In the packet classifier device according to claim 9 or 10,
The secondary search unit, as the classification value for a predetermined candidate ID, information on an instruction to remove a predetermined field in the input packet, an instruction to add a new field to the input packet and record predetermined data Information or a predetermined field in the input packet is removed and a new field is added, and data obtained by converting the data recorded in the removed field is recorded in the newly added field. A packet classifier device that generates a classification value indicating instruction information to be transmitted.
請求項9または請求項10に記載のパケットクラシファイア装置において、
前記一次検索部は、前記候補IDとして、前記一次検索候補表中の所定のエントリの候補IDのみを対象として指定し、
前記二次検索部は、前記候補IDとして、前記第1の二次検索候補表中の所定のエントリの候補IDのみを対象として指定する
ことを特徴とするパケットクラシファイア装置。
In the packet classifier device according to claim 9 or 10,
The primary search unit specifies only the candidate ID of a predetermined entry in the primary search candidate table as the candidate ID,
The secondary search unit specifies only the candidate ID of a predetermined entry in the first secondary search candidate table as the candidate ID.
請求項9または請求項10に記載のパケットクラシファイア装置において、
前記二次検索部は、前記分類値を前記入力パケットに付加して出力することを特徴とするパケットクラシファイア装置。
In the packet classifier device according to claim 9 or 10,
The secondary search unit adds the classification value to the input packet and outputs the packet.
JP2004112859A 2004-04-07 2004-04-07 Packet classifier Expired - Fee Related JP4408052B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004112859A JP4408052B2 (en) 2004-04-07 2004-04-07 Packet classifier

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004112859A JP4408052B2 (en) 2004-04-07 2004-04-07 Packet classifier

Publications (2)

Publication Number Publication Date
JP2005303417A JP2005303417A (en) 2005-10-27
JP4408052B2 true JP4408052B2 (en) 2010-02-03

Family

ID=35334466

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004112859A Expired - Fee Related JP4408052B2 (en) 2004-04-07 2004-04-07 Packet classifier

Country Status (1)

Country Link
JP (1) JP4408052B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5288927B2 (en) * 2008-08-01 2013-09-11 Necパーソナルコンピュータ株式会社 Information processing apparatus and program
US8537831B2 (en) * 2010-02-17 2013-09-17 Alcatel Lucent Method and system for common group action filtering in telecom network environments
JP6096084B2 (en) * 2013-08-27 2017-03-15 日本電信電話株式会社 Traffic scanning apparatus and method

Also Published As

Publication number Publication date
JP2005303417A (en) 2005-10-27

Similar Documents

Publication Publication Date Title
US9495479B2 (en) Traversal with arc configuration information
US9606781B2 (en) Parser engine programming tool for programmable network devices
US8599859B2 (en) Iterative parsing and classification
US7949683B2 (en) Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph
US20030204584A1 (en) Apparatus and method for pattern matching in text based protocol
EP2215565B1 (en) Deterministic finite automata (dfa) graph compression
US7281085B1 (en) Method and device for virtualization of multiple data sets on same associative memory
US10516626B1 (en) Generating configuration data and API for programming a forwarding element
US7599364B2 (en) Configurable network connection address forming hardware
US10911579B1 (en) Generating programmatically defined fields of metadata for network packets
CN111935081B (en) Data packet desensitization method and device
CN110008385B (en) Quick matching identification method and device based on character strings
TW595157B (en) Packet identification device and packet identification method
JP2009219065A (en) Protocol processor and processing method
JP4408052B2 (en) Packet classifier
CN109815263B (en) Fuzzy search data stream identification method and system
KR100462480B1 (en) Apparatus of IP packet classification based on tuple space search , and method thereof
CN114285907B (en) Data transmission method, device, electronic equipment and storage medium
KR20050066807A (en) Apparatus and method for packet classification in router
WO2016101552A1 (en) Message detection method and device, and storage medium
CN112437096A (en) Acceleration strategy searching method and system
JPH11284658A (en) Longest coincident retrieval device
JP4726310B2 (en) Information retrieval apparatus, information retrieval multiprocessor and router
KR100473118B1 (en) An internet protocol packet address lookup method and apparatus for a backbone router
JP3922541B2 (en) Communication packet processing apparatus and system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090526

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090703

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091105

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121120

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131120

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees