KR20020081569A - The Management Method of tables that have entries of same size on CAM in Network device - Google Patents

The Management Method of tables that have entries of same size on CAM in Network device Download PDF

Info

Publication number
KR20020081569A
KR20020081569A KR1020020053341A KR20020053341A KR20020081569A KR 20020081569 A KR20020081569 A KR 20020081569A KR 1020020053341 A KR1020020053341 A KR 1020020053341A KR 20020053341 A KR20020053341 A KR 20020053341A KR 20020081569 A KR20020081569 A KR 20020081569A
Authority
KR
South Korea
Prior art keywords
size
cam
entry
separator
value
Prior art date
Application number
KR1020020053341A
Other languages
Korean (ko)
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 KR1020020053341A priority Critical patent/KR20020081569A/en
Publication of KR20020081569A publication Critical patent/KR20020081569A/en

Links

Classifications

    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables

Landscapes

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

Abstract

PURPOSE: A method for managing plural of tables having identical entry size in a CAM(Content Addressable Memory) of a network device using a ternary CAM is provided to locate a table separator capable of separating tables having identical entry size in a table entry, so as to search the tables even for the identical entry size. CONSTITUTION: Entry size of a table to make is defined(401). The size of a CAM entry is defined to be larger than the entry size of the table(402). A difference between data tuple size of a table having the biggest data tuple among different tables having identical size of CAM entry and the size of the CAM entry is regarded as the size of a table separator(403). Whether the size of the table separator is larger than 0(zero) is decided(404). If the size of the table separator is larger than 0, an actual separator value is set within the size of the table separator(405). If the size of the table separator is smaller than 0, the step 402 is returned. Accordingly, information on the table separator is added on a CAM table(406).

Description

Ternary CAM(Content Addressable Memory)을 이용하는 네트웍 장치에서의 CAM내 동일한 엔트리 크기를 가지는 다수의 테이블 관리 방법 {The Management Method of tables that have entries of same size on CAM in Network device}{The Management Method of tables that have entries of same size on CAM in Network device} in a network device using Ternary Content Addressable Memory (CAM)

본 발명은 CAM(Content Addressable Memory)을 검색용 테이블로 사용하는 네트워크 장치와 관련된 것으로 특히 CAM내 관리하는 테이블들을 더욱 효율적으로 사용하기 위한 방법에 관한 것이다.The present invention relates to a network device using a CAM (Content Addressable Memory) as a table for retrieval, and more particularly to a method for more efficiently using tables managed in a CAM.

본 발명의 종래의 기술에는 CAM 방법과 Ternary CAM 방법이 있다.Conventional techniques of the present invention include a CAM method and a ternary CAM method.

CAM 방법은 CAM내에 있는 특정 엔트리를 하드웨어적으로 지정된 시간, 즉, 고정된 몇 clock cycle 내에 찾아주는 장점을 갖는다.The CAM method has the advantage of finding a particular entry in the CAM within a hardware-specified time, i.e., a fixed number of clock cycles.

네트워크 환경과 네트워크 장치 내에서 관리되는 테이블 구조와 같이 MAC 주소(130), IP 주소(140), {송신 IP 주소, 송신 포트 번호, 수신 IP 주소, 수신 포트 번호}(160) 등, 테이블 내 데이터 필드들로 이루어진 튜플을 CAM에 저장한 후 CAM을 검색해서 찾고 그 결과를 적절하게 패킷 송수신에 이용하는 것이다.Data in the table, such as MAC address 130, IP address 140, {sending IP address, sending port number, receiving IP address, receiving port number} 160, as in a table structure managed within a network environment and network devices. After storing a tuple of fields in the CAM, the CAM is searched and found, and the result is used for packet transmission and reception.

Ternary CAM 방법은 기존의 binary CAM이 가지던 0과 1 값뿐만 아니라 "don't care" 값을 가지는 것을 가능하게 함으로써 비교할 필요가 없는 엔트리내 특정 필드를 don't care로 둘 수 있다. 이것은 CAM을 다양한 어플리케이션으로의 응용을 훨씬 용이하게 해준다. 그래서 CAM은 고속을 요구하는 차세대 네트워크 장치에 빠질 수 없는 보조 메모리로 등장하게 되었다.The ternary CAM method enables not only the specific fields in the entries that do not need to be compared to the don't care by making it possible to have "don't care" values as well as the 0 and 1 values of the existing binary CAM. This makes it much easier to apply CAM to a variety of applications. CAM has emerged as a secondary memory that is indispensable for next-generation network devices that demand high speed.

본 발명과 관련된 종래의 특허에는 현재 출원 된 "다이나믹 콘텐츠 주소지정 가능 메모리(CAM) 셀(출원번호 10-2001-712599, 공개번호 특2002-0012168, 공개일자 2002년2월15일)" 이다. 이 특허는 CAM의 응용이라기보다는 CAM 자체 고유 기능에 관한 특허이다.Conventional patents related to the present invention are the presently filed "Dynamic Content Addressable Memory (CAM) Cells (Application No. 10-2001-712599, Publication No. 2002-0012168, Publication Date February 15, 2002)." This patent is not about the application of CAM but rather a patent on CAM's own functions.

종래의 기술인 CAM이 가지는 단점은 CAM의 특징상 엔트리 크기가 36bit, 72bit, 144bit, 288bit 등과 같이 고정되어 있다는 것과, 같은 크기의 엔트리를 가지는 테이블들 간에는 구분하여 검색할 방법이 없다는 것이다. 테이블이란 것은 CAM 사용자 입장에서 논리적으로 나눈 것이지, 하드웨어적으로 나뉘어져 있는 것이아니기 때문에 CAM 자체는 검색 시 검색하고자 하는 테이블 만을 검색하는 것이 아니라 검색용 엔트리 크기에 맞춰서 CAM 내 동일한 크기를 가지는 모든 엔트리들을 테이블 종류에 상관없이 검색하므로 본 발명을 발생시킨 효과를 가져왔다.The disadvantage of the conventional CAM is that the entry size is fixed, such as 36bit, 72bit, 144bit, 288bit, etc. due to the characteristics of the CAM, and there is no way of searching separately between tables having the same size. Because a table is logically divided from the CAM user's point of view, and not divided in hardware, the CAM itself does not search only the table to be searched. Instead, it searches all entries of the same size in the CAM according to the size of the search entry. Regardless of the type of search, the present invention produced the effect.

CAM내에 들어가는 테이블들의 실시 예에서 보면 사용자가 CAM 메모리(210) 내에 A 테이블(211)에서만 검색을 하려고 검색 명령을 내리게 되면, CAM내에 동일한 엔트리 크기를 가지는 B 테이블(212)이 있으므로 A 와 B 테이블은 동시에 검색되고 두 테이블 내에서 최초로 검색되어 일치된 엔트리 값을 그 결과로 얻게 될 것이다. 그래서 A 테이블에서 일치가 최초로 발생하면 원하는 결과 값을 얻을 수 있으나, 만일 B 테이블(212)에서 최초로 일치가 발생한 경우에는 원하는 결과를 얻지 못하게 되는 상황이 발생하게 된다.In the embodiment of the tables in the CAM, if the user issues a search command to search only in the A table 211 in the CAM memory 210, there is a B table 212 having the same entry size in the CAM. Will be searched at the same time and the first searched in the two tables will result in matching entry values. Thus, if a match occurs first in the A table, a desired result value may be obtained. However, if a match occurs first in the B table 212, a situation occurs in which a desired result is not obtained.

본 발명의 목적은 동일한 CAM 엔트리 크기를 가지는 다양한 테이블을 CAM내에 구성하는 네트워크 장치의 경우, 검색하지 못하는 단점을 갖는 종래의 기술을 극복할 수 있는 CAM 엔트리 추가 방법을 발명하였다. 본 발명으로 인하여 동일한 크기의 엔트리를 갖는 테이블의 경우 CAM 방식에서 검색하지 못한 단점을 극복하여 검색할 수 있게 되었다.It is an object of the present invention to invent a method for adding a CAM entry that can overcome the prior art, which has the disadvantage of not being able to search for a network device constituting various tables in the CAM having the same CAM entry size. According to the present invention, a table having an entry of the same size can be searched by overcoming a disadvantage that the CAM method cannot search.

제 1 도 네트워크 환경과 네트워크 장치 내에서 관리되는 테이블 구조Figure 1 Table structure managed within network environment and network device

제 2 도 CAM내에 들어가는 테이블들의 실시 예Figure 2 An embodiment of the tables falling within the CAM

제 3 도 네트워크 장치 내 패킷 전달 방법Figure 3 Packet forwarding method in a network device

제 4 도 CAM 테이블에 테이블 구분자 정보를 포함한 엔트리 추가 방법Fig. 4 How to add an entry including table separator information in CAM table

제 5 도 테이블 구분자 값 설정 방법Figure 5. How to Set Table Separator Values

제 6 도 CAM 테이블에 테이블 구분자 정보를 포함하여 추가한 엔트리 구조Fig. 6 Entry structure added by including table separator information in CAM table

제 7 도 테이블 구분자 값 설정 방법의 실시 예7 Example of Setting a Table Separator Value

제 8 도 CAM 테이블 내 엔트리 검색 방법Fig. 8 Entry Search Method in CAM Table

이하 첨부된 도면에 의해 본 발명의 구성을 설명하면 다음과 같다.Referring to the configuration of the present invention by the accompanying drawings as follows.

제 1 도 네트워크 환경과 네트워크 장치 내에서 관리되는 테이블 구조는 MAC 주소(130)와 IP 주소(140) 테이블을 갖는다. 이들 테이블은 스위치 라우터(120)내에 존재하며, 인터넷(110)을 통한 데이터 전송을 하거나, 스위치라우터(120)에 연결된 컴퓨터들(121,122, 123)과 데이터 전송을 한다. 발신지에서 착신지까지 데이터를 전송하기 위한 정보는 송신 IP 주소(150), 송신 포트 번호(160), 수신 IP 주소(170), 수신 포트 번호(180)등으로 구성한다. 이러한 정보를 갖는 테이블 내 데이터 필드들로 이루어진 튜플을 CAM에 저장한 후 CAM을 검색해서 찾고 그 결과를 적절하게 패킷 송수신에 이용하는 것이다.The table structure managed in the network environment and the network device has a MAC address 130 and an IP address 140 table. These tables exist in the switch router 120 and perform data transmission via the Internet 110 or data transmission with the computers 121, 122, and 123 connected to the switch router 120. Information for transmitting data from the source to the destination consists of a sending IP address 150, a sending port number 160, a receiving IP address 170, a receiving port number 180, and the like. A tuple of data fields in a table with this information is stored in the CAM, and then the CAM is searched for and used to properly transmit and receive packets.

제 2 도 CAM내에 들어가는 테이블들의 실시 예에서 보면 사용자가 CAM 메모리(210) 내에 36bit-size entry를 갖는 Table A(211)에서만 검색을 하려고 검색 명령을 내리게 되면, CAM내에 동일한 엔트리 크기를 가지는 Table A(211)와 Table B(212)가 있으므로 Table A(211)와 Table B(212)는 동시에 검색되고 두 테이블 내에서 최초로 검색되어 일치된 엔트리 값을 그 결과로 얻게 될 것이다. 그래서 원하는 엔트리가 A 테이블(211)에 있는 경우, Table A(211)에서 일치가 최초로 발생하면 원하는 결과 값을 얻을 수 있으나, 만일 Table B(212)에서 최초로 일치가 발생한 경우에는 원하는 결과를 얻지 못하게 되는 문제가 발생된다.FIG. 2 shows an example of tables in the CAM. When a user issues a search command to search only in Table A 211 having a 36-bit entry in the CAM memory 210, Table A having the same entry size in the CAM. Since there are 211 and Table B 212, Table A 211 and Table B 212 will be searched at the same time and the first searched in both tables will result in matching entry values. Therefore, if the desired entry is in the A table 211, if a match occurs first in Table A 211, a desired result value may be obtained. However, if a match occurs first in Table B 212, the desired result may not be obtained. Problem occurs.

72bit-size entry를 갖는 Table C(213)인 경우에는 동일한 크기가 하나 밖에 없으므로 항상 하나만 선택되므로 문제가 발생하지 않는다.In the case of Table C (213) having a 72-bit entry, there is no problem because only one is always selected because there is only one same size.

144bit-size entry를 갖는 Table D(214), Table E(215), Table F(216)인 경우에는 동일한 크기의 테이블이 CAM내에 3개가 있으므로 Table D와 Table E, Table F는 동시에 검색되고 3개 테이블 내에서 최초로 검색되어 일치된 엔트리 값을 그 결과로 얻게 될 것이다. 그래서 원하는 엔트리가 F 테이블(216)에 있는 경우,Table F(216)에서 일치가 최초로 발생하면 원하는 결과 값을 얻을 수 있으나, 만일 Table D(214) 또는 Table E(215)에서 최초로 일치가 발생한 경우에는 원하는 결과를 얻지 못하게 되는 문제가 발생된다.In the case of Table D (214), Table E (215), and Table F (216) with 144bit-size entry, there are three tables of the same size in CAM, so Table D, Table E, and Table F are searched simultaneously and three The first searched entry in the table will result in the matched entry value. Thus, if the desired entry is in the F table 216, if the match occurs first in Table F 216, the desired result can be obtained, but if the first match occurs in Table D (214) or Table E (215). The problem arises that the desired result is not achieved.

제 3 도 네트워크 장치 내 패킷 전달 방법은 테이블 초기화(310)에서 CAM 엔트리를 추가(311)하고, 데이터 패킷을 수신(320)하고, 테이블 검색 용 튜플을 작성(330)한 후에, 테이블을 검색(340), 테이블 검색 결과분석(350)을 한다. 테이블 검색 결과분석(350)에서는 CAM 엔트리 추가(351)를 하고 해당 포트로 패킷 송신 또는 폐기를 한다. 이와 같이 일련의 절차가 종료되면, 데이터 패킷 수신(320)으로 이동한다.FIG. 3 illustrates a method of packet forwarding within a network device. In the table initialization 310, a CAM entry is added 311, a data packet is received 320, a table search tuple is created 330, and a table is searched ( 340), the table search result analysis 350. In the table search result analysis 350, the CAM entry is added 351, and the packet is transmitted or discarded to the corresponding port. When the series of procedures is completed as described above, the process moves to the data packet reception 320.

즉, 먼저 CAM에 들어갈 테이블을 위한 기본적인 초기화 루틴을 실시한다. 이 때 필요한 테이블을 미리 만들 수도 있다. 그런 뒤 데이터 패킷을 수신하게 되는데 수신된 패킷이 유효한지 여부와 어떤 포트로 전달할 것인지를 결정하게 되는데 이때 사용되는 것이 CAM에 있는 테이블이다. 테이블을 초기화할 때(310)와 테이블의 검색 결과를 분석할 때(350) 'CAM 엔트리 추가'(311, 351)라는 항목이 있는데, 엔트리 추가시 동일한 CAM 엔트리 크기를 가지는 복수의 테이블을 구분할 수 있는 테이블 구분자를 테이블 내 하나의 필드로 추가하는 것이 이 발명의 요지이다.In other words, we first perform a basic initialization routine for a table to be in the CAM. You can also create the tables you need at this time. It then receives the data packet, which determines whether the received packet is valid and to which port to forward it. This is the table in the CAM. When initializing a table (310) and analyzing a search result of a table (350), there is an item called 'Add CAM entry' (311, 351). When adding an entry, a plurality of tables having the same CAM entry size can be distinguished. Adding a table delimiter as a field in a table is the subject of this invention.

제 4 도 CAM 테이블에 테이블 구분자 정보를 포함한 엔트리 추가 방법은 제 3 도의 CAM 엔트리 추가(311, 351)하는 방법을 나타낸 것이다. 종래의 기술에서 갖고 있지 못한 CAM 엔트리 추가(311, 351)하는 방법을 제 4 도에서 설명한다. 첫째로 만들고자하는 테이블의 엔트리 크기 값을 정의한다(401). 그리고 테이블의 엔트리 크기 값보다 큰 CAM 엔트리 크기 값을 정한다(402). 동일한 크기의 CAM 엔트리를 가지는 다른 테이블들 중에서 가장 큰 데이터 튜플을 가지는 테이블의 데이터 튜플 크기 값과 CAM 엔트리 크기 값의 차이가 테이블 구분자의 크기(403)가 되고, 테이블 구분자 크기를 비교(404)하여 테이블 구분자 크기가 0보다 크면, 테이블 구분자 크기 내에서 실제 구분자 값을 설정(405)하고, 테이블 구분자 크기를 비교(404)하여 테이블 구분자 크기가 0보다 작으면, CAM 엔트리 크기 선택(402)를 다시 실행한다.FIG. 4 illustrates a method for adding an entry including table separator information to a CAM table in FIG. 3. A method of adding CAM entries 311 and 351, which is not available in the prior art, is described in FIG. First, an entry size value of a table to be created is defined (401). A CAM entry size value larger than the entry size value of the table is determined (402). The difference between the data tuple size value and the CAM entry size value of the table having the largest data tuple among other tables with the same size CAM entry becomes the size of the table separator (403), and the table separator size is compared (404). If the table delimiter size is greater than zero, set the actual delimiter value within the table delimiter size (405), compare the table delimiter size (404), and if the table delimiter size is less than zero, select CAM entry size selection (402) again. Run

제 5 도 테이블 구분자 값 설정 방법은 테이블 구분자 값 설정 방법(405)을 구체적으로 설명하고 있다. 테이블 구분자 값의 범위는 0 ∼ (2테이블 구분자 크기-1) 까지 가능한데(501), 이것은 동일한 크기의 엔트리를 가지는 가능한 테이블의 수를 의미하기도 한다. 테이블에 첫 번째 테이블 값을 세팅(502)한다. 첫 번째 테이블의 구분자 값을 0으로 초기화(503)한 후, 만일 구분자 값을 비교(504)하여 2(테이블 구분자 크기)보다 작게 되면, 테이블에 동일크기의 엔트리를 가지는 다음 테이블을 세팅(505)하고 존재하는 테이블인가를 수행(506)하여, 아니면 종료(508)하고, 존재하는 테이블이면 해당 테이블의 구분자 값을 1씩 증가시켜서 구분자 값을 설정(507)한다. 만일 구분자 값을 비교(504)하여 2(테이블 구분자 크기)보다 크거나 같게 되면, 제 4 도에서의 테이블 구분자 크기 구하는 방법을 다시 수행(401)하여 더 큰 크기의 구분자 값을 할당할 수 있도록 한다. 이렇게 설정된 테이블 구분자 값은 테이블 내 엔트리 작성 시 함께 작성되어 하나의 엔트리가 된다(406).5 illustrates a table separator value setting method 405 in detail. The table delimiter value can range from 0 to (2 table delimiter size -1) (501), which also means the number of possible tables with entries of the same size. Set the first table value in the table (502). After initializing the delimiter value of the first table to 0 (503), if the delimiter value is compared (504) and smaller than 2 (table delimiter size) , the next table having the same size entry in the table is set (505). If the existing table is present (506), or terminates (508), and if the existing table, the delimiter value of the table is increased by one to set the delimiter value (507). If the delimiter value is compared (504) to be greater than or equal to 2 (table delimiter size) , the method of obtaining the table delimiter size in FIG. 4 is performed again (401) so that a larger delimiter value can be allocated. . The table delimiter value set in this way is created together when creating an entry in the table, and becomes one entry (406).

제 6 도 CAM 테이블에 테이블 구분자 정보를 포함하여 추가한 엔트리구조는 72 bit인 구조와 144 bit인 구조가 있다. 72bit 크기의 CAM 엔트리 내에 48bit의 검색 데이터 튜플을 가지는 경우 최대 24bit 크기의 테이블 구분자(601)가 있다. 그리고 검색하고자하는 데이터 튜플의 크기가 112bit이고 CAM이 지원 가능한 엔트리 크기가 144bit인 경우, 같은 크기의 144bit 엔트리를 가지는 또 다른 테이블의 테이블 구분자 값이 16bit 크기이면 다음과 같이 Reserved 필드(603)를 추가하여 테이블 구분자 값 크기를 16bit로 한다(602).FIG. 6 shows an entry structure added to the CAM table including the table separator information by 72 bits and 144 bits. In the case of having a 48-bit search data tuple in a 72-bit CAM entry, there is a table separator 601 having a maximum size of 24 bits. If the size of the data tuple to be searched is 112 bits and the CAM can support 144 bits, the reserved identifier field 603 is added as follows when the table separator value of another table having the same size of 144 bits is 16 bits. The table delimiter value is set to 16 bits (602).

제 7도는 테이블 구분자 값 설정 방법의 실시 예이다. 테이블 A와 B는 36bit 크기의 CAM 엔트리를 가지는 테이블로서 각각 0 값(701)과 1 값(702)을 테이블 구분자 값으로 사용하고 있다. 테이블 구분자의 크기는 6bit 이다. 테이블 D와 E, F는 144bit 크기의 CAM 엔트리를 가지는 테이블로서 각각 0 값(704)과 1 값(705), 그리고 2 값(706)을 테이블 구분자값으로 사용하고 있다. 테이블 구분자의 크기는 8bit 이다.7 is an embodiment of a method of setting a table separator value. Tables A and B are tables having 36-bit CAM entries, which use 0 value 701 and 1 value 702 as table delimiter values, respectively. The table separator is 6 bits in size. Tables D, E, and F are tables with 144-bit CAM entries, which use 0 value 704, 1 value 705, and 2 value 706 as table delimiter values, respectively. The table separator is 8 bits in size.

이렇게 테이블 엔트리 내에 테이블 구분자를 두어 테이블을 생성함으로써 동일한 크기의 CAM 엔트리를 가지는 두 개 이상의 테이블이 CAM에 있더라도 검색 시 검색 결과를 목적 테이블에서만 얻을 수 있게 되었다.By creating a table with table separators within the table entries, the search results can be obtained only from the target table even if two or more tables with the same size CAM entries exist in the CAM.

검색방법은 제 8 도에 나온 것과 같이 먼저 테이블 구분자와 함께 테이블 검색용 튜플을 작성(801)한 후, 검색용 테이블 구분자를 추가(802)하고, CAM검색을 실시(803)한다. match된 엔트리의 유무를 판단(804)하고, 없으면 검색하고자 하는엔트리가 해당 테이블에 없음(806)을 지정하고, 있으면 테이블 구분자에서 해당 테이블에서 찾음(805)을 실행한다. 이렇게 얻어진 결과는 제 3 도의 마지막으로 패킷을 폐기할 것인지 해당 목적지로 송신할 것인지를 결정(360)하게 된다.In the searching method, as shown in FIG. 8, a table search tuple is first created (801) with a table separator, a table separator for searching is added (802), and a CAM search is performed (803). It determines whether there is a matched entry (804), and if there is no entry to search for in the table (806), and if it finds in the table (805) in the table separator. The result thus obtained determines whether the packet is discarded at the end of FIG. 3 or transmitted to the corresponding destination (360).

이상에서 설명한바와 같이 본 발명은 동일한 엔트리 크기를 가지는 테이블을 구분할 수 있는 테이블 구분자를 테이블 엔트리 내에 둠으로써 동일한 크기의 엔트리를 갖는 경우 CAM 방식에서 검색하지 못한 단점을 극복하여 검색할 수 있게 되었다.As described above, in the present invention, a table delimiter capable of distinguishing a table having the same entry size may be placed in a table entry, thereby overcoming the shortcomings that the CAM method cannot search in the case of having an entry of the same size.

종래의 기술인 CAM이 가지는 단점은 CAM의 특징상 엔트리 크기가 36bit, 72bit, 144bit, 288bit 등과 같이 고정되어 있다는 것과 같은 크기의 엔트리를 가지는 테이블들 간에는 구분하여 검색할 수 있는 방법이 없다는 것이다. 이러한 단점을 해결하기위해서 복수의 테이블 검색 시 검색하고자 하는 테이블 만을 검색할 수 있는 발명의 효과가 발생하였다.A disadvantage of the conventional technology, CAM, is that there is no way to search separately among tables having entries of the same size, such that the entry size is fixed, such as 36 bits, 72 bits, 144 bits, 288 bits. In order to solve this drawback, the effect of the invention that only the table to be searched when searching a plurality of tables has occurred.

Claims (3)

