KR20030089935A - Apparatus and method for controlling high speed IP forwarding engine based upon high speed IP lookup chip - Google Patents

Apparatus and method for controlling high speed IP forwarding engine based upon high speed IP lookup chip Download PDF

Info

Publication number
KR20030089935A
KR20030089935A KR1020020027862A KR20020027862A KR20030089935A KR 20030089935 A KR20030089935 A KR 20030089935A KR 1020020027862 A KR1020020027862 A KR 1020020027862A KR 20020027862 A KR20020027862 A KR 20020027862A KR 20030089935 A KR20030089935 A KR 20030089935A
Authority
KR
South Korea
Prior art keywords
lookup
memory
entry
control
lookup table
Prior art date
Application number
KR1020020027862A
Other languages
Korean (ko)
Other versions
KR100429909B1 (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 KR10-2002-0027862A priority Critical patent/KR100429909B1/en
Publication of KR20030089935A publication Critical patent/KR20030089935A/en
Application granted granted Critical
Publication of KR100429909B1 publication Critical patent/KR100429909B1/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/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • 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

Abstract

PURPOSE: An apparatus and a method for controlling a high-speed IP forwarding engine on the basis of a high-speed lookup device are provided to overcome deterioration in performance, due to lookup process, by embodying a hardware lookup device driver to configure a lookup table as preparation for the driving of a high-speed IP lookup device and replacing an existing software-based lookup module. CONSTITUTION: A forwarding control system based on a high-speed IP lookup device consists of a lookup device(36), a control data structure memory(32), a lookup device and memory initialization control part(33), a lookup table configuration part(34), and a lookup device and memory control part(35). The lookup device(36) compares a lookup table stored in an internal lookup memory(37) with the address information of an inputted IP packet and finds out forwarding information stored in an external forwarding memory(38). The control data structure memory(32) stores the configuration information of a structure that manages the control data of the lookup device(36), the control data of the lookup memory(37), and the control data of the forwarding memory(38) in common. The lookup device and memory initialization control part(33) issues a control command to initialize the lookup device(36), the lookup memory(37), and the control data structure memory(32) in case that an initialization command is generated from an upper application program module(31). In case that a lookup entry addition/deletion command is generated from the upper application program module(31), the lookup table configuration part(34) searches the lookup table to confirm whether an addition or deletion lookup entry exists, adds or deletes the addition or deletion lookup entry according to a search result, and issues a control command to update the contents of the control data structure memory(32). The lookup device and memory control part(35) receives the issued control commands and inputs control values, related to the issued control commands, to the lookup device(36), the lookup memory(37), and the forwarding memory(38).

Description

고속 IP룩업 장치를 기반으로 한 고속 IP포워딩 엔진 제어 장치 및 방법 {Apparatus and method for controlling high speed IP forwarding engine based upon high speed IP lookup chip}Apparatus and method for controlling high speed IP forwarding engine based upon high speed IP lookup chip}

본 발명은 IP 패킷의 목적지 주소를 룩업하여 해당 주소로 포워딩하는 고속 IP 포워딩 엔진을 제어하기 위한 디바이스 드라이버에 관한 것으로서 기존의 인터넷 라우터 장치에서 사용되는 소프트웨어 기반의 룩업 기능 대신에 고속 하드웨어 룩업 칩에 기반한 하드웨어 룩업 장치를 제어하고 또한 룩업 테이블을 추가, 삭제, 검색하는 등의 기능을 수행하여 고성능 IP 포워딩 장치의 룩업 모듈로서의 수단을 제공하는데 그 목적을 두고 있다.The present invention relates to a device driver for controlling a high-speed IP forwarding engine that looks up and forwards a destination address of an IP packet to a corresponding address. The present invention is based on a high-speed hardware lookup chip instead of a software-based lookup function used in an existing Internet router device. It aims to provide a means as a lookup module of a high performance IP forwarding device by controlling a hardware lookup device and performing a function of adding, deleting, and searching a lookup table.

xDSL, 케이블 모뎀 및 고속 이더넷 등의 초고속 인터넷망의 발전과 더불어 인터넷 트래픽의 급속한 증가는 인터넷 연결을 구성하는 각종 스위치 및 라우터의 병목현상을 초래하고 있다. 이러한 문제점을 해결하기 위한 일환으로 백본 전송망의 고속화에는 진전을 이루고 있으나, 인터넷 망의 복잡도에 따라서 라우팅 테이블에 따른 포워딩 기능이 트래픽 속도를 따라가지 못하는 문제점을 노출하고 하고 있으며, 이에 따라 이러한 라우팅 테이블 룩업 및 룩업 결과에 따른 포워딩 기술에 대한 연구가 활발히 이루어지고 있다.The rapid increase in Internet traffic along with the development of high speed Internet networks such as xDSL, cable modem and Fast Ethernet is causing bottlenecks of various switches and routers that make up the Internet connection. In order to solve this problem, the advancement of the backbone transmission network is progressing. However, according to the complexity of the internet network, the forwarding function according to the routing table is not able to keep up with the traffic speed. And research on forwarding technology according to the lookup results are actively made.

이러한 고속 IP 룩업에 대한 기술은 크게 두 가지 방향으로 연구가 진행중인데, 하나는 기존의 룩업 알고리즘을 개선하여 소프트웨어적으로 성능을 배가시키는 것과, 별도의 룩업 칩을 이용하여 하드웨어적으로 성능을 극대화시키는 방법이 있다. 하드웨어적인 룩업 칩을 이용한 해결방안은 그 성능에는 만족스러운 결과를 구할 수 있으나, 룩업 테이블의 제한 및 가격 등의 문제점이 있었으나, 이 분야의 지속적인 기술개발로 이러한 단점이 극복되고 있으며, 따라서 하드웨어 룩업 칩 기반의 고속 룩업 장치에 대한 연구가 최근 활발히 이루어지고 있다.The technology of the high-speed IP lookup is being studied in two directions. One is to improve the existing lookup algorithm to double the performance in software, and to maximize the performance in hardware by using a separate lookup chip. There is a way. The solution using the hardware lookup chip can obtain satisfactory results, but there are problems such as the limitation and the price of the lookup table, but these disadvantages are overcome by the continuous technology development in this field, and thus the hardware lookup chip. Recently, the research on the high speed lookup device is being actively conducted.

상기 하드웨어 룩업 장치를 이용함으로써 인터넷 트래픽의 흐름을 방해하지 않으면서 수많은 라우팅 테이블의 엔트리를 룩업 및 포워딩하는 고속 IP 포워딩 장치를 개발함으로써 인터넷 망의 중추적인 역할을 담당하는 스위치 및 라우터 장치의 고속화를 이룰 수 있다.By using the hardware lookup device, a high speed IP forwarding device that looks up and forwards entries of numerous routing tables without disturbing the flow of Internet traffic can be developed to achieve high speed of switch and router devices that play a pivotal role in the Internet network. Can be.

본 발명이 이루고자 하는 기술적 과제는 고속 IP 룩업 장치를 구동하고, 상기 구동을 위한 준비로서 룩업 테이블을 구축하는 하드웨어 룩업 장치 드라이버를 구현함으로써 기존의 소프트웨어 기반의 스위치 및 라우터 장비의 룩업 모듈을 대체하여 룩업으로 인한 성능 저하를 극복하고, 하드웨어 기반의 고속 IP 포워딩 엔진의 핵심 요소인 고속 IP 포워딩 엔진 제어 장치 및 방법을 제공하는데 있다.The technical problem of the present invention is to implement a hardware lookup device driver for driving a high speed IP lookup device and constructing a lookup table in preparation for the driving, thereby replacing the lookup module of the existing software-based switch and router equipment. The present invention provides an apparatus and method for controlling a high speed IP forwarding engine, which is an essential element of a hardware-based high speed IP forwarding engine.

도 1은 고속 IP 룩업 장치의 일종인 MUAC 칩의 블록 다이어그램도이다.1 is a block diagram of a MUAC chip, which is a type of fast IP lookup apparatus.

도 2는 본 발명이 탑재될 포워딩 엔진의 구성도이다.2 is a configuration diagram of a forwarding engine to which the present invention is mounted.

도 3은 고속 IP 룩업 장치를 기반으로 한 포워딩 제어 장치의 전체 구성도이다.3 is an overall configuration diagram of a forwarding control device based on a fast IP lookup device.

도 4는 룩업 장치 및 메모리 초기화 제어부의 상세 구성도이다.4 is a detailed configuration diagram of a lookup device and a memory initialization controller.

도 5는 룩업 테이블 추가 제어부에 대한 상세 구성도이다.5 is a detailed configuration diagram of a lookup table addition controller.

도 6은 룩업 테이블 삭제 제어부에 대한 상세 구성도이다.6 is a detailed block diagram illustrating a lookup table deletion controller.

도 7은 룩업 테이블 검색 제어부에 대한 상세 구성도이다.7 is a detailed configuration diagram of the lookup table search controller.

도 8은 룩업 장치 및 메모리 제어부에 대한 상세 구성도이다.8 is a detailed block diagram illustrating the lookup apparatus and the memory controller.

도 9는 제어 자료 구조체 메모리에 저장된 구조체에 대한 구조도이다.9 is a structural diagram of a structure stored in the control data structure memory.

도 10은 고속 IP 룩업 장치를 기반으로 한 고속 IP 포워딩 엔진를 제어하는 흐름도를 나타낸다.10 shows a flowchart of controlling a fast IP forwarding engine based on the fast IP lookup apparatus.

상기 기술적 과제를 해결하기 위한 본 발명은 장치 발명, 자료 구조체 발명, 방법 발명으로 구성되어 있다.MEANS TO SOLVE THE PROBLEM This invention for solving the said technical subject consists of apparatus invention, data structure invention, and method invention.

본 장치 발명은 하드웨어 IP 룩업 장치에 대한 초기화 기능과 룩업 테이블과 포워딩 테이블이 적재되는 메모리들에 대한 초기화 기능을 수행하는 룩업 장치 및 메모리 초기화 제어부, 룩업 테이블 갱신에 따른 룩업 테이블 엔트리를 추가하는 룩업 테이블 추가 제어부, 룩업 테이블 엔트리를 삭제하는 룩업 테이블 삭제 제어부, 룩업 테이블 추가 또는 삭제시에 기존의 룩업 테이블에 상기 추가 또는 삭제하고자 하는 룩업 엔트리가 이미 존재하는지를 검색하는 룩업 테이블 검색 제어부,룩업 장치의 내부 레지스터 접근 및 룩업 장치 명령어를 직접적으로 구동하고, 룩업 장치를 구동하는데 필요한 정보가 저장되어 있는 메모리에 대한 명령어를 직접적으로 구동하는 룩업 장치 및 메모리 제어부, 그리고 룩업 디바이스 드라이버의 각 제어부의 구현 및 구동에 사용되는 여러 가지 데이터 자료 구조체를 정의한 제어 자료 구조체가 저장되어 있는 제어 자료 구조체 메모리를 포함하는 것을 특징으로 한다. 이러한 구성을 통해서 본 발명은 상위 응용프로그램 모듈에서는 기존의 소프트웨어 기반의 룩업 모듈을 제어하듯이 이미 정의된 룩업 응용 프로그래밍 인터페이스(Application Programming Interface, API)를 통해서 하드웨어 기반의 고속 룩업 모듈을 용이하게 제어할 수 있다.The present invention provides a lookup table that performs an initialization function for a hardware IP lookup device, an initialization function for memories loaded with a lookup table and a forwarding table, a memory initialization control unit, and a lookup table for adding a lookup table entry according to a lookup table update. Additional control unit, a lookup table deletion control unit for deleting a lookup table entry, a lookup table search control unit for searching whether a lookup entry to be added or deleted already exists in an existing lookup table when adding or deleting a lookup table, and an internal register of a lookup device Implementation and implementation of a lookup device and a memory control unit that directly drive access and lookup device instructions, and directly drive instructions to a memory that stores information necessary to drive the lookup device, and each control unit of the lookup device driver And a control data structure memory in which a control data structure defining various data data structures used for the operation is stored. Through such a configuration, the present invention can easily control a hardware-based fast lookup module through a predefined lookup application programming interface (API) as the upper application module controls an existing software based lookup module. Can be.

본 자료 구조체 발명은 룩업 장치가 제공하는 서비스 그룹의 자료들을 관리하는 서비스 블록 구조체, 상기 서비스 블록 구조체내의 마스크 그룹의 자료들을 관리하는 마스크 블록 구조체, 상기 마스크 블록 구조체내의 시작 주소 자료와 빈 공간 주소 자료와 그룹 크기 자료를 관리하는 마스크 제어 블록 구조체, 룩업 메모리, 포워딩 메모리가 제공하는 룩업 정보, 포워딩 정보, 패킷 정보의 자료를 관리하는 룩업 엔트리 구조체를 포함하는 것을 특징으로 한다.This data structure invention includes a service block structure for managing data of a service group provided by a lookup device, a mask block structure for managing data of a mask group in the service block structure, a start address data and an empty space address data in the mask block structure. And a mask control block structure for managing group size data, a lookup memory, a lookup entry structure for managing data of lookup information, forwarding information, and packet information provided by the forwarding memory.

본 방법 발명은 상위 응용 프로그램 모듈로부터 초기화 명령이 있는 경우, 룩업 장치, 룩업 메모리, 및 제어 자료 구조체 메모리를 초기화하는 제어 명령을 하달하는 단계, 상기 상위 응용 프로그램 모듈로부터 룩업 엔트리 추가 또는 삭제 명령이 있는 경우, 상기 추가 또는 삭제 룩업 엔트리의 검색을 요청하는 단계, 상기 검색 요청이 있는 경우, 상기 추가 또는 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 룩업 엔트리인지를 검색하는 제어 명령을 하달하는 단계, 상기 검색 결과, 상기 룩업 테이블에 상기 추가 룩업 엔트리가 존재하지 않는 경우에는 상기 룩업 테이블에 상기 추가 룩업 엔트리를 추가하고, 상기 룩업 테이블에 상기 삭제 룩업 엔트리가 존재하는 경우에는 상기 룩업 테이블에서 상기 삭제 룩업 엔트리를 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 단계, 상기 하달된 제어 명령이 구현되도록 상기 고속 IP 룩업 장치, 룩업 메모리, 포워딩 메모리를 제어하는 단계를 포함하는 것을 특징으로 한다.According to the present invention, when there is an initialization instruction from an upper application module, the method includes: executing a control instruction for initializing a lookup device, a lookup memory, and a control data structure memory; and adding or deleting a lookup entry from the upper application module. Requesting a search for the add or delete lookup entry; if there is the search request, obtaining a control command for searching whether the add or delete lookup entry is a lookup entry that already exists in the lookup table; As a result of the search, if the additional lookup entry does not exist in the lookup table, the additional lookup entry is added to the lookup table, and if the delete lookup entry exists in the lookup table, the delete lookup entry in the lookup table. Delete and control Issuing a control command to update the contents of a data structure memory, and controlling the fast IP lookup device, lookup memory, and forwarding memory to implement the controlled control command.

이하에서는 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 적용 대상인 고속 IP 룩업 장치의 일종인 MUAC 칩의 블록 다이어그램도이다.1 is a block diagram of a MUAC chip, which is a kind of fast IP lookup apparatus to which the present invention is applied.

상기 고속 IP 룩업 장치는 일종의 CAM(Content Addressable Memory, 내용 주소화 기억 장치)이다. 상기 CAM은 기억 장치 내에 자료를 수록하거나 읽어낼 때 실제의 자료 내용을 주소로 하여 접근하는 기억 장치로서 일반적인 숫자를 통한 주소 기억 장치보다 강력하고 처리 속도가 빠르다. 상기 MUAC 칩은 MUSIC 세미컨덕터사의 제품으로 IPv4 어드레스의 최상의 프리픽스 매치 서치(search)와 MAC 어드레스의 정확한 매치가 가능한 라우팅 코프로세서이다. 상기 도 1에서 도시된 바와 같이 MUAC은 일곱 개의 선택 가능한 마스크 레지스터들(11)을 가지고 있기 때문에, 입력된 IP 패킷의 주소와 어드레스 데이터베이스인 룩업 테이블(12)을 비교하여 양 프리픽스가 가장 길게 되는 어드레스를 찾고자할 때, 동기화된 작동과 32 비트 삼진 또는 64 비트 이진 비교 연산을 제공한다. 상기의 동기화된 작동과 32 비트 삼진또는 64 비트 이진 비교 연산을 통하여 MUAC은 초마다 2천만번의 룩업들을 수행할 수 있다. 이하에서는 룩업 장치의 일 실시예로서 MUAC 칩을 사용하여 본 발명의 구성 및 작용을 설명하기로 한다.The fast IP lookup device is a kind of CAM (Content Addressable Memory). The CAM is a memory device that accesses an actual data content as an address when storing or reading data in the memory device. The CAM is stronger and has a faster processing speed than a general number address memory device. The MUAC chip is manufactured by MUSIC Semiconductor Inc. and is a routing coprocessor that allows exact matching of IPv4 addresses with exact matches of MAC addresses. As shown in FIG. 1, since the MUAC has seven selectable mask registers 11, the address having the longest prefix is obtained by comparing the address of the input IP packet with the lookup table 12, which is an address database. When looking for, we provide synchronized operation and 32-bit ternary or 64-bit binary comparison operations. With this synchronized operation and 32-bit ternary or 64-bit binary comparison operation, MUAC can perform 20 million lookups per second. Hereinafter, the configuration and operation of the present invention will be described using a MUAC chip as one embodiment of the lookup device.

도 2는 본 발명이 탑재될 포워딩 엔진의 구성도이다.2 is a configuration diagram of a forwarding engine to which the present invention is mounted.

상기 MUAC 칩은 3 계층의 스위치, 라우터, 및 2 계층의 스위치에서 외부 램(RAM)에 기록된 테이블들을 사용하여 완벽한 주소 번역을 제공한다. 상기 도 2에서는 라우터에 적용된 일 실시예를 보여주고 있다. 전체적인 라우터 시스템은 상기와 같은 포워딩 엔진(21)이 스위치 망(23)에 연결되어 있으며, 중앙에 메인 제어 모듈(22)이 있어 각종 제어 프로그램과 라우팅/MPLS(Multi Protocol Label Switch) 프로토콜이 탑재된다. 중앙의 메인 제어 모듈(22)에서 상기 포워딩 엔진(21)내의 포워딩 엔진 제어 모듈(211)로 룩업 테이블을 내려주게 되며, 뒤 따라서 포워딩 제어 모듈(211)의 해당 어플리케이션이 다시 여러 가지 테이블 정보를 고속 IP 룩업 장치(213), L3/L4 Associated Data(214), Connection Information Table(215)에 적재하게 되며, 이러한 정보를 기반으로 룩업 장치 및 메모리 제어기(212)에서 룩업 장치 및 메모리를 제어함으로서 하드웨어적인 룩업이 가능하도록 해줍니다. 상기 L3/L4 Associated Data(214)는 MPLS 라벨 정보 베이스먼트(Label Information Basement, LIB)가 저장된 외부 램이며, Connection Information Table(215)은 각 패킷의 포워딩 채널, 포워딩 패킷 타입 등이 저장된 외부 램이다.The MUAC chip provides complete address translation using tables written in external RAM in three-layer switches, routers, and two-layer switches. 2 illustrates an embodiment applied to a router. In the whole router system, the forwarding engine 21 as described above is connected to the switch network 23, and the main control module 22 is provided at the center, and various control programs and routing / MPLS (Multi Protocol Label Switch) protocols are mounted. . The lookup table is lowered from the main control module 22 in the center to the forwarding engine control module 211 in the forwarding engine 21. Accordingly, the corresponding application of the forwarding control module 211 again sends various table information at high speed. It is loaded on the IP lookup device 213, L3 / L4 Associated Data 214, and Connection Information Table 215. Based on this information, the lookup device and memory controller 212 controls the lookup device and the memory. Allows lookups The L3 / L4 Associated Data 214 is an external RAM in which MPLS Label Information Basement (LIB) is stored, and the Connection Information Table 215 is an external RAM in which a forwarding channel, a forwarding packet type, and the like of each packet are stored.

본 발명은 상기 도 2에서 룩업 장치, 상기 룩업 장치내의 내부 램, 및 외부 램을 제어하는 장치 및 방법에 관한 것으로서, 개략적인 포워딩 과정은 다음과 같다. 라우터가 파워 온(power on)된 후, 초기화 과정을 거쳐 정상으로 동작할 수 있는 상태가 되면, 룩업 장치 및 메모리 제어기는 도착한 IP 패킷으로부터 주소 정보를 축출해내고, 이것과 MUAC 어드레스 데이터베이스(룩업 테이블)를 비교한다. 이것을 통하여 MUAC는 외부 메모리에 저장된 포워딩 정보에 접근하는 데 사용되는 인덱스를 발생시킨다. 룩업 장치 및 메모리 제어기는 외부 램으로부터 상기 포워딩 정보를 읽고, 그 정보에 따라 상기 IP 패킷을 포워딩한다.The present invention relates to a look-up device, an internal ram in the look-up device, and an apparatus and method for controlling an external ram in FIG. 2, and a schematic forwarding process is as follows. After the router is powered on, after the initialization process, it can be operated normally, the lookup device and the memory controller extract the address information from the arrived IP packet, and the MUAC address database (lookup table). ). This allows MUAC to generate an index used to access forwarding information stored in external memory. The lookup device and the memory controller read the forwarding information from an external RAM and forward the IP packet according to the information.

도 3은 본 발명인 고속 IP 룩업 장치를 기반으로 한 포워딩 제어 장치의 전체 구성도이다.3 is an overall configuration diagram of a forwarding control device based on the present invention's fast IP lookup device.

고속으로 내부 룩업 메모리(37)에 저장된 룩업 테이블과 입력된 IP 패킷의 주소 정보를 비교하여, 외부 포워딩 메모리(38)에 저장된 포워딩 정보를 찾아주는 룩업 장치(36), 상기 내부 룩업 메모리(37), 및 상기 외부 포워딩 메모리(38)를 제어하고, 룩업 테이블을 구축하기 위한 각 제어부로 구성되어 있다.A lookup device 36 which searches for forwarding information stored in the external forwarding memory 38 by comparing the lookup table stored in the internal lookup memory 37 with the address information of the input IP packet at a high speed, and the internal lookup memory 37. And each control unit for controlling the external forwarding memory 38 and constructing a lookup table.

상기 룩업 장치(36), 상기 내부 룩업 메모리(37), 및 상기 외부 포워딩 메모리(38)를 제어하기 위해서는 제어 정보를 저장하는 기억 장소가 필요한데, 상기 룩업 장치를 제어하기 위한 자료, 상기 룩업 메모리를 제어하기 위한 자료, 및 상기 포워딩 메모리를 제어하기 위한 자료는 서로 다른 자료형으로 구성되어 있다. 상기와 같이 서로 다른 자료형으로 구성된 기억 장고들을 모아놓고 관리할 필요가 있는데, 이러한 역할을 하는 것이 구조체이다. 상기 구조체의 구성 정보가 저장되는 곳이 제어 자료 구조체 메모리(32)이다. 상위 응용 프로그램 모듈(31)은 상기 하위 각 제어부에서 제공되는 API(Application Programming Interface, 응용 프로그래밍인터페이스)를 사용하게 된다. 상기 API란 응용 프로그램이 컴퓨터 운영 체계나 데이터 베이스 관리 시스템 등 다른 프로그램의 기능을 이용하기 위한 인터페이스를 말하며, 응용 프로그램 작성자가 프로그램 중에 함수를 기술하기만 하면 함수 호출에 의해 다양한 기능을 이용할 수 있게 된다. 이 함수의 집합이 API이며, 종류가 다른 OS 사이에 API의 공통 형식이 규정되면 다른 기종의 컴퓨터 사이에 응용 프로그램의 이식성이 확보된다. 따라서, 상기 API를 사용하게 되면, 하드웨어의 상세한 제어부에 대한 추가적인 고려를 하지 않아도 되는 추상적이고 객관적인 인터페이스를 상기 하위 각 제어부를 통해서 제공하게 되며, 이를 통해서 상위 응용 프로그램 모듈은 기존의 모듈에 대한 추가적인 변경을 최소화시킬 수 있다. 상기 상위 응용 프로그램 모듈로부터 초기화 명령이 있는 경우, 상기 룩업 장치, 상기 룩업 메모리, 및 상기 제어 자료 구조체 메모리를 초기화하는 제어 명령을 하달하는 룩업 장치 및 메모리 초기화 제어부(33), 상위 응용 프로그램 모듈로부터 룩업 엔트리 추가 또는 삭제 명령이 있는 경우, 상기 추가 또는 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 지를 검색하고, 상기 검색 결과에 따라 상기 룩업 테이블에 상기 추가 또는 삭제 룩업 엔트리를 추가 또는 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 룩업 테이블 구축부(34), 상기 하달된 제어 명령을 받아 상기 룩업 장치, 룩업 메모리, 포워딩 메모리에 상기 하달된 제어 명령에 관련된 제어 값을 입력하는 룩업 장치 및 메모리 제어부로 구성된다. 상기 룩업 테이블 구축부는 다시 룩업 테이블 추가 제어부(341), 룩업 테이블 삭제 제어부(342), 룩업 테이블 검색 제어부(343)로 세분된다. 상위 응용 프로그램 모듈로부터 룩업 엔트리 추가 명령이 있는 경우, 상기 추가 룩업 엔트리의 검색을 요청하고, 상기 검색 결과 상기 룩업 테이블에 상기 추가 룩업 엔트리가 존재하지 않는 경우, 상기 룩업 테이블에 상기 추가 룩업 엔트리를 추가하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 룩업 테이블 추가 제어부(341), 상위 응용 프로그램 모듈의 명령이 룩업 엔트리 삭제인 경우, 상기 삭제 룩업 엔트리의 검색을 요청하고, 상기 검색 결과 상기 룩업 테이블에 상기 삭제 룩업 엔트리가 존재하는 경우, 상기 룩업 테이블에서 상기 삭제 룩업 엔트리를 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 룩업 테이블 삭제 제어부(342), 상기 룩업 테이블 추가 제어부 또는 상기 룩업 테이블 삭제 제어부로부터 상기 검색 요청이 있는 경우, 상기 추가 또는 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 지를 검색하는 제어 명령을 하달하는 룩업 테이블 검색 제어부(343)로 구성된다. 상기의 구성을 통해서 본 발명은 상기 상위 응용 프로그램 모듈(31)에서는 기존의 소프트웨어 기반의 룩업 모듈을 제어하듯이 이미 정의된 API를 통해서 하드웨어 기반의 고속 룩업 모듈을 용이하게 제어할 수 있다.In order to control the lookup device 36, the internal lookup memory 37, and the external forwarding memory 38, a storage place for storing control information is required. The data for controlling the lookup device may include: The data for controlling and the data for controlling the forwarding memory are composed of different data types. As mentioned above, it is necessary to collect and manage storages composed of different data types. The configuration data of the structure is stored in the control data structure memory 32. The upper application program module 31 uses an application programming interface (API) provided by each of the lower control units. The API is an interface for an application program to use a function of another program such as a computer operating system or a database management system, and the application programmer can use various functions by calling a function only if the application programmer describes the function in the program. . The set of functions is an API, and if a common format of the API is defined between different OSs, portability of an application program between different types of computers is ensured. Therefore, if the API is used, the lower level control unit provides an abstract and objective interface that does not require additional consideration of detailed control unit of the hardware, and the upper application module further changes the existing module. Can be minimized. If there is an initialization command from the upper application program module, a lookup device and a memory initialization control unit 33 for executing a control command for initializing the lookup device, the lookup memory, and the control data structure memory, and a lookup from an upper application program module. If there is an entry add or delete command, search whether the add or delete lookup entry already exists in the lookup table, add or delete the add or delete lookup entry to the lookup table according to the search result, and control the A lookup table constructing unit 34 for receiving a control command for updating a content of a data structure memory, and receiving the received control command and inputting control values related to the received control command to the lookup device, lookup memory, and forwarding memory; It is composed of a lookup device and a memory control unit. The lookup table building unit is further subdivided into a lookup table adding controller 341, a lookup table deleting controller 342, and a lookup table searching controller 343. If there is a command for adding a lookup entry from a higher application module, requesting a search for the additional lookup entry; and if the search result does not exist in the lookup table, adds the additional lookup entry to the lookup table. And a lookup table addition control unit 341 that issues a control command for updating the contents of the control data structure memory, and when a command of an upper application program module deletes a lookup entry, requests to retrieve the deleted lookup entry, and searches for the search. As a result, when the deletion lookup entry exists in the lookup table, the lookup table deletion control unit 342 deletes the deletion lookup entry from the lookup table and issues a control command to update the contents of the control data structure memory. Additional lookup table control unit or the lookup table In case of the search request from the deletion control section, it consists of a look-up table search controller 343 which issued the control command for searching whether there is the addition or deletion lookup entry already exists in the look-up table. Through the above configuration, the present invention can easily control the hardware-based fast lookup module through the API already defined in the upper application program module 31 to control the existing software-based lookup module.

상기 도 3에서 6가지의 상세 제어부들은 크게 3부분으로 분류가 이루어 질 수 있는데, 상기 룩업 장치 및 메모리 초기화 제어부(33), 상기 룩업 테이블 추가 제어부(341), 상기 룩업 테이블 삭제 제어부(342), 상기 룩업 테이블 검색 제어부(343)는 상위 소프트웨어 계층과 하위 하드웨어 계층 사이에 위치하여 상위 응용프로그램에 편리한 인터페이스를 제공하면서 해당 기능을 구현하는 역할을 담당하게 되며, 상기 룩업 장치 및 메모리 제어부(35)는 하위의 하드웨어 룩업 장치를 제어하는 각종 명령어들을 이용하여 하드웨어적인 제어 작업을 담당하게 된다. 또한 상기 제어 자료 구조체 메모리(32)는 이미 설명한 각종 제어부의 구현에 사용되는 여러 가지 자료 구조체를 제공하게 된다.In FIG. 3, the six detailed controllers may be classified into three parts. The lookup apparatus and the memory initialization controller 33, the lookup table addition controller 341, the lookup table deletion controller 342, The lookup table search controller 343 is located between an upper software layer and a lower hardware layer to provide a convenient interface to an upper application program and to implement a corresponding function. The lookup device and the memory controller 35 The various hardware control commands for controlling the lower hardware lookup device are used to control the hardware. In addition, the control data structure memory 32 provides various data structures used in the implementation of the various control units described above.

도 4는 상기 도 3의 룩업 장치 및 메모리 초기화 제어부(33)의 상세 구성도이다.4 is a detailed block diagram of the lookup device and the memory initialization controller 33 of FIG. 3.

상기 룩업 장치 및 메모리 초기화 제어부(33)는 룩업 장치 초기화 제어부(41), 룩업 장치 초기 모드 검사부(42), 룩업 테이블 초기화 제어부(43), 제어 자료 구조체 초기화 제어부(44)로 구성되어 있다. 상기 룩업 장치 초기화 제어부(41)는 상기 상위 응용 프로그램 모듈(31)로부터 초기화 명령이 있는 경우, 상기 룩업 장치의 구동 가능 상태인 초기 모드로 설정하는 제어 명령을 하달한다. 상기 룩업 장치 초기 모드 검사부(42)는 상기 초기 모드를 검사하여, 상기 룩업 장치가 비정상적이라고 판단된 경우 상기 상위 응용 프로그램 모듈(31)에 보고한다. 이것은 룩업 장치 MUAC 칩을 초기화 시킨 후 그 결과가 하드웨어적인 에러로 판단되면, 해당 기능 모듈은 에러값을 함수에서 리턴함으로서 이를 호출한 응용 프로그램이 에러 처리 기능(상위 메인 프로세서의 응용 모듈로 보고하거나, 에러문을 모니터상으로 출력하는 기능)을 수행하도록 해준다는 의미이다. 정상적으로 룩업 칩에 대한 초기화 작업이 완료되면, 상기 제어 자료 구조체 초기화 제어부(43)는 상기 제어 자료 구조체 메모리에 저장된 제어 자료 구조체의 제어 가능 값인 초기 값을 설정하는 제어 명령을 하달하고, 상기 룩업 테이블 초기화 제어부(44)는 상기 룩업 메모리에 저장된 룩업 테이블의 각 항목인 룩업 엔트리들의 룩업 가능 값인 초기 값을 설정하는 제어 명령을 하달한다. 이것을 통하여 상기 제어 자료 구조체 메모리의 경우상기 상위 응용 프로그램 모듈로부터 상기 룩업 장치, 상기 룩업 메모리, 및 상기 포워딩 메모리를 제어할 수 있는 데이터를 다운받게 되고, 상기 룩업 메모리의 경우 상기 상위 응용 프로그램 모듈로부터 룩업 테이블을 다운받게 되며, 룩업 테이블이 구축되면 룩업 가능한 상태가 된다. 이것으로 전체적인 디바이스 초기화 작업을 마치게된다.The lookup device and the memory initialization control section 33 are composed of a lookup device initialization control section 41, a lookup device initial mode checking section 42, a lookup table initialization control section 43, and a control data structure initialization control section 44. When there is an initialization command from the higher level application program module 31, the lookup device initialization controller 41 issues a control command for setting the initial mode, which is a driveable state of the lookup device. The lookup device initial mode checker 42 checks the initial mode and reports the lookup device to the higher application program module 31 when it is determined that the lookup device is abnormal. This means that after initializing the lookup device MUAC chip and the result is determined to be a hardware error, the function module returns an error value from the function so that the calling application can report the error handling function (to the application module of the upper main processor, or It means to print out the error message on the monitor. When the initialization operation for the lookup chip is normally completed, the control data structure initialization control unit 43 issues a control command for setting an initial value which is a controllable value of the control data structure stored in the control data structure memory, and initializes the lookup table. The controller 44 issues a control command for setting an initial value, which is a lookup possible value of lookup entries, which are each item of the lookup table stored in the lookup memory. In this case, the control data structure memory may download data for controlling the lookup device, the lookup memory, and the forwarding memory from the upper application program module. In the case of the lookup memory, a lookup is performed from the upper application program module. The table is downloaded, and when the lookup table is constructed, the table is ready for lookup. This completes the entire device initialization.

도 5는 상기 도 3의 상기 룩업 테이블 추가 제어부(34)에 대한 상세 구성도이다.FIG. 5 is a detailed block diagram illustrating the lookup table addition controller 34 of FIG. 3.

상기 룩업 테이블 추가 제어부(34)는 BE 서비스 엔트리 추가 제어부, MPLS-VPN 서비스 엔트리 추가 제어부, ELL 서비스 엔트리 추가 제어부, RT 서비스 엔트리 추가 제어부, MPLS 서비스 엔트리 추가 제어부, 공통 기능 부분 추가 제어부로 구성된다. BE 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 상기 BE 서비스 엔트리 추가 제어부(51)는 3 계층(Layer 3)의 IP 패킷의 목적지 주소만을 대상으로 룩업을 수행하는 Best Effort(최선형) 서비스 엔트리를 추가할 때 사용되는 기능으로 각 엔트리는 {목적지 주소, IP 마스크}정보와 {포워딩 채널, 포워딩 패킷 타입, TTL(Time To Live)}정보를 가지게 된다. MPLS-VPN 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 상기 MPLS-VPN 서비스 엔트리 추가 제어부(52)는 Virtual Private Network(가상 사설 망) 서비스에 사용되는 포워딩 엔트리를 추가할 때 사용되는 기능으로 각 엔트리는 {RD(RouteDistinguisher), 목적지 IP 주소, IP 마스크}정보와 {포워딩 채널, VPN 기능번호, 포워딩 패킷 타입, MPLS 레이블}정보를 가지게 된다. ELL 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 상기 ELL 서비스 엔트리 추가 제어부(53)는 목적지 IP 주소와 출발지 IP 주소를 함께 룩업하여 포워딩하는 기능으로서 다른 서비스 엔트리와는 다르게 2단계의 룩업을 거치게 되며, 이를 위해서 {목적지 주소, IP 마스크} 정보와 {출발지 주소, IP 마스크} 정보를 각각 별도의 자료 구조체에 저장한 후, 각각의 엔트리를 가리키는 2단계 인덱스 값을 이용하여 {목적지 인덱스 + 출발지 인덱스, IP Full 마스크}의 정보를 구성하게 되는 점이 특징이다. RT 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 상기 RT 서비스 엔트리 추가 제어부(54)는 Real Time(실시간) 서비스를 지원하기 위한 것으로서 목적지 주소 기반의 Real Time 서비스와 TCP/IP의 포트 주소 기반의 Real Time 서비스로 구성이 되며, 목적지 주소 기반의 경우에는 목적지 주소를 저장하는 공간이 L3 서비스의 경우와 독립되어 있는 것 외에는 동일하게 동작하게 된다. 그리고 TCP/IP의 포트 주소 기반의 Real Time 서비스는 송신 포트 주소와 수신 포트 주소를 한 쌍으로 하여 {송신 포트 + 수신 포트, IP Full 마스크}의 정보를 룩업 시에 이용하게 된다. MPLS 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 상기 MPLS 서비스 엔트리 추가 제어부(55)는 {MPLS Lable + Full 마스크} 정보를 사용하는 것 외에는 기존의 L3 서비스의 경우와 동일하게 동작하게 된다. 상기 각 서비스 엔트리의 공통 기능 부분을 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 공통 기능 부분 추가 제어부(56)는 상기의 각각의 서비스별 엔트리 추가부에서 공통으로 사용되는 기능을 담당하게 되는데, 주로 포워딩 엔트리를 해당 IP 마스크 그룹에 저장하는 명령어들을 구현하고 있다. 이것을 통해 공통으로 사용되는 부분을 일일이 추가하지 않아도 되므로 효율적으로 룩업 추가 제어부를 운용할 수 있다.The lookup table addition control section 34 includes a BE service entry addition control section, an MPLS-VPN service entry addition control section, an ELL service entry addition control section, an RT service entry addition control section, an MPLS service entry addition control section, and a common function part addition control section. The BE service entry adding control unit 51, which issues a control command for adding a BE service entry to the lookup table, performs a best effort service for performing lookup on only destination addresses of Layer 3 IP packets. It is a function used when adding an entry. Each entry has {destination address, IP mask} information, {forwarding channel, forwarding packet type, and time to live (TTL)} information. The MPLS-VPN service entry adding control unit 52, which issues control commands for adding an MPLS-VPN service entry to the lookup table, is a function used when adding a forwarding entry used for a virtual private network service. Each entry has {RouteDistinguisher (RD), destination IP address, IP mask} information and {forwarding channel, VPN function number, forwarding packet type, MPLS label} information. The ELL service entry adding control unit 53, which issues a control command for adding an ELL service entry to the lookup table, looks up and forwards a destination IP address and a source IP address together, and is different from the other service entries. For this, the {destination address, IP mask} information and {originating address, IP mask} information are stored in separate data structures, and then the {destination index + Source index, IP Full Mask} is characterized by the configuration. The RT service entry adding control unit 54, which issues a control command for adding an RT service entry to the lookup table, supports a real time service and a port address of a real time service based on a destination address and TCP / IP. It consists of Real Time based service, and in case of destination address base, it operates the same except that the space to store destination address is independent of L3 service. In addition, the real time service based on the port address of TCP / IP pairs the send port address and the receive port address, and uses the information of {send port + receive port, IP full mask} during lookup. The MPLS service entry adding control unit 55, which issues a control command for adding an MPLS service entry to the lookup table, operates in the same manner as in the case of the existing L3 service except for using {MPLS Lable + Full mask} information. . The common function part addition control unit 56 which gives a control command for adding the common function part of each service entry to the lookup table is responsible for a function commonly used in each of the service entry adding units. It implements commands that store forwarding entries in the corresponding IP mask group. This eliminates the need to add commonly used parts one by one, so that the lookup additional control unit can be efficiently operated.

도 6은 상기 도 3의 상기 룩업 테이블 삭제 제어부(35)에 대한 상세 구성도이다.FIG. 6 is a detailed block diagram illustrating the lookup table deletion controller 35 of FIG. 3.

각 서비스별 엔트리 삭제부(61, 62, 63, 64, 65) 및 공통 기능 부분 삭제 제어부(66)는 룩업 정보 및 처리 과정은 상기 도 5의 각 서비스별 엔트리 추가부(51, 52, 53, 54, 55) 및 공통 기능 부분 추가 제어부(56)와 동일하며 세부적인 절차에서 엔트리 삭제 기능을 수행함이 다르다.The entry deletion unit 61, 62, 63, 64, 65 for each service and the common function portion deletion control unit 66 may perform lookup information and the process of adding the entry addition unit 51, 52, 53, for each service of FIG. 5. 54 and 55 and the common function part addition control unit 56, and the entry deletion function is different in a detailed procedure.

도 7은 상기 도 3의 상기 룩업 테이블 검색 제어부(36)에 대한 상세 구성도이다.7 is a detailed block diagram illustrating the lookup table search control unit 36 of FIG. 3.

상기 룩업 테이블 검색 제어부는 룩업 테이블 마스크 그룹 검색 제어부(71), 룩업 테이블 엔트리 검색 제어부(72), 룩업 테이블 공간 검색 제어부(73), 룩업 테이블 공간 생성 제어부(74)로 구성된다. 상기 상위 응용 프로그램 모듈로부터 룩업 엔트리를 추가 또는 삭제하라는 명령이 있는 경우 상기 룩업 메모리에 저장된 룩업 테이블에서 상기 추가 또는 삭제할 룩업 엔트리가 속하는 마스크 그룹을 검색하는 제어 명령을 하달하는 상기 룩업 테이블 마스크 그룹 검색 제어부(71)는 IP 마스크별로 그룹을 나누어서 각 엔트리를 추가하거나 삭제하게 되는데, 이때 추가 또는 삭제될 엔트리가 속하는 마스크 그룹을 찾아주는 기능을 담당하게 된다. 상기 추가또는 삭제할 룩업 엔트리가 상기 마스크 그룹에 이미 존재하는지를 검색하는 제어 명령을 하달하는 상기 룩업 테이블 엔트리 검색 제어부(73)는 이미 존재하는 엔트리를 추가하거나 존재하지 않는 엔트리를 삭제하는 등의 경우를 방지하기 위해서, 추가 또는 삭제하려고 하는 엔트리의 존재 여부를 검색해주는 기능을 담당하게 된다. 상기 명령이 추가인 경우, 상기 검색 결과 추가하고자 하는 룩업 엔트리가 존재하지 않는 경우 상기 마스크 그룹에 빈 공간의 유무를 검색하는 제어 명령을 하달하는 상기 룩업 테이블 공간 검색 제어부(73)와 상기 빈 공간 유무의 검색 결과, 상기 마스크 그룹에 빈 공간이 없을 경우 상기 마스크 그룹으로부터 가장 가까운 그룹에서 빈 공간을 할당해오는 제어 명령을 하달하는 상기 룩업 테이블 공간 생성 제어부(74)는 엔트리 추가 작업시에 사용되며 현 마스크 그룹에 추가할 빈 공간이 남아있는지를 검색하는 기능과, 만약 빈 공간이 없을 경우 빈 공간을 가진 인접한 그룹을 검색하여 빈 공간을 만들어주는 기능을 각각 담당하게 된다. 이 기능을 통해서 각각의 마스크 그룹의 크기는 룩업 테이블 환경에 따라 가변적으로 변할 수 있도록 되어 보다 효율적인 테이블 제어를 구현할 수 있다.The lookup table search control unit includes a lookup table mask group search control unit 71, a lookup table entry search control unit 72, a lookup table space search control unit 73, and a lookup table space generation control unit 74. The lookup table mask group search control unit for obtaining a control command for searching for a mask group to which the lookup entry to be added or to be deleted belongs to a lookup table stored in the lookup memory when there is a command to add or delete a lookup entry from the upper application module; 71 adds or deletes entries by dividing the groups by IP masks, and is responsible for finding a mask group to which an entry to be added or deleted belongs. The lookup table entry retrieval control unit 73 which issues a control command for retrieving whether the lookup entry to be added or deleted already exists in the mask group prevents a case such as adding an existing entry or deleting an entry that does not exist. To do this, it is responsible for searching for the existence of an entry to be added or deleted. If the command is additional, if the lookup entry to which the search result is to be added does not exist, the lookup table space search control unit 73 and the empty space are provided to give a control command to search for the presence or absence of an empty space in the mask group. As a result of the search, if the mask group does not have empty space, the lookup table space generation control unit 74, which issues a control command for allocating empty space from the group closest to the mask group, is used at the time of adding an entry and the current mask It will be in charge of searching whether there is an empty space to add to the group, and if there is no empty space, searching for an adjacent group with empty space and creating an empty space. Through this function, the size of each mask group can be changed according to the lookup table environment, so that more efficient table control can be realized.

도 8은 상기 도 3의 상기 룩업 장치 및 메모리 제어부(37)에 대한 상세 구성도이다.FIG. 8 is a detailed block diagram illustrating the lookup device and the memory controller 37 of FIG. 3.

상기 룩업 장치 및 메모리 제어부(37)는 룩업 장치 및 메모리 초기화 구현 제어부(81), 룩업 장치 레지스터 제어부(82), 룩업 장치 메모리 제어부(83), 룩업 테이블 제어부(84)로 구성되어 있다. 상기 하달된 초기화 제어 명령에 따라 상기 룩업 장치, 상기 룩업 메모리, 및 상기 포워딩 메모리에 초기화와 관련된 제어 값을 입력하는 룩업 장치 및 메모리 초기화 구현 제어부(81)는 룩업 장치 및 메모리(본 실시예에서는 MUAC 칩과 내부 메모리 및 외부 메모리)에 직접 제어 데이터를 입력함으로서 초기화와 관련된 하드웨어 명령어를 구현하고 있다. 상기 하달된 추가, 삭제, 또는 검색 제어 명령에 따라 룩업 장치의 레지스터 값을 조정하는 룩업 장치 레지스터 제어부(82)는 룩업 장치에 대한 명령의 결과 값 및 룩업 장치의 상태 값 등의 내부 레지스터에 접근하는 명령어들을 구현하고 있다. 상기 하달된 추가, 삭제, 또는 검색 제어 명령에 따라 상기 룩업 메모리, 및 포워딩 메모리에 상기 추가, 삭제, 또는 검색에 적합한 메모리 상태와 관련된 제어 값을 입력하는 룩업 장치 메모리 제어부(83)는 룩업 장치내의 룩업 메모리와 이와 연동된 포워딩 정보(포워딩 채널, 포워딩 패킷 타입 등)를 저장하는 외부 메모리인 포워딩 메모리를 제어하는데 사용되는 명령어들을 구현하고 있다. 상기 하달된 추가, 삭제, 또는 검색 제어 명령에 따라 상기 룩업 메모리, 및 포워딩 메모리에 상기 추가, 삭제, 검색의 동작에 관련된 제어 값을 입력하는 룩업 테이블 제어부(84)는 상기 룩업 메모리내의 각 서비스별 마스크 그룹별 룩업 테이블 정보를 제어하는데 사용되는 명령어들을 구현하고 있다.The lookup device and the memory control unit 37 include a lookup device and a memory initialization implementation control unit 81, a lookup device register control unit 82, a lookup device memory control unit 83, and a lookup table control unit 84. The lookup device and the memory initialization implementation control unit 81 for inputting a control value related to initialization to the lookup device, the lookup memory, and the forwarding memory according to the received initialization control command may include a lookup device and a memory (MUAC in this embodiment). Hardware commands related to initialization are implemented by inputting control data directly into the chip, internal memory and external memory. The lookup device register controller 82 for adjusting a register value of the lookup device according to the received addition, deletion, or search control command accesses an internal register such as a result value of the command for the lookup device and a state value of the lookup device. Implement the commands. The lookup device memory controller 83 for inputting a control value related to the memory state suitable for the addition, deletion, or search to the lookup memory and the forwarding memory according to the received addition, deletion, or search control command is performed. It implements instructions used to control the forwarding memory, which is an external memory that stores the lookup memory and its forwarding information (forwarding channel, forwarding packet type, etc.). The lookup table control unit 84 for inputting control values related to the operation of adding, deleting, and searching to the lookup memory and the forwarding memory according to the received addition, deletion, or search control command is performed for each service in the lookup memory. Implements the commands used to control the lookup table information for each mask group.

도 9는 상기 도 3의 상기 제어 자료 구조체 메모리(32)에 저장된 서로 다른 자료형인 제어 자료들을 공동으로 관리하는 구조체에 대한 구조도이다.9 is a structural diagram of a structure for jointly managing control data which are different data types stored in the control data structure memory 32 of FIG.

일반적으로, 구조체는 서로 다른 자료형을 가진 기억 장소들을 모아 놓고 관리하기 위한 것으로, 상기 구조체를 사용하는 목적은 서로 다른 자료형을 가진 기억장소들을 집단으로 처리함으로서 데이터를 효율적으로 관리하기 위한 것이다. 본발명의 구조체로는 서비스 블록 구조체(91), 마스크 블록 구조체(92), 마스크 제어 블록 구조체(93), 룩업 엔트리 구조체(94)가 있다. 상기 룩업 장치가 제공하는 서비스 그룹의 자료들을 관리하는 상기 서비스 블록 구조체(91)는 각 서비스별 마스크 그룹을 관리하기 위한 자료 구조체이다. 상기 서비스 블록 구조체내의 마스크 그룹의 자료들을 관리하는 상기 마스크 블록 구조체(92)는 상기 각각의 서비스에 대한 개별적인 마스크 그룹을 관리하기 위한 자료구조체이다. 상기 마스크 그룹 구조체(92)는 다시 각각의 그룹에 마스크 제어 블록 구조체(93)로 구성되는데 상기 마스크 제어 블록 구조체(93)에서는 해당 그룹의 시작 주소와 빈공간 주소, 그리고 현 그룹의 크기를 저장하는 자료들로 구성된다. 상기 룩업 메모리, 상기 포워딩 메모리가 제공하는 룩업 정보, 포워딩 정보, 패킷 정보의 자료를 관리하는 상기 룩업 엔트리 구조체(94)는 상기 룩업 메모리에 저장되는 각 엔트리의 자료구조를 가지고 있다. 구체적으로 상기 각 엔트리의 자료구조는 룩업시 기준이 되는 FIB_Entity와 룩업 후 포워딩될 정보를 가지고 있는 LIB_Entity, 그리고 수신된 패킷에 대한 정보를 가지고 있는 CH_INFO_Entity로 구성되어 있다.In general, a structure is for collecting and managing storage locations having different data types. The purpose of using the structure is to efficiently manage data by collectively processing storage locations having different data types. Structures of the present invention include a service block structure 91, a mask block structure 92, a mask control block structure 93, and a lookup entry structure 94. The service block structure 91 managing data of a service group provided by the lookup apparatus is a data structure for managing a mask group for each service. The mask block structure 92, which manages the data of mask groups in the service block structure, is a data structure for managing individual mask groups for each service. The mask group structure 92 is composed of a mask control block structure 93 in each group. The mask control block structure 93 stores a start address, an empty space address of the corresponding group, and a size of the current group. Consists of materials. The lookup entry structure 94 which manages data of the lookup memory, lookup information provided by the forwarding memory, forwarding information, and packet information has a data structure of each entry stored in the lookup memory. Specifically, the data structure of each entry is composed of a FIB_Entity as a reference for a lookup, a LIB_Entity having information to be forwarded after the lookup, and a CH_INFO_Entity having information about a received packet.

도 10은 고속 IP 룩업 장치를 기반으로 한 고속 IP 포워딩 엔진를 제어하는 흐름도를 나타낸다.10 shows a flowchart of controlling a fast IP forwarding engine based on the fast IP lookup apparatus.

본 발명이 적용되는 라우터 등의 시스템에 전원이 인가되면, 고속 IP 룩업 장치인 MUAC 칩이 룩업할 수 있는 환경을 만들기 위해, 하위 각 제어부에서 제공하는 응용 프로그래밍 인터페이스를 통해서 초기화, 추가, 삭제 명령을 하달하는 상위 응용 프로그램 모듈로부터 초기화 명령이 있는 경우, 상기 룩업 장치, 및 상기룩업 메모리를 초기화하고, 상기 룩업 장치의 제어 자료, 상기 룩업 메모리의 제어 자료, 및 상기 포워딩 메모리의 제어 자료를 공동으로 관리하는 구조체가 저장되어 있는 제어 자료 구조체 메모리를 초기화하는 제어 명령을 하달한다(101). 초기화 상태가 완료되어 룩업 가능한 상태가 된 후, 상기 상위 응용 프로그램 모듈로부터 룩업 테이블 추가 제어부로 룩업 엔트리 추가 명령이 있는 경우(102), 룩업 테이블에 상기 추가하고자 하는 룩업 엔트리가 이미 존재하는지를 알아보기 위해 상기 룩업 테이블 추가 제어부는 상기 추가 룩업 엔트리의 검색을 요청한다(1011). 상기 검색 요청이 있는 경우, 상기 추가 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 룩업 엔트리인지를 검색하는 제어 명령을 하달한다(1012). 상기 검색 결과, 상기 룩업 테이블에 상기 추가 룩업 엔트리가 존재하지 않는 경우(1013), 상기 룩업 테이블에 상기 추가 룩업 엔트리를 추가하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달한다(1014). 마지막으로, 상기 하달된 제어 명령이 구현되도록 상기 룩업 장치 및 제어부가 상기 고속 IP 룩업 장치, 룩업 메모리, 포워딩 메모리를 제어한다(1015). 반면에 초기화 상태가 완료되어 룩업 가능한 상태가 된 후, 상기 상위 응용 프로그램 모듈로부터 룩업 테이블 삭제 제어부로 룩업 엔트리 삭제 명령이 있는 경우(103), 룩업 테이블에 상기 삭제하고자 하는 룩업 엔트리가 이미 존재하는지를 알아보기 위해 상기 룩업 테이블 삭제 제어부는 상기 삭제 룩업 엔트리의 검색을 요청한다(1021). 상기 검색 요청이 있는 경우, 상기 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 룩업 엔트리인지를 검색하는 제어 명령을 하달한다(1022). 상기 검색 결과, 상기 룩업 테이블에 상기 삭제 룩업엔트리가 존재하는 경우(1023), 상기 룩업 테이블에 상기 삭제 룩업 엔트리를 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달한다(1024). 마지막으로, 상기 하달된 제어 명령이 구현되도록 상기 룩업 장치 및 제어부가 상기 고속 IP 룩업 장치, 룩업 메모리, 포워딩 메모리를 제어한다(1025).When power is applied to a system such as a router to which the present invention is applied, an initialization, addition, and deletion command may be executed through an application programming interface provided by each control unit in order to create an environment where a MUAC chip, a high-speed IP lookup device, may look up. When there is an initialization command from a higher level application program module, the lookup device and the lookup memory are initialized, and control data of the lookup device, control data of the lookup memory, and control data of the forwarding memory are jointly managed. A control command for initializing the control data structure memory in which the structure is stored is issued (101). After the initialization state is completed and becomes a lookup ready state, when there is a lookup entry adding command from the higher level application module to the lookup table adding control unit (102), to find out whether the lookup entry to be added already exists in the lookup table. The lookup table addition controller requests a search for the additional lookup entry (1011). If there is the search request, a control command for searching whether the additional lookup entry is a lookup entry already existing in the lookup table is issued (1012). As a result of the search, when the additional lookup entry does not exist in the lookup table (1013), the additional lookup entry is added to the lookup table, and a control command for updating the contents of the control data structure memory is issued (1014). ). Finally, the lookup device and the controller control the fast IP lookup device, the lookup memory, and the forwarding memory to implement the received control command (1015). On the other hand, after the initialization state is completed and becomes a lookup ready state, when there is a lookup entry deletion command from the upper application module to the lookup table deletion control unit (103), it is determined whether the lookup entry to be deleted already exists in the lookup table. To see, the lookup table deletion controller requests a search of the deletion lookup entry (1021). When there is the search request, a control command for searching whether the delete lookup entry is a lookup entry already existing in the lookup table is issued (1022). As a result of the search, when the delete lookup entry exists in the lookup table (1023), the control unit deletes the delete lookup entry in the lookup table and issues a control command for updating the contents of the control data structure memory (1024). . Finally, the lookup device and the controller control the fast IP lookup device, the lookup memory, and the forwarding memory to implement the received control command (1025).

상기와 같은 단계들을 거쳐 상기 상위 응용 프로그램 모듈로부터의 초기화, 추가, 삭제 명령이 달성되고, 고속 IP 포워딩의 기반이 되는 룩업 테이블 및 포워딩 테이블이 구축되게 된다.Through the above steps, the initialization, addition, and deletion commands from the upper application program module are achieved, and a lookup table and a forwarding table that are the basis of high-speed IP forwarding are established.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.

또한 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다.In addition, the structure of the data used in the above-described embodiment of the present invention can be recorded on the computer-readable recording medium through various means.

상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 씨디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.The computer-readable recording medium may be a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.), an optical reading medium (for example, a CD-ROM, DVD, etc.) and a carrier wave (for example, the Internet). Storage medium).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

본 발명에 따르면 기존의 소프트웨어 기반의 IP 룩업 방식에 비해 고속의 IP 룩업 기능을 수행함으로서, 고속 IP 룩업 장치 기반의 라우터 장치 및 MPLS망의 LER(Label Edge Router)장치의 고속 포워딩 모듈에 사용되어, 기존의 인터넷망의 스위치 및 라우터의 룩업 및 포워딩 기능을 극대화할 수 있는 수단을 제공하게 된다. 이를 통해서 인터넷 백본망에서 룩업시의 성능 저하를 방지하고, 원할한 트래픽이 이루어지는 효과가 있다. 특히, 본 발명에서는 인터넷 표준 프로토콜인 TCP/IP의 기본 포워딩 정책인 목적지 IP 주소 룩업 기능 외에도 MPLS-VPN 서비스, RT 서비스 및 ELL 서비스 등의 부가적인 서비스 제공을 위한 룩업 테이블 구축 기능을 제공함으로써 고속 포워딩 기능 외에도 다양한 서비스를 지원할 수 있는 효과가 있다.According to the present invention, by performing a high-speed IP lookup function compared to the existing software-based IP lookup method, it is used in a high-speed IP lookup device-based router device and a high-speed forwarding module of the LER (Label Edge Router) device of the MPLS network, It will provide a means to maximize the lookup and forwarding functions of the existing Internet switches and routers. This prevents performance degradation during lookup in the Internet backbone network and has the effect of smoothing traffic. In particular, the present invention provides a fast forwarding by providing a lookup table for providing additional services such as MPLS-VPN service, RT service, and ELL service in addition to the destination IP address lookup function, which is a basic forwarding policy of TCP / IP, an Internet standard protocol. In addition to the function, there is an effect that can support a variety of services.

또한, 상위 응용 프로그램 모듈은 하위 각 제어부에서 제공되는 API를 사용함으로서, 기존의 모듈에 대한 추가적인 변경을 최소화시킬 수 있다. 따라서, 상기 상위 응용프로그램 모듈에서는 기존의 소프트웨어 기반의 룩업 모듈을 제어하듯이 이미 정의된 룩업 API를 통해서 하드웨어 기반의 고속 룩업 모듈을 용이하게 제어할 수 있는 효과가 있다.In addition, the upper application program module may minimize an additional change to the existing module by using an API provided by each lower control unit. Therefore, the upper application module has an effect of easily controlling a hardware-based fast lookup module through a predefined lookup API, as in the control of the existing software-based lookup module.

유효 테이블 엔트리 검색부와 유효 테이블 엔트리 생성부는 엔트리 추가 작업시에 사용되며 현 마스크 그룹에 추가할 빈 공간이 남아있는지를 검색하는 기능과, 만약 빈 공간이 없을 경우 빈 공간을 가진 인접한 그룹을 검색하여 빈 공간을 만들어주는 기능을 각각 담당하게 된다. 이 기능을 통해서 각각의 마스크 그룹의 크기는 룩업 테이블 환경에 따라 가변적으로 변할 수 있도록 되어 보다 효율적인 테이블 제어를 구현할 수 있는 효과가 있다.The valid table entry searching unit and the valid table entry generating unit are used for adding entries, and search for empty space to add to the current mask group, and if there is no empty space, search adjacent groups having empty space. Each will be responsible for creating a free space. Through this function, the size of each mask group can be changed in accordance with the lookup table environment, so that more efficient table control can be realized.

Claims (11)

고속으로 내부 룩업 메모리에 저장된 룩업 테이블과 입력된 IP 패킷의 주소 정보를 비교하여, 외부 포워딩 메모리에 저장된 포워딩 정보를 찾아주는 룩업 장치를 기반으로 한 고속 IP 포워딩 엔진 제어 장치에 있어서,A high speed IP forwarding engine control apparatus based on a lookup device that compares a lookup table stored in an internal lookup memory with address information of an input IP packet and finds forwarding information stored in an external forwarding memory. 상기 룩업 장치의 제어 자료, 상기 룩업 메모리의 제어 자료, 및 상기 포워딩 메모리의 제어 자료를 공동으로 관리하는 구조체가 저장되어 있는 제어 자료 구조체 메모리;A control data structure memory storing a structure for jointly managing control data of the lookup device, control data of the lookup memory, and control data of the forwarding memory; 상위 응용 프로그램 모듈로부터 초기화 명령이 있는 경우, 상기 룩업 장치, 상기 룩업 메모리, 및 상기 제어 자료 구조체 메모리를 초기화하여 룩업 가능 상태로 만드는 제어 명령을 하달하는 룩업 장치 및 메모리 초기화 제어부;A lookup device and a memory initialization control unit for executing a control command for initializing the lookup device, the lookup memory, and the control data structure memory when there is an initialization command from an upper application module; 상위 응용 프로그램 모듈로부터 룩업 엔트리 추가 또는 삭제 명령이 있는 경우, 상기 추가 또는 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 지를 검색하고, 상기 검색 결과에 따라 상기 룩업 테이블에 상기 추가 또는 삭제 룩업엔트리를 추가 또는 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 룩업 테이블 구축부; 및If there is a command to add or delete a lookup entry from a higher application module, search whether the add or delete lookup entry already exists in the lookup table, and add the add or delete lookup entry to the lookup table according to the search result. Or a lookup table constructing unit for deleting and giving a control command for updating the contents of the control data structure memory; And 상기 하달된 제어 명령을 받아 상기 룩업 장치, 룩업 메모리, 포워딩 메모리에 상기 하달된 제어 명령에 관련된 제어 값을 입력하는 룩업 장치 및 메모리 제어부를 포함하는 것을 특징으로 하는 장치.And a lookup device and a memory controller which receive the received control command and input control values related to the received control command to the lookup device, a lookup memory, and a forwarding memory. 제 1 항에 있어서, 상기 룩업 장치 및 메모리 초기화 제어부는The memory device of claim 1, wherein the lookup device and the memory initialization controller 상기 상위 응용 프로그램 모듈로부터 초기화 명령이 있는 경우, 상기 룩업 장치의 구동 가능 상태인 초기 모드로 설정하는 제어 명령을 하달하는 룩업 장치 초기화 제어부;A lookup device initialization controller configured to issue a control command to set an initial mode which is a driveable state of the lookup device when an initialization command is received from the higher level application program module; 상기 초기 모드를 검사하여, 상기 룩업 장치가 비정상적이라고 판단된 경우 상기 상위 응용 프로그램 모듈에 보고하는 룩업 장치 초기 모드 검사부;A lookup device initial mode checker which checks the initial mode and reports the lookup device to the higher application program module when it is determined that the lookup device is abnormal; 상기 룩업 장치가 정상적이라고 판단된 경우, 상기 제어 자료 구조체 메모리에 저장된 제어 자료 구조체의 제어 가능 값인 초기 값을 설정하는 제어 명령을 하달하는 제어 자료 구조체 초기화 제어부; 및A control data structure initialization control unit for issuing a control command for setting an initial value which is a controllable value of a control data structure stored in the control data structure memory when it is determined that the lookup apparatus is normal; And 상기 룩업 장치가 정상적이라고 판단된 경우, 상기 룩업 메모리에 저장된 룩업 테이블의 각 항목인 룩업 엔트리들의 룩업 가능 값인 초기 값을 설정하는 제어 명령을 하달하는 룩업 테이블 초기화 제어부를 포함하는 것을 특징으로 하는 장치.And a lookup table initialization controller configured to issue a control command to set an initial value that is a lookup value of lookup entries that are each item of a lookup table stored in the lookup memory when the lookup apparatus is determined to be normal. 제 1 항에 있어서, 상기 룩업 테이블 구축부는The apparatus of claim 1, wherein the lookup table building unit 상위 응용 프로그램 모듈로부터 룩업 엔트리 추가 명령이 있는 경우, 상기 추가 룩업 엔트리의 검색을 요청하고, 상기 검색 결과 상기 룩업 테이블에 상기 추가 룩업 엔트리가 존재하지 않는 경우, 상기 룩업 테이블에 상기 추가 룩업 엔트리를 추가하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 룩업 테이블 추가 제어부;If there is a command for adding a lookup entry from a higher application module, requesting a search for the additional lookup entry; and if the search result does not exist in the lookup table, adds the additional lookup entry to the lookup table. And a lookup table addition control unit for executing a control command for updating contents of the control data structure memory; 상위 응용 프로그램 모듈의 명령이 룩업 엔트리 삭제인 경우, 상기 삭제 룩업 엔트리의 검색을 요청하고, 상기 검색 결과 상기 룩업 테이블에 상기 삭제 룩업 엔트리가 존재하는 경우, 상기 룩업 테이블에서 상기 삭제 룩업 엔트리를 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 룩업 테이블 삭제 제어부; 및If the command of the upper application module is to delete the lookup entry, request to search for the deleted lookup entry, and if the deleted lookup entry exists in the lookup table as a result of the search, delete the deleted lookup entry from the lookup table. A lookup table deletion control unit for executing a control command to update contents of the control data structure memory; And 상기 룩업 테이블 추가 제어부 또는 상기 룩업 테이블 삭제 제어부로부터 상기 검색 요청이 있는 경우, 상기 추가 또는 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 지를 검색하는 제어 명령을 하달하는 룩업 테이블 검색 제어부를 포함하는 것을 특징으로 하는 장치.And a lookup table search controller configured to issue a control command for searching whether the add or delete lookup entry already exists in the lookup table when the search request is received from the lookup table addition control unit or the lookup table deletion control unit. Device. 제 3 항에 있어서, 상기 룩업 테이블 추가 제어부는The apparatus of claim 3, wherein the lookup table addition control unit is 제 3 계층의 IP 주소만을 룩업하는 서비스를 제공하는 BE 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 BE 서비스 엔트리 추가 제어부;A BE service entry addition control unit that issues a control command for adding a BE service entry for providing a service for looking up only an IP address of a third layer to the lookup table; 개인 사설 망 서비스를 제공하는 MPLS-VPN 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 MPLS-VPN 서비스 엔트리 추가 제어부;An MPLS-VPN service entry addition control unit that issues a control command for adding an MPLS-VPN service entry for providing a private private network service to the lookup table; 출발지 IP 주소와 목적지 IP 주소를 함께 룩업하는 서비스를 제공하는 ELL 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 ELL 서비스 엔트리 추가 제어부;An ELL service entry addition control unit that issues a control command for adding an ELL service entry for providing a service of looking up a source IP address and a destination IP address together to the lookup table; 실시간 서비스를 제공하는 RT 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 RT 서비스 엔트리 추가 제어부;An RT service entry addition control unit that issues a control command for adding an RT service entry providing a real time service to the lookup table; MPLS 서비스를 제공하는 MPLS 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 MPLS 서비스 엔트리 추가 제어부; 및An MPLS service entry addition control unit that issues a control command to add an MPLS service entry providing an MPLS service to the lookup table; And 상기 각 엔트리의 공통 기능 부분을 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 공통 기능 부분 추가 제어부를 포함하는 것을 특징으로 하는 장치.And a common function part addition control unit for giving a control command to add a common function part of each entry to the lookup table. 제 3 항에 있어서, 상기 룩업 테이블 삭제 제어부는The method of claim 3, wherein the lookup table deletion control unit 제 3 계층의 IP 주소만을 룩업하는 서비스를 제공하는 BE 서비스 엔트리를 상기 룩업 테이블에서 삭제하는 제어 명령을 하달하는 BE 서비스 엔트리 삭제 제어부;A BE service entry deletion control unit that issues a control command to delete a BE service entry providing a service for looking up only an IP address of a third layer in the lookup table; 개인 사설 망 서비스를 제공하는 MPLS-VPN 서비스 엔트리를 상기 룩업 테이블에서 삭제하는 제어 명령을 하달하는 MPLS-VPN 서비스 엔트리 삭제 제어부;An MPLS-VPN service entry deletion control unit that issues a control command for deleting an MPLS-VPN service entry providing a private private network service from the lookup table; 출발지 IP 주소와 목적지 IP 주소를 함께 룩업하는 서비스를 제공하는 ELL 서비스 엔트리를 상기 룩업 테이블에서 삭제하는 제어 명령을 하달하는 ELL 서비스 엔트리 삭제 제어부;An ELL service entry deletion control unit for issuing a control command for deleting an ELL service entry providing a service for looking up a source IP address and a destination IP address together from the lookup table; 실시간 서비스를 제공하는 RT 서비스 엔트리를 상기 룩업 테이블에서 삭제하는 제어 명령을 하달하는 RT 서비스 엔트리 삭제 제어부;An RT service entry deletion control unit configured to issue a control command for deleting an RT service entry providing a real time service from the lookup table; MPLS 서비스를 제공하는 MPLS 서비스 엔트리를 상기 룩업 테이블에서 삭제하는 제어 명령을 하달하는 MPLS 서비스 엔트리 삭제 제어부; 및An MPLS service entry deletion control unit that issues a control command to delete an MPLS service entry providing an MPLS service from the lookup table; And 상기 각 서비스 엔트리의 공통 기능 부분을 상기 룩업 테이블에서 삭제하는 제어 명령을 하달하는 공통 기능 부분 삭제 제어부를 포함하는 것을 특징으로 하는 장치.And a common function part deletion control unit for executing a control command for deleting the common function part of each service entry from the lookup table. 제 3 항에 있어서, 상기 룩업 테이블 검색 제어부는4. The apparatus of claim 3, wherein the lookup table search controller 상기 상위 응용 프로그램 모듈로부터 룩업 엔트리를 추가 또는 삭제하라는 명령이 있는 경우 상기 룩업 메모리에 저장된 룩업 테이블에서 상기 추가 또는 삭제할 룩업 엔트리가 속하는 마스크 그룹을 검색하는 제어 명령을 하달하는 룩업 테이블 마스크 그룹 검색 제어부;A lookup table mask group search control unit for obtaining a control command for searching for a mask group to which the lookup entry to be added or deleted from the lookup table stored in the lookup memory when there is a command to add or delete a lookup entry from the upper application module; 상기 추가 또는 삭제할 룩업 엔트리가 상기 마스크 그룹에 이미 존재하는지를 검색하는 제어 명령을 하달하는 룩업 테이블 엔트리 검색 제어부;A lookup table entry retrieval control section for executing a control command for retrieving whether a lookup entry for the addition or deletion already exists in the mask group; 상기 명령이 추가인 경우, 상기 검색 결과 추가하고자 하는 룩업 엔트리가 존재하지 않는 경우 상기 마스크 그룹에 빈 공간의 유무를 검색하는 제어 명령을 하달하는 룩업 테이블 공간 검색 제어부; 및A lookup table space retrieval control unit that issues a control command for searching for the presence or absence of an empty space in the mask group when the lookup entry to which the search result is to be added does not exist when the command is added; And 상기 빈 공간 유무의 검색 결과, 상기 마스크 그룹에 빈 공간이 없을 경우 상기 마스크 그룹으로부터 가장 가까운 그룹에서 빈 공간을 할당해오는 제어 명령을 하달하는 룩업 테이블 공간 생성 제어부를 포함하는 것을 특징으로 하는 장치.And a lookup table space generation control unit configured to issue a control command for allocating an empty space in a group closest to the mask group when there is no empty space in the mask group as a result of the search for the empty space. 제 1 항에 있어서, 상기 룩업 장치 및 메모리 제어부는The memory device of claim 1, wherein the lookup device and the memory controller are 상기 하달된 초기화 제어 명령에 따라 상기 룩업 장치, 상기 룩업 메모리, 및 상기 포워딩 메모리에 초기화와 관련된 제어 값을 입력하는 룩업 장치 및 메모리 초기화 구현 제어부;A lookup device and a memory initialization implementation controller for inputting control values related to initialization to the lookup device, the lookup memory, and the forwarding memory according to the received initialization control command; 상기 하달된 추가, 삭제, 또는 검색 제어 명령에 따라 룩업 장치의 레지스터 값을 조정하는 룩업 장치 레지스터 제어부;A lookup device register control unit for adjusting a register value of the lookup device according to the received addition, deletion, or search control command; 상기 하달된 추가, 삭제, 또는 검색 제어 명령에 따라 상기 룩업 메모리, 및 포워딩 메모리에 상기 추가, 삭제, 또는 검색에 적합한 메모리 상태와 관련된 제어 값을 입력하는 룩업 장치 메모리 제어부; 및A lookup device memory controller configured to input a control value related to a memory state suitable for the add, delete, or search to the lookup memory and the forwarding memory according to the received add, delete, or search control command; And 상기 하달된 추가, 삭제, 또는 검색 제어 명령에 따라 상기 룩업 메모리, 및 포워딩 메모리에 상기 추가, 삭제, 검색의 동작에 관련된 제어 값을 입력하는 룩업 테이블 제어부를 포함하는 것을 특징으로 하는 장치.And a lookup table control unit for inputting control values related to the operation of the addition, deletion, and search to the lookup memory and the forwarding memory according to the received addition, deletion, or search control command. 고속으로 내부 룩업 메모리에 저장된 룩업 테이블과 입력된 IP 패킷의 주소 정보를 비교하여, 외부 포워딩 메모리에 저장된 포워딩 정보를 찾아주는 룩업 장치의 제어 자료, 상기 룩업 메모리의 제어 자료, 및 상기 포워딩 메모리의 제어 자료를 공동으로 관리하는 자료 구조체에 있어서,Control data of the lookup device which finds the forwarding information stored in the external forwarding memory by comparing the lookup table stored in the internal lookup memory with the address information of the input IP packet, the control data of the lookup memory, and the control of the forwarding memory In a data structure that manages data jointly, 상기 룩업 장치가 제공하는 서비스 그룹의 자료들을 관리하는 서비스 블록구조체;A service block structure managing data of a service group provided by the lookup device; 상기 서비스 블록 구조체내의 마스크 그룹의 자료들을 관리하는 마스크 블록 구조체;A mask block structure managing data of mask groups in the service block structure; 상기 마스크 블록 구조체내의 시작 주소 자료와 빈 공간 주소 자료와 그룹 크기 자료를 관리하는 마스크 제어 블록 구조체; 및A mask control block structure managing start address data, free space address data and group size data in the mask block structure; And 상기 룩업 메모리, 상기 포워딩 메모리가 제공하는 룩업 정보, 포워딩 정보, 패킷 정보의 자료를 관리하는 룩업 엔트리 구조체를 포함하는 것을 특징으로 하는 자료 구조체.And a lookup entry structure for managing data of the lookup memory, lookup information provided by the forwarding memory, forwarding information, and packet information. 고속으로 내부 룩업 메모리에 저장된 룩업 테이블 정보들과 입력된 IP 패킷의 주소 정보를 비교하여, 외부 포워딩 메모리에 저장된 포워딩 정보를 찾아주는 룩업 장치를 기반으로 한 고속 IP 포워딩 엔진 제어 방법에 있어서,A fast IP forwarding engine control method based on a lookup device which searches for forwarding information stored in an external forwarding memory by comparing lookup table information stored in an internal lookup memory with address information of an input IP packet. (a) 하위 각 제어부에서 제공하는 응용 프로그래밍 인터페이스를 통해서 초기화, 추가, 삭제 명령을 하달하는 상위 응용 프로그램 모듈로부터 초기화 명령이 있는 경우, 상기 룩업 장치, 및 상기 룩업 메모리를 초기화하고, 상기 룩업 장치의 제어 자료, 상기 룩업 메모리의 제어 자료, 및 상기 포워딩 메모리의 제어 자료를 공동으로 관리하는 구조체가 저장되어 있는 제어 자료 구조체 메모리를 초기화하는 제어 명령을 하달하는 단계;(a) when there is an initialization command from an upper application program module which issues an initialization, addition, and deletion command through an application programming interface provided by each lower control unit, initializes the lookup device and the lookup memory, and initializes the lookup device. Issuing a control command to initialize a control data structure memory in which control data, a control data of the lookup memory, and a structure for jointly managing the control data of the forwarding memory are stored; (b) 상기 상위 응용 프로그램 모듈로부터 룩업 엔트리 추가 명령이 있는 경우, 상기 추가 룩업 엔트리의 검색을 요청하는 단계;(b) requesting to retrieve the additional lookup entry if there is a command for adding a lookup entry from the upper application module; (c) 상기 검색 요청이 있는 경우, 상기 추가 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 룩업 엔트리인지를 검색하는 제어 명령을 하달하는 단계;(c) if there is a search request, issuing a control command to search whether the additional lookup entry is a lookup entry that already exists in the lookup table; (d) 상기 검색 결과, 상기 룩업 테이블에 상기 추가 룩업 엔트리가 존재하지 않는 경우, 상기 룩업 테이블에 상기 추가 룩업 엔트리를 추가하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 단계; 및(d) if the additional lookup entry does not exist in the lookup table, adding the additional lookup entry to the lookup table and issuing a control command to update the contents of the control data structure memory; And (e) 상기 하달된 제어 명령이 구현되도록 상기 룩업 장치, 룩업 메모리, 포워딩 메모리에 제어 값을 입력하는 단계를 포함하는 것을 특징으로 하는 방법.(e) inputting a control value into the lookup device, lookup memory, and forwarding memory such that the issued control command is implemented. 제 9 항에 있어서,The method of claim 9, 상기 (b) 단계는 상기 상위 응용 프로그램 모듈로부터 룩업 엔트리 삭제 명령이 있는 경우, 상기 삭제 룩업 엔트리의 검색을 요청하는 단계;Step (b) may include requesting to retrieve the deleted lookup entry when there is a delete command for deleting a lookup entry from the upper application module; 상기 (c) 단계는 상기 검색 요청이 있는 경우, 상기 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 룩업 엔트리인지를 검색하는 제어 명령을 하달하는 단계; 및The step (c) may include, when the search request is made, issuing a control command for searching whether the delete lookup entry is a lookup entry already existing in the lookup table; And 상기 (d) 단계는 상기 검색 결과, 상기 룩업 테이블에 상기 삭제 룩업 엔트리가 존재하는 경우, 상기 룩업 테이블에서 상기 삭제 룩업 엔트리를 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 단계를 포함하는 것을 특징으로 하는 방법.In step (d), when the deletion lookup entry exists in the lookup table, the step (d) deletes the deletion lookup entry from the lookup table and issues a control command for updating the contents of the control data structure memory. And comprising a step. 제 9 항 또는 제 10 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method of claim 9 or 10 on a computer.
KR10-2002-0027862A 2002-05-20 2002-05-20 Apparatus and method for controlling high speed IP forwarding engine based upon high speed IP lookup chip KR100429909B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0027862A KR100429909B1 (en) 2002-05-20 2002-05-20 Apparatus and method for controlling high speed IP forwarding engine based upon high speed IP lookup chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0027862A KR100429909B1 (en) 2002-05-20 2002-05-20 Apparatus and method for controlling high speed IP forwarding engine based upon high speed IP lookup chip

Publications (2)

Publication Number Publication Date
KR20030089935A true KR20030089935A (en) 2003-11-28
KR100429909B1 KR100429909B1 (en) 2004-05-03

Family

ID=32383574

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0027862A KR100429909B1 (en) 2002-05-20 2002-05-20 Apparatus and method for controlling high speed IP forwarding engine based upon high speed IP lookup chip

Country Status (1)

Country Link
KR (1) KR100429909B1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100798926B1 (en) * 2006-12-04 2008-01-29 한국전자통신연구원 Apparatus and method for forwarding packet in packet switch system
KR100856095B1 (en) * 2006-12-13 2008-09-03 에스케이텔레시스 주식회사 Packet processing device of radio access station in wireless broadband internet system and packet processing method thereof
US8308008B2 (en) 2006-12-27 2012-11-13 Abbott Laboratories Container
US8469223B2 (en) 2009-06-05 2013-06-25 Abbott Laboratories Strength container
US8511499B2 (en) 2007-12-18 2013-08-20 Abbott Laboratories Container
USD733320S1 (en) 2013-04-26 2015-06-30 Abbott Laboratories Container
US9387963B2 (en) 2012-04-27 2016-07-12 Abbott Laboratories Container

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8451838B2 (en) 2006-12-04 2013-05-28 Electronics And Telecommunications Research Institute Apparatus and method for forwarding packet in packet switch system
KR100798926B1 (en) * 2006-12-04 2008-01-29 한국전자통신연구원 Apparatus and method for forwarding packet in packet switch system
KR100856095B1 (en) * 2006-12-13 2008-09-03 에스케이텔레시스 주식회사 Packet processing device of radio access station in wireless broadband internet system and packet processing method thereof
US8857645B2 (en) 2006-12-27 2014-10-14 Abbott Laboratories Container
US8308008B2 (en) 2006-12-27 2012-11-13 Abbott Laboratories Container
US9505522B2 (en) 2006-12-27 2016-11-29 Abbott Laboratories Container
US10583969B2 (en) 2006-12-27 2020-03-10 Abbott Laboratories Container
US11554893B2 (en) 2006-12-27 2023-01-17 Abbott Laboratories Container
US8511499B2 (en) 2007-12-18 2013-08-20 Abbott Laboratories Container
US8469223B2 (en) 2009-06-05 2013-06-25 Abbott Laboratories Strength container
US9387963B2 (en) 2012-04-27 2016-07-12 Abbott Laboratories Container
US10005596B2 (en) 2012-04-27 2018-06-26 Abbott Laboratories Container
USD733320S1 (en) 2013-04-26 2015-06-30 Abbott Laboratories Container
USD782696S1 (en) 2013-04-26 2017-03-28 Abbott Laboratories Container

Also Published As

Publication number Publication date
KR100429909B1 (en) 2004-05-03

Similar Documents

Publication Publication Date Title
US11088944B2 (en) Serverless packet processing service with isolated virtual network integration
US7617318B2 (en) Storage system and a storage management system
US6895429B2 (en) Technique for enabling multiple virtual filers on a single filer to participate in multiple address spaces with overlapping network addresses
US9830182B2 (en) Translating media access control (MAC) addresses in a network hierarchy
US7350028B2 (en) Use of a translation cacheable flag for physical address translation and memory protection in a host
US8412809B2 (en) Method, apparatus and computer program product implementing multi-tenancy for network monitoring tools using virtualization technology
US20070171911A1 (en) Routing system and method for managing rule entry thereof
EP1836808B1 (en) Fibre channel forwarding information base
US8059658B1 (en) Method and system for automatic expansion and contraction of IP host forwarding database
KR20120078535A (en) Sas expander connection routing techniques
US11757766B2 (en) Reflection route for link local packet processing
JP6669936B2 (en) Packet forwarding
US20210314299A1 (en) Methods for revalidating fqdn rulesets in a firewall
EP3967001B1 (en) Distributed load balancer health management using data center network manager
TWI241089B (en) Method and apparatus to perform network routing using multiple length trie blocks
KR100396461B1 (en) Method and system for downloading software managed trees in a network processing system
KR100429909B1 (en) Apparatus and method for controlling high speed IP forwarding engine based upon high speed IP lookup chip
EP3958523B1 (en) Information processing apparatus and packet control method
Geissler et al. Tablevisor 2.0: Towards full-featured, scalable and hardware-independent multi table processing
US11296981B2 (en) Serverless packet processing service with configurable exception paths
US6675223B1 (en) Method and apparatus for processing frames using static and dynamic classifiers
US10848418B1 (en) Packet processing service extensions at remote premises
CN113783970B (en) Dynamic mapping method, device and equipment of fiber channel identifier and storage medium thereof
CN114024885B (en) IP routing table management system and method based on subnet mask division
JP2018056739A (en) Switch, and communication method

Legal Events

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

Payment date: 20120330

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130325

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee