KR20080079027A - 네트워크 프로세서 패킷 처리 장치 및 그 방법 - Google Patents

네트워크 프로세서 패킷 처리 장치 및 그 방법 Download PDF

Info

Publication number
KR20080079027A
KR20080079027A KR1020070019037A KR20070019037A KR20080079027A KR 20080079027 A KR20080079027 A KR 20080079027A KR 1020070019037 A KR1020070019037 A KR 1020070019037A KR 20070019037 A KR20070019037 A KR 20070019037A KR 20080079027 A KR20080079027 A KR 20080079027A
Authority
KR
South Korea
Prior art keywords
packet
bundle
queue
module
packets
Prior art date
Application number
KR1020070019037A
Other languages
English (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 KR1020070019037A priority Critical patent/KR20080079027A/ko
Publication of KR20080079027A publication Critical patent/KR20080079027A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • 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)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 하는 네트워크 프로세서 패킷 처리 장치 및 그 방법에 관한 것으로, 네트워크 인터페이스 카드로부터 수신된 패킷에 대한 헤더 유효성 검사 후 해당 IP 주소로 룩업(loopkup)을 수행하여 출력포트를 결정하는 IP 프로세싱 모듈과, 상기 IP 프로세싱 모듈로부터 수신한 패킷을 번들(bundle) 별로 할당된 패킷을 큐잉(queueing)하기 위한 큐에 엔큐잉(enqueuing)하고 해당 번들에 대한 스케쥴링을 요청하는 큐 매니저 모듈과, 상기 큐 매니저 모듈로부터 요청받은 번들에 대한 스케쥴링 후 상기 큐 매니저 모듈로 디큐(dequeue)를 요청하는 스케쥴러 모듈과, 멀티링크 프로토콜에서 결정된 분할(fragmentation) 크기에 따라 상기 큐 매니저 모듈로부터 디큐된 해당 패킷을 수신하여 수신된 패킷의 분할 패킷 수를 결정하고 시퀀스 넘버(sequence number)를 하나씩 증가시키면서 각 분할 패킷에 할당하는 MLMC 프로세싱 모듈을 포함한다.

Description

네트워크 프로세서 패킷 처리 장치 및 그 방법{PACKET PROCESSING APPARATUS AND METHOD IN NETWORK PROCESSOR}
도 1은 PPP 멀티링크에서의 패킷 처리 예를 나타내는 도면.
도 2는 PPP 멀티링크에서의 QoS 지원의 일예를 나타내는 도면.
도 3은 본 발명에 따른 네트워크 프로세서 패킷 전송 엔진 처리 블록의 구성을 나타내는 도면.
도 4는 도 3의 큐 매니저/스케쥴러 모듈의 처리 과정을 나타내는 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
100 : 패킷 처리부 110 : 패킷 Rx 모듈
120 : IP 프로세싱 모듈 130 : 큐 매니저 모듈
140 : 스케쥴러 모듈 150 : MLMC 프로세싱 모듈
160 : 패킷 Tx 모듈
본 발명은 네트워크 프로세서 패킷 처리 장치 및 그 방법에 관한 것으로, 특히 네트워크 프로세서에서 PPP multilink와 PPP multiclass에 대하여 QoS를 지원하는 장치 및 그 방법에 관한 것이다.
PPP 멀티링크(Multi-link)(RFC 1990)는 물리적인 라인 여러개를 논리적인 PPP 연결 하나에 넣어서 전체 대역폭으로 이용하는 프로토콜이다.
PPP 멀티링크를 지원하는 장비에서 여러 개의 물리적 라인으로 프레임을 전송하기 위해서 멀티링크 프로토콜을 이용하여 분할(fragmentation)되어야 할 프레임(frame) 크기를 정하게 된다.
즉, 송신하는 장비에서는 하나의 프레임을 협상된 분할(fragmentation) 크기로 연결된 물리적 라인을 통해 라운드 로빈(round-robin) 방식으로 각 분할된 프레임에 시퀀스 넘버(sequence number)를 할당하여 나누어서 보내게 되고, 수신하는 장비에서는 시퀀스 넘버(sequence number)를 이용하여 재조합(reassembly)하고 이 프레임을 다시 포워딩하거나 특정 어플리케이션(application)으로 전달하게 된다.
그러나, PPP 멀티링크에서 패킷이 전송될 때 수신한 패킷을 해당 번들(bundle)에 속한 각 링크(link) 별로 분할(fragmentation)해서 패킷을 전송하기 때문에 분할(fragmentation)이 발생하지 않는 패킷 포워딩 장치하고는 다른 QoS 처리방법이 요구되어진다.
따라서, 본 발명의 목적은 상기와 같은 문제점을 해결하기 위한 것으로서, 멀티링크에 QoS가 설정되어 각 queue 별로 다른 대역폭을 설정할 경우에도 bundle에 대한 QoS를 지원할 수 있도록 한 네트워크 프로세서 패킷 처리 장치 및 그 방법을 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 네트워크 프로세서 패킷 처리 장치의 일 측면에 따르면, 네트워크 인터페이스 카드로부터 수신된 패킷에 대한 헤더 유효성 검사 후 해당 IP 주소로 룩업(loopkup)을 수행하여 출력포트를 결정하는 IP 프로세싱 모듈과, 상기 IP 프로세싱 모듈로부터 수신한 패킷을 번들(bundle) 별로 할당된 패킷을 큐잉(queueing)하기 위한 큐에 엔큐잉(enqueuing)하고 해당 번들에 대한 스케쥴링을 요청하는 큐 매니저 모듈과, 상기 큐 매니저 모듈로부터 요청받은 번들에 대한 스케쥴링 후 상기 큐 매니저 모듈로 디큐(dequeue)를 요청하는 스케쥴러 모듈과, 멀티링크 프로토콜에서 결정된 분할(fragmentation) 크기에 따라 상기 큐 매니저 모듈로부터 디큐된 해당 패킷을 수신하여 수신된 패킷의 분할 패킷 수를 결정하고 시퀀스 넘버(sequence number)를 하나씩 증가시키면서 각 분할 패킷에 할당하는 MLMC 프로세싱 모듈을 포함하며, 상기 큐 매니저 모듈은 상기 MLMC 프로세싱 모듈로부터 분할된 패킷을 수신하여 번들별로 할당된 분할된 패킷을 엔큐잉(enqueueing)하기 위한 큐에 엔큐(enqueue)하고 상기 스케쥴러 모듈로 해당 번들 에 대한 스케쥴링을 요청하며, 상기 스케쥴러 모듈은 상기 큐 매니저 모듈로부터 요청받은 번들에 대한 스케쥴링 후 상기 큐 매니저 모듈로 디큐(dequeue)를 요청함에 따라 상기 큐 매니저 모듈에서는 해당 번들의 로직 큐(logical queue)에서 패킷을 디큐하는 것을 특징으로 한다.
상기 IP 프로세싱 모듈이 결정하는 출력포트는 라우팅 설정에 따라 PPP로 처리해야 하는 인터페이스 또는 PPP 멀티링크로 처리해야 하는 인터페이스이다.
상기 PPP 멀티링크로 처리해야 할 패킷은 IP 헤더의 DSCP classification을 수행하여 QoS Class를 찾아내고, 해당 큐에 패킷을 엔큐잉(enqueuing)하기 위해 상기 큐 매니저 모듈로 패킷을 보낸다.
상기 스케쥴러 모듈은 상기 큐 매니저 모듈로부터 번들에 대한 패킷 큐에 대한 스케쥴링 요청이 오면 해당 번들의 각 큐에 할당된 대역폭 정보를 보고 DRR(Deficit Round Robin)을 수행하여 스케쥴링하고, 각 번들 간에는 RR(Round Robin)로 스케쥴링을 한 후 스케쥴링이 끝난 패킷에 대해서는 상기 큐 매니저 모듈로 해당 번들의 패킷 큐에서 패킷을 디큐하도록 디큐를 요청하는 패킷 스케쥴러와, 상기 큐 매니저 모듈로부터 번들에 대한 분할된 패킷 큐에 대한 스케쥴링 요청이 오면 해당 번들의 각 큐에 대해서 RR(Round Robin)로 스케쥴링하고, 각 번들간에는 RR(Round Robin)로 스케쥴링을 한 후 스케쥴링이 끝난 패킷에 대해서는 상기 큐 매니저 모듈로 해당 번들의 분할된 패킷 큐에서 패킷을 디큐하도록 디큐를 요청하는 분할 패킷 스케쥴러를 포함한다.
상기 분할 패킷 스케쥴러는 상기 번들에 속한 분할된 패킷의 스케쥴링을 요 청 받았을 때 번들 포트 리스트 테이블을 읽어서 해당 번들에 속한 링크들의 정보를 읽고 그 링크들 중에서 마지막으로 선택된 링크 정보를 보고 현재 선택할 링크를 찾아서 분할된 패킷이 해당 링크로 스케쥴링되어 나가도록 하는 포트 실렉터와, 상기 포트 실렉터에서 선택된 링크에 대해서 스케쥴링을 하는 물리적 링크 스케쥴러와, 송신 버퍼 상태에 따라 전달되는 플로우 제어 정보를 이용하여 해당 포트를 스케쥴링하거나 스킵(skip)하는 플로우 제어 핸들러를 포함한다.
한편, 상기한 목적을 달성하기 위한 본 발명에 따른 네트워크 프로세서 패킷 처리 방법의 일 측면에 따르면, 네트워크 인터페이스 카드로부터 수신된 패킷에 대한 헤더 유효성 검사 후 해당 IP 주소로 룩업(loopkup)을 수행하여 출력포트를 결정하는 과정과, 상기 수신한 패킷을 번들(bundle) 별로 할당된 패킷을 큐잉(queueing)하기 위한 큐에 엔큐잉(enqueuing)하고 해당 번들에 대한 스케쥴링을 요청하는 과정과, 상기 요청받은 번들에 대한 스케쥴링 후 디큐(dequeue)를 요청하는 과정과, 멀티링크 프로토콜에서 결정된 분할(fragmentation) 크기에 따라 디큐된 해당 패킷을 수신하여 수신된 패킷의 분할 패킷 수를 결정하고 시퀀스 넘버(sequence number)를 하나씩 증가시키면서 각 분할 패킷에 할당하는 과정과, 상기 분할된 패킷을 수신하여 번들별로 할당된 분할된 패킷을 엔큐잉(enqueueing)하기 위한 큐에 엔큐(enqueue)하고 해당 번들에 대한 스케쥴링을 요청하는 과정과, 상기 요청받은 번들에 대한 스케쥴링 후 디큐(dequeue)를 요청함에 따라 해당 번들의 로직 큐(logical queue)에서 패킷을 디큐하는 과정을 포함하는 것을 특징으로 한다.
상기 요청받은 번들에 대한 스케쥴링 후 디큐(dequeue)를 요청하는 과정에서, 상기 해당 번들의 각 큐에 할당된 대역폭 정보를 보고 DRR(Deficit Round Robin)을 수행하여 스케쥴링하고, 각 번들 간에는 RR(Round Robin)로 스케쥴링을 한 후 스케쥴링이 끝난 패킷에 대해서는 해당 번들의 패킷 큐에서 패킷을 디큐하도록 디큐를 요청한다.
상기 요청받은 번들에 대한 스케쥴링 후 디큐(dequeue)를 요청함에 따라 해당 번들의 로직 큐(logical queue)에서 패킷을 디큐하는 과정에서, 상기 해당 번들의 각 큐에 대해서 RR(Round Robin)로 스케쥴링하고, 각 번들간에는 RR(Round Robin)로 스케쥴링을 한 후 스케쥴링이 끝난 패킷에 대해서는 상기 큐 매니저 모듈로 해당 번들의 분할된 패킷 큐에서 패킷을 디큐하도록 디큐를 요청한다.
이하, 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조번호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
도 1은 PPP 멀티링크에서의 패킷 처리 예를 나타내는 도면이다.
도 1에 도시된 바와 같이, 패킷 분할부(Fragmentor)(10)의 PPP 멀티링크에서 패킷이 전송될 때 코어 네트워크로부터 수신한 패킷을 하나의 bundle(A)로 구성된 각 링크(link) 별로 분할(fragmentation)해서 패킷을 전송할 때 각 분할된 패킷은 시퀀스 넘버(sequence number)를 하나씩 할당받고 각 링크로 라운드 로빈(round robin) 방식으로 패킷을 전송하게 된다.
도 2는 PPP 멀티링크에서의 QoS 지원의 일예를 나타내는 도면이다.
도 2에 도시된 바와 같이, 패킷 분할부(Fragmentor)(20)의 Bunlde(B)에 QoS를 설정하게 되면 분할된 패킷이 bundle의 logical queue에 enqueue가 되고, 실제로 전송될 물리적 링크(physical link)로 스케쥴링(scheduling)되어서 패킷이 전송되어야 한다. 이때, 각 queue별로 대역폭(bandwidth)를 다르게 설정하게 되면 분할된 패킷이 queue에 할당된 대역폭에 따라서 전송되는 순서가 달라지게 된다.
이에 따라, 멀티 링크로 구성된 수신측인 패킷 조합부(Reassembler)(30)에서는 다량의 out-of-sequence가 발생하게 되고 out-of-sequence를 처리하기 위한 reassembly queue size가 메모리 용량에 따라 제한이 있기 때문에 reassemble에 실패하여 다량의 패킷 드롭(drop)이 발생하게 된다.
도 3은 본 발명에 따른 네트워크 프로세서 패킷 전송 엔진 처리 블록의 구성을 나타내는 도면이고, 도 4는 도 3의 큐 매니저/스케쥴러 모듈의 처리 과정을 나타내는 도면이다.
도시된 바와 같이, PPP 멀티링크를 지원하는 네트워크 프로세서(Network processor)에서 멀티링크 분할(multilink fragmentation)을 처리하기 위한 패킷 포워딩 엔진(Packet forwarding engine) 내부의 패킷 processing 블록(100)은 크게 패킷 Rx 모듈(110)과, IP 프로세싱 모듈(120)과, 큐 매니저 모듈(130)과, 스케쥴러 모듈(140)과, MLMC 프로세싱 모듈(150) 및 패킷 Tx 모듈(160)로 구성된다.
패킷 Rx 모듈(110)은 네트워크 인터페이스 카드(Network interface card)로부터 프레임을 수신하여 패킷을 메모리에 저장하고 IP 프로세싱 모듈(120)로 패킷을 전달한다.
IP 프로세싱 모듈(120)은 패킷 Rx 모듈(110)로부터 수신한 IP 패킷에 대해 header validation을 수행하고, IP 주소로 룩업(loopkup)을 수행하여 출력포트를 결정한다.
여기서, 출력포트는 라우팅(routing) 설정에 따라서 PPP로 처리해야 하는 인터페이스가 될 수도 있고, PPP 멀티링크로 처리해야 하는 인터페이스가 될 수 도 있다.
특히, PPP 멀티링크로 처리해야 할 패킷은 IP 헤더의 DSCP classification을 수행하여 QoS Class를 찾아내고, 해당 queue에 패킷을 enqueuing 하기 위해 큐 매니저 모듈(130)로 패킷을 보내게 된다.
큐 매니저 모듈(130)은 IP 프로세싱 모듈(120)로부터 수신한 패킷을 bundle 별로 할당된 패킷을 queueing 하기 위한 queue에 enqueuing을 수행하고, 스케쥴러 모듈(140)에 해당 bundle에 대한 scheduling을 요청한다.
스케쥴러 모듈(140)은 큐 매니저 모듈(130)로부터 요청받은 bundle에 대한 scheduling이 끝나면 큐 매니저 모듈(130)로 dequeue request를 요청하게 된다.
즉, 도 4에서와 같이, 스케쥴러 모듈(140)의 패킷 스케쥴러(141)는 큐 매니저 모듈(130)로부터 bundle에 대한 packet queue에 대한 scheduling 요청이 오면 해당 bundle의 각 queue에 할당된 대역폭 정보를 보고 DRR(Deficit Round Robin)을 수행하여 scheduling하고, 각 bundle 간에는 RR(Round Robin)으로 스케쥴링을 한다.
그리고, 스케쥴링이 끝난 패킷에 대해서는 큐 매니저 모듈(130)로 해당 bundle의 packet queue에서 패킷을 dequeue하도록 dequeue request를 보내게 된다.
큐 매니저 모듈(130)은 스케쥴러 모듈(140)로부터 dequeue request를 수신하면 해당 bundle의 logical queue에서 패킷을 dequeue하여 MLMC 프로세싱 모듈(150)로 패킷을 전송하게 된다.
MLMC 프로세싱 모듈(150)은 멀티링크 프로토콜(Multilink protocol)에서 결정된 fragmentation 크기에 따라서 현재 수신된 패킷의 fragmentation 수를 결정하고, 시퀀스 넘버(sequence number)를 하나씩 증가시키면서 각 fragmentation 된 패킷에 할당하게 된다.
여기서, PPP 멀티링크는 동일 멀티링크 내에 여러개의 multi-class를 가질 수 있고, 각 multi-class별로 시퀀스 넘버(sequence number)는 독립적으로 관리가 된다.
이와 같이 분할된 패킷은 큐 매니저 모듈(130)로 전달되고, 분할된 패킷을 처리하는 bundle logical queue에 enqueue 된다.
큐 매니저 모듈(130)은 MLMC 프로세싱 모듈(150)로부터 수신된 분할된 패킷을 bundle별로 할당된 fragmented packet을 enqueueing 하기 위한 queue에 enqueue하고, 스케쥴러 모듈(140)에 해당 bundle에 대한 scheduling을 요청한다.
스케쥴러 모듈(140)은 큐 매니저 모듈(130)로부터 요청받은 bundle에 대한 scheduling이 끝나면 큐 매니저 모듈(130)로 dequeue request를 요청하고, 큐 매니저 모듈(130)에서는 dequeue request를 수신하면 해당 bundle의 logical queue에서 패킷을 dequeue하여 패킷 Tx 모듈(160)로 패킷을 전송한다.
즉, 도 4에서와 같이, 스케쥴러 모듈(140)의 분할 패킷 스케쥴러(142)는 큐 매니저 모듈(130)로부터 bundle에 대한 fragmented packet queue에 대한 scheduling 요청이 오면 해당 bundle에 속한 link 들의 정보를 보고 각 fragmented packet를 각 link로 round robin 방식으로 내보내게 된다.
즉, 해당 bundle의 각 queue에 대해서 RR(Round Robin)로 scheduling하고 각 bundle간에도 RR(Round Robin)으로 scheduling을 수행하며, Scheduling이 끝난 패킷에 대해서는 큐 매니저 모듈(130)로 해당 bundle의 fragmented packet queue에서 패킷을 dequeue하도록 dequeue request를 보내게 된다.
특히, 분할 패킷 스케쥴러(142)의 포트 실렉터(Port selector)(143)는 Bundle에 속한 fragmented packet의 scheduling을 요청 받았을 때 bundle port list table을 읽어서 해당 bundle에 속한 link들의 정보를 읽고 그 link들 중에서 마지막으로 선택된 link 정보를 보고 현재 선택할 link를 찾아서 fragmented packet이 해당 link로 scheduling 되어서 나가도록 하는 역할을 수행한다.
그리고, 물리적 링크 스케쥴러(Physical link scheduler)(144)는 포트 실렉터(Port selector)(143)에서 선택된 링크(link)에 대해서 scheduling 하는 역할을 수행한다.
그리고, 플로우 제어 핸들러(Flow control handler)(145)는 패킷 Tx 모듈(160)에서 tx buffer 상태에 따라서 scheduler로 flow control 정보를 전달해 주게 되므로 이 정보를 이용하여 해당 port를 scheduling할 지 skip할 지를 결정한다.
패킷 Tx 모듈(160)은 네트워크 인터페이스 카드(Network interface card)로 패킷을 전달하는 기능을 수행하고, 스케쥴러 모듈(140)로 flow control 정보를 전달하는 기능을 수행한다.
이상에서는 본 발명에서 특정의 바람직한 실시예에 대하여 도시하고 또한 설명하였다. 그러나, 본 발명은 상술한 실시예에 한정되지 아니하며, 특허 청구의 범위에서 첨부하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능할 것이다.
본 발명에 따르면, PPP multilink에 대한 자원을 효율적으로 사용할 수 있고 네트워크 프로세서(network processor)에서 PPP multilink에 대한 QoS를 지원할 수 있도록 함으로써 네트워크 장비나 이동통신에 장비에서 네트워크 프로세서의 활용가치를 높일 수 있는 효과가 있다.

Claims (8)

  1. 네트워크 프로세서 패킷 처리 장치에 있어서,
    네트워크 인터페이스 카드로부터 수신된 패킷에 대한 헤더 유효성 검사 후 해당 IP 주소로 룩업(loopkup)을 수행하여 출력포트를 결정하는 IP 프로세싱 모듈과,
    상기 IP 프로세싱 모듈로부터 수신한 패킷을 번들(bundle) 별로 할당된 패킷을 큐잉(queueing)하기 위한 큐에 엔큐잉(enqueuing)하고 해당 번들에 대한 스케쥴링을 요청하는 큐 매니저 모듈과,
    상기 큐 매니저 모듈로부터 요청받은 번들에 대한 스케쥴링 후 상기 큐 매니저 모듈로 디큐(dequeue)를 요청하는 스케쥴러 모듈과,
    멀티링크 프로토콜에서 결정된 분할(fragmentation) 크기에 따라 상기 큐 매니저 모듈로부터 디큐된 해당 패킷을 수신하여 수신된 패킷의 분할 패킷 수를 결정하고 시퀀스 넘버(sequence number)를 하나씩 증가시키면서 각 분할 패킷에 할당하는 MLMC 프로세싱 모듈을 포함하며,
    상기 큐 매니저 모듈은 상기 MLMC 프로세싱 모듈로부터 분할된 패킷을 수신하여 번들별로 할당된 분할된 패킷을 엔큐잉(enqueueing)하기 위한 큐에 엔큐(enqueue)하고 상기 스케쥴러 모듈로 해당 번들에 대한 스케쥴링을 요청하며,
    상기 스케쥴러 모듈은 상기 큐 매니저 모듈로부터 요청받은 번들에 대한 스케쥴링 후 상기 큐 매니저 모듈로 디큐(dequeue)를 요청함에 따라 상기 큐 매니저 모듈에서는 해당 번들의 로직 큐(logical queue)에서 패킷을 디큐하는 것을 특징으로 하는 네트워크 프로세서 패킷 처리 장치.
  2. 제 1항에 있어서,
    상기 IP 프로세싱 모듈이 결정하는 출력포트는 라우팅 설정에 따라 PPP로 처리해야 하는 인터페이스 또는 PPP 멀티링크로 처리해야 하는 인터페이스인 것을 특징으로 하는 네트워크 프로세서 패킷 처리 장치.
  3. 제 2항에 있어서,
    상기 PPP 멀티링크로 처리해야 할 패킷은 IP 헤더의 DSCP classification을 수행하여 QoS Class를 찾아내고, 해당 큐에 패킷을 엔큐잉(enqueuing)하기 위해 상기 큐 매니저 모듈로 패킷을 보내는 것을 특징으로 하는 네트워크 프로세서 패킷 처리 장치.
  4. 제 1항에 있어서,
    상기 스케쥴러 모듈은,
    상기 큐 매니저 모듈로부터 번들에 대한 패킷 큐에 대한 스케쥴링 요청이 오 면 해당 번들의 각 큐에 할당된 대역폭 정보를 보고 DRR(Deficit Round Robin)을 수행하여 스케쥴링하고, 각 번들 간에는 RR(Round Robin)로 스케쥴링을 한 후 스케쥴링이 끝난 패킷에 대해서는 상기 큐 매니저 모듈로 해당 번들의 패킷 큐에서 패킷을 디큐하도록 디큐를 요청하는 패킷 스케쥴러와,
    상기 큐 매니저 모듈로부터 번들에 대한 분할된 패킷 큐에 대한 스케쥴링 요청이 오면 해당 번들의 각 큐에 대해서 RR(Round Robin)로 스케쥴링하고, 각 번들간에는 RR(Round Robin)로 스케쥴링을 한 후 스케쥴링이 끝난 패킷에 대해서는 상기 큐 매니저 모듈로 해당 번들의 분할된 패킷 큐에서 패킷을 디큐하도록 디큐를 요청하는 분할 패킷 스케쥴러를 포함하는 것을 특징으로 하는 네트워크 프로세서 패킷 처리 장치.
  5. 제 4항에 있어서,
    상기 분할 패킷 스케쥴러는,
    상기 번들에 속한 분할된 패킷의 스케쥴링을 요청 받았을 때 번들 포트 리스트 테이블을 읽어서 해당 번들에 속한 링크들의 정보를 읽고 그 링크들 중에서 마지막으로 선택된 링크 정보를 보고 현재 선택할 링크를 찾아서 분할된 패킷이 해당 링크로 스케쥴링되어 나가도록 하는 포트 실렉터와,
    상기 포트 실렉터에서 선택된 링크에 대해서 스케쥴링을 하는 물리적 링크 스케쥴러와,
    송신 버퍼 상태에 따라 전달되는 플로우 제어 정보를 이용하여 해당 포트를 스케쥴링하거나 스킵(skip)하는 플로우 제어 핸들러를 포함하는 것을 특징으로 하는 네트워크 프로세서 패킷 처리 장치.
  6. 네트워크 프로세서 패킷 처리 방법에 있어서,
    네트워크 인터페이스 카드로부터 수신된 패킷에 대한 헤더 유효성 검사 후 해당 IP 주소로 룩업(loopkup)을 수행하여 출력포트를 결정하는 과정과,
    상기 수신한 패킷을 번들(bundle) 별로 할당된 패킷을 큐잉(queueing)하기 위한 큐에 엔큐잉(enqueuing)하고 해당 번들에 대한 스케쥴링을 요청하는 과정과,
    상기 요청받은 번들에 대한 스케쥴링 후 디큐(dequeue)를 요청하는 과정과,
    멀티링크 프로토콜에서 결정된 분할(fragmentation) 크기에 따라 디큐된 해당 패킷을 수신하여 수신된 패킷의 분할 패킷 수를 결정하고 시퀀스 넘버(sequence number)를 하나씩 증가시키면서 각 분할 패킷에 할당하는 과정과,
    상기 분할된 패킷을 수신하여 번들별로 할당된 분할된 패킷을 엔큐잉(enqueueing)하기 위한 큐에 엔큐(enqueue)하고 해당 번들에 대한 스케쥴링을 요청하는 과정과,
    상기 요청받은 번들에 대한 스케쥴링 후 디큐(dequeue)를 요청함에 따라 해당 번들의 로직 큐(logical queue)에서 패킷을 디큐하는 과정을 포함하는 것을 특징으로 하는 네트워크 프로세서 패킷 처리 방법.
  7. 제 6항에 있어서,
    상기 요청받은 번들에 대한 스케쥴링 후 디큐(dequeue)를 요청하는 과정에서,
    상기 해당 번들의 각 큐에 할당된 대역폭 정보를 보고 DRR(Deficit Round Robin)을 수행하여 스케쥴링하고, 각 번들 간에는 RR(Round Robin)로 스케쥴링을 한 후 스케쥴링이 끝난 패킷에 대해서는 해당 번들의 패킷 큐에서 패킷을 디큐하도록 디큐를 요청하는 것을 특징으로 하는 네트워크 프로세서 패킷 처리 방법.
  8. 제 6항에 있어서,
    상기 요청받은 번들에 대한 스케쥴링 후 디큐(dequeue)를 요청함에 따라 해당 번들의 로직 큐(logical queue)에서 패킷을 디큐하는 과정에서,
    상기 해당 번들의 각 큐에 대해서 RR(Round Robin)로 스케쥴링하고, 각 번들간에는 RR(Round Robin)로 스케쥴링을 한 후 스케쥴링이 끝난 패킷에 대해서는 상기 큐 매니저 모듈로 해당 번들의 분할된 패킷 큐에서 패킷을 디큐하도록 디큐를 요청하는 것을 특징으로 하는 네트워크 프로세서 패킷 처리 방법.
KR1020070019037A 2007-02-26 2007-02-26 네트워크 프로세서 패킷 처리 장치 및 그 방법 KR20080079027A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070019037A KR20080079027A (ko) 2007-02-26 2007-02-26 네트워크 프로세서 패킷 처리 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070019037A KR20080079027A (ko) 2007-02-26 2007-02-26 네트워크 프로세서 패킷 처리 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR20080079027A true KR20080079027A (ko) 2008-08-29

Family

ID=39880849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070019037A KR20080079027A (ko) 2007-02-26 2007-02-26 네트워크 프로세서 패킷 처리 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR20080079027A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017052975A1 (en) * 2015-09-25 2017-03-30 Intel Corporation Technologies for receive side message inspection and filtering

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997004562A1 (en) * 1995-07-19 1997-02-06 Fujitsu Network Communications, Inc. Point-to-multipoint arbitration
US20020122424A1 (en) * 2001-03-05 2002-09-05 Kenichi Kawarai Input line interface device and packet communication device
US20020163916A1 (en) * 1996-12-16 2002-11-07 Oskouy Rasoul Mirzazadeh In-line packet processing
US20030063348A1 (en) * 2000-10-27 2003-04-03 Posey Nolan J. System and method for packet classification
KR20040046351A (ko) * 2002-11-27 2004-06-05 (주)텔리언 복합 트래픽 처리기능을 갖는 패킷 포워딩 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997004562A1 (en) * 1995-07-19 1997-02-06 Fujitsu Network Communications, Inc. Point-to-multipoint arbitration
US20020163916A1 (en) * 1996-12-16 2002-11-07 Oskouy Rasoul Mirzazadeh In-line packet processing
US20030063348A1 (en) * 2000-10-27 2003-04-03 Posey Nolan J. System and method for packet classification
US20020122424A1 (en) * 2001-03-05 2002-09-05 Kenichi Kawarai Input line interface device and packet communication device
KR20040046351A (ko) * 2002-11-27 2004-06-05 (주)텔리언 복합 트래픽 처리기능을 갖는 패킷 포워딩 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017052975A1 (en) * 2015-09-25 2017-03-30 Intel Corporation Technologies for receive side message inspection and filtering

Similar Documents

Publication Publication Date Title
US11102129B2 (en) Adjusting rate of outgoing data requests for avoiding incast congestion
US9608926B2 (en) Flexible recirculation bandwidth management
US9225659B2 (en) Method and apparatus for scheduling a heterogeneous communication flow
US6515963B1 (en) Per-flow dynamic buffer management
US7619970B2 (en) Method, device and system of scheduling data transport over a fabric
CN113692725A (zh) 促进网络接口控制器(nic)中的高效负载均衡的系统和方法
EP2862301B1 (en) Multicast to unicast conversion technique
CN109120544B (zh) 一种数据中心网络中基于主机端流量调度的传输控制方法
US8917740B2 (en) Channel service manager
KR100716184B1 (ko) 네트워크 프로세서에서의 큐 관리 방법 및 그 장치
US20060291395A1 (en) Packet transmission control method and apparatus
US20050129020A1 (en) Method and system for providing data communications over a multi-link channel
US8737415B2 (en) Prioritization of data packets
US9264385B2 (en) Messaging with flexible transmit ordering
US8514700B2 (en) MLPPP occupancy based round robin
US20210067458A1 (en) Methods, systems, and devices for classifying layer 4-level data from data queues
JP2020022023A (ja) パケット転送装置、方法、及びプログラム
US20040252711A1 (en) Protocol data unit queues
US7230918B1 (en) System for using special links in multi-link bundles
US6882655B1 (en) Switch and input port thereof
US8184649B2 (en) Method for transmitting data available in the form of data packets
KR20080079027A (ko) 네트워크 프로세서 패킷 처리 장치 및 그 방법
TWI246279B (en) Dynamic adjustment of AAL2 TIMER_CU in voice and data multiplexing over AAL2 connections
KR101266556B1 (ko) 데피싯 라운드 로빈 방식 데이터 패킷 스케줄링의 인스턴트서비스 방법
US20080137666A1 (en) Cut-through information scheduler

Legal Events

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