KR100429909B1 - 고속 ip룩업 장치를 기반으로 한 고속 ip포워딩 엔진제어 장치 및 방법 - Google Patents

고속 ip룩업 장치를 기반으로 한 고속 ip포워딩 엔진제어 장치 및 방법 Download PDF

Info

Publication number
KR100429909B1
KR100429909B1 KR10-2002-0027862A KR20020027862A KR100429909B1 KR 100429909 B1 KR100429909 B1 KR 100429909B1 KR 20020027862 A KR20020027862 A KR 20020027862A KR 100429909 B1 KR100429909 B1 KR 100429909B1
Authority
KR
South Korea
Prior art keywords
lookup
entry
memory
lookup table
control
Prior art date
Application number
KR10-2002-0027862A
Other languages
English (en)
Other versions
KR20030089935A (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 KR10-2002-0027862A priority Critical patent/KR100429909B1/ko
Publication of KR20030089935A publication Critical patent/KR20030089935A/ko
Application granted granted Critical
Publication of KR100429909B1 publication Critical patent/KR100429909B1/ko

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

Landscapes

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

Abstract

본 발명은 고속 하드웨어 룩업 장치를 기반으로 IP 패킷의 목적지 주소를 룩업하여 해당 주소로 포워딩하는 고속 IP 포워딩 엔진을 제어하기 위한 디바이스 드라이버에 관한 것이다. 본 발명은 하드웨어 IP 룩업 장치와 메모리들에 대한 초기화 기능을 수행하는 룩업 장치 및 메모리 초기화 제어부, 룩업 테이블 엔트리를 추가하는 룩업 테이블 추가 제어부, 룩업 테이블 엔트리를 삭제하는 룩업 테이블 삭제 제어부, 룩업 테이블 추가 또는 삭제시에 기존의 룩업 테이블에 상기 추가 또는 삭제하고자 하는 룩업 엔트리가 이미 존재하는지를 검색하는 룩업 테이블 검색 제어부, 룩업 장치의 내부 레지스터 접근 및 룩업 장치 명령어를 직접적으로 구동하고, 메모리들에 대한 명령어를 직접적으로 구동하는 룩업 장치 및 메모리 제어부, 그리고 룩업 디바이스 드라이버의 각 제어부의 구현 및 구동에 사용되는 여러 가지 데이터 자료 구조체를 정의한 제어 자료 구조체가 저장되어 있는 제어 자료 구조체 메모리를 포함하는 것을 특징으로 한다.
본 발명에 따르면 기존의 소프트웨어 기반의 IP 룩업 방식에 비해 고속의 IP 룩업 기능을 수행함으로서, 기존 인터넷망의 스위치 및 라우터의 룩업 및 포워딩 기능을 극대화할 수 있는 수단을 제공하게 된다. 이를 통해서 인터넷 백본망에서 룩업시의 성능 저하를 방지하고, 원할한 트래픽이 이루어지는 효과가 있다.

Description

고속 IP룩업 장치를 기반으로 한 고속 IP포워딩 엔진 제어 장치 및 방법 {Apparatus and method for controlling high speed IP forwarding engine based upon high speed IP lookup chip}
본 발명은 IP 패킷의 목적지 주소를 룩업하여 해당 주소로 포워딩하는 고속 IP 포워딩 엔진을 제어하기 위한 디바이스 드라이버에 관한 것으로서 기존의 인터넷 라우터 장치에서 사용되는 소프트웨어 기반의 룩업 기능 대신에 고속 하드웨어 룩업 칩에 기반한 하드웨어 룩업 장치를 제어하고 또한 룩업 테이블을 추가, 삭제, 검색하는 등의 기능을 수행하여 고성능 IP 포워딩 장치의 룩업 모듈로서의 수단을 제공하는데 그 목적을 두고 있다.
xDSL, 케이블 모뎀 및 고속 이더넷 등의 초고속 인터넷망의 발전과 더불어 인터넷 트래픽의 급속한 증가는 인터넷 연결을 구성하는 각종 스위치 및 라우터의 병목현상을 초래하고 있다. 이러한 문제점을 해결하기 위한 일환으로 백본 전송망의 고속화에는 진전을 이루고 있으나, 인터넷 망의 복잡도에 따라서 라우팅 테이블에 따른 포워딩 기능이 트래픽 속도를 따라가지 못하는 문제점을 노출하고 하고 있으며, 이에 따라 이러한 라우팅 테이블 룩업 및 룩업 결과에 따른 포워딩 기술에 대한 연구가 활발히 이루어지고 있다.
이러한 고속 IP 룩업에 대한 기술은 크게 두 가지 방향으로 연구가 진행중인데, 하나는 기존의 룩업 알고리즘을 개선하여 소프트웨어적으로 성능을 배가시키는 것과, 별도의 룩업 칩을 이용하여 하드웨어적으로 성능을 극대화시키는 방법이 있다. 하드웨어적인 룩업 칩을 이용한 해결방안은 그 성능에는 만족스러운 결과를 구할 수 있으나, 룩업 테이블의 제한 및 가격 등의 문제점이 있었으나, 이 분야의 지속적인 기술개발로 이러한 단점이 극복되고 있으며, 따라서 하드웨어 룩업 칩 기반의 고속 룩업 장치에 대한 연구가 최근 활발히 이루어지고 있다.
상기 하드웨어 룩업 장치를 이용함으로써 인터넷 트래픽의 흐름을 방해하지 않으면서 수많은 라우팅 테이블의 엔트리를 룩업 및 포워딩하는 고속 IP 포워딩 장치를 개발함으로써 인터넷 망의 중추적인 역할을 담당하는 스위치 및 라우터 장치의 고속화를 이룰 수 있다.
본 발명이 이루고자 하는 기술적 과제는 고속 IP 룩업 장치를 구동하고, 상기 구동을 위한 준비로서 룩업 테이블을 구축하는 하드웨어 룩업 장치 드라이버를 구현함으로써 기존의 소프트웨어 기반의 스위치 및 라우터 장비의 룩업 모듈을 대체하여 룩업으로 인한 성능 저하를 극복하고, 하드웨어 기반의 고속 IP 포워딩 엔진의 핵심 요소인 고속 IP 포워딩 엔진 제어 장치 및 방법을 제공하는데 있다.
도 1은 고속 IP 룩업 장치의 일종인 MUAC 칩의 블록 다이어그램도이다.
도 2는 본 발명이 탑재될 포워딩 엔진의 구성도이다.
도 3은 고속 IP 룩업 장치를 기반으로 한 포워딩 제어 장치의 전체 구성도이다.
도 4는 룩업 장치 및 메모리 초기화 제어부의 상세 구성도이다.
도 5는 룩업 테이블 추가 제어부에 대한 상세 구성도이다.
도 6은 룩업 테이블 삭제 제어부에 대한 상세 구성도이다.
도 7은 룩업 테이블 검색 제어부에 대한 상세 구성도이다.
도 8은 룩업 장치 및 메모리 제어부에 대한 상세 구성도이다.
도 9는 제어 자료 구조체 메모리에 저장된 구조체에 대한 구조도이다.
도 10은 고속 IP 룩업 장치를 기반으로 한 고속 IP 포워딩 엔진를 제어하는 흐름도를 나타낸다.
상기 기술적 과제를 해결하기 위한 본 발명은 장치 발명, 자료 구조체 발명, 방법 발명으로 구성되어 있다.
본 장치 발명은 하드웨어 IP 룩업 장치에 대한 초기화 기능과 룩업 테이블과 포워딩 테이블이 적재되는 메모리들에 대한 초기화 기능을 수행하는 룩업 장치 및 메모리 초기화 제어부, 룩업 테이블 갱신에 따른 룩업 테이블 엔트리를 추가하는 룩업 테이블 추가 제어부, 룩업 테이블 엔트리를 삭제하는 룩업 테이블 삭제 제어부, 룩업 테이블 추가 또는 삭제시에 기존의 룩업 테이블에 상기 추가 또는 삭제하고자 하는 룩업 엔트리가 이미 존재하는지를 검색하는 룩업 테이블 검색 제어부,룩업 장치의 내부 레지스터 접근 및 룩업 장치 명령어를 직접적으로 구동하고, 룩업 장치를 구동하는데 필요한 정보가 저장되어 있는 메모리에 대한 명령어를 직접적으로 구동하는 룩업 장치 및 메모리 제어부, 그리고 룩업 디바이스 드라이버의 각 제어부의 구현 및 구동에 사용되는 여러 가지 데이터 자료 구조체를 정의한 제어 자료 구조체가 저장되어 있는 제어 자료 구조체 메모리를 포함하는 것을 특징으로 한다. 이러한 구성을 통해서 본 발명은 상위 응용프로그램 모듈에서는 기존의 소프트웨어 기반의 룩업 모듈을 제어하듯이 이미 정의된 룩업 응용 프로그래밍 인터페이스(Application Programming Interface, API)를 통해서 하드웨어 기반의 고속 룩업 모듈을 용이하게 제어할 수 있다.
본 자료 구조체 발명은 룩업 장치가 제공하는 서비스 그룹의 자료들을 관리하는 서비스 블록 구조체, 상기 서비스 블록 구조체내의 마스크 그룹의 자료들을 관리하는 마스크 블록 구조체, 상기 마스크 블록 구조체내의 시작 주소 자료와 빈 공간 주소 자료와 그룹 크기 자료를 관리하는 마스크 제어 블록 구조체, 룩업 메모리, 포워딩 메모리가 제공하는 룩업 정보, 포워딩 정보, 패킷 정보의 자료를 관리하는 룩업 엔트리 구조체를 포함하는 것을 특징으로 한다.
본 방법 발명은 상위 응용 프로그램 모듈로부터 초기화 명령이 있는 경우, 룩업 장치, 룩업 메모리, 및 제어 자료 구조체 메모리를 초기화하는 제어 명령을 하달하는 단계, 상기 상위 응용 프로그램 모듈로부터 룩업 엔트리 추가 또는 삭제 명령이 있는 경우, 상기 추가 또는 삭제 룩업 엔트리의 검색을 요청하는 단계, 상기 검색 요청이 있는 경우, 상기 추가 또는 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 룩업 엔트리인지를 검색하는 제어 명령을 하달하는 단계, 상기 검색 결과, 상기 룩업 테이블에 상기 추가 룩업 엔트리가 존재하지 않는 경우에는 상기 룩업 테이블에 상기 추가 룩업 엔트리를 추가하고, 상기 룩업 테이블에 상기 삭제 룩업 엔트리가 존재하는 경우에는 상기 룩업 테이블에서 상기 삭제 룩업 엔트리를 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 단계, 상기 하달된 제어 명령이 구현되도록 상기 고속 IP 룩업 장치, 룩업 메모리, 포워딩 메모리를 제어하는 단계를 포함하는 것을 특징으로 한다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
도 1은 본 발명의 적용 대상인 고속 IP 룩업 장치의 일종인 MUAC 칩의 블록 다이어그램도이다.
상기 고속 IP 룩업 장치는 일종의 CAM(Content Addressable Memory, 내용 주소화 기억 장치)이다. 상기 CAM은 기억 장치 내에 자료를 수록하거나 읽어낼 때 실제의 자료 내용을 주소로 하여 접근하는 기억 장치로서 일반적인 숫자를 통한 주소 기억 장치보다 강력하고 처리 속도가 빠르다. 상기 MUAC 칩은 MUSIC 세미컨덕터사의 제품으로 IPv4 어드레스의 최상의 프리픽스 매치 서치(search)와 MAC 어드레스의 정확한 매치가 가능한 라우팅 코프로세서이다. 상기 도 1에서 도시된 바와 같이 MUAC은 일곱 개의 선택 가능한 마스크 레지스터들(11)을 가지고 있기 때문에, 입력된 IP 패킷의 주소와 어드레스 데이터베이스인 룩업 테이블(12)을 비교하여 양 프리픽스가 가장 길게 되는 어드레스를 찾고자할 때, 동기화된 작동과 32 비트 삼진 또는 64 비트 이진 비교 연산을 제공한다. 상기의 동기화된 작동과 32 비트 삼진또는 64 비트 이진 비교 연산을 통하여 MUAC은 초마다 2천만번의 룩업들을 수행할 수 있다. 이하에서는 룩업 장치의 일 실시예로서 MUAC 칩을 사용하여 본 발명의 구성 및 작용을 설명하기로 한다.
도 2는 본 발명이 탑재될 포워딩 엔진의 구성도이다.
상기 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)은 각 패킷의 포워딩 채널, 포워딩 패킷 타입 등이 저장된 외부 램이다.
본 발명은 상기 도 2에서 룩업 장치, 상기 룩업 장치내의 내부 램, 및 외부 램을 제어하는 장치 및 방법에 관한 것으로서, 개략적인 포워딩 과정은 다음과 같다. 라우터가 파워 온(power on)된 후, 초기화 과정을 거쳐 정상으로 동작할 수 있는 상태가 되면, 룩업 장치 및 메모리 제어기는 도착한 IP 패킷으로부터 주소 정보를 축출해내고, 이것과 MUAC 어드레스 데이터베이스(룩업 테이블)를 비교한다. 이것을 통하여 MUAC는 외부 메모리에 저장된 포워딩 정보에 접근하는 데 사용되는 인덱스를 발생시킨다. 룩업 장치 및 메모리 제어기는 외부 램으로부터 상기 포워딩 정보를 읽고, 그 정보에 따라 상기 IP 패킷을 포워딩한다.
도 3은 본 발명인 고속 IP 룩업 장치를 기반으로 한 포워딩 제어 장치의 전체 구성도이다.
고속으로 내부 룩업 메모리(37)에 저장된 룩업 테이블과 입력된 IP 패킷의 주소 정보를 비교하여, 외부 포워딩 메모리(38)에 저장된 포워딩 정보를 찾아주는 룩업 장치(36), 상기 내부 룩업 메모리(37), 및 상기 외부 포워딩 메모리(38)를 제어하고, 룩업 테이블을 구축하기 위한 각 제어부로 구성되어 있다.
상기 룩업 장치(36), 상기 내부 룩업 메모리(37), 및 상기 외부 포워딩 메모리(38)를 제어하기 위해서는 제어 정보를 저장하는 기억 장소가 필요한데, 상기 룩업 장치를 제어하기 위한 자료, 상기 룩업 메모리를 제어하기 위한 자료, 및 상기 포워딩 메모리를 제어하기 위한 자료는 서로 다른 자료형으로 구성되어 있다. 상기와 같이 서로 다른 자료형으로 구성된 기억 장고들을 모아놓고 관리할 필요가 있는데, 이러한 역할을 하는 것이 구조체이다. 상기 구조체의 구성 정보가 저장되는 곳이 제어 자료 구조체 메모리(32)이다. 상위 응용 프로그램 모듈(31)은 상기 하위 각 제어부에서 제공되는 API(Application Programming Interface, 응용 프로그래밍인터페이스)를 사용하게 된다. 상기 API란 응용 프로그램이 컴퓨터 운영 체계나 데이터 베이스 관리 시스템 등 다른 프로그램의 기능을 이용하기 위한 인터페이스를 말하며, 응용 프로그램 작성자가 프로그램 중에 함수를 기술하기만 하면 함수 호출에 의해 다양한 기능을 이용할 수 있게 된다. 이 함수의 집합이 API이며, 종류가 다른 OS 사이에 API의 공통 형식이 규정되면 다른 기종의 컴퓨터 사이에 응용 프로그램의 이식성이 확보된다. 따라서, 상기 API를 사용하게 되면, 하드웨어의 상세한 제어부에 대한 추가적인 고려를 하지 않아도 되는 추상적이고 객관적인 인터페이스를 상기 하위 각 제어부를 통해서 제공하게 되며, 이를 통해서 상위 응용 프로그램 모듈은 기존의 모듈에 대한 추가적인 변경을 최소화시킬 수 있다. 상기 상위 응용 프로그램 모듈로부터 초기화 명령이 있는 경우, 상기 룩업 장치, 상기 룩업 메모리, 및 상기 제어 자료 구조체 메모리를 초기화하는 제어 명령을 하달하는 룩업 장치 및 메모리 초기화 제어부(33), 상위 응용 프로그램 모듈로부터 룩업 엔트리 추가 또는 삭제 명령이 있는 경우, 상기 추가 또는 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 지를 검색하고, 상기 검색 결과에 따라 상기 룩업 테이블에 상기 추가 또는 삭제 룩업 엔트리를 추가 또는 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 룩업 테이블 구축부(34), 상기 하달된 제어 명령을 받아 상기 룩업 장치, 룩업 메모리, 포워딩 메모리에 상기 하달된 제어 명령에 관련된 제어 값을 입력하는 룩업 장치 및 메모리 제어부로 구성된다. 상기 룩업 테이블 구축부는 다시 룩업 테이블 추가 제어부(341), 룩업 테이블 삭제 제어부(342), 룩업 테이블 검색 제어부(343)로 세분된다. 상위 응용 프로그램 모듈로부터 룩업 엔트리 추가 명령이 있는 경우, 상기 추가 룩업 엔트리의 검색을 요청하고, 상기 검색 결과 상기 룩업 테이블에 상기 추가 룩업 엔트리가 존재하지 않는 경우, 상기 룩업 테이블에 상기 추가 룩업 엔트리를 추가하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 룩업 테이블 추가 제어부(341), 상위 응용 프로그램 모듈의 명령이 룩업 엔트리 삭제인 경우, 상기 삭제 룩업 엔트리의 검색을 요청하고, 상기 검색 결과 상기 룩업 테이블에 상기 삭제 룩업 엔트리가 존재하는 경우, 상기 룩업 테이블에서 상기 삭제 룩업 엔트리를 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 룩업 테이블 삭제 제어부(342), 상기 룩업 테이블 추가 제어부 또는 상기 룩업 테이블 삭제 제어부로부터 상기 검색 요청이 있는 경우, 상기 추가 또는 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 지를 검색하는 제어 명령을 하달하는 룩업 테이블 검색 제어부(343)로 구성된다. 상기의 구성을 통해서 본 발명은 상기 상위 응용 프로그램 모듈(31)에서는 기존의 소프트웨어 기반의 룩업 모듈을 제어하듯이 이미 정의된 API를 통해서 하드웨어 기반의 고속 룩업 모듈을 용이하게 제어할 수 있다.
상기 도 3에서 6가지의 상세 제어부들은 크게 3부분으로 분류가 이루어 질 수 있는데, 상기 룩업 장치 및 메모리 초기화 제어부(33), 상기 룩업 테이블 추가 제어부(341), 상기 룩업 테이블 삭제 제어부(342), 상기 룩업 테이블 검색 제어부(343)는 상위 소프트웨어 계층과 하위 하드웨어 계층 사이에 위치하여 상위 응용프로그램에 편리한 인터페이스를 제공하면서 해당 기능을 구현하는 역할을 담당하게 되며, 상기 룩업 장치 및 메모리 제어부(35)는 하위의 하드웨어 룩업 장치를 제어하는 각종 명령어들을 이용하여 하드웨어적인 제어 작업을 담당하게 된다. 또한 상기 제어 자료 구조체 메모리(32)는 이미 설명한 각종 제어부의 구현에 사용되는 여러 가지 자료 구조체를 제공하게 된다.
도 4는 상기 도 3의 룩업 장치 및 메모리 초기화 제어부(33)의 상세 구성도이다.
상기 룩업 장치 및 메모리 초기화 제어부(33)는 룩업 장치 초기화 제어부(41), 룩업 장치 초기 모드 검사부(42), 룩업 테이블 초기화 제어부(43), 제어 자료 구조체 초기화 제어부(44)로 구성되어 있다. 상기 룩업 장치 초기화 제어부(41)는 상기 상위 응용 프로그램 모듈(31)로부터 초기화 명령이 있는 경우, 상기 룩업 장치의 구동 가능 상태인 초기 모드로 설정하는 제어 명령을 하달한다. 상기 룩업 장치 초기 모드 검사부(42)는 상기 초기 모드를 검사하여, 상기 룩업 장치가 비정상적이라고 판단된 경우 상기 상위 응용 프로그램 모듈(31)에 보고한다. 이것은 룩업 장치 MUAC 칩을 초기화 시킨 후 그 결과가 하드웨어적인 에러로 판단되면, 해당 기능 모듈은 에러값을 함수에서 리턴함으로서 이를 호출한 응용 프로그램이 에러 처리 기능(상위 메인 프로세서의 응용 모듈로 보고하거나, 에러문을 모니터상으로 출력하는 기능)을 수행하도록 해준다는 의미이다. 정상적으로 룩업 칩에 대한 초기화 작업이 완료되면, 상기 제어 자료 구조체 초기화 제어부(43)는 상기 제어 자료 구조체 메모리에 저장된 제어 자료 구조체의 제어 가능 값인 초기 값을 설정하는 제어 명령을 하달하고, 상기 룩업 테이블 초기화 제어부(44)는 상기 룩업 메모리에 저장된 룩업 테이블의 각 항목인 룩업 엔트리들의 룩업 가능 값인 초기 값을 설정하는 제어 명령을 하달한다. 이것을 통하여 상기 제어 자료 구조체 메모리의 경우상기 상위 응용 프로그램 모듈로부터 상기 룩업 장치, 상기 룩업 메모리, 및 상기 포워딩 메모리를 제어할 수 있는 데이터를 다운받게 되고, 상기 룩업 메모리의 경우 상기 상위 응용 프로그램 모듈로부터 룩업 테이블을 다운받게 되며, 룩업 테이블이 구축되면 룩업 가능한 상태가 된다. 이것으로 전체적인 디바이스 초기화 작업을 마치게된다.
도 5는 상기 도 3의 상기 룩업 테이블 추가 제어부(34)에 대한 상세 구성도이다.
상기 룩업 테이블 추가 제어부(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 마스크 그룹에 저장하는 명령어들을 구현하고 있다. 이것을 통해 공통으로 사용되는 부분을 일일이 추가하지 않아도 되므로 효율적으로 룩업 추가 제어부를 운용할 수 있다.
도 6은 상기 도 3의 상기 룩업 테이블 삭제 제어부(35)에 대한 상세 구성도이다.
각 서비스별 엔트리 삭제부(61, 62, 63, 64, 65) 및 공통 기능 부분 삭제 제어부(66)는 룩업 정보 및 처리 과정은 상기 도 5의 각 서비스별 엔트리 추가부(51, 52, 53, 54, 55) 및 공통 기능 부분 추가 제어부(56)와 동일하며 세부적인 절차에서 엔트리 삭제 기능을 수행함이 다르다.
도 7은 상기 도 3의 상기 룩업 테이블 검색 제어부(36)에 대한 상세 구성도이다.
상기 룩업 테이블 검색 제어부는 룩업 테이블 마스크 그룹 검색 제어부(71), 룩업 테이블 엔트리 검색 제어부(72), 룩업 테이블 공간 검색 제어부(73), 룩업 테이블 공간 생성 제어부(74)로 구성된다. 상기 상위 응용 프로그램 모듈로부터 룩업 엔트리를 추가 또는 삭제하라는 명령이 있는 경우 상기 룩업 메모리에 저장된 룩업 테이블에서 상기 추가 또는 삭제할 룩업 엔트리가 속하는 마스크 그룹을 검색하는 제어 명령을 하달하는 상기 룩업 테이블 마스크 그룹 검색 제어부(71)는 IP 마스크별로 그룹을 나누어서 각 엔트리를 추가하거나 삭제하게 되는데, 이때 추가 또는 삭제될 엔트리가 속하는 마스크 그룹을 찾아주는 기능을 담당하게 된다. 상기 추가또는 삭제할 룩업 엔트리가 상기 마스크 그룹에 이미 존재하는지를 검색하는 제어 명령을 하달하는 상기 룩업 테이블 엔트리 검색 제어부(73)는 이미 존재하는 엔트리를 추가하거나 존재하지 않는 엔트리를 삭제하는 등의 경우를 방지하기 위해서, 추가 또는 삭제하려고 하는 엔트리의 존재 여부를 검색해주는 기능을 담당하게 된다. 상기 명령이 추가인 경우, 상기 검색 결과 추가하고자 하는 룩업 엔트리가 존재하지 않는 경우 상기 마스크 그룹에 빈 공간의 유무를 검색하는 제어 명령을 하달하는 상기 룩업 테이블 공간 검색 제어부(73)와 상기 빈 공간 유무의 검색 결과, 상기 마스크 그룹에 빈 공간이 없을 경우 상기 마스크 그룹으로부터 가장 가까운 그룹에서 빈 공간을 할당해오는 제어 명령을 하달하는 상기 룩업 테이블 공간 생성 제어부(74)는 엔트리 추가 작업시에 사용되며 현 마스크 그룹에 추가할 빈 공간이 남아있는지를 검색하는 기능과, 만약 빈 공간이 없을 경우 빈 공간을 가진 인접한 그룹을 검색하여 빈 공간을 만들어주는 기능을 각각 담당하게 된다. 이 기능을 통해서 각각의 마스크 그룹의 크기는 룩업 테이블 환경에 따라 가변적으로 변할 수 있도록 되어 보다 효율적인 테이블 제어를 구현할 수 있다.
도 8은 상기 도 3의 상기 룩업 장치 및 메모리 제어부(37)에 대한 상세 구성도이다.
상기 룩업 장치 및 메모리 제어부(37)는 룩업 장치 및 메모리 초기화 구현 제어부(81), 룩업 장치 레지스터 제어부(82), 룩업 장치 메모리 제어부(83), 룩업 테이블 제어부(84)로 구성되어 있다. 상기 하달된 초기화 제어 명령에 따라 상기 룩업 장치, 상기 룩업 메모리, 및 상기 포워딩 메모리에 초기화와 관련된 제어 값을 입력하는 룩업 장치 및 메모리 초기화 구현 제어부(81)는 룩업 장치 및 메모리(본 실시예에서는 MUAC 칩과 내부 메모리 및 외부 메모리)에 직접 제어 데이터를 입력함으로서 초기화와 관련된 하드웨어 명령어를 구현하고 있다. 상기 하달된 추가, 삭제, 또는 검색 제어 명령에 따라 룩업 장치의 레지스터 값을 조정하는 룩업 장치 레지스터 제어부(82)는 룩업 장치에 대한 명령의 결과 값 및 룩업 장치의 상태 값 등의 내부 레지스터에 접근하는 명령어들을 구현하고 있다. 상기 하달된 추가, 삭제, 또는 검색 제어 명령에 따라 상기 룩업 메모리, 및 포워딩 메모리에 상기 추가, 삭제, 또는 검색에 적합한 메모리 상태와 관련된 제어 값을 입력하는 룩업 장치 메모리 제어부(83)는 룩업 장치내의 룩업 메모리와 이와 연동된 포워딩 정보(포워딩 채널, 포워딩 패킷 타입 등)를 저장하는 외부 메모리인 포워딩 메모리를 제어하는데 사용되는 명령어들을 구현하고 있다. 상기 하달된 추가, 삭제, 또는 검색 제어 명령에 따라 상기 룩업 메모리, 및 포워딩 메모리에 상기 추가, 삭제, 검색의 동작에 관련된 제어 값을 입력하는 룩업 테이블 제어부(84)는 상기 룩업 메모리내의 각 서비스별 마스크 그룹별 룩업 테이블 정보를 제어하는데 사용되는 명령어들을 구현하고 있다.
도 9는 상기 도 3의 상기 제어 자료 구조체 메모리(32)에 저장된 서로 다른 자료형인 제어 자료들을 공동으로 관리하는 구조체에 대한 구조도이다.
일반적으로, 구조체는 서로 다른 자료형을 가진 기억 장소들을 모아 놓고 관리하기 위한 것으로, 상기 구조체를 사용하는 목적은 서로 다른 자료형을 가진 기억장소들을 집단으로 처리함으로서 데이터를 효율적으로 관리하기 위한 것이다. 본발명의 구조체로는 서비스 블록 구조체(91), 마스크 블록 구조체(92), 마스크 제어 블록 구조체(93), 룩업 엔트리 구조체(94)가 있다. 상기 룩업 장치가 제공하는 서비스 그룹의 자료들을 관리하는 상기 서비스 블록 구조체(91)는 각 서비스별 마스크 그룹을 관리하기 위한 자료 구조체이다. 상기 서비스 블록 구조체내의 마스크 그룹의 자료들을 관리하는 상기 마스크 블록 구조체(92)는 상기 각각의 서비스에 대한 개별적인 마스크 그룹을 관리하기 위한 자료구조체이다. 상기 마스크 그룹 구조체(92)는 다시 각각의 그룹에 마스크 제어 블록 구조체(93)로 구성되는데 상기 마스크 제어 블록 구조체(93)에서는 해당 그룹의 시작 주소와 빈공간 주소, 그리고 현 그룹의 크기를 저장하는 자료들로 구성된다. 상기 룩업 메모리, 상기 포워딩 메모리가 제공하는 룩업 정보, 포워딩 정보, 패킷 정보의 자료를 관리하는 상기 룩업 엔트리 구조체(94)는 상기 룩업 메모리에 저장되는 각 엔트리의 자료구조를 가지고 있다. 구체적으로 상기 각 엔트리의 자료구조는 룩업시 기준이 되는 FIB_Entity와 룩업 후 포워딩될 정보를 가지고 있는 LIB_Entity, 그리고 수신된 패킷에 대한 정보를 가지고 있는 CH_INFO_Entity로 구성되어 있다.
도 10은 고속 IP 룩업 장치를 기반으로 한 고속 IP 포워딩 엔진를 제어하는 흐름도를 나타낸다.
본 발명이 적용되는 라우터 등의 시스템에 전원이 인가되면, 고속 IP 룩업 장치인 MUAC 칩이 룩업할 수 있는 환경을 만들기 위해, 하위 각 제어부에서 제공하는 응용 프로그래밍 인터페이스를 통해서 초기화, 추가, 삭제 명령을 하달하는 상위 응용 프로그램 모듈로부터 초기화 명령이 있는 경우, 상기 룩업 장치, 및 상기룩업 메모리를 초기화하고, 상기 룩업 장치의 제어 자료, 상기 룩업 메모리의 제어 자료, 및 상기 포워딩 메모리의 제어 자료를 공동으로 관리하는 구조체가 저장되어 있는 제어 자료 구조체 메모리를 초기화하는 제어 명령을 하달한다(101). 초기화 상태가 완료되어 룩업 가능한 상태가 된 후, 상기 상위 응용 프로그램 모듈로부터 룩업 테이블 추가 제어부로 룩업 엔트리 추가 명령이 있는 경우(102), 룩업 테이블에 상기 추가하고자 하는 룩업 엔트리가 이미 존재하는지를 알아보기 위해 상기 룩업 테이블 추가 제어부는 상기 추가 룩업 엔트리의 검색을 요청한다(1011). 상기 검색 요청이 있는 경우, 상기 추가 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 룩업 엔트리인지를 검색하는 제어 명령을 하달한다(1012). 상기 검색 결과, 상기 룩업 테이블에 상기 추가 룩업 엔트리가 존재하지 않는 경우(1013), 상기 룩업 테이블에 상기 추가 룩업 엔트리를 추가하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달한다(1014). 마지막으로, 상기 하달된 제어 명령이 구현되도록 상기 룩업 장치 및 제어부가 상기 고속 IP 룩업 장치, 룩업 메모리, 포워딩 메모리를 제어한다(1015). 반면에 초기화 상태가 완료되어 룩업 가능한 상태가 된 후, 상기 상위 응용 프로그램 모듈로부터 룩업 테이블 삭제 제어부로 룩업 엔트리 삭제 명령이 있는 경우(103), 룩업 테이블에 상기 삭제하고자 하는 룩업 엔트리가 이미 존재하는지를 알아보기 위해 상기 룩업 테이블 삭제 제어부는 상기 삭제 룩업 엔트리의 검색을 요청한다(1021). 상기 검색 요청이 있는 경우, 상기 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 룩업 엔트리인지를 검색하는 제어 명령을 하달한다(1022). 상기 검색 결과, 상기 룩업 테이블에 상기 삭제 룩업엔트리가 존재하는 경우(1023), 상기 룩업 테이블에 상기 삭제 룩업 엔트리를 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달한다(1024). 마지막으로, 상기 하달된 제어 명령이 구현되도록 상기 룩업 장치 및 제어부가 상기 고속 IP 룩업 장치, 룩업 메모리, 포워딩 메모리를 제어한다(1025).
상기와 같은 단계들을 거쳐 상기 상위 응용 프로그램 모듈로부터의 초기화, 추가, 삭제 명령이 달성되고, 고속 IP 포워딩의 기반이 되는 룩업 테이블 및 포워딩 테이블이 구축되게 된다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
또한 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 씨디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
본 발명에 따르면 기존의 소프트웨어 기반의 IP 룩업 방식에 비해 고속의 IP 룩업 기능을 수행함으로서, 고속 IP 룩업 장치 기반의 라우터 장치 및 MPLS망의 LER(Label Edge Router)장치의 고속 포워딩 모듈에 사용되어, 기존의 인터넷망의 스위치 및 라우터의 룩업 및 포워딩 기능을 극대화할 수 있는 수단을 제공하게 된다. 이를 통해서 인터넷 백본망에서 룩업시의 성능 저하를 방지하고, 원할한 트래픽이 이루어지는 효과가 있다. 특히, 본 발명에서는 인터넷 표준 프로토콜인 TCP/IP의 기본 포워딩 정책인 목적지 IP 주소 룩업 기능 외에도 MPLS-VPN 서비스, RT 서비스 및 ELL 서비스 등의 부가적인 서비스 제공을 위한 룩업 테이블 구축 기능을 제공함으로써 고속 포워딩 기능 외에도 다양한 서비스를 지원할 수 있는 효과가 있다.
또한, 상위 응용 프로그램 모듈은 하위 각 제어부에서 제공되는 API를 사용함으로서, 기존의 모듈에 대한 추가적인 변경을 최소화시킬 수 있다. 따라서, 상기 상위 응용프로그램 모듈에서는 기존의 소프트웨어 기반의 룩업 모듈을 제어하듯이 이미 정의된 룩업 API를 통해서 하드웨어 기반의 고속 룩업 모듈을 용이하게 제어할 수 있는 효과가 있다.
유효 테이블 엔트리 검색부와 유효 테이블 엔트리 생성부는 엔트리 추가 작업시에 사용되며 현 마스크 그룹에 추가할 빈 공간이 남아있는지를 검색하는 기능과, 만약 빈 공간이 없을 경우 빈 공간을 가진 인접한 그룹을 검색하여 빈 공간을 만들어주는 기능을 각각 담당하게 된다. 이 기능을 통해서 각각의 마스크 그룹의 크기는 룩업 테이블 환경에 따라 가변적으로 변할 수 있도록 되어 보다 효율적인 테이블 제어를 구현할 수 있는 효과가 있다.

Claims (11)

  1. 고속으로 내부 룩업 메모리에 저장된 룩업 테이블과 입력된 IP 패킷의 주소 정보를 비교하여, 외부 포워딩 메모리에 저장된 포워딩 정보를 찾아주는 룩업 장치를 기반으로 한 고속 IP 포워딩 엔진 제어 장치에 있어서,
    상기 룩업 장치의 제어 자료, 상기 룩업 메모리의 제어 자료, 및 상기 포워딩 메모리의 제어 자료를 공동으로 관리하는 구조체가 저장되어 있는 제어 자료 구조체 메모리;
    상위 응용 프로그램 모듈로부터 초기화 명령이 있는 경우, 상기 룩업 장치, 상기 룩업 메모리, 및 상기 제어 자료 구조체 메모리를 초기화하여 룩업 가능 상태로 만드는 제어 명령을 하달하는 룩업 장치 및 메모리 초기화 제어부;
    상위 응용 프로그램 모듈로부터 룩업 엔트리 추가 또는 삭제 명령이 있는 경우, 상기 추가 또는 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 지를 검색하고, 상기 검색 결과에 따라 상기 룩업 테이블에 상기 추가 또는 삭제 룩업엔트리를 추가 또는 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 룩업 테이블 구축부; 및
    상기 하달된 제어 명령을 받아 상기 룩업 장치, 룩업 메모리, 포워딩 메모리에 상기 하달된 제어 명령에 관련된 제어 값을 입력하는 룩업 장치 및 메모리 제어부를 포함하는 것을 특징으로 하는 장치.
  2. 제 1 항에 있어서, 상기 룩업 장치 및 메모리 초기화 제어부는
    상기 상위 응용 프로그램 모듈로부터 초기화 명령이 있는 경우, 상기 룩업 장치의 구동 가능 상태인 초기 모드로 설정하는 제어 명령을 하달하는 룩업 장치 초기화 제어부;
    상기 초기 모드를 검사하여, 상기 룩업 장치가 비정상적이라고 판단된 경우 상기 상위 응용 프로그램 모듈에 보고하는 룩업 장치 초기 모드 검사부;
    상기 룩업 장치가 정상적이라고 판단된 경우, 상기 제어 자료 구조체 메모리에 저장된 제어 자료 구조체의 제어 가능 값인 초기 값을 설정하는 제어 명령을 하달하는 제어 자료 구조체 초기화 제어부; 및
    상기 룩업 장치가 정상적이라고 판단된 경우, 상기 룩업 메모리에 저장된 룩업 테이블의 각 항목인 룩업 엔트리들의 룩업 가능 값인 초기 값을 설정하는 제어 명령을 하달하는 룩업 테이블 초기화 제어부를 포함하는 것을 특징으로 하는 장치.
  3. 제 1 항에 있어서, 상기 룩업 테이블 구축부는
    상위 응용 프로그램 모듈로부터 룩업 엔트리 추가 명령이 있는 경우, 상기 추가 룩업 엔트리의 검색을 요청하고, 상기 검색 결과 상기 룩업 테이블에 상기 추가 룩업 엔트리가 존재하지 않는 경우, 상기 룩업 테이블에 상기 추가 룩업 엔트리를 추가하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 룩업 테이블 추가 제어부;
    상위 응용 프로그램 모듈의 명령이 룩업 엔트리 삭제인 경우, 상기 삭제 룩업 엔트리의 검색을 요청하고, 상기 검색 결과 상기 룩업 테이블에 상기 삭제 룩업 엔트리가 존재하는 경우, 상기 룩업 테이블에서 상기 삭제 룩업 엔트리를 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 룩업 테이블 삭제 제어부; 및
    상기 룩업 테이블 추가 제어부 또는 상기 룩업 테이블 삭제 제어부로부터 상기 검색 요청이 있는 경우, 상기 추가 또는 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 지를 검색하는 제어 명령을 하달하는 룩업 테이블 검색 제어부를 포함하는 것을 특징으로 하는 장치.
  4. 제 3 항에 있어서, 상기 룩업 테이블 추가 제어부는
    제 3 계층의 IP 주소만을 룩업하는 서비스를 제공하는 BE 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 BE 서비스 엔트리 추가 제어부;
    개인 사설 망 서비스를 제공하는 MPLS-VPN 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 MPLS-VPN 서비스 엔트리 추가 제어부;
    출발지 IP 주소와 목적지 IP 주소를 함께 룩업하는 서비스를 제공하는 ELL 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 ELL 서비스 엔트리 추가 제어부;
    실시간 서비스를 제공하는 RT 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 RT 서비스 엔트리 추가 제어부;
    MPLS 서비스를 제공하는 MPLS 서비스 엔트리를 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 MPLS 서비스 엔트리 추가 제어부; 및
    상기 각 엔트리의 공통 기능 부분을 상기 룩업 테이블에 추가하는 제어 명령을 하달하는 공통 기능 부분 추가 제어부를 포함하는 것을 특징으로 하는 장치.
  5. 제 3 항에 있어서, 상기 룩업 테이블 삭제 제어부는
    제 3 계층의 IP 주소만을 룩업하는 서비스를 제공하는 BE 서비스 엔트리를 상기 룩업 테이블에서 삭제하는 제어 명령을 하달하는 BE 서비스 엔트리 삭제 제어부;
    개인 사설 망 서비스를 제공하는 MPLS-VPN 서비스 엔트리를 상기 룩업 테이블에서 삭제하는 제어 명령을 하달하는 MPLS-VPN 서비스 엔트리 삭제 제어부;
    출발지 IP 주소와 목적지 IP 주소를 함께 룩업하는 서비스를 제공하는 ELL 서비스 엔트리를 상기 룩업 테이블에서 삭제하는 제어 명령을 하달하는 ELL 서비스 엔트리 삭제 제어부;
    실시간 서비스를 제공하는 RT 서비스 엔트리를 상기 룩업 테이블에서 삭제하는 제어 명령을 하달하는 RT 서비스 엔트리 삭제 제어부;
    MPLS 서비스를 제공하는 MPLS 서비스 엔트리를 상기 룩업 테이블에서 삭제하는 제어 명령을 하달하는 MPLS 서비스 엔트리 삭제 제어부; 및
    상기 각 서비스 엔트리의 공통 기능 부분을 상기 룩업 테이블에서 삭제하는 제어 명령을 하달하는 공통 기능 부분 삭제 제어부를 포함하는 것을 특징으로 하는 장치.
  6. 제 3 항에 있어서, 상기 룩업 테이블 검색 제어부는
    상기 상위 응용 프로그램 모듈로부터 룩업 엔트리를 추가 또는 삭제하라는 명령이 있는 경우 상기 룩업 메모리에 저장된 룩업 테이블에서 상기 추가 또는 삭제할 룩업 엔트리가 속하는 마스크 그룹을 검색하는 제어 명령을 하달하는 룩업 테이블 마스크 그룹 검색 제어부;
    상기 추가 또는 삭제할 룩업 엔트리가 상기 마스크 그룹에 이미 존재하는지를 검색하는 제어 명령을 하달하는 룩업 테이블 엔트리 검색 제어부;
    상기 명령이 추가인 경우, 상기 검색 결과 추가하고자 하는 룩업 엔트리가 존재하지 않는 경우 상기 마스크 그룹에 빈 공간의 유무를 검색하는 제어 명령을 하달하는 룩업 테이블 공간 검색 제어부; 및
    상기 빈 공간 유무의 검색 결과, 상기 마스크 그룹에 빈 공간이 없을 경우 상기 마스크 그룹으로부터 가장 가까운 그룹에서 빈 공간을 할당해오는 제어 명령을 하달하는 룩업 테이블 공간 생성 제어부를 포함하는 것을 특징으로 하는 장치.
  7. 제 1 항에 있어서, 상기 룩업 장치 및 메모리 제어부는
    상기 하달된 초기화 제어 명령에 따라 상기 룩업 장치, 상기 룩업 메모리, 및 상기 포워딩 메모리에 초기화와 관련된 제어 값을 입력하는 룩업 장치 및 메모리 초기화 구현 제어부;
    상기 하달된 추가, 삭제, 또는 검색 제어 명령에 따라 룩업 장치의 레지스터 값을 조정하는 룩업 장치 레지스터 제어부;
    상기 하달된 추가, 삭제, 또는 검색 제어 명령에 따라 상기 룩업 메모리, 및 포워딩 메모리에 상기 추가, 삭제, 또는 검색에 적합한 메모리 상태와 관련된 제어 값을 입력하는 룩업 장치 메모리 제어부; 및
    상기 하달된 추가, 삭제, 또는 검색 제어 명령에 따라 상기 룩업 메모리, 및 포워딩 메모리에 상기 추가, 삭제, 검색의 동작에 관련된 제어 값을 입력하는 룩업 테이블 제어부를 포함하는 것을 특징으로 하는 장치.
  8. 고속으로 내부 룩업 메모리에 저장된 룩업 테이블과 입력된 IP 패킷의 주소 정보를 비교하여, 외부 포워딩 메모리에 저장된 포워딩 정보를 찾아주는 룩업 장치의 제어 자료, 상기 룩업 메모리의 제어 자료, 및 상기 포워딩 메모리의 제어 자료를 공동으로 관리하는 자료 구조체에 있어서,
    상기 룩업 장치가 제공하는 서비스 그룹의 자료들을 관리하는 서비스 블록구조체;
    상기 서비스 블록 구조체내의 마스크 그룹의 자료들을 관리하는 마스크 블록 구조체;
    상기 마스크 블록 구조체내의 시작 주소 자료와 빈 공간 주소 자료와 그룹 크기 자료를 관리하는 마스크 제어 블록 구조체; 및
    상기 룩업 메모리, 상기 포워딩 메모리가 제공하는 룩업 정보, 포워딩 정보, 패킷 정보의 자료를 관리하는 룩업 엔트리 구조체를 포함하는 것을 특징으로 하는 자료 구조체.
  9. 고속으로 내부 룩업 메모리에 저장된 룩업 테이블 정보들과 입력된 IP 패킷의 주소 정보를 비교하여, 외부 포워딩 메모리에 저장된 포워딩 정보를 찾아주는 룩업 장치를 기반으로 한 고속 IP 포워딩 엔진 제어 방법에 있어서,
    (a) 하위 각 제어부에서 제공하는 응용 프로그래밍 인터페이스를 통해서 초기화, 추가, 삭제 명령을 하달하는 상위 응용 프로그램 모듈로부터 초기화 명령이 있는 경우, 상기 룩업 장치, 및 상기 룩업 메모리를 초기화하고, 상기 룩업 장치의 제어 자료, 상기 룩업 메모리의 제어 자료, 및 상기 포워딩 메모리의 제어 자료를 공동으로 관리하는 구조체가 저장되어 있는 제어 자료 구조체 메모리를 초기화하는 제어 명령을 하달하는 단계;
    (b) 상기 상위 응용 프로그램 모듈로부터 룩업 엔트리 추가 명령이 있는 경우, 상기 추가 룩업 엔트리의 검색을 요청하는 단계;
    (c) 상기 검색 요청이 있는 경우, 상기 추가 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 룩업 엔트리인지를 검색하는 제어 명령을 하달하는 단계;
    (d) 상기 검색 결과, 상기 룩업 테이블에 상기 추가 룩업 엔트리가 존재하지 않는 경우, 상기 룩업 테이블에 상기 추가 룩업 엔트리를 추가하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 단계; 및
    (e) 상기 하달된 제어 명령이 구현되도록 상기 룩업 장치, 룩업 메모리, 포워딩 메모리에 제어 값을 입력하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제 9 항에 있어서,
    상기 (b) 단계는 상기 상위 응용 프로그램 모듈로부터 룩업 엔트리 삭제 명령이 있는 경우, 상기 삭제 룩업 엔트리의 검색을 요청하는 단계;
    상기 (c) 단계는 상기 검색 요청이 있는 경우, 상기 삭제 룩업 엔트리가 상기 룩업 테이블에 이미 존재하는 룩업 엔트리인지를 검색하는 제어 명령을 하달하는 단계; 및
    상기 (d) 단계는 상기 검색 결과, 상기 룩업 테이블에 상기 삭제 룩업 엔트리가 존재하는 경우, 상기 룩업 테이블에서 상기 삭제 룩업 엔트리를 삭제하고, 상기 제어 자료 구조체 메모리의 내용을 갱신하는 제어 명령을 하달하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제 9 항 또는 제 10 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR10-2002-0027862A 2002-05-20 2002-05-20 고속 ip룩업 장치를 기반으로 한 고속 ip포워딩 엔진제어 장치 및 방법 KR100429909B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0027862A KR100429909B1 (ko) 2002-05-20 2002-05-20 고속 ip룩업 장치를 기반으로 한 고속 ip포워딩 엔진제어 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0027862A KR100429909B1 (ko) 2002-05-20 2002-05-20 고속 ip룩업 장치를 기반으로 한 고속 ip포워딩 엔진제어 장치 및 방법

Publications (2)

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

Family

ID=32383574

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0027862A KR100429909B1 (ko) 2002-05-20 2002-05-20 고속 ip룩업 장치를 기반으로 한 고속 ip포워딩 엔진제어 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100429909B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100798926B1 (ko) * 2006-12-04 2008-01-29 한국전자통신연구원 패킷 스위치 시스템에서의 패킷 포워딩 장치 및 방법
KR100856095B1 (ko) * 2006-12-13 2008-09-03 에스케이텔레시스 주식회사 휴대 인터넷 시스템의 기지국의 패킷처리장치 및 그 기지국의 패킷처리방법
EP2117949A4 (en) 2006-12-27 2011-01-12 Abbott Lab CONTAINER
US8511499B2 (en) 2007-12-18 2013-08-20 Abbott Laboratories Container
US8469223B2 (en) 2009-06-05 2013-06-25 Abbott Laboratories Strength container
MY168375A (en) 2012-04-27 2018-10-31 Abbott Lab Lid attached to a container by a collar
USD733320S1 (en) 2013-04-26 2015-06-30 Abbott Laboratories Container

Also Published As

Publication number Publication date
KR20030089935A (ko) 2003-11-28

Similar Documents

Publication Publication Date Title
US6895429B2 (en) Technique for enabling multiple virtual filers on a single filer to participate in multiple address spaces with overlapping network addresses
US11088944B2 (en) Serverless packet processing service with isolated virtual network integration
US7617318B2 (en) Storage system and a storage management system
US7350028B2 (en) Use of a translation cacheable flag for physical address translation and memory protection in a host
US20180152413A1 (en) Translating Media Access Control (MAC) Addresses In A Network Hierarchy
US20070171911A1 (en) Routing system and method for managing rule entry thereof
US20090113031A1 (en) Method, Apparatus And Computer Program Product Implementing Multi-Tenancy For Network Monitoring Tools Using Virtualization Technology
KR20120078535A (ko) Sas 확장기 접속 라우팅 기술들
JP2005316629A (ja) ネットワークプロトコル処理装置
US11757766B2 (en) Reflection route for link local packet processing
US12034700B2 (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 (ko) 네트워크 처리 시스템내의 소프트웨어 관리 트리를다운로딩하는 방법 및 시스템
KR100429909B1 (ko) 고속 ip룩업 장치를 기반으로 한 고속 ip포워딩 엔진제어 장치 및 방법
EP3958523B1 (en) Information processing apparatus and packet control method
US11296981B2 (en) Serverless packet processing service with configurable exception paths
US6675223B1 (en) Method and apparatus for processing frames using static and dynamic classifiers
US12039358B1 (en) Efficient management of packet flow information at network function virtualization services
CN113783970B (zh) 光纤通道标识的动态映射方法、装置、设备及其存储介质
US10848418B1 (en) Packet processing service extensions at remote premises
US20240275718A1 (en) Routing policies with routing control functions (rcfs) having helper function support and storage for route attributes
JP2018056739A (ja) スイッチ、および通信方法
JP2008097112A (ja) ストレージシステム及び同システムに適用される論理ボリューム管理方法
JPH04324549A (ja) 伝送制御におけるアドレス変換方法

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