JP2013236245A - Packet filter circuit and packet filtering device - Google Patents

Packet filter circuit and packet filtering device Download PDF

Info

Publication number
JP2013236245A
JP2013236245A JP2012107368A JP2012107368A JP2013236245A JP 2013236245 A JP2013236245 A JP 2013236245A JP 2012107368 A JP2012107368 A JP 2012107368A JP 2012107368 A JP2012107368 A JP 2012107368A JP 2013236245 A JP2013236245 A JP 2013236245A
Authority
JP
Japan
Prior art keywords
match
circuit
matching
determination
mismatch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012107368A
Other languages
Japanese (ja)
Inventor
Yoshika Kawamura
嘉郁 川村
Yoshio Matsuda
吉雄 松田
Kazutami Arimoto
和民 有本
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.)
Kanazawa University NUC
Renesas Electronics Corp
Original Assignee
Kanazawa University NUC
Renesas Electronics 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 Kanazawa University NUC, Renesas Electronics Corp filed Critical Kanazawa University NUC
Priority to JP2012107368A priority Critical patent/JP2013236245A/en
Publication of JP2013236245A publication Critical patent/JP2013236245A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROBLEM TO BE SOLVED: To realize downsizing and speeding up in a packet filter circuit and a packet filtering device.SOLUTION: A packet filtering circuit 10 which compares a plurality of match conditions and a received packet to filter packets, includes a buffer circuit 11, a mismatch determination circuit 13, and a partial match determination circuit 14. The mismatch determination circuit 13 divides collation data included in a packet into several bit groups and compares them with part of the match conditions for each divided part. If at least any bit group of the divided collation data does not agree with the match conditions, the mismatch determination circuit 13 determines that the collation data and the match conditions do not agree. When no disagreement is found by the mismatch determination circuit 13, the partial match determination circuit 14 compares the collation data with regard to a match condition among the plurality of match conditions which agrees with part of bit groups of the collation data.

Description

本発明は、パケットフィルタ回路およびパケットフィルタリング装置に関し、特に、小型化、高速化を実現するための技術に関する。   The present invention relates to a packet filter circuit and a packet filtering device, and more particularly to a technique for realizing miniaturization and high speed.

近年、無線通信機器が普及するとともに、通信速度も高速化してきており、通信トラフィックが増加している。高速の通信を実現するため、パケットフィルタリングの高速化も求められている。パケットフィルタリングを行うパケットフィルタ回路は、TCAM(Ternary Content Addressable Memory)等の専用のメモリ回路を備えることにより、高速化を実現している。   In recent years, wireless communication devices have become widespread, communication speeds have increased, and communication traffic has increased. In order to realize high-speed communication, high-speed packet filtering is also required. A packet filter circuit that performs packet filtering is provided with a dedicated memory circuit such as a TCAM (Ternary Content Addressable Memory), thereby achieving high speed.

また、小型の通信機器の通信機能、通信速度が向上しており、家庭内でネットワークを構成する機器も増加している。そのため、組み込み機器にも使用できる、小型で低消費電力を実現するパケットフィルタリング装置が必要とされている。   In addition, the communication function and communication speed of small communication devices have been improved, and the number of devices that constitute a network in the home is also increasing. Therefore, there is a need for a packet filtering device that can be used in embedded devices and that is small in size and achieves low power consumption.

通常、パケットフィルタ回路は、パケットを蓄えるパケットバッファと、予め1以上の一致条件を登録した一致判定回路とにより構成される。このパケットフィルタ回路は、ルータやサーバ等で使用される。また、下記の非特許文献1に記載の技術は、パケットバッファと、一致判定回路と、不一致判定回路とを備えている。一致判定回路は、照合データと、各一致条件とを逐次比較する。不一致判定回路は、一度のメモリアクセスにより、照合データと各一致条件との不一致を判定する。そのため、非特許文献1に記載の技術は、受信したパケットと、各一致条件とが一致しない場合は、一致判定回路による各照合が完了する前に、不一致判定回路により不一致を判定することにより、高速化を実現している。   Usually, the packet filter circuit is composed of a packet buffer for storing packets and a match determination circuit in which one or more match conditions are registered in advance. This packet filter circuit is used in routers and servers. The technique described in Non-Patent Document 1 below includes a packet buffer, a match determination circuit, and a mismatch determination circuit. The coincidence determination circuit sequentially compares the collation data with each coincidence condition. The mismatch determination circuit determines a mismatch between the verification data and each match condition by one memory access. Therefore, in the technique described in Non-Patent Document 1, when the received packet and each match condition do not match, before each matching by the match determination circuit is completed, the mismatch determination circuit determines the mismatch, High speed is realized.

三浦直樹、他5名、「不一致判定回路を用いた高速パケットフィルタ回路」、電子情報通信学会技術研究報告、社団法人 電子情報通信学会、2009年3月、第108巻、478号、p.101‐106Naoki Miura, 5 others, "High-speed packet filter circuit using mismatch judgment circuit", IEICE Technical Report, IEICE, March 2009, 108, 478, p.101 -106

上記非特許文献1に記載の不一致判定回路は、高速化を実現するために、メモリを用いて照合データと一致条件とを比較している。非特許文献1では、メモリの各アドレスに「一致」か「不一致」かの判定結果を格納する。このとき、判定結果「一致」を格納するアドレスは、一致条件の値と対応している。その他のアドレスには判定結果「不一致」が格納される。パケットフィルタ回路は、照合データの値を、メモリの読み出しアドレスとしてメモリの各アドレスに格納される判定結果を参照することにより、「不一致」か「一致」かを判定する。   The mismatch determination circuit described in Non-Patent Document 1 uses a memory to compare verification data with a matching condition in order to achieve high speed. In Non-Patent Document 1, the determination result of “match” or “mismatch” is stored in each address of the memory. At this time, the address storing the determination result “match” corresponds to the value of the match condition. The determination result “mismatch” is stored in other addresses. The packet filter circuit determines whether the value of the verification data is “mismatch” or “match” by referring to the determination result stored at each address of the memory as the read address of the memory.

このように、非特許文献1は、照合データがとりうる値の範囲が大きくなるほど、より大きなメモリ領域を確保する必要がある。例えば照合データがnビットであると、2^n(「^」は、べき乗を示す)個の判定結果を格納するためのメモリ領域が必要となる。そこで、必要となるメモリ領域を削減するため、nビットの照合データをmビットごとに分割して照合する(m<n)。mビットの照合に必要なメモリ領域は、2^mであるため、この手法によると、判定結果を格納するために必要なメモリ領域が、2^nから(n/m)×2^mに削減することができる。   Thus, in Non-Patent Document 1, it is necessary to secure a larger memory area as the range of values that can be taken by collation data increases. For example, if the collation data is n bits, a memory area for storing 2 ^ n ("^" indicates power) determination results is required. Therefore, in order to reduce the required memory area, the n-bit collation data is divided into m bits and collated (m <n). Since the memory area required for the m-bit collation is 2 ^ m, according to this method, the memory area required for storing the determination result is changed from 2 ^ n to (n / m) × 2 ^ m. Can be reduced.

ただし、上記の場合、mビットごとに分割して判定するため、不一致と判定すべきデータを不一致と判定できない場合がある。例えば、一致条件が16ビットの0x1234と0x4567である場合(「0x」は16進数であることを示す)、0x1237という照合データは、本来は不一致と判定されるべきである。しかし、不一致判定回路において、4ビットごとに分割して判定すると、この場合は不一致と判定されない。そのため、不一致判定回路において不一致と判定されない場合は、一致判定回路による照合データと一致条件との比較処理を待つ必要があり、パケットフィルタリングが遅延する。   However, in the above case, since determination is performed by dividing every m bits, there is a case where data that should be determined to be inconsistent cannot be determined to be inconsistent. For example, when the matching condition is 16 bits 0x1234 and 0x4567 ("0x" indicates a hexadecimal number), the collation data 0x1237 should be originally determined as a mismatch. However, in the mismatch determination circuit, if it is determined by dividing every 4 bits, in this case, it is not determined that there is a mismatch. Therefore, when the mismatch determination circuit does not determine that there is a mismatch, it is necessary to wait for the comparison process between the matching data and the matching condition by the match determination circuit, and packet filtering is delayed.

そのため、パケットフィルタ回路において、さらなる高速化の技術が必要とされている。   Therefore, there is a need for a technology for further speeding up the packet filter circuit.

その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。   Other problems and novel features will become apparent from the description of the specification and the accompanying drawings.

一実施の形態に従うパケットフィルタ回路は、複数の一致条件と、受信したパケットとの比較結果に基づいてパケットフィルタリングを行うものであり、バッファ回路と、不一致判定回路と、部分一致判定回路とを含む。バッファ回路は、受信したパケットを保持する。不一致判定回路は、パケットに含まれる照合データを、いくつかのビット群に分割し、分割された部分ごとに一致条件の一部分と比較する。不一致判定回路は、分割された照合データの、少なくともいずれかのビット群で一致条件と不一致の場合に、照合データと一致条件とが不一致であると判定する。部分一致判定回路は、不一致判定回路で不一致と判定されない場合に、複数の一致条件のうち、照合データの一部のビット群と一致する一致条件について、照合データと一致条件とが一致するか否かを判定する。バッファ回路は、不一致判定回路および部分一致判定回路による判定結果に応じてパケットを処理する。   A packet filter circuit according to an embodiment performs packet filtering based on a comparison result between a plurality of matching conditions and a received packet, and includes a buffer circuit, a mismatch determination circuit, and a partial match determination circuit. . The buffer circuit holds the received packet. The mismatch determination circuit divides the verification data included in the packet into several bit groups, and compares each divided portion with a part of the matching condition. The mismatch determination circuit determines that the match data does not match the match condition when the match condition does not match at least one of the bit groups of the divided check data. The partial match determination circuit determines whether or not the matching data matches the matching condition for a matching condition that matches a part of the bit group of the matching data among the plurality of matching conditions when the mismatch judgment circuit does not determine that there is a mismatch. Determine whether. The buffer circuit processes the packet according to the determination result by the mismatch determination circuit and the partial match determination circuit.

一実施の形態に従うパケットフィルタ回路は、不一致判定回路において、照合データと複数の一致条件とを所定のビット群ごとに比較し、不一致判定回路で不一致と判定されない場合に、一致判定回路において照合データと一致条件との比較に要する時間を短縮化することができ、パケットフィルタリングの効率が向上する。   The packet filter circuit according to the embodiment compares the collation data with a plurality of coincidence conditions for each predetermined bit group in the mismatch determination circuit, and if the mismatch determination circuit does not determine a mismatch, And the time required for comparison with the matching condition can be shortened, and the efficiency of packet filtering is improved.

関連技術におけるパケットフィルタリング装置51の構成を示す機能ブロック図である。It is a functional block diagram which shows the structure of the packet filtering apparatus 51 in related technology. 関連技術における一致条件61と、不一致判定回路54による判定方法とを示す図である。It is a figure which shows the matching condition 61 in related technology, and the determination method by the mismatch determination circuit 54. FIG. 関連技術において、不一致判定回路54が不一致を判定できない状況を示す図である。In related technology, it is a figure which shows the condition where the mismatch determination circuit 54 cannot determine a mismatch. パケットフィルタリング装置1の構成を示す図である。1 is a diagram illustrating a configuration of a packet filtering device 1. FIG. パケットフィルタ回路10の構成を示す機能ブロック図である。2 is a functional block diagram showing a configuration of a packet filter circuit 10. FIG. パケットフィルタ回路10の構成を示す図である。1 is a diagram illustrating a configuration of a packet filter circuit 10. FIG. 第1の一致条件保持部21aを構成するメモリの詳細を示す図である。It is a figure which shows the detail of the memory which comprises the 1st matching condition holding | maintenance part 21a. 部分一致判定条件保持メモリ23の記憶内容例を示す図である。FIG. 4 is a diagram showing an example of stored contents of a partial match determination condition holding memory 23. 一致条件の一例と、本実施形態における照合データと一致条件との比較例を示す図である。It is a figure which shows an example of matching conditions, and the comparative example of collation data and matching conditions in this embodiment.

以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the following description, the same parts are denoted by the same reference numerals. Their names and functions are also the same. Therefore, detailed description thereof will not be repeated.

<1.1 関連技術の構成の詳細>
ここで、本実施形態と比較するため、関連技術の構成を説明する。
<1.1 Details of configuration of related technology>
Here, in order to compare with this embodiment, the structure of a related technique is demonstrated.

図1は、関連技術におけるパケットフィルタリング装置51の構成を示す機能ブロック図である。パケットフィルタリング装置51は、パケットを転送するか否かを判定するための複数の一致条件(パケットの転送を許可するIPアドレス等)を保持している。パケットフィルタリング装置51は、パケットに含まれる照合データ(一致条件と比較するためのパケットの一部分であり、例えばパケットのヘッダに含まれる送信先アドレス)が一致条件と一致するか否かに応じてパケットを処理する。パケットの処理とは、例えば、照合データと一致条件とが一致する場合は、パケットフィルタリング装置51は、パケット転送等の処理を行う。また、パケットフィルタリング装置51は、照合データが一致条件の全てと不一致の場合は、パケットを廃棄する等の処理を行う。   FIG. 1 is a functional block diagram showing a configuration of a packet filtering device 51 in the related art. The packet filtering device 51 holds a plurality of matching conditions (such as an IP address that permits packet transfer) for determining whether or not to transfer a packet. The packet filtering device 51 determines whether the matching data included in the packet (a part of the packet to be compared with the matching condition, for example, the transmission destination address included in the header of the packet) matches the matching condition. Process. With packet processing, for example, when the collation data matches the matching condition, the packet filtering device 51 performs processing such as packet transfer. Further, the packet filtering device 51 performs processing such as discarding the packet when the collation data does not match all the matching conditions.

図1に示すように、パケットフィルタリング装置51は、バッファ回路52と、一致判定回路53と、不一致判定回路54と、OR回路55とを含む。   As shown in FIG. 1, the packet filtering device 51 includes a buffer circuit 52, a match determination circuit 53, a mismatch determination circuit 54, and an OR circuit 55.

バッファ回路52は、パケットフィルタリング装置51が外部の通信機器より受け付けたパケットを蓄積する。また、パケットフィルタリング装置51は、外部の通信機器からの判定要求に応じて、パケットフィルタリングを開始する。パケットフィルタリング装置51は、一致判定回路53および不一致判定回路54による判定結果に従って、パケットを処理する。   The buffer circuit 52 stores packets received by the packet filtering device 51 from an external communication device. The packet filtering device 51 starts packet filtering in response to a determination request from an external communication device. The packet filtering device 51 processes the packet according to the determination results by the match determination circuit 53 and the mismatch determination circuit 54.

一致判定回路53は、複数の一致条件を保持しており、照合データをバッファ回路52から受け付けて、照合データを、複数の一致条件と逐次比較し、いずれかの一致条件と一致するか否かを判定する。一致判定回路53は、照合データに一致する一致条件があると判定した場合は、一致判定信号をバッファ回路52へ出力する。一致判定回路53は、全ての一致条件と照合データとを比較して、照合データに一致する一致条件がないと判定した場合は、不一致判定信号をOR回路55へ出力する。   The coincidence determination circuit 53 holds a plurality of coincidence conditions, receives the collation data from the buffer circuit 52, sequentially compares the collation data with the plurality of coincidence conditions, and whether or not any of the coincidence conditions is met. Determine. The coincidence determination circuit 53 outputs a coincidence determination signal to the buffer circuit 52 when it is determined that there is a coincidence condition that matches the collation data. The coincidence determination circuit 53 compares all the coincidence conditions with the collation data, and outputs a mismatch coincidence signal to the OR circuit 55 when it is determined that there is no coincidence condition that coincides with the collation data.

不一致判定回路54は、照合データと一致条件とが不一致であるか判定する。不一致判定回路54は、メモリを含み、メモリアドレスと対応づけて、一致または不一致の判定結果を格納する。不一致判定回路54は、照合データをもとにしたアドレスを参照することにより、照合データと一致条件とが不一致であるか判定する。この場合、一致条件のビット数に応じたメモリ領域が必要となる。   The mismatch determination circuit 54 determines whether or not the verification data and the matching condition are mismatched. The mismatch determination circuit 54 includes a memory, and stores a determination result of match or mismatch in association with the memory address. The mismatch determination circuit 54 refers to an address based on the verification data to determine whether the verification data does not match the matching condition. In this case, a memory area corresponding to the number of bits of the matching condition is required.

例えば一致条件が16ビットであれば、2^16個の判定結果を格納するメモリ領域が必要となる。そこで、この関連技術では、メモリ領域の削減のため、一致条件を4ビットごとに4つに分割して、分割された各部分において取りうる値の範囲をメモリアドレスとして各アドレスにおいて一致または不一致の判定結果を格納する。この場合、必要なメモリ領域は、4×2^4となる。詳しくは後述する。   For example, if the matching condition is 16 bits, a memory area for storing 2 ^ 16 determination results is required. Therefore, in this related technique, in order to reduce the memory area, the matching condition is divided into four for every four bits, and the range of values that can be taken in each divided portion is used as a memory address to match or not match each address. Stores the judgment result. In this case, the necessary memory area is 4 × 2 ^ 4. Details will be described later.

OR回路55は、不一致判定回路54および一致判定回路53の出力結果を受け付けて、いずれかにおいて不一致判定信号が出力された場合に、不一致判定信号をバッファ回路52へ出力する。   The OR circuit 55 receives the output results of the mismatch determination circuit 54 and the match determination circuit 53, and outputs a mismatch determination signal to the buffer circuit 52 when a mismatch determination signal is output in either of them.

関連技術においては、照合データと一致条件とが不一致である場合、不一致判定回路54では、メモリアドレスを参照することにより判定結果が得られる。これに対し、一致判定回路53では、照合データを、個々の一致条件と逐次比較する。そのため不一致判定回路54の判定結果が一致判定回路53よりも早く出力される傾向にある。ただし、不一致判定回路54では、一致条件を分割して照合データと比較しているため、不一致判定回路54において不一致と判定されない場合であっても、照合データと一致条件とが不一致であることがある。この場合は、一致判定回路53により全ての一致条件と照合データとを比較するまで不一致を確定することができず、処理が遅延する。   In the related art, when the collation data does not match the matching condition, the mismatch determination circuit 54 obtains a determination result by referring to the memory address. On the other hand, the matching determination circuit 53 sequentially compares the matching data with each matching condition. Therefore, the determination result of the mismatch determination circuit 54 tends to be output earlier than the match determination circuit 53. However, since the mismatch determination circuit 54 divides the match condition and compares it with the collation data, the collation data and the match condition may not match even if the mismatch determination circuit 54 does not determine a mismatch. is there. In this case, the mismatch cannot be determined until all the matching conditions are compared with the matching data by the match determination circuit 53, and the processing is delayed.

<1.2 関連技術における不一致判定回路54の不一致判定方法>
図2は、関連技術における一致条件61と、不一致判定回路54による判定方法とを示す図である。
<1.2 Disagreement Determination Method of Disagreement Determination Circuit 54 in Related Technology>
FIG. 2 is a diagram illustrating a matching condition 61 and a determination method by the mismatch determination circuit 54 in the related art.

例えば、図2に示すように、一致条件61は、「0x1234」(第1の一致条件61a)と「0x4567」(第2の一致条件61b)であるとする。   For example, as shown in FIG. 2, the matching conditions 61 are “0x1234” (first matching condition 61a) and “0x4567” (second matching condition 61b).

不一致判定回路54は、一致条件61を4つに分割し、各部分について、メモリアドレスのインデックス値と対応づけて一致または不一致の判定結果を格納している(第1の一致条件保持部71、第2の一致条件保持部72、第3の一致条件保持部73、第4の一致条件保持部74)。例えば第1の一致条件保持部71は、一致条件61の始めの4ビットの判定結果をメモリアドレスと対応づけて格納している。図2の例では、一致条件61の始めの4ビットは、第1の一致条件61aは「1」、第2の一致条件61bは「4」である。そこで、第1の一致条件保持部71は、メモリアドレスのインデックス値「1」と「4」とに対応づけて、判定結果「一致」を格納している。第2の一致条件保持部72、第3の一致条件保持部73、第4の一致条件保持部74についても同様に、一致条件61の各部分の判定結果を、メモリアドレスのインデックス値と対応づけて格納している。   The mismatch determination circuit 54 divides the match condition 61 into four, and stores the match or mismatch determination result in association with the index value of the memory address for each part (first match condition holding unit 71, A second matching condition holding unit 72, a third matching condition holding unit 73, and a fourth matching condition holding unit 74). For example, the first matching condition holding unit 71 stores the first 4-bit determination result of the matching condition 61 in association with the memory address. In the example of FIG. 2, the first four bits of the matching condition 61 are “1” for the first matching condition 61 a and “4” for the second matching condition 61 b. Therefore, the first matching condition holding unit 71 stores the determination result “matching” in association with the index values “1” and “4” of the memory addresses. Similarly for the second matching condition holding unit 72, the third matching condition holding unit 73, and the fourth matching condition holding unit 74, the determination result of each part of the matching condition 61 is associated with the index value of the memory address. Stored.

こうすることにより、不一致判定回路54において、照合データが一致条件61と不一致であるか判定するのに必要な領域は、4×2^4個となる。   By doing so, the mismatch determination circuit 54 requires 4 × 2 ^ 4 regions to determine whether the matching data does not match the match condition 61.

<1.3 関連技術の不一致判定回路54が不一致を判定できない状況>
図3は、関連技術において、不一致判定回路54が不一致を判定できない状況を示す図である。
<1.3 Situations in which the mismatch determination circuit 54 of the related technology cannot determine the mismatch>
FIG. 3 is a diagram illustrating a situation in which the mismatch determination circuit 54 cannot determine a mismatch in the related art.

図3において、一致条件は図2と同様、「0x1234」と「0x4567」とする。照合データ76の値が「0x1237」の場合に、不一致判定回路54において照合データ76が各一致条件と不一致であるか、図3に示すように判定される。すなわち、照合データ76の始めの4ビットに示される値「0x1」に基づいて、第1の一致条件71保持部のメモリアドレスのインデックスを参照して判定結果「一致」がメモリから読みだされる。同様に、照合データ76の4ビットごとのビット群が一致条件の一部分と一致するか不一致であるか判定される。   In FIG. 3, the matching conditions are “0x1234” and “0x4567” as in FIG. When the value of the matching data 76 is “0x1237”, the mismatch determination circuit 54 determines whether the matching data 76 does not match each matching condition as shown in FIG. That is, based on the value “0x1” shown in the first 4 bits of the collation data 76, the determination result “match” is read from the memory with reference to the memory address index of the first match condition 71 holding unit. . Similarly, it is determined whether the bit group of every 4 bits of the collation data 76 matches or does not match a part of the matching condition.

OR回路75は、第1の一致条件保持部71、第2の一致条件保持部72、第3の一致条件保持部73、第4の一致条件保持部74の各メモリの少なくともいずれか1つから不一致が読みだされれば「不一致」を出力する。しかし、この場合、いずれのメモリからも「一致」が読みだされるため、OR回路75は、判定結果「不一致」を出力せず、「一致」を出力する。   The OR circuit 75 includes at least one of the first matching condition holding unit 71, the second matching condition holding unit 72, the third matching condition holding unit 73, and the fourth matching condition holding unit 74. If a mismatch is read out, “mismatch” is output. However, in this case, since “match” is read from any memory, the OR circuit 75 outputs “match” without outputting the determination result “mismatch”.

このように、照合データの各ビット群を、一致条件の各部分と比較した場合、実際は照合データと一致条件とが不一致である場合においても、不一致判定回路54から「不一致」が出力されないことがある。そのため、パケットフィルタリング装置51において不一致を確定するには、一致判定回路53による判定結果を待つ必要がある。   As described above, when each bit group of the collation data is compared with each part of the coincidence condition, even if the collation data and the coincidence condition are actually inconsistent, the “mismatch” may not be output from the inconsistency determination circuit 54. is there. Therefore, in order to determine the mismatch in the packet filtering device 51, it is necessary to wait for a determination result by the match determination circuit 53.

<2.1 本実施形態のパケットフィルタリング装置1の構成の概要>
次に、図面を用いて本実施形態のパケットフィルタリング装置1の構成について、まず概要を説明する。
<2.1 Outline of Configuration of Packet Filtering Device 1 of Present Embodiment>
Next, an outline of the configuration of the packet filtering device 1 of the present embodiment will be described first with reference to the drawings.

図4は、パケットフィルタリング装置1の構成を示す図である。
図4に示すように、パケットフィルタリング装置1は、MPU(Micro-Processing Unit)2と、RAM(Random Access Memory)3と、ROM(Read Only Memory)4と、通信モジュール5と、パケットフィルタ回路10とを含む。
FIG. 4 is a diagram illustrating a configuration of the packet filtering device 1.
As shown in FIG. 4, the packet filtering device 1 includes an MPU (Micro-Processing Unit) 2, a RAM (Random Access Memory) 3, a ROM (Read Only Memory) 4, a communication module 5, and a packet filter circuit 10. Including.

MPU2は、プロセッサ等を備え、通信モジュール5やパケットフィルタ回路10等の動作を制御して、パケットフィルタリング装置1のパケットフィルタリング処理を制御する。   The MPU 2 includes a processor and controls operations of the communication module 5 and the packet filter circuit 10 to control packet filtering processing of the packet filtering device 1.

RAM3は、MPU2の処理に供するため、ROM4から読みだされたプログラムやデータ等を保持するメモリ領域である。   The RAM 3 is a memory area that holds programs, data, and the like read from the ROM 4 for use in the processing of the MPU 2.

ROM4は、プログラムやデータ等を格納する。
通信モジュール5は、外部の通信機器と通信するための通信インタフェースである。通信モジュール5は、例えば有線LAN(Local Area Network)、無線LAN(IEEE 802.11n)による通信インタフェースに対応している。
The ROM 4 stores programs and data.
The communication module 5 is a communication interface for communicating with an external communication device. The communication module 5 corresponds to a communication interface using, for example, a wired LAN (Local Area Network) or a wireless LAN (IEEE 802.11n).

パケットフィルタ回路10は、通信モジュール5により受信されたパケットを保持し、パケットに含まれる照合データ(パケットヘッダの一部分など)が一致条件と一致するか否かに応じてパケットフィルタリングを行う。一致条件は、パケットフィルタ回路10において、パケットを転送するか廃棄するか等の処理を行うため、照合データと比較されるデータである。例えば、照合データが、パケットヘッダに含まれる送信先IPアドレスであれば、個々の一致条件は、パケットフィルタリング装置1がパケットの転送を許可する情報通信機器のIPアドレスである。本実施形態では、照合データと、複数の一致条件のいずれかとが一致する場合はパケットを転送し、一致しない場合は、パケットを廃棄する。   The packet filter circuit 10 holds the packet received by the communication module 5, and performs packet filtering according to whether or not the collation data (such as a part of the packet header) included in the packet matches the matching condition. The matching condition is data to be compared with the verification data in order to perform processing such as whether to transfer or discard the packet in the packet filter circuit 10. For example, if the collation data is a destination IP address included in the packet header, each matching condition is an IP address of an information communication device that the packet filtering device 1 permits packet transfer. In the present embodiment, the packet is transferred when the collation data matches one of the plurality of matching conditions, and the packet is discarded when they do not match.

なお、本実施形態では、照合データと、複数の一致条件それぞれとを比較するため、一致条件を複数のビット群に分割して(本実施形態では、照合データおよび一致条件を16ビットのデータとし、一致条件を4ビットごとに分割している)、不一致判定回路13において不一致判定条件21としてメモリにおいて保持している。また、部分一致判定回路14において、一致条件の一部(一致条件のうち12ビット)を部分一致判定条件22としてメモリにおいて保持している。   In this embodiment, in order to compare the matching data with each of the plurality of matching conditions, the matching conditions are divided into a plurality of bit groups (in this embodiment, the matching data and the matching conditions are 16-bit data). The mismatch condition is divided every 4 bits), and the mismatch determination circuit 13 holds it as the mismatch determination condition 21 in the memory. In the partial match determination circuit 14, a part of the match condition (12 bits of the match condition) is held in the memory as the partial match determination condition 22.

パケットフィルタ回路10は、図4に示すように、バッファ回路11と、判定結果出力回路12と、不一致判定回路13と、部分一致判定回路14とを含む。パケットフィルタ回路10は、MPU2の判定要求に応じてパケットフィルタリングを行う。詳しくは後述する。   As shown in FIG. 4, the packet filter circuit 10 includes a buffer circuit 11, a determination result output circuit 12, a mismatch determination circuit 13, and a partial match determination circuit 14. The packet filter circuit 10 performs packet filtering in response to the MPU 2 determination request. Details will be described later.

<2.2 パケットフィルタ回路10の構成>
図5は、パケットフィルタ回路10の構成を示す機能ブロック図である。
<2.2 Configuration of Packet Filter Circuit 10>
FIG. 5 is a functional block diagram showing the configuration of the packet filter circuit 10.

図5に示すように、パケットフィルタ回路10は、通信モジュール5において受信されたパケットを受け付け、MPU2からパケットの判定要求を受け付けることによりパケットフィルタリングを開始する。   As illustrated in FIG. 5, the packet filter circuit 10 receives a packet received by the communication module 5 and starts packet filtering by receiving a packet determination request from the MPU 2.

バッファ回路11は、パケットを保持するとともに、パケットの判定要求を受け付けて部分一致判定回路14および不一致判定回路13へ判定開始信号を出力する。バッファ回路11は、後述する判定結果出力回路12から出力される判定結果に応じた処理を行う。例えば、バッファ回路11は、照合データと一致条件とが一致する場合はパケット転送等の処理を行い、不一致の場合はパケットを廃棄する等の処理を行う。   The buffer circuit 11 holds the packet, receives a packet determination request, and outputs a determination start signal to the partial match determination circuit 14 and the mismatch determination circuit 13. The buffer circuit 11 performs processing according to the determination result output from the determination result output circuit 12 described later. For example, the buffer circuit 11 performs processing such as packet transfer when the matching data matches the matching condition, and performs processing such as discarding the packet when the matching data does not match.

不一致判定回路13は、照合データと、一致条件とが不一致であるか判定する。上記のように、不一致判定回路13は、一致条件を複数のビット群に分割して不一致判定条件21として保持しており、照合データを、所定ビットずつ、並列に、一致条件の各部分と比較する。不一致判定回路13の詳細は後述するが、不一致判定回路13は、照合データの、各ビット群の比較結果の少なくともいずれかが不一致であれば不一致判定信号を判定結果出力回路12へ出力する。一方、不一致判定回路13は、照合データの、各ビット群の比較結果がいずれも一致であれば、部分一致判定回路14において部分一致判定条件22を保持しているメモリのアドレスのインデックス値を示す値を部分一致判定回路14へ出力する。   The mismatch determination circuit 13 determines whether or not the collation data and the match condition are mismatched. As described above, the mismatch determination circuit 13 divides the match condition into a plurality of bit groups and holds it as the mismatch determination condition 21, and compares the collation data with each part of the match condition in parallel by predetermined bits. To do. Although details of the mismatch determination circuit 13 will be described later, the mismatch determination circuit 13 outputs a mismatch determination signal to the determination result output circuit 12 when at least one of the comparison results of the respective bit groups of the verification data does not match. On the other hand, the mismatch determination circuit 13 indicates the index value of the address of the memory holding the partial match determination condition 22 in the partial match determination circuit 14 if the comparison results of the respective bit groups of the matching data match. The value is output to the partial match determination circuit 14.

部分一致判定回路14は、照合データと、一致条件とが一致するか判定する。上記のように、部分一致判定回路14は、一致条件を部分一致判定条件22として保持している。部分一致判定回路14の詳細は後述するが、部分一致判定回路14は、不一致判定回路13において、照合データの各ビット群の比較結果がいずれも一致する場合に、複数の一致条件のうち、照合データの一部のビット群と一致する一致条件について、逐次、照合データと比較する。このように、部分一致判定回路14は、照合データと比較するための一致条件の範囲を一部に限定して、照合データと一致条件とが一致するか判定する。そのため、パケットフィルタリング装置1は、照合データと一致条件とが不一致の場合に、関連技術のように全ての一致条件と照合データとを比較する場合よりも、比較回数を減らすことができる。   The partial match determination circuit 14 determines whether the matching data matches the matching condition. As described above, the partial match determination circuit 14 holds the match condition as the partial match determination condition 22. Although the details of the partial match determination circuit 14 will be described later, the partial match determination circuit 14 determines whether the match result of the plurality of match conditions when all the comparison results of the bit groups of the match data match in the mismatch determination circuit 13. The matching condition that matches a part of the data bit group is sequentially compared with the collation data. In this way, the partial match determination circuit 14 limits the range of the matching condition for comparison with the matching data to a part and determines whether the matching data matches the matching condition. Therefore, the packet filtering device 1 can reduce the number of comparisons when the matching data and the matching condition do not match as compared with the case where all matching conditions and the matching data are compared as in the related art.

判定結果出力回路12は、不一致判定回路13および部分一致判定回路14による、照合データと一致条件との比較結果に基づいて、照合データと一致条件とが一致するか不一致であるかを出力する。詳細は後述するが、判定結果出力回路12は、不一致判定回路13により不一致と判定されず、かつ、部分一致判定回路14により一致と判定される場合に、一致判定信号をバッファ回路11へ出力する。また、判定結果出力回路12は、不一致判定回路13により不一致と判定された場合、または、部分一致判定回路14により不一致と判定された場合に、不一致判定信号をバッファ回路11へ出力する。   The determination result output circuit 12 outputs whether the matching data matches the matching condition based on the comparison result between the matching data and the matching condition by the mismatch determination circuit 13 and the partial match determination circuit 14. Although details will be described later, the determination result output circuit 12 outputs a match determination signal to the buffer circuit 11 when the mismatch determination circuit 13 does not determine a mismatch and the partial match determination circuit 14 determines a match. . The determination result output circuit 12 outputs a mismatch determination signal to the buffer circuit 11 when the mismatch determination circuit 13 determines a mismatch or when the partial match determination circuit 14 determines a mismatch.

<2.3 パケットフィルタ回路10の詳細>
次に、図面を用いてパケットフィルタ回路10の詳細な構成を説明する。
<2.3 Details of Packet Filter Circuit 10>
Next, a detailed configuration of the packet filter circuit 10 will be described with reference to the drawings.

図6は、パケットフィルタ回路10の構成を示す図である。
<2.3.1 バッファ回路11>
図6に示すように、バッファ回路11は、照合データを保持している。図6の例では、照合データを16ビットとし、4ビットごとの4つのビット群(A,B,C,Dの4つのビット群)に分割して不一致判定回路13へ出力している。
FIG. 6 is a diagram illustrating a configuration of the packet filter circuit 10.
<2.3.1 Buffer Circuit 11>
As shown in FIG. 6, the buffer circuit 11 holds collation data. In the example of FIG. 6, the collation data is 16 bits, divided into 4 bit groups (4 bit groups of A, B, C, and D) every 4 bits and output to the mismatch determination circuit 13.

図示する例において、照合データの「A」のビット群を第1のビット群とし、「B」「C」「D」の3つのビット群を第2のビット群とすると、バッファ回路11は、第2のビット群を比較器49へ出力する。   In the example shown in the drawing, when the bit group “A” of the collation data is the first bit group and the three bit groups “B”, “C”, and “D” are the second bit group, the buffer circuit 11 The second bit group is output to the comparator 49.

<2.3.2 不一致判定回路13>
不一致判定回路13は、照合データの各ビット群と、一致条件の各部分とを並列に比較して比較結果を出力する。不一致判定回路13は、第1の不一致判定部30と、第2の不一致判定部31と、第3の不一致判定部32と、第4の不一致判定部33と、NOR回路34とを含む。不一致判定回路13は、第1の不一致判定部30、第2の不一致判定部31、第3の不一致判定部32、第4の不一致判定部33を用いて、照合データの各ビット群を、並列に一致条件と比較する。
<2.3.2 Mismatch Determination Circuit 13>
The mismatch determination circuit 13 compares each bit group of the collation data with each part of the matching condition in parallel and outputs a comparison result. The mismatch determination circuit 13 includes a first mismatch determination unit 30, a second mismatch determination unit 31, a third mismatch determination unit 32, a fourth mismatch determination unit 33, and a NOR circuit 34. The mismatch determination circuit 13 uses the first mismatch determination unit 30, the second mismatch determination unit 31, the third mismatch determination unit 32, and the fourth mismatch determination unit 33 to parallelize each bit group of the collation data. Compare with matching conditions.

第1の不一致判定部30は、ラッチ回路40と、DEC(デコーダ)80と、第1の一致条件保持部21aとを含む。図示する例では、第1の不一致判定部30は、照合データの「A」のビット群について、対応する一致条件の一部分との一致または不一致を出力する。   The first mismatch determination unit 30 includes a latch circuit 40, a DEC (decoder) 80, and a first match condition holding unit 21a. In the illustrated example, the first mismatch determination unit 30 outputs a match or mismatch with a part of the corresponding matching condition for the “A” bit group of the matching data.

ラッチ回路40は、照合データの一部のビット群(ビット群「A」)のデータを保持する。   The latch circuit 40 holds data of a part of bit groups (bit group “A”) of the collation data.

第1の一致条件保持部21aは、メモリにより構成され、一致条件の一部分の取りうる値をインデックスアドレスと対応づけて、一致または不一致の判定結果を格納する。   The first matching condition holding unit 21a is configured by a memory, stores a matching or mismatching determination result by associating a possible value of a part of the matching condition with an index address.

第1の一致条件保持部21aを保持するメモリについて、詳細を説明する。
図7は、第1の一致条件保持部21aを構成するメモリの詳細を示す図である。
Details of the memory holding the first matching condition holding unit 21a will be described.
FIG. 7 is a diagram showing details of the memory constituting the first matching condition holding unit 21a.

第1の一致条件保持部21aを構成するメモリは、アドレス21eと、判定結果格納領域21fと、条件番号21gとにより構成される。なお、図6に示す第1の一致条件保持部21aでは、アドレス21eを省略して示している。   The memory constituting the first coincidence condition holding unit 21a includes an address 21e, a determination result storage area 21f, and a condition number 21g. In the first matching condition holding unit 21a shown in FIG. 6, the address 21e is omitted.

アドレス21eは、照合データの「A」のビット群において取りうる値と対応づけられている。本実施形態では、照合データの「A」のビット群は4ビットであるとしているため、アドレス21eにおいて、アドレス「0」から「15」まで用意されている。   The address 21e is associated with a possible value in the “A” bit group of the collation data. In this embodiment, since the bit group of “A” in the collation data is 4 bits, addresses “0” to “15” are prepared in the address 21e.

判定結果21fは、アドレス21eに示される、照合データの「A」のビット群において取りうる値と対応づけられて、一致条件と一致しているか不一致であるかの判定結果を格納する領域である。   The determination result 21f is an area that stores a determination result that is associated with a value that can be taken in the bit group “A” of the collation data indicated by the address 21e and that matches or does not match the matching condition. .

条件番号21gは、判定結果21fにおいて「一致」の判定結果を格納するものについて、後述する部分一致判定条件22を保持するメモリにおいて参照すべきインデックスアドレスの値を格納する。判定結果21fにおいて「不一致」の判定結果を格納するものについては、条件番号21gは値を格納していない。   The condition number 21g stores the value of the index address to be referred to in the memory that holds the partial match determination condition 22 described later for the one that stores the determination result of “match” in the determination result 21f. For the determination result 21f that stores the determination result of “mismatch”, the condition number 21g does not store a value.

図6に戻り説明を続ける。
DEC80は、第1の一致条件保持部21aを構成するメモリに対し、ラッチ回路40において保持されている値に対応するアドレスのメモリ領域を活性化させる。
Returning to FIG.
The DEC 80 activates the memory area of the address corresponding to the value held in the latch circuit 40 with respect to the memory constituting the first matching condition holding unit 21a.

第1の不一致判定部30は、DEC80により活性化されたアドレスにかかるメモリ領域の判定結果21fを読み出してNOR回路34に出力するとともに、条件番号21gを読み出して部分一致判定回路14のセレクタ46へ出力する。なお、本実施形態では、不一致判定回路13は、NOR回路34において、第1の不一致判定部30、第2の不一致判定部31、第3の不一致判定部32、第4の不一致判定部33の少なくともいずれかから「不一致」の判定結果が出力された場合に、不一致と判定することとする。そのため、第1の一致条件保持部21aを構成するメモリにおいて、照合データの「A」のビット群に対応する判定結果21fが「不一致」であれば、信号HIが出力される。   The first mismatch determination unit 30 reads the determination result 21f of the memory area corresponding to the address activated by the DEC 80, outputs it to the NOR circuit 34, and reads the condition number 21g to the selector 46 of the partial match determination circuit 14. Output. In the present embodiment, the mismatch determination circuit 13 includes the first mismatch determination unit 30, the second mismatch determination unit 31, the third mismatch determination unit 32, and the fourth mismatch determination unit 33 in the NOR circuit 34. When a determination result of “mismatch” is output from at least one of them, it is determined that there is a mismatch. Therefore, if the determination result 21f corresponding to the “A” bit group of the collation data is “mismatch” in the memory constituting the first matching condition holding unit 21a, the signal HI is output.

第2の不一致判定部31は、ラッチ回路41と、DEC81と、第2の一致条件保持部21bとを含む。図示する例では、第2の不一致判定部31は、照合データの「B」のビット群について、対応する一致条件の一部分との一致または不一致を出力する。   The second mismatch determination unit 31 includes a latch circuit 41, a DEC 81, and a second match condition holding unit 21b. In the example shown in the drawing, the second mismatch determination unit 31 outputs a match or mismatch with a part of the corresponding matching condition for the “B” bit group of the collation data.

ラッチ回路41は、照合データの一部のビット群(ビット群「B」)のデータを保持する。   The latch circuit 41 holds data of a part of bit groups (bit group “B”) of the collation data.

第2の一致条件保持部21bは、メモリにより構成され、一致条件の一部分の取りうる値をインデックスアドレスと対応づけて、一致または不一致の判定結果を格納する。第2の一致条件保持部21bを構成するメモリは、図7を用いると、アドレス21eと、判定結果21fとにより構成される。第2の一致条件保持部21bを構成するメモリは、照合データの「B」のビット群が取りうる値をインデックスアドレスと対応づけて、判定結果21fにおいて「一致」または「不一致」の判定結果を格納する。   The second matching condition holding unit 21b is configured by a memory, stores a matching or mismatching determination result by associating a possible value of a part of the matching condition with an index address. The memory configuring the second matching condition holding unit 21b is configured by an address 21e and a determination result 21f when FIG. 7 is used. The memory constituting the second matching condition holding unit 21b associates the possible values of the “B” bit group of the collation data with the index address, and displays the determination result “match” or “mismatch” in the determination result 21f. Store.

第3の不一致判定部32、第4の不一致判定部33は、第2の不一致判定部31と同様の構成を備える。相違点は、第2の不一致判定部31が照合データの「B」のビット群について、一致条件と比較した処理を行うのに対し、第3の不一致判定部32は、照合データの「C」のビット群について処理し、第4の不一致判定部33は、照合データの「D」のビット群について処理する点である。   The third mismatch determination unit 32 and the fourth mismatch determination unit 33 have the same configuration as the second mismatch determination unit 31. The difference is that the second mismatch determination unit 31 performs a process of comparing the “B” bit group of the collation data with the match condition, whereas the third mismatch determination unit 32 performs “C” of the collation data. The fourth mismatch determination unit 33 processes the “D” bit group of the collation data.

第3の不一致判定部32は、ラッチ回路42と、DEC82と、第3の一致条件保持部21cとを含む。第3の一致条件保持部21cを構成するメモリは、第2の一致条件保持部21bと同様に、アドレス21eと、判定結果21fとにより構成される。第3の一致条件保持部21cを構成するメモリは、照合データの「C」のビット群が取りうる値をインデックスアドレスと対応づけて、判定結果21fにおいて「一致」または「不一致」の判定結果を格納する。   The third mismatch determination unit 32 includes a latch circuit 42, a DEC 82, and a third match condition holding unit 21c. Similar to the second matching condition holding unit 21b, the memory constituting the third matching condition holding unit 21c includes an address 21e and a determination result 21f. The memory constituting the third matching condition holding unit 21c associates the possible value of the “C” bit group of the collation data with the index address, and displays the determination result “match” or “mismatch” in the determination result 21f. Store.

第4の不一致判定部33は、ラッチ回路43と、DEC83と、第4の一致条件保持部21dとを含む。第4の一致条件保持部21dを構成するメモリは、照合データの「D」のビット群が取りうる値をインデックスアドレスと対応づけて、判定結果21fにおいて「一致」または「不一致」の判定結果を格納する。   The fourth mismatch determination unit 33 includes a latch circuit 43, a DEC 83, and a fourth match condition holding unit 21d. The memory constituting the fourth coincidence condition holding unit 21d associates the values that can be taken by the “D” bit group of the collation data with the index address, and determines the decision result “match” or “mismatch” in the decision result 21f. Store.

NOR回路34は、不一致判定回路13における判定結果を出力する。なお、本実施形態では、第1の不一致判定部30等において不一致と判定された場合に第1の不一致判定部30等から信号HIが出力されることとしているが、不一致判定回路13の出力としては、不一致と判定された場合はNOR回路34により信号LOWが出力される。そのため、第1の一致条件保持部21a等のいずれにおいても「一致」が読みだされた場合は、NOR回路34の出力信号は信号HIとなる。   The NOR circuit 34 outputs the determination result in the mismatch determination circuit 13. In the present embodiment, the signal HI is output from the first mismatch determination unit 30 or the like when the first mismatch determination unit 30 or the like determines that there is a mismatch, but as the output of the mismatch determination circuit 13 Is determined to be inconsistent, the NOR circuit 34 outputs a signal LOW. Therefore, when “match” is read in any of the first match condition holding unit 21a and the like, the output signal of the NOR circuit 34 becomes the signal HI.

<2.3.3 部分一致判定回路14>
部分一致判定回路14は、照合データと一致条件とが一致するか判定する。部分一致判定回路14は、不一致判定回路13において照合データの第1のビット群(照合データの「A」のビット群)が一致条件と一致する場合に、照合データと比較する一致条件の範囲を、照合データの第1のビット群と一致するものに絞る。
<2.3.3 Partial Match Determination Circuit 14>
The partial match determination circuit 14 determines whether the matching data matches the matching condition. The partial match determination circuit 14 determines the range of the matching condition to be compared with the matching data when the first bit group of the matching data (the “A” bit group of the matching data) matches the matching condition in the mismatch matching circuit 13. , Narrow down to those that match the first bit group of the collation data.

部分一致判定回路14は、部分一致判定条件保持メモリ23と、ラッチ回路44と、制御回路45と、セレクタ46と、比較回路47と、AND回路48と、比較器49と、DEC84とを含む。   The partial match determination circuit 14 includes a partial match determination condition holding memory 23, a latch circuit 44, a control circuit 45, a selector 46, a comparison circuit 47, an AND circuit 48, a comparator 49, and a DEC 84.

セレクタ46は、第1の一致条件保持部21aの条件番号21gの出力と、後述する部分一致判定条件保持メモリ23のアドレスフィールドに示される値とを受け付けて、いずれかの値を、後述する制御回路45の制御によりラッチ回路44へ出力する。   The selector 46 receives the output of the condition number 21g of the first matching condition holding unit 21a and the value indicated in the address field of the partial matching determination condition holding memory 23 to be described later, and controls one of the values to be described later. The signal is output to the latch circuit 44 under the control of the circuit 45.

ラッチ回路44は、セレクタ46から出力される値を保持する。
DEC84は、部分一致判定条件保持メモリ23に対し、ラッチ回路44において保持されている値に対応するインデックスアドレスのメモリ領域を活性化させる。ラッチ回路44には、部分一致判定条件22において活性化させるインデックスアドレスの値が格納される。
The latch circuit 44 holds the value output from the selector 46.
The DEC 84 activates the memory area of the index address corresponding to the value held in the latch circuit 44 for the partial match determination condition holding memory 23. The latch circuit 44 stores the value of the index address that is activated in the partial match determination condition 22.

ここで、部分一致判定条件保持メモリ23の詳細を説明する。
図8は、部分一致判定条件保持メモリ23の記憶内容例を示す図である。
Here, the details of the partial match determination condition holding memory 23 will be described.
FIG. 8 is a diagram showing an example of the contents stored in the partial match determination condition holding memory 23.

部分一致判定条件保持メモリ23は、アドレス22aと、アドレスフィールド22bと、データフィールド22cとにより構成される。   The partial match determination condition holding memory 23 includes an address 22a, an address field 22b, and a data field 22c.

アドレス22aは、部分一致判定条件保持メモリ23におけるインデックスアドレスを示している。   An address 22 a indicates an index address in the partial match determination condition holding memory 23.

データフィールド22cは、照合データの第2のビット群(図6の例では「B」「C」「D」のビット群)と比較するための、一致条件の一部分を格納している。データフィールド22cに格納されている値は、比較器49において照合データの第2のビット群と比較される。   The data field 22c stores a part of the matching condition for comparison with the second bit group of the collation data (the bit group of “B”, “C”, and “D” in the example of FIG. 6). The value stored in the data field 22c is compared with the second bit group of the collation data in the comparator 49.

アドレスフィールド22bは、データフィールド22cに格納される値と、照合データの第2のビット群とが一致しない場合に、部分一致判定条件保持メモリ23において次に参照すべきインデックスアドレスの値を格納するための領域である。例えば、図8の例では、アドレス22aに示される「k」のレコードは、アドレスフィールド22bにおいて「k+1」と示されている。そのため、アドレス22aにおいて「k」に対応するデータフィールド22cの値が、照合データの第2のビット群と一致しない場合は、アドレス22aにおいて「k+1」に示されるインデックスアドレスの各データが次に参照される。なお、アドレスフィールド22bにおいて「0」と示されている場合は、次に参照すべき一致条件がないことを示す。   The address field 22b stores the value of the index address to be referred to next in the partial match determination condition holding memory 23 when the value stored in the data field 22c does not match the second bit group of the collation data. It is an area for. For example, in the example of FIG. 8, the record “k” indicated by the address 22a is indicated as “k + 1” in the address field 22b. Therefore, when the value of the data field 22c corresponding to “k” in the address 22a does not match the second bit group of the collation data, each data of the index address indicated by “k + 1” in the address 22a is referred to next. Is done. If “0” is indicated in the address field 22b, it indicates that there is no matching condition to be referred to next.

図6に戻り説明を続ける。
部分一致判定条件保持メモリ23において、DEC84により活性化されているメモリ領域のアドレスフィールド22bの値は、比較回路47とセレクタ46に出力される。
Returning to FIG.
In the partial match determination condition holding memory 23, the value of the address field 22b of the memory area activated by the DEC 84 is output to the comparison circuit 47 and the selector 46.

比較回路47は、部分一致判定条件保持メモリ23のアドレスフィールド22bの値を参照し、次に比較すべき一致条件があるか、または比較すべき一致条件がないか判定する。本実施形態では、照合データと一致条件との比較において、次に比較すべき一致条件がない場合、アドレスフィールド22bの値を「0」とすることとしている。そのため、比較回路47は、部分一致判定条件保持メモリ23のアドレスフィールド22bから出力される値が「0」に一致するか判定し、「0」に一致する場合(比較回路47においてYES)は、他に比較すべき一致条件がないため、判定結果出力回路12へ判定終了を示す信号を出力する。また、比較回路47は、部分一致判定条件保持メモリ23のアドレスフィールド22bから出力される値が「0」でない場合(比較回路47においてNO)は、他に比較すべき一致条件があるため、AND回路48へ信号を出力する。   The comparison circuit 47 refers to the value of the address field 22b of the partial match determination condition holding memory 23, and determines whether there is a match condition to be compared next or whether there is a match condition to be compared. In the present embodiment, in the comparison between the collation data and the matching condition, if there is no matching condition to be compared next, the value of the address field 22b is set to “0”. Therefore, the comparison circuit 47 determines whether the value output from the address field 22b of the partial match determination condition holding memory 23 matches “0”, and if it matches “0” (YES in the comparison circuit 47), Since there is no other matching condition to be compared, a signal indicating the end of determination is output to the determination result output circuit 12. Further, when the value output from the address field 22b of the partial match determination condition holding memory 23 is not “0” (NO in the comparison circuit 47), the comparison circuit 47 has another match condition to be compared. A signal is output to the circuit 48.

比較器49は、バッファ回路11から照合データの第2のビット群(第2のビット群にかかる照合データ92)を受け付ける。また、比較器49は、部分一致判定条件保持メモリ23のデータフィールド22cの値(一致条件の一部分91)を受け付ける。これら照合データと、データフィールド22cの値とを比較して、一致するか否か判定する。比較器49は、判定結果をAND回路48と判定結果出力回路12とに出力する。   The comparator 49 receives the second bit group of the collation data (the collation data 92 concerning the second bit group) from the buffer circuit 11. The comparator 49 receives the value of the data field 22c of the partial match determination condition holding memory 23 (part 91 of the match condition). These collation data are compared with the value of the data field 22c to determine whether or not they match. The comparator 49 outputs the determination result to the AND circuit 48 and the determination result output circuit 12.

AND回路48は、部分一致判定条件保持メモリ23を用いた照合データと、一致条件との比較処理を続けるか否かを制御回路45へ出力する。AND回路48は、比較器49による比較結果の出力と、比較回路47の判定結果を受け付ける。AND回路48は、比較器49において、照合データと一致条件とが一致しない場合で、かつ、比較回路47において、次に比較すべき一致条件があると判定された場合、照合データと、データフィールド22cの値との比較を続けるため、制御回路45へ信号を出力する。   The AND circuit 48 outputs to the control circuit 45 whether or not to continue the comparison process between the collation data using the partial match determination condition holding memory 23 and the match condition. The AND circuit 48 receives the output of the comparison result from the comparator 49 and the determination result of the comparison circuit 47. When the comparator 49 does not match the matching data and the matching condition, and the comparing circuit 47 determines that there is a matching condition to be compared next, the AND circuit 48 matches the matching data and the data field. In order to continue the comparison with the value of 22c, a signal is output to the control circuit 45.

制御回路45は、AND回路48からの出力結果を受け付けて、セレクタ46の出力を制御する。制御回路45は、AND回路48からの信号の出力がない場合は、セレクタ46の出力を、不一致判定回路13から出力される、第1の一致条件保持部21aの条件番号21gのものとする。制御回路45は、AND回路48からの信号の出力があると、部分一致判定条件保持メモリ23のアドレスフィールド22bの値を、セレクタ46の出力とする。   The control circuit 45 receives the output result from the AND circuit 48 and controls the output of the selector 46. When there is no signal output from the AND circuit 48, the control circuit 45 sets the output of the selector 46 to the condition number 21 g of the first matching condition holding unit 21 a output from the mismatch determination circuit 13. When the signal is output from the AND circuit 48, the control circuit 45 sets the value of the address field 22 b of the partial match determination condition holding memory 23 as the output of the selector 46.

<2.3.4 判定結果出力回路12>
判定結果出力回路12は、不一致判定回路13および部分一致判定回路14の判定結果を受け付けて、バッファ回路11へ一致判定信号または不一致判定信号を出力する。判定結果出力回路12は、AND回路93と、NOT回路94と、OR回路95と、AND回路96とを含む。
<2.3.4 Determination Result Output Circuit 12>
The determination result output circuit 12 receives the determination results of the mismatch determination circuit 13 and the partial match determination circuit 14 and outputs a match determination signal or a mismatch determination signal to the buffer circuit 11. Determination result output circuit 12 includes an AND circuit 93, a NOT circuit 94, an OR circuit 95, and an AND circuit 96.

AND回路96は、不一致判定回路13において不一致と判定されず、かつ、比較器49において一致すると判定された場合に、一致判定信号を出力する。   The AND circuit 96 outputs a coincidence determination signal when the mismatch determination circuit 13 determines that there is no mismatch and the comparator 49 determines that there is a match.

OR回路95は、AND回路93とNOT回路94との出力を受け付けて、少なくともいずれかの信号がHIであれば不一致判定信号を出力する。NOT回路94は、不一致判定回路13において不一致と判定された場合(不一致判定回路13の出力は信号LOW)に、信号HIを出力する。AND回路93は、不一致判定回路13において不一致と判定されず、比較回路47において、照合データと比較すべき一致条件が他にないと判定され(比較回路47においてYES、照合データと一致条件との比較が終了した場合)、かつ、比較器49において照合データと一致条件とが一致しない場合に、信号HIを出力する。   The OR circuit 95 receives the outputs of the AND circuit 93 and the NOT circuit 94, and outputs a mismatch determination signal if at least one of the signals is HI. The NOT circuit 94 outputs a signal HI when the mismatch determination circuit 13 determines that there is a mismatch (the output of the mismatch determination circuit 13 is a signal LOW). The AND circuit 93 is not determined to be inconsistent by the mismatch determination circuit 13 and is determined by the comparison circuit 47 that there is no other matching condition to be compared with the matching data (YES in the comparison circuit 47, and the matching data matches the matching condition). When the comparison is completed), and when the comparison data does not match the matching condition in the comparator 49, the signal HI is output.

<3 照合データと一致条件との比較例>
以上のように本実施形態について説明してきたが、ここで、照合データと一致条件との比較例について説明する。
<3 Comparison example between matching data and matching conditions>
Although the present embodiment has been described above, a comparative example of the collation data and the matching condition will be described here.

図9は、一致条件の一例と、本実施形態における照合データと一致条件との比較例を示す図である。   FIG. 9 is a diagram illustrating an example of the matching condition and a comparison example between the matching data and the matching condition in the present embodiment.

図9に示すように、照合データを「0x4123」とする。一致条件は、それぞれ「0x0123」「0x2234」「0x3012」等とする。第1の一致条件保持部21aには、照合データの「A」のビット群について、判定結果21fにおいて一致または不一致の判定結果を格納するとともに、条件番号21gにおいて、参照すべき部分一致判定条件保持メモリ23のインデックスアドレスの値が格納されている。   As shown in FIG. 9, the collation data is “0x4123”. The matching conditions are “0x0123”, “0x2234”, “0x3012”, etc., respectively. In the first matching condition holding unit 21a, a determination result of matching or mismatching in the determination result 21f is stored for the bit group “A” of the collation data, and a partial matching determination condition to be referred to is stored in the condition number 21g The value of the index address of the memory 23 is stored.

照合データが「0x4123」であるため、照合データの各部分において、不一致判定回路13は、不一致と判定しない。不一致判定回路13は、第1の一致条件保持部21aの、インデックスアドレス「4」に該当する条件番号21gの値をセレクタ46へ出力する。   Since the collation data is “0x4123”, the mismatch determination circuit 13 does not determine a mismatch in each part of the collation data. The mismatch determination circuit 13 outputs the value of the condition number 21g corresponding to the index address “4” of the first match condition holding unit 21a to the selector 46.

部分一致判定回路14は、部分一致判定条件保持メモリ23のアドレス22aおよびアドレスフィールド22bとを参照し、アドレス22aの「k」「k+1」「k+2」に示される一致条件を、比較器49において順に照合データと比較する。比較の結果、照合データ「0x4123」は、一致条件のいずれとも一致しないと判定される。   The partial match determination circuit 14 refers to the address 22a and the address field 22b of the partial match determination condition holding memory 23, and sequentially matches the match conditions indicated by “k”, “k + 1”, and “k + 2” of the address 22a in the comparator 49. Compare with verification data. As a result of the comparison, it is determined that the collation data “0x4123” does not match any of the matching conditions.

このように、本実施形態によると、複数の一致条件のうち、照合データの一部のビット群と一致するものについて、照合データと一致条件との比較を行う。そのため、複数の一致条件と、照合データとがいずれも不一致の場合に、関連技術のように照合データと全ての一致条件との比較を待つ必要がない。   As described above, according to the present embodiment, the matching data is compared with the matching condition for a plurality of matching conditions that match a part of the bit group of the matching data. Therefore, when all of the plurality of matching conditions and the matching data do not match, there is no need to wait for comparison between the matching data and all the matching conditions as in the related art.

また、部分一致判定回路14の部分一致判定条件保持メモリ23は、RAMにより実現できる。そのため、パケットフィルタリング装置1は、RAMにおいて保持するテーブルを用いたシーケンス制御によりパケットフィルタリングを行うことができ、回路の小型化を図ることができる。本実施形態は、例えば組み込みLSIに適しており、内蔵メモリを持つマイコンや、ASSP(Application Specific Standard Product)や、SoC(System-on-a-chip)への実装も容易である。小型化により、モバイル機器に対しても本実施形態のパケットフィルタ回路を応用することが可能となる。   The partial match determination condition holding memory 23 of the partial match determination circuit 14 can be realized by a RAM. Therefore, the packet filtering device 1 can perform packet filtering by sequence control using a table held in the RAM, and the circuit can be reduced in size. This embodiment is suitable, for example, for an embedded LSI, and can be easily mounted on a microcomputer having a built-in memory, an ASSP (Application Specific Standard Product), or a SoC (System-on-a-chip). The downsizing makes it possible to apply the packet filter circuit of the present embodiment to mobile devices.

また、RAMを用いる場合は、活性化させるアドレスが指定されるため、照合データと一致条件とを比較するために全てのメモリ領域を活性化させる場合と比較すると、パケットフィルタ回路の低消費電力化を図ることができる。   In addition, when the RAM is used, the address to be activated is designated, so that the power consumption of the packet filter circuit can be reduced as compared with the case where all the memory areas are activated in order to compare the collation data with the matching condition. Can be achieved.

このように各実施形態について説明してきたが、これら実施形態を組み合わせてもよいことはいうまでもない。   Each embodiment has been described above, but it goes without saying that these embodiments may be combined.

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。   As mentioned above, the invention made by the present inventor has been specifically described based on the embodiment. However, the present invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. Needless to say.

1 パケットフィルタリング装置、2 MPU、3 RAM、4 ROM、5 通信モジュール、10 パケットフィルタ回路、11 バッファ回路、12 判定結果出力回路、13 不一致判定回路、14 部分一致判定回路、21 不一致判定条件、22 部分一致判定条件、21a 第1の一致条件保持部、21b 第2の一致条件保持部21b、21c 第3の一致条件保持部21c、21d 第4の一致条件保持部21d、22 部分一致判定条件、23 部分一致判定条件保持メモリ、30 第1の不一致判定部、31 第2の不一致判定部、32 第3の不一致判定部、33 第4の不一致判定部、34 NOR回路、40 ラッチ回路、41 ラッチ回路、42 ラッチ回路、43 ラッチ回路、44 ラッチ回路、45 制御回路、46 セレクタ、47 比較回路、48 AND回路、49 比較器、51 パケットフィルタリング装置、52 バッファ回路、53 一致判定回路、54 不一致判定回路、55 OR回路、61 一致条件、71 第1の一致条件保持部、72 第2の一致条件保持部、73 第3の一致条件保持部、74 第4の一致条件保持部、75 OR回路、76 照合データ、80 DEC、81 DEC、82 DEC、83 DEC、84 比較器、91 一致条件の一部分、92 照合データ、93 AND回路、94 NOT回路、95 OR回路、96 AND回路。   1 packet filtering device, 2 MPU, 3 RAM, 4 ROM, 5 communication module, 10 packet filter circuit, 11 buffer circuit, 12 judgment result output circuit, 13 mismatch judgment circuit, 14 partial match judgment circuit, 21 mismatch judgment condition, 22 Partial match determination condition, 21a First match condition holding unit, 21b Second match condition holding unit 21b, 21c Third match condition holding unit 21c, 21d Fourth match condition holding unit 21d, 22 Partial match determination condition, 23 partial match determination condition holding memory, 30 first mismatch determination section, 31 second mismatch determination section, 32 third mismatch determination section, 33 fourth mismatch determination section, 34 NOR circuit, 40 latch circuit, 41 latch Circuit, 42 latch circuit, 43 latch circuit, 44 latch circuit, 45 control circuit, 46 selector 47, comparison circuit, 48 AND circuit, 49 comparator, 51 packet filtering device, 52 buffer circuit, 53 match determination circuit, 54 mismatch determination circuit, 55 OR circuit, 61 match condition, 71 first match condition holding unit, 72 second matching condition holding unit, 73 third matching condition holding unit, 74 fourth matching condition holding unit, 75 OR circuit, 76 collation data, 80 DEC, 81 DEC, 82 DEC, 83 DEC, 84 comparator 91 Matching condition part 92 Matching data 93 AND circuit 94 NOT circuit 95 OR circuit 96 AND circuit

Claims (7)

複数の一致条件と、受信したパケットとの比較結果に基づいてパケットフィルタリングを行うパケットフィルタ回路であって、
受信したパケットを保持するバッファ回路と、
前記パケットに含まれる、第1および第2のビット群からなる照合データの前記第1のビット群を、各前記一致条件の第1の部分と比較し、前記第2のビット群を、各前記一致条件の第2の部分と比較し、少なくともいずれかのビット群で前記照合データと不一致の場合に、前記照合データと前記一致条件とが不一致であると判定する不一致判定回路と、
前記第1および第2のビット群のいずれもが各前記一致条件の各部分と一致する場合に、複数の前記一致条件のうち、前記第1の部分が前記照合データの第1のビット群と一致する一致条件について、前記照合データと一致するか否かを判定する部分一致判定回路とを含み、
前記バッファ回路は、前記不一致判定回路および前記部分一致判定回路による判定結果に応じてパケットを処理する、
パケットフィルタ回路。
A packet filter circuit that performs packet filtering based on a comparison result between a plurality of matching conditions and a received packet,
A buffer circuit for holding received packets;
The first bit group of the collation data composed of the first and second bit groups included in the packet is compared with the first part of each matching condition, and the second bit group is A mismatch determination circuit that determines that the match data does not match the match condition when the match data does not match the match data in at least one of the bit groups compared to the second part of the match condition;
When both of the first and second bit groups match each part of the matching condition, the first part of the plurality of matching conditions is the first bit group of the matching data. A partial match determination circuit for determining whether or not the matching data matches the matching condition,
The buffer circuit processes a packet according to a determination result by the mismatch determination circuit and the partial match determination circuit;
Packet filter circuit.
前記部分一致判定回路は、
複数の前記一致条件の前記第2の部分それぞれを部分一致判定条件として記憶するための第2のメモリを含み、
前記不一致判定回路は、
複数の前記一致条件の前記第1の部分の値それぞれと、当該第1の部分の値に対応する第2の部分の値の前記第2のメモリにおける格納アドレスとを対応づけて不一致判定条件として記憶するための第1のメモリを含み、前記照合データの第1のビット群と、前記第1の部分とが一致する場合に、当該一致する値と対応づけられた前記格納アドレスを読み出して出力し、
前記部分一致判定回路は、前記不一致判定回路により出力される格納アドレスに基づいて、前記第2のメモリから前記第2の部分を読み出すことにより前記判定を行う、
請求項1記載のパケットフィルタ回路。
The partial match determination circuit includes:
A second memory for storing each of the second portions of the plurality of matching conditions as a partial matching determination condition;
The mismatch determination circuit includes:
Each of the values of the first part of the plurality of matching conditions is associated with the storage address in the second memory of the value of the second part corresponding to the value of the first part as a mismatch judgment condition A first memory for storing, and when the first bit group of the collation data matches the first portion, the storage address associated with the matching value is read and output And
The partial match determination circuit performs the determination by reading the second portion from the second memory based on the storage address output by the mismatch determination circuit.
The packet filter circuit according to claim 1.
前記第2のメモリは、
各アドレスについて、次に前記第2のメモリにおいてアクセスすべきアドレスを示すアドレスフィールド、および、前記一致条件の第2の部分の値を格納するデータフィールドとを含み、
前記部分一致判定回路は、複数の前記一致条件の前記第1の部分の値に対応する第2の部分の値が複数ある場合に、前記アドレスフィールドに示されるアドレスに従って、逐次、前記データフィールドに格納される値を出力することにより前記判定を行う、
請求項2記載のパケットフィルタ回路。
The second memory is
For each address, an address field indicating an address to be accessed next in the second memory, and a data field for storing a value of the second part of the matching condition,
When there are a plurality of values of the second portion corresponding to the values of the first portion of the plurality of matching conditions, the partial match determination circuit sequentially stores the data field according to the address indicated in the address field. Making the determination by outputting a stored value;
The packet filter circuit according to claim 2.
前記部分一致判定回路は、
前記バッファ回路から前記照合データの第2のビット群を受け付け、受け付けた前記第2のビット群と、前記第2のメモリにおいて指定されたアドレスの前記データフィールドに格納される値とを比較して一致または不一致の比較結果を出力する比較器を含み、
前記比較器による比較結果が不一致の場合に、前記第2のメモリの前記アドレスフィールドに示される値に従って前記照合データと前記一致条件とを比較する、
請求項3記載のパケットフィルタ回路。
The partial match determination circuit includes:
The second bit group of the verification data is received from the buffer circuit, and the received second bit group is compared with the value stored in the data field at the address specified in the second memory. Including a comparator that outputs a match or mismatch result,
When the comparison result by the comparator does not match, the matching data is compared with the matching condition according to a value indicated in the address field of the second memory.
The packet filter circuit according to claim 3.
前記パケットフィルタ回路は、
前記不一致判定回路により不一致と判定されず、かつ、前記部分一致判定回路により一致と判定される場合に、一致信号を前記バッファ回路へ出力する判定結果出力回路を含む、
請求項1記載のパケットフィルタ回路。
The packet filter circuit includes:
A determination result output circuit that outputs a match signal to the buffer circuit when the mismatch determination circuit does not determine a mismatch and the partial match determination circuit determines a match;
The packet filter circuit according to claim 1.
前記パケットフィルタ回路は、
前記不一致判定回路により不一致と判定された場合、または、前記部分一致判定回路により不一致と判定された場合に、不一致信号を前記バッファ回路へ出力する判定結果出力回路を含む、
請求項1記載のパケットフィルタ回路。
The packet filter circuit includes:
A determination result output circuit that outputs a mismatch signal to the buffer circuit when the mismatch determination circuit determines that there is a mismatch, or when the partial match determination circuit determines that there is a mismatch;
The packet filter circuit according to claim 1.
複数の一致条件と、受信したパケットとの比較結果に基づいてパケットフィルタリングを行うパケットフィルタリング装置であって、
受信したパケットを保持するバッファ部と、
前記パケットに含まれる、第1および第2のビット群からなる照合データの前記第1のビット群を、各前記一致条件の第1の部分と比較し、前記第2のビット群を、各前記一致条件の第2の部分と比較し、少なくともいずれかのビット群で前記照合データと不一致の場合に、前記照合データと前記一致条件とが不一致であると判定する不一致判定部と、
前記第1および第2のビット群のいずれもが各前記一致条件の各部分と一致する場合に、複数の前記一致条件のうち、前記第1の部分が前記照合データの第1のビット群と一致する一致条件について、前記照合データと一致するか否かを判定する部分一致判定部とを含み、
前記バッファ部は、前記不一致判定部および前記部分一致判定部による判定結果に応じてパケットを処理する、
パケットフィルタリング装置。
A packet filtering device that performs packet filtering based on a comparison result between a plurality of matching conditions and a received packet,
A buffer unit for holding received packets;
The first bit group of the collation data composed of the first and second bit groups included in the packet is compared with the first part of each matching condition, and the second bit group is A mismatch determination unit that compares with the second part of the match condition and determines that the match data and the match condition do not match if the match data does not match in at least one of the bit groups;
When both of the first and second bit groups match each part of the matching condition, the first part of the plurality of matching conditions is the first bit group of the matching data. A matching part for determining whether or not the matching condition is matched with the matching data,
The buffer unit processes a packet according to a determination result by the mismatch determination unit and the partial match determination unit.
Packet filtering device.
JP2012107368A 2012-05-09 2012-05-09 Packet filter circuit and packet filtering device Pending JP2013236245A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012107368A JP2013236245A (en) 2012-05-09 2012-05-09 Packet filter circuit and packet filtering device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012107368A JP2013236245A (en) 2012-05-09 2012-05-09 Packet filter circuit and packet filtering device

Publications (1)

Publication Number Publication Date
JP2013236245A true JP2013236245A (en) 2013-11-21

Family

ID=49762006

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012107368A Pending JP2013236245A (en) 2012-05-09 2012-05-09 Packet filter circuit and packet filtering device

Country Status (1)

Country Link
JP (1) JP2013236245A (en)

Similar Documents

Publication Publication Date Title
US10764181B2 (en) Pipelined evaluations for algorithmic forwarding route lookup
US10666564B2 (en) Increasing entropy across routing table segments
US9098601B2 (en) Ternary content-addressable memory assisted packet classification
US10778721B1 (en) Hash-based ACL lookup offload
US11729300B2 (en) Generating programmatically defined fields of metadata for network packets
US10397116B1 (en) Access control based on range-matching
TWI406133B (en) Data processing apparatus and data transfer method
US20190266193A1 (en) Data processing method for bloom filter, and bloom filter
US10547547B1 (en) Uniform route distribution for a forwarding table
US10348603B1 (en) Adaptive forwarding tables
US20120230343A1 (en) Addressing scheme for hybrid communication networks
CN1552149A (en) Techniques for offloading cryptographic processing for multiple network traffic streams
US9819587B1 (en) Indirect destination determinations to forward tunneled network packets
US9866639B2 (en) Communication apparatus, information processor, communication method, and computer-readable storage medium
US20120163392A1 (en) Packet processing apparatus and method
US9906443B1 (en) Forwarding table updates during live packet stream processing
US9985885B1 (en) Aggregating common portions of forwarding routes
US10887234B1 (en) Programmatic selection of load balancing output amongst forwarding paths
WO2014201902A1 (en) Tcam-based table query processing method and apparatus
TWI239476B (en) Address search
CN106878185B (en) Message IP address matching circuit and method
US9008108B2 (en) Criteria for identifying network frames
US20160150056A1 (en) Multi-protocol frame filter
JP2013236245A (en) Packet filter circuit and packet filtering device
US7308468B2 (en) Pattern matching