네트워크 환경과 네트워크 장치 내에서 관리되는 MAC 주소(130)와 IP 주소(140) 등의 테이블 구조를 갖고, 이들 테이블은 스위치라우터(120)내에 존재하며, 인터넷(110)을 통한 데이터 전송을 하거나, 스위치라우터(120)에 연결된 컴퓨터들(121,122, 123)들과 데이터 전송하고, 발신지에서 착신지까지 데이터를 전송하기 위한 정보는 송신 IP 주소(150), 송신 포트 번호(160), 수신 IP 주소(170), 수신 포트 번호(180) 등으로 구성한 환경에서,It has a table structure such as MAC address 130 and IP address 140 managed in the network environment and network devices, these tables exist in the switch router 120, and transmits data through the Internet 110, Data for transmitting data with the computers 121, 122, and 123 connected to the switch router 120, and information for transmitting data from the source to the destination may include a source IP address 150, a source port number 160, a destination IP address ( 170), the receiving port number 180, and the like, Ternary CAM을 이용하는 네트워크 장치에서, 동일한 크기의 CAM 엔트리를 가지는 테이블들이 존재하는 경우, 테이블들을 구분할 수 있는 테이블 구분자를 테이블 내 하나의 필드로 추가하는 방법으로,In a network device using Ternary CAM, if there are tables having CAM entries of the same size, a table delimiter for distinguishing the tables may be added as a field in the table. 네트워크 장치 내 패킷 전달 방법은 테이블 초기화(310)에서 CAM 엔트리를 추가(311)하고, 데이터 패킷을 수신(32)하고, 테이블 검색 용 튜플작성(330)한 후에, 테이블을 검색(340), 테이블 검색 결과분석(350)하여, 테이블 검색 결과분석(350)에서 CAM 엔트리 추가(351)를 하고, 해당 포트로 패킷 송신 또는 폐기를 하고, 이와 같이 일련의 절차가 종료되면, 데이터 패킷 수신(320)으로 이동함에 있어서,The packet forwarding method in the network device includes adding (311) a CAM entry in a table initialization (310), receiving a data packet (32), and writing a tuple for a table search (330), and then searching (340) the table. In the search result analysis 350, the CAM entry is added 351 in the table search result analysis 350, the packet is transmitted or discarded to the corresponding port, and the data packet is received 320 when the series of procedures is completed. In moving to, CAM에 있는 테이블을 초기화할 때(310)와 테이블의 검색 결과를 분석할 때(350) 'CAM 엔트리 추가'(311, 351)라는 항목이 있는데, 엔트리 추가 시 동일한 CAM 엔트리 크기를 가지는 테이블들을 구분할 수 있는 테이블 구분자를 테이블 내하나의 필드로 추가하는 방법When initializing the table in CAM (310) and analyzing the search results of the table (350), there is an item called 'Add CAM Entry' (311, 351). To Add Table Separator as a Field in a Table 제 1 항에 있어서,The method of claim 1, 만들고자하는 테이블의 엔트리 크기 값을 정의(401)하고, 테이블의 엔트리 크기 값보다 큰 CAM 엔트리 크기 값을 정의(402)하며, 동일한 크기의 CAM 엔트리를 가지는 다른 테이블들 중에서 가장 큰 데이터 튜플을 가지는 테이블의 데이터 튜플 크기 값과 CAM 엔트리 크기 값의 차이 값이 테이블 구분자의 크기(403)가 되고, 테이블 구분자 크기를 비교(404)하여 테이블 구분자 크기가 0보다 크면, 테이블 구분자 크기 내에서 실제 구분자 값을 설정(405)하고, 테이블 구분자 크기를 비교(404)하여 테이블 구분자 크기가 0보다 작으면, CAM 엔트리 크기 선택(402)을 다시 실행하여 CAM 테이블에 테이블 구분자 정보를 포함한 엔트리 추가 방법Define an entry size value of the table to be created (401), define a CAM entry size value larger than the entry size value of the table (402), and have the table with the largest data tuple among other tables with the same size CAM entry. If the difference between the data tuple size value of the CAM entry size value is the table separator size (403) and the table separator size is compared (404), and the table separator size is greater than zero, the actual separator value within the table separator size is selected. Setting (405) and comparing the table separator size (404), if the table separator size is less than zero, execute the CAM entry size selection (402) again to add an entry including the table separator information to the CAM table. 제 2항에 있어서,The method of claim 2, 테이블 구분자 값의 범위는 0 - (2테이블 구분자 크기-1) 까지 가능한 구조에서,Table delimiter values range from 0 to (2 table delimiter sizes -1), 테이블에 첫 번째 테이블 값을 세팅(502)하고, 첫 번째 테이블의 구분자 값을 0으로 초기화(503)한 후, 만일 구분자 값을 비교(504)하여 2(테이블 구분자 크기)보다 작게 되면, 테이블에 동일크기의 엔트리를 가지는 다음 테이블을 세팅(505)하고 존재하는 테이블인가를 수행(506)하여, 아니면 종료(508)하고, 존재하는 테이블이면 해당 테이블의 구분자 값을 1씩 증가시켜서 구분자 값을 설정(507)하고, 만일 구분자 값을 비교(504)하여 2(테이블 구분자 크기)보다 크거나 같게 되면, 테이블 구분자 크기 구하는 방법을 다시 수행(401)하여 더 큰 크기의 구분자 값을 할당할 수 있도록 하여, 설정된 테이블 구분자 값은 테이블 내 엔트리 작성 시 함께 작성되어 하나의 엔트리(406)가 되도록 하는 테이블 구분자값 설정 방법After setting the first table value to the table (502), initializing the separator value of the first table to zero (503), and comparing the separator value (504) to less than 2 (table separator size) , The next table having the same size entry is set (505) and the existing table is executed (506), or terminated (508). If the existing table, the delimiter value is set by increasing the delimiter value of the corresponding table by one. If the delimiter value is greater than or equal to 2 (table delimiter size) , the method for obtaining the table delimiter size is performed again (401) so that a larger delimiter value can be allocated. To set the table delimiter value so that the set table delimiter value is created together when creating an entry in the table so that it becomes one entry 406.
KR1020020053341A 2002-09-04 2002-09-04 The Management Method of tables that have entries of same size on CAM in Network device KR20020081569A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020053341A KR20020081569A (en) 2002-09-04 2002-09-04 The Management Method of tables that have entries of same size on CAM in Network device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020053341A KR20020081569A (en) 2002-09-04 2002-09-04 The Management Method of tables that have entries of same size on CAM in Network device

Publications (1)

Publication Number Publication Date
KR20020081569A true KR20020081569A (en) 2002-10-28

Family

ID=27728150

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020053341A KR20020081569A (en) 2002-09-04 2002-09-04 The Management Method of tables that have entries of same size on CAM in Network device

Country Status (1)

Country Link
KR (1) KR20020081569A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100564768B1 (en) * 2003-12-26 2006-03-27 한국전자통신연구원 Apparatus for performing packet header lookup based on sequential lookup and method of the same
KR100705593B1 (en) * 2006-01-25 2007-04-09 삼성전자주식회사 Apparatus and method for managing ternary content addressable memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998041922A1 (en) * 1997-03-14 1998-09-24 Music Semiconductors, Inc. Accelerated hierarchical address filtering and translation
JP2001119432A (en) * 1999-10-21 2001-04-27 Toshiba Corp Data retrieval device, packet identification device, and inter-network repeater
JP2001156840A (en) * 1999-11-25 2001-06-08 Nec Corp Method and device for flow discrimination and method and device for flow processing
EP1180882A2 (en) * 2000-08-17 2002-02-20 Nippon Telegraph and Telephone Corporation Packet classification search device and method
WO2002019638A2 (en) * 2000-08-31 2002-03-07 Mosaid Technologies Incorporated Method and apparatus for searching a filtering database with one search operation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998041922A1 (en) * 1997-03-14 1998-09-24 Music Semiconductors, Inc. Accelerated hierarchical address filtering and translation
JP2001119432A (en) * 1999-10-21 2001-04-27 Toshiba Corp Data retrieval device, packet identification device, and inter-network repeater
JP2001156840A (en) * 1999-11-25 2001-06-08 Nec Corp Method and device for flow discrimination and method and device for flow processing
EP1180882A2 (en) * 2000-08-17 2002-02-20 Nippon Telegraph and Telephone Corporation Packet classification search device and method
WO2002019638A2 (en) * 2000-08-31 2002-03-07 Mosaid Technologies Incorporated Method and apparatus for searching a filtering database with one search operation

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100564768B1 (en) * 2003-12-26 2006-03-27 한국전자통신연구원 Apparatus for performing packet header lookup based on sequential lookup and method of the same
US7433357B2 (en) 2003-12-26 2008-10-07 Electronics And Telecommunications Research Institute Apparatus and method for performing header lookup based on sequential lookup
KR100705593B1 (en) * 2006-01-25 2007-04-09 삼성전자주식회사 Apparatus and method for managing ternary content addressable memory

Similar Documents

Publication Publication Date Title
EP2643762B1 (en) Method and apparatus for high performance, updatable, and deterministic hash table for network equipment
US10496680B2 (en) High-performance bloom filter array
Yu et al. Efficient multimatch packet classification and lookup with TCAM
EP2020125B1 (en) Method of performing table lookup operation with table index that exceeds CAM key size
CA2385331C (en) Method and apparatus for a four-way hash table
US20070133593A1 (en) Searching Strings Representing a Regular Expression
JP5518135B2 (en) Extensible multicast forwarding method and apparatus for data center
US7096277B2 (en) Distributed lookup based on packet contents
WO2016060715A1 (en) Hash-based address matching
CN111937360B (en) Longest prefix matching
JP3881663B2 (en) Packet classification apparatus and method using field level tree
US20100014516A1 (en) Table lookup mechanism for address resolution
US7403526B1 (en) Partitioning and filtering a search space of particular use for determining a longest prefix match thereon
Yang et al. Fast OpenFlow table lookup with fast update
CN110035074A (en) A kind of chip implementing method and device of ACL matching UDF message
CN103825824A (en) Message processing method and message processing device
CN101099347A (en) Maskable content addressable memory
WO2024067746A1 (en) Method and system for mask matching implemented on basis of fpga
US20230041395A1 (en) Method and Device for Processing Routing Table Entries
US11888743B1 (en) Network device storage of incremental prefix trees
US7296100B1 (en) Packet buffer management apparatus and method
US20230367720A1 (en) Data search method and apparatus, and integrated circuit
CN103581020B (en) The method of a kind of message forwarding, Apparatus and system
KR20020081569A (en) The Management Method of tables that have entries of same size on CAM in Network device
CN103841083A (en) Method and apparatus for enhancing message identification capability

Legal Events

Date Code Title Description
A201 Request for examination
G15R Request for early publication
E902 Notification of reason for refusal
E601 Decision to refuse application