KR100592873B1 - 복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법 - Google Patents

복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법 Download PDF

Info

Publication number
KR100592873B1
KR100592873B1 KR1020020081506A KR20020081506A KR100592873B1 KR 100592873 B1 KR100592873 B1 KR 100592873B1 KR 1020020081506 A KR1020020081506 A KR 1020020081506A KR 20020081506 A KR20020081506 A KR 20020081506A KR 100592873 B1 KR100592873 B1 KR 100592873B1
Authority
KR
South Korea
Prior art keywords
forwarding table
entry
network processor
line card
processor
Prior art date
Application number
KR1020020081506A
Other languages
English (en)
Other versions
KR20040054957A (ko
Inventor
손명희
이종협
김영선
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020020081506A priority Critical patent/KR100592873B1/ko
Priority to US10/463,036 priority patent/US7424015B2/en
Publication of KR20040054957A publication Critical patent/KR20040054957A/ko
Application granted granted Critical
Publication of KR100592873B1 publication Critical patent/KR100592873B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags

Landscapes

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

Abstract

본 발명은 복수개의 네트워크 프로세서 및 다중/역다중화기를 갖는 이더넷 시스템의 라인카드에서 복수 번의 반복되는 주소학습 결과를 조정하여 각 네트워크 프로세서의 포워딩 테이블 접근 횟수를 한 번으로 줄임으로써, 각 네트워크 프로세서의 포워딩 테이블 엔트리 갱신 및 삭제 오버헤드를 한 번으로 줄이는 네트워크 프로세서의 포워딩 테이블 관리방법에 관한 것이다.
본 발명은, 메인 프로세서와 통신하며, 각각 다수의 포트를 갖는 복수개의 네트워크 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법에 있어서, 라인카드에 동일 소스 주소를 갖는 이더넷 데이터 프레임이 최대 N번 반복하여 수신되는 경우, 역다중화기는 각 네트워크 프로세서의 각 포트에 순차적으로 상기 프레임을 전달하는 라인카드 프레임전달단계; 상기 프레임을 수신한 각 네트워크 프로세서는 자신의 주소 학습 테이블을 확인하여 엔트리를 추가하고, 에이징 타이머(aging timer)를 초기화한 후, 상기 수신된 프레임을 메인 프로세서로 전달하는 메인 프로세서 프레임전달단계; 상기 프레임을 수신한 메인 프로세서는 상기 소스 주소를 이용하여 자신의 포워딩 테이블에 동일 엔트리가 존재하는지를 확인하는 엔트리 중복확인단계; 및 상기 확인결과, 동일한 엔트리가 존재하는 경우, LRNG_CNT 플레그 값을 검사하여 0보다 크면 LRNG_CNT 플레그 값을 1증가시키고, 동일한 엔트리가 존재하지 않는 경우, 상기 포워딩 테이블에 해당 엔트리를 추가시키고, LRNG_CNT 플레그 값을 1증가시킨 후, 라인카드를 통하여 상기 각 네트워크 프로세서 내의 포워딩 테이블에 엔트리 생성을 요청하는 엔트리생성요청단계를 포함한다.
본 발명에 의하면, 복수의 네트워크 프로세서 인터페이스 개수만큼 상기 메인 프로세서와 각 네트워크 프로세서에서의 포워딩 테이블 갱신 또는 삭제가 발생하는 것을 1번으로 줄일 수 있다.
네트워크 프로세서, 다중/역다중화기, 포워딩 테이블, 엔트리, 주소학습, 메인 프로세서, 라인카드, 주소 학습 테이블

Description

복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법{Method for Managing Forwarding Table of Network Processor according to Address Learning in the Linecard Processor composing of Multiple Network Processors and Multiplexing/Demultiplexing Module}
도 1은 본 발명이 적용되는 이더넷 시스템의 구성도이다.
도 2는 본 발명이 적용되는 라인카드의 구성도이다.
도 3은 본 발명에 따른 각 네트워크 프로세서에서 주소 학습 기능이 수행되는 과정을 보이는 흐름도이다.
도 4는 본 발명에 따른 메인 프로세서에서 주소 추가 요청 처리과정을 보이는 흐름도이다.
도 5는 본 발명에 따른 메인 프로세서에서 주소 삭제 요청 처리과정을 보이는 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명 *
1 : 메인 프로세서 2 : 스위치 패브릭
3,4 : 1기가비트 라인 카드(GEIA) 5,6 : 10기가비트 라인 카드(XEIA)
7,8,10,11,12 : 네트워크 프로세서 9 : 1기가비트 라인카드 프로세서
13 : 다중/역다중화기 14 : 라인카드 인터페이스
15 : 10기가비트 라인카드 프로세서 21,22,23 : 네트워크 프로세서 포트
본 발명은 네트워크 프로세서에서의 포워딩 테이블 관리방법에 관한 것으로서 보다 상세하게는, 복수개의 네트워크 프로세서 및 다중/역다중화기를 갖는 이더넷 시스템의 라인카드에서 복수 번의 반복되는 주소 학습 결과를 조정하여 각 네트워크의 포워딩 테이블 접근 횟수를 한 번으로 줄임으로써, 상기 각 네트워크 프로세서의 포워딩 테이블 엔트리 갱신 및 삭제 오버헤드를 한 번으로 줄이는 복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법에 관한 것이다.
일반적으로, 브리지 기능을 제공하는 이더넷 시스템의 포워딩 테이블은 주소 학습에 의하여 생성된다. 주소 학습은 수신되는 이더넷 데이터 프레임의 소스 주소 및 수신 포트를 에이징 시간(aging time) 동안 포워딩 테이블의 의미 있는 엔트리로 추가한다. 또한 에이징 시간 동안 동일 프레임이 수신되지 않으면 그 엔트리는 포워딩 테이블에서 삭제한다.
이더넷 시스템의 라인 카드는 고속의 포워딩을 제공하기 위하여 네트워크 프로세서(Network Processor)를 이용한다. 주소 학습 기능은 각 네트워크 프로세서에서 수행되며 메인 프로세서에서는 각 네트워크 프로세서에서 관리하는 정보를 통합하여 전달한다.
그러나, 상기한 바와 같이 작은 대역을 제공하는 복수개의 네트워크 프로세서 및 다중/역다중화기를 연결하여 큰 대역의 인터페이스를 제공할 수 있는 시스템 구조에서는, 주소 학습을 통한 포워딩 엔트리 생성시 1개의 라인 카드에서 복수 개의 반복되는 주소 학습 기능으로 인하여 포워딩 테이블 관리의 오버 헤드가 발생하는 문제점이 있었다. 특히, 이러한 반복적인 주소 학습 기능의 오버 헤드로 인해 포워딩 테이블 엔트리를 복수 번 갱신, 삭제하게 되어 효과적인 포워딩 테이블 관리가 어려웠다.
미국 특허 US6,236,654 B1에는, 다중의 포트를 통해 주소 학습이 발생하는 스위치에서 포워딩 정보를 생성하기 위하여 효율적으로 주소 학습 테이블을 관리하는 방법 및 장치에 대하여 기술하고 있다. 상기 선행특허에서는 다중의 포트를 통하여 데이터 패킷을 스위칭하도록 구성된 네트워크 스위치에서 프레임 포워딩 정보를 생성하기 위하여 하나의 주소 테이블을 사용한다. 포워딩 엔트리를 결정하는 엔 진이 일치하는 엔트리를 발견하지 않은 경우 그 스위치는 수신된 데이터 프레임의 소스 주소와 포트 번호를 가지고 주소 테이블에 해당 엔트리를 추가한다. 이와 같은 구성에서 새로 추가된 엔트리는 주소 테이블에서 연속적인 검색을 수행하면서 프레임 포워딩 정보를 생성하는데 사용된다. 그러나, 상기 선행특허는 단일 칩을 사용하는 라인카드에서의 정상적인 주소 학습방법을 제공하는 것으로서, 상술한 문제점을 근본적으로 해결하지 못한다. 즉, 복수개의 네트워크 프로세서에서 복수 번의 엔트리 갱신과 삭제 기능을 마치 단일 칩을 사용하는 라인카드에서와 같이 한번으로 수행할 수 있는 방법을 제공하지는 못한다.
본 발명은, 상기한 바와 같이 복수개의 네트워크 프로세서 및 다중/역다중화기를 갖는 이더넷 시스템의 라인카드에서, 복수 개의 반복되는 주소 학습 기능으로 인하여 포워딩 테이블 관리의 오버 헤드가 발생하는 종래의 문제점을 해결하기 위해 제안된 것으로서, 복수 번의 반복되는 주소 학습 결과를 조정하여 각 네트워크 프로세서의 포워딩 테이블 엔트리 갱신 및 삭제 오버헤드를 한 번으로 줄이는 복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명은, 메인 프로세서와 통신하며, 각각 다수의 포트를 갖는 복수개의 네트워크 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법에 있어서, 라인카드에 동일 소스 주소를 갖는 이더넷 데이터 프레임이 최대 N번 반복하여 수신되는 경우, 역다중화기는 각 네트워크 프로세서의 각 포트에 순차적으로 상기 프레임을 전달하는 라인카드 프레임전달단계; 상기 프레임을 수신한 각 네트워크 프로세서는 자신의 주소 학습 테이블을 확인하여 엔트리를 추가하고, 에이징 타이머(aging timer)를 초기화한 후, 상기 수신된 프레임을 메인 프로세서로 전달하는 메인 프로세서 프레임전달단계; 상기 프레임을 수신한 메인 프로세서는 상기 소스 주소를 이용하여 자신의 포워딩 테이블에 동일 엔트리가 존재하는지를 확인하는 엔트리 중복확인단계; 및 상기 확인결과, 동일한 엔트리가 존재하는 경우, 상기 메인 프로세서에서 각 네트워크 프로세서의 입력 포트에 대한 주소 학습 횟수를 나타내는 LRNG_CNT 플레그 값을 검사하여 0보다 크면 LRNG_CNT 플레그 값을 1증가시키고, 동일한 엔트리가 존재하지 않는 경우, 상기 포워딩 테이블에 해당 엔트리를 추가시키고, LRNG_CNT 플레그 값을 1증가시킨 후, 라인카드를 통하여 상기 각 네트워크 프로세서 내의 포워딩 테이블에 엔트리 생성을 요청하는 엔트리생성요청단계를 포함한다.
여기서, 상기 LRNG_CNT 플레그 값은, 다른 복수개의 네트워크 프로세서로부터 동일한 주소가 학습된 경우, 0보다 큰 값을 갖는다.
삭제
또한, 상기 목적을 달성하기 위한 본 발명은, 메인 프로세서와 통신하며, 각각 복수개의 포트를 갖는 복수개의 네트워크 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법에 있어서, 메인 프로세서가 이미 학습된 주소 데이터를 삭제하도록 요청받으면, 상기 메인 프로세서는 상기 주소 데이터의 소스 주소를 이용하여 자신의 포워딩 테이블에서 해당 엔트리가 존재하는지를 검사하는 엔트리 검사단계; 상기 검사결과 해당 엔트리가 존재하면, 상기 메인 프로세서에서 각 네트워크 프로세서의 입력 포트에 대한 주소 학습 횟수를 나타내는 LRNG_CNT 플레그 값을 확인하는 플레그 확인단계; 상기 확인결과, 상기 LRNG_CNT 플레그 값이 0이 아닌 경우 상기 LRNG_CNT 플레그 값을 1감소시키는 플레그 감소단계; 및 상기 1감소한 후의 LRNG_CNT 플레그 값을 확인하여, 그 값이 0이면 상기 메인 프로세서 내의 포워딩 테이블에서 상기 해당 데이터를 삭제한 후, 라인카드를 통하여 각 네트워크 프로세서 내의 포워딩 테이블에서 상기 데이터 삭제를 요청하는 데이터 삭제요청단계를 포함한다.
삭제
이하, 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명이 적용되는 이더넷 시스템의 구성도이다. 여기서, 본 발명은 도 1에 도시된 이더넷 시스템 뿐만 아니라, 도 1과 같은 시스템 구조를 어떠한 대역의 인터페이스든지 적용이 가능하도록 일반화한 도 2와 같은 일반적인 시스템 구조에서도 적용이 가능하다. 따라서, 이와 같은 구조에서 본 발명은 메인 프로세서에서의 주소 학습 결과를 나타내는 학습횟수카운트(LRNG_CNT) 플레그를 이용하여, 복수 번의 주소 학습 결과를 조정함으로써 각 네트워크 프로세서의 포워딩 테이블 접근 횟수를 1번으로 줄일 수 있는 방법을 제공하는 것이다. 여기서, 본 발명에서 명명한 '학습횟수카운트(LRNG_CNT:LEARNING COUNT) 플레그'는 이더넷 시스템의 네트워크 프로세서에서 광대역의 포트를 여러 개의 작은 대역의 포트로 트래픽이 분산하여 처리하는 경우 메인 프로세서에서 동일 포트로 인식하기 위해 주소 학습 결과를 나타낸다. 이 경우, 상기 메인 프로세서(1)에서는 네트워크 프로세서(1)의 동일 포트로 트래픽이 입력된 것으로 판단하여 포워딩 테이블 추가 또는 삭제를 1번만 수행하게 되며 이로서 오버헤드를 n-1번으로 줄이기 위하여 결국은 1번만 메인 프로세서(1)에서 라인카드의 네트워크 프로세서(10,11,12)로 관계를 갖도록 하기 위해 본 발명의 LRNG_CNT 플레그가 필요하다.
먼저, 도 1을 참조하면, 본 발명이 적용되는 이더넷 시스템은, 스위치 패브릭(2), 복수의 라인카드(3,4,5,6), 상기 스위치 패브릭(2)과 상기 복수의 라인카드(3~6)를 중재하는 메인 프로세서(1)로 구성된다. 실제 주소 학습은 각 라인카드 내부의 네트워크 프로세서(7~12)에서 수행되어 수신 정보가 메인 프로세서(1)로 전달되며, 상기 메인 프로세서(1)에서는 모든 정보를 통합하여 모든 네트워크 프로세서의 포워딩 테이블에 전달한다.
도 1에 도시된 바와 같이, 10기가 비트 라인카드(5,6)는 3개의 1기가 비트 네트워크 프로세서(10,11,12)와 다중/역다중화기(13)를 가지고, 10기가 비트의 대역을 제공하도록 구성되어 있다. 이와 동일한 구조에 대하여 대역을 일반화한 구조가 도 2와 같다.
도 2는 본 발명이 적용되는 라인카드의 구성도로서, BY 대역을 제공하는 라인카드의 구성도를 나타낸다. 도 2에 도시된 바와 같이, 본 발명이 적용되는 라인 카드는, n개의 네트워크 프로세서(10,11,12)와 다중/역다중화기(13), 실제 라인카드 대역을 제공하는 인터페이스(14), 그리고 메인 프로세서(1)와 통신을 수행하는 라인카드 프로세서(15)로 구성된다. 이와 같은 구조에서 라인카드(5)의 실제 포트의 대역 BY는 다음과 같다.
Figure 112002042101936-pat00001
여기서, j는 n개의 네트워크 프로세서 중 j번째 네트워크 프로세서를 지칭하고, Ij는 j번째 네트워크 프로세서가 갖는 총 포트 개수를 의미하며, i는 상기 총 포트 중 i번째 포트를 가리키고, bji는 j번째 네트워크 프로세서의 i번째 포트가 갖는 대역 값을 의미한다.
라인카드의 실제 인터페이스(14)로 최악의 경우
Figure 112002042101936-pat00002
번의 동일 소스 주소를 갖는 이더넷 데이터 프레임이 수신된다고 가정할 경우, 역다중화기(13)는 라운드 로빈(round robin)방식으로 동작하여 각 네트워크 프로세서(10,11,12)의 포트(21,22,23)로 순차적으로 수신 데이터 프레임을 전달한다. 상기 각 네트워크 프로세서에서 수행되는 주소 학습 과정은 하기 도 3에서 설명한다. 이 경우, 실제 상기 메인 프로세서(1)에서 상기 네트워크 프로세서(10,11,12)로의 2계층 포워딩 테이블 엔트리 갱신 및 삭제 기능은 최대
Figure 112002042101936-pat00003
번 수행된다.
본 발명에서는 이더넷 시스템의 각 네트워크 프로세서(10,11,12)에서 광대역의 포트를 여러 개의 작은 대역의 포트로 분산하여 처리하기 위하여 각 네트워크 프로세서(10,11,12)의 다수의 포트로 동일한 주소의 트래픽이 입력되는 경우 메인 프로세서(1)에서 이를 동일 포트로 인식하도록 해당 주소의 학습 횟수를 표시하는 학습횟수카운트(LRNG_CNT) 플레그를 사용하여 포워딩 테이블에서의 엔트리 갱신 및 삭제 횟수를 최대
Figure 112006011978040-pat00004
- 1 번까지 줄일 수 있다.
이하, 이러한 포워딩 테이블 엔트리 갱신 및 삭제 횟수를 줄이는 방법을 도면을 참조하여 설명한다.
도 3은 본 발명에 따른 각 네트워크 프로세서에서 주소 학습 기능이 수행되는 과정을 보이는 흐름도이다. 본 발명에서는 라인카드 내부의 네트워크 프로세서의 포트 개수 만큼 동일한 소스 주소를 갖은 이더넷 데이터 프레임이 상기 라인카드로 수신되었다고 가정하면, 역 다중화기는 상기 데이터 프레임을 상기 네트워크 프로세서의 처음 포트부터 마지막까지 순차적으로 전달한다.
도 3을 참조하여 각 네트워크 프로세서에서 주소 학습 기능의 수행과정을 설명한다. 먼저, 각 네트워크 프로세서(10,11,12)가 이더넷 데이터 프레임을 수신하면(S301), 자신의 주소 학습 테이블에서 소스 주소를 키(key)로 하여 상기 이더넷 데이터 프레임 있는지 중복 검사를 수행한다(S302). 상기 단계(S302)의 검사결과 상기 각 네트워크 프로세서(10,11,12)의 주소 학습 테이블에서 중복되는 엔트리가 발견되면(S303), 상기 각 네트워크 프로세서(10,11,12)의 포트 정보에 대한 중복 검사를 수행하여(S304) 포트 정보가 동일한지 판단한다(S305). 상기 단계(S305)에서의 판단결과, 상기 포트 정보가 동일하면 에이징 타이머를 초기화한 후(S308), 상기 각 네트워크 프로세서(10,11,12)는 상기 수신된 이더넷 데이터 프레임을 메인 프로세서(1)로 전달한다(S309).
그러나, 상기 단계(S305)에서의 판단결과, 상기 포트 정보가 동일하지 않으면, 기존의 포트 정보를 갱신하고(S306), 에이징 타이머를 초기화한 후(S308), 상기 네트워크 프로세서는 상기 수신된 이더넷 프레임을 상기 메인 프로세서(1)로 전달한다(S309).
만일, 상기 단계(S302)에서의 검사결과, 상기 주소 학습 테이블에서 중복되는 동일 엔트리가 발견되지 않은 경우(S303)에는, 상기 주소 학습 테이블에 엔트리를 추가하고(S307), 상기 에이징 타이머를 초기화한 후(S308), 상기 각 네트워크 프로세서(10,11,12)는 상기 수신된 이더넷 데이터 프레임을 상기 메인 프로세서(1)로 전달한다(S309).
도 4는 본 발명에 따른 메인 프로세서에서 주소 추가 요청 처리과정을 보이는 흐름도이다. 도 4를 참조하여 이를 설명한다. 먼저, 메인 프로세서(1)가 각 네트워크 프로세서(10,11,12)로부터 이더넷 데이터 프레임을 수신한 후(S401), 상기 메인 프로세서(1)의 포워딩 테이블에서 소스 주소를 키(key)로 하여 중복 검사를 수행함으로써 동일 엔트리가 존재하는지를 판단한다(S402). 상기 단계(S402)에서의 판단결과, 동일 엔트리가 존재하면 상기 메인 프로세서(1)에서 각 네트워크 프로세서(10,11,12)의 입력 포트에 대한 주소 학습 횟수를 나타내는 LRNG_CNT 플레그 값을 검사하여(S403), 그 값이 0 인지 판단한다(S404). 다른 복수개의 네트워크 프로세서(10,11,12)로부터 동일한 주소가 학습된 경우, 상기 LRNG_CNT 플레그 값은 0보다 큰 값을 갖는다.
상기 단계(S404)에서의 판단결과, 상기 LRNG_CNT 플레그 값이 0이면, 이는 데이터가 없어야 하는데 발견된 경우이므로 에러 메시지를 출력한 후(S406) 종료한다. 만일, 상기 단계(S404)에서의 판단결과, 상기 LRNG_CNT 플레그 값이 0보다 큰 값을 가진다면, 이 경우는 이미 다른 네트워크 프로세서로부터 동일 주소가 학습되어 수신된 경우이므로 LRNG_CNT 플레그를 1 증가시킨 후(S405) 종료한다.
상기 단계(S402)에서의 판단결과, 상기 중복검사에서 동일 엔트리가 발견되지 않은 경우, 이는 처음 수신된 주소 정보이므로 상기 포워딩 테이블에 엔트리를 새로 추가하고(S407), LRNG_CNT 플레그 값을 1 증가시킨 후(S408), 모든 라인 카드 프로세서(9,15)를 통하여(S409) 모든 네트워크 프로세서(7,8,10,11,12) 내의 포워딩 테이블에 엔트리 생성을 요청한다(S410).
이로써 이미 각 네트워크 프로세서(16,17,18)의 포워딩 테이블에 존재하는 정보에 대하여 중복해서 갱신하는 오버 헤드를 줄일 수 있게 된다.
도 5는 본 발명에 따른 메인 프로세서에서 주소 삭제 요청 처리과정을 보이는 흐름도이다. 도 5를 참조하여 이를 상세하게 설명한다. 메인 프로세서(1)가 각 네트워크 프로세서(10,11,12)에서 에이징 아웃(aging out)이 발생한 경우 이미 학습된 주소 데이터를 삭제하도록 요청을 수신하면(S501), 상기 메인 프로세서(1)는 상기 수신 주소 정보를 가지고 포워딩 테이블에서 해당 데이터를 검색하여(S502), 상기 해당 엔트리가 존재하는지를 판단한다(S503). 상기 단계(S503)에서의 판단결과, 상기 해당 엔트리가 존재하지 않으면, 에러 출력 후(S505) 종료되고, 상기 해당 엔트리가 존재하면 LRNG_CNT 플레그를 검사하여(S504), 그 값이 0인지를 판단한다(S505). 상기 단계(S505)에서의 판단결과, 상기 LRNG_CNT 플레그가 0이면, 에러 출력 후(S506) 종료하고, 그 값이 0이 아니면 해당 플레그 값을 1 감소하고(S507) 상기 감소한 결과값이 0인지를 판단한다(S508).
상기 단계(S508)에서의 판단결과, 상기 감소한 LRNG_CNT 플레그 값이 0이면, 이는 중복 주소 학습된 경우 마지막 엔트리에 해당하므로, 상기 메인 프로세서(1) 내의 포워딩 테이블에서 해당 엔트리를 삭제한다(S509). 이어, 상기 라인카드 프로세서(15)를 통하여(S510) 모든 네트워크 프로세서(10,11,12)의 포워딩 테이블에서 해당 엔트리를 삭제하도록 한다(S511).
만일, 상기 단계(S508)에서의 판단결과, 상기 감소한 LRNG_CNT 플레그 값이 0이 아니면, 이는 아직 그 데이터가 각 네트워크 프로세서(10,11,12)의 포워딩 테이블에서 사용 가치가 있다는 의미이므로, 상기 각 네트워크 프로세서(10,11,12)에게 어떠한 명령도 내리지 않고 종료한다.
이상에서 설명한 바와 같이, 본 발명은 여러 개의 작은 성능의 네트워크 프로세서를 이용하여 그것이 제공하는 작은 대역을 갖는 인터페이스를 머지(merge)하여 1개의 큰 대역을 갖는 인터페이스로 동작하도록 하는 라인 카드에서, 복수개의 네트워크 프로세서가 제공하는 인터페이스의 개수만큼의 중복된 주소 학습이 상기 라인 카드의 실제 인터페이스로 수신된 경우, 메인 프로세서에서 LRNG_CNT 플레그를 사용하여 상기 네트워크 프로세서의 인터페이스 개수만큼 상기 메인 프로세서와 상기 각 네트워크 프로세서에서의 포워딩 테이블 갱신 또는 삭제가 발생하는 것을 1번으로 줄일 수 있는 방법을 제공한다.
따라서, 각각 다수의 대역을 제공하는 복수개의 포트를 갖는 N개의 네트워크 프로세서와 다중/역다중화기로 구성된 라인카드에서
Figure 112002042101936-pat00005
번 반복적으로 동일 주소가 발생하는 경우, 메인 프로세서에서 LRNG_CNT 플레그 값을 사용하여 모든 네트워크 프로세서의 포워딩 테이블에서 해당 엔트리의 갱신 요청 및 삭제요청을 최대
Figure 112002042101936-pat00006
- 1 번까지 줄일 수 있게 된다.
삭제
본 발명의 상세한 설명 및 도면에는 본 발명을 이해를 돕기 위한 바람직한 일실시예를 개시한 것으로서 본 발명의 권리범위를 한정하는 것은 아니며, 본 발명의 권리의 범위는 상기한 상세한 설명에 의해 결정되는 것이 아니라 첨부한 청구범 위에 결정되어야만 할 것이다.
본 발명에 의하면, 기존의 작은 대역을 제공하는 복수개의 네트워크 프로세서를 다중/역다중화기로 연결하여 큰 대역의 인터페이스를 제공할 수 있는 시스템 구조에서, 복수 번의 반복되는 주소 학습 기능으로 인한 포워딩 테이블 엔트리의 복수번 갱신 또는 삭제 오버 헤드를 1번으로 줄임으로써, 마치 1개의 네트워크 프로세서에서 수행되는 것과 동일한 효과를 낼 수 있다.
상술한 상세한 설명 및 도면에 개시된 내용은 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자에게는 본 발명의 정신을 벗어나지 않는 범위 내에서 다양한 수정 및 변경이 가능함은 명백한 것이다.

Claims (5)

  1. 메인 프로세서와 통신하며, 각각 다수의 포트를 갖는 복수개의 네트워크 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법에 있어서,
    라인카드에 동일 소스 주소를 갖는 이더넷 데이터 프레임이 최대 N번 반복하여 수신되는 경우, 역다중화기는 각 네트워크 프로세서의 각 포트에 순차적으로 상기 프레임을 전달하는 라인카드 프레임전달단계;
    상기 프레임을 수신한 각 네트워크 프로세서는 자신의 주소 학습 테이블을 확인하여 엔트리를 추가하고, 에이징 타이머(aging timer)를 초기화한 후, 상기 수신된 프레임을 메인 프로세서로 전달하는 메인 프로세서 프레임전달단계;
    상기 프레임을 수신한 메인 프로세서는 상기 소스 주소를 이용하여 자신의 포워딩 테이블에 동일 엔트리가 존재하는지를 확인하는 엔트리 중복확인단계; 및
    상기 확인결과, 동일한 엔트리가 존재하는 경우, 상기 메인 프로세서에서 각 네트워크 프로세서의 입력 포트에 대한 주소 학습 횟수를 나타내는 LRNG_CNT 플레그 값을 검사하여 0보다 크면 LRNG_CNT 플레그 값을 1증가시키고, 동일한 엔트리가 존재하지 않는 경우, 상기 포워딩 테이블에 해당 엔트리를 추가시키고, LRNG_CNT 플레그 값을 1증가시킨 후, 라인카드를 통하여 상기 각 네트워크 프로세서 내의 포워딩 테이블에 엔트리 생성을 요청하는 엔트리생성요청단계를 포함하는 것을 특징으로 하는 복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법.
  2. 제 1항에 있어서, 상기 메인 프로세서 프레임전달단계는,
    상기 각 네트워크 프로세서가 상기 소스 주소를 이용하여 상기 주소 학습 테이블에 동일 엔트리가 존재하는지를 검사하는 단계; 및
    상기 검사결과 동일 엔트리가 존재하면, 포트 정보가 동일한지 판단하여 동일하면 상기 에이징 타이머를 초기화하고, 동일하지 않으면 해당 포트 정보를 갱신한 후 상기 에이징 타이머를 초기화하는 단계를 포함함을 특징으로 하는 복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법.
  3. 제 1항에 있어서, 상기 LRNG_CNT 플레그 값은,
    다른 복수개의 네트워크 프로세서로부터 동일한 주소가 학습된 경우, 0보다 큰 값을 갖는 것을 특징으로 하는 복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법.
  4. 메인 프로세서와 통신하며, 각각 다수의 포트를 갖는 복수개의 네트워크 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법에 있어서,
    메인 프로세서가 이미 학습된 주소 데이터를 삭제하도록 요청받으면, 상기 메인 프로세서는 상기 주소 데이터의 소스 주소를 이용하여 자신의 포워딩 테이블에서 해당 엔트리가 존재하는지를 검사하는 엔트리 검사단계;
    상기 검사결과 해당 엔트리가 존재하면, 상기 메인 프로세서에서 각 네트워크 프로세서의 입력 포트에 대한 주소 학습 횟수를 나타내는 LRNG_CNT 플레그 값을 확인하는 플레그 확인단계;
    상기 확인결과, 상기 LRNG_CNT 플레그 값이 0이 아닌 경우 상기 LRNG_CNT 플레그 값을 1감소시키는 플레그 감소단계; 및
    상기 1감소한 후의 LRNG_CNT 플레그 값을 확인하여, 그 값이 0이면 상기 메인 프로세서 내의 포워딩 테이블에서 상기 해당 데이터를 삭제한 후, 라인카드를 통하여 각 네트워크 프로세서 내의 포워딩 테이블에서 상기 데이터 삭제를 요청하는 데이터 삭제요청단계를 포함함을 특징으로 하는 복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소 학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법.
  5. 제 4항에 있어서, 상기 데이터 삭제요청단계는,
    상기 1감소한 LRNG_CNT 플레그 값이 0인 경우 상기 해당 엔트리는 상기 메인 프로세서 내의 포워딩 테이블에 복수번 중복으로 학습된 엔트리 중 마지막 엔트리인 것을 특징으로 하는 복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법.
KR1020020081506A 2002-12-20 2002-12-20 복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법 KR100592873B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020020081506A KR100592873B1 (ko) 2002-12-20 2002-12-20 복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법
US10/463,036 US7424015B2 (en) 2002-12-20 2003-06-16 Method of managing forwarding tables of network processors based on address learning in line card

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020081506A KR100592873B1 (ko) 2002-12-20 2002-12-20 복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법

Publications (2)

Publication Number Publication Date
KR20040054957A KR20040054957A (ko) 2004-06-26
KR100592873B1 true KR100592873B1 (ko) 2006-06-23

Family

ID=32588838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020081506A KR100592873B1 (ko) 2002-12-20 2002-12-20 복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법

Country Status (2)

Country Link
US (1) US7424015B2 (ko)
KR (1) KR100592873B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040254931A1 (en) * 2003-05-29 2004-12-16 Marconi Communications, Inc. Multiple key self-sorting table
JP4794670B2 (ja) * 2007-09-05 2011-10-19 富士通株式会社 経路制御装置
CN101827008A (zh) * 2009-03-04 2010-09-08 中兴通讯股份有限公司 一种控制以太网地址表刷新次数的方法
US9792559B2 (en) * 2012-06-01 2017-10-17 Nec Corporation Switching system, line card, switch card, FDB learning method, FDB learning arbitration method and program
US10419267B2 (en) * 2014-01-22 2019-09-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Network control software notification with advance learning
CN109479006B (zh) 2016-07-06 2020-08-25 华为技术有限公司 生成转发表的方法和转发设备
CN111884899B (zh) 2016-07-06 2023-12-08 华为技术有限公司 发送数据的方法和转发设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2944531B2 (ja) * 1996-09-12 1999-09-06 日本電気通信システム株式会社 Lan間接続装置
US6185630B1 (en) * 1997-02-14 2001-02-06 Advanced Micro Devices, Inc. Device initializing system with programmable array logic configured to cause non-volatile memory to output address and data information to the device in a prescribed sequence
US6785274B2 (en) * 1998-10-07 2004-08-31 Cisco Technology, Inc. Efficient network multicast switching apparatus and methods
US6778542B1 (en) * 2000-12-11 2004-08-17 Alcatel Bridging network device with time windowed discovery of machine addresses
US6993033B1 (en) * 2001-04-04 2006-01-31 Advanced Micro Devices, Inc. Method and apparatus for synchronizing aging operations associated with an address table
US7046629B2 (en) * 2001-09-26 2006-05-16 D-Link Corporation Method for controlling number of addresses in address table of switch
US7190696B1 (en) * 2002-03-05 2007-03-13 Force10 Networks, Inc. System and method for distributing packets among a plurality of paths to a destination
US7417987B2 (en) * 2002-06-04 2008-08-26 Lucent Technologies Inc. Distribution of forwarding information in a network node

Also Published As

Publication number Publication date
US7424015B2 (en) 2008-09-09
KR20040054957A (ko) 2004-06-26
US20040120327A1 (en) 2004-06-24

Similar Documents

Publication Publication Date Title
EP1019833B1 (en) Mechanism for packet field replacement in a multi-layered switched network element
JP4542539B2 (ja) ルートルックアップエンジン
EP1208676B1 (en) Network switch using network processor
DE60033529T2 (de) Netzprozessor, speicherorganisation und verfahren
US6985431B1 (en) Network switch and components and method of operation
US6577634B1 (en) Method for sharing network information and a router apparatus
US6094683A (en) Link bundling in a network
EP0993635B1 (en) Method and apparatus for dynamic queue sizing
US20080240133A1 (en) Communication device, communication system, and lag management table management method used therefor
US6769033B1 (en) Network processor processing complex and methods
US6766381B1 (en) VLSI network processor and methods
KR100793349B1 (ko) Ppp 멀티링크를 지원하는 시스템에서의 멀티캐스트트래픽 포워딩 장치 및 제어방법
CN109743414B (zh) 利用冗余连接提高地址翻译可用性的方法及计算机可读存储介质
US20190370376A1 (en) High-availability network device database synchronization
US8566833B1 (en) Combined network and application processing in a multiprocessing environment
KR100592873B1 (ko) 복수개의 프로세서 및 다중/역다중화기를 갖는 라인카드에서 주소학습에 따른 네트워크 프로세서의 포워딩 테이블 관리방법
US6983334B2 (en) Method and system of tracking missing packets in a multicast TFTP environment
US7827324B2 (en) Method of handling flow control in daisy-chain protocols
JP4316349B2 (ja) パケット転送経路制御装置および制御プログラム
US7710991B1 (en) Scalable packet routing and switching device and method
US7382776B1 (en) Performing block storage virtualization at a switch
JP3199914B2 (ja) フレーム中継制御方法、及びその装置
WO2023085267A1 (ja) データ転送装置およびデータ転送方法
KR100210782B1 (ko) 전전자 교환기에 있어서 이더넷 포트 이중화 방법
JPH0637865A (ja) 通信プロトコル処理装置の二重化運転方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20110609

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee