[go: up one dir, main page]

KR100687745B1 - IPv6 Sender-based Network Processor for Multicast Packet Forwarding and Its Method - Google Patents

IPv6 Sender-based Network Processor for Multicast Packet Forwarding and Its Method Download PDF

Info

Publication number
KR100687745B1
KR100687745B1 KR1020050051089A KR20050051089A KR100687745B1 KR 100687745 B1 KR100687745 B1 KR 100687745B1 KR 1020050051089 A KR1020050051089 A KR 1020050051089A KR 20050051089 A KR20050051089 A KR 20050051089A KR 100687745 B1 KR100687745 B1 KR 100687745B1
Authority
KR
South Korea
Prior art keywords
packet
multicast
ipv6
forwarder
sender
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020050051089A
Other languages
Korean (ko)
Other versions
KR20060130417A (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 KR1020050051089A priority Critical patent/KR100687745B1/en
Publication of KR20060130417A publication Critical patent/KR20060130417A/en
Application granted granted Critical
Publication of KR100687745B1 publication Critical patent/KR100687745B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/72Routing based on the source address
    • 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
    • H04L45/7453Address table lookup; Address filtering using hashing
    • 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/17Interaction among intermediate nodes, e.g. hop by hop
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Landscapes

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

Abstract

IPv6 송신자 기반 멀티캐스트 패킷 포워딩을 위한 네트워크 프로세서 및 그 방법이 개시된다. 네트워크 프로세서의 포워딩 엔진부의 인그레스 포워더는 패킷의 목적지 주소를 기초로 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하고, 패킷이 IPv6 송신자 기반 멀티캐스트 주소이면 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색한다. 그리고 이그레스 포워더는 IPv6 멀티캐스트 출력 포트 테이블을 검색하여 패킷에 해당하는 출력 포트의 수를 파악하고, 파악된 포트의 수 만큼 상기 패킷을 복사하여 포워딩한다. 이로써, 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 구분하여 고속으로 포워딩할 수 있다.A network processor and method for IPv6 sender based multicast packet forwarding are disclosed. The ingress forwarder of the network processor's forwarding engine unit determines whether the packet is an IPv6 sender-based multicast packet based on the packet's destination address. If the packet is an IPv6 sender-based multicast address, the ingress forwarder uses the packet's source address and destination address as a hash key. Retrieve the multicast forwarding table. The egress forwarder searches the IPv6 multicast output port table to determine the number of output ports corresponding to the packet, and copies and forwards the packet by the number of the identified ports. As a result, the network processor can divide the IPv6 sender-based multicast packet and forward the packet at high speed.

네트워크 프로세서, IPv6 송신자 기반 멀티캐스트 Network Processor, IPv6 Sender Based Multicast

Description

IPv6 송신자 기반 멀티캐스트 패킷 포워딩을 위한 네트워크 프로세서 및 그 방법{Network processor for IPv6 source-specific multicast packet forwarding and method therefor}IP processor 6 Network processor for sender-based multicast packet forwarding and method therefor {Network processor for IPv6 source-specific multicast packet forwarding and method therefor}

도 1은 본 발명에 따른 IPv6 송신자 기반 멀티캐스트 패킷 포워딩 기능을 갖는 네트워크 프로세서의 패킷 포워딩 엔진부의 일 실시예의 구성을 도시한 도면,1 is a diagram showing the configuration of an embodiment of a packet forwarding engine unit of a network processor having an IPv6 sender based multicast packet forwarding function according to the present invention;

도 2는 본 발명에 따른 네트워크 프로세서의 이그레스 포워더의 구성의 일 실시예를 도시한 도면,2 is a diagram illustrating an embodiment of a configuration of an egress forwarder of a network processor according to the present invention;

도 3은 본 발명에 따른 네트워크 프로세서의 인그레스 포워더의 구성의 일 실시예를 도시한 도면, 그리고,3 is a diagram illustrating an embodiment of a configuration of an ingress forwarder of a network processor according to the present invention; and

도 4a 및 도 4b는 본 발명에 따른 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 포워딩하는 방법을 도시한 도면이다.4A and 4B illustrate a method of forwarding an IPv6 sender based multicast packet in a network processor according to the present invention.

본 발명은 네트워크 프로세서에 관한 것으로, 보다 상세하게는 IPv6 송신자 기반 멀티캐스트 패킷을 포워딩할 수 있는 네트워크 프로세서 및 그 방법에 관한 것이다. The present invention relates to a network processor, and more particularly, to a network processor and a method for forwarding an IPv6 sender based multicast packet.

현재 대부분의 IP 멀티캐스트 응용(application)들은 다대다 전송을 지원하는 임의 송신자 기반 멀티캐스트(Any-Source Multicast) 모델에 기반하여 구현되어 있다. 그러나 현재의 임의 송신자 기반 멀티캐스트 모델은 확장성이나 보안 등에 문제가 있는 것으로 알려져 있다. 현재 민간 국제표준 기구인 IETF(Internet Engineering Task Force)에서는 이러한 임의 송신자 기반 멀티캐스트 모델의 단점을 해결하기 위하여 IPv6 송신자 기반 멀티캐스트 방법을 제안하여 표준화를 완료하였으나, 아직까지 고성능 패킷 처리가 가능한 네트워크 프로세서 기반의 IPv6 송신자 기반 멀티캐스트 패킷 전송을 위한 실증적인 방법은 개발되어 있지 않다.Currently, most IP multicast applications are based on the Any-Source Multicast model, which supports many-to-many transmission. However, the current random sender-based multicast model is known to have problems with scalability and security. Currently, the Internet Engineering Task Force (IETF), a private international standards organization, has completed the standardization by proposing an IPv6 sender-based multicast method to solve the shortcomings of the random sender-based multicast model. An empirical method for transport based on IPv6 sender based multicast packets has not been developed.

종래의 ASIC(Application-Specific Integrated Circuit) 기반의 시스템들은 하드웨어 기반으로 고성능을 제공하지만, 다양한 인터넷 서비스에 대한 요구를 신속하게 수용하지 못한다. 네트워크 프로세서는 빠른 개발 주기를 가지면서도 충분한 성능을 제공하므로 IPv6 시장과 같은 급변하는 시장에 유연성있게 대처할 수 있는 개발 환경을 제공한다.Conventional application-specific integrated circuit (ASIC) -based systems provide high performance on a hardware basis, but do not quickly accommodate the demands for various Internet services. The network processor has a rapid development cycle and provides sufficient performance, providing a development environment that can flexibly cope with rapidly changing markets such as the IPv6 market.

본 발명이 이루고자 하는 기술적 과제는, IPv6 송신자 기반 멀티캐스트 패킷을 구분하여 고속으로 포워딩할 수 있는 네트워크 프로세서 및 그 방법을 제공하는 데 있다. An object of the present invention is to provide a network processor and a method for classifying IPv6 sender-based multicast packets and forwarding them at high speed.

상기의 기술적 과제를 달성하기 위한, IPv6 송신자 기반 멀티캐스트 패킷을 포워딩하는 네트워크 프로세서의 일 실시예는, 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하고, 상기 패킷이 IPv6 송신자 기반 멀티캐스트 주소이면 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하는 인그레스 포워더; 및 IPv6 멀티캐스트 출력 포트 테이블을 검색하여 상기 패킷에 해당하는 출력 포트의 수를 파악하고, 상기 파악된 포트의 수 만큼 상기 패킷을 복사하여 전송하는 이그레스 포워더;를 포함한다.In order to achieve the above technical problem, an embodiment of a network processor for forwarding an IPv6 sender based multicast packet may be configured to determine whether the packet is an IPv6 sender based multicast packet based on a destination address of the packet, and wherein the packet is an IPv6 An ingress forwarder for searching a multicast forwarding table using a source address and a destination address of the packet as a hash key if the sender is a multicast address; And an egress forwarder for searching an IPv6 multicast output port table to determine the number of output ports corresponding to the packet, and copying and transmitting the packet as many as the identified port number.

상기의 기술적 과제를 달성하기 위한, 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 포워딩하는 방법의 일 실시예는, (a) 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하는 단계; (b) 상기 패킷이 IPv6 송신자 기반 멀티캐스트 주소이면 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하는 단계; (c) 상기 포워딩 테이블의 검색이 성공하면, IPv6 멀티캐스트 출력 포트 테이블을 검색하여 상기 패킷에 해당하는 출력 포트의 수를 파악하는 단계; 및 (d)상기 파악된 포트의 수 만큼 상기 패킷을 복사하여 전송하는 단계;를 포함한다.In order to achieve the above technical problem, an embodiment of a method of forwarding an IPv6 sender based multicast packet in a network processor includes: (a) determining whether the packet is an IPv6 sender based multicast packet based on a destination address of the packet; step; (b) if the packet is an IPv6 sender based multicast address, searching for a multicast forwarding table using the source address and destination address of the packet as a hash key; (c) if the search of the forwarding table is successful, searching the IPv6 multicast output port table to determine the number of output ports corresponding to the packet; And (d) copying and transmitting the packet by the number of the identified ports.

이로써, 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 구분하여 고속으로 포워딩할 수 있다.As a result, the network processor can divide the IPv6 sender-based multicast packet and forward the packet at high speed.

이하에서, 첨부된 도면들을 참조하여 본 발명에 따른 IPv6 송신자 기반 멀티캐스트 패킷 전송 기능을 갖는 네트워크 프로세서 및 그 방법에 대해 상세히 설명한다.In the following, with reference to the accompanying drawings will be described in detail with respect to a network processor having a IPv6 sender-based multicast packet transmission function and a method according to the present invention.

도 1은 본 발명에 따른 IPv6 송신자 기반 멀티캐스트 패킷 전송 기능을 갖는 네트워크 프로세서의 패킷 포워딩 엔진부의 일 실시예의 구성을 도시한 도면이다.1 is a diagram illustrating a configuration of an embodiment of a packet forwarding engine unit of a network processor having an IPv6 sender based multicast packet transmission function according to the present invention.

도 1을 참조하면, 본 발명에 따른 네트워크 프로세서는 인그레스 포워더(Ingress Forwarder)(100) 및 이그레스 포워더(Egress Forwarder)(150)로 구성된다.Referring to FIG. 1, a network processor according to the present invention includes an ingress forwarder 100 and an egress forwarder 150.

인그레스 포워더(100)는 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하고, 패킷이 IPv6 송신자 기반 멀티캐스트용 주소이면 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하고, 검색된 포워딩 테이블의 엔트리가 반영된 패킷 메타 데이터를 생성한 후 패킷을 이그레스 포워더(150)로 전달한다.The ingress forwarder 100 determines whether the packet is an IPv6 sender-based multicast packet based on the destination address of the packet. If the packet is an IPv6 sender-based multicast address, the ingress forwarder 100 uses the source address and the destination address of the packet as a hash key. After searching the cast forwarding table and generating packet metadata reflecting the entry of the found forwarding table, the packet is forwarded to the egress forwarder 150.

이그레스 포워더(150)는 IPv6 멀티캐스트 출력 포트 테이블을 검색하여 패킷에 해당하는 출력 포트의 수를 검색하고, 검색된 포트의 수 만큼 상기 패킷을 복사하여 패킷을 포워딩한다.The egress forwarder 150 searches the IPv6 multicast output port table to retrieve the number of output ports corresponding to the packet, and copies the packet by the number of the detected ports to forward the packet.

구체적으로 살펴보면, 인그레스 포워더(100)는 패킷 분류부(102), 인그레스 멀티캐스트 포워더(Ingress Multicast Forwarder)(104), CSIX 프레임 생성부(108) 및 예외 패킷 처리부(106)를 포함한다.Specifically, the ingress forwarder 100 includes a packet classifier 102, an ingress multicast forwarder 104, a CSIX frame generator 108, and an exception packet processor 106.

패킷 분류부(102)는 망으로부터 패킷을 수신하면, 패킷이 IPv6 패킷인지 파악하여 IPv6 패킷이 아니면 패킷을 폐기한다. 그리고 수신한 패킷의 목적지 주소를 기초로 패킷이 IPv6 멀티캐스트 패킷인지 IPv6 유니캐스트 패킷인지 파악한다. 또한, 패킷 분류부(102)는 패킷이 IPv6 유니캐스트 패킷이면 IPv6 유니캐스트 포워딩 모듈(미도시)로 패킷을 전송하고, 패킷이 IPv6 멀티캐스트 패킷이면 다시 IPv6 송 신자 기반 멀티캐스트 패킷인지 파악한다. 패킷 분류부(102)는 패킷이 IPv6 송신자 기반 멀티캐스트 패킷이면 패킷을 인그레스 멀티캐스트 포워더(104)로 전달한다.Upon receiving a packet from the network, the packet classification unit 102 determines whether the packet is an IPv6 packet and discards the packet if it is not an IPv6 packet. Based on the destination address of the received packet, it is determined whether the packet is an IPv6 multicast packet or an IPv6 unicast packet. In addition, if the packet is an IPv6 unicast packet, the packet classification unit 102 transmits the packet to an IPv6 unicast forwarding module (not shown). If the packet is an IPv6 multicast packet, the packet classifier 102 determines whether the packet is an IPv6 transmitter-based multicast packet. The packet classifier 102 forwards the packet to the ingress multicast forwarder 104 if the packet is an IPv6 sender based multicast packet.

인그레스 멀티캐스트 포워더(104)는 전달받은 IPv6 송신자 기반 멀티캐스트 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하고, 검색된 포워딩 테이블의 엔트리가 반영된 패킷 메타 데이터를 생성한 후 패킷을 CSIX 프레임 생성부(108)로 전달한다.The ingress multicast forwarder 104 searches the multicast forwarding table using the source address and destination address of the received IPv6 sender-based multicast packet as a hash key, generates packet metadata that reflects the entries of the found forwarding table. The packet is transmitted to the CSIX frame generation unit 108.

CSIX 프레임 생성부(108)는 인그레스 멀티캐스트 포워더(104)로부터 전달받은 IPv6 송신자 기반 멀티캐스트 패킷을 CSIX 프레임으로 생성하여 상기 이그레스 포워더(150)로 전달한다.The CSIX frame generation unit 108 generates an IPv6 sender-based multicast packet received from the ingress multicast forwarder 104 as a CSIX frame and delivers it to the egress forwarder 150.

예외 패킷 처리부(106)는 인그레스 멀티캐스트 포워더(104)로부터 소정의 IPv6 링크 로컬 멀티캐스트 주소를 가지는 패킷을 전달받고, 전달받은 패킷에 대한 예외 처리를 수행한다. The exception packet processing unit 106 receives a packet having a predetermined IPv6 link local multicast address from the ingress multicast forwarder 104 and performs exception processing on the received packet.

다음으로, 이그레스 포워더(150)에 대해 구체적으로 살펴보면, 이그레스 포워더(150)는 이그레스 멀티캐스트 포워더(Egress Multicast Forwarder)(152), 패킷 복제부(154) 및 패킷 전송부(156)를 포함한다.Next, the egress forwarder 150 will be described in detail. The egress forwarder 150 looks at the egress multicast forwarder 152, the packet replication unit 154, and the packet transmission unit 156. Include.

이그레스 멀티캐스트 포워더(152)는 인그레스 멀티캐스트 포워더(104)로부터 전달받은 패킷의 출력 포트 수를 멀티캐스트 출력 포트 테이블을 검색하여 파악하고, 패킷 복제부(154)는 파악된 출력 포트 수 만큼 상기 패킷을 복제하여 버퍼에 저장한다. 그리고 패킷 전송부(156)는 복제된 각각의 패킷에 대해 상기 멀티캐스트 출력 포트 테이블을 검색하여 해당하는 넥스트홉을 각각의 패킷에 설정하여 출력한 다.The egress multicast forwarder 152 searches the multicast output port table to determine the number of output ports of the packets received from the ingress multicast forwarder 104, and the packet replication unit 154 determines the number of output ports. The packet is duplicated and stored in a buffer. The packet transmitter 156 searches the multicast output port table for each duplicated packet, sets a corresponding next hop to each packet, and outputs the packet.

도 2는 본 발명에 따른 네트워크 프로세서의 이그레스 포워더의 구성의 일 실시예를 도시한 도면이고, 도 3은 본 발명에 따른 네트워크 프로세서의 인그레스 포워더의 구성의 일 실시예를 도시한 도면이다.2 is a view showing an embodiment of the configuration of the egress forwarder of the network processor according to the present invention, Figure 3 is a view showing an embodiment of the configuration of the ingress forwarder of the network processor according to the present invention.

도 2 및 도 3을 참조하면, 네트워크 프로세서의 이그레스 포워더 및 인그레스 포워더는 마이크로 블록 모듈과 코어 모듈로 크게 구분된다. 2 and 3, an egress forwarder and an ingress forwarder of a network processor are largely divided into a micro block module and a core module.

마이크로 블록 모듈은 제어 플레인에서 전달받은 멀티캐스트 트리 정보를 기반으로 해당 멀티캐스트 패킷의 전달 정보를 확인하고, 필요 시에 패킷 복제부(packet copier)(310)에 패킷 복제 명령을 전달하여 패킷을 복제하게 하고, 이들 복제된 패킷을 해당 멤버에게 전달하도록 하는 인그레스 멀티캐스트 포워더(215), 상기 인그레스 멀티캐스트 포워더(215)에 대응하여 이그레스 포워더에서 동작하는 이그레스 멀티캐스트 포워더(305), 인그레스 멀티캐스트 포워더(215)로부터 전달받은 패킷 복제 명령에 대해 요구되는 수 만큼의 패킷을 복제하는 패킷 복제부(310) 등을 포함한다. The micro block module checks the delivery information of the corresponding multicast packet based on the multicast tree information received from the control plane and, if necessary, sends a packet copy command to the packet copier 310 to copy the packet. An ingress multicast forwarder 215 for forwarding these duplicated packets to a corresponding member, an egress multicast forwarder 305 operating in an egress forwarder in response to the ingress multicast forwarder 215, And a packet copy unit 310 for copying as many packets as required for the packet copy command received from the ingress multicast forwarder 215.

코어 모듈은 인그레스 포워더의 XScale 코어에서 동작하여 인그레스 멀티캐스트 포워더(215)를 위한 자원의 초기화 및 마이크로 블록 모듈로부터의 예외 패킷을 처리하는 인그레스 코어 컴포넌트(220), 이그레스 코어 컴포넌트(330) 등을 포함한다. The core module operates on the XScale core of the ingress forwarder and initializes resources for the ingress multicast forwarder 215 and handles exception packets from the microblock module 220, egress core component 330. ), And the like.

이하에서, 각각의 구성에 대해 구체적으로 살펴본다.Hereinafter, each configuration will be described in detail.

도 2를 참조하면, 인그레스 포워더는 Ether Rx 모듈(200), 분류부 (Decap/Classify)(205), IPv6 포워더(210), 인그레스 멀티캐스트 포워더(215), 인그레스 코어 컴포넌트(220), 스택 드라이버 코어 컴포넌트(225), 큐 관리부(235) 및 CSIX TX 모듈(240)로 구성된다.2, the ingress forwarder includes an Ether Rx module 200, a decap / classify 205, an IPv6 forwarder 210, an ingress multicast forwarder 215, and an ingress core component 220. , Stack driver core component 225, queue manager 235, and CSIX TX module 240.

도 2에서 사각형으로 표시된 모듈들은 본 발명에서 새롭게 구현된 것이고, 마름모형으로 표시된 모듈은 종래의 네트워크 프로세서 포워딩 엔진부에서 제공되는 모듈을 확장한 것이며, 타원형으로 표시된 모듈은 종래의 네트워크 프로세서 포워딩 엔진부에서 제공되는 모듈이다. 그리고 육각형으로 제공되는 외부 패킷 처리 프로세서(230)는 별도의 예외 패킷 처리 시스템이다.Modules indicated by squares in FIG. 2 are newly implemented in the present invention, and modules indicated by rhombuses extend modules provided by the conventional network processor forwarding engine unit, and modules indicated by ovals indicate the conventional network processor forwarding engine unit. This module is provided by. And the external packet processing processor 230 provided in a hexagon is a separate exception packet processing system.

Ether Rx 모듈(200)은 망 인터페이스 장치를 통해 데이터 링크 계층의 패킷을 수신한다. 분류부(Decap/Classify)(205)는 Ether Rx 모듈(200)에 수신된 링크 계층 패킷의 타입(type) 값을 이용하여 패킷이 IPv6 패킷인지 구분한다. 분류부(205)는 수신된 패킷이 IPv6 패킷이 아니면 폐기한다. 일반적으로 IPv6 패킷의 경우 타입 값은 0x86DD 이다.The Ether Rx module 200 receives a packet of a data link layer through a network interface device. The classification unit (Decap / Classify) 205 determines whether the packet is an IPv6 packet by using a type value of a link layer packet received by the Ether Rx module 200. The classifier 205 discards the received packet if it is not an IPv6 packet. In general, for IPv6 packets, the type value is 0x86DD.

IPv6 포워더(210)는 분류부(205)로부터 전달받은 IPv6 패킷의 헤더에 대한 유효성 검사, IPv6 유니캐스트 포워딩 테이블 검색, IPv6 유니캐스트 패킷의 홉 리미트 값을 감소시키는 기능을 수행한다. The IPv6 forwarder 210 performs a function of checking the validity of the header of the IPv6 packet received from the classifier 205, searching the IPv6 unicast forwarding table, and reducing the hop limit value of the IPv6 unicast packet.

구체적으로, IPv6 포워더(210)는 IPv6 패킷 헤더의 유효성 검사에서 패킷의 버전이나 길이의 오류가 있는 패킷, 소스 주소가 멀티캐스트 주소 또는 0, ::1인 패킷을 폐기한다. 또한, IPv6 포워더(210)는 패킷의 목적지 주소가 IPv6 링크 로컬 주소인 경우, 패킷에 Hop-by-Hop 옵션 헤더가 포함된 경우, IPv6 유니캐스트 포워 딩 테이블 검색이 실패한 경우에는 패킷을 인그레스 코어 컴포넌트(220)로 전달한다. 또한, IPv6 포워더(210)는 패킷의 목적지 주소가 IPv6 송신자 기반 멀티캐스트 주소(즉, FF3x::/96, x는 16진수로 0~F 범위의 값)인 경우에는 패킷을 인그레스 멀티캐스트 포워더(215)로 전달한다.In detail, the IPv6 forwarder 210 discards a packet having an error of a version or length of a packet, a multicast address, or a packet whose source address is 0 or :: 1 in validating an IPv6 packet header. In addition, the IPv6 forwarder 210 ingresses the packet if the destination address of the packet is an IPv6 link local address, if the packet includes a Hop-by-Hop option header, or if the IPv6 unicast forwarding table lookup fails. Pass to component 220. The IPv6 forwarder 210 also forwards the packet if the destination address of the packet is an IPv6 sender-based multicast address (i.e., FF3x :: / 96, where x is a value in the range 0 to F in hexadecimal). Forward to 215.

인그레스 멀티캐스트 포워더(215)는 전달받은 패킷의 목적지 주소가 IPv6 송신자 기반 멀티캐스트 주소인지 확인한다. 목적지 주소가 IPv6 송신자 기반 멀티캐스트 주소인 경우에 인그레스 멀티캐스트 포워더(215)는 패킷의 소스 주소 및 목적지 주소를 해쉬키(Hash Key)로 사용하여 IPv6 멀티캐스트 포워딩 테이블을 검색한다. The ingress multicast forwarder 215 checks whether the destination address of the received packet is an IPv6 sender based multicast address. If the destination address is an IPv6 sender based multicast address, the ingress multicast forwarder 215 uses the source address and destination address of the packet as a hash key to search the IPv6 multicast forwarding table.

멀티캐스트 포워딩 테이블의 검색에 성공하면, 인그레스 멀티캐스트 포워더(215)는 포워딩 엔진 내부에서의 패킷 처리를 위해 패킷마다 생성되는 패킷 메타데이터의 헤더 타입을 IPv6_MULTICAST로 설정하고 next_hop_id를 검색된 멀티캐스트 포워딩 테이블의 엔트리의 인덱스(Multicast ID, MTID)로 설정하고, 패킷의 홉 리미트를 감소시킨 후 패킷을 큐 관리부(235)로 전달한다.Upon successful retrieval of the multicast forwarding table, the ingress multicast forwarder 215 sets the header type of packet metadata generated for each packet to IPv6_MULTICAST for packet processing in the forwarding engine, and sets next_hop_id to the retrieved multicast forwarding table. It is set to the index (Multicast ID, MTID) of the entry of, and the hop limit of the packet is reduced, and then the packet is delivered to the queue manager 235.

인그레스 멀티캐스트 포워더(215)는 멀티캐스트 포워딩 테이블의 검색이 실패한 경우 패킷을 폐기한다. 또한, 인그레스 멀티캐스트 포워더(215)는 패킷의 목적지 주소가 IPv6 링크 로컬 멀티캐스트 주소 중 FF02::1, FF02::2, FF02::D, FF02::16 중 하나인 경우에는 패킷을 Xscale 코어 모듈의 인그레스 코어 컴포넌트(220)로 전달한다.The ingress multicast forwarder 215 discards the packet if the search of the multicast forwarding table fails. The ingress multicast forwarder 215 also Xscale packets when the destination address of the packet is one of the FF02 :: 1, FF02 :: 2, FF02 :: D, and FF02 :: 16 of the IPv6 link-local multicast addresses. It passes to the ingress core component 220 of the core module.

인그레스 코어 컴포넌트(220)는 IPv6 패킷의 전송을 위한 IPv6 유니캐스트 포워딩 테이블 및 IPv6 멀티캐스트 포워딩 테이블을 생성 및 관리한다. 또한, 인그레스 코어 컴포넌트(220)는 인그레스 멀티캐스트 포워더(215)로부터 전달받은 패킷을 검사하여 패킷에 IPv6 Hop-by-Hop 옵션 헤더가 존재하는 경우, 패킷의 종류가 IPv6 멀티캐스트 패킷인 경우, 패킷의 목적지 주소가 링크 로컬 멀티캐스트 주소(FF02::1, FF02::2, FF02::D, FF02::16 중 어느 하나인 경우)인 경우에는 패킷을 스택 드라이버 코어 컴포넌트(225)로 전달한다.The ingress core component 220 creates and manages an IPv6 unicast forwarding table and an IPv6 multicast forwarding table for the transmission of IPv6 packets. In addition, the ingress core component 220 examines the packet received from the ingress multicast forwarder 215, and if the packet has an IPv6 Hop-by-Hop option header, and the type of the packet is an IPv6 multicast packet. If the destination address of the packet is a link-local multicast address (if any of FF02 :: 1, FF02 :: 2, FF02 :: D, or FF02 :: 16), then the packet is sent to the stack driver core component 225. To pass.

또한, 인그레스 코어 컴포넌트(220)는 패킷의 IPv6 MTU(Maximum Transmission Unit)검사가 실패하거나, 홉 제한 오류가 발생하거나, IPv6 유니캐스트 포워딩 테이블의 검색이 실패한 경우에는 ICMPv6(Internet Control Message Protocol for IPv6) 메시지를 전송한다. 또한, 인그레스 코어 컴포넌트(220)는 IPv6 멀티캐스트 포워딩 테이블의 검색이 실패한 경우 및 ICMPv6 리다이렉트 옵션이 설정된 경우 패킷을 폐기(drop)한다. Further, the ingress core component 220 may check the Internet Control Message Protocol for IPv6 when the IPv6 Maximum Transmission Unit (MTU) check of the packet fails, a hop limit error occurs, or the search of the IPv6 unicast forwarding table fails. ) Send a message. The ingress core component 220 also drops the packet if the lookup of the IPv6 multicast forwarding table fails and the ICMPv6 redirect option is set.

스택 드라이버 코어 컴포넌트(225)는 인그레스 코어 컴포넌트(220)로부터 전달받은 패킷의 처리를 담당하는 외부 패킷 처리 프로세서(230)에 패킷을 전달하는 기능 및 외부 패킷 처리 프로세서(230)에서 처리된 패킷을 큐 관리부(235)로 전달하는 기능을 담당한다.The stack driver core component 225 transfers the packet to the external packet processing processor 230 in charge of processing the packet received from the ingress core component 220 and the packet processed by the external packet processing processor 230. It is responsible for the function of delivering to the queue manager 235.

CSIX(Common Switch Interface) TX 모듈은(240) 큐 관리부(235)로부터 전달받은 패킷을 검사하여, 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인 경우에는 CSIX 멀티캐스트 프레임을 생성한다. CSIX 멀티캐스트 프레임은 베이스 헤더의 타입 필드의 값이 멀티캐스트 ID(0x03)로 설정되며, CSIX 멀티캐스트 확장헤더가 추가된 다. 생성된 CSIX 멀티캐스트 프레임은 패킷 포워딩 엔진부의 이그레스 포워더로 전달된다.The CSIX TX module examines the packet received from the queue manager 235 and generates a CSIX multicast frame if the packet is an IPv6 sender-based multicast packet. In the CSIX multicast frame, the value of the type field of the base header is set to the multicast ID (0x03), and the CSIX multicast extension header is added. The generated CSIX multicast frame is delivered to the egress forwarder of the packet forwarding engine unit.

도 3을 참조하면, 본 발명에 따른 이그레스 포워더는 CSIX RX 모듈(300), 이그레스 멀티캐스트 포워더(305), 패킷 복제부(310), Ether Encap 모듈(315), 큐 관리부(320), Ether TX 모듈(325) 및 이그레스 코어 컴포넌트(330)로 구성된다.3, the egress forwarder according to the present invention includes a CSIX RX module 300, an egress multicast forwarder 305, a packet replication unit 310, an Ether Encap module 315, a queue management unit 320, It consists of an Ether TX module 325 and an egress core component 330.

CSIX RX 모듈(300)은 패킷 포워딩 엔진부의 인그레스 포워더로부터 전달받은 패킷이 멀티캐스트 패킷인 경우, 헤더 타입을 멀티캐스트로 설정하고, 이그레스 멀티캐스트 포워더(305)로 패킷을 전달한다. CSIX RX 모듈(300)은 패킷이 IPv6 유니캐스트 패킷이면 Ether Encap 모듈(315)로 패킷을 직접 전달한다.If the packet received from the ingress forwarder of the packet forwarding engine unit is a multicast packet, the CSIX RX module 300 sets the header type to multicast and delivers the packet to the egress multicast forwarder 305. The CSIX RX module 300 forwards the packet directly to the Ether Encap module 315 if the packet is an IPv6 unicast packet.

이그레스 멀티캐스트 포워더(305)는 IPv6 멀티캐스트 출력 포트 테이블(MOIT_Port_Table)을 검색하여 출력 포트의 수가 1개 이하인 경우에는 Ether Encap 모듈(315)로 패킷을 전달하고, 출력 포트의 수가 2개 이상인 경우에는 멀티캐스트 출력 인터페이스 테이블(MOIT_OIF_Table)을 검색하여 MTU 값과 홉 리미트 값을 검사하고, 패킷을 패킷 복제부(310)로 전달한다.The egress multicast forwarder 305 searches the IPv6 multicast output port table (MOIT_Port_Table) to forward packets to the Ether Encap module 315 when the number of output ports is one or less, and when the number of output ports is two or more. Next, the multicast output interface table (MOIT_OIF_Table) is searched for, the MTU value and the hop limit value are checked, and the packet is delivered to the packet replicating unit 310.

패킷 복제부(Packet Copier)(310)는 현 패킷의 출력 포트로 지정된 각 포트에 대하여 Child 버퍼를 생성한 후, 출력할 멀티캐스트 패킷을 각각 복사하여 버퍼에 저장한다. 그리고 패킷 복제부(310)는 복제된 패킷들을 Ether Encap 모듈(315)로 전달한다. The packet copier 310 generates a child buffer for each port designated as an output port of the current packet, and then copies and stores the multicast packets to be output in the buffer. The packet replication unit 310 transmits the duplicated packets to the Ether Encap module 315.

Ether Encap 모듈(315)은 포워딩 테이블 엔트리의 인덱스와 멀티캐스트 출력 인터페이스 테이블의 출력 인터페이스 번호를 이용하여 멀티캐스트 출력 포트 테이 블(MOIT_Port_Table)을 검색하여 실제 패킷을 전송할 네트워크 프로세서의 출력 포트 번호를 가져온다. Ether Encap 모듈(315)에서 출력 포트 번호가 검색된 패킷은 큐 관리부(320)를 거쳐 Ether Tx 모듈(325)로 전달된다. The Ether Encap module 315 retrieves the multicast output port table (MOIT_Port_Table) using the index of the forwarding table entry and the output interface number of the multicast output interface table to obtain the output port number of the network processor that will transmit the actual packet. The packet whose output port number is retrieved from the Ether Encap module 315 is transferred to the Ether Tx module 325 via the queue manager 320.

Ether Tx 모듈(325)은 링크 계층 테이블을 검색하여 링크 계층 헤더를 패킷에 추가한 후 패킷을 전송한다. 그리고 난 후 패킷 복제부(310)는 Child 버퍼를 비운다. The Ether Tx module 325 searches the link layer table, adds the link layer header to the packet, and then transmits the packet. After that, the packet replicating unit 310 empties the child buffer.

도 4a 및 도 4b는 본 발명에 따른 네트워크 프로세서에서 IPv6 송신자 기반 멀티캐스트 패킷을 포워딩하는 방법을 도시한 도면이다.4A and 4B illustrate a method of forwarding an IPv6 sender based multicast packet in a network processor according to the present invention.

도 2 및 4a를 참조하면, Ether Rx 모듈(200)이 인그레스 포워더의 망 인터페이스 장치를 통해 패킷을 수신하면(S400), 분류부(205)는 링크 계층 패킷의 타입 값을 이용하여 IPv6 패킷인지 확인한다(S405). 2 and 4A, when the Ether Rx module 200 receives a packet through the network interface device of the ingress forwarder (S400), the classifier 205 determines whether it is an IPv6 packet using a type value of a link layer packet. Check (S405).

IPv6 패킷이면 분류부(205)는 패킷을 IPv6 포워더(210)로 전달하고, IPv6 포워더(210)는 전달받은 IPv6 패킷의 헤더에 대한 유효성 검사를 실시하여(S410) 버전이나 헤더 체크섬 등에 오류가 있으면 패킷을 폐기한다(S440). If it is an IPv6 packet, the classification unit 205 forwards the packet to the IPv6 forwarder 210, and the IPv6 forwarder 210 performs a validity check on the header of the received IPv6 packet (S410), if there is an error in a version or a header checksum. Discard the packet (S440).

그리고 IPv6 포워더(210)는 패킷의 목적지 주소를 확인하여 목적지 주소가 IPv6 멀티캐스트 주소인 경우에는 패킷을 인그레스 멀티캐스트 포워더(215)로 전달한다(S415). 목적지 주소가 IPv6 유니캐스트 영역인 패킷은 IPv6 유니캐스트 포워딩 모듈로 전달된다(S445).The IPv6 forwarder 210 checks the destination address of the packet and if the destination address is an IPv6 multicast address, delivers the packet to the ingress multicast forwarder 215 (S415). The packet whose destination address is the IPv6 unicast region is delivered to the IPv6 unicast forwarding module (S445).

인그레스 멀티캐스트 포워더(215)는 전달받은 패킷의 목적지 주소가 IPv6 송신자 기반 멀티캐스트 주소인지 확인하고(S420), IPv6 송신자 기반 멀티캐스트 주 소인 경우에는 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 IPv6 멀티캐스트 포워딩 테이블을 검색한다(S425). The ingress multicast forwarder 215 checks whether the destination address of the received packet is an IPv6 sender-based multicast address (S420). In the case of an IPv6 sender-based multicast address, the ingress multicast forwarder 215 uses the source address and the destination address of the packet as a hash key. The IPv6 multicast forwarding table is searched (S425).

멀티캐스트 포워딩 테이블 검색이 성공하면(S430), CSIX TX 모듈(240)은 패킷을 이그레스 포워더로 전달하기 위한 CSIX 멀티캐스트 프레임을 생성한 후 이그레스 포워더의 CSIX RX 모듈(300)로 전달한다(S435).If the multicast forwarding table search succeeds (S430), the CSIX TX module 240 generates a CSIX multicast frame for forwarding the packet to the egress forwarder, and then delivers it to the CSIX RX module 300 of the egress forwarder ( S435).

도 3 및 도 4b를 참조하면, 이그레스 포워더 내부의 CSIX RX 모듈(300)은 인그레스 포워더로부터 전달받은 패킷을 인그레스 멀티캐스트 포워더(305)로 전달한다(S450). 이그레스 멀티캐스트 포워더(305)는 IPv6 멀티캐스트 출력 포트 테이블을 검색한다(S455). 3 and 4B, the CSIX RX module 300 in the egress forwarder forwards the packet received from the ingress forwarder to the ingress multicast forwarder 305 (S450). The egress multicast forwarder 305 searches the IPv6 multicast output port table (S455).

검색된 해당 출력 포트의 수가 1개 이하인 경우에는(S460), 이그레스 멀티캐스트 포워더(305)는 패킷을 Parent 버퍼에 저장하여 Ether Encap 모듈(315)로 전달한다(S470). 출력 포트의 수가 2개 이상인 경우에는 이그레스 멀티캐스트 포워더(305)는 패킷을 패킷 복제부(310)로 전달하고, 패킷 복제부(310)는 출력 포트의 수 만큼 Child 버퍼를 생성한 후, Parent 버퍼에 저장된 패킷을 복제하여 각 Child 버퍼에 저장한 후 Ether Encap 모듈(315)로 전달한다(S465,S470).If the number of the corresponding output ports is one or less (S460), the egress multicast forwarder 305 stores the packet in the parent buffer and delivers the packet to the Ether Encap module 315 (S470). If the number of output ports is two or more, the egress multicast forwarder 305 delivers the packet to the packet replicating unit 310, and the packet replication unit 310 creates a child buffer as many as the number of output ports, and then sets the parent. The packet stored in the buffer is replicated and stored in each child buffer, and then transferred to the Ether Encap module 315 (S465, S470).

Ether Encap 모듈(315)은 멀티캐스트 출력 포트 테이블에서 넥스트 홉을 검색하여 패킷에 설정한 후(S475), 링크 계층 헤더를 추가하여 Child 버퍼의 개수 만큼 패킷을 반복하여 전송한다(S480,S485). The Ether Encap module 315 retrieves the next hop from the multicast output port table, sets the packet to the packet (S475), and then adds the link layer header to repeatedly transmit the packet as many as the number of child buffers (S480 and S485).

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스 템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The invention can also be embodied as computer readable code on a computer readable recording medium. Computer-readable recording media include all types of recording devices that store data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). Include. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

본 발명에 따르면, IPv6 망에서 네트워크 프로세서를 이용하여 IPv6 송신자 기반 멀티캐스트 서비스를 제공할 수 있다. 따라서, IPv6 망의 많은 수의 사용자들에게 IPv6 송신자 기반 멀티캐스트 서비스를 고속으로 제공할 수 있으며, 인터넷 방송과 같은 응용에 본 발명을 적용하여 망 자원의 효율적인 이용을 도모할 수 있다. According to the present invention, an IPv6 sender based multicast service can be provided using a network processor in an IPv6 network. Accordingly, IPv6 sender-based multicast service can be provided to a large number of users of IPv6 network at high speed, and the present invention can be applied to applications such as Internet broadcasting to efficiently use network resources.

Claims (11)

패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하고, 상기 패킷이 IPv6 송신자 기반 멀티캐스트 주소이면 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하는 인그레스 포워더; 및Determining whether the packet is an IPv6 sender based multicast packet based on a destination address of the packet, and searching the multicast forwarding table using the source address and the destination address of the packet as a hash key if the packet is an IPv6 sender based multicast address. Ingress forwarder; And IPv6 멀티캐스트 출력 포트 테이블을 검색하여 상기 패킷에 해당하는 출력 포트의 수를 파악하고, 상기 파악된 포트의 수 만큼 상기 패킷을 복사하여 전송하는 이그레스 포워더;를 포함하는 것을 특징으로 하는 네트워크 프로세서.And an egress forwarder for retrieving an IPv6 multicast output port table to determine the number of output ports corresponding to the packet, and to copy and transmit the packet by the identified number of ports. 제 1항에 있어서, 상기 인그레스 포워더는,The method of claim 1, wherein the ingress forwarder, 상기 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 멀티캐스트 패킷인지 IPv6 유니캐스트 패킷인지 파악하고, 상기 패킷이 IPv6 멀티캐스트 패킷이면 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하는 패킷 분류부;A packet classifier configured to determine whether the packet is an IPv6 multicast packet or an IPv6 unicast packet based on a destination address of the packet, and whether the packet is an IPv6 sender based multicast packet if the packet is an IPv6 multicast packet; 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷이면, 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하고, 상기 검색된 포워딩 테이블의 엔트리가 반영된 패킷 메타 데이터를 생성하는 인그레스 멀티캐스트 포워더;를 포함하는 것을 특징으로 하는 네트워크 프로세서.If the packet is an IPv6 sender-based multicast packet, an ingress multicast that searches the multicast forwarding table using the source address and the destination address of the packet as a hash key and generates packet metadata reflecting an entry of the found forwarding table. A forwarder; comprising a network processor. 제 1항에 있어서, 상기 인그레스 포워더는,The method of claim 1, wherein the ingress forwarder, 망으로부터 수신한 패킷의 데이터 링크 계층의 타입 값을 기초로 상기 패킷이 IPv6 패킷인지 파악하는 것을 특징으로 하는 네트워크 프로세서.And determining whether the packet is an IPv6 packet based on a type value of a data link layer of a packet received from a network. 제 2항에 있어서, 상기 인그레스 포워더는,The method of claim 2, wherein the ingress forwarder, 상기 인그레스 멀티캐스트 포워더로부터 전달받은 IPv6 송신자 기반 멀티캐스트 패킷을 CSIX 프레임으로 생성하여 상기 이그레스 포워더로 전달하는 CSIX 프레임 생성부;를 더 포함하는 것을 특징으로 하는 네트워크 프로세서.And a CSIX frame generator configured to generate an IPv6 sender-based multicast packet received from the ingress multicast forwarder as a CSIX frame and deliver the CSIX frame to the egress forwarder. 제 2항에 있어서, 상기 인그레스 포워더는,The method of claim 2, wherein the ingress forwarder, 상기 인그레스 멀티캐스트 포워더로부터 소정의 IPv6 링크 로컬 멀티캐스트 주소를 가지는 패킷을 전달받고, 상기 전달받은 패킷에 대한 예외 처리를 수행하는 예외 패킷 처리부;를 더 포함하는 것을 특징으로 하는 네트워크 프로세서.And an exception packet processor for receiving a packet having a predetermined IPv6 link local multicast address from the ingress multicast forwarder and performing exception processing on the received packet. 제 1항에 있어서, 상기 이그레스 포워더는,The method of claim 1, wherein the egress forwarder, 상기 인그레스 멀티캐스트 포워더로부터 전달받은 패킷에 대한 출력 포트 수를 멀티캐스트 출력 포트 테이블을 검색하여 파악하는 이그레스 멀티캐스트 포워더; 및An egress multicast forwarder for retrieving a multicast output port table to determine the number of output ports for packets received from the ingress multicast forwarder; And 상기 파악된 출력 포트 수 만큼 상기 패킷을 복제하여 버퍼에 저장하는 패킷 복제부;를 포함하는 것을 특징으로 하는 네트워크 프로세서.And a packet copying unit for replicating the packets as many as the determined number of output ports and storing the packets in a buffer. 제 6에 있어서, 상기 이그레스 포워더는,The method of claim 6, wherein the egress forwarder, 상기 복제된 각각의 패킷에 대해 상기 멀티캐스트 출력 포트 테이블을 검색하여 해당하는 넥스트 홉을 상기 각각의 패킷에 설정하여 전송하는 패킷 전송부;를 더 포함하는 것을 특징으로 하는 네트워크 프로세서.And a packet transmitter configured to search the multicast output port table for each of the duplicated packets, and to set and transmit a corresponding next hop to each packet. (a) 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하는 단계;(a) determining whether the packet is an IPv6 sender based multicast packet based on a packet's destination address; (b) 상기 패킷이 IPv6 송신자 기반 멀티캐스트 주소이면 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하는 단계;(b) if the packet is an IPv6 sender based multicast address, searching for a multicast forwarding table using the source address and destination address of the packet as a hash key; (c) 상기 포워딩 테이블의 검색이 성공하면, IPv6 멀티캐스트 출력 포트 테이블을 검색하여 상기 패킷에 해당하는 출력 포트의 수를 파악하는 단계; 및(c) if the search of the forwarding table is successful, searching the IPv6 multicast output port table to determine the number of output ports corresponding to the packet; And (d)상기 파악된 포트의 수 만큼 상기 패킷을 복사하여 전송하는 단계;를 포함하는 것을 특징으로 하는 네트워크 프로세서에서의 IPv6 송신자 기반 멀티캐스트 패킷 전송 방법.(d) copying and transmitting the packet by the number of the identified ports; IPv6 sender based multicast packet transmission method in a network processor, comprising: a. 제 8항에 있어서, 상기 (a) 단계는,The method of claim 8, wherein step (a) comprises: (a1) 상기 패킷의 링크계층 타입 값을 기초로 상기 패킷이 IPv6 패킷인지 파악하고, 상기 패킷이 IPv6 패킷이 아니면 폐기하는 단계;(a1) determining whether the packet is an IPv6 packet based on a link layer type value of the packet, and discarding the packet if the packet is not an IPv6 packet; (a2) 상기 패킷의 헤더의 유효성 검사를 수행하여, 검사 결과 이상이 있으면 상기 패킷을 폐기하는 단계;(a2) validating the header of the packet and discarding the packet if there is an error in the test result; (a3) 상기 패킷의 목적지 주소를 기초로 상기 패킷이 IPv6 멀티캐스트 패킷인지 IPv6 유니캐스트 패킷인지 파악하는 단계; 및(a3) determining whether the packet is an IPv6 multicast packet or an IPv6 unicast packet based on a destination address of the packet; And (a4) 상기 패킷이 IPv6 멀티캐스트 패킷이면 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷인지 파악하는 단계;를 포함하는 것을 특징으로 하는 네트워크 프로세서에서의 IPv6 송신자 기반 멀티캐스트 패킷 전송 방법.(a4) if the packet is an IPv6 multicast packet, determining whether the packet is an IPv6 sender-based multicast packet; and transmitting the IPv6 sender-based multicast packet in a network processor. 제 8항에 있어서, 상기 (b) 단계는,According to claim 8, wherein step (b) is, (b1) 상기 패킷이 IPv6 송신자 기반 멀티캐스트 패킷이면, 상기 패킷의 소스 주소 및 목적지 주소를 해쉬키로 사용하여 멀티캐스트 포워딩 테이블을 검색하는 단계;(b1) if the packet is an IPv6 sender based multicast packet, searching for a multicast forwarding table using the source address and the destination address of the packet as hash keys; (b2) 상기 검색된 포워딩 테이블의 엔트리가 반영된 패킷 메타 데이터를 생성하는 단계; 및(b2) generating packet metadata reflecting an entry of the found forwarding table; And (b3) 상기 패킷의 목적지 주소가 소정의 IPv6 로컬 멀티캐스트 주소이면 상기 패킷을 포워딩 엔지부의 코어 모듈로 전달하여 패킷 예외 처리를 수행하는 단계;를 포함하는 것을 특징으로 하는 네트워크 프로세서에서의 IPv6 송신자 기반 멀티캐스트 패킷 전송 방법.(b3) if the destination address of the packet is a predetermined IPv6 local multicast address, forwarding the packet to a core module of a forwarding engine unit and performing packet exception processing; and based on the IPv6 sender in the network processor How to send multicast packets. 제 10항에 있어서, 상기 (d) 단계는,The method of claim 10, wherein step (d) (d1) 상기 파악된 출력 포트의 수가 2개 이상이면 상기 파악된 출력 포트 수 만큼 상기 패킷을 복제하여 버퍼에 저장하는 단계;(d1) if the number of the identified output ports is two or more, replicating the packet by the number of the identified output ports and storing the packet in a buffer; (d2) 상기 멀티캐스트 출력 포트 테이블에서 상기 패킷에 해당하는 넥스트홉을 검색하여 상기 패킷에 설정한 후, 링크 계층 헤더를 추가하여 전송하는 단계;를 포함하는 것을 특징으로 하는 네트워크 프로세서에서의 IPv6 송신자 기반 멀티캐스트 패킷 전송 방법.(d2) searching for the next hop corresponding to the packet in the multicast output port table, setting the packet in the packet, and then adding and transmitting a link layer header to transmit the IPv6 sender in the network processor; Based multicast packet transmission method.
KR1020050051089A 2005-06-14 2005-06-14 IPv6 Sender-based Network Processor for Multicast Packet Forwarding and Its Method Expired - Fee Related KR100687745B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050051089A KR100687745B1 (en) 2005-06-14 2005-06-14 IPv6 Sender-based Network Processor for Multicast Packet Forwarding and Its Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050051089A KR100687745B1 (en) 2005-06-14 2005-06-14 IPv6 Sender-based Network Processor for Multicast Packet Forwarding and Its Method

Publications (2)

Publication Number Publication Date
KR20060130417A KR20060130417A (en) 2006-12-19
KR100687745B1 true KR100687745B1 (en) 2007-02-27

Family

ID=37810851

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050051089A Expired - Fee Related KR100687745B1 (en) 2005-06-14 2005-06-14 IPv6 Sender-based Network Processor for Multicast Packet Forwarding and Its Method

Country Status (1)

Country Link
KR (1) KR100687745B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100759819B1 (en) * 2006-05-26 2007-09-18 한국전자통신연구원 Apparatus and method for checking the extension header of IPv6 packet
KR101301188B1 (en) * 2007-01-02 2013-08-29 삼성전자주식회사 MOBILE IPv6 NETWORK SYSTEM AND PACKET FORWARD METHOD THEREOF
KR101363599B1 (en) * 2007-02-16 2014-02-14 삼성전자주식회사 APPARATUS AND METHOD FOR SUPPORTING IPv6 LINK-LOCAL ADDRESS IN DISTRIBUTED ARCHITECTURE ROUTING SYSTEM
CN105700859A (en) * 2014-11-25 2016-06-22 中兴通讯股份有限公司 Network-processor-based hardware table traversal method and apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001345845A (en) 2000-05-30 2001-12-14 Hitachi Ltd Method and device for ipv4/ipv6 multicast communication
US20020181465A1 (en) 2000-07-21 2002-12-05 Hitachi, Ltd. Multicast routing method and apparatus for routing multicast packet
KR20060035080A (en) * 2004-10-21 2006-04-26 한국전자통신연구원 IP6 Sender-based Multicast Data Transmission System in Linux Routers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001345845A (en) 2000-05-30 2001-12-14 Hitachi Ltd Method and device for ipv4/ipv6 multicast communication
US20020181465A1 (en) 2000-07-21 2002-12-05 Hitachi, Ltd. Multicast routing method and apparatus for routing multicast packet
KR20060035080A (en) * 2004-10-21 2006-04-26 한국전자통신연구원 IP6 Sender-based Multicast Data Transmission System in Linux Routers

Also Published As

Publication number Publication date
KR20060130417A (en) 2006-12-19

Similar Documents

Publication Publication Date Title
EP3320670B1 (en) Method and apparatus for pushing data in a content-centric networking (ccn) network
US10445380B2 (en) System and method for direct storage access in a content-centric network
US8290934B2 (en) Method and system for processing access control lists using a hashing scheme
US9871781B2 (en) Systems and methods for path maximum transmission unit discovery
CN108768866B (en) Cross-card forwarding method and device for multicast message, network equipment and readable storage medium
US20160182680A1 (en) Interest acknowledgements for information centric networking
US10581741B2 (en) Method and system for interest groups in a content centric network
WO2018192587A1 (en) Table lookup method and device, and computer storage medium
CN103747083B (en) A kind of content delivery method based on CCN
CN108259347A (en) A kind of message transmitting method and device
US7200105B1 (en) Systems and methods for point of ingress traceback of a network attack
US10009266B2 (en) Method and system for reference counted pending interest tables in a content centric network
US9848059B2 (en) Content handling method, apparatus, and system
US10938721B2 (en) Hash collision mitigation system
KR20170064996A (en) Explicit content deletion commands in a content centric network
KR101384794B1 (en) Message routing platform
KR100687745B1 (en) IPv6 Sender-based Network Processor for Multicast Packet Forwarding and Its Method
US20070230469A1 (en) Transmission apparatus
CN115567436A (en) Multicast packet processing method, system, computer equipment and readable storage medium
CN114490781A (en) Block chain data processing method and device
US10051071B2 (en) Method and system for collecting historical network information in a content centric network
US7792129B2 (en) Multi-queue packet processing using Patricia tree
CN101442547A (en) Method, system and equipment for processing message
CN111083060B (en) A method of network traffic control
JP4597882B2 (en) Packet search management apparatus and packet search management method

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20100222

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20100222

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000