KR100442627B1 - 네트워크 프로세서에서의 패킷 리디랙션 방법 - Google Patents

네트워크 프로세서에서의 패킷 리디랙션 방법 Download PDF

Info

Publication number
KR100442627B1
KR100442627B1 KR10-2002-0027856A KR20020027856A KR100442627B1 KR 100442627 B1 KR100442627 B1 KR 100442627B1 KR 20020027856 A KR20020027856 A KR 20020027856A KR 100442627 B1 KR100442627 B1 KR 100442627B1
Authority
KR
South Korea
Prior art keywords
redirection
packet
port
network processor
destination
Prior art date
Application number
KR10-2002-0027856A
Other languages
English (en)
Other versions
KR20030089933A (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-0027856A priority Critical patent/KR100442627B1/ko
Priority to US10/438,466 priority patent/US20030214960A1/en
Priority to CNB031362958A priority patent/CN100448207C/zh
Publication of KR20030089933A publication Critical patent/KR20030089933A/ko
Application granted granted Critical
Publication of KR100442627B1 publication Critical patent/KR100442627B1/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/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • H04L49/9073Early interruption upon arrival of a fraction of a packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers

Abstract

본 발명은, 사용자의 의도에 맞게 패킷을 처리하도록 기능 프로그래머블한 네트워크 프로세서에서의 패킷 리디랙션 방법에 있어서, 사용자의 요구에 의거해 복수개의 아웃고잉 포트들중 패킷 리디랙션이 필요한 목적지 아웃고잉 포트에 대해 리디랙션 포트와 리디랙션 비율을 정의하고 상기 네트워크 프로세서내의 목적지 아웃고잉 포트에 해당하는 리디랙션 메모리 영역에 저장하는 과정과, 상기 네트워크 프로세서로 패킷이 수신되면 포워딩 테이블을 이용한 포워딩 테이블 룩업을 수행하여 상기 패킷의 목적지 아웃고잉 포트를 알아내어 상기 목적지 아웃고잉 포트의 큐로 패킷을 큐잉시키는 과정과, 상기 목적지 아웃고잉 포트에 해당하는 리디랙션 메모리 영역을 액세스하여 리디랙션 설정여부를 판단하는 과정과, 상기 리디랙션이 설정되어 있으면 상기 리디랙션 메모리영역에 저장된 리디랙션포트 및 리디랙션 비율에 근거하여 상기 패킷을 목적지 아웃고잉 포트와 리디랙션 포트로 전송하는 과정으로 이루어짐을 특징으로 한다.

Description

네트워크 프로세서에서의 패킷 리디랙션 방법{METHOD FOR REDIRECTING PACKET ON NETWORK PROCESSOR}
본 발명은 네트워크 장비에 관한 것으로, 특히 네트워크 프로세서에서의 패킷 리디랙션(packet redirection) 방법에 관한 것이다.
음성과 데이터의 통합, 유무선 인터넷의 통합 등 새로운 형태의 인터넷 서비스의 출현으로 데이터 전송량과 지원하는 서비스의 종류가 날로 증가하고 있다. 이러한 환경 변화로 인하여 인터넷망을 구성하는 미리 개발된 ASIC(application specific integrated circuit) 기반 네트워크 장비(network device)는 실리콘 칩을 기반으로 하기 때문에 새로운 기능이나 성능 향상이 사실상 불가능하고 패킷 처리 용량의 한계를 나타내고 있다. 부연 설명하면, 현재까지의 네트워크 장비(network device)들은 일반적으로 ASIC 스위치 칩(switch chip)을 사용하여 개발되어 왔다. 이러한 경우에는 ASIC 스위치 칩에서 제공하는 기능들만을 사용할 수 있으며, 이 기능들을 사용하고자 할 때에는 ASIC 스위치 칩에서 제공하는 레지스터(register) 값들의 설정을 통하여만 사용할 수 있었다. 따라서, 기존의 기능을 변경하거나 새로운 기능을 구현할 수 있는 여지가 없었던 것이다.
이에 따라 차세대 실리콘 칩인 네트워크 프로세서를 기반으로 한 새로운 네트워크 장비가 출현하게 되었다. 네트워크 프로세서는 입력 사용자 인터페이스(입력 포트)에서 받은 패킷을 출력 사용자 인터페이스(출력 포트)로 보내기 전에 다양한 방법으로 패킷을 처리할 수 있는 프로그래머블 프로세서로서 ASIC 수준의 고성능 패킷 처리 용량을 제공하는 동시에 프로그램을 통해 네트워크 사용자의 다양한 요구를 즉시 반영할 수 있는 장점을 가지는 특화된 패킷 처리 프로세서이다. 즉,라우터, 스위치 등의 네트워크 장비에서 포트간 트래픽 전송 및 지능형 스위칭 기능을 하는 프로그래밍 기능이 가능하여 다양한 멀티미디어 인터넷 트래픽 서비스를 제공해 줄 수 있는 비메모리 반도체로 차세대 네트워크 장비의 핵심 부품이라고 할 수 있다.
상기한 차세대 실리콘 칩인 네트워크 프로세서의 대표적인 일 예로서 최근에 등장한 인텔(Intel)사의 IXP1200과 같은 네트워크 프로세서를 들 수 있다. IXP1200과 같은 네트워크 프로세서는 기존의 개념 대신 네트워크 프로세서내에 인스트럭션 캐쉬 메모리(instruction cache memory)를 제공하여 사용자들로 하여금 프로그램 코딩(program coding)을 할 수 있게 하는 새로운 개념을 도입하였다. 즉, 네트워크 프로세서가 적용되는 어플리케이션(application)의 용도에 맞게 네트워크 프로세서를 구현할 수 있게 된 것이다. 이러한 프로그램은 인텔(Intel) IXP1200의 경우 마이크로 코드(micro-code)라 칭해진다. 상기 마이크로 코드는 IXP1200에서 실행 가능한 어셈블리 언어(assembly language)이다. 상기 마이크로 코드(micro-code)의 수행 방식은, 구현된 코드를 인스트럭션 캐쉬 메모리로 다운로드하면, 네트워크 프로세서 내의 각 프로세서 엔진들은 자신이 수행할 명령(instruction)을 인스트럭션 캐쉬 메모리로부터 전달받고 수행하게 된다. 네트워크 프로세서내의 프로세서 엔진은 수개 예컨대, 6개로 구성되어 있고 사용자의 의도에 맞게 개수가 선택하여 용도에 따라서 각 프로세서 엔진의 마이크로 코드를 용도에 맞게 구현하게 된다.
도 1은 IXP1200 네트워크 프로세서(50) 내에서 패킷 처리를 위한 블록 구성의 일 예로서, 패킷 수신부(2), 패킷 포워딩부(4), 및 패킷 송신부(6)로 이루어져있다. 패킷 수신부(2) 및 패킷 포워딩부(4), 및 패킷 송신부(6)에는 마이크로 코드로 구현된 프로세서 엔진이 포함되어 있는데, 패킷 수신부(2)에는 수신엔진(8)이 포함되어 있으며, 패킷 포워딩부(4)에는 포워딩 엔진(12)이 포함되어 있으며, 패킷 송신부(6)에는 송신엔진(18)이 포함되어 있다. 패킷 수신부(2)는 대응 연결된 입력 포트에 대하여 패킷의 수신 여부를 확인하고 패킷이 수신된 경우에 수신된 패킷을 패킷 저장을 위한 패킷 버퍼 즉 입력 큐(10)로 전달한다. 패킷 포워딩부(4)는 상기 입력 큐(10)에 저장된 패킷의 헤더에서 필요한 정보를 읽고, 상기 패킷의 헤더에서 읽은 정보와 내부에 구비된 포워딩 테이블(14)을 이용한 포워딩 테이블 룩업(forwarding table lookup)과정을 수행하여 목적지 아웃고잉 포트(destination outgoing port)를 알아낸다. 이후에 해당 패킷을 아웃고딩포트 큐들(16)중 목적지 아웃고잉 포트에 해당하는 아웃고잉 포트 큐(queue)에 큐잉(queuing)하게 된다. 패킷 송신부(6)는 각 목적지(destination)에 대응된 아웃고잉 포트 큐(outgoing port queue)에 큐잉된 패킷이 있는지를 주기적으로 체크하고, 큐잉된 패킷이 있으면 큐잉된 패킷을 해당 아웃고잉 포트로 전송한다.
현재까지 IXP1200 네트워크 프로세서에 구현된 마이크로 코드의 패킷 송신부는 상술한 바와 같이 패킷 포워딩부의 포워딩 테이블 룩업을 통하여 얻어진 목적지 아웃고잉 포트로만 패킷을 전송하도록 구현되어 있다. 따라서 특별한 경우가 아니라면, 해당 목적지 아웃고잉 포트로 패킷을 전송하는 것은 지극히 정상적인 것이다. 하지만 비록 목적지 아웃고잉 포트가 정해져있다 할지라도 그 아웃고잉 포트만이 아닌 다른 포트로 패킷을 전송할 필요가 있다면, 이를 위해서는 새로운 방식의기법이 요구된다. 예를 들어, 정해진 목적지 아웃고잉 포트의 상태에 오류가 발생함에 따라 이중화를 위한 또 다른 포트로 패킷을 리디랙션시키고자 하는 경우나, 네트워크 장비를 모니터링하기 위해서 사용되는 포트 스누핑(port snooping)이 필요한 경우, 또는 여러 포트들을 하나의 포트처럼 동작시키고자 하는 포트 트렁킹(port trunking)기능이 바로 그러한 경우이다. 물론 기존의 일반적인 ASIC 기반의 네트워크 장비의 경우에 일부는 이러한 리디랙션(redirection) 기능을 가지고는 있으나, 앞에서 언급한 바와 같이 이러한 ASIC 기반의 네트워크 장비는 기능을 변경하거나 또는 다른 용도로의 활용을 할 수가 없다는 단점을 가지고 있다. 즉 기존의 일반적인 ASIC 기반의 네트워크 장비에서는 미리 설정된 리디랙션 기능만을 가지고 있다. 따라서, 앞서 언급한 예와 같은 다양한 경우를 위하여 아웃고잉 포트를 임의로 변경할 수 있도록 리디랙션 기능의 구현이 필요하게 된 것이다.
따라서 본 발명의 목적은 사용자의 의도에 맞게 패킷을 처리하도록 기능 프로그래머블한 네트워크 장비에서 실제로 패킷이 전송되어야 하는 목적지 아웃고잉 포트뿐만 아니라 상기 목적지 아웃고잉 포트가 아닌 리디랙션 포트로 패킷을 전송하는 패킷 리디랙션 방법을 제공하는데 있다.
본 발명의 다른 목적은 네트워크 장비에서 아웃고잉 포트를 임의로 변경할 수 있도록 패킷 리디랙션 방법을 제공하는데 있다.
도 1은 IXP 1200 네트워크 프로세서내에서 패킷 처리 절차를 보여주는 블록 구성 일 예도,
도 2는 본 발명의 실시 예에 따른 아웃고잉 포트 리디랙션 적용시 네트워크 프로세서내에서 패킷 처리 절차를 보여주는 블록 구성도,
도 3은 본 발명의 실시 예에 따른 아웃고잉 포트 리디랙션 적용시 네트워크 프로세서내에서 패킷 처리 절차를 보여주는 제어 흐름도,
도 4는 본 발명의 실시 예에 따라 패킷 리디랙션이 필요한 목적지 아웃고잉 포트들에 대해 리디랙션 포트와 리디랙션 비율을 정의한 메모리 맵 구성도,
도 5는 네트워크 장비에 구현한 시험결과를 보여주는 테이블도,
도 6은 본 발명의 실시 예에 따른 리디랙션 기법을 사용한 실제 응용 사례를 보여 주는 도면.
상기한 목적에 따라, 본 발명은, 사용자의 의도에 맞게 패킷을 처리하도록 기능 프로그래머블한 네트워크 프로세서에서의 패킷 리디랙션 방법에 있어서, 사용자의 요구에 의거해 복수개의 아웃고잉 포트들중 패킷 리디랙션이 필요한 목적지 아웃고잉 포트에 대해 리디랙션 포트와 리디랙션 비율을 정의하고 상기 네트워크 프로세서내의 목적지 아웃고잉 포트에 해당하는 리디랙션 메모리 영역에 저장하는 과정과, 상기 네트워크 프로세서로 패킷이 수신되면 포워딩 테이블을 이용한 포워딩 테이블 룩업을 수행하여 상기 패킷의 목적지 아웃고잉 포트를 알아내어 상기 목적지 아웃고잉 포트의 큐로 패킷을 큐잉시키는 과정과, 상기 목적지 아웃고잉 포트에 해당하는 리디랙션 메모리 영역을 액세스하여 리디랙션 설정여부를 판단하는 과정과, 상기 리디랙션이 설정되어 있으면 상기 리디랙션 메모리영역에 저장된 리디랙션포트 및 리디랙션 비율에 근거하여 상기 패킷을 목적지 아웃고잉 포트와 리디랙션 포트로 전송하는 과정으로 이루어짐을 특징으로 한다.
본 발명의 실시 예에서 언급하는 "목적지 아웃고잉 포트(destination outgoing port)"는 네트워크 프로세서 내의 패킷 포워딩부(Forwarding)가 포워딩 테이블 룩업을 통하여 찾은 패킷이 전송되어야 하는 포트를 의미한다. 그리고 "리디랙션 포트(redirection port)"는 포워딩 테이블 룩업을 통하여 찾은 목적지 아웃고잉 포트는 아니지만, 다른 목적에 의하여 패킷을 내보낼 필요가 있는 또 다른 포트를 의미한다.
본 발명에서는 실제로 패킷이 전송되어야 하는 목적지 아웃고잉 포트가 아닌리디랙션 포트로 패킷을 전송하는 기능을 "패킷 리디랙션"이라 정의한다.
이하 본 발명의 바람직한 실시 예들을 첨부한 도면을 참조하여 상세히 설명한다. 도면들 중 동일한 구성요소들은 가능한 한 어느 곳에서든지 동일한 부호들로 나타내고 있음에 유의해야 한다. 또한 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
본 발명의 실시 예에 따른 요지적인 동작은 IXP1200 네트워크 프로세서의 처리부에서 포워딩 테이블 룩업을 통하여 찾은 목적지 아웃고잉 포트에 리디랙션이 설정되어 있을 경우, 이 패킷을 리디랙션 포트로 전송할 수 있게 하는 것이다. 이때에, 모든 패킷을 리디랙션 시킬 것인지 아니면 일정한 비율의 패킷만을 리디랙션하고 나머지 패킷에 대해서는 실제 목적지 아웃고잉으로 전송할 것인지는 사전에 정해져 있어야 한다. 이를 위한 정보가 네트워크 프로세서내 메모리에 저장되어 있다. 그리고 네트워크 프로세서에 사용자의 의도에 맞게 다양한 포트로 다양한 비율의 패킷을 리디랙션할 수 있도록 기능 프로그래밍한다는 것이다.
도 2는 본 발명의 실시 예에 따른 아웃고잉 포트 리디랙션 적용시 네트워크 프로세서(50)내에서의 패킷 처리 절차를 보여주는 블록 구성도로서, 도 1의 구성과 유사하다. 도 2에 도시된 바와 같이, IXP1200 네트워크 프로세서(50) 내에서 패킷 처리를 위한 블록 구성은 패킷 수신부(22), 패킷 포워딩부(24), 및 패킷 송신부(26)로 이루어져 있다. 패킷 수신부(22), 패킷 포워딩부(24), 및 패킷 송신부(26)에는 마이크로코드로 구현된 프로세서 엔진이 포함되어 있는데, 패킷 수신부(22)에는 수신엔진(28)이 포함되어 있으며, 패킷 포워딩부(24)에는 포워딩엔진(32)이 포함되어 있으며, 패킷 송신부(26)에는 송신엔진(38)이 포함되어 있다. 도 2에서, 포위딩 테이블(34)은 외부 메모리에 구비된다.
도 3은 본 발명의 실시 예에 따른 아웃고잉 포트 리디랙션 적용시 네트워크 프로세서내(50)에서의 패킷 처리 절차를 보여주는 제어 흐름도이다. 그리고 도 4는 본 발명의 실시 예에 따라 패킷 리디랙션이 필요한 목적지 아웃고잉 포트들에 대해 리디랙션 포트와 리디랙션 비율을 정의한 메모리 맵 구성도이다.
도 2, 도 3 및 도 4를 참조하여 패킷 송신부(26)에 의해서 패킷 리디랙션시키는 동작을 상세히 설명하면 하기와 같다.
1) 본 발명의 실시 예에서는 시스템 초기 설정 또는 사용자 인터페이스를 통하여 패킷 리디랙션이 필요한 목적지 아웃고잉 포트에 대해 리디랙션 포트와 리디랙션 비율을 정의하고, 이를 도 4에 도시된 포맷과 같이 네트워크 프로세서(50)내의 메모리(44)에 저장한다. 일 예로서, IXP1200 네트워크 프로세서내에 구비된 스크래치 패드(scratch pad) 메모리에 상기 리디랙션 포트와 리디랙션 비율을 정의하여 저장한다(도 3의 S100단계).
도 4에 도시된 바와 같이, 목적지 아웃고잉 포트들 각각은, 32비트 단위의 메모리 영역(이하 "리디랙션 메모리 영역"이라 칭함)을 할당받는다. 각 목적지 아웃고잉 포트에 대한 32비트의 리디랙션 메모리 영역 내에서, 15:0비트(bits) 영역은 리디랙션 포트정보를 저장하기 위해 사용되며, 30:16비트(bits) 영역은 리디랙션 비율을 저장하기 위해 사용된다. 그리고, 비트31은 리디랙션의 설정 여부를 나타내는 유효비트(valid bit)로 사용된다. 상기 리디랙션 비율은 정수로 표현되는것이 바람직하며, 1 ∼ 100의 값을 가진다. 여기서, 리디랙션 비율 = 리디랙션 프레임 개수/총 프레임 개수 * 100.
2) 한편 패킷 수신부(22)는 대응 연결된 입력 포트에 대하여 패킷의 수신 여부를 확인하고 패킷이 수신된 경우에 수신된 패킷을 패킷 저장을 위한 패킷 버퍼에 저장하고 그 패킷에 대한 정보를 입력 큐(30)로 전달한다. 패킷 포워딩부(24)는 상기 입력 큐(20)에 저장된 정보를 읽고, 상기 읽은 정보와 외부 메모리에 저장된 포워딩 테이블(34)을 이용한 포워딩 테이블 룩업(forwarding table lookup)과정을 수행하여 목적지 아웃고잉 포트(destination outgoing port)를 알아낸다. 그 후 아웃고잉 포트큐들(16)중 상기 목적지 아웃고잉 포트의 큐로 패킷을 큐잉시킨다(도 3의 S110단계). 도 2의 일 예에서는 포워딩 엔진(32)에 의해서 포워딩 테이블 룩업과정을 통해서 5번 목적지 아웃고잉 포트의 큐로 패킷을 큐잉시키는 것을 보여주고 있다.
3) 네트워크 프로세서(50)내 패킷 송신부(28)에서는 아웃고잉 포트 큐들(36) 각각을 폴링하면서 전송할 패킷이 도착한 목적지 아웃고잉 포트가 있는지의 여부를 알아낸다(도 3의 S120단계).
4) 전송할 패킷이 도착한 목적지 아웃고잉 포트가 있는 경우, 패킷 송신부(26)에서는 도 4와 같이 구성된, 메모리(44)를 액세스하여 상기 목적지 아웃고잉 포트에 해당하는 리디랙션 메모리 영역에 있는 정보를 읽어 온다(도 3의 S130단계). 상기 목적지 아웃고잉 포트에 해당하는 리디랙션 메모리 영역에 있는 정보를 읽어 온 후에는 비트 31의 값이 "1"인지를 판단한다(도 3의 140단계). 만약 비트31의 값이 "1"이면 패킷 리디랙션이 설정되어 있는 것을 의미하며, 비트31의 값이 "0"이면 패킷 리디랙션이 설정되지 않은 것을 의미한다.
5) 도 3의 140단계의 판단에서 만약 비트31의 값이 "0"이면 즉 패킷 리디랙션이 설정되지 않으면, 패킷 송신부(38)는 실제 목적지 아웃고잉 포트로 패킷을 전송한다(도 3의 150단계).
6) 도 3의 140단계의 판단에서 만약 비트 31의 값이 "1"이면 즉 패킷 리디랙션이 설정되어 있으면, 패킷 송신부(38)는 목적지 아웃고잉 포트에 해당하는 리디랙션 메모리 영역의 15:0비트의 리디랙션 포트 정보와 16:30비트의 리디랙션 비율 값을 읽는다(도 3의 S160단계). 그 후 목적지 아웃고잉 포트와 리디랙션 포트에 대하여 상기 메모리(44)에서 읽어온 리디랙션 비율에 맞게 패킷을 목적지 아웃고잉 포트와 리디랙션 포트로 전송한다(도 3의 S170단계).
리디랙션 비율에 맞도록 패킷을 목적지 아웃고잉 포트와 리디랙션 포트로 전송하는 것은 하기의 슈도코드(pseudo code)와 같이 수행될 수 있다.
n = 0; // 패킷 카운트의 초기 설정while (1) {... // 기존 코드 수행부if (N - n >= 0) { // N은 리디랙션 비율send to r_p; // r_p는 리디랙션 포트n = n + 1;}else {send to d_o_p; // d_o_p는 목적지 아웃고잉 포트n = n + 1;}if ( (n - 100) = 0)n = 0;... // 기존 코드 수행부}
상기한 슈도 코드(pseudo code)에서 "send to port" 즉 send to r_p, send to d_o_p를 지정하는 경우는 각 네트워크 프로세서에 따라 달라 질 수 있다. 예컨대, IXP1200 네트워크 프로세서의 경우에는, 각각의 패킷을 전송하기 위해서 IXP1200 내에서 사용되는 제어필드(control field) 레지스터에 tfifo_wr라는 명령(instruction)을 사용하여 아웃고잉 포트를 지정해 주어야 한다. 따라서 IXP1200 네트워크 프로세서의 일 예에서는 패킷 리디랙션을 수행하고자 할 때에는 tfifo_wr 명령(instruction)을 사용하여 제어필드 레지스터의 아웃고잉 포트지정 부분을 리디랙션 포트로 지정해 주면 된다.
본 발명의 실시 예에서 주목할 특징은 네트워크 프로세서에 사용자의 의도에 맞게 다양한 포트로 다양한 비율의 패킷을 리디랙션할 수 있도록 프로그래밍한다는 것이다. 그리고 상기 리디랙션 비율에 맞게 패킷을 전송하는 일 예에서는, 본 발명의 실시 예에 따라 목적지 아웃고잉 포트와 리디랙션 포트들중 상기 리디랙션 포트에 우선적으로 패킷을 전송을 하며 그 이후에 목적지 아웃고잉 포트로 나머지 패킷을 전송하고 있다. 하지만 필요에 따라서 목적지 아웃고잉 포트에 우선적으로 패킷을 전송하며 그 이후에 리디랙션 포트로 나머지 패킷을 전송할 수 있다.
도 5는 패킷 리디랙션 기법을 적용한 경우와 적용하지 않은 경우 각각에 대하여 실제 네트워크 장비에 구현한 후, 실제로 패킷을 전송하여 측정한 시험 결과를 보여 준다. 상기 시험에서는 50:50 비율로 리디랙션을 하였다. 즉 리디랙션 비율은 50%(1/2)이다. 도 5에 도시한 시험결과에서 볼 수 있듯이, 리디랙션을 적용하지 않는 경우는 목적지 아웃고잉 포트로 모든 패킷을 전송하지만, 50:50 비율의 패킷 리디랙션을 적용한 경우는 목적지 아웃고잉 포트로 50%, 리디랙션 포트로 50%로 패킷을 전송한다. 즉, 목적지 아웃고잉 포트와 리디랙션가 각각 50%의 부하(load)를 나누게 되는 것이다.
도 6은 패킷 리디랙션 기법이 실제 네트워크 장비에 적용되는 응용 사례를 나타낸 것이다. 도 6을 참조하면, 네트워크 프로세서(60,70)가 탑재된 네트워크장비(62,72)에는 스위치 모듈(switch module)(80,82)로 향하는 두개의 기기비트 포트(giga bit port)(64,66)(74,76)가 있으며, 상기 두개의 기가 비트 포트(64,66)(74,76)가 이중화 기능을 제공하기 위해서 서로 다른 스위치 모듈 즉 스위치모듈(80)과 스위치모듈(82)에 연결되어 있다. 도 6의 적용 예는 2개의 아웃고잉 포트(64,66)(74,76)가 하나의 아웃고잉 포트처럼 동작하여 둘중 하나의 아웃고잉 포트에 페일(fail)이 발생하더라도, 다른 하나의 아웃고잉 포트(outgoing port)로 패킷을 전송함으로써 네트워크 장비에 이중화 기능을 제공할 수 있게 하는 것이다.
본 발명의 실시 예에서는 네트워크 프로세서를 도 6과 함께 설명한 이중화 기능뿐만 아니라 사용자의 의도에 맞게 패킷 리디랙션되게 프로그래밍할 수 있다. 예컨대, 네트워크 장비를 모니터링하기 위해서 사용되는 포트 스누핑(port snooping)이 필요한 경우에 따른 패킷 리디랙션, 또는 여러 포트들을 하나의 포트처럼 동작시키고자 하는 포트 트렁킹(port trunking)기능에 따른 패킷 리디랙션을 적응적으로 변경할 수 있다. 즉 다양한 경우를 위하여 아웃고잉 포트를 임의로 변경할 수 있도록 리디랙션 기능을 제공한다.
본 발명의 실시 예에 따라 네트워크 프로세서의 송신부에 적용되는 패킷 리디랙션 기법으로 기존의 네트워크 프로세서 기능 확장뿐만 아니라 새로운 기능 구현을 위한 다양한 용도로의 사용도 가능하다.
상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 즉 본 발명은 이러한 네트워크 프로세서 내에서 패킷을 처리하는 마이크로코드(IXP1200에서 실행 가능한 어셈블리 언어형태) 프로그램을 개발하는 분야에 적용이 가능하다. 특히, 본 발명은 상용화된 네트워크 프로세서 중 하나인 인텔사의 IXP1200상에서 구현되었지만, 모든 네트워크 프로세서에서 다양한 변경 및 변경, 활용이 가능함이 이 기술분야의 통상의 지식을 가진 자에게 자명하다. 따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위와 특허청구범위의 균등한 것에 의해 정해 져야 한다.
상술한 바와 같이 본 발명은 다양한 포트로 다양한 비율의 패킷을 리디랙션할 수 있기 때문에 네트워크 장비에 이중화 기능을 제공하거나, 다른 네트워크 포트를 감시하기 위한 포트 스누핑 기능, 또는 여러 포트를 하나의 포트로 동작하게 하는 포트 트렁킹 기능 등을 포함하여 네트워크 프로세서를 이용하는 네트워크 장비에서 리디랙션이 필요한 모든 기능의 구현을 위해 사용할 수 있다.

Claims (3)

  1. 사용자의 의도에 맞게 패킷을 처리하도록 기능 프로그래머블한 네트워크 프로세서에서의 패킷 리디랙션 방법에 있어서,
    사용자의 요구에 의거해 복수개의 아웃고잉 포트들중 패킷 리디랙션이 필요한 목적지 아웃고잉 포트에 대해 리디랙션 포트와 리디랙션 비율을 정의하고 상기 네트워크 프로세서내의 목적지 아웃고잉 포트에 해당하는 리디랙션 메모리 영역에 저장하는 과정과,
    상기 네트워크 프로세서로 패킷이 수신되면 포워딩 테이블을 이용한 포워딩 테이블 룩업을 수행하여 상기 패킷의 목적지 아웃고잉 포트를 알아내어 상기 목적지 아웃고잉 포트의 큐로 패킷을 큐잉시키는 과정과,
    상기 목적지 아웃고잉 포트에 해당하는 리디랙션 메모리 영역을 액세스하여 리디랙션 설정여부를 판단하는 과정과,
    상기 리디랙션이 설정되어 있으면 상기 리디랙션 메모리영역에 저장된 리디랙션포트 및 리디랙션 비율에 근거하여 상기 패킷을 목적지 아웃고잉 포트와 리디랙션 포트로 전송하는 과정으로 이루어짐을 특징으로 하는 네트워크 프로세서에서의 패킷 리디랙션 방법.
  2. 제1항에 있어서, 상기 목적지 아웃고잉 포트에 해당하는 리디랙션 메모리 영역은, 리디랙션의 설정 여부를 나타내는 유효비트 영역과, 리디랙션 포트정보를 저장하기 위해 비트 영역과, 리디랙션 비율을 저장하기 위해 사용되는 비트영역으로 구성함을 특징으로 하는 네트워크 프로세서에서의 패킷 리디랙션 방법.
  3. 제1항에 있어서, 상기 사용자의 요구는 시스템 초기 설정 및 사용자 인터페이스중 적어도 하나를 통하여 이루어짐을 특징으로 하는 네트워크 프로세서에서의 패킷 리디랙션 방법.
KR10-2002-0027856A 2002-05-20 2002-05-20 네트워크 프로세서에서의 패킷 리디랙션 방법 KR100442627B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR10-2002-0027856A KR100442627B1 (ko) 2002-05-20 2002-05-20 네트워크 프로세서에서의 패킷 리디랙션 방법
US10/438,466 US20030214960A1 (en) 2002-05-20 2003-05-16 Packet redirection method for a network processor
CNB031362958A CN100448207C (zh) 2002-05-20 2003-05-20 网络处理器的分组重定向方法和网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0027856A KR100442627B1 (ko) 2002-05-20 2002-05-20 네트워크 프로세서에서의 패킷 리디랙션 방법

Publications (2)

Publication Number Publication Date
KR20030089933A KR20030089933A (ko) 2003-11-28
KR100442627B1 true KR100442627B1 (ko) 2004-08-02

Family

ID=29417444

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0027856A KR100442627B1 (ko) 2002-05-20 2002-05-20 네트워크 프로세서에서의 패킷 리디랙션 방법

Country Status (3)

Country Link
US (1) US20030214960A1 (ko)
KR (1) KR100442627B1 (ko)
CN (1) CN100448207C (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100560424B1 (ko) * 2003-11-05 2006-03-13 한국전자통신연구원 접근이 제한되는 고비도 검증키를 갖는 변형된 디지털서명을 이용한 안전한 프로그래머블 패킷 전송 방법
US20070097976A1 (en) * 2005-05-20 2007-05-03 Wood George D Suspect traffic redirection
CN100446509C (zh) * 2006-11-08 2008-12-24 杭州华三通信技术有限公司 实现重定向报文正确转发的方法及第一部件、第二部件
CN100469054C (zh) * 2006-09-26 2009-03-11 北京大学 用于重定向网络通信连接的方法及装置
WO2008153193A1 (ja) * 2007-06-15 2008-12-18 Nec Corporation アドレス変換装置及びアドレス変換方法
US20100199343A1 (en) * 2009-02-03 2010-08-05 Aruba Networks, Inc. Classification of wired traffic based on vlan

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493347B2 (en) * 1996-12-16 2002-12-10 Juniper Networks, Inc. Memory organization in a switching device
US6167450A (en) * 1997-07-30 2000-12-26 International Business Machines Corporation Data communications management system and protocol replacement method for mobile communication environments
US6735631B1 (en) * 1998-02-10 2004-05-11 Sprint Communications Company, L.P. Method and system for networking redirecting
US6049641A (en) * 1998-02-24 2000-04-11 Gemfire Corporation Connection system for optical redundancy
US6779118B1 (en) * 1998-05-04 2004-08-17 Auriq Systems, Inc. User specific automatic data redirection system
SE515820C3 (sv) * 1998-09-01 2001-12-11 Ericsson Telefon Ab L M Mobiltelefonapparat och metod för vidarekoppling av samtal
US20010030969A1 (en) * 1999-11-30 2001-10-18 Donaghey Robert J. Systems and methods for implementing global virtual circuits in packet-switched networks
US7107334B1 (en) * 2000-03-16 2006-09-12 Cisco Technology, Inc. Methods and apparatus for redirecting network traffic
US6816457B1 (en) * 2000-06-02 2004-11-09 Abdullah Ali Bahattab Predictive routing table cache population
US7058009B1 (en) * 2000-09-15 2006-06-06 Pluris, Inc. Router-level automatic protection switching

Also Published As

Publication number Publication date
CN100448207C (zh) 2008-12-31
CN1461127A (zh) 2003-12-10
KR20030089933A (ko) 2003-11-28
US20030214960A1 (en) 2003-11-20

Similar Documents

Publication Publication Date Title
US9647940B2 (en) Processing packets by a network device
US7263103B2 (en) Receive queue descriptor pool
US6628615B1 (en) Two level virtual channels
US6904507B2 (en) Buffer management architecture and method for an infiniband subnetwork
US7739427B2 (en) Dynamic memory allocation between inbound and outbound buffers in a protocol handler
US7877481B2 (en) Method and apparatus for overflowing data packets to a software-controlled memory when they do not fit into a hardware-controlled memory
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US20070133415A1 (en) Method and apparatus for flow control initialization
ATE278277T1 (de) Hochintegrierte mehrschichtige vermittlungsstellenelementarchitektur
KR20080075308A (ko) Ip 네트워크 시스템에서의 패킷 버퍼 관리 장치 및 방법
WO2009107089A2 (en) Apparatus and method for shared buffering between switch ports
US8532102B2 (en) Simple fairness protocols for daisy chain interconnects
JP2000358066A (ja) 並列スイッチングエンジン中で、パケット順序の完全性を維持する方法および装置
US7174394B1 (en) Multi processor enqueue packet circuit
KR20020060623A (ko) 데이터를 전송하기 위한 신뢰성 있는 프로토콜을 제공하는방법 및 장치
US7209489B1 (en) Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing
US6816889B1 (en) Assignment of dual port memory banks for a CPU and a host channel adapter in an InfiniBand computing node
US20060251071A1 (en) Apparatus and method for IP packet processing using network processor
KR100442627B1 (ko) 네트워크 프로세서에서의 패킷 리디랙션 방법
US20130070779A1 (en) Interleaving Data Packets In A Packet-Based Communication System
JP2002057719A (ja) 通信スイッチにおけるパケット再組立てのための方法および装置
US20030179754A1 (en) Two stage egress scheduler for a network device
US7164658B1 (en) Distribution of data transfer load when transmitting layer-3 datagrams on a layer-2 network
WO2002005494A1 (en) High speed packet processing architecture
US7426572B1 (en) Network router using embedded and external memory based on packet destination

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: 20080604

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee