KR20050066892A - 멀티비트 트리 비트맵을 이용한 패킷 분류 장치 및 그 방법 - Google Patents

멀티비트 트리 비트맵을 이용한 패킷 분류 장치 및 그 방법 Download PDF

Info

Publication number
KR20050066892A
KR20050066892A KR1020030098376A KR20030098376A KR20050066892A KR 20050066892 A KR20050066892 A KR 20050066892A KR 1020030098376 A KR1020030098376 A KR 1020030098376A KR 20030098376 A KR20030098376 A KR 20030098376A KR 20050066892 A KR20050066892 A KR 20050066892A
Authority
KR
South Korea
Prior art keywords
address
prefix
bitmap
rule
stride
Prior art date
Application number
KR1020030098376A
Other languages
English (en)
Other versions
KR100585935B1 (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 KR1020030098376A priority Critical patent/KR100585935B1/ko
Publication of KR20050066892A publication Critical patent/KR20050066892A/ko
Application granted granted Critical
Publication of KR100585935B1 publication Critical patent/KR100585935B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

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

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 멀티비트 트리 비트맵을 이용한 패킷 분류 장치 및 그 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, 수Gbps급의 IP 패킷에 대한 패킷 분류 기능을 처리하기 위하여 하드웨어 검색 방법을 근간으로하는 비트맵 트리 검색 구조를 이용한 패킷 분류 장치 및 그 방법을 제공하고자 함.
3. 발명의 해결방법의 요지
본 발명은, 수신된 IP(Internet Protocol) 패킷의 IP 헤더를 분석하여 목적지 주소와 발신지 주소를 추출하기 위한 IP 헤더 분석수단; 상기 IP 헤더 분석수단에서 추출한 소정비트로 구성되는 목적지 주소를 저장하기 위한 목적지 주소(DA) 저장수단; 상기 IP 헤더 분석수단에서 추출한 발신지 주소(SA)를 저장하기 위한 발신지 주소(SA) 저장수단; 유효한 프리픽스의 존재 여부에 따라 목적지 주소(DA), 발신지 주소(SA)를 서로 교차하면서 선택하기 위한 목적지 주소(DA)/발신지 주소(SA) 선택수단; 해당하는 스트라이드(Stride)를 추출하기 위한 스트라이드(Stride) 선택수단; 인덱스 테이블의 인덱스로 사용될 목적지 주소 인덱스(DA_index), 발신지 주소 인덱스(SA_index) 영역을 상기 목적지 주소(DA) 저장수단과 발신지 주소(SA) 저장수단에서 추출하여 서로 조합하기 위한 조합수단; 상기 조합수단에서 추출된 인덱싱 주소를 저장하기 위한 인덱스 저장수단; 상기 스트라이드(Stride) 선택수단에서 스트라이드(Stride) 선택시 하나의 스트라이드(Stride)에 대하여 검색이 완료되면 다음 스트라이드(Stride)로 증가시키고 룰 검색이 완료되면 증가된 스트라이드(Stride) 카운터를 리셋시키기 위한 스트라이드(Stride) 증가수단; 루트 노드 포인터와 넥스트 노드(Next Node) 포인터를 선택하여 룰테이블 주소 제어수단으로 전달하기 위한 선택수단; 룰저장수단으로 주소를 출력하기 위한 상기 룰테이블 주소 제어수단; 룰을 구성하고 있는 프리픽스들에 대한 룰 데이터를 저장하기 위한 상기 룰저장수단; 상기 룰저장수단 주소로부터 해당하는 정보를 페치하는 룰테이블 데이터 래치수단; 상기 룰테이블 데이터 래치수단에서 출력된 정보로 LPM(Longest Prefix Match) 검색 기능을 수행하기 위한 LPM 검색수단; 상기 LPM 검색수단에서의 LPM검색을 위하여 주소의 각 스트라이드(Stride)에 해당하는 비교 대상의 비트맵인 비교 대상 내부 프리픽스 비트맵과 비교대상 확장 경로 비트맵을 생성하기 위한 수신주소 비교 비트맵 발생수단; 상기 LPM 검색수단에서 검색 기능을 수행하여 매치되는 비트가 존재하면 해당 비트의 좌측에 위치하는 비트 1의 개수를 계산하여 비트 1의 개수를 다음 노드 포인터의 옵셋으로 사용하기 위한 비트 계산수단; 하위 노드 포인터와 옵셋을 서로 더하기 위한 덧셈수단; 및 상기 확장 경로 비트맵을 검사하여 목적지 주소(DA) 프리픽스와 발신지 주소(SA) 프리픽스의 유효한 프리픽스가 있는지의 여부를 마킹하기 위한 확장 경로 검사수단을 포함함.
4. 발명의 중요한 용도
본 발명은 네트워크 시스템 등에 이용됨.

Description

멀티비트 트리 비트맵을 이용한 패킷 분류 장치 및 그 방법{Apparatus and Method for Packet Classification using Multi-bit Tree Bitmap}
본 발명은, 비트맵 트리 기법을 이용하여 하드웨어적으로 고속의 베스트 매칭(Best Matching) 룰 검색이 가능한 패킷 분류 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 계층적 트라이 기반 패킷 분류 기법이 한비트씩 비교하면서 룰 검색을 수행하는 방법에서 한번의 검색시 여러 개의 비트를 동시에 검색하여 룰 검색시 룰테이블 액세스 회수를 줄이고, 멀티비트 트리 비트맵 기반으로 하드웨어적인 고속의 룰 검색을 수행하는 멀티비트 트리 비트맵을 이용한 패킷 분류 장치 및 그 방법에 관한 것이다.
라우터 시스템에서 QoS 보장을 위해서는 IP 헤더의 목적지 주소, 발신지 주소, TCP 포트번호, 프로토콜 등 여러필드를 조합하여 플로우 정보를 획득하여야 한다. 또한 수Gbps급의 패킷 전달 처리 능력을 가지기 위해서는 패킷 분류 처리 기능도 고속처리가 가능해야 한다.
멀티비트 트리 비트맵 기반 패킷 분류 장치는 기본적으로 IP 패킷 헤더 내의 목적지 주소(Destination Address)뿐만 아니라 발신지 주소(Source Address), 프로토콜, TCP포트 번호(Port Number) 등 여러 필드(멀티 필드)들을 조합하여 룰테이블로부터 베스트 매칭(Best Matching) 룰을 찾는 것이다.
서비스품질(QoS) 보장을 위한 패킷 라우터 시스템에 속한 분야로서 IP 헤더의 여러 필드를 조합하여 패킷 분류를 위한 기법으로 튜플 공간을 이용한 헤슁 기법, 계층적 트라이 기반 검색 기법 등이 있으며 이 기법들은 소프트웨어적인 기법으로 수행됨으로서 베스트 매칭(Best Matching) 룰을 검색하는데 많은 시간이 소요되는 문제점이 있었다.
본 발명은, 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로, 수Gbps급의 IP 패킷에 대한 패킷 분류 기능을 처리하기 위하여 하드웨어 검색 방법을 근간으로하는 비트맵 트리 검색 구조를 이용한 패킷 분류 장치 및 그 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 패킷 필터링 응용에 활용되는 발신지 주소와 목적지 주소의 두개의 필드, 즉 2차원 패킷 분류 기법에 이용한 패킷 분류 장치 및 그 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 검색 대상 필드 및 패킷 분류 룰을 구성하는 프리픽스를 비교 단위가 되는 멀티비트로 나누고, 일정한 크기의 멀티비트 단위로 트리 비트맵 기반의 룰 검색 기능을 수행하는 패킷 분류 장치 및 그 방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 장치는, 멀티비트 트리 비트맵을 이용한 패킷 분류 장치에 있어서, 수신된 IP(Internet Protocol) 패킷의 IP 헤더를 분석하여 목적지 주소와 발신지 주소를 추출하기 위한 IP 헤더 분석수단; 상기 IP 헤더 분석수단에서 추출한 소정비트로 구성되는 목적지 주소를 저장하기 위한 목적지 주소(DA) 저장수단; 상기 IP 헤더 분석수단에서 추출한 발신지 주소(SA)를 저장하기 위한 발신지 주소(SA) 저장수단; 유효한 프리픽스의 존재 여부에 따라 목적지 주소(DA), 발신지 주소(SA)를 서로 교차하면서 선택하기 위한 목적지 주소(DA)/발신지 주소(SA) 선택수단; 해당하는 스트라이드(Stride)를 추출하기 위한 스트라이드(Stride) 선택수단; 인덱스 테이블의 인덱스로 사용될 목적지 주소 인덱스(DA_index), 발신지 주소 인덱스(SA_index) 영역을 상기 목적지 주소(DA) 저장수단과 발신지 주소(SA) 저장수단에서 추출하여 서로 조합하기 위한 조합수단; 상기 조합수단에서 추출된 인덱싱 주소를 저장하기 위한 인덱스 저장수단; 상기 스트라이드(Stride) 선택수단에서 스트라이드(Stride) 선택시 하나의 스트라이드(Stride)에 대하여 검색이 완료되면 다음 스트라이드(Stride)로 증가시키고 룰 검색이 완료되면 증가된 스트라이드(Stride) 카운터를 리셋시키기 위한 스트라이드(Stride) 증가수단; 루트 노드 포인터와 넥스트 노드(Next Node) 포인터를 선택하여 룰테이블 주소 제어수단으로 전달하기 위한 선택수단; 룰저장수단으로 주소를 출력하기 위한 상기 룰테이블 주소 제어수단; 룰을 구성하고 있는 프리픽스들에 대한 룰 데이터를 저장하기 위한 상기 룰저장수단; 상기 룰저장수단 주소로부터 해당하는 정보를 페치하는 룰테이블 데이터 래치수단; 상기 룰테이블 데이터 래치수단에서 출력된 정보로 LPM(Longest Prefix Match) 검색 기능을 수행하기 위한 LPM 검색수단; 상기 LPM 검색수단에서의 LPM검색을 위하여 주소의 각 스트라이드(Stride)에 해당하는 비교 대상의 비트맵인 비교 대상 내부 프리픽스 비트맵과 비교대상 확장 경로 비트맵을 생성하기 위한 수신주소 비교 비트맵 발생수단; 상기 LPM 검색수단에서 검색 기능을 수행하여 매치되는 비트가 존재하면 해당 비트의 좌측에 위치하는 비트 1의 개수를 계산하여 비트 1의 개수를 다음 노드 포인터의 옵셋으로 사용하기 위한 비트 계산수단; 하위 노드 포인터와 옵셋을 서로 더하기 위한 덧셈수단; 및 상기 확장 경로 비트맵을 검사하여 목적지 주소(DA) 프리픽스와 발신지 주소(SA) 프리픽스의 유효한 프리픽스가 있는지의 여부를 마킹하기 위한 확장 경로 검사수단을 포함하는 것을 특징으로 한다.
한편, 본 발명의 방법은, 멀티비트 트리 비트맵을 이용한 패킷 분류 방법에 있어서, IP(Internet Protocol) 패킷이 수신되었음을 확인하고 IP 헤더 영역의 목적지 주소(DA)와 발신지 주소(SA)를 추출하는 주소 추출단계; 상기 추출된 주소의 상위 일정한 비트 길이의 인덱싱을 위한 비트 크기 만큼 발신지 주소(SA), 목적지 주소(DA) 영역의 비트를 서로 접합(Concatenation)시켜 조합한 인덱스를 인덱스 테이블의 주소로 하여 인덱싱한 결과의 내용을 획득하는 인덱싱 획득단계; 인덱싱 결과 데이터를 분석하는 분석단계; 상기 분석단계 결과, 목적지 주소 프리픽스가 계속됨을 확인하고 노드 정보와 노드 유형을 획득하여 트리 비트맵을 검색하는 목적지 주소 트리 비트맵 검색단계; 상기 분석단계 결과, 발신지 주소 프리픽스가 계속됨을 확인하고 노드 정보와 노드 유형을 획득하여 트리 비트맵을 검색하는 발신지 주소 트리 비트맵 검색단계를 포함하는 것을 특징으로 한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1 은 일반적인 라우터 시스템의 구성예시도이다.
라우터 시스템은 패킷 스위치 모듈(102)을 중심으로 다수의 라인 정합 장치(101)와 라우팅 제어 장치(100)가 상호 연결된 구조를 가진다.
패킷 스위치 모듈(102)은 다수의 라인 정합 장치(101)들간에 패킷 스위칭 기능을 수행하며, 라인 정합 장치(101)는 외부로부터 수신되는 IP 패킷에 대하여 다음 홉으로의 전달 경로를 결정하고 패킷 헤더 변경 기능을 수행하여 패킷 스위치 모듈(102)로 전달하며, 패킷 스위치 모듈(102)로부터 수신된 패킷에 대하여 패킷의 재조립 기능과 패킷 트래픽에 대한 제어 기능을 가진다.
라인 정합 장치(101)는 물리층 정합 모듈(103), 패킷 처리 모듈(104), 트래픽 관리 모듈(105) 등으로 구성된다.
물리층 정합 모듈(103)은 송수신되는 패킷 데이터에 대한 광전 변환, 직병렬변환, 매체접근제어 등 물리층 제어 기능을 수행한다.
패킷 처리 모듈(104)는 수신된 패킷에 대하여 IP 헤더내의 여러 필드들을 참조하여 패킷의 다음 홉 경로를 정하고 해당 플로우 정보를 추출하며 패킷 헤더 변경 기능을 수행한다.
트래픽 관리 모듈(105)은 플로우 정보에 따라 트래픽의 쉐이핑 및 큐잉 제어 기능을 수행한다.
라우팅 제어 장치(100)는 IP 패킷 전달에 필요한 라우팅 프로토콜 처리 및 라우터 시스템의 전반적인 제어 기능을 수행한다.
도 2 는 상기 도 1의 패킷 처리 모듈의 일실시예 구성도이다.
라우터 시스템에서의 라인 정합 장치의 패킷 분류 기능을 수행하기 위한 패킷 처리 모듈은 IP 헤더 분석/추출부(110), 패킷 데이터 제어부(113), 패킷 메모리(114), 패킷 분류 엔진(115), 룰테이블(111), 넥스트 홉(Next Hop) 정보 메모리(112), 그리고 패킷 헤더 편집부(116)를 포함한다.
IP 헤더 분석/추출부(110)는 수신되는 IP 패킷(117)으로부터 패킷 분류 기능을 수행하도록 IP 헤더 영역만을 분리하여 패킷 분류 엔진(115)으로 전달하고 전체 IP 패킷은 패킷 메모리(114)에 저장하도록 패킷 데이터 제어부(113)로 전송하는 기능을 가진다.
패킷 데이터 제어부(113)는 IP 헤더분석/추출부(110)로부터 전달되는 IP 패킷에 대하여 패킷 메모리(114)에 저장하는 제어기능을 수행하고, 패킷 분류 엔진(115)으로부터 패킷 분류 검색이 완료되었다는 신호를 전달받으면 저장된 IP 패킷을 패킷 메모리(114)로부터 읽어 패킷 헤더 편집부(116)로 전달하는 역할을 수행한다.
패킷 메모리(114)는 수신되는 패킷을 패킷 분류 검색 기능을 완료할 때까지 일시적으로 저장하는 역할을 한다.
패킷 분류 엔진(115)은 IP 헤더 분석/추출부(110)로부터 전달받은 목적지 주소, 발신지 주소, 프로토콜, 포트번호 등 여러 필드의 값을 이용하여 가장 매치가 잘되는 룰을 찾아내는 기능을 수행한다. 패킷 분류 엔진(115)은 수신한 목적지 주소, 발신지 주소를 일정한 크기의 비교 단위(Stride)로 나누고 각 비교 단위 마다 목적지 주소와 발신지 주소의 상위비교 단위부터 계층적으로 서로 교차하면서 룰테이블(111)에 구축되어 있는 트리 비트맵과 비교 기능을 수행하여 베스트 매칭(Best Matching) 룰을 찾아낸다.
룰테이블(111)은 패킷 분류를 위한 비트맵 정보를 저장하는 메모리로서 비트맵 정보와 링크시켜놓은 다음 하위노드의 포인터 정보를 저장하고 있다.
넥스트 홉(Next Hop) 정보 메모리(112)는 베스트 매칭(Best Matching) 룰을 찾은 후에 해당 룰의 정보를 저장하는 테이블로서 패킷의 폐기 여부, 플로우 정보, 서비스품질(QoS) 정보 등을 저장한다.
도 3 은 본 발명에 따른 멀티비트 트리 비트맵을 이용한 패킷 분류를 위한 IP 주소 구조를 나타낸 일실시예 설명도이다.
도면에서, "330"은 IP버전 4의 32비트로 구성된 목적지 주소를 나타내고, "340"은 32비트로 구성된 발신지 주소를 나타내고 있다.
"331"과 "341"은 본 발명의 룰 검색시 인덱싱을 위한 영역으로 사용되며 서로 두영역을 접합(Concatenation)시켜 조합하여 인덱스 테이블로 액세스하기 위한 주소로 사용된다.
"331"~"334"는 목적지 주소에서 인덱스를 위한 영역(331)을 제외하고 일정한 비트 크기로 나누어 멀티비트 검색을 위한 기본 단위로 사용된다. 마찬가지로 "341"~"344"는 발신지 주소에서 인덱스를 위한 영역(341)을 제외하고 일정한 비트 크기로 나누어 멀티비트 검색을 위한 기본 단위로 사용된다.
도 4 는 본 발명에 따른 멀티비트 트리 비트맵을 이용한 패킷 분류를 위한 룰 검색 구조를 나타낸 일실시예 설명도이다.
룰 검색을 위한 테이블은 인덱스 테이블(430)과 멀티비트 비트맵 테이블(440, 450)로 구성되어 있다.
먼저, "431"은 목적지 주소와 발신지 주소의 인덱스 용으로 사용되는 영역의 조합된 상태가 인덱스 테이블로 주소로서 인덱싱하는 것을 나타낸다. 그리고, "432"는 Index(i)로 인덱스 테이블로 인덱싱하여 결과로 나오는 해당되는 루트 노드 포인트(root_node_pointer[i])를 나타내고 있으며 "433"는 Index(j)로 인덱스 테이블로 인덱싱하여 결과로 나오는 해당되는 루트 노드 포인트(root_node_pointer[j])를 나타내고 있다.
"441"은 Index[i]가 가리키는 루트 노드를 나타내고 있으며 첫번째 비교 단위인 DA_S1에 대한 멀티비트 비트맵 정보와 다음 자식(Next Child) 노드의 포인터를 나타내고 있다. "442"는 루트 노드로부터 자식(Child) 노드 포인터에 지정된 SA_S1에 대한 DA_S1에 대한 멀티비트 비트맵 정보와 다음 자식(Next Child) 노드의 포인터를 나타내고 있다. "443"은 SA_S1의 자식(Child) 노드가 지정하는 DA_S2에 대한 멀티비트 비트맵 정보와 다음 자식(Next Child) 노드의 포인터를 나타내고 있다. 이와 같이 DA와 SA가 서로 교차하면서 유효한 프리픽스가 존재할때까지 비트맵 정보와 다음 자식(Next child) 노드의 포인터 정보를 저장한다.
도 5 는 본 발명에 따른 멀티비트 트리 비트맵을 이용한 패킷 분류를 위한 룰 검색 과정에 대한 일실시예 흐름도이다.
도 5에 도시된 바와 같이, 멀티비트 트리 비트맵을 이용한 패킷 분류를 위한 룰 검색 과정은, 먼저 패킷 처리 모듈로 IP 패킷이 수신되었는지를 확인한다(501).이는 수신 패킷이 없는 경우에는 패킷 수신을 계속적으로 기다리는 기능을 수행한다.
수신된 패킷을 확인하면 IP 헤더 영역의 목적지 주소(DA)와 발신지 주소(SA)를 추출한다(502).
다음으로, 추출된 주소의 상위 일정한 비트 길이의 인덱싱을 위한 비트 크기 만큼 발신지 주소(SA), 목적지 주소(DA) 영역의 비트를 서로 접합(Concatenation)시켜 조합한 인덱스를 인덱스 테이블의 주소로 하여 인덱싱한 결과의 내용을 획득한다(503).
인덱싱 결과 데이터를 분석하여(504) 해당하는 루트 노드 포인터가 널(null)인 경우에는 해당하는 다음 홉 정보 데이터 포인터를 추출하여(524) 검색 과정을 종료한다. 이와 같은 경우는 두 주소에 해당하는 룰의 프리픽스 길이가 인덱스 길이보다 작은 경우에 해당한다.
인덱싱 데이터 검사 결과(504)가 널(null)이 아닌 경우에는 해당하는 루트 노드 포인터를 페치하여 트리 비트맵 검색 과정을 수행하게 된다. 이때 "505"과정은 목적지 주소(DA) 프리픽스가 존재 플래그, 발신지 주소(SA) 프리픽스 존재 플래그, 비교 단위 시작 번호(Stride Num.), 전체 스트라이드(Stride) 수 등에 대한 초기화 과정을 나타낸다.
검색할 스트라이드(Stride) 최대 회수를 검사하여(506) N보다 큰 경우 넥스트 홉(Next Hop) 정보 포인터를 생성하고 검색을 종료한다. 그렇지 않은 경우 목적지 주소(DA) 프리픽스가 계속되는지 확인하고(507) 목적지 주소(DA) 프리픽스가 없는 경우 발신지 주소(SA) 프리픽스가 계속되는지를 확인하는 과정(515)로 진행한다.
목적지 주소(DA) 프리픽스가 계속되는지 확인하는 과정(507)에서 목적지 주소(DA) 프리픽스가 계속되면 해당 노드가 가지고 있는 노드 유형, 프리픽스에 대한 비트맵 정보와 넥스트 노드(Next Node) 포인터 정보를 획득한다(509). 그리고, 노드 정보 획득 과정(508)에서 획득한 노드 유형을 검사하여(509) 프리픽스에 대한 노드 정보가 아니고 검색의 백트랙킹을 제거하기 위한 마커(Marker) 노드인 경우에 넥스트 노드(Next Node) 포인터를 계산하여(514) 발신지 주소(SA) 프리픽스 플래그 검사 과정(515)을 수행한다.
한편 노드 유형을 검사하는 과정(509)에서 노드 유형이 프리픽스에 대한 노드 정보인 경우에는 트리 비트맵 검색 기능을 수행하고(510) 확장 경로 비트맵의 널(null) 상태를 검사한다(511). 이때, 확장 경로 비트맵이 널(null)인 경우 목적지 주소(DA) 프리픽스 플래그를 '0'로 설정하여(512) 다음 스트라이드(Stride) 검색부터는 목적지 주소(DA)에 대한 프리픽스 검색을 생략하도록 표시하는 역할을 한다. 그리고, 발신지 주소(SA) 프리픽스 플래그 상태를 확인하여(513) '0'이면 룰 검색이 완료되었다고 판단하고 넥스트 홉(Next Hop) 포인터 정보를 생성하고(524) 종료한다. 만약, 발신지 주소(SA) 프리픽스 플래그가 1인 경우 넥스트 홉(Next Hop) 노드 포인터를 계산하여(514) 발신지 주소(SA) 프리픽스 플래그 검사 과정(515)을 수행한다.
발신지 주소(SA) 프리픽스 플래그 검사시(515) 프리픽스 플래그가 '0'인 경우에는 발신지 주소(SA)측 룰 프리픽스 검사를 수행할 필요없이 검사할 스트라이드(Stride) 순번을 증가시켜(516) 목적지 주소(DA)측 룰 프리픽스 검사 기능을 수행하기 위한 검사 과정(506)으로 진행한다. 검사 과정(515)에서 발신지 주소(SA) 프리픽스 플래그가 1인 경우 해당 노드 정보를 획득한다(517). 그리고, 노드 정보로부터 노드 유형을 검사하여(518) 프리픽스가 아닌 마커(Marker)인 경우에는 넥스트 노드(Next Node) 포인터를 계산하는 과정(523)을 수행하도록 하고, 프리픽스인 경우에는 트리 비트맵 검색 기능을 수행한다(519). 트리 비트맵 검색은 내부 프리픽스 비트맵과 확장 경로 비트맵을 비교하며 가장 길게 매치되는 비트를 선택하도록 한다. 이때 확장 경로 비트맵이 널(null)인 경우 발신지 주소(SA) 프리픽스 플래그를 '0'으로 설정하고(521) 목적지 주소(DA) 프리픽스 플래그를 검사한다(522). 이때, 목적지 주소(DA) 프리픽스 플래그가 0이면 넥스트 홉(Next Hop) 정보 포인터를 생성하고(524) 룰 검사 기능을 종료한다. 한편, 목적지 주소(DA) 프리픽스 플래그가 "1"이면 넥스트 노드(Next Node) 포인터를 계산하여(523) 다음 스트라이드(Stride)에 대한 검색 기능을 수행하기 위하여 상기 "516"의 증가 과정을 수행하고 목적지 주소(DA) 프리픽스의 해당 스트라이드(Stride)를 이용하여 룰 검사 기능을 계속적으로 수행한다.
도 6 은 본 발명에 따른 트리 비트맵의 구조를 나타낸 일실시예 설명도이다.
도면에서, "600"은 4계층으로 구성되는 이진 트라이 구조의 한예를 나타내고 있으며, 또한 4비트 스트라이드(Stride)로 구성되는 하나의 멀티비트 노드에 대하여 나타낸다.
"601"은 *, "602"는 1*, "603"은 010*, "604"는 011*, "605"는 101*에 대한 프리픽스를 트라이 구조상에서 나타내고 있다. 여기서, "*"는 돈 케어(don't care)를 말한다.
또한, "606"은 0001*, "607"은 0101*, "608"은 1000*, "609"는 1100*, 그리고 "610"은 1111*에 대한 프리픽스를 나타내고 있다.
"611"은 4비트 스트라이드(Stride)를 사용할 경우 유효 프리픽스가 계속적으로 다음 단에서도 계속된다는 의미를 나타내는 확장 경로 비트맵에 대한 비트 벡터로서 "606" ~ "610"까지의 1의 숫자가 순서대로 벡트 속에 나타나 있다.
"620"은 내부 프리픽스 비트맵을 나타내는 것으로 "600"의 트라이 구조의 노드에서 검은색으로 채워진 노드를 프리픽스가 존재하는 것으로 하여 1로 표시하고 그렇지 않은 경우 프리픽스가 없는 것으로 하여 0으로 표시한 것이다. 이때, 비트 벡터는 "621"에서 상위 비트에서부터 하위로 내려오면서 좌측에서 우측으로 이동하면서 만나는 순서대로 일렬로 표시한 것이 "622"에 나타나 있다.
상기 "622"에서 P1은 "601"의 프리픽스를 나타내고, P2는 "602", P3는 "603", P4는 "604", P5는 "605"에 대한 각각의 프리픽스를 내부 프리픽스 비트맵으로 나타내고 있다.
이와 같은 구조를 가진 비트맵 트리 기반의 LPM(Longest Prefix Match) 검색은 수신 패킷의 IP 주소 중에서 해당하는 스트라이드(Stride)만큼의 비트를 멀티비트 트리 비트맵과 비교하여 일치하는 비트맵 중에서 가장 우측에 위치한 비트가 가장 길게 매치되는 것으로 판단한다. 만약, 임의의 패킷의 IP 주소 중 해당하는 스트라이드(Stride)의 "1010"인 경우 "600"에서 "601", "602", "605"가 모두 매치되지만 가장 우측에 위치하는 P5가 가장 길게 매치되는 프리픽스로 선택된다.
도 7 은 본 발명에 따른 룰 검색을 위한 패킷 분류 장치를 나타낸 일실시예 구성도이다.
도 7에 도시된 바와 같이, 본 발명에 따른 패킷 분류 장치는, 수신된 IP 패킷의 IP 헤더를 분석하여 목적지 주소와 발신지 주소를 추출하는 IP 헤더 분석부(701), 상기 IP 헤더 분석부(701)에서 추출한 32비트로 구성되는 목적지 주소를 저장하는 목적지 주소(DA) 레지스터(702), 상기 IP 헤더 분석부(701)에서 추출한 발신지 주소(SA)를 저장하는 발신지 주소(SA) 레지스터, 유효한 프리픽스의 존재 여부에 따라 목적지 주소(DA), 발신지 주소(SA)를 서로 교차하면서 선택할 수 있는 목적지 주소(DA)/발신지 주소(SA) 선택부(704), 해당하는 스트라이드(Stride)를 추출하는 스트라이드(Stride) 선택부(705), 인덱스 테이블의 인덱스로 사용될 목적지 주소 인덱스(DA_index), 발신지 주소 인덱스(SA_index) 영역을 상기 목적지 주소(DA) 레지스터(702)와 발신지 주소(SA) 레지스터에서 추출하여 서로 조합하는 조합기(Concatenator)(707), 상기 조합기(Concatenator)(707)에서 추출된 인덱싱 주소를 저장하는 인덱스 테이블(708), 상기 스트라이드(Stride) 선택부(705)에서 스트라이드(Stride) 선택시 하나의 스트라이드(Stride)에 대하여 검색이 완료되면 다음 스트라이드(Stride)로 증가시키고 룰 검색이 완료되면 증가된 스트라이드(Stride) 카운터를 0으로 리셋시키는 스트라이드(Stride) 증가부(709), 루트 노드 포인터와 넥스트 노드(Next Node) 포인터를 선택하여 룰테이블 주소 제어부(712)로 전달하는 선택부(717), 룰테이블(710)로 주소를 출력하는 상기 룰테이블 주소 제어부(712), 룰을 구성하고 있는 프리픽스들에 대한 룰 데이터를 저장하는 상기 룰테이블(710), 상기 룰테이블(710) 주소로부터 해당하는 정보 즉, 내부 프리픽스 비트맵과 확장 경로 비트맵, 다음 노드 포인터 정보를 페치하는 룰테이블 데이터 래치부(711), 상기 룰테이블 데이터 래치부(711)에서 출력된 정보로 LPM 검색 기능을 수행하는 LPM 검색부(713), 상기 LPM 검색부(713)에서의 LPM검색을 위하여 주소의 각 스트라이드(Stride)에 해당하는 비교 대상의 비트맵인 비교 대상 내부 프리픽스 비트맵과 비교대상 확장 경로 비트맵을 생성하는 수신주소 비교 비트맵 발생부(706), 상기 LPM 검색부(713)에서 검색 기능을 수행하여 매치되는 비트가 존재하면 해당 비트의 좌측에 위치하는 비트 1의 개수를 계산하여 비트 1의 개수를 다음 노드 포인터의 옵셋으로 사용하는 비트 계산부(714), 하위 노드 포인터와 옵셋을 서로 더하는 덧셈부(716), 그리고 확장 경로 비트맵을 검사하여 목적지 주소(DA) 프리픽스와 발신지 주소(SA) 프리픽스의 유효한 프리픽스가 있는지의 여부를 마킹하는 확장 경로 검사부(715)를 포함한다.
한편, 조합기(Concatenator)(707)는 인덱싱 테이블로 조합된 키를 주소로하여 인덱싱하는 기능을 가진다.
또한, 인덱스 테이블(708)은 인덱싱 주소에 해당하는 루트 노드 포인터를 출력한다.
그리고, 상기 룰테이블(710)은 내부 프리픽스 비트맵과 확장 경로 비트맵 그리고 다음 노드 포인터 주소를 저장하고 있다.
또한, LPM 검색 기능은 상기 수신주소 비교 비트맵 발생부(706)에서 생성된 비교 대상 비트맵과 룰테이블(710)로부터 페치한 내부 프리픽스 비트맵과 확장 경로 비트맵을 비교하여 일치하는 비트가 있는지 비교 검색하고 매치되는 가장 우측의 비트를 LPM 프리픽스로 계산한다.
그리고, 덧셈기(716)는, 액세스할 다음 노드 포인터를 산출해낸다.
그리고, 확장 경로 검사부(715)는 룰의 검색 종료 신호를 생성하도록 하고 하나의 프리픽스에 대한 프리픽스가 더 이상 존재하지 않을 경우 발시지 주소(SA), 목적지 주소(DA)를 서로 교차하면서 검색할 필요없이 나머지 하나의 영역에 대해서만 프리픽스에 대한 룰 검색을 계속할 수 있도록 한다.
상기한 바와 같은, 본 발명에서는 프리픽스의 일정한 상위 비트들에 대해서는 인덱싱 키로 사용하여 룰 검색을 위한 메모리 액세스 회수를 줄이도록 하였다.
한편 룰을 구성하는 멀티 필드에 대한 룰 검색시 하나의 필드에 대한 베스트 매칭(Best Matching)을 구하고 다른 필드에 대한 매칭(Matching) 검색을 하는 것을 배제하고 룰을 구성하는 필드의 멀티비트 비교 단위별로 필드를 상호 교차하면서 계층적으로 비교하는 방법을 사용하므로서 룰 미스매치(mismatch)의 빠른 검출이 가능하도록 하였다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기한 바와 같은 본 발명은, 수기가급 인터넷 망에서 차별화된 서비스 및 서비스품질(QoS) 보장을 위한 서비스를 수행하기 위해서는 목적지 IP 주소뿐만아니라 발신지 주소에 대한 영역을 참조하여 고속의 룰 검색을 요구하고 있는 현 시점에서 룰 검색을 멀티비트 트리 비트맵을 이용하여 하드웨어적으로 수행하므로서 수기가급의 패킷 포워딩 장치에서 고속의 패킷 분류 기능을 수행할 수 있는 효과가 있다.
도 1 은 일반적인 라우터 시스템의 구성예시도.
도 2 는 상기 도 1의 패킷 처리 모듈의 일실시예 구성도.
도 3 은 본 발명에 따른 멀티비트 트리 비트맵을 이용한 패킷 분류를 위한 IP 주소 구조를 나타낸 일실시예 설명도.
도 4 는 본 발명에 따른 멀티비트 트리 비트맵을 이용한 패킷 분류를 위한 룰 검색 구조를 나타낸 일실시예 설명도.
도 5 는 본 발명에 따른 멀티비트 트리 비트맵을 이용한 패킷 분류를 위한 룰 검색 과정에 대한 일실시예 흐름도.
도 6 은 본 발명에 따른 트리 비트맵의 구조를 나타낸 일실시예 설명도.
도 7 은 본 발명에 따른 룰 검색을 위한 패킷 분류 장치를 나타낸 일실시예 구성도.
* 도면의 주요 부분에 대한 부호의 설명
701 : IP 헤더 분석부 702 : 목적지 주소 레지스터
703 : 발신지 주소 레지스터터 704 : SA/DA 선택부부
705 : 스트라이드 선택부 706 : 수신주소 비교 비트맵 발생부
707 : 조합기 708 : 인덱스 테이블
709 : 스트라이드 증가부 710 : 룰테이블
711 : 룰테이블 데이터 래치부 712 : 룰테이블 주소 래치부
713 : LPM 검색부 714 : 비트 1 계산부
715 : 확장경로 검사부

Claims (10)

  1. 멀티비트 트리 비트맵을 이용한 패킷 분류 장치에 있어서,
    수신된 IP(Internet Protocol) 패킷의 IP 헤더를 분석하여 목적지 주소와 발신지 주소를 추출하기 위한 IP 헤더 분석수단;
    상기 IP 헤더 분석수단에서 추출한 소정비트로 구성되는 목적지 주소를 저장하기 위한 목적지 주소(DA) 저장수단;
    상기 IP 헤더 분석수단에서 추출한 발신지 주소(SA)를 저장하기 위한 발신지 주소(SA) 저장수단;
    유효한 프리픽스의 존재 여부에 따라 목적지 주소(DA), 발신지 주소(SA)를 서로 교차하면서 선택하기 위한 목적지 주소(DA)/발신지 주소(SA) 선택수단;
    해당하는 스트라이드(Stride)를 추출하기 위한 스트라이드(Stride) 선택수단;
    인덱스 테이블의 인덱스로 사용될 목적지 주소 인덱스(DA_index), 발신지 주소 인덱스(SA_index) 영역을 상기 목적지 주소(DA) 저장수단과 발신지 주소(SA) 저장수단에서 추출하여 서로 조합하기 위한 조합수단;
    상기 조합수단에서 추출된 인덱싱 주소를 저장하기 위한 인덱스 저장수단;
    상기 스트라이드(Stride) 선택수단에서 스트라이드(Stride) 선택시 하나의 스트라이드(Stride)에 대하여 검색이 완료되면 다음 스트라이드(Stride)로 증가시키고 룰 검색이 완료되면 증가된 스트라이드(Stride) 카운터를 리셋시키기 위한 스트라이드(Stride) 증가수단;
    루트 노드 포인터와 넥스트 노드(Next Node) 포인터를 선택하여 룰테이블 주소 제어수단으로 전달하기 위한 선택수단;
    룰저장수단으로 주소를 출력하기 위한 상기 룰테이블 주소 제어수단;
    룰을 구성하고 있는 프리픽스들에 대한 룰 데이터를 저장하기 위한 상기 룰저장수단;
    상기 룰저장수단 주소로부터 해당하는 정보를 페치하는 룰테이블 데이터 래치수단;
    상기 룰테이블 데이터 래치수단에서 출력된 정보로 LPM(Longest Prefix Match) 검색 기능을 수행하기 위한 LPM 검색수단;
    상기 LPM 검색수단에서의 LPM검색을 위하여 주소의 각 스트라이드(Stride)에 해당하는 비교 대상의 비트맵인 비교 대상 내부 프리픽스 비트맵과 비교대상 확장 경로 비트맵을 생성하기 위한 수신주소 비교 비트맵 발생수단;
    상기 LPM 검색수단에서 검색 기능을 수행하여 매치되는 비트가 존재하면 해당 비트의 좌측에 위치하는 비트 1의 개수를 계산하여 비트 1의 개수를 다음 노드 포인터의 옵셋으로 사용하기 위한 비트 계산수단;
    하위 노드 포인터와 옵셋을 서로 더하기 위한 덧셈수단; 및
    상기 확장 경로 비트맵을 검사하여 목적지 주소(DA) 프리픽스와 발신지 주소(SA) 프리픽스의 유효한 프리픽스가 있는지의 여부를 마킹하기 위한 확장 경로 검사수단
    을 포함하는 패킷 분류 장치.
  2. 제 1 항에 있어서,
    상기 조합수단은,
    상기 인덱스 저장수단으로 조합된 키를 주소로하여 인덱싱하는 기능을 가지는 것을 특징으로 하는 패킷 분류 장치.
  3. 제 1 항에 있어서,
    상기 인덱스 저장수단은,
    인덱싱 주소에 해당하는 루트 노드 포인터를 출력하는 것을 특징으로 하는 패킷 분류 장치.
  4. 제 1 항에 있어서,
    상기 룰저장수단은,
    내부 프리픽스 비트맵과 확장 경로 비트맵 그리고 다음 노드 포인터 주소를 저장하고 있는 것을 특징으로 하는 패킷 분류 장치.
  5. 제 1 항에 있어서,
    상기 LPM 검색수단은,
    상기 수신주소 비교 비트맵 발생수단에서 생성된 비교 대상 비트맵과 상기 룰저장수단으로부터 페치한 내부 프리픽스 비트맵과 확장 경로 비트맵을 비교하여 일치하는 비트가 있는지 비교 검색하고 매치되는 가장 우측의 비트를 LPM 프리픽스로 계산하는 것을 특징으로 하는 패킷 분류 장치.
  6. 제 1 항에 있어서,
    상기 덧셈수단은,
    액세스할 다음 노드 포인터를 산출해내는 것을 특징으로 하는 패킷 분류 장치.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 확장 경로 검사수단은,
    룰의 검색 종료 신호를 생성하고 하나의 프리픽스에 대한 프리픽스가 더 이상 존재하지 않을 경우 발시지 주소(SA), 목적지 주소(DA)를 서로 교차하면서 검색할 필요없이 나머지 하나의 영역에 대해서만 프리픽스에 대한 룰 검색을 계속할 수 있도록 하는 것을 특징으로 하는 패킷 분류 장치.
  8. 멀티비트 트리 비트맵을 이용한 패킷 분류 방법에 있어서,
    IP(Internet Protocol) 패킷이 수신되었음을 확인하고 IP 헤더 영역의 목적지 주소(DA)와 발신지 주소(SA)를 추출하는 주소 추출단계;
    상기 추출된 주소의 상위 일정한 비트 길이의 인덱싱을 위한 비트 크기 만큼 발신지 주소(SA), 목적지 주소(DA) 영역의 비트를 서로 접합(Concatenation)시켜 조합한 인덱스를 인덱스 테이블의 주소로 하여 인덱싱한 결과의 내용을 획득하는 인덱싱 획득단계;
    인덱싱 결과 데이터를 분석하는 분석단계;
    상기 분석단계 결과, 목적지 주소 프리픽스가 계속됨을 확인하고 노드 정보와 노드 유형을 획득하여 트리 비트맵을 검색하는 목적지 주소 트리 비트맵 검색단계;
    상기 분석단계 결과, 발신지 주소 프리픽스가 계속됨을 확인하고 노드 정보와 노드 유형을 획득하여 트리 비트맵을 검색하는 발신지 주소 트리 비트맵 검색단계
    를 포함하는 패킷 분류 방법.
  9. 제 8 항에 있어서,
    상기 분석단계는,
    해당하는 루트 노드 포인터가 널(null)인 경우에는 해당하는 다음 홉 정보 데이터 포인터를 추출하여 검색 과정을 종료하고, 널(null)이 아닌 경우에는 해당하는 루트 노드 포인터를 페치하는 것을 특징으로 하는 패킷 분류 방법.
  10. 제 8 항에 있어서,
    상기 목적지 주소 트리 비트맵 검색단계는,
    목적지 주소(DA) 프리픽스가 존재 플래그, 발신지 주소(SA) 프리픽스 존재 플래그, 비교 단위 시작 번호(Stride Num.), 전체 스트라이드(Stride) 수에 대한 초기화 과정을 포함하는 것을 특징으로 하는 패킷 분류 방법.
KR1020030098376A 2003-12-27 2003-12-27 멀티비트 트리 비트맵을 이용한 패킷 분류 장치 및 그 방법 KR100585935B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030098376A KR100585935B1 (ko) 2003-12-27 2003-12-27 멀티비트 트리 비트맵을 이용한 패킷 분류 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030098376A KR100585935B1 (ko) 2003-12-27 2003-12-27 멀티비트 트리 비트맵을 이용한 패킷 분류 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20050066892A true KR20050066892A (ko) 2005-06-30
KR100585935B1 KR100585935B1 (ko) 2006-06-01

Family

ID=37257897

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030098376A KR100585935B1 (ko) 2003-12-27 2003-12-27 멀티비트 트리 비트맵을 이용한 패킷 분류 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100585935B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100767072B1 (ko) * 2006-02-21 2007-10-24 이화여자대학교 산학협력단 우선순위 기반의 영역분할을 이용한 패킷 분류 방법 및이를 적용한 패킷 중계 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100989847B1 (ko) * 2009-10-07 2010-10-29 동국대학교 산학협력단 센서 노드 및 상기 센서 노드에서의 조건 테이블 분할 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100767072B1 (ko) * 2006-02-21 2007-10-24 이화여자대학교 산학협력단 우선순위 기반의 영역분할을 이용한 패킷 분류 방법 및이를 적용한 패킷 중계 장치

Also Published As

Publication number Publication date
KR100585935B1 (ko) 2006-06-01

Similar Documents

Publication Publication Date Title
CN109921996B (zh) 一种高性能的OpenFlow虚拟流表查找方法
US7240040B2 (en) Method of generating of DFA state machine that groups transitions into classes in order to conserve memory
EP1168723B1 (en) Method and apparatus for longest matching prefix determination in a communication network
EP2040184B1 (en) Database and database processing methods
US20030051043A1 (en) High speed data stream pattern recognition
US20040254909A1 (en) Programming routes and access control lists in comparison tree data structures and their use such as in performing lookup operations
KR20030053038A (ko) 트리-타입의 지식 베이스 검색들의 룩업 성능을 개선하는방법
Qu et al. Scalable many-field packet classification on multi-core processors
CN111984835A (zh) 一种IPv4掩码五元组规则存储压缩方法及装置
CN114401516B (zh) 一种基于虚拟网络流量分析的5g切片网络异常检测方法
CN111950000B (zh) 一种接入访问控制方法及设备
US20050114393A1 (en) Dynamic forwarding method using binary search
KR100585935B1 (ko) 멀티비트 트리 비트맵을 이용한 패킷 분류 장치 및 그 방법
KR100662254B1 (ko) 라우팅 시스템에서의 패킷 분류 장치 및 이를 위한 룰 구축 방법
Li et al. Scalable packet classification using bit vector aggregating and folding
US20070011577A1 (en) Trie-Type Memory Device With a Compression Mechanism
US11929837B2 (en) Rule compilation schemes for fast packet classification
US11916763B2 (en) Traffic monitoring device, and traffic monitoring method
US11968285B2 (en) Efficient memory utilization for cartesian products of rules
JPH10222535A (ja) データ検索回路
Erdem et al. Compact trie forest: Scalable architecture for IP lookup on FPGAs
KR102229554B1 (ko) 해시 키 생성 방법 및 그 장치
US11924102B2 (en) Minimizing deviation from average latency of table lookups
US20020075874A1 (en) Datagram transmission device
Chun-qiang et al. A cost-effective lookup scheme combining hash table with TCAM for OpenFlow

Legal Events

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

Payment date: 20110511

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee