KR100776115B1 - Ternary Content Addressable Memory with Negation and Start Flags - Google Patents

Ternary Content Addressable Memory with Negation and Start Flags Download PDF

Info

Publication number
KR100776115B1
KR100776115B1 KR1020060026279A KR20060026279A KR100776115B1 KR 100776115 B1 KR100776115 B1 KR 100776115B1 KR 1020060026279 A KR1020060026279 A KR 1020060026279A KR 20060026279 A KR20060026279 A KR 20060026279A KR 100776115 B1 KR100776115 B1 KR 100776115B1
Authority
KR
South Korea
Prior art keywords
tcam
entry
rule
matching result
packet
Prior art date
Application number
KR1020060026279A
Other languages
Korean (ko)
Other versions
KR20070095722A (en
Inventor
기장근
김용권
Original Assignee
기장근
김용권
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 기장근, 김용권 filed Critical 기장근
Priority to KR1020060026279A priority Critical patent/KR100776115B1/en
Publication of KR20070095722A publication Critical patent/KR20070095722A/en
Application granted granted Critical
Publication of KR100776115B1 publication Critical patent/KR100776115B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]

Landscapes

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

Abstract

본 발명은 패킷 망에서 라우터, 침입탐지 시스템, 과금 시스템 등과 같은 네트워크 장비에 필수적으로 사용되는 패킷 필터링 시스템을 TCAM(Ternary Content Addressable Memory) 반도체 칩을 이용하여 구현하는 경우 문제점으로 대두되는 범위 규칙과 부정 규칙을 보다 효율적으로 수용할 수 있는 방법과 하드웨어 구조에 관한 것으로, 범위 규칙에 대해서는 그레이 코드의 대칭 특성과 TCAM의 매칭 특성을 이용하여 기존의 패킷 분류 시스템보다 효율적으로 TCAM 엔트리 값으로 변환하는 방안을 제시하고, 부정(negation) 규칙에 대해서는 부정 플래그와 시작 플래그를 포함하는 최종 매칭결과 계산 블록과 코드 변환부를 가지는 새로운 TCAM 하드웨어 구조 및 이에 따른 부정규칙의 TCAM 엔트리 변환 절차를 제시하고 있다.In the present invention, a packet filtering system essential to network equipment such as a router, an intrusion detection system, a charging system, and the like in a packet network is implemented by using a TCAM (Ternary Content Addressable Memory) semiconductor chip. The hardware structure and the method to accommodate the rules more efficiently. The range rule is to use the gray code symmetry and TCAM matching characteristics to convert TCAM entry values more efficiently than the existing packet classification system. For the negation rule, a new TCAM hardware structure having a final matching result calculation block including a negation flag and a start flag and a code conversion unit, and thus a TCAM entry conversion procedure for negation rules is presented.

발명된 TCAM 구조 및 이에 따른 엔트리 변환 절차를 이용하면 검색 시간에 영향을 주지 않으면서도 동일한 패킷 필터링 규칙에 대해 기존의 TCAM 보다 적은 용량의 TCAM 반도체 칩을 사용하여 패킷을 분류할 수 있기 때문에 패킷 분류 시스템의 비용을 절감할 수 있다. By using the invented TCAM structure and the corresponding entry conversion procedure, the packet classification system can be classified using a smaller TCAM semiconductor chip than the conventional TCAM for the same packet filtering rule without affecting the retrieval time. Can reduce the cost.

패킷 분류 시스템, 패킷 필터링, TCAM, 부정 규칙, 범위 규칙 Packet Classification System, Packet Filtering, TCAM, Negative Rule, Range Rule

Description

부정 및 시작 플래그를 가지는 터너리 컨텐트 어드레스어블 메모리 {Ternary Content Addressable Memory with Negation and Start Flags}Ternary Content Addressable Memory with Negation and Start Flags}

도 1은 본 발명에 의해 패킷 필터링을 수행하는 시스템을 나타낸 블록 도,1 is a block diagram showing a system for performing packet filtering according to the present invention;

도 2는 패킷 필터링에 사용되는 규칙의 예,2 is an example of a rule used for packet filtering;

도 3은 본 발명에서 사용되는 그레이 코드를 만들기 위한 하드웨어 구조,3 is a hardware structure for producing a gray code used in the present invention,

도 4는 본 발명에서 규정된 범위 필드를 TCAM 엔트리 값으로 변환하는 흐름 도,4 is a flow diagram of converting a range field defined in the present invention into a TCAM entry value;

도 5는 본 발명에 의해 수행되는 규정된 범위 규칙을 TCAM 엔트리 값으로 변환하는 예,5 is an example of converting a prescribed range rule performed by the present invention to a TCAM entry value,

도 6은 본 발명에서 부정 필드나 범위 필드가 있는 규칙을 복수개의 TCAM 엔트리 값으로 변환하는 흐름 도, FIG. 6 is a flow diagram of converting a rule having an indefinite field or a range field into a plurality of TCAM entry values. FIG.

도 7은 본 발명에 의한 TCAM의 한 셀을 나타낸 회로 도, 7 is a circuit diagram showing one cell of a TCAM according to the present invention;

도 8은 본 발명에 의한 TCAM의 회로 도,8 is a circuit diagram of a TCAM according to the present invention;

도 9는 본 발명에 의해 수행되는 패킷 분류의 전체적인 수행을 나타낸 흐름 도,9 is a flow diagram showing overall performance of packet classification performed by the present invention;

도 10은 일반적인 TCAM 엔트리 구조의 예,10 is an example of a general TCAM entry structure;

도 11은 범위 값을 범위를 대표할 수 있는 프리픽스 값으로 변환하는 예.11 is an example of converting a range value into a prefix value that can represent a range.

도 12는 부정 규칙을 검색하기 위한 기존 방법의 예,12 is an example of an existing method for searching for negation rules;

< 도면의 주요 부분에 대한 부호의 설명 ><Description of Symbols for Main Parts of Drawings>

100 : 네트워크 200 : 패킷 수신부100: network 200: packet receiver

300 : TCAM 반도체 칩 310 : 코드 변환부300: TCAM semiconductor chip 310: code conversion unit

320 : TCAM 엔트리 330 : 매칭 결과 계산 블록320: TCAM entry 330: matching result calculation block

340 : 우선순위 인코더 400 : 제어부 340: priority encoder 400: control unit

500 : 애플리케이션 서버500: application server

본 발명은 패킷 필터링 시스템으로 TCAM(Ternary Content Addressable Memory) 반도체 칩을 이용하는 경우 범위 규칙과 부정 규칙을 비효율적으로 검색하는 문제점을 해결할 수 있는 새로운 TCAM 구조와 규칙의 TCAM 엔트리 확장 절차에 관한 것이다. The present invention relates to a new TCAM structure and a TCAM entry expansion procedure of a rule that can solve the problem of inefficient retrieval of range rules and negative rules when using a TCAM semiconductor chip as a packet filtering system.

패킷 분류 혹은 패킷 필터링은 규정된 규칙과 네트워크로부터 입력된 패킷을 비교하여 입력 패킷의 헤더 필드 데이터와 규칙간의 부합여부를 판단하고 부합한다면 어느 규칙과 일치하는지를 검색하여 부합된 규칙에 따라 패킷을 분류하고 다음 작 업을 결정하는 것으로, 예를 들어 침입탐지 시스템의 경우 입력된 패킷이 규정된 규칙과 부합하게 되면 패킷을 폐기할 것인지 아니면 받아들일 것인지를 규칙에 의해 결정하게 된다. 상기에서 패킷 필터링은 일반적으로 패킷 분류와 같은 개념으로 사용하며, 패킷 검색은 패킷 매칭과 같은 의미로 사용된다.Packet classification or packet filtering compares the specified rule with the packet input from the network to determine the match between the header field data of the input packet and the rule, and if so, searches which rule matches and classifies the packet according to the matched rule. In determining the next action, for example, in case of an intrusion detection system, if an input packet meets a prescribed rule, the rule decides whether to discard or accept the packet. In the above, packet filtering is generally used in the same way as packet classification, and packet search is used in the same sense as packet matching.

이러한 패킷 필터링에 사용되는 패킷의 헤더 필드로는 발신지 주소, 목적지 주소, 발신지 포트 번호, 목적지 포트번호, 프로토콜 등 5개의 필드가 있으며, 패킷 필터링 시스템이 사용되는 응용 분야에 따라 매칭에 사용되는 필드가 달라진다. 예를 들어, 일반 라우터 시스템의 경우 일반적으로 목적지 주소 필드만 검색하게 되며, 플로우 인지(flow-aware) 라우터나 침입탐지 시스템, 과금 시스템 등의 경우 5개 필드를 모두 사용한다.The header fields of the packet used for packet filtering include five fields such as a source address, a destination address, a source port number, a destination port number, a protocol, and a field used for matching depending on an application area where a packet filtering system is used. Different. For example, a general router system typically searches only the destination address field, and all five fields are used for a flow-aware router, an intrusion detection system, or a billing system.

매칭 방법으로는 입력된 패킷 헤더 필드의 모든 비트를 검색하는 방법과 규칙이 프리픽스(prefix) 형태로 주어진 경우 검색하는 프리픽스 매칭 방법 그리고 규칙이 십진수의 범위로 정의된 경우 검색하는 범위 매칭 방법이 있다.Matching methods include searching all bits of an input packet header field, prefix matching method if a rule is given in a prefix form, and range matching method for searching if a rule is defined in a decimal range.

규칙에 사용되는 필드의 종류에는 규칙에 사용된 필드와 입력된 패킷의 해당 필드가 일치하는 경우 매칭된 것으로 판단하는 일반(normal) 필드와 입력된 패킷의 헤더 필드가 규칙에 정의된 필드와 같지 않을 때 매칭된 것으로 판단하는 부정(negation) 필드, 규칙에 사용된 필드가 십진수의 범위 형태로 주어지는 범위 필드, 입력된 패킷의 해당 필드가 어떠한 값이든 상관이 없는 무정의(don't care) 필드 등이 있다. 일반 필드나 부정 필드는 주소 필드나 포트번호 필드에 주로 사용되며, 범위 필드는 포트번호 필드에 주로 사용되고, 무정의 필드는 입력된 패킷의 헤 더 값이 어떤 값이든 상관이 없는 필드로서 TCAM을 이용하는 경우 무정의 조건을 이용하여 매칭에서 제외시킨다. 또한 부정 필드가 하나 이상 있는 규칙을 부정 규칙이라 하며, 범위 필드가 하나 이상 있는 규칙을 범위 규칙이라 한다.The types of fields used in the rule include the normal fields that are determined to be matched if the fields used in the rule and the corresponding fields in the input packet match, and the header fields of the input packet will not be the same as the fields defined in the rule. A negation field that is determined to be a match, a range field in which the field used in the rule is given in decimal range, and a don't care field that doesn't care what the corresponding field of the input packet is. There is this. The general or negative fields are mainly used for the address field or the port number field, the range field is mainly used for the port number field, and the undefined field is a field that does not care what the header value of the input packet is. In this case, an indefinite condition is used to exclude the match. Also, rules with one or more negative fields are called negative rules, and rules with one or more negative fields are called range rules.

도 2는 일반적으로 사용되는 규칙의 예를 나타낸 것으로 규칙 1에서 일반 필드는 발신지 포트번호와 목적지 포트번호, 프로토콜 필드이며, 규칙 필드 중 앞에 !(부정의 의미)가 붙어 있는 발신지 주소 필드와 목적지 주소 필드가 부정 필드이고, 규칙 2는 규칙 1과 주소 필드, 목적지 포트번호, 프로토콜 필드는 동일하지만 발신지 포트번호가 0부터 63까지일 경우를 의미하는 범위 필드이다. 또한, 주소 필드의 끝 부분에 기입된 숫자 24는 주소의 유효 주소 비트를 나타내는 프리픽스 값이다.FIG. 2 shows an example of a commonly used rule. In rule 1, a general field is a source port number, a destination port number, and a protocol field, and a source address field and a destination address prefixed with! (Negative meaning) in the rule field. The field is a negative field, and rule 2 is a range field that means that the rule 1, the address field, the destination port number, and the protocol field are the same, but the source port number is 0 to 63. Also, the number 24 written at the end of the address field is a prefix value indicating the effective address bit of the address.

패킷 필터링 시스템의 구현 방법은 알고리즘적인 방법과 하드웨어적인 방법으로 분류할 수 있으며, 알고리즘적인 방법은 패킷 필터링이 사용되는 시스템에 따라 트리구조와 같은 특정 데이터 구조를 만들어 입력된 패킷을 검색하는 방법으로써 일반적으로 소프트웨어적으로 구현되고, 하드웨어적인 방법은 일반적으로 0과 1 그리고 무정의 조건을 검색할 수 있는 TCAM 반도체 칩을 이용하여 구현된다. The packet filtering system can be classified into an algorithmic method and a hardware method. The algorithmic method is a method of searching an input packet by creating a specific data structure such as a tree structure according to the system in which packet filtering is used. The hardware method is generally implemented using a TCAM semiconductor chip that can search for 0, 1 and indeterminate conditions.

상기의 알고리즘적인 방법과 하드웨어적인 방법의 가장 큰 차이는 검색 속도로서 알고리즘적인 방법은 검색되는 패킷의 비트 수에 비례하여 검색속도가 증가하지만, TCAM 반도체 칩을 이용하는 경우 검색에 사용되는 패킷 헤더 필드의 비트 수에 관계없이 항상 한 클록에 검색을 수행할 수 있어 고속 트래픽 환경과 패킷의 헤더 비 트 수가 증가하는 IPv6 환경에 적합하다.The biggest difference between the algorithm and the hardware method is the search speed. In the algorithm method, the search speed increases in proportion to the number of bits of the packet to be searched. Searches can always be performed on one clock regardless of the number of bits, making them suitable for high-speed traffic environments and IPv6 environments where the number of header bits in a packet increases.

상기 하드웨어적인 방법에 사용되는 TCAM 반도체 칩은 TCAM 엔트리(entry)와 주소 디코더, 우선순위 인코더, 각종 레지스터 등으로 구성되어 있으며, 실제 검색이 수행되는 부분은 TCAM 엔트리로서 엔트리는 규칙을 저장하는 밸류(value) 필드와 무정의 조건을 검색하기 위한 마스크(mask) 필드 및 비교논리연산 블록으로 구성되어 있고, 병렬 처리를 통해 한 클록(사이클) 만에 검색을 수행할 수 있는 구조를 가지고 있다. The TCAM semiconductor chip used in the hardware method is composed of a TCAM entry, an address decoder, a priority encoder, various registers, etc., and the actual search part is a TCAM entry, and the entry stores a value that stores a rule ( It consists of a value field, a mask field for searching for an undefined condition, and a comparison logic block, and has a structure in which a search can be performed in only one clock (cycle) through parallel processing.

상기의 마스크 필드는 구현 방법에 따라 다르지만 마스크 값이 0이면 밸류의 해당 비트와 입력된 패킷 헤더 필드 데이터의 해당 비트를 검색하며, 마스크 값이 1이면 무정의 조건을 의미하는 것으로 검색을 수행하지 않게 된다. 도 10의 TCAM 엔트리 예를 이용하여 설명하면, 예에서 밸류 값은 "01111000"이고, 마스크 값은 "00001111"이므로 입력된 데이터의 상위 4비트만 밸류 값의 상위 4비트와 매칭을 수행하고 나머지 하위 4비트는 매칭을 수행하지 않는다. 그러므로 입력된 데이터("01110111")의 하위 4비트가 밸류 필드의 하위 4비트와 서로 다른 값일지라도 결과는 입력 데이터와 규칙이 매칭된 것으로 판단하게 된다.The mask field is different depending on the implementation method, but if the mask value is 0, the corresponding bit of the value and the corresponding bit of the input packet header field data are searched. If the mask value is 1, it means an undefined condition. do. Referring to the TCAM entry example of FIG. 10, in the example, the value is "01111000" and the mask value is "00001111". Therefore, only the upper 4 bits of the input data are matched with the upper 4 bits of the value and the remaining lower Four bits do not perform matching. Therefore, even if the lower 4 bits of the input data ("01110111") are different from the lower 4 bits of the value field, the result determines that the input data and the rule match.

상기와 같은 TCAM은 하드웨어 구조상 프리픽스 형태의 규칙을 검색하는 데는 효율적이다. 그러나 규칙이 범위 필드나 부정 필드를 포함하고 있는 경우 이 규칙을 하나의 TCAM 엔트리로 검색할 수 없다는 문제점이 있다. Such a TCAM is efficient in retrieving a prefix type rule in hardware structure. However, there is a problem that if a rule contains a range field or a negative field, the rule cannot be retrieved as a single TCAM entry.

범위 필드에 대한 기존의 검색 방법은 범위를 이진 바이너리 코드를 이용하여 범위 를 대표할 수 있는 복수개의 프리픽스 형태의 값으로 변환하는 것으로 도 11은 기존 프리픽스 변환 방법에 대한 예를 나타낸 것이다. 이 예에서와 같이 주어진 범위가 2부터 11까지일 경우 3개의 프리픽스 값으로 범위를 나타낼 수 있으며 이 변환된 프리픽스 값을 TCAM 엔트리에 저장하여 검색을 수행한다. The existing search method for the range field converts a range into a plurality of prefix type values that can represent a range by using binary binary code. FIG. 11 shows an example of a conventional prefix conversion method. As in this example, if a given range is from 2 to 11, the range can be represented by three prefix values, and the converted prefix value is stored in a TCAM entry for searching.

상기의 방법으로 범위 규칙을 프리픽스 값으로 변환하게 되면 범위가 16비트라고 가정할 때 최대 30개의 엔트리가 필요하며 두 개의 16비트 헤더 필드를 고려하는 경우 하나의 규칙이 최대 900(= 30x30)개의 TCAM 엔트리를 필요로 하게 되어 TCAM 엔트리의 낭비를 초래하게 된다. 결과적으로 범위 규칙을 프리픽스 형태로 변환하여 TCAM에 저장해 검색하게 되면 TCAM 엔트리를 많이 차지하기 때문에 경제적으로 비효율적이다.If the range rule is converted to a prefix value using the above method, a maximum of 30 entries are required assuming that the range is 16 bits, and one rule has a maximum of 900 (= 30x30) TCAMs when considering two 16-bit header fields. This requires an entry, which wastes TCAM entries. As a result, converting a range rule to a prefix form and storing it in the TCAM for retrieval takes up a large number of TCAM entries, which is economically inefficient.

또 다른 문제점인 부정 필드에 대한 문제를 해결하기 위한 기존의 방법은 부정 필드 값을 이진수로 나타낸 다음 1의 보수 값을 이용하여 TCAM 엔트리로 확장해 검색하는 것이다.Another problem to solve the problem of the negation field is to represent the negation field value in binary and then expand it to a TCAM entry using a complement of one.

도 12는 기존 방법에 대한 예로서 부정 필드가 주소 필드에 사용된 경우를 나타낸 것으로 부정 규칙이 !120.0.0.0/8로 주어졌기 때문에 입력된 패킷의 주소가 120.0.0.0/8이 아니면 매칭된 것으로 판단하게 되며, 주소 필드 값 뒤에 있는 숫자 8은 주소의 유효 비트를 나타낸 것으로 입력된 패킷의 주소 비트 중 상위 8자리만을 비교한다는 의미이다. 도 10에서 부정 규칙을 복수개의 TCAM 엔트리 값으로 확 장하는 방법은 도 10에서 알 수 있듯이 120(10)의 이진 값인 01111000(2)을 1의 보수 값 10000111(2)으로 변환한 후 각 비트마다 하나의 TCAM 엔트리 값으로 확장하는 것이다. 입력 패킷의 주소 필드가 확장된 TCAM 엔트리 중 하나라도 매칭된다면 입력 패킷이 부정 규칙에 매칭된 것으로 판단하게 된다. 즉, 입력 주소 필드의 상위 8비트 중 하나의 비트라도 매칭된다면 이는 120(10)이 아니라는 의미가 되므로 매칭된 것으로 판단하게 된다. FIG. 12 shows a case in which a negation field is used in an address field as an example of the conventional method. Since a negation rule is given as! 120.0.0.0/8, the address of the input packet is matched if it is not 120.0.0.0/8. The number 8 after the address field value indicates a valid bit of the address, and means that only the upper 8 digits of the address bits of the input packet are compared. As shown in FIG. 10, a method of extending a negation rule to a plurality of TCAM entry values in FIG. 10 is performed by converting 01111000 (2) , which is a binary value of 120 (10) , to a complement value of 1, 10000111 (2) , for each bit. It extends to a single TCAM entry value. If the address field of the input packet matches any of the extended TCAM entries, it is determined that the input packet matches the negation rule. That is, if one bit of the upper 8 bits of the input address field is matched , this means that it is not 120 (10) , and thus it is determined to be matched.

상기의 방법을 이용하게 되면 부정 주소 필드의 경우 유효 주소 비트 수 만큼의 엔트리가 필요하기 때문에 IPv4 환경에서 규칙 내에 하나의 주소 필드가 부정 필드이면 최대 32개의 TCAM 엔트리가 필요하고, IPv6의 경우 최대 128개의 TCAM 엔트리가 필요하게 된다. 또한, 발신지와 목적지 주소가 모두 부정 필드인 경우 IPv4는 최대 1,024개(= 32 x 32), IPv6의 경우 16,384개(= 128 x 128)의 엔트리가 필요하게 된다. Using the above method, since the number of valid address bits is required for the negative address field, up to 32 TCAM entries are required if one address field is a negative field in the IPv4 environment, and up to 128 for IPv6. TCAM entries are required. In addition, if both the source and destination addresses are negative fields, a maximum of 1,024 entries (= 32 x 32) for IPv4 and 16,384 entries (= 128 x 128) are required for IPv6.

상기의 설명과 같이 규칙 내에 부정 필드가 있게 되면 하나의 규칙이 차지하는 TCAM 엔트리 수가 증가하게 되고 이는 패킷 필터링 시스템 비용을 상승시키는 요인이 된다. 예를 들어 침입탐지 시스템의 경우 약 90%이상의 규칙이 부정 필드를 가지고 있기 때문에 부정 필드가 패킷 필터링 시스템의 비용을 증가시키는 주요 원인이 된다. As described above, the presence of a negative field in a rule increases the number of TCAM entries occupied by a rule, which increases the cost of a packet filtering system. In intrusion detection systems, for example, more than 90% of rules have negative fields, which is the main reason for the increased cost of packet filtering systems.

상기 설명과 같이 규칙에 범위 필드나 부정 필드가 있는 경우 하나의 규칙이 많은 TCAM 엔트리를 점유하게 되며 결과적으로 동일한 TCAM 용량으로 검색할 수 있는 규칙 수가 감소하게 되는 문제점을 가지게 된다. As described above, when a rule has a range field or a negative field, one rule may occupy many TCAM entries, resulting in a decrease in the number of rules that can be searched with the same TCAM capacity.

본 발명의 목적은 이와 같은 종래 기술의 문제점을 해결하기 위한 것으로, 먼저 범위 필드의 경우 규칙을 이진 바이너리 코드가 아닌 그레이 코드로 변환하고, 변환된 그레이 코드를 이용하여 범위 규칙을 대표할 수 있는 TCAM 엔트리 값으로 변환하여 패킷 분류를 수행함으로서 기존의 방법보다 TCAM 엔트리 수를 감소시킬 수 있어 동일한 용량의 TCAM을 이용하여 패킷 분류시스템을 구성하는 경우 기존의 방법보다 더 많은 규칙을 검색할 수 있다. SUMMARY OF THE INVENTION An object of the present invention is to solve such a problem of the prior art, and in the case of a range field, first converts a rule into a gray code instead of a binary binary code, and uses a converted gray code to represent a range rule. The number of TCAM entries can be reduced by converting the packet into an entry value, thereby reducing the number of TCAM entries. Therefore, when configuring a packet classification system using the same capacity of TCAM, more rules can be searched than the conventional method.

부정 필드의 경우에는 검색 속도에 영향을 주지 않으면서도 부정 필드에 의해 확장되는 TCAM 엔트리 수를 감소시킴으로써 패킷 필터링 시스템의 비용을 감소시킬 수 있는 TCAM 반도체 칩을 제공하는데 있다. In the case of the negation field, the present invention provides a TCAM semiconductor chip which can reduce the cost of a packet filtering system by reducing the number of TCAM entries expanded by the negation field without affecting the search speed.

상기와 같은 본 발명의 목적을 달성하기 위하여, 본 발명은 먼저 규정된 규칙을 그레이 코드로 변환하는 단계와 범위 필드에 대해서는 상기 변환된 코드를 이용하여 범위를 대표할 수 있는 TCAM 엔트리 값으로 변환하며, 부정 필드에 대해서는 부정 규칙을 TCAM 엔트리 값으로 확장하는 절차를 포함한다.In order to achieve the above object of the present invention, the present invention first converts a prescribed rule to a gray code and converts a range field into a TCAM entry value that can represent a range using the converted code. For the negation field, the procedure includes extending the negation rule to the TCAM entry value.

상기에서 변환된 TCAM 엔트리 값과 확장된 TCAM 엔트리 값을 본 발명에 의한 TCAM의 엔트리에 저장한다. 다음 단계로 네트워크로부터 입력된 패킷의 헤더 필드 값을 하드웨어적으로 그레이 코드로 변환하는 단계와 변환된 값을 TCAM 엔트리에 입력하여 규칙을 검색하는 단계를 포함한다.The converted TCAM entry value and the extended TCAM entry value are stored in the TCAM entry according to the present invention. The next step includes hardware-converting the header field value of the packet input from the network to gray code, and inputting the converted value into the TCAM entry to search for a rule.

상기의 TCAM은 코드 변환부와 부정 플래그/시작 플래그를 이용한 매칭 결과 계산 블록 회로를 포함하는 새로운 구조의 TCAM 반도체 칩이다. The TCAM is a TCAM semiconductor chip having a new structure including a code conversion unit and a matching result calculation block circuit using an illegal flag / start flag.

상기의 기술적 과제를 달성하기 위하여, 본 발명은 범위 필드를 포함하는 범위 규칙을 그레이 코드를 이용해 TCAM 엔트리 값으로 변환하는 절차를 제공한다. 또한, 부정 필드를 포함하고 있는 부정 규칙을 TCAM 엔트리 값으로 변환하는 절차를 제공하고, 부정 플래그와 시작 플래그를 이용하여 입력된 패킷과 규칙과의 매칭 여부를 계산하는 회로를 포함하는 TCAM 반도체 칩을 제공한다.In order to achieve the above technical problem, the present invention provides a procedure for converting a range rule including a range field into a TCAM entry value using gray code. In addition, the present invention provides a procedure for converting a negation rule including a negation field into a TCAM entry value and includes a circuit for calculating a match between an input packet and a rule using a negation flag and a start flag. to provide.

본 발명에서, 범위 규칙을 TCAM 엔트리로 확장하는 방법은 그레이 코드로 표현된 범위를 그레이 코드의 특성과 TCAM 매칭 특성을 이용하여 범위를 대표할 수 있는 TCAM 엔트리 값으로 변환하며, 부정 규칙을 TCAM 엔트리로 확장하는 방법은 부정 필드와 일반 필드를 분리한 후 부정 필드 마다 하나의 TCAM 엔트리 값을 할당하고, 나머지 일반 필드들은 하나의 TCAM 엔트리 값을 갖도록 복수개의 TCAM 엔트리로 확장하는 것을 특징으로 한다.In the present invention, a method of extending a range rule to a TCAM entry converts a range represented by a gray code into a TCAM entry value that can represent a range using characteristics of a gray code and a TCAM matching characteristic, and converts a negation rule into a TCAM entry. The method of extending to is characterized by separating a negation field and a general field and assigning one TCAM entry value to each negation field, and extending the remaining general fields into a plurality of TCAM entries to have one TCAM entry value.

본 발명에서, 부정 플래그는 TCAM 엔트리에 저장된 필드가 부정 필드인 경우 엔트리의 매칭 결과를 반전시키고, 일반 필드가 저장되어 있는 경우 엔트리의 매칭 결과를 그대로 유지하는 것을 특징으로 한다.In the present invention, the negation flag is characterized by inverting the matching result of the entry when the field stored in the TCAM entry is a negative field, and maintaining the matching result of the entry as it is when the general field is stored.

본 발명에서, 시작 플래그는 부정 규칙을 복수개의 TCAM 엔트리로 확장할 경우 확장된 TCAM 엔트리의 첫 번째 엔트리인지 아닌지를 판단하기 위한 것으로 첫 번째 엔트리의 시작 플래그는 1로 설정하고 그 외의 플래그는 0으로 설정하며, 상기 플래그를 통해 복수개의 TCAM 엔트리를 통해 부정 규칙을 검색할 수 있도록 하는 것을 특징으로 한다. In the present invention, when the start flag is extended to a plurality of TCAM entries, the start flag is used to determine whether it is the first entry of the extended TCAM entry, and the start flag of the first entry is set to 1, and the other flags are set to 0. And a negative rule can be searched through a plurality of TCAM entries through the flag.

본 발명의 실시 예는 이하에서 첨부한 도면을 참조하여 설명하기로 한다. 이 기술 분야에 있는 숙련자라면 본 발명의 목적, 특징 및 이점들을 잘 이해할 수 있을 것이다. Embodiments of the present invention will be described below with reference to the accompanying drawings. Those skilled in the art will appreciate the objects, features and advantages of the present invention.

도 1은 본 발명에 의해 패킷 필터링을 수행하는 시스템을 나타내는 블록 도이며, 도 2는 패킷 필터링에 사용되는 규칙의 예를 나타낸 것이고, 도 3은 본 발명에서 사용되는 그레이 코드를 만들기 위한 하드웨어 구조를 나타낸 것이다. 도 4와 도 5는 본 발명에서 규정된 범위 규칙을 TCAM 엔트리 값으로 변환하는 흐름 도와 그 예를 나타낸 것이고, 도 6은 본 발명에서 부정 규칙과 범위 규칙을 복수개의 TCAM 엔트리 값으로 변환하는 흐름 도이며, 도 7과 도 8은 본 발명에 의한 TCAM의 한 셀을 나타낸 회로도와 본 발명에 의한 TCAM의 회로도이다. 도 9는 본 발명에 의해 수행되는 패킷 분류의 전체적인 수행을 나타낸 흐름 도이고, 도 10은 TCAM 엔트리의 구조를 나타낸 것이고, 도 11은 주어진 범위 값을 프리픽스 값으로 변환하는 기존 방법의 예이며, 도 12는 부정 규칙을 검색하기 위한 기존 방법의 예이다.1 is a block diagram showing a system for performing packet filtering according to the present invention, FIG. 2 shows an example of a rule used for packet filtering, and FIG. 3 shows a hardware structure for producing gray codes used in the present invention. It is shown. 4 and 5 illustrate a flow chart and an example of converting a range rule defined in the present invention to a TCAM entry value, and FIG. 6 illustrates a flow diagram of converting a negation rule and a range rule into a plurality of TCAM entry values in the present invention. 7 and 8 are circuit diagrams showing one cell of the TCAM according to the present invention and a circuit diagram of the TCAM according to the present invention. 9 is a flow diagram showing the overall performance of packet classification performed by the present invention, FIG. 10 shows the structure of a TCAM entry, FIG. 11 is an example of an existing method of converting a given range value into a prefix value, and FIG. 12 is an example of an existing method for searching for negation rules.

도 1을 참조하면, 패킷 필터링 시스템은 패킷이 이동하는 패킷 네트워크(100), 패킷 수신부(200), 본 발명에 의한 TCAM(300), TCAM 제어를 위한 제어부(400), 애플리케이션 서버(500)로 구성된다. 패킷 네트워크(100)로부터 입력된 패킷은 패킷 수신부(200)에 의해 수신되고, 수신된 패킷을 본 발명에 의한 TCAM(300)으로 전달하면, 먼저 TCAM 내의 코드 변환부(310)를 통해 그레이 코드로 변환한 후 규칙과의 매칭을 위해 변환된 패킷 헤더 필드 값을 TCAM 엔트리(320)에 입력하여 검색을 수행하고, 1차 검색된 결과를 이용하여 매칭 결과 계산 블록(330)에서 최종 매칭 결과를 계산한 후 이를 우선순위 인코더(340)에 입력하면 결과로서 매칭된 규칙의 TCAM 엔트리 주소가 출력되고, 이를 제어부(400)로 출력하면 제어부에서 매칭된 규칙을 애플리케이션 서버(500)에 알려주게 된다. 도 1에서 TCAM 반도체 칩 내부의 코드 변환부(310)와 매칭결과계산블록(330)이 기존의 TCAM을 이용한 패킷 필터링 시스템에는 없는 본 발명의 핵심 블록이다.Referring to FIG. 1, a packet filtering system includes a packet network 100, a packet receiver 200, a TCAM 300 according to the present invention, a controller 400 for controlling a TCAM, and an application server 500. It is composed. The packet input from the packet network 100 is received by the packet receiving unit 200, and when the received packet is transferred to the TCAM 300 according to the present invention, first, the code is converted into a gray code through the code conversion unit 310 in the TCAM. After the conversion, the converted packet header field value is input to the TCAM entry 320 for matching with the rule, and the search is performed. The final matching result is calculated in the matching result calculation block 330 using the first search result. After inputting this to the priority encoder 340, the TCAM entry address of the matched rule is output as a result, and when the output is outputted to the control unit 400, the control unit notifies the application server 500 of the matched rule. In FIG. 1, the code conversion unit 310 and the matching result calculation block 330 inside the TCAM semiconductor chip are the core blocks of the present invention, which are not present in the packet filtering system using the conventional TCAM.

도 2는 패킷 필터링 시스템에 사용되는 규칙의 예를 나타낸 것으로 규칙1은 부정 필드와 일반필드가 같이 사용되고 있으며, 규칙 2는 범위 필드와 부정 필드, 일반 필드가 혼용된 예이다.FIG. 2 shows an example of a rule used in a packet filtering system. In Rule 1, a negative field and a general field are used together, and rule 2 is an example in which a range field, a negative field, and a general field are mixed.

도 3은 이진 바이너리 코드로 규정된 규칙을 그레이 코드로 변환하는 회로를 나타낸 것으로 상기 그레이 코드를 만들기 위해서는 먼저 이진 바이너리 코드의 최상위 비트는 그대로 그레이 코드의 최상위 비트가 되고 다음 비트부터는 자신의 비트와 바로 상위 비트를 배타적 논리 연산(XOR)을 통해 그레이 코드 비트로 변환시킨다. 예를 들어 이진 바이너리 코드가 "1010"이면 이를 그레이 코드로 변환하면 "1111"이 된다. 이와 같이 생성된 그레이 코드는 이웃하는 값과 항상 한 비트 만 다르고 나머지 비트는 동일하며, 코드 사이에 대칭성을 가지게 된다.FIG. 3 shows a circuit for converting a rule defined by binary binary code into a gray code. In order to produce the gray code, the most significant bit of the binary binary code is the most significant bit of the gray code as it is, and from the next bit, the first bit The upper bits are converted to gray code bits through exclusive logical operations (XOR). For example, if the binary binary code is "1010", converting it to gray code will result in "1111". The gray code generated in this way is always one bit different from the neighboring value, the remaining bits are the same, and have symmetry between the codes.

예를 들어 십진수 3과 4에 대한 이진 바이너리 코드는 '0011'과 '0100'으로서 두 개의 값을 하나로 나타낼 수 없지만 그레이 코드로 변환하면 '0010'과 '0110'으로서 한 비트만 다르기 때문에 두 값을 대표할 수 있는 '0*10'(*는 무정의 조건을 나타냄)으로 나타낼 수 있으며, 그레이 코드의 대칭적인 특성은 예를 들어 4비트로 되어 있는 코드의 경우, 0과 15의 중심 값 8을 중심으로 0부터 7까지의 그레이 코드와 8부터 15의 코드를 비교하면 최상위 비트만을 제외하고 동일한 값을 가지게 되는 것으로 이진 바이너리 코드로 0과 15를 비교하면 '0000'과 '1111'이지만 그레이 코드 값은 '0000'과 '1000'으로서 최상위 비트를 제외하고 동일한 값을 가지므로 두개의 값을 대표할 수 있는 '*000'로 나타낼 수 있다.For example, the binary binary code for decimals 3 and 4 cannot represent two values as one, '0011' and '0100', but when converted to gray code, the two values are converted to '0010' and '0110' because only one bit is different. Representative '0 * 10' (* denotes an indeterminate condition), and the symmetrical nature of the gray code is centered around the center value 8 of 0 and 15, for example for 4-bit code If you compare gray codes from 0 to 7 and codes from 8 to 15, you will have the same value except for the most significant bit. If you compare 0 and 15 with binary binary code, '0000' and '1111' but gray code value is Since '0000' and '1000' have the same value except the most significant bit, they can be represented as '* 000' which can represent two values.

도 4는 상기 특징을 가지고 있는 그레이 코드를 이용하여 범위 규칙들을 TCAM 엔트리 값으로 변환하는 과정을 나타낸 것으로, 규정된 범위를 최대 3개의 세부 영역으로 분할하고 각 세부 영역에서 최종 결과물인 TCAM 엔트리 값을 계산하는 흐름 도이다.4 illustrates a process of converting range rules into TCAM entry values using gray code having the above characteristics. The rule is divided into up to three sub-fields and the TCAM entry value as the final result in each sub-area. Calculation flow chart.

상기 변환 과정을 살펴보면 먼저 범위규칙 값이 입력(S101)되고, 입력된 범위를 그레이 코드로 변환(S102)하면, 이분법을 이용하여 첫 번째 세부 영역을 위한 중심 값을 계산(S103)한다. 첫 번째 세부 범위는 상기 중심 값을 중심으로 대칭적인 특성을 갖도록 정해지게 되며, 상기 대칭적인 성질로 인해 TCAM 엔트리의 개수를 줄일 수 있다.Referring to the conversion process, first, a range rule value is input (S101), and when the input range is converted into a gray code (S102), a center value for the first subregion is calculated using a dichotomy (S103). The first detail range is determined to have a symmetrical characteristic about the center value, and the number of TCAM entries can be reduced due to the symmetrical nature.

상기 중심 값이 계산되면 중심 값이 입력된 범위의 중심 값인지 검사(S104)하여 동일하면 입력 범위 전체가 하나의 세부 영역으로 설정(S105)되고 중심 값이 아니면 입력 범위의 남은 영역이 있는 것으로 판단하여 먼저 상기 계산된 중심 값을 중심으로 첫 번째 세부영역을 설정(S106)한다.When the center value is calculated, it is determined whether the center value is the center value of the input range (S104). If the center value is the same, the entire input range is set to one detail area (S105). If the center value is not the center value, it is determined that there is a remaining area of the input range. First, the first subregion is set based on the calculated center value (S106).

첫 번째 세부 영역이 설정되면 두 번째 세부 영역설정을 위한 두 번째 중심 값을 계산(S107)하고 상기 중심 값을 중심으로 대칭성을 가지도록 두 번째 영역을 설정(S108)한 후 입력 범위 중 첫 번째 세부 영역과 두 번째 세부 영역을 제외하고 남은 영역이 있는지 검사(S109)하여 남은 영역이 있는 경우 남은 영역을 세 번째 영역으로 설정(S110)하고, 남은 영역이 없는 경우 입력 범위에 대해 두개의 세부 영역을 설정한다.When the first detail region is set, the second center value for calculating the second detail region is calculated (S107), and the second region is set to have symmetry around the center value (S108). If there is a remaining area except for the area and the second detail area (S109), if there is a remaining area, the remaining area is set as the third area (S110), and if there is no remaining area, two detail areas are selected for the input range. Set it.

상기의 분할된 영역에서 각 영역별로 TCAM 엔트리 개수를 계산(S111)하고, 각 영역별로 TCAM 엔트리 값을 계산하게 되면 입력된 범위를 대표할 수 있는 최종적인 TCAM 엔트리 값을 계산(S112)하게 된다.When the number of TCAM entries is calculated for each region in the divided region (S111), and the TCAM entry value is calculated for each region, the final TCAM entry value that can represent the input range is calculated (S112).

상기 방법에 의해 애플리케이션 서버(500)에서 범위에 대한 TCAM 엔트리 값을 계산하고, 계산된 값을 제어부(400)를 통해 TCAM 반도체 칩(300)내의 TCAM 엔트리(320)에 저장한 후 패킷이 네트워크(100)로부터 수신되면 수신된 패킷 데이터를 TCAM 반도체 칩(300)내의 코드 변환부(310)를 통해 그레이 코드로 변환한 후 TCAM 엔트리 (320)에 입력하여 매칭을 수행하게 된다. By the above method, the application server 500 calculates the TCAM entry value for the range, stores the calculated value through the control unit 400 in the TCAM entry 320 in the TCAM semiconductor chip 300, and then the packet is stored in the network ( When received from the 100, the received packet data is converted into a gray code through the code conversion unit 310 in the TCAM semiconductor chip 300, and then input to the TCAM entry 320 to perform matching.

도 5는 상기 방법에서 범위 규칙을 세부영역으로 분할하고 중심값을 찾는 예를 나타낸 것으로, 예를 들어 규정된 범위가 5비트이고 적용 범위가 6에서 13까지인 경우, 이분법을 이용하여 범위의 2분의 1 지점을 찾는다. FIG. 5 shows an example of dividing a range rule into sub-regions and finding a center value in the above method. For example, when a prescribed range is 5 bits and an application range is 6 to 13, 2 of the range is divided using a dichotomy. Find the 1st point.

본 예에서는 2분의 1이 십진수로 16이며, 16은 규칙의 범위보다 아래에 위치함으로 다시 2분의 1지점인 8을 중심값으로 계산한다. 중심값 8은 주어진 범위 내에 있으므로 8을 첫 번째 범위의 중심값으로 하고, 8을 중심으로 대칭성을 가지도록 세부 범위를 계산하게 되면 6부터 9까지가 첫 번째 세부 범위가 된다.In this example, one-half is 16 in decimal, and 16 is below the range of the rule. Since the center value 8 is within the given range, if 8 is the center value of the first range, and the detail range is calculated to have symmetry around 8, the first detail range is 6 to 9.

두 번째 범위를 찾기 위해 다시 남은 영역에 대해 이분법을 이용하여 중심값을 계산하면 12가 되고, 12을 중심으로 대칭성을 가지도록 범위를 계산하면 10부터 13까지가 두 번째 세부 범위가 된다.If you calculate the center value using dichotomy for the remaining area to find the second range, it becomes 12. If you calculate the range to have symmetry around 12, the second subrange is 10 to 13.

상기 과정을 통해서 규정된 범위 6에서 13까지([6..13])는 두개의 세부영역으로 분할되며 각 세부영역에서 TCAM 엔트리 값을 계산하면 된다.The range 6 through 13 ([6..13]) defined by the above process is divided into two subfields, and the TCAM entry value is calculated in each subfield.

첫 번째 세부 영역을 TCAM 엔트리로 변환하면 '0*10*'가 되고, 두 번째 영역은 '01*1*'가 된다. Converting the first detail area to a TCAM entry results in '0 * 10 *' and the second area becomes '01 * 1 * '.

상기 규정된 범위를 이진 바이너리 코드를 이용한 기존 방법에 의해 TCAM 엔트리로 변환하면 '0011*', '010**', '0110*'가 되며, 이는 기존 방법보다 제안 방법이 엔트리 수를 절감할 수 있음을 보여주는 것으로 제안 방법은 기존의 방법보다 최악의 경우 엔트리 수가 동일하나 일반적으로는 하나 이상 적다.Converting the prescribed range into TCAM entries by the existing method using binary binary code results in '0011 *', '010 **' and '0110 *', which suggest that the proposed method can reduce the number of entries. The proposed method has the same number of entries in the worst case than the previous method, but generally one or more.

상기의 예에서 엔트리 수의 차이는 하나이지만 일반적으로 네트워크 시스템에 사용되는 규칙 수가 2,000 - 34,000개 정도임을 감안하면 제안 방법에 의한 엔트리 수의 절감 효과가 크다는 것을 알 수 있다.In the above example, the difference in the number of entries is one, but considering that the number of rules generally used in the network system is about 2,000 to 34,000, it can be seen that the reduction of the number of entries by the proposed method is large.

도 6은 범위 필드나 부정 필드가 있는 규칙을 TCAM 엔트리 값으로 확장하는 절차로서 먼저 규칙 내에 범위 필드가 있으면(S201) 도 4의 절차에 따라 범위 필드를 그레이 코드를 이용한 TCAM 엔트리 확장 방법으로 변환(S202)한 후, 규칙에 사용된 필드를 부정 필드와 일반 필드로 분리(S203)하고, 하나의 부정 필드가 하나의 TCAM 엔트리 값을 가지도록 한다(S204). 예를 들어 도 2의 규칙 1과 같이 규칙이 정의된 경우 발신지 주소와 목적지 주소가 부정(!) 필드이므로 발신지 주소와 목적지 주소 필드 각각을 하나의 TCAM 엔트리 값으로 할당한다. 발신지 주소의 TCAM 엔트리 값은 유효 주소 비트가 24비트이므로 TCAM 엔트리의 밸류 필드의 발신지 주소 필드 자리에 200.0.0.0(10)을 입력하며, 마스크 필드의 발신지 주소 필드자리에는 000000FF(16)을 입력하고 나머지 필드에는 모두 1을 입력하여 발신지 주소만을 검색하도록 한다. 6 is a procedure of extending a rule having a range field or a negative field to a TCAM entry value. First, if there is a range field in the rule (S201), the range field is converted to a TCAM entry expansion method using gray codes according to the procedure of FIG. After step S202, the field used in the rule is divided into a negative field and a general field (S203), and one negative field has one TCAM entry value (S204). For example, when a rule is defined as shown in Rule 1 of FIG. 2, since the source address and the destination address are negative (!) Fields, the source address and the destination address fields are assigned to one TCAM entry value. In the TCAM entry value of the source address, since the effective address bit is 24 bits, enter 200.0.0.0 (10) in place of the source address field of the value field of the TCAM entry , and enter 000000FF (16) in place of the source address field of the mask field. Enter 1 in the remaining fields to search only for source addresses.

상기와 같이 하나의 부정 필드가 하나의 TCAM 엔트리 값을 가지도록 한 후 나머지 일반 필드들은 하나의 TCAM 엔트리 값으로 설정(S205)한다. 이와 같은 절차를 이용하게 되면 규칙 내에 부정 필드가 1개 인 경우 2개의 TCAM 엔트리가 사용되고, 부정 필드가 2개인 경우 3개의 TCAM 엔트리가 필요하게 되며, 규칙에서 5개의 필드를 모두 사용하는 경우 최대 5개의 TCAM 엔트리가 필요하게 된다. As described above, after one negative field has one TCAM entry value, the other general fields are set to one TCAM entry value (S205). Using this procedure, two TCAM entries are used for one negative field in a rule, three TCAM entries for two negative fields, and a maximum of five if all five fields are used in a rule. TCAM entries are required.

도 2의 규칙 1 예의 경우 발신지 주소 필드와 목적지 주소 필드가 부정 필드이며 나머지 3개의 필드는 일반 필드임으로 도 6의 부정 규칙에 대한 TCAM 엔트리 확장 절차를 이용하게 되면 3개의 TCAM 엔트리 값으로 변환된다. 즉, 발신지 주소와 목적지 주소 값이 각각 첫 번째와 두 번째 TCAM 엔트리에 저장되고, 세 번째 엔트리에는 발신지 포트번호, 목적지 포트번호, 프로토콜 필드가 입력되며, 네트워크로부터 패킷이 입력되면 검색을 수행하게 되고, 이때 첫 번째와 두 번째 TCAM 엔트리의 검색 결과가 매칭되지 않고 세 번째 엔트리의 검색 결과가 매칭된다면 입력된 패킷이 규칙과 부합한다고 할 수 있다. 다시 말해 첫 번째와 두 번째 엔트리에는 부정 필드가 저장되어 있기 때문에 검색 결과가 1이 되면 입력된 패킷의 해당 필드가 규칙의 필드와 일치한다는 의미이므로 입력된 패킷이 규칙에 매칭되지 않은 것으로 판단하고, 검색 결과가 0이 되면 부정 필드와 입력된 패킷의 해당 필드가 다르다는 의미이므로 매칭된 것으로 판단하게 된다. 하지만 세 번째 엔트리는 일반 필드가 저장되어 있기 때문에 TCAM 엔트리의 매칭 결과가 1이면 입력된 패킷의 해당 필드와 규칙의 필드가 일치하는 것이므로 매칭되었다는 의미가 되고 0이면 매칭되지 않았다는 의미가 된다. 결국 최종 매칭 결과는 부정 필드가 입력된 엔트리의 경우 부정 플래그를 이용하여 엔트리의 중간 매칭 결과를 반전시키고, 일반 필드는 엔트리의 중간 매칭 결과를 그대로 출력한 후 출력된 3개 값을 AND 연산하여 최종 매칭 결과를 계산하게 된다. In the case of rule 1 of FIG. 2, the source address field and the destination address field are negative fields, and the remaining three fields are general fields. When the TCAM entry extension procedure for the negative rules of FIG. 6 is used, the TCAM entry values are converted into three TCAM entry values. That is, the source address and destination address values are stored in the first and second TCAM entries, respectively, and the third entry contains the source port number, the destination port number, and the protocol fields. When the packet is input from the network, the search is performed. In this case, if the search results of the first and second TCAM entries do not match and the search results of the third entry match, it may be said that the input packet matches the rule. In other words, since the first and second entries contain negative fields, if the search result is 1, it means that the corresponding field of the input packet matches the field of the rule. If the search result is 0, it means that the negative field and the corresponding field of the input packet are different, and thus are determined to be matched. However, since the third entry has a general field stored, if the matching result of the TCAM entry is 1, it means that the corresponding field of the input packet is matched with the rule field, and if it is 0, it means that it is not matched. As a result, the final matching result is an inverted middle matching result of the entry using a negative flag in the case of an entry in which a negative field is input, and the general field outputs the middle matching result of the entry as it is, and then performs an AND operation on the outputted three values. The matching result is calculated.

도 7은 상기의 설명처럼 도 6의 절차에 의해 확장된 TCAM 엔트리 값을 계산하기 위한 회로도를 나타낸 것으로 TCAM 엔트리의 중간 매칭 결과(S301)를 이용하여 최종 결과를 계산하는 회로도(cell1) 이다. 회로의 입력은 TCAM 엔트리로부터 입력되는 중간 매칭 결과(S301)와 부정 플래그(D2) 설정을 위한 N1 입력 단자, 시작 플래그(D1) 설정을 위한 S1 단자, 두 개의 플래그 설정을 위한 클록(clk) 단자, 아래 단의 TCAM 엔트리 계산 블록으로부터 입력되는 매칭 계산 결과 C2가 있으며, 출력단자로는 최종 결과 계산 블록(cell1)에 의해 계산된 결과가 출력되는 M1단자와 계산 블록으로부터 계산된 결과를 상위 엔트리 계산 블록으로 출력하기 위한 C1단자가 있다. FIG. 7 is a circuit diagram for calculating a TCAM entry value extended by the procedure of FIG. 6 as described above, and is a circuit diagram cell1 for calculating a final result using an intermediate matching result S301 of a TCAM entry. The input of the circuit is the N1 input terminal for setting the intermediate matching result (S301) and the negative flag (D2) input from the TCAM entry, the S1 terminal for setting the start flag (D1), and the clock (clk) terminal for setting two flags. There is a matching calculation result C2 inputted from the lower TCAM entry calculation block, and as the output terminal, the M1 terminal outputting the result calculated by the final result calculation block cell1 and the result calculated from the calculation block There is a C1 terminal for output.

상기의 회로에서 부정 플래그는 TCAM 엔트리(entry1)에 저장된 값이 부정 필드인 경우 1이 되며, 일반 필드인 경우는 0이 되고, 시작 플래그는 도 6의 절차에 의해 확장된 TCAM 엔트리의 첫 번째 엔트리이면 1이 되고, 첫 번째 엔트리가 아닌 경우 0이 된다. In the above circuit, the negation flag is 1 when the value stored in the TCAM entry entry1 is a negation field, 0 when it is a general field, and the start flag is the first entry of the TCAM entry extended by the procedure of FIG. Is 1, or 0 if it is not the first entry.

상기의 부정 플래그가 1이면 엔트리의 값이 부정 필드 값을 의미하며, TCAM 엔트리(entry1)로부터 출력되는 결과 값(S301)을 XOR 게이트(xor1)를 이용하여 반전시키고 그 결과(S302)를 하위 계산 블록으로부터 입력되는 값(C2)과 AND 연산(and1)하여 최종 결과를 계산한다. If the negative flag is 1, the value of the entry means a negative field value, and the result value S301 output from the TCAM entry entry1 is inverted using the XOR gate xor1 and the result S302 is sub-calculated. The final result is calculated by performing an AND operation (and1) with the value C2 input from the block.

상기 계산된 결과 값에 대한 출력여부는 시작 플래그(D1)로 결정하게 되는데 현재 계산된 엔트리가 도 6의 절차에 의해 확장된 첫 번째 엔트리이면 시작 플래그가 1이 되고 결국 최종 계산된 결과 값(S303)과 AND 연산(and2)하여 계산 값을 출력 (M1)하게 되며, 시작 플래그가 0이면 AND 연산의 특성으로 인해 M1은 항상 0이 출력된다. 또한 현재 계산된 결과 값(S303)을 상위 엔트리 매칭 결과 계산 블록에 출력하는 C1단자의 경우 OR 게이트(or1)를 이용하여 시작 플래그가 0이면 현재 계산된 결과가 최종 결과가 아니므로 상위 엔트리에 출력하고, 시작 플래그가 1이면 현재 계산된 값이 최종 매칭 결과이므로 C1에는 항상 1을 출력하여 상위 계산 블록에서 최종 매칭 결과를 계산하는데 영향을 주지 않도록 하였다. The output of the calculated result value is determined by the start flag D1. If the currently calculated entry is the first entry expanded by the procedure of FIG. 6, the start flag is 1, and the final calculated result value (S303). ) And AND (and2) to output the calculated value (M1). If the start flag is 0, M1 is always outputted 0 due to the characteristics of the AND operation. In addition, in the case of the C1 terminal that outputs the currently calculated result value S303 to the upper entry matching result calculation block, if the start flag is 0 by using the OR gate or1, the currently calculated result is not the final result and thus is output to the upper entry. If the start flag is 1, since the currently calculated value is the final matching result, 1 is always output to C1 so as not to affect the calculation of the final matching result in the upper calculation block.

상기와 같은 회로는 도 6의 절차에 의해 확장되는 TCAM 엔트리 개수가 규칙내의 부정 필드 수에 따라 달라지기 때문에 최종 결과 계산을 위한 회로가 변화되는 엔트리 수에 따라 유연성 있게 계산할 수 있도록 하기 위함이다. 즉, 부정 플래그와 시작 플래그를 포함하는 도 7과 같은 회로를 이용하게 되면 매칭에 필요한 TCAM 엔트리 개수에 상관없이 유연성 있게 매칭 결과를 계산할 수 있다.Such a circuit is intended to allow the circuit for the final result calculation to be flexibly calculated according to the changed number of entries since the number of TCAM entries expanded by the procedure of FIG. 6 depends on the number of negative fields in the rule. That is, using a circuit as shown in FIG. 7 including a negative flag and a start flag, a matching result can be flexibly calculated regardless of the number of TCAM entries required for matching.

도 8은 본 발명에 의한 TCAM의 일부 회로를 나타낸 것으로 크게 이진코드를 그레이 코드로 변환하기 위한 코드 변환부와 TCAM 엔트리 그리고 TCAM 엔트리에 의해 매칭된 중간 매칭 결과를 이용하여 최종 매칭 결과를 계산하는 매칭 결과 계산 블록, 최종 매칭 결과를 이용하여 매칭된 엔트리의 결과를 출력하는 우선순위 인코더로 구성되어 있으며, 각 엔트리(E1, E2, E3)는 엔트리의 중간 계산 결과를 이용하여 최종 매칭 결과를 계산하는 셀(cell1, cell2, cell3)을 하나씩 가지고 있다. FIG. 8 is a diagram illustrating a part of a circuit of a TCAM according to the present invention, in which a code conversion unit for largely converting a binary code into a gray code, a matching to calculate a final matching result using an intermediate matching result matched by a TCAM entry, and a TCAM entry It is composed of a result calculation block and a priority encoder for outputting the result of the matched entry using the final matching result.Each entry (E1, E2, E3) calculates the final matching result using the intermediate calculation result of the entry. It has one cell (cell1, cell2, cell3).

상기 회로의 동작을 설명하기 위해 도 2의 규칙 1을 이용하여 설명하면, 먼저 도 2의 규칙 1은 상기에서 설명한 것과 같이 2개의 부정 필드가 있어 3개의 TCAM 엔트 리로 확장되므로 도 8의 첫 번째 엔트리에는 첫 번째 부정 필드인 발신지 주소 필드가 입력되며, 부정 플래그(N1)는 1이 되고, 시작 플래그(S1)도 1이 된다. 두 번째 엔트리(E2)에는 두 번째 부정 필드인 목적지 주소 필드 값이 입력되며, 부정 플래그(N2)는 1이 되고, 시작 플래그(S2)는 첫 번째 엔트리가 아니므로 0이 된다. 세 번째 엔트리(E3)는 일반 필드들이 저장되며, 부정 플래그(N3)와 시작 플래그(S3)는 모두 0이 된다. In order to explain the operation of the circuit, the rule 1 of FIG. 2 will be described. First, rule 1 of FIG. 2 has two negative fields as described above, and thus extends to three TCAM entries. The source address field, which is the first negation field, is input, the negation flag N1 is 1, and the start flag S1 is also 1. In the second entry E2, the destination address field value, which is the second negation field, is input, the negation flag N2 is 1, and the start flag S2 is 0, since it is not the first entry. The third entry E3 stores general fields, and both the negative flag N3 and the start flag S3 are zero.

상기와 같이 각 엔트리와 플래그 값을 설정한 후 네트워크로부터 패킷이 입력되면 코드 변환부에서 크레이 코드로 변환 후 TCAM 엔트리에서 매칭을 수행하여 중간 매칭 결과가 출력되고, 매칭 결과 계산 블록에서 각 플래그 값을 이용하여 최종 매칭 여부를 계산하게 된다. 최종 매칭 결과(M1)는 도 8에서 알 수 있듯이 엔트리의 중간 매칭 결과(S401, S402, S403)와 부정 플래그(N1, N2, N3)를 각각 XOR 연산을 수행한 후 각 연산 결과를 AND 연산한 결과가 된다. After setting each entry and flag value as above, if a packet is input from the network, the code conversion unit converts to a cray code, performs a matching on the TCAM entry, and outputs an intermediate matching result. The final match is calculated. As shown in FIG. 8, the final matching result M1 is obtained by performing an XOR operation on the intermediate matching results S401, S402, and S403 of the entry and the negative flags N1, N2, and N3, respectively, and then performing an AND operation on each result. Result.

도 9는 전체 시스템의 흐름을 나타낸 것으로 패킷 매칭에 앞서 전처리 과정으로서 애플리케이션 서버에서 규칙을 TCAM 엔트리 값으로 변환(S501)하게 된다. 먼저 규칙의 값을 그레이 코드로 변환하고, 규칙 내에 범위 필드가 있는 경우 도 4의 범위 값에 대한 TCAM 엔트리 변환 절차에 의해 범위 필드를 복수개의 TCAM 엔트리 값으로 변환한 후, 규칙 내에 부정 필드가 있는 경우 도 6의 TCAM 엔트리 확장 절차에 의해 TCAM 엔트리 값으로 변환한다. 9 shows the flow of the entire system, and before the packet matching, the application server converts a rule into a TCAM entry value (S501) as a preprocessing process. First, the value of the rule is converted to gray code, and if there is a range field in the rule, the range field is converted to a plurality of TCAM entry values by the TCAM entry conversion procedure for the range value of FIG. In this case, the TCAM entry is converted into a TCAM entry value by the TCAM entry extension procedure of FIG. 6.

상기와 같이 규칙을 TCAM 엔트리 값으로 변환한 후 변환된 엔트리 값을 TCAM 반도 체 칩(300)내의 TCAM 엔트리(320)에 저장하고, 매칭 결과 계산 블록(330)내의 부정 플래그와 시작 플래그 값을 설정(S502)한다.After converting the rule to the TCAM entry value as described above, the converted entry value is stored in the TCAM entry 320 in the TCAM semiconductor chip 300, and the negative flag and the start flag value in the matching result calculation block 330 are set. (S502).

상기의 절차는 패킷 매칭을 위한 전처리 과정으로서 과정이 끝난 후 패킷이 입력되면(S503), TCAM 반도체 칩 내의 코드 변환부(310)로 입력된 패킷을 전송하여 매칭에 필요한 패킷 헤더 값을 그레이 코드로 변환(S504)하고, 변환된 패킷 헤더 값을 TCAM 반도체 칩에 전송(S505)하여 규칙 매칭(S506)을 수행한다.The above procedure is a preprocessing process for packet matching. When a packet is input after the process is finished (S503), the packet is transmitted to the code conversion unit 310 in the TCAM semiconductor chip and the packet header value required for matching is converted into a gray code. After conversion (S504), the converted packet header value is transmitted to the TCAM semiconductor chip (S505) to perform rule matching (S506).

상기 절차에 의해 입력된 패킷이 규칙과 부합하면 매칭 결과를 제어부에 전송(S507)하고, 매칭 되지 않으면 다음 패킷 입력을 기다린다. 제어부에서는 매칭결과를 애플리케이션 서버에 전송(S508)한다.If the packet input by the above procedure matches the rule, the matching result is transmitted to the controller (S507). If the packet is not matched, the next packet input is awaited. The controller transmits the matching result to the application server (S508).

상기와 같은 절차를 이용하여 규칙과 입력된 패킷 간의 부합여부를 판단하게 된다.Using the above procedure, it is determined whether the rule matches the input packet.

상기와 같이 본 발명에 의한 TCAM과 매칭 절차는 범위 필드나 부정 필드를 가지고 있는 규칙을 기존의 방법보다 더 적은 수의 TCAM 엔트리를 이용하여 검색할 수 있으며, 본 발명에 의한 TCAM은 부정 규칙뿐만 아니라 일반 규칙도 기존의 TCAM과 같이 검색할 수 있다. As described above, the TCAM and matching procedure according to the present invention can search for a rule having a range field or a negation field using a smaller number of TCAM entries than the conventional method. General rules can be searched just like traditional TCAMs.

상기의 실시 예에서는, 하나의 규칙을 이용하여 회로를 설명하였으나, 이는 일부 예를 나타낸 것으로 본 발명은 이에 한정되지 않는다. In the above embodiment, the circuit has been described using one rule, but this is merely illustrative and the present invention is not limited thereto.

이상 설명한 바와 같이, 패킷 필터링 시스템에서 TCAM 반도체 칩을 사용하는 경우 본 발명에 따른 범위 필드에 대한 TCAM 엔트리 확장 절차와 부정 규칙의 TCAM 엔트리 확장 절차 그리고 코드 변환부와 부정 플래그, 시작 플래그를 가지는 새로운 TCAM 하드웨어 구조를 이용할 경우 기존의 범위 규칙과 부정규칙에 대한 TCAM 엔트리 확장 방법과 기존의 TCAM을 이용하는 경우 보다 더 적은 수의 TCAM 엔트리를 이용하여 패킷 필터링을 수행할 수 있기 때문에 패킷 필터링 시스템의 비용을 줄일 수 있다. As described above, when a TCAM semiconductor chip is used in a packet filtering system, a TCAM entry expansion procedure for a range field and a TCAM entry expansion procedure for a negation rule, a new TCAM having a code conversion unit, a negation flag, and a start flag according to the present invention. The hardware architecture reduces the cost of the packet filtering system because it can perform packet filtering using the TCAM entry expansion method for the existing range rule and the negation rule and fewer TCAM entries than the existing TCAM. Can be.

예를 들어 기존의 TCAM 엔트리 확장 방법과 기존 TCAM을 이용하면 규칙 내에 하나의 주소 필드가 부정 필드이고 유효 주소 비트가 32인 경우 32개의 TCAM 엔트리가 필요하지만 본 발명에 의한 TCAM을 이용하면 2개의 TCAM 엔트리로 부정 규칙을 검색할 수 있게 된다. 두개의 주소 필드가 부정 필드인 경우는 기존의 방법에서는 1,024개의 TCAM 엔트리가 필요하지만 발명된 TCAM을 이용하면 3개의 TCAM 엔트리만으로 검색을 수행할 수 있다. 즉, 동일한 규칙에 대해 더 적은 용량의 TCAM으로 패킷 필터링 시스템을 구현할 수 있으며, 동일한 용량의 TCAM인 경우 더 많은 규칙을 검색할 수 있게 된다. 또한, 범위 규칙의 경우 기존의 이진 바이너리 코드 대신 그레이 코드를 이용한 TCAM 엔트리 변환 방법을 사용함으로써 TCAM 엔트리를 절약할 수 있으며, 이러한 그레이 코드 변환은 배타적 논리 게이트(XOR)만으로 이루어지므로 기존의 방법과 비교할 때 TCAM 엔트리를 절약할 수 있으면서도 하드웨어적으로 구현이 쉽고 검색 시간에 영향을 주지 않는다. For example, using the existing TCAM entry extension method and the existing TCAM, if one address field is a negative field in the rule and the effective address bit is 32, 32 TCAM entries are required, but using the TCAM according to the present invention, two TCAMs are required. You can search for negative rules by entry. If two address fields are negative fields, the conventional method requires 1,024 TCAM entries. However, the invention can be used to search with only three TCAM entries. That is, a packet filtering system can be implemented with a smaller capacity TCAM for the same rule, and more rules can be searched for a TCAM of the same capacity. In addition, for range rules, TCAM entries can be saved by using the TCAM entry conversion method using gray code instead of the existing binary binary code, and this gray code conversion is performed only with an exclusive logic gate (XOR). When you save TCAM entries, they are easy to implement in hardware and do not affect search time.

제안된 발명의 적용효과 예로서 현재 가장 많이 사용되고 있는 침입탐지 프로그램 중 SNORT 프로그램의 규칙(버전 2.4)에 적용할 경우 본 발명에 의한 방법과 TCAM이 기존의 방법에 비해 93%의 TCAM 엔트리를 절약할 수 있어 패킷 필터링 시스템의 비용을 효과적으로 낮출 수 있다.As an example, the proposed method and the TCAM can save 93% of TCAM entries compared to the existing method when applied to the SNORT program rule (version 2.4). This can effectively lower the cost of a packet filtering system.

Claims (8)

패킷 분류 시스템에서 부정과 시작 플래그를 가지는 TCAM 반도체 칩에 관한 것으로서, The present invention relates to a TCAM semiconductor chip having a negation and a start flag in a packet classification system. 이진 코드를 그레이코드로 변환하는 코드 변환부(310)와A code converter 310 for converting binary codes to gray codes; TCAM 엔트리(320) 매칭 결과와 부정 플래그(N1)와 시작 플래그(S1)를 이용하여 매칭 여부를 판단하는 매칭 결과 계산블록(330)과 Matching result calculation block 330 for determining whether to match using the TCAM entry 320 matching result and the negative flag (N1) and the start flag (S1) and 매칭 결과로서 매칭된 TCAM의 주소를 출력하기 위한 우선순위 인코더를 포함하는 것을 특징으로 하는 TCAM 반도체 칩.And a priority encoder for outputting the address of the matched TCAM as a matching result. 삭제delete 제 1 항에 있어서, 상기 코드 변환부(310)는The method of claim 1, wherein the code conversion unit 310 입력된 패킷 헤더 값을 TCAM 반도체 칩의 엔트리(E1)에 저장하기 전에 XOR 게이트를 이용하여 바이너리 코드를 그레이 코드로 변환하는 것을 특징으로 하는 TCAM 반도체 칩.And converting the binary code into a gray code using an XOR gate before storing the input packet header value in the entry E1 of the TCAM semiconductor chip. 삭제delete 제 1 항에 있어서, 상기 매칭결과 계산 블록(330, cell1)은 The method of claim 1, wherein the matching result calculation block (330, cell1) is 셀단위(cell1)로 구성되어 있으며, 하나의 TCAM 엔트리(E1) 마다 하나의 셀(cell1)로 구성되며,It consists of a cell unit (cell1), one cell (cell1) for each TCAM entry (E1), 하나의 셀은 부정 플래그(N1)와 하나의 시작 플래그(S1)가 있으며, One cell has a negative flag (N1) and one start flag (S1), 현재의 엔트리(E1)의 결과와 아래 단의 엔트리들(E2 혹은 E2 그리고 E3)의 결과를 연산하여 매칭결과를 계산하는 게이트 회로를 가지고 있는 것을 특징으로 하는 TCAM 반도체 칩.And a gate circuit for calculating a matching result by calculating the result of the current entry E1 and the result of the entries E2 or E2 and E3 at the lower stage. 제 5 항에 있어서, 상기 부정 플래그(N1)는The negative flag N1 of claim 5, wherein: TCAM 엔트리(E1)에 저장된 규칙이 부정 규칙이면 부정 플래그(N1)를 1로 설정하고, 부정 규칙이 아니면 플래그를 0으로 설정하고,If the rule stored in the TCAM entry E1 is a negative rule, set the negative flag N1 to 1, otherwise set the flag to 0, 부정 플래그(N1)가 1이면 TCAM 엔트리(enrty1 또는 E1)의 검색 결과(S301)를 반전(S302)하고, 0이면 TCAM 엔트리의 검색 결과를 그대로 유지(S302)하는 것을 특징으로 하는 TCAM 반도체 칩.The negative flag N1 is 1, the search result S301 of the TCAM entry enrty1 or E1 is inverted (S302), and if 0, the search result of the TCAM entry is retained (S302). 제 5 항에 있어서, 상기 시작 플래그(S1)는The method of claim 5, wherein the start flag (S1) is 현재의 TCAM 엔트리가 규칙의 첫 번째 엔트리이면 시작 플래그를 1로 설정하고 첫 번째 엔트리가 아니면 0으로 설정하며, Set the start flag to 1 if the current TCAM entry is the first entry in the rule, or 0 if not the first entry. 시작 플래그(S1)가 1이면 부정 플래그에 의한 연산 결과(S302)와 아래단의 매칭 결과 계산회로의 결과(C2)를 연산하여 최종 매칭 결과(S303)를 출력(M1)하며, If the start flag S1 is 1, the calculation result S302 by the negative flag and the result C2 of the matching result calculation circuit at the lower stage are calculated to output the final matching result S303 (M1), 시작 플래그(S1)가 0이면 매칭 결과 계산 회로의 결과(S303)를 상위 엔트리의 매칭 결과 계산 회로로 출력(C1)하고 최종 매칭 결과(M1)로서 0을 출력하는 것을 특징으로 하는 TCAM 반도체 칩.And if the start flag S1 is 0, outputs the result S303 of the matching result calculating circuit to the matching result calculating circuit of the upper entry C1 and outputs 0 as the final matching result M1. 제 5 항에 있어서, The method of claim 5, 복수 개의 TCAM 엔트리를 이용하여 규칙을 검색할 때 매칭 결과 계산 회로(cell1)의 시작 플래그(S1)를 이용하여 TCAM 엔트리의 개수에 관계없이 매칭 결과를 계산하는 회로(cell1)를 포함하는 것을 특징으로 하는 TCAM 반도체 칩.And a circuit cell1 for calculating a matching result regardless of the number of TCAM entries using the start flag S1 of the matching result calculating circuit cell1 when searching for a rule using a plurality of TCAM entries. TCAM semiconductor chip.
KR1020060026279A 2006-03-22 2006-03-22 Ternary Content Addressable Memory with Negation and Start Flags KR100776115B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060026279A KR100776115B1 (en) 2006-03-22 2006-03-22 Ternary Content Addressable Memory with Negation and Start Flags

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060026279A KR100776115B1 (en) 2006-03-22 2006-03-22 Ternary Content Addressable Memory with Negation and Start Flags

Publications (2)

Publication Number Publication Date
KR20070095722A KR20070095722A (en) 2007-10-01
KR100776115B1 true KR100776115B1 (en) 2007-11-15

Family

ID=38802896

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060026279A KR100776115B1 (en) 2006-03-22 2006-03-22 Ternary Content Addressable Memory with Negation and Start Flags

Country Status (1)

Country Link
KR (1) KR100776115B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030077292A (en) * 2002-03-26 2003-10-01 한정보통신 주식회사 Multi-field classification system the address decomposition
KR20050066986A (en) * 2003-12-26 2005-06-30 한국전자통신연구원 Apparatus for performing packet header lookup based on sequential lookup and method of the same
KR20050108301A (en) * 2004-05-11 2005-11-16 삼성전자주식회사 The packet classification method through hierarchial rulebase partitioning
US20060002386A1 (en) 2004-06-30 2006-01-05 Zarlink Semiconductor Inc. Combined pipelined classification and address search method and apparatus for switching environments

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030077292A (en) * 2002-03-26 2003-10-01 한정보통신 주식회사 Multi-field classification system the address decomposition
KR20050066986A (en) * 2003-12-26 2005-06-30 한국전자통신연구원 Apparatus for performing packet header lookup based on sequential lookup and method of the same
KR20050108301A (en) * 2004-05-11 2005-11-16 삼성전자주식회사 The packet classification method through hierarchial rulebase partitioning
US20060002386A1 (en) 2004-06-30 2006-01-05 Zarlink Semiconductor Inc. Combined pipelined classification and address search method and apparatus for switching environments

Also Published As

Publication number Publication date
KR20070095722A (en) 2007-10-01

Similar Documents

Publication Publication Date Title
EP1671217B1 (en) Memory and power efficient mechanism for fast table lookup
US8856203B1 (en) System and method for algorithmic TCAM packet classification
US6775737B1 (en) Method and apparatus for allocating and using range identifiers as input values to content-addressable memories
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
US6289414B1 (en) Partially ordered cams used in ternary hierarchical address searching/sorting
US6961725B2 (en) Method of a data range search with plural pre-set rules
US6987683B2 (en) Magnitude comparator based content addressable memory for search and sorting
US20050083937A1 (en) IP address lookup method using pipeline binary tree, hardware architecture, and recording medium
JP4995125B2 (en) How to search fixed length data
KR20020059238A (en) Node Structuring Method for multiway search tree, and Searching Method by using it
EP3270551B1 (en) Retrieval device, retrieval method, program, and recording medium
CN113806403B (en) Method for reducing search matching logic resources in intelligent network card/DPU
US6570866B1 (en) High-speed flexible longest match retrieval
Wang et al. Memory-based architecture for multicharacter Aho–Corasick string matching
US20030009474A1 (en) Binary search trees and methods for establishing and operating them
US7085235B2 (en) Method and apparatus for constructing and searching IP address
CN100452732C (en) Route searching method and system
CN110995876B (en) Method and device for storing and searching IP
KR100776115B1 (en) Ternary Content Addressable Memory with Negation and Start Flags
US9201982B2 (en) Priority search trees
US20020087537A1 (en) Method and apparatus for searching a data stream for character patterns
US20170010814A1 (en) Memory with compressed key
US20160105363A1 (en) Memory system for multiple clients
US20050144203A1 (en) Pattern matching
Lin et al. Fast tcam-based multi-match packet classification using discriminators

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121106

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131105

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151103

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20161024

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20171106

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181105

Year of fee payment: 12