KR100916835B1 - METHOD OF PROCESSING PACKETS PER-FLOW USING NETWORK PROCESSOR IN DiffServ-over-MPLS - Google Patents

METHOD OF PROCESSING PACKETS PER-FLOW USING NETWORK PROCESSOR IN DiffServ-over-MPLS Download PDF

Info

Publication number
KR100916835B1
KR100916835B1 KR1020070070785A KR20070070785A KR100916835B1 KR 100916835 B1 KR100916835 B1 KR 100916835B1 KR 1020070070785 A KR1020070070785 A KR 1020070070785A KR 20070070785 A KR20070070785 A KR 20070070785A KR 100916835 B1 KR100916835 B1 KR 100916835B1
Authority
KR
South Korea
Prior art keywords
packet
mpls
network
flow
queue
Prior art date
Application number
KR1020070070785A
Other languages
Korean (ko)
Other versions
KR20080021491A (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 영남대학교 산학협력단
Publication of KR20080021491A publication Critical patent/KR20080021491A/en
Application granted granted Critical
Publication of KR100916835B1 publication Critical patent/KR100916835B1/en

Links

Images

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/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/522Dynamic queue service slot or variable bandwidth allocation
    • 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

Abstract

본 발명은 차등화 서비스 엠피엘에스망에서 네트워크 프로세서를 이용한 플로우별 패킷 처리 방법을 개시한다. 본 발명의 방법은 인그레스 노드가 패킷을 처리하는 과정은, 수신된 패킷을 분해하여 맥(MAC) 타입 필드에 따라 엠피엘에스(MPLS) 패킷이면, 심(shim) 헤더안의 레이블에 따라 엠피엘에스(MPLS) 인커밍 레이블 맵핑(MPLS ILM) 마이크로블럭으로 보내고, 그 밖의 패킷은 범위 분류기로 보내는 단계; 상기 범위 분류기가 지정된 정책에 맞는 플로우를 찾으면 해당 패킷은 특정한 플로우 아이디, 엘에스피 아이디, 클래스 아이디로 할당하고, 일치하는 정책을 찾을 수 없다면 해당 패킷은 기본 클래스 아이디로 할당하고 일반적인 IPv4 프로세싱으로 보내는 단계; 메터링 단계; 클래스 아이디와 칼러 아이디를 넣어주는 마크단계; 마크 후 엠피엘에스 에프이시 투 넥스트 홉(MPLS FTN) 마이크로블럭에서 특정한 에프이시(FEC)와 매칭되는 엠피엘에스(MPLS) 처리를 적용하는 단계; 및 스케쥴러가 엠피엘에스(MPLS) 인커밍 레이블 맵 마이크로블럭이나 일반적인 IPv4 프로세싱이나 엠피엘에스(MPLS) 에프이시 투 넥스트 홉(MPLS FTN) 마이크로블럭으로부터 패킷을 수신하여 송신 큐에 스케쥴링하여 상기 스위치망으로 전송하는 단계로 구성된다.

Figure R1020070070785

MPLS, 클래스, 레인지 분류기, 스케줄러, 링크드 리스트, 메모리관리

The present invention discloses a packet processing method for each flow using a network processor in a differential service MPS network. According to the method of the present invention, when the ingress node processes the packet, if the MPS packet is decomposed according to the MAC type field by decomposing the received packet, the MPS packet according to the label in the shim header is used. MPLS) to an incoming label mapping (MPLS ILM) microblock and other packets to a range classifier; If the range classifier finds a flow that meets the specified policy, the packet is assigned to a specific flow ID, LS ID, and class ID. ; Metering step; Mark step of putting a class ID and color ID; Applying an MPLS (MPLS) process that matches a specific FEC in the MPLS FTN microblock after the mark; And the scheduler receives a packet from an MPLS incoming label map microblock or a general IPv4 processing or MPLS FMP to Next Hop (MPLS FTN) microblock, schedules a packet in a transmission queue, and transmits the packet to the switch network. It consists of steps.

Figure R1020070070785

MPLS, Class, Range Sorter, Scheduler, Linked List, Memory Management

Description

차등화 서비스 엠피엘에스망에서 네트워크 프로세서를 이용한 플로우별 패킷 처리 방법{ METHOD OF PROCESSING PACKETS PER-FLOW USING NETWORK PROCESSOR IN DiffServ-over-MPLS }Differential service packet processing method using network processor in MPS network {METHOD OF PROCESSING PACKETS PER-FLOW USING NETWORK PROCESSOR IN DiffServ-over-MPLS}

도 1은 본 발명에 따라 플로우별로 패킷을 처리하는 차등화 서비스 엠피엘에스(DiffServ-over-MPLS) 트래픽 엔지니어링 구조를 도시한 도면,1 is a diagram illustrating a differential service DiffServ-over-MPLS traffic engineering structure for processing a packet for each flow according to the present invention;

도 2는 본 발명에 따른 차등화 서비스 엠피엘에스(DiffServ-over-MPLS)에서 패킷 흐름도,2 is a packet flow diagram in DiffServ-over-MPLS according to the present invention;

도 3은 본 발명에 적용되는 어그리게이티드 비트벡터(Aggregated BitVector) 알고리즘을 도시한 도면,3 is a diagram illustrating an aggregated bitvector algorithm applied to the present invention;

도 4는 본 발명에 따른 큐 상태 천이도,4 is a queue state transition diagram according to the present invention;

도 5는 본 발명에 따라 IP 주소를 검색하기 위한 검색 엔진 설계 개념도,5 is a conceptual diagram of a search engine design for searching an IP address according to the present invention;

도 6은 본 발명에 따른 범위 분류기(classifier)를 위해 설계된 메모리 관리 개념을 도시한 도면,6 illustrates a memory management concept designed for a range classifier in accordance with the present invention;

도 7은 본 발명에 따른 구성 유틸리티와 코어 컴포넌트, 마이크로블럭간의 관계도,7 is a relationship diagram between a configuration utility, a core component, and a microblock according to the present invention;

도 8은 본 발명에 따른 스케줄러의 큐 상태 저장 개념도,8 is a conceptual diagram illustrating a queue state storing of a scheduler according to the present invention;

도 9는 본 발명의 실시예에 사용되는 IXP2400 네트워크 프로세서의 내부 구성도.9 is an internal configuration diagram of an IXP2400 network processor used in an embodiment of the present invention.

*도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

101,203: 분류기 108,209,215: 스케줄러101,203: Sorter 108,209,215: Scheduler

201: 패킷 수신부 202: L2분해/분류기201: Packet receiver 202: L2 decomposition / classifier

204,212: 메터 205: 마커204, 212: M 205: Marker

206: MPLS FTN 207: MPLS ILM206: MPLS FTN 207: MPLS ILM

211: 수신 큐 214: WRED211: Receive Queue 214: WRED

본 발명은 차등화 서비스 엠피엘에스망(DiffServ-over-MPLS)에서 패킷 처리 방법에 관한 것으로, 더욱 상세하게는 차등화 서비스 엠피엘에스망에서 네트워크 프로세서를 이용한 플로우별 패킷 처리 방법에 관한 것이다.The present invention relates to a packet processing method in a DiffServ-over-MPLS network, and more particularly, to a packet processing method for each flow using a network processor in a differential service MPLS network.

일반적으로, 차등화 서비스 엠피엘에스 구조(DiffServ-over-MPLS architecture)는 네트워크 서비스의 범위를 지원하기 위해 간단하고 쉽게 구현할 수 있고, 낮은 오버헤드(overhead)로 동작할 수 있게 설계되었다. 차등화 서비스(DiffServ)는 플로우들을 단지 적은 수의 클래스(class)로 분류하여 네트워크 자원을 할당하고 서비스 품질(QoS)을 제공할 수 있게 한다. 차등화 서비 스(DiffServ)는 차별된 전달(forwarding)을 제공하여 트래픽 유형에 따라 다른 서비스 품질(QoS)을 적용시킨다. 따라서 차등화 서비스 기법에서는 코어 네트워크 장비에 플로우별 정책에 따른 신호전달(signaling) 및 그 정책의 유지를 필요로 하지 않는다. 하지만 트래픽은 서비스 품질(QoS)을 지원하는 장치에서 충분한 자원을 가지지 않은 네트워크 장치를 만나게 되면 서비스 품질(QoS)을 보장받지 못하는 경우가 있다. 즉, 트래픽이 요구하는 충분한 자원이 없으면 네트워크 장치는 QoS를 보장하지 못한다. In general, the DiffServ-over-MPLS architecture is designed to be simple and easy to implement and to operate at low overhead to support a range of network services. Differentiation Service (DiffServ) classifies flows into only a small number of classes to allocate network resources and provide quality of service (QoS). DiffServ provides differentiated forwarding to adapt different quality of service (QoS) to traffic types. Therefore, the differential service scheme does not require the signaling and maintenance of the policy according to the flow policy to the core network equipment. However, when traffic encounters a network device that does not have sufficient resources in a device that supports quality of service, the quality of service may not be guaranteed. That is, without sufficient resources required by the traffic, the network device cannot guarantee QoS.

한편, 엠피엘에스(MPLS) 트래픽 엔지니어링은 거시적인 트래픽 제어를 제공한다. 또한 엠피엘에스(MPLS) 트래픽 엔지니어링은 공정하게 대역폭을 나누고, 각종 세그먼트(segment) 복구 기술을 적용할 수 있다. 차등화 서비스(DiffServ)와 멀티 프로토콜 레이블 스위칭(MPLS) 기법은 개별적으로 제시되고 개발되었으나 두 기법을 통합하여 "차등화 서비스 엠피엘에스(DiffServ-over-MPLS)"라고 부른다. 차등화 서비스 엠피엘에스(DiffServ-over-MPLS)는 서비스 품질(QoS)과 다양한 그래뉴어리티스(granularities)를 제공할 수 있다. 하지만 초고속으로 플로우의 서비스품질(QoS)을 보장하기 위해서는 많은 수의 플로우를 구분할 수 있는 분류기(classifier)와, 로우 지터(low-jitter) 패킷 스케쥴러와 같은 복잡한 패킷 처리를 요구한다. Meanwhile, MPLS traffic engineering provides macroscopic traffic control. In addition, MPLS traffic engineering can fairly divide bandwidth and apply various segment recovery techniques. Differentiation Service (DiffServ) and Multiprotocol Label Switching (MPLS) techniques are presented and developed separately, but they are collectively referred to as "DiffServ-over-MPLS". Differentiation Service DiffServ-over-MPLS can provide quality of service (QoS) and a variety of granularities. However, in order to guarantee the quality of service (QoS) of the flow at high speed, a complex packet processing such as a classifier capable of distinguishing a large number of flows and a low-jitter packet scheduler is required.

다른 한편, 인텔사에서는 IXP2400으로 알려진 네트워크 프로세서와 인텔 IXDP2400으로 알려진 개발툴을 제공하는데, 인텔사의 IXP2400 네트워크 프로세서는 도 9에 도시된 바와 같이, XScale 임베디드 프로세서와, 8개의 마이크로엔진(ME)을 제공한다. 각각의 마이크로엔진(ME)은 초고속으로 패킷 처리 기능을 분류하고, 메터링(metering), 마킹(marking), 큐잉(queuing) 및 패킷 스케쥴링이 가능하다. 또한 IXP2400 네트워크 프로세서는 OC-48과 같은 2.4Gbps의 트래픽을 수용할 수 있다. XScale 코어는 로컬 시스템으로 도착한 패킷을 분할해야 하는 경우와 같이 상대적으로 느린 데이터 경로의 설립과, 컨트롤 패널 모듈의 실행에 사용된다. 인텔 IXDP2400 개발 플랫폼은 OC-48 DSLAM와 같은 풀 듀플렉스(Full duplex) OC-12/1GbE에서 OC-48/4Gbe 속도를 필요로 하는 엑세스(access) 및 에지(edge) 어플리게이션에 맞게 설계되었고, 두 개의 IXP2400 칩셋으로 구성되었다. 실제 CSIX 스위칭 광 인터페이스를 가지는 대신 CSIX 루프백 카드를 갖추었다. 이것은 다른 추가 하드웨어 장비 없이 디버깅을 할 수 있게 하고, 인텔은 IXDP2400 개발 플랫폼과 공통 라이브러리, 소프트웨어 개발도구를 제공한다.Intel, on the other hand, offers a network processor known as the IXP2400 and a development tool known as the Intel IXDP2400. The Intel IXP2400 network processor provides an XScale embedded processor and eight microengines (ME), as shown in FIG. . Each microengine (ME) classifies packet processing functions at very high speeds, and is capable of metering, marking, queuing, and packet scheduling. The IXP2400 network processor can also accommodate 2.4Gbps traffic such as OC-48. XScale cores are used to establish relatively slow data paths and to execute control panel modules, such as when it is necessary to split packets arriving at the local system. The Intel IXDP2400 development platform is designed for access and edge applications that require OC-48 / 4Gbe speeds at full duplex OC-12 / 1GbE such as the OC-48 DSLAM. It consists of two IXP2400 chipsets. Instead of having a real CSIX switching optical interface, it has a CSIX loopback card. This allows debugging without any additional hardware, and Intel provides the IXDP2400 development platform, common libraries, and software development tools.

INTEL IXA SDK 4.1 프레임워크(Framework)는 네트워크 응용 프로그램으로써 기본구조를 가지고 있다. 또한 이전 가능한 코드 구조와 튼튼한 개발 소프트웨어 및 API의 제공으로 개발 시간을 절약할 수 있으며, 외부 응용 프로그램 모듈을 적용하기에도 이상적인 구조를 가지고 있다. 네트워크 프로세서에서 모든 기능적인 모듈은 보통 코어 컴퍼넌트와 마이크로블럭으로 나눌 수 있다. 마이크로블럭은 일반적인 패킷 처리를 제어하고, 코어 컴퍼넌트는 복잡한 패킷 처리와 마이크로블럭에서 각각의 실행 모듈을 제어하는 기능을 담당하고 있다. The INTEL IXA SDK 4.1 framework has the basic structure as a network application. In addition, transferable code structure and robust development software and APIs save development time and are ideal for applying external application modules. In a network processor, all functional modules are usually divided into core components and microblocks. The microblocks control general packet processing, while the core component is responsible for complex packet processing and controlling individual execution modules in the microblocks.

그런데 현재 인텔 IXA_SDK는 단지 매치 분류기(Exact match classifier)만 제공하고, 32개로 제한된 수의 큐와 넌 스케일러블(non-scalable)한 스케줄러를 제 공하고 있다. 즉, 차등화 서비스 엠피엘에스 처리(DiffServ-over-MPLS Processing)에서 가장 복잡한 기능 블록들 중 한 가지는 패킷이 속해 있는 플로우(flow)를 감지해야 하는 영역 분류(range classification)인데, IXA SDK 프레임워크(Framework)는 소프트웨어 기반의 영역 분류기(range classifier)를 포함하고 있지 않다. Currently, the Intel IXA_SDK only provides an Exact match classifier, and provides a limited number of 32 queues and a non-scalable scheduler. In other words, one of the most complex functional blocks in DiffServ-over-MPLS Processing is the range classification that should detect the flow to which the packet belongs. The IXA SDK Framework ) Does not include a software-based range classifier.

그리고 대부분의 스케줄링 알고리즘은 IXP2400 마이크로엔진상에서 구현되는 것으로 매우 복잡하다. 기존의 DRR(Deficit Round Robin)구조는 확장성이 좋지만 큐 크레딧(queue credit)이 패킷 사이즈보다 클 때에 큐(queue)로부터 연속(back-to-back)으로 패킷을 내보낸다. 이 과정에서 높은 지터를 발생한다. 그리고 IXA SDK 프레임워크(Framework)에 포함된 IXP2400 네트워크 프로세서를 위해 구현되어 있는 기존의 DRR 스케줄러는 큐 상태를 저장하기 위해서 비트벡터(Bitvectors)를 사용하는 구조 때문에 많은 수의 큐(queue)를 지원하지 않는다. 이런 비트벡터(bitvectors)는 마이크로엔진의 레지스터에 읽어 들이기 위해 32비트의 길이를 가진다. 이렇기 때문에 32개 이상의 큐를 가지는 시스템에서 DRR 구조를 적용할 수 없고, 결국 그것은 엠피엘에스(MPLS) 트래픽 엔지니어링의 목표에 적합하지 않다.Most scheduling algorithms are very complex, as they are implemented on the IXP2400 microengine. The existing DRR (Deficit Round Robin) structure is well scalable but sends packets from queue to back-to-back when queue credit is larger than packet size. This process generates high jitter. In addition, the existing DRR scheduler implemented for the IXP2400 network processor included in the IXA SDK framework does not support a large number of queues because of the structure of using bitvectors to store queue state. Do not. These bitvectors are 32 bits long to read into the microengine's registers. Because of this, it is not possible to apply the DRR structure in a system with more than 32 queues, which, in turn, does not meet the goals of MPLS traffic engineering.

본 발명은 상기와 같이 문제점들을 해결하기 위해 제안된 것으로, 본 발명의 목적은 차등화 서비스 엠피엘에스(DiffServ-over-MPLS)망에서 네트워크 프로세서를 이용한 플로우별 패킷 처리 방법을 제공하는 것이다. 즉, 본 발명은 초고속의 많은 플로우(flows)를 위한 서비스 품질(Quality-of-Service)를 제공할 수 있는 차등화 서비스 엠피엘에스( DiffServ-over-MPLS) 패킷 처리 시스템을 구현한 것이다. The present invention has been proposed to solve the above problems, and an object of the present invention is to provide a packet processing method for each flow using a network processor in a DiffServ-over-MPLS network. That is, the present invention implements a DiffServ-over-MPLS packet processing system that can provide a quality-of-service for many high-speed flows.

상기와 같은 목적을 달성하기 위하여 본 발명의 방법은, 가입자망으로부터 전송된 패킷을 에지 라우터인 인그레스 노드가 스위치 라우터들로 이루어진 스위치망으로 전달하고, 이그레스 노드가 상기 스위치망으로부터 전달된 패킷을 가입자망으로 전달하는 차등화 서비스 엠피엘에스(DiffServ-over-MPLS)망에 있어서,In order to achieve the above object, in the method of the present invention, an ingress node, which is an edge router, transfers a packet transmitted from a subscriber network to a switch network consisting of switch routers, and an egress node transmits a packet transmitted from the switch network. In the DiffServ-over-MPLS network that delivers the data to the subscriber network,

상기 인그레스 노드가 패킷을 처리하는 과정은,The process of processing the packet by the ingress node,

패킷을 수신하는 단계; 상기 수신된 패킷을 분해하여 맥(MAC) 타입 필드에 따라 엠피엘에스(MPLS) 패킷이면, 심(shim) 헤더안의 레이블에 따라 엠피엘에스(MPLS) 인커밍 레이블 맵핑(MPLS ILM) 마이크로블럭으로 보내고, 그 밖의 패킷은 범위 분류기로 보내는 단계; 상기 범위 분류기가 지정된 정책에 맞는 플로우(flow)를 찾으면 해당 패킷은 특정한 플로우 아이디(flow ID), 엘에스피 아이디(LSP ID), 클래스 아이디(class ID)로 할당하고, 일치하는 정책을 찾을 수 없다면 해당 패킷은 기본 클래스 아이디(class ID)로 할당하고 일반적인 IPv4 프로세싱으로 보내는 단계; 플로우별로 패킷의 칼러(color)값을 찾아내기 위한 메터링(metering) 단계; 상기 메터링 후, 해당 패킷의 아이피(IP) 헤더의 DSCP 필드 안에 클래스 아이디(class ID)와 칼러 아이디(color ID)를 넣어주는 마크단계; 상기 마크 후 엠피엘에스 에프이시 투 넥스트 홉(MPLS FEC to Nexthop: FTN) 마이크로블럭에서 특정한 에프이시(FEC)와 매칭되는 엠피엘에스(MPLS) 처리를 적용하는 단계; 및 스케쥴러가 상기 엠피엘에스(MPLS) 인커밍 레이블 맵핑(MPLS ILM) 마이크로블럭이나 상기 일반적인 IPv4 프로세싱이나 상기 엠피엘에스(MPLS) 에프이시 투 넥스트 홉(MPLS FTN) 마이크로블럭으로부터 패킷을 수신하여 송신 큐에 스케쥴링하여 상기 스위치망으로 전송하는 단계를 구비한 것을 특징으로 한다.Receiving a packet; If the received packet is decomposed and is an MPLS packet according to a MAC type field, the received packet is sent to an MPLS incoming label mapping (MPLS ILM) microblock according to a label in a shim header. Sending other packets to the range classifier; If the range classifier finds a flow that meets the specified policy, the packet is assigned with a specific flow ID, LSP ID, and class ID. Assigning the packet with a base class ID and sending the packet to general IPv4 processing; A metering step of finding a color value of the packet for each flow; A mark step of putting a class ID and a color ID into the DSCP field of the IP header of the packet after the metering; Applying an MPLS process that matches a specific FEC in the MPLS FEC to Nexthop (FTN) microblocks after the mark; And a scheduler receives a packet from the MPLS incoming label mapping (MPLS ILM) microblock or the general IPv4 processing or the MPLS F Two To Next Hop (MPLS FTN) microblock and transmits the packet to a transmission queue. Scheduling and transmitting to the switch network.

또한 상기 이그레스 노드가 패킷을 처리하는 과정은 공통스위치인터페이스(CSIX) 수신 큐가 스위칭 패브릭으로부터 패킷을 받으면, 해당 패킷을 메터링(metering)하여 엘에스피(LSP)에 따라 재구성하는 단계; 가중치 랜덤 얼리 디텍션(Weighted Random Early Detection: WRED) 마이크로블럭이 칼러(color) 값에 따라 다른 프로필을 가지고 처리하는 단계; 및 스케줄러가 대역폭과 다른 엘에스피 아이디(LSP ID)와 클래스 ID의 우선권에 따라 각 순환에 큐에서 빼내는 요청을 발생하고, 큐 매니저(Queue Manager)가 큐에서 디큐(dequeue) 메시지를 전달받으면, 큐 매니저(queue manager)는 미디어 인터페이스로 패킷을 보내는 단계로 구성된다.The processing of the packet by the egress node may include: reconstructing the packet according to LSP by metering the packet when the common switch interface (CSIX) receiving queue receives the packet from the switching fabric; Processing the weighted random early detection (WRED) microblock with a different profile according to the color value; And the scheduler issues a dequeue request in each cycle according to the bandwidth and priority of the LSP ID and class ID, and when the queue manager receives a dequeue message from the queue, The queue manager consists of sending packets to the media interface.

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

먼저, 본 발명에서 차등화 서비스 엠피엘에스(DiffServ-over-MPLS) 구현은 크게 범위 분류기(range classifier)와 스케줄러로 구성된다. IXA SDK 프레임워크(Framework)에서 IXP2400 프로세서를 위해 구현된 스케줄러 구현과 비교하여 본 발명에서의 스케줄러 구현은 큐 상태 정보 저장 공간을 위해 다른 디자인을 사용한다. 즉, 큐 상태 정보 저장을 위해 링크드 리스트를 사용함으로써 시스템의 제한된 메모리 용량으로 인해 비트벡터(bitvectors)를 사용하여 마이크로엔진 레지스터의 사이즈와 같은 수의 큐들을 지원할 수 있다.First, the implementation of the DiffServ-over-MPLS in the present invention is largely composed of a range classifier and a scheduler. Compared to the scheduler implementation implemented for the IXP2400 processor in the IXA SDK framework, the scheduler implementation in the present invention uses a different design for the queue state information storage space. In other words, by using a linked list for storing queue state information, the limited memory capacity of the system allows the use of bitvectors to support the same number of queues as the size of a microengine register.

도 1은 본 발명에 따라 플로우별로 패킷을 처리하는 차등화 서비스 엠피엘에스(DiffServ-over-MPLS) 트래픽 엔지니어링 구조를 도시한 도면이고, 도 2는 본 발명에 따른 차등화 서비스 엠피엘에스(DiffServ-over-MPLS)에서 패킷 흐름도이다.1 is a diagram illustrating a DiffServ-over-MPLS traffic engineering structure for processing a packet for each flow according to the present invention, and FIG. 2 is a DiffServ-over-MPLS service according to the present invention. Is a packet flow diagram.

본 발명에 따른 차등화 서비스 엠피엘에스(DiffServ-over-MPLS) 트래픽 엔지니어링 구조는 도 1에 도시된 바와 같이, 분류기(101)로 들어오는 모든 IP 패킷을 각각의 플로우(flow)로 구분한다. 각각의 플로우(flow)는 상응하는 버스트 사이즈(burst sizes)를 나타내는 커미티드 인포메이션 레이트(Commited Information Rate: CIR)와 피크 인포메이션 레이트(Peak Information Rate: PIR)가 정의된 트래픽 매개변수를 가지고 있다. 플로우별 정책(per-flow policing)(102)을 실행한 뒤에 각각의 플로우(flow)는 몇몇 LSP(Label Switched Path)에 맵핑된다(104).The DiffServ-over-MPLS traffic engineering architecture according to the present invention divides all IP packets entering the classifier 101 into respective flows, as shown in FIG. Each flow has a traffic parameter in which a committed Information Rate (CIR) and a Peak Information Rate (PIR) are defined that represent the corresponding burst sizes. After executing per-flow policing 102, each flow is mapped 104 to several Label Switched Paths (LSPs).

엠피엘에스(MPLS) 레이블 스택 오퍼레이션(MPLS label stack operation: 105)은 들어온 엠피엘에스(MPLS) 패킷을 처리하고, 그 결과로써 하나의 출력되는 엘에스피(LSP) 집합이 생성된다. 각각의 엘에스피(LSP)는 그것에 해당하는 대역폭을 가지고 있고, 대역폭은 들어오는 모든 플로우(flow)나 엘에스피(LSP)가 가지고 있는 것보다 크거나 같다. 만일, 트래픽의 양이 초과하게 되면, 현재 사용하지 않는 대역폭이 그 트래픽을 보내는데 사용되게 되거나 높은 순위의 트래픽이 먼저 점유하게 된다. The MPLS label stack operation 105 processes incoming MPLS packets, and as a result, one output LSP set is generated. Each LSP has a bandwidth corresponding to it, and the bandwidth is greater than or equal to that of all incoming flows or LSPs. If the amount of traffic is exceeded, the bandwidth that is not currently being used is used to send the traffic, or the higher rank traffic is occupied first.

정책이 지정되지 않는 플로우(flow)의 경우 그 패킷은 일반적인 IP 프로세싱(103)을 지나가고, 마지막 레이블을 가진 엠피엘에스(MPLS) 패킷은 분류기(classifier)(101)에 의해 일반적인 IP와 같이 처리된다. 코어 라우터(LSR)의 경우에는 트래픽 분류 및 플로우 메터링(flow metering)이 필요하지 않기 때문에 패킷 처리는 더 간단하다. 매우 섬세한 서비스 품질(QoS)이 요구되는 플로우(flow)의 경우, 비록 같은 클래스 타입의 다른 플로우(flow)가 같은 엘에스피(LSP)를 공유하더라도 전용의 엘에시피(LSP)를 사용할 수 있다.In the case of a flow where no policy is specified, the packet passes through the general IP processing 103, and the MPLS packet with the last label is processed like a normal IP by the classifier 101. In the case of the core router (LSR), packet processing is simpler because no traffic classification and flow metering is required. For flows that require very fine quality of service (QoS), a dedicated LSP can be used even if other flows of the same class type share the same LSP.

분류기(classifier)(101)는 어그리게이티드 비트벡터(Aggregated BitVector) 알고리즘를 사용하는데, 이것은 도 3에 도시된 바와 같이, 서로 다른 필드(301)에서 각각의 나눠진 검색을 실행하고 그 결과(303)를 합치게 된다. 비트벡터(bitvectors: 302)는 메모리를 읽는 횟수를 줄여주고, 고속 범위 분류(range classification)를 가능하게 한다. Classifier 101 uses an Aggregated BitVector algorithm, which executes each divided search in different fields 301 and returns the result 303, as shown in FIG. Are combined. Bitvectors 302 reduce the number of memory reads and allow for fast range classification.

스케줄러(108)는 복잡성을 가지고, 또한 IXA SDK 프레임워크(Framework)가 제공하고 있는 기존의 것과 비교하여 더 많은 수의 큐를 제공할 수 있도록 DRR(Deficit Round Robin) 알고리즘을 수정하여 사용한다. 본 발명에서 개발한 스케줄러 알고리즘에서 큐는 도 4에 도시된 바와 같이, 4가지 상태를 가지게 된다. 도 4를 참조하면, 본 발명에서 큐는 액티브(Active) 상태(401)와, 스케줄가능/엠프티(Schedulable/Empty)(402), 서스펜디드/백로그드(Suspended/Backlogged)(403), 서스펜디드/엠프티 (Suspended/Empty)(404) 등 4개의 상태를 갖는다. 액티브(401) 상태에서 스케쥴링에 의해 스케줄가능/엠프티(Schedulable/Empty)(402)로 천이하고, 스케줄가능/엠프티(Schedulable/Empty)(402)에서 디큐에 의해 서스펜디드/엠프티 (Suspended/Empty)(404)로 천이한다. 서스펜디드/엠프티 (Suspended/Empty)(404)에서 인큐에 의해 서스펜디드/백로그드(Suspended/Backlogged)(403)로 천이하고, 서스펜디드/백로그드(Suspended/Backlogged)(403)에서 새로운 라운드에 의해 액티브(401) 상태로 천이한다. 액티브(Active) 상태(401)에서 디큐/스케쥴링에 의해 서스펜디드/백로그드(Suspended/Backlogged)(403)로 천이하고, 스케줄가능/엠프티(Schedulable/Empty)(402)에서 인큐에 의해 액티브(Active) 상태(401)로 천이한다.The scheduler 108 has a complexity and uses a modified DRR (Deficit Round Robin) algorithm to provide a larger number of queues compared to the existing one provided by the IXA SDK framework. In the scheduler algorithm developed in the present invention, the queue has four states, as shown in FIG. Referring to FIG. 4, in the present invention, the queue has an active state 401, a scheduleable / empty 402, a suspended / backlogged 403, and a suspended state. It has four states, such as Suspended / Empty 404. Transition to Scheduled / Empty 402 by Scheduling in Active 401 State and Suspended / Empty by Decay in Scheduled / Empty 402 Empty) (404). Transition from Suspended / Empty 404 to Suspended / Backlogged 403 by enqueue, and in a new round in Suspended / Backlogged 403 By the transition to the active (401) state. Transition to Suspended / Backlogged 403 by dequeue / scheduling in Active state 401 and active by enqueue in Scheduleable / Empty 402. Active state 401

이어서, 본 발명의 동작을 전체 흐름과 범위 분류기, 스케줄러로 구분하여 자세히 설명하면 다음과 같다.Next, the operation of the present invention will be described in detail by dividing the overall flow, the range classifier, and the scheduler.

1. 전체 흐름1. The whole flow

도 2는 본 발명에 따라 차등화 서비스 엠피엘에스(DiffServ-over-MPLS)망의 인그레스(ingress) 노드와 이그레스(egress) 노드에서 패킷을 처리할 때 내부 패킷 흐름을 보여준 도면이다. 인그레스 노드는 패킷 수신부(201)와 L2 분해/분류기(202), 범위 분류기(203), 메터(204), 마커(205), MPLS FTN(206), MPLS ILM(207), IPv4(208), 큐메니저/패브릭 스케줄러(209), 공통스위치인터페이스 송신 큐(210)로 구성되어 엠피엘에스(MPLS)망의 입구에서 가입자망으로부터 전달된 패킷을 처리하여 LSR 라우터들로 이루어진 엠피엘에스(MPLS) 스위치망으로 전송하고, 이그레스 노드는 공통스위치인터페이스(CSIX) 수신 큐(211), 미터(212), ARP(213), WRED(214), 큐매니저/스케줄러(215), 송신큐(216)로 구성되어 엠피엘에스(MPLS) 스위칭망의 출구에서 스위치망으로부터 전송되어 온 패킷을 처리하여 가입자망으로 전송한다. 본 발명의 실시예에서 인그레스 노드는 입구 레이블 에지 라우터(LER)에 IXP2400 네트워크 프로세서로 구현되고, 이그레스 노드는 출구 레이블 에지 라우터(LER)에서 IXP2400 네트워크 프로세서로 구현된다. FIG. 2 is a diagram illustrating an internal packet flow when processing packets at an ingress node and an egress node of a DiffServ-over-MPLS network according to the present invention. Ingress nodes include packet receiver 201 and L2 decomposition / classifier 202, range classifier 203, meter 204, marker 205, MPLS FTN 206, MPLS ILM 207, and IPv4 208. , MPLS switch composed of LSR routers, consisting of queue manager / fabric scheduler 209 and common switch interface transmission queue 210 to process packets transmitted from subscriber network at the entrance of MPLS network. The egress node to the common switch interface (CSIX) receive queue 211, meter 212, ARP 213, WRED 214, queue manager / scheduler 215, and transmit queue 216. It is configured to process the packets transmitted from the switch network at the exit of the MPLS switching network to transmit to the subscriber network. In an embodiment of the present invention, the ingress node is implemented as an IXP2400 network processor in the inlet label edge router (LER), and the egress node is implemented as an IXP2400 network processor in the exit label edge router (LER).

도 2를 참조하면, 인그레스 노드는 패킷을 미디어 수신 인터페이스(201)로부터 받으면, L2 분해/분류기(202)에서 MAC 타입 필드(MAC type field)에 따라 분류되고, L2 헤더는 제거된다. Referring to FIG. 2, when the ingress node receives a packet from the media reception interface 201, the ingress node is classified according to the MAC type field in the L2 decomposition / classifier 202, and the L2 header is removed.

만약, 수신된 패킷이 엠피엘에스(MPLS) 패킷이라면, 엠피엘에스(MPLS) 패킷 처리를 수행하는 엠피엘에스(MPLS) 인커밍 레이블 맵핑(Incoming Label Mapping)(MPLS ILM) 마이크로블럭(207)으로 심(shim) 헤더안의 레이블(lable)에 따라 보내진다. 그 밖의 패킷은 패킷의 포워딩 이퀴벌런스 클래스(Forwarding Equivalence Class: FEC)를 찾아내는 범위 분류기(Range classifier)(203)로 보내진다. 마지막 레이블(Lable)로 판별되면, 그 패킷은 보통 IP 패킷처럼 분류된다.If the received packet is an MPLS packet, the Sim (MPLS) Incoming Label Mapping (MPLS ILM) microblock 207 performs MPLS packet processing. shim) Sent according to a label in the header. The other packet is sent to a range classifier 203 which finds the forwarding equivalence class (FEC) of the packet. If it is determined by the last label, the packet is classified as a normal IP packet.

범위 분류기(203)가 지정된 정책에 맞는 플로우(flow)를 찾으면 그 패킷은 특정한 플로우 아이디(flow ID), 엘에스피 아이디(LSP ID), 클래스 아이디(class ID)로 할당된다. 플로우 아이디(Flow ID)는 플로우별 메터링(per-flow metering) 기반의 패킷의 칼러(color)값을 찾아내기 위한 메터링(metering) 마이크로블럭(204)에서 사용한다. If the range classifier 203 finds a flow that meets the specified policy, the packet is assigned with a specific flow ID, LSP ID, and class ID. Flow ID is used in the metering microblock 204 to find the color value of packets based on per-flow metering.

마커(Marker)(205)는 IP 헤더의 DSCP 필드 안에 클래스 아이디(class ID)와 칼러 아이디(color ID)를 넣어준다. 그 다음, MPLS FEC to Nexthop (FTN) 마이크로블럭(206)에 특정한 포워딩 이퀴벌런스 클래스(FEC)와 매칭되는 엠피엘에스(MPLS) 작동을 적용한다. The marker 205 puts a class ID and a color ID in the DSCP field of the IP header. The MPLS FEC to Nexthop (FTN) microblock 206 then applies MPLS operation matching the specific forwarding equalization class (FEC).

만약, 범위 분류기(203)가 일치하는 규칙을 찾을 수 없다면, 그 패킷은 기본 클래스 아이디(class ID)로 할당되고 일반적인 IPv4 프로세싱(208)을 통해 보내진다. 패브릭 송신(Fabric transmitter) 마이크로블럭(210)은 패킷을 CSIX(Common Switch Interface) 인터페이스로 하나 혹은 여러 개의 셀(cell) 형식으로 전송한다. 각각의 패킷은 여러 개의 C-프레임으로 나눠지고, 스위칭 패브릭으로 전송되어진다. 그 패킷의 첫 번째 C-프레임은 엘에스피 아이디(LSP ID), 클래스 아이디(class ID), 다음 홉의 정보 등의 추가적인 정보를 운반한다. If the range classifier 203 cannot find a matching rule, the packet is assigned a base class ID and sent through normal IPv4 processing 208. The fabric transmitter microblock 210 transmits a packet in a single or multiple cell format to a CSIX interface. Each packet is divided into several C-frames and sent to the switching fabric. The first C-frame of the packet carries additional information such as LSP ID, class ID and next hop information.

한편, 이그레스 노드에서는 공통스위치인터페이스(CSIX) 수신큐(211)가 스위칭 패브릭으로부터 패킷을 받고, 그 패킷은 메터링(metering)(212)을 기반으로 한 엘에스피(LSP)에 따라 재구성할 수 있다. 메터(meter)(212)와 나란히 있는 패킷을 처리하는 가중치 랜덤 얼리 디텍션(Weighted Random Early Detection: WRED) 마이크로블럭(213)은 칼러(color) 값에 따라 다른 프로필을 가지고 있다. 한번 WRED가 적용되면 그 패킷은 특정한 큐로 넣어주는 일을 담당하는 큐 매니저(Queue Manager) 마이크로블럭(215)으로 출력 포트 번호에 엘에스피 아이디(LSP ID), 클래스 아이디(class ID)에 따라 보내진다. 스케줄러(215)는 대역폭과 다른 엘에스피 아이디(LSP ID)와 클래스 ID의 우선권에 따라 각 순환에 큐에서 빼내는 요청을 발생한다. 큐 매니저(Queue Manager)(215)가 큐에서 디큐(dequeue) 메시지를 전달받 으면, 큐매니저(queue manager)(215)는 미디어 인터페이스로 패킷을 보내는 송신(transmit) 마이크로블럭(216)에서 명시된 큐로부터 패킷을 검색한다.Meanwhile, at the egress node, the common switch interface (CSIX) receive queue 211 receives a packet from the switching fabric, and the packet can be reconfigured according to LSP based on metering 212. have. The weighted random early detection (WRED) microblock 213, which processes packets in parallel with the meter 212, has different profiles according to color values. Once WRED is applied, the packet is sent to the queue manager microblock 215 in charge of putting it into a specific queue according to the LSP ID and class ID in the output port number. . The scheduler 215 generates a request to dequeue each cycle according to the bandwidth and priority of different LSP IDs and class IDs. When the queue manager 215 receives a dequeue message from the queue, the queue manager 215 queues specified in the transmit microblock 216 to send packets to the media interface. Retrieve packets from

2. 범위 분류기(Range Classifier)의 세부 동작2. Detailed Actions of Range Classifier

범위 분류기(range classifier)(203)는 범위별로 매칭을 요구하는 개개의 필드를 사용하여 해당 클래스를 찾기 위해 도 5에 도시된 바와 같이, 멀티비트 트라이(multibit trie)를 사용한다. The range classifier 203 uses a multibit trie, as shown in FIG. 5, to find the corresponding class using individual fields requiring matching by range.

도 5를 참조하면, 모든 중간 트라이(trie) 노드 (503)는 16개의 엔트리를 포함하고 4 비트(bit) 값으로 찾을 수 있다. IP 주소 검색 엔진은 간단하게 업데이트할 수 있는 2개의 트라이(trie)를 가지고 있다. 첫 번째 트라이(trie)(501)는 16비트 값 이상의 접두사에 사용하고, 두 번째 트라이(trie)(502)는 16비트보다 짧은 접두사에 사용한다. 두 개의 IP 트라이(trie) 검색이 끝난 다음, 모든 검색엔진의 결과의 비트 앤드(AND) 연산 수행 전에 비트벡터(bitvector) 결과에 의해 비트 오아(OR) 연산이 수행되어 진다. 검색에 관계된 모든 스트럭처들은 공유 메모리로 대체되기 때문에 메모리 할당/반환과정에서 많은 메모리 단편화가 발생될 것이다. 이런 문제를 피하기 위해서 본 발명에서는 도 6에 도시된 바와 같이 간단한 메모리 관리 시스템을 구현하였다.5, all intermediate trie nodes 503 contain 16 entries and can be found with 4 bit values. The IP address search engine has two tries that can be updated simply. The first trie 501 is used for prefixes with 16-bit values or more, and the second trie 502 is used for prefixes shorter than 16 bits. After the two IP trie search is completed, the bit OR operation is performed by the bitvector result before performing the bit AND operation of the results of all the search engines. Since all structures involved in the search are replaced by shared memory, a lot of memory fragmentation will occur during the memory allocation / return process. To avoid this problem, the present invention implements a simple memory management system as shown in FIG.

도 6을 참조하면, 메모리 관리 모듈은 가능한 많은 수의 트라이(trie) 노드 (603)와 동적 업데이트가 필요한 그 외 데이터 스트럭처(604)의 메모리 할당을 위함이다. 이렇게 할당되는 메모리의 크기는 시스템 컴파일 전에 설정되고, 사용되지 않는 메모리의 사이즈에 따라 선택되어 진다. 메모리가 할당된 다음, 최소값 1부터 최대 가능 엔트리(602)의 인덱스는 단방향 링크드 리스트로 삽입된다. 그리고 새 엔트리가 필요할 때, 프리 리스트(freelist)로부터 하나의 인덱스를 얻어와 이 인덱스로 표시된 엔트리가 사용된다. 몇몇 엔트리들이 더 이상 사용하지 않을 때, 이것의 인덱스는 프리 리스트(freelist)로 되돌아간다. 프리 리스트(freelist)가 모두 비어 있다는 것은 모든 할당된 메모리가 사용되고 있다는 것을 가리킨다.Referring to FIG. 6, the memory management module is for memory allocation of as many trie nodes 603 as possible and other data structures 604 requiring dynamic updates. The amount of memory allocated is set before the system is compiled and is chosen according to the amount of unused memory. After the memory is allocated, the indices of the minimum possible ones to the largest possible entries 602 are inserted into the unidirectional linked list. When a new entry is needed, one index is taken from the freelist and the entry marked with this index is used. When some entries are no longer used, its index is returned to the freelist. An empty freelist indicates that all allocated memory is being used.

이러한 범위 분류기(classifier)는 도 7에 도시된 바와 같이, 코어 컴포넌트(core component: CC)(703)와, 마이크로 블럭(microblock)(701), 컨피그레이션 유틸리티(configuration utility)(704))로 구성된다. This range classifier is composed of a core component (CC) 703, a microblock 701, and a configuration utility 704, as shown in FIG. 7. .

도 7을 참조하면, 네트워크 프로세서의 Xscale 프로세서에 컨피그레이션 유틸리티(704)가 구현되어 있고, 커널 공간에 코어 컴포넌트(703)가 구현되어 있으며, 마이크로엔진(701)과 Xscale 프로세서는 메모리 서브시스템(702)을 사용한다. 그리고 제어 평면의 응용들(705)은 네트워크를 통해 CLI/소켓으로 Xscale 프로세서를 제어한다.Referring to FIG. 7, the configuration utility 704 is implemented in the Xscale processor of the network processor, the core component 703 is implemented in the kernel space, and the microengine 701 and the Xscale processor are the memory subsystem 702. Use And the control plane applications 705 control the Xscale processor via CLI / socket via the network.

분류 데이터베이스 컨피그레이션 유틸리티(Classification database configuration utility)를 구성하기 위해 시스템은 구성 디바이스 드라이버 유틸리티의 커널 부분을 호출한다. 구성 디바이스 드라이버는 주어진 매개변수를 분석하고, 메시지 헬퍼 가능(message helper function)을 통해 분류기 코어 컴포넌트(CC)(703)에 메시지를 전달한다. 코어 컴포넌트 인프라 스트럭처(Core Component Infrastructure)가 큐에 새로운 메시지가 있다는 것을 발견하면, 메시지 핸들 러(message handler)가 호출된다. 메시지 핸들러(message handler)는 주어진 컨피그레이션 프로세성(Configuration processing)을 수행하고, 구성 유틸리티의 결과를 되돌려주는 콜백(callback) 함수를 호출한다.To configure the Classification database configuration utility, the system calls the kernel portion of the configuration device driver utility. The configuration device driver analyzes the given parameters and passes the message to the classifier core component (CC) 703 via a message helper function. When the Core Component Infrastructure finds that there are new messages in the queue, a message handler is called. The message handler performs the given configuration processing and calls a callback function that returns the result of the configuration utility.

3. 스케쥴러(Scheduler)의 세부 동작3. Detailed operation of scheduler

도 8은 본 발명에 따른 스케줄러의 큐 상태 저장 개념도이다.8 is a conceptual diagram illustrating a queue state storing of a scheduler according to the present invention.

도 8을 참조하면, 각각의 레벨은 독립적인 큐 상태 정보 저장장치를 가지고 있다. 저장장치 계층의 최상위층은 포트 정보 테이블(801)이다. 포트 정보 테이블(801)은 각각의 출력 포트를 위한 엔트리(802)를 포함하고 있다. 각각의 포트 정보 테이블 엔트리는 스케줄된 패킷 카운터(803), 현재의 큐 크레딧(credit)(804), 큐 출력 비율(805)을 정의한 크레딧(credit) 증가치, 액티브(active) 큐 리스트 (806, 807)를 위한 포인터 값, 서스펜디드(suspended) 큐 리스트(808, 809)를 위한 포인터 값을 저장하고 있다.8, each level has an independent queue state information storage. The top layer of the storage layer is the port information table 801. The port information table 801 includes an entry 802 for each output port. Each port information table entry includes a scheduled packet counter 803, a current queue credit 804, a credit increment that defines the queue output rate 805, and an active queue list 806, 807. A pointer value for the < RTI ID = 0.0 >), < / RTI >

이상에서 설명한 본 발명에 따른 차등화 서비스 엠피엘에스망에서 네트워크 프로세서를 이용한 플로우별 패킷 처리 방법은 상기한 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.The packet processing method for each flow using a network processor in the differential service MPS network according to the present invention described above is not limited to the above-described embodiments, and the present invention may be made without departing from the gist of the present invention as claimed in the following claims. Anyone with ordinary knowledge in this field will have the technical spirit of the present invention to the extent that various modifications can be made.

이상에서 설명한 바와 같이, 본 발명은 네트워크 프로세서를 이용하여 범위 분류기와 지터가 없는 스케쥴러를 구현함으로써 하드웨어 기반의 구현과 비교해 보면 네트워크 프로세서(Network Processor) 기반의 구현으로 빠른 속도와 함께 아키텍쳐의 보다 나은 향상을 쉽게 구현할 수 있고, 범용 프로세서 기반의 구현과 비교하면 네트워크 프로세서 기반의 구현은 고속으로 패킷을 처리할 수 있다.As described above, the present invention implements a range classifier and a jitter-free scheduler using a network processor, and compared with a hardware-based implementation, the network processor-based implementation provides a faster and better architecture. Is easy to implement, and compared to general-purpose processor-based implementations, network processor-based implementations can process packets at high speed.

또한 본 발명에서는 유연한 범위성(scalability)과 확장성(flexibility)을 가지는 퍼-플로우(per-flow) 기반의 구조를 사용하여 모든 IP 패킷은 각각의 플로우(flow)로 구분되고, 이 플로우(flow)들은 각 플로우(flow)의 특성에 맞게 각 클래스(class)의 TE-LSP로 할당되며, 각 TE-LSP는 각 클래스(class)의 QoS 요구 값(예컨대, 대역폭, 지터, 지연 등)을 보장해 주기 위해 액티브 큐 관리(active queue management)와 같은 기능이 적용되어 강력한 서비스 품질(QoS)을 보장해 줄 수 있다.In addition, in the present invention, all IP packets are divided into respective flows by using a per-flow-based structure having flexible scalability and flexibility. ) Are assigned to each class's TE-LSP according to the characteristics of each flow, and each TE-LSP guarantees QoS requirements (eg bandwidth, jitter, delay, etc.) for each class. Features such as active queue management can be applied to ensure robust quality of service (QoS).

Claims (7)

가입자망으로부터 전송된 패킷을 에지 라우터인 인그레스 노드가 스위치 라우터들로 이루어진 스위치망으로 전달하고, 이그레스 노드가 상기 스위치망으로부터 전달된 패킷을 가입자망으로 전달하는 차등화 서비스 엠피엘에스(DiffServ-over-MPLS)망에 있어서,DiffServ-over (DiffServ-over), which delivers the packet transmitted from the subscriber network to the switch network composed of switch routers by the ingress node, which is an edge router, and the packet transmitted by the egress node to the subscriber network. In the MPLS network, 상기 인그레스 노드가 패킷을 처리하는 과정은,The process of processing the packet by the ingress node, 패킷을 수신하는 단계;Receiving a packet; 상기 수신된 패킷을 분해하여 맥(MAC) 타입 필드에 따라 엠피엘에스(MPLS) 패킷이면, 심(shim) 헤더안의 레이블에 따라 엠피엘에스(MPLS) 인커밍 레이블 맵핑(MPLS ILM) 마이크로블럭으로 보내고, 그 밖의 패킷은 범위 분류기로 보내는 단계;If the received packet is decomposed and is an MPLS packet according to a MAC type field, the received packet is sent to an MPLS incoming label mapping (MPLS ILM) microblock according to a label in a shim header. Sending other packets to the range classifier; 상기 범위 분류기가 지정된 정책에 맞는 플로우(flow)를 찾으면 해당 패킷은 특정한 플로우 아이디(flow ID), 엘에스피 아이디(LSP ID), 클래스 아이디(class ID)로 할당하고, 일치하는 정책을 찾을 수 없다면 해당 패킷은 기본 클래스 아이디(class ID)로 할당하고 일반적인 IPv4 프로세싱으로 보내는 단계;If the range classifier finds a flow that meets the specified policy, the packet is assigned with a specific flow ID, LSP ID, and class ID. Assigning the packet with a base class ID and sending the packet to general IPv4 processing; 플로우별로 패킷의 칼러(color)값을 찾아내기 위한 메터링(metering) 단계;A metering step of finding a color value of the packet for each flow; 상기 메터링 후, 해당 패킷의 아이피(IP) 헤더의 DSCP 필드 안에 클래스 아이디(class ID)와 칼러 아이디(color ID)를 넣어주는 마크단계;A mark step of putting a class ID and a color ID into the DSCP field of the IP header of the packet after the metering; 상기 마크 후 엠피엘에스 에프이시 투 넥스트 홉(MPLS FEC to Nexthop: FTN) 마이크로블럭에서 특정한 에프이시(FEC)와 매칭되는 엠피엘에스(MPLS) 처리를 적용하는 단계; 및Applying an MPLS process that matches a specific FEC in the MPLS FEC to Nexthop (FTN) microblocks after the mark; And 스케쥴러가 상기 엠피엘에스(MPLS) 인커밍 레이블 맵핑(MPLS ILM) 마이크로블럭이나 상기 일반적인 IPv4 프로세싱이나 상기 엠피엘에스(MPLS) 에프이시 투 넥스트 홉(MPLS FTN) 마이크로블럭으로부터 패킷을 수신하여 송신 큐에 스케쥴링하여 상기 스위치망으로 전송하는 단계를 구비하고,A scheduler receives a packet from the MPLS Incoming Label Mapping (MPLS ILM) microblock or the general IPv4 processing or the MPLS F Two To Next Hop (MPLS FTN) microblock and schedules it to a transmission queue. And transmitting to the switch network, 상기 이그레스 노드가 패킷을 처리하는 과정은,The process of processing the packet by the egress node, 공통스위치인터페이스(CSIX) 수신 큐가 스위칭 패브릭으로부터 패킷을 받으면, 해당 패킷을 메터링(metering)하여 엘에스피(LSP)에 따라 재구성하는 단계;When the Common Switch Interface (CSIX) receive queue receives a packet from the switching fabric, metering the packet to reconfigure according to LSP; 가중치 랜덤 얼리 디텍션(Weighted Random Early Detection: WRED) 마이크로블럭이 칼러(color) 값에 따라 다른 프로필을 가지고 처리하는 단계; 및Processing the weighted random early detection (WRED) microblock with a different profile according to the color value; And 스케줄러가 대역폭과 다른 엘에스피 아이디(LSP ID)와 클래스 ID의 우선권에 따라 각 순환에 큐에서 빼내는 요청을 발생하고, 큐 매니저(Queue Manager)가 큐에서 디큐(dequeue) 메시지를 전달받으면, 큐 매니저(queue manager)는 미디어 인터페이스로 패킷을 보내는 단계를 구비한 것을 특징으로 하는 차등화 서비스 엠피엘에스망에서 네트워크 프로세서를 이용한 플로우별 패킷 처리 방법.If the scheduler issues a dequeue request in each cycle according to the bandwidth and priority of the LSP ID and class ID, and the queue manager receives a dequeue message from the queue, the queue manager (queue manager) is a packet processing method for each flow using a network processor in the differential service MPLS network characterized in that it comprises the step of sending a packet to the media interface. 삭제delete 제1항에 있어서, 상기 범위 분류기는The apparatus of claim 1, wherein the range classifier 네트워크 프로세서의 프로세서블럭에 소프트웨어적으로 구현되는 코어 컴포넌트와, 패킷을 처리하는 마이크로 블럭과, 네트워크 프로세서의 프로세서 블럭에 소프트웨어적으로 구현되는 컨피그레이션 유틸리티(configuration utility)와, 메모리 시스템으로 구성되는 것을 특징으로 하는 차등화 서비스 엠피엘에스망에서 네트워크 프로세서를 이용한 플로우별 패킷 처리 방법.A core component implemented in software in a processor block of a network processor, a micro block for processing a packet, a configuration utility implemented in software in a processor block of a network processor, and a memory system. A packet processing method for each flow using a network processor in a differential service MPLS network. 제3항에 있어서, 상기 범위 분류기는The apparatus of claim 3, wherein the range classifier 범위별로 매칭을 요구하는 개개의 필드를 사용하여 해당 클래스를 찾기 위해 멀티비트 트라이(multibit trie)를 사용하는 것을 특징으로 하는 차등화 서비스 엠피엘에스망에서 네트워크 프로세서를 이용한 플로우별 패킷 처리 방법.A method of processing a packet for each flow using a network processor in a differential service MPLS network using a multibit trie to find a corresponding class using individual fields requiring matching by range. 제3항에 있어서, 상기 메모리 시스템은,The memory system of claim 3, wherein the memory system comprises: 링크드 리스트로 관리되는 것을 특징으로 하는 차등화 서비스 엠피엘에스망에서 네트워크 프로세서를 이용한 플로우별 패킷 처리 방법.A packet processing method for each flow using a network processor in a differential service MPS network, which is managed as a linked list. 제1항에 있어서, 상기 스케줄러는The method of claim 1, wherein the scheduler is 수정된 디알알(DRR) 알고리즘을 사용하여 액티브(Active) 상태와, 스케줄가능/엠프티(Schedulable/Empty), 서스펜디드/백로그드(Suspended/Backlogged), 서스펜디드/엠프티 (Suspended/Empty) 등 4개의 상태로 큐를 관리하는 것을 특징으로 하는 차등화 서비스 엠피엘에스망에서 네트워크 프로세서를 이용한 플로우별 패킷 처리 방법.Active state, scheduled / empty, suspended / backlogged, suspended / empty, etc. using a modified DRR algorithm A packet processing method for each flow using a network processor in a differential service MPLS network characterized by managing queues in four states. 제6항에 있어서, 상기 스케줄러는The method of claim 6, wherein the scheduler is 레벨별로 독립적인 큐 상태 정보 저장장치를 가지고 있고, 저장장치 계층의 최상위층은 포트 정보 테이블이며, 상기 포트 정보 테이블은 각각의 출력 포트를 위한 엔트리를 포함하고, 각각의 포트 정보 테이블 엔트리는 스케줄된 패킷 카운터와 현재의 큐 크레딧과 큐 출력 비율을 정의한 크레딧(credit) 증가치, 액티브(active) 큐 리스트를 위한 포인터 값, 서스펜디드(suspended) 큐 리스트를 위한 포인터 값을 저장하고 있는 것을 특징으로 하는 차등화 서비스 엠피엘에스망에서 네트워크 프로세서를 이용한 플로우별 패킷 처리 방법.It has independent queue state information storage for each level, the top layer of the storage hierarchy being a port information table, the port information table containing an entry for each output port, and each port information table entry being a scheduled packet. Differential service MP, which stores a counter, a credit increment that defines the current queue credit and queue output rate, a pointer value for the active queue list, and a pointer value for the suspended queue list. A packet processing method for each flow using a network processor in an LS network.
KR1020070070785A 2006-08-31 2007-07-13 METHOD OF PROCESSING PACKETS PER-FLOW USING NETWORK PROCESSOR IN DiffServ-over-MPLS KR100916835B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20060083481 2006-08-31
KR1020060083481 2006-08-31

Publications (2)

Publication Number Publication Date
KR20080021491A KR20080021491A (en) 2008-03-07
KR100916835B1 true KR100916835B1 (en) 2009-09-14

Family

ID=39395972

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070070785A KR100916835B1 (en) 2006-08-31 2007-07-13 METHOD OF PROCESSING PACKETS PER-FLOW USING NETWORK PROCESSOR IN DiffServ-over-MPLS

Country Status (1)

Country Link
KR (1) KR100916835B1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8160071B2 (en) 2008-12-02 2012-04-17 Electronics And Telecommunications Research Institute Apparatus and method for processing L2/L3 packet
US9417935B2 (en) 2012-05-01 2016-08-16 Microsoft Technology Licensing, Llc Many-core process scheduling to maximize cache usage
US9575813B2 (en) 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization
KR102128015B1 (en) * 2018-11-20 2020-07-09 울산과학기술원 Network switching apparatus and method for performing marking using the same
CN111949740B (en) * 2019-05-15 2024-03-26 中国科学院声学研究所 Parallel network packet classification method, system and network equipment based on multi-core processor
KR102521426B1 (en) * 2021-10-29 2023-04-13 에스케이텔레콤 주식회사 Virtual switch appattus and its traffic processing method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003258876A (en) * 2002-03-01 2003-09-12 Nippon Telegr & Teleph Corp <Ntt> Device and method for transferring packet, and its processing program
KR20040055286A (en) * 2002-12-20 2004-06-26 한국전자통신연구원 MPLS VPN packet classifying device in packet forwarding engine using network processor and method thereof
JP2004193975A (en) 2002-12-11 2004-07-08 Nippon Telegr & Teleph Corp <Ntt> Method of discarding packet and packet switching device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003258876A (en) * 2002-03-01 2003-09-12 Nippon Telegr & Teleph Corp <Ntt> Device and method for transferring packet, and its processing program
JP2004193975A (en) 2002-12-11 2004-07-08 Nippon Telegr & Teleph Corp <Ntt> Method of discarding packet and packet switching device
KR20040055286A (en) * 2002-12-20 2004-06-26 한국전자통신연구원 MPLS VPN packet classifying device in packet forwarding engine using network processor and method thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문:한국통신학회

Also Published As

Publication number Publication date
KR20080021491A (en) 2008-03-07

Similar Documents

Publication Publication Date Title
US10193807B1 (en) Penalty-box policers for network device control plane protection
US7953885B1 (en) Method and apparatus to apply aggregate access control list/quality of service features using a redirect cause
US7876763B2 (en) Pipeline scheduler including a hierarchy of schedulers and multiple scheduling lanes
US11595315B2 (en) Quality of service in virtual service networks
US20110216773A1 (en) Work-conserving packet scheduling in network devices
KR100916835B1 (en) METHOD OF PROCESSING PACKETS PER-FLOW USING NETWORK PROCESSOR IN DiffServ-over-MPLS
US20110019572A1 (en) Method and apparatus for shared shaping
RU2643666C2 (en) Method and device to control virtual output queue authorization and also computer storage media
US20060187832A1 (en) Filter based range check in a network device
US20050068798A1 (en) Committed access rate (CAR) system architecture
Ramabhadran et al. The stratified round robin scheduler: design, analysis and implementation
CN111371690A (en) Flow regulation and control method and device, network equipment and computer readable storage medium
Eswarappa et al. Towards adaptive QoS in SDN-enabled heterogeneous tactical networks
Imputato et al. Design and implementation of the traffic control module in ns-3
Radhakrishnan Linux–advanced networking overview version 1
Ko et al. Openqflow: Scalable openflow with flow-based qos
CN111970149A (en) Shared bandwidth realizing method based on hardware firewall QOS
Laki et al. Scalable per subscriber QoS with core-stateless scheduling
JP3610913B2 (en) Router, packet switching method, and packet switching program
Hu et al. Dynamic queuing sharing mechanism for per-flow quality of service control
US8542602B2 (en) Apparatus and method for a multi-level enmeshed policer
US20060187923A1 (en) Dynamic filter processor key generation based on packet type
KR101587379B1 (en) Method of dynamic control for queue size and apparatus thereof
CN1822572A (en) Network apparatus and method for data processing in data network
Tokmakov et al. A case for data centre traffic management on software programmable ethernet switches

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130621

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee