KR100697568B1 - 스위칭 환경을 위한 결합 파이프라인 패킷 분류 및어드레스 검색 방법 및 장치 - Google Patents

스위칭 환경을 위한 결합 파이프라인 패킷 분류 및어드레스 검색 방법 및 장치 Download PDF

Info

Publication number
KR100697568B1
KR100697568B1 KR1020050057585A KR20050057585A KR100697568B1 KR 100697568 B1 KR100697568 B1 KR 100697568B1 KR 1020050057585 A KR1020050057585 A KR 1020050057585A KR 20050057585 A KR20050057585 A KR 20050057585A KR 100697568 B1 KR100697568 B1 KR 100697568B1
Authority
KR
South Korea
Prior art keywords
packet
frame type
packet header
switching node
match
Prior art date
Application number
KR1020050057585A
Other languages
English (en)
Other versions
KR20060048742A (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 코넥스안트 시스템스, 인코퍼레이티드
Publication of KR20060048742A publication Critical patent/KR20060048742A/ko
Application granted granted Critical
Publication of KR100697568B1 publication Critical patent/KR100697568B1/ko

Links

Images

Classifications

    • 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/3063Pipelined operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching

Landscapes

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

Abstract

패킷 스위칭 노드와 관련된 입력 포트를 경유하여 수신된 패킷을 처리하는 파이프라인 패킷 처리 구성을 가지는 패킷 스위칭 노드가 제공된다. 상기 장치에 의하여 실행되는 방법은 아래와 같은 것들을 포함한다: 수신된 패킷의 패킷 프레임 타입을 결정하는 단계; 패킷 프레임 타입에게 지정된 패킷 헤더 필드 값들을 선택적으로 추출하고, 그리고 추출된 패킷 헤더 필드 값은 패킷 어드레싱 정보를 포함하는 단계; 패킷과 관련하여 수행되어야 할 예비 동작을 패킷에게 귀속시키는 단계; 추출된 패킷 어드레싱 정보에 기초하여 패킷 스위칭 노드에 의하여 추적된 패킷 스위칭 정보를 검색하는 단계; 패킷을 위하여 예비 스위치 반응을 공식화하는 단계; 다수 개의 패킷 흐름 중 하나로 패킷을 분류하는 단계; 예비 동작, 패킷이 분류된 패킷 흐름 및 입력 포트에 해당하는 디폴트 포트 동작 중 하나에 따라 예비 스위치 반응을 수정하는 단계; 예비 동작, 패킷 흐름 및 디폴트 포트 동작 중 하나에 따라 패킷 헤더를 수정하는 단계; 및 스위치 반응에 따라 패킷을 처리하는 단계. 이점들은 아래와 같은 것들로부터 유도된다: 부적절한 패킷을 위한 처리의 나머지 부분을 빠르게 절단시키는 것이 가능한 패킷의 파이프라인 처리; 공지된 프레임 타입을 신속하게 결정하고 아울러 특정 실행의 퇴화를 지연시키는 새로운 프레임 타입을 지원하는 유연성을 가지는 유연한 프레임 타입 결정; 차후의 단계들에 의하여 연속적으로 상세하게 되는 처리 동작의 초기 결정; 네트워크 어드레스 테이블 저장 요구를 감소시키고, 네트워크 어드레스 테이블 접근, 대용량의 외부 해싱 이 된 일차 네트워트 어드레스 테이블 및 소 용량의 내부 이차 네트워크 어드레스 테이블을 위하여 감소된 데이터 전송 대역을 요구하는 짧은 비트 길이 인덱스 레이어-2 및 레이어-3 네트워크 어드레스에서 작동하는 결합된 레이어-2 및 레이어-3 네트워크 어드레싱 검색 엔진; 스위치 반응의 초기 결정; 및 패킷 분류 기초 스위치 반응 및 패킷 헤더 수정.
파이프라인, 어드레싱 검색 엔진, 선택자, 지정자, 수정자

Description

스위칭 환경을 위한 결합 파이프라인 패킷 분류 및 어드레스 검색 방법 및 장치{Combined Pipelined Packet Classification and Address Search Method and Apparatus for Switching Environments}
본 발명의 특징 및 이점들은 첨부된 도면을 참조하는 예시적인 실시 형태의 아래의 상세한 설명으로부터 명백해질 것이다.
도 1은 본 발명의 예시적인 실시 형태에 따라 패킷 스위칭 환경에서의 결합 파이프라인 방식의 검색 및 분류 엔진을 실행하는 구성요소들을 개략적으로 도시한 것이다.
도 2는 본 발명의 실시 예에 따라 연속적인 프레임 타입의 제거를 개념적으로 도시한 것이다.
도 3은 본 발명의 실시 예에 따라 결정 트리 파싱 엔진의 예시적인 구성 요소를 개략적으로 도시한 것이다.
도 4는 본 발명의 실시 예에 따라 연속적인 프레임 타입 제거 과정을 순환적인 단계로 나타낸 흐름도를 도시한 것이다.
도 5는 본 발명의 실시 예의 예시적인 구현에 따라 예시적인 패킷 처리 파이프라인의 단계 5에 의하여 예시적으로 수행되는 동작에 따른 예시적인 우선성들을 도시한 것이다.
도 6은 본 발명의 실시 예에 따라 예시적인 패킷 처리 파이프라인의 단계 5의 예시적인 구현을 상세하게 도시한 것이다.
도 7 은 본 발명의 실시 예에 따라 계측 및 카운팅 모듈 실행을 보다 상세하게 도시한 것이다.
본 발명은 패킷 스위치 통신에 관한 것이고, 특히 결합 파이프라인 검색 및 분류 방법 및 장치에 관한 것이다.
패킷 스위칭 통신 분야에서, 통신 네트워크에 관여하는 소스 네트워크 노드와 목적지 네트워크 노드 사이에 전달된 내용은 패킷 단위로 전송을 위하여 분리가 된다. 패킷은 패킷 헤더 및 내용 부하(a content payload)를 포함하는 구조를 가진다. 제한되지 않는 예로서 스위칭 네트워크 노드와 같은 소스 및 목적지 네트워크 노드는 패킷 헤더 내에 특정된 정보에 기초하여 각각의 패킷을 수신하고, 저장하고, 검사하고, 처리하고 그리고 전달한다. 이러한 작동 모드는 비-결정 저장-그리고-전달 패킷-스위칭(non-deterministic store-and forward packet-switching)으로 알려져 있다.
스위칭 네트워크 노드들은 복합-포트(multiported) 네트워크 노드들이다. 입력 포트를 통하여 수신된 저장 패킷을 처리하는 것은 저장 패킷을 전달하는 적어도 하나의 출력 포트를 결정하는 것을 포함한다. 적어도 하나의 결정된 출력 포트를 통하여 실질적인 전달과 결합된 적어도 하나의 출력 포트의 결정은 패킷 스위칭으로 알려져 있다. 포괄적인(generic) 스위칭 네트워크 노드의 특징 및 통신 네트워크의 중심(core)에서 스위칭 네트워크의 요구, 즉 출력 대폭 허용, 저장-전달 패킷 스위칭은 진행에 기초하여 입력 라인/유선 속도로 실행이 되어야 한다. 그와 같은 요구는 합리적으로 보이는 한편, 이 분야에서의 수많은 최근의 진보로 인하여, 그리고 이에도 불구하고 실질적으로 이루어지기 어렵다.
패킷 스위치 통신의 역사 및 발전은 아래와 같은 매우 다양한 것들을 포함한다: 유선, 무선,광학 물리 전송 등; 이더넷 기술을 포함하는 데이터-링크 레이어-2(Layer-2)에서의 복합 캡슐화 기술의 사용; 인터넷 프로토콜(IP), 인터넷 제어 메시지 프로토콜(ICMP) 등을 포함하는 레이어-3(Layer-3)에서의 복합 전송 프로토콜. 아이피-오버-이더넷(IP-over-Ethernet) 기술은 가장 광범위한 배치를 이용한다.
예를 들어, 표준 아이피/이더넷은 비-결정 최선의 패킷 전송(non-deterministic best-effort packet transport)을 제공한다. 비-결정 특성은 장애가 발생한 통신 네트워크 하부 구조(infrastructure)를 우회하여 패킷의 자동적인 재-라우팅을 제공하지만, 그러나 최선의 특징은 소스 및 목적지 네트워크 노드 사이에 성공적인(너무 시기에 맞지 않는 것이 아닌) 패킷 전송과 관련된 보장 수단을 제공하지는 않는다. 전송 제어 프로토콜(TCP)이 재-전송을 요구하기 위한 수단을 제공하도록 간과된 패킷을 식별하기 위하여 사용된다. 적절한 패킷 전송이 트래픽/서비스 분화를 경유하여 전달이 되고 그리고 소스 및 목적지 네트워크 노드 사이에 중간 통신 네트워크 노드에서 우선 패킷 처리를 통하여 제공된다.
유선/라인 속도로 유지-패킷 스위칭(sustained packet-switching)을 제공하는 경우에 있어 위에서 제기된 모든 문제들을 처리한다는 것은 어려운 일이다. 이와 관련된 이론적인 발전은 그와 같은 스위칭 네트워크 노드들이 구성될 수 있다고 확신하는 반면, 실질적인 실행은 높은 개발 정도, 실행 및 유효 비용에 대한 문제로 곤경에 처해지게 되고, 아울러 다양한 실행 복잡성으로 인하여 어려움을 겪게 된다. 이 분야에서의 빠른 발전으로 인하여, 복합-프로토콜 최소 길이 패킷을 처리하는 동안 스위치 네트워크 노드들이 라인/유선 속도로 작동하도록 요구될 뿐만 아니라, 장래 기술 발전의 관점에서 장비의 퇴보를 지연시키기 위하여 일정한 유연성이 필요하다.
선행기술로는 Kadambi 등에 의한 "Network Switching Architecture with Fast Filtering Processor"라는 발명의 명칭으로 2002년 5월 9일에 공개된 미국 출원 공개 번호 2002/54604 A1은 입력 노드를 경유하여 유입된 패킷을 필터링하는 장치 및 방법에 대하여 기술하고 있다. 패킷을 폐기할 것인가의 판단에 있어서 패킷 처리 완결 과정은 패킷 필터링으로 알려져 있다. Kadambi 특허에서는 단일 칩 위에 스위칭 네트워크 노드의 실행을 개시하고 있으며, 상기에서 스위칭 노드 기능은 독립적인 개발을 위하여 모듈화 되어 있는 반면, 각각의 포트와 관련하여 실행되는 필터링이 관점에서 구현된 필터링이 포트 모듈 사이에 내부 통신을 제공하는 3개 채널의 복잡하고 조정된 그룹을 필요로 하므로 기술된 실행은 복잡하고 그리고 성가신 것이 된다. 패킷 필터링 그 자체는 패킷 스위칭을 수행하지 않으며, 단지 불필요한 패킷 처리를 감소시키는 수단을 제공할 뿐이다. 패킷 필터링의 중요성을 추 가로 지적하는 몇 가지 보안 측면이 패킷 필터링을 통하여 처리된다. 포트 기반 필터링이 패킷 필터링을 라인/유선 속도로 제공하는 반면, 필터링 자체만으로는 스위칭 네트워크 노드에서 패킷 처리에 관하여 위에서 기술된 다른 문제들이 처리되지 않는다.
Yik 등(이들 중 몇 명은 본 명세서에서 거론된다)에 의하여 2004년 2월 24일에 등록되고 "High Speed MAC Address Search Engine"라는 발명의 명칭을 가지며, 참조로서 본 명세서에 결합되는 미국특허번호 6,697,873 B1은 스위칭 네트워크 노드와 같은 통신 네트워크 노드에서 네트워크 노드 어드레스들을 저장하고 검색하는 장치와 방법을 기술하고 있다. 상기 장치는 MAC(Media Access Control) 어드레스를 저장하고 검색하기 위한 두 개의 MAC 어드레스 테이블을 포함한다. 제1 순위의 MAC 어드레스 테이블은 MAC 어드레스에 상응하는 압축된 값을 지정하는 기록들을 저장하고, 각 기록들은 인덱스로서 해싱이 된(hashed) MAC 어드레스 값을 사용하여 참조된 저장 위치에 저장된다. 동일한 인덱스에 대한 그리고 그로 인한 제1 순위의 MAC 어드레스 테이블에 있는 동일한 위치에 대한 다중 MAC 어드레스 해싱으로부터 기인하는 검색 충돌을 설명하기 위하여, 제1 순위의 MAC 어드레스 테이블에 있는 각 기록들은 제2 순위의 MAC 어드레스 테이블에 저장되어 있는 해당 기록의 체인(chain)에게 추가로 연결된다. 제2 순위의 MAC 어드레스 테이블에 있는 기록들은 전체 MAC 어드레스를 지정한다. 스위칭 네트워크 노드에서의 MAC 어드레스 저장은 패킷 스위칭에서 요구되는 처리를 감소시키는 경우에 있어 매우 중요하다: MAC 어드레스 테이블에 있는 기록들은 또한 유사하게 전달된 패킷들을 위하여 미리 결정 된 출력 포트들을 포함한다. MAC 어드레스 테이블로부터 신속하게 MAC 어드레스 기록을 검색하는 것은 신속한 패킷 스위칭을 성취에 있어서 중요하다. Yik 등에 의하여 기술된 실행은 MAC 어드레스 인덱스 실현 비용과 MAC 어드레스 검색 속도간의 균형을 제공한다.
2003 년 12월 31일 발명자 Barrak 외(이들 중 몇 명은 본명세서에서 거론된다.)에 의하여 출원된 미국 출원 공개 번호 10/750,445, "High Speed MAC Address Search Engine"은 본 명세서에 참조로서 결합되고, 그리고 스위칭 네트워크 노드와 같은 통신 네트워크 노드에서 네트워크 노드 어드레스들을 저장하고 검색하는 개선된 장치와 방법을 기술하고 있다. 상기 장치는 MAC(Media Access Control) 어드레스를 저장하고 검색하기 위한 두 개의 MAC 어드레스 테이블을 포함한다. 패킷 스위칭 프로세서의 외부에 있는 제1 순위의 MAC 어드레스 테이블은 MAC 어드레스에 해당하는 압축된 값을 지정하고, 기록들을 저장하고, 하나 이상의 기록들은 인덱스들로서 해싱이 된 MAC 어드레스 값을 사용하여 참조되는 저장위치에 저장된다. 제1 순위의 MAC 어드레스 테이블의 외부 저장은 스위칭 프로세서와 외부 메모리사이의 데이터 전송에 대하여 균형을 이루는 충분한 저장 공간을 제공하는 셀프 메모리(shelf memory)의 사용 중지를 가능하도록 한다. 상기 인덱스에 대한 다중 MAC 어드레스 해싱으로부터 기인하는 검색 충돌을 설명하기 위하여, 제1 순위의 MAC 어드레스 테이블에 있는 각 기록들은 제2 순위의 MAC 어드레스 테이블에 저장되어 있는 기록의 해당 체인에 추가로 연결된다. 제2 순위의 MAC 어드레스 테이블에 있는 기록들은 압축된 MAC 어드레스를 지정하여 특히 제2 순위의 MAC 어드레스 테이블이 패킷 스위칭 프로세서와 함께 동일한 마이크로 칩 다이(die)위에서 실행됨에 따라 제 2 순위의 MAC 어드레스 테이블의 저장 공간 요구는 최소화된다.
전술한 바와 같이 개선된 스위칭 성능에 대하여 커다란 진보가 이루어졌지만, 보다 향상된 스위칭 실행에서 특히 고밀도 포트 지원에 있어서는 위에서 언급한 문제들을 처리할 필요가 여전히 존재한다.
본 발명의 하나의 특징에 따르면, 유연한 헤더 파싱 계획(header parsing scheme)이 제공되며, 상기에서 총 회선/유선 비율로 유입하는 패킷의 특정 패킷 헤더 비트 패턴(packet header bit pattern)의 검사에 기초하여 다양한 프레임 타입(frame type)을 결정하기 위하여 세 개의 헤더 파싱 엔진이 병렬로 사용된다. 세 개의 헤더 파싱 엔진의 사용은 유연성을 제공한다: 하나의 하드웨어 엔진은 표준 공지 프레임 타입을 위한 빠른 프레임 타입을 식별을 제공하고, 구성 가능한 결정 트리 파싱 엔진은 연속적인 프레임 타입 제거 프로세서를 통하여 프레임 타입을 판단하고, 그리고 구성 가능한 템플릿 매치 엔진(template match engine)은 비트 템플릿(bit template) 비교를 수행한다.
본 발명의 다른 특징에 따르면, 최소한 그리고 빠른 예비처리를 보장하는 프레임 타입 결정 이후 패킷 헤더로부터 패킷 헤더 필드 값이 추출된다. 사용자 구성 가능한 필드 추출자가 사용된다. 추출된 필드의 오프셋은 각 프레임 타입의 관련하여 지정될 수 있다. 몇몇 패킷 타입을 위하여, 패킷 처리 동작이 파이프라인의 초기 단계에서 결정될 수 있다.
본 발명의 또 다른 특징에 따르면, 레이어-2 소스 및 목적지 MAC 어드레스 및 레이어-3 소스 및 목적지 IP 어드레스를 어드레스 테이블 검색에서 사용된 내부 인덱스로 맵핑(mapping)함으로써 실행 비용을 줄일 수 있다. 결합된 L2 및 L3 검색 엔진은 해싱 기반의 검색 계획을 사용하여 추출된 네트워크 어드레싱 필드 값을 짧은 비트 길이를 갖는 인덱스로 맵핑을 한다.
본 발명의 또 다른 특징에 따르면, VLAN ID(Virtual Local Area Network IDentifier) 삽입, VLAN 리-맵핑, TOS( Type-of-Service) 리-맵핑,QoS(Quality-of-Service) 수행, 필터링, 전송 및 헤더 수정을 포함하는, 하지만 이에 한정되지는 않는, 패킷 분류가 최종 동작의 특징이 된다.
본 발명의 또 다른 특징에 따르면, 파이프라인 패킷 처리 구조를 갖는 패킷 스위칭 노드가 제공된다. 패킷 스위칭 노드는 아래와 같은 것들을 포함한다: 패킷 스위칭 노드의 입력 노드를 경유하여 수신된 패킷의 패킷 프레임 타입을 결정하기 위한 수단; 추출된 패킷 헤더 필드 값이 패킷 어드레스 정보를 포함할 때, 패킷 프레임 타입에 지정된 패킷 헤더 필드 값을 선택적으로 추출하는 수단, 그리고 추출된 패킷 헤더 필드 값은 패킷 어드레싱 정보를 포함한다; 패킷과 관련하여 수행되어야 할 예비 동작을 패킷에게 돌리기 위한 수단; 추출된 패킷 어드레싱 정보에 기초하여 패킷 스위칭 노드에 의하여 추적된 패킷 스위칭 정보를 검색하는 수단; 및 패킷에 대한 예비 스위칭 반응을 형성하는 수단. 패킷 분류자는 패킷을 복수의 패킷 흐름 중의 하나로 분류한다. 스위칭 반응 수정자는 예비 동작, 패킷이 분류된 패킷 흐름, 및 입력 포트에 해당하는 디폴트(default) 포트 동작 중 어느 하나에 따라 패킷 헤더를 수정한다. 패킷 스위칭 노드는 추가로 스위칭 반응에 따라 패킷을 처리하는 수단을 포함한다.
본 발명의 또 다른 특징에 따르면, 입력 포트를 경유하여 패킷 스위칭 노드에서 받아들인 패킷 처리 방법이 제공된다. 수신된 패킷의 패킷 프레임 타입이 결정된다. 패킷 프레임 타입에 지정된 패킷 헤더 필드 값이 선택적으로 추출되고, 추출된 패킷 헤더 필드 값은 패킷 어드레싱 정보를 포함한다. 패킷의 관련하여 예비동작이 패킷에게 행해진다. 패킷 스위칭 노드에 의하여 추적된 패킷 스위칭 정보는 추출된 패킷 어드레싱 정보에 기초하여 검색된다. 예비 스위칭 반응이 형성된다. 패킷은 복수의 패킷 흐름 중 하나로 분류된다. 예비 스위칭 반응은 예비 동작, 패킷이 분류된 패킷 흐름 및 입력 포트에 해당하는 디폴트 포트 동작 중 어느 하나에 따라 수정된다. 패킷 헤더는 예비 동작, 패킷 흐름 및 디폴트 포트 동작 중 어느 하나에 따라 수정된다. 그리고, 패킷은 스위치 반응에 따라 처리된다.
본 발명의 또 다른 특징에 따르면, 다수의 패킷 스위칭 노드 소스 포트들을 경유하여 수신된 패킷을 처리하기 위하여 파이프라인 패킷 처리 구조를 갖는 패킷 스위칭 노드가 제공된다. 패킷 스위칭 노드는 패킷이 경유하여 수신된 소스 포트 및 미리 결정된 패킷 프레임 타입 중 어느 하나에 기초하여 각 패킷에 의하여 전달된 다수의 패킷 헤더 필드 값으로부터 패킷 헤더 필드 값을 선택적으로 추출하는 패킷 헤더 필드 값 추출자를 포함한다. 패킷 스위칭 노드는 추가로 매치 타입(match type)을 패킷에게 돌리기 위한 수단을 포함하고, 그리고 상기 매치 타입은 패킷 프레임의 포맷에 무관하게 추출된 패킷 헤더 필드 값에 기초하여 패킷을 미리 분류한다. 패킷 스위칭 노드는 추가로 패킷 스위칭 정보, 패킷 라우팅 정보 및 추출된 패킷 헤더 필드 값, 매치 타입 및 패킷에 대한 예비 스위칭 반응을 형성하는 소스 포트 중 어느 하나에 기초하여 패킷 스위칭 노드에 의하여 추적된 프로토콜 가상 지역 네트워크 정보(protocol virtual local area networking information) 중 어느 하나를 검색하기 위한 수단을 포함한다. 패킷 분류자는 패킷을 소스 포트 식별자, 예비 스위치 반응, 추출된 패킷 헤더 필드값, 그리고 매치 타입 중 어느 하나에 기초하여 다수의 패킷 처리 흐름 중 어느 하나로 분류한다.
본 발명의 또 다른 특징에 따르면, 파이프라인 패킷 처리 구조를 갖는 패킷 스위칭 노드의 복수의 소스 포트를 경유하여 수신된 패킷 처리하기 위한 방법이 제공된다. 패킷 헤더 필드 값은 패킷이 경유하여 수신된 소스 포트 및 미리 결정된 패킷 프레임 타입 중 어느 하나에 기초하여 각 패킷에 의하여 전달되는 복수의 패킷 헤더 필드 값으로부터 선택적으로 추출된다. 패킷 프레임의 포맷에 무관하게, 패킷은 추출된 패킷 헤더 필드 값에 기초하여 미리 분류되며, 그리고 매치 타입이 패킷에게 귀속된다.
패킷 스위칭 정보, 패킷 라우팅 정보 및 패킷 스위칭 노드에 의하여 추적되는 프로토콜 가상 지역 네트워크 정보(protocol virtual local area networking information) 중 어느 하나가 추출된 패킷 헤더 필드 값, 매치 타입 및 패킷에 대한 예비 스위치 반응을 형성하는 소프 포트 중 어느 하나에 기초하여 검색된다. 그리고 소스 포트 식별자, 예비 스위치 반응, 추출된 패킷 헤더 필드값 및 매치 타입 중 어느 하나에 기초하여 패킷은 복수의 패킷 처리 흐름 중 어느 하나로 분류된 다.
본 발명의 이점들은 다음과 같은 것으로부터 유도된다: 패킷 처리 파이프라인의 용이한 안정을 가능하도록 하는 파이프라인 패킷 처리; 공지된 프레임 타입에 대하여 신속하게 프레임 타입 결정이 이루어지고, 그럼에도 불구하고 특정 실행의 퇴보를 지연시키는 새로운 타입의 지원을 유연하게 제공하는 것; 이어지는 단계에 의하여 연속적으로 세세히 구분되는 처리 동작의 조기 결정; 네트워크 어드레스 테이블 저장 요구를 감소시키고, 네트워크 어드레스 테이블 접근을 위한 감소된 데이터 전송 대폭을 필요로 하고, 외부 제1 차 네트워크 어드레스 테이블 내에 있는 다수의 해시된 엔트리 및 내부 제2 차 네트워크 어드레스 테이블 내에 있는 상대적으로 많은 수의 엔트리의 저장을 가능하도록 하는 짧은 비트 길이 인덱스 레이어-2 및 레이어-3 네트워크 어드레스 위에서 작동하는 결합 레이어-2 및 레이어-3 네트워크 어드레싱 검색 엔진; 스위치 반응의 조기 결정; 및 패킷-분류-기초 스위치 반응 및 패킷 헤더 수정.
첨부된 도면에서 동일한 특징은 유사한 표시를 가진다는 것을 유의해야 한다.
본 발명의 실시 예에 따르면, 필터링, 청구서 발송, QoS(Quality-of-Service) 제공과 같은 차별화된 서비스를 지원할 수 있도록 하는 결합 파이프라인 패킷 분류 및 어드레스 검색 엔진이 제공된다.
본 발명의 실시 예에 따르면, 패킷 분류자의 기능 중의 하나는 전형적으로 는, 다수의 패킷 헤더 필드 값들을 조사함으로써 패킷을 패킷 흐름으로 분류하는 것이다. 패킷 분류자에 의하여 사용되는 규칙은 어느 필드 값을 조사할 것인지와 어떤 값이 기대되는지를 지정한다. 동일한 규칙에 일치하는 패킷은 본 발명을 실행하는 장치 내의 동일한 패킷 흐름에 속하는 것으로 분류된다. 그와 같은 패킷 처리에 있어서, 동일한 패킷 처리 동작은 전형적으로 패킷을 스위칭하는 것을 포함하는 처리 동작 내에서 실행된다.
본 발명의 실시 예에 따르면, 패킷 분류 및 레이어-2 및 레이어-3 네트워크 어드레스 검색이 도 1 에 도시된 바와 같이 단계 파이프라인 구조(100)를 사용하여 통합된다.
본 발명의 실시 예에 따르면, 패킷 프레임 타입 결정은 패킷 헤더 필드 추출에 앞서 단계 1에서 수행되고, 패킷 처리 이전의 패킷 프레임 결정은 패킷 헤더로부터 필드 값 추출에 있어서 처리를 필요한 최소한으로 감소시킨다. 세 개의 패킷 프레임 타입 결정 엔진은 수신된 패킷의 프레임 타입을 확인하기 위하여 병렬로 사용된다. 본 발명의 실시 예의 예시적인 실행에 따르면, 적어도 256 개의 패킷 프레임 타입이 구별될 수 있지만, 본 발명은 그에 의하여 제한되지 않는다. 패킷 프레임 타입 결정 엔진은 수신된 각 패킷의 각 패킷 헤더(102) 부분을 검사하고, 아래와 같은 것들을 포함한다:
하드웨어 프레임 타입 결정 엔진(104)은 본 발명에 참조로서 결합되는 IETF(Internet Engineering Task Force)에 의하여 발간된 IEEE 802x 표준과 같은 널리 인정되는 표준에 전형적으로 지정된 패킷 프레임 포맷에 대하여 매우 신속한 패킷 프레임 타입 식별을 제공한다. 본 발명을 제한함이 없이, 하드웨어 엔진(104)의 작동은 하드웨어 설계와 제작 과정에서 최적화된다. 전형적으로 하드웨어 엔진(104)은 몇 가지 동작 시간 주문을 제공할 수 있는 하드웨어 논리 칩으로 구현될 수 있다. 광범위한 동작 시간 주문은 매우 빠른 패킷 프레임 판단 및 구속되는 미리 결정된 패킷 프레임 타입 결정 지연을 위하여 희생된다. 대부분의 패킷 트래픽은 표준 패킷을 포함하고, 그리고 본 발명을 제한함이 없이, 전형적으로 적어도 112 가지의 패킷 프레임 타입들이 최소한의 지연과 최소한의 처리 경비로 식별될 수 있다.
본 발명의 예시적인 실시 형태에 따르면, 하드웨어 엔진(104)은 예를 들어 포맷이 아래에 표시된 VLAN 태그된 이더넷 II 캡슐화된 TCP/IP 패킷과 같은 표준 패킷 프레임 타입을 결정한다 :
B7 B0
Figure 112006056611762-pat00008
삭제
하드웨어 프레임 타입 결정 엔진(104)은 다음과 같이 지정된 오프셋(위치)에서 헤더 필드 값을 일치시키는 것에 의하여 VLAN 태그된 이더넷 II 캡슐화된 TCP/IP 패킷을 식별한다:
- 12 번째 바이트의 값 = 0x81;
- 13 번째 바이트의 값 = 0x00;
- 16 번째 바이트의 값 = 0x08;
- 17 번째 바이트의 값 = 0x00; 및
- 27 번째 바이트의 값 = 0x11.
일단 패킷 헤더 필드 값이 미리 정의된 패턴과 일치하는 것으로 판단되면, 해당 프레임 타입 값은 상기 패킷과 관련된다.
표준이 변하거나 또는 시대에 뒤진 것이 되는 것이 가능하며, 아래에서 기술 되는 것처럼 잠재적인 미숙한 쇠퇴를 처리하는 하나의 방법은 하드웨어 엔진(104)에 대하여 구현 가능한 프레임 타입 결정 엔진(106, 108)으로부터 프레임 타입 출력을 우선시키는 것이다.
잠재적인 미숙한 쇠퇴를 처리하는 다른 방법은 하드웨어 엔진(104)의 해당 하드웨어 논리 부분을 사용 불능으로 만드는 것에 의하여 오래된 표준 프레임 타입의 일치를 방지하는 것이다. 이와 같은 방법으로 처리 비용은 필요한 최소한으로 감소된다. 그러나 아무런 충돌이 발생하지 않으면, 역방향 호환성이 전형적으로 바람직하고, 그리고 만약 오래된 표준 프레임 타입 식별이 바람직한 작동을 방해한다면, 하드웨어 엔진(104)의 하드웨어 논리 부분만이 사용 불능이 되도록 만들 수 있다.
연속적인 프레임 타입 제거 공정은 결정 트리 파싱 엔진(decision tree parsing engine)(106)에 의하여 실행된다. 연속적인 프레임 타입 제거를 경유하는 그들 사이의 차별을 위한 가장 적절한 프레임 타입들 사이의 관계는 "타입-오브(type-of)" 관계이다. 이 분야에서 공지가 되어 있는 것처럼, 레이어-3 데이터그램(원시 패킷(proto-packets))은 레이어-2 데이터그램에 캡슐화가 된다. 간단한 예로서, 결정 트리 파싱 엔진(106)은 동일한 레이어-2 포맷을 제외한 서로 다른 레이어-3 헤더 포맷 사이에는 구별을 한다. 그러므로 일정한 유연성이 이 분야에서 결정 트리 파싱 엔진(106)의 작동을 알맞게 만드는 경우 재-지정 타입-오브 관계들 사이에 있어 제공된다. 본 발명을 제한하지 않는 예시적인 실행은 하드웨어 엔진(104) 에 의하여 탐지된 프레임 타입에 추가하여 128 프레임 타입들의 상향을 지원할 것이다.
예시적인 실시 형태의 예시적인 실행에 따르면, 프레임 타입들 사이에 타입-오브 관계들은 결정 트리의 노드들(202)로서 예시적으로 지정이 된다. 예시적인 이진 결정 트리(200)가 도 2에 개략적으로 도시되어 있다. 각각의 미리-규정된 패킷 프레임 포맷이 테스트들(tests)의 지정 시퀀스를 적용하는 것에 의하여 식별이 되고, 그리고 시퀀스는 결정 트리(200)에 있어서 노드들(202) 사이의 관계에 의하여 지정이 된다. 노드들(202)의 실질적인 실행은 결정 테이블(210)의 기록들(212)을 포함하고, 그리고 각각의 기록(212)은 결정 테이블 행 인덱스와 관련되고 그리고 아래와 같은 것들을 포함한다: 프레임 타입 식별 비트 패턴의 패킷 헤더 오프셋, 프레임 타입 식별 테스트 비트 패턴 및 점프 명령들. 프레임 타입 식별 비트 패턴은 패킷 헤더 필드 값 비트들을 결정하고, 적어도 하나의 패킷 헤드 필드에 해당하고, 예상된 값과 동일하고 그리고 지정된 무시된 비트들에 종속하는 비트 마스크, 이진 값 및 비교 이진 값을 포함할 수 있다. 점프 명령은 연속적인 프레임 타입 제거 공정이 완성되었는지 여부를 지정하는 지정자(specifiers)를 포함한다; 만약 완성되지 않았다면 다음으로 점프하는 결정 테이블 행 인덱스에게 비트 패턴 일치 테스트가 양의 값인지 그리고 음의 값인지 여부를 지정한다. 본 발명의 예시적인 실시 형태의 예시적인 실행에 따르면, 아래의 기록(212) 사양(specification)은 각각의 레코드(212)에 유지된 예시적인 정보를 나타낸다:
필드 네임 기술
비교 워드 패킷 헤더 정보 비교의 2 바이트의 위치를 지정
비교 값 비교 값
마스크 해당 2 바이트들의 비트 마스크
양의 일치 테스트 결과에 인데스로 점프/ 프레임 타입 일치 또는 프레임 타입 값을 위한 JUMP 어드레스 A) 만약 비교가 MATCH 비트의 끝부분=0인 경우 일치라면, 지정된 어드레스로 점프 B) MATCH 비트의 끝부분 = 1인 경우, 프레임 타입 값을 지시
일치의 끝부분 비교들의 끝부분을 지시. 만약 이러한 비트가 논리 하이라면, 이때는 일치를 위하여 다음 점프 어드레스 필드 내에 저장된 값이 프레임 타입이 된다.
음의 일치 테스트 결과에 인덱스로 점프 비교가 MATCH 비트의 끝 부분 = 1인 경우 일치에 이르지 못한 경우 비-일치를 위하여 어드레스 JUMP 또는 지정된 어드레스로 프레임 타입 값 점프
비-일치의 끝부분 비교의 끝 부분을 지시
저장 공간 효율성들은 프레임 타입 결정 레코드들(212)의 끝 부분을 위한 프레임 타입 사양을 위하여 재-사용이 되는 점프 지시 필드들의 경우와 마찬가지로 다양한 목적을 위하여 레코드 필드들을 재-사용하는 것에 의하여 예시적으로 이루어진다.
결정 트리 파싱 엔진(106)은 하드웨어 엔진(104)과 비교할 때 패킷 프레임 타입을 식별하는 경우 미리 결정된 처리 지연을 제공할 수 없는 반면, 타입-오브 관계 사양은 단지 최소의 프레임 타입 규정 공간을 요구하고 그리고 결정 트리 파싱 엔진(106)을 실행하는 스위칭 장비의 제조에 뒤따르는 개발된/수정된 표준을 위한 추가적인/수정된 표준 프레임 포맷을 위한 지원을 제공한다.
결정 트리 파싱 엔진(106)이 수신된 패킷을 위하여 프레임 타입을 식별하기 위한 상대적으로 긴 시간 주기를 가지는 것은 가능하다. 패킷이 최소 크기 패킷 부하(payload)를 수신하기 위하여 걸리는 시간에 먼저 헤더를 수신한다고 가정하면, 단일 결정 트리 파싱 엔진(106)은 결정 트리 파싱 엔진(106)이 수신된 패킷의 프레임 타입을 식별할 수 있는 동안 사용될 수 있다. 최소 크기 이더넷 패킷, 헤더 및 부하(payload)는 전제(preamble)를 고려할 때 20 바이트 상호-프레임 갭과 함께 64 바이트가 된다. 라인/유선 속도에서 패킷이 처리되는 것을 보장하기 위하여, 결정 트리(200)는 상대적으로 적은 수의 결정 트리 노드(202)가 프레임 타입을 결정하기 위하여 참조가 되도록 표현되어야 하거나 또는 다수 개의 결정 트리 엔진(106)이 사용될 수 있거나 둘 중 어느 하나가 되어야 한다. 프레임 타입을 식별하기 위하여 결정 트리 파싱 엔진(106)을 실행하는 장비의 사용 의도에 따라, 평균 패킷 도착 속도에서 평균적으로 프레임 타입 결정이 완전히 이루어지는 것이 충분할 수 있다.
본 발명의 예시적인 실시 형태의 예시적인 실행에 따르면, 결정 트리 파싱 엔진(106) 마이크로코드 논리는 매 클록 틱(clock tick) 당 하나의 테스트(202/204/212/214)를 실행할 수 있다.
본 발명의 예시적인 실시 형태의 예시적인 실행에 따르면, 결정 트리 파싱 엔진(106)은 결정 트리 파서(206) 및 결정 테이블(210)의 마이크로코드 실행을 포함한다.
상기 실행에 따라, 소스 포트 식별자(112)가 파이프라인(100)의 첫 단계에서 제공되고, 그리고 프레임 타입 결정 엔진(104, 106, 108) 중의 어느 하나가 단지 소스 포트 사양에 기초하여 결정된 프레임 타입 사양(114)을 제공할 수 있다. 소스-포트-식별자-기초 프레임 타입 결정은 지정 포트를 경유하여 수신된 패킷의 프레임 타입이 미리 알려지는 경우 사용될 수 있다.
본 발명의 예시적인 실시 형태의 예시적인 실행에 따르면, 결정 트리 파싱 엔진(106)은 추가로 포트-기초 프레임 타입 결정을 실행한다. 결정 테이블(210)은 추가로 결정 트리 파싱 엔진을 실행시키는 스위칭 장비의 입력 포트에 해당하는 열(214)을 포함한다. 본 발명의 예시적인 실시 형태의 예시적인 실행에 따르면, 제1 결정 테이블 레코드들(214)이 결정 트리 노드들(204)(복수의 시작 포인트)을 실행하기 위하여 사용되고, 상기에서 N은 결정 트리 파싱 엔진(106)을 실행하는 스위칭 시스템의 입력 포트 번호들의 수에 해당한다. 유리한 점으로서, 패킷이 수신되는 입력 포트에 해당하는 소스 포트 식별자(112)는 중간 처리 과정이 없이 결정 테이블 레코드들(214)을 검색하는(retrieving) 경우에 있어 인덱스로서 직접적으로 사용될 수 있다. 본 발명은 이와 같은 실행에 제한되지 않는다- 각각의 입력 포트 식별자(112)는 결정 테이블 행 인덱스에게 일-대-일에 기초하여 또는 다-대-일에 기초하여 대응이 될 수 있다.
결정 트리 파서(206)는 이때 소스 포트 식별자(112)(및 헤더(102))가 파이프라인의 단계 1에서 이용 가능하도록 만들어지는 경우 먼저 해당 결정 테이블 레코드(214)를 검색하고 그리고 결정 트리 파서(206)는 내부에서 지정된 테스트를 적용한다. 유리한 점으로서, 연속 프레임 타입 제거 공정을 위한 분리된, 입력 포트 지정인, 시작 포인트를 나타내는 각각의 트리 노드(204)를 이용하여, 적어도 하나의 입력 트리 레코드(214)가 단지 소스 포트 식별자(112)에만 기초하여 초기 프레임 타입 결정을 제공하는 필드 값들을 이용하여 구성될 수 있다. 단지 지정 프레임 타입이 해당 입력 포트에서 수신된 패킷을 기술하도록 기대되는 경우 결정 트리 레 코드들(204)은 프레임 타입을 지정하도록 형성된 사용자가 될 수 있다. 장점들이 트렁크 포트들에 대하여 명백하고 그리고 특히 비-표준 패킷 프레임 포맷을 위한 빠른 프레임 타입 결정을 제공한다.
다수 개의 프레임 포맷 타입을 가지는 패킷이 입력 포트를 경유하여 수신되는 것이 기대되는 경우 연속 프레임 타입 제거 공정의 속도 향상에 있어서 추가적인 향상은 결정 트리(200)의 서로 다른 서브-트리들을 지시하는 점프 명령들을 지정하는 경우에 있어 제공되는 유연성을 통하여 이루어진다. 하나의 이와 같은 예시적인 실행은 동시 데이터 및 음성 서비스(simultaneous data and voice services)들을 제공하는 집중적인 응용들에 있어 통신 네트워크의 에지(edge)에서 사용되는 스위칭 노드들을 포함하고, 상기에서 스위칭 장비의 전송/제공자 면에서 테이터 및 음성은 서로 다른 포트들(매우 바람직한 실행) 위에서 수신된다. 보이스-오버-아이피(Voice-over-IP: VoIP) 솔루션과 관련하여, 하향회선 방향으로 전달되고 그리고 VoIP 트렁크 포트를 경유하여 수신된 패킷을 위하여 IP 패킷 헤더를 식별하고 그리고 프레임 타입을 결정하는 것은 각 트렁크 포트들 중의 어느 하나를 경유하여 수신된 패킷을 위하여 결정 트리(200)의 동일한 서브-트리로 직접적으로 점프를 하는 것에 의하여 선점이 되다. 서브-트리를 파싱하는 것은 여전히 VoIP 패킷들이 일반 이더넷 패킷들인지 또는 VLAN 헤더를 가진 이더넷 패킷들인지 결정하기 위하여 필요하다. 상향 회선 방향으로 통신 네트워크 노드를 횡단하는 패킷과 관련하여, 데이터 및 음성 패킷들은 고객과 관련된 동일한 분배-면 입력 포트를 경유하여 전형적으로 수신되지만, 그러나 데이터 및 음성 패킷들은 예를 들어 서로 다른 타입-오 브- 서비스(Type-of-Service:TOS) 패킷 헤드 필드 값 사양에 의하여 식별되는 분리된 "가상 연결(virtual connections)"을 통하여 전달될 수 있다. 단지 입력 포트 식별자(112)에만 기초하여 초기 결정에 도달할 수 없음에도 불구하고 해당 결정 트리 레코드(214)가 프레임 타입 결정 공정이 먼저 결정 트리(200)의 지정 서브-트리에 대한 지정 점프를 경유하여 타입-오브-서비스 결정을 고려하여 지정하도록 해당 결정 트리 레코드(214)가 사용자-코딩이 될 수 있기 때문이라는 것을 고려하면 결정 트리(200)를 구체화하는 경우 제공된 유연성은 명백하다.
결정 트리 파서(206)의 예시적인 순환 작동(200)이 도 4에 도시되었고, 결정 트리 파서(206)는 결정 트리 테이블(210)로부터 레코드(212)를 검색하고(312), 그리고 레코드(212) 필드들 내에서 지정된 오프셋 (및 비트 길이)을 가지는 패킷 헤드로부터 패킷 헤더 비트 값을 검색한다(314). 검색된 이진 값은 비트 마스크 내에서 지정된 무시된 비트들에 종속하여 예상된 이진 값과 반대로 일치된다(316). 일치(316)의 결과에 따라, "일치" 및 "비일치" 레코드(212) 필드들 중의 어느 하나가 고려된다. 일치의 끝 부분이 도달이 되었는지 또는 아닌지 여부(318)에 따라, 프레임 타입 출력이 제공되고 그리고 공정(300)이 또 다른 수신된 패킷과 관련하여 새로이 시작되거나 또는 점프 지시가 결정 테이블(210) 내에서 다음 레코드(212)를 검색하기 위하여 사용된다.
본 발명의 예시적인 실시 형태에 따라, 추출된 패킷 헤더 비트가 비트 마스크에 부수하거나 또는 아닌 지정 비교 값 중의 어느 하나에 대하여 비교될 수 있으므로, 본 발명의 예시적인 실시 형태의 예시적인 실행은 비트 값 범위를 일치시키 는 것을 가능하도록 하는 이진 일치 능력들을 제공한다.
본 발명의 예시적인 실시 형태에 따르면, 다수 개의 헤더 필드들이 짧은 비트 길이를 가지고 그리고 상대적으로 서로에 대하여 인접하다면, 결정 트리(200)의 노드(202)가 복수 개의 패킷 헤더 필드들 위에서 동시에 테스트가 실행되는 것을 가능하도록 한다.
탬플릿 매치 엔진(template match engine)(108)이 하드웨어 엔진(104) 내에 미리 코딩이 되지 않았거나 또는 결정 트리(200)를 경유하여 인식 가능한 패킷 프레임 타입의 타입-오브로서 표현할 수 없는 패킷 프레임 타입을 가지는 패킷을 처리하는 것을 지원하도록 사용된다. 탬플릿 매치 엔진(108)은 수신된 패킷 헤더에 대항하여 매칭이 되는 형태를 위하여 패킷 헤더 포맷 템플릿들을 지정하는 경우에 있어 완전한 유연성을 제공한다. 예시적인 실행이 하드웨어 엔진(104) 및 결정 트리 파싱 엔진(106)에 의하여 탐지된 프레임 타입에 추가하여 적어도 16 사용자 지정 프레임 타입을 위한 지원을 제공한다.
본 발명의 예시적인 실시 형태의 예시적인 실행에 따르면, 탬플릿 매칭 엔진(108)은 제3 내용 접근 가능 메모리(Ternary Content Addressable Memory: TCAM)를 사용한다. 필드 내에서 TCAM의 예시적인 사용은 본 명세서에 참조로서 결합이 되고 2003년 3월 31일 RayChin Lu에 의하여 출원이 된 "Configurable Ternary Content Addressable Memory"라는 발명의 명칭을 가진 공동으로 양도된 미국 특허 출원번호 10/403,110에 기술되어 있다. 패킷 헤더 탬플릿은 마스크 및 비트 패턴을 포함하고, 그리고 마스크 및 비트 패턴은 임의의 프레임 포맷을 위한 지원을 제공 하는 사용자 구성 가능한 것이다. 위에서 언급한 것처럼, 템플릿 매치가 마스크된 비트에 종속하므로 다수 개의 프레임 타입이 식별이 되는 것이 가능하다. 상기 탬플릿은 제1 탬플릿 매치가 관련된 하나로서 취해지도록 명령이 주어질 수 있다. 그러므로 탬플릿 매치 엔진(108)은 매치되어야 할 패킷 헤더 포맷 패턴을 지정하는 경우에 있어 충분한 유연성을 제공한다. 템플릿 매치 엔진(108)은 또한 통신 네트워크 노드 실행의 퇴보를 지연시키는 것에 대하여 기여한다.
세 개의 프레임 타입 결정 엔진(104, 106, 108)이 병렬로 작동하는 경우, 다수 개의 프레임 타입 출력들이 파이프라인(100)을 통하여 각각의 프레임을 처리하는 경우 사용되어야할 프레임 타입 사양(114)을 선택하는 프레임 타입 출력 선택자(110)에게 제공될 수 있다. 일반적으로, 구성 가능한 엔진으로부터 프레임 타입 사양 출력들은 최소 구성 가능한 엔진들의 출력에게 선행하여 주어진다. 탬플릿 매치 엔진(108)의 프레임 타입 출력은 결정 트리 파싱 엔진(106)의 프레임 타입 출력에 보다 우선성을 가지도록 전형적으로 주어지고, 그리고 결정 트리 파싱 엔진(106)의 프레임 타입 엔진이 하드웨어 엔진(104)의 프레임 타입 출력에 대한 보다 높은 우선성으로 가지도록 주어진다.
모든 트리 프레임 타입 결정 엔진이 예를 들어 전달되어 지는 새로운-표준 패킷, 지원이 불가능하거나/연속되지 않는 오래된 표준 패킷 형태 또는 전달되어지는 나쁜 형태의 패킷으로 인하여 수신된 패킷의 프레임 형태를 인식하지 못하는 것이 가능하다. 파이프라인(100)의 바람직한 작동에 따라, 프레임 타입이 결정될 수 없는 패킷들은 본 발명을 제한하지 않는 것으로서 더 이상 파이프라인(100)을 통하 여 처리되지 않거나, 폐기, 재-지향이 되거나 또는, 만약 존재한다면, 그와 같은 수신된 패킷의 불필요한 처리에 대하여 파이프라인(100)의 노출을 감소시키면서 관리 프로세서로 전송한다. 본 발명의 예시적인 실시 형태의 예시적인 실행에 따르면, 프레임 형태가 결정될 수 없는 수신된 패킷은 매칭이 되지 않는 프레임 타입(예를 들어 16진수의 값이 0xFF)을 위하여 예약된 프레임 타입 식별자에게 보내진다.
도 1을 참조하면, 파이프라인(100)의 단계 2가 소스 포트 식별자(112), 패킷 헤더(102) 및 귀속된(ascribed) 프레임 타입(114)이 제공된다.
패킷 헤더 필드 값 추출자(120)가 추출 테이블(124)의 프레임 타입 지수 레코드(122) 내에서 지정된 추출 명령들에 기초하여 패킷 헤더(102)로부터 패킷 헤더 필드 값들을 추출하도록 사용된다. 각각의 프레임 타입(114)을 위하여, 해당 레코드(122)는 필드 값 추출이 가능하도록 하기 위하여 관련 패킷 헤더 필드 오프셋을 지정한다. 패킷 헤더 필드 관련성은 유효 프레임 포맷 비트들의 그룹을 경유하여 지정이 된다. 위에서 언급하고 그리고 본 발명을 제한하지 않는 것으로서 예시적인 실행에 따라, 파이프라인(100)의 단계 1은 적어도 256 프레임 타입들 사이에서 구별이 될 수 있고, 그러므로 추출 테이블(124)은 적어도 256 해당 레코드(122) 엔트리를 포함할 수 있다.
아래에 도시된 것은 예시적인 프레임 타입 지수 정보 추출 레코드(122)를 나타낸 것이다.
프레임 디폴트 M 타입 유효 프레임 포맷 비트들 추출 필드 오프셋
T C P - V U s - D E F - V U D P - V L 4 - V I P - V 이더넷 S A P - V V L A N - V M A C - V T C P L4 L4 IP 이더넷 S A P V L A N 그룹 M A C 그룹
간단한 입력, 헤더 필드 값 추출자(120)는 해당 오프셋에서 출발하면서 각각의 유효한 프레임 포맷 비트 셋에 해당하는 패킷 헤더 필드 값들을 추출하기 위하여 프레임 타입 지수 레코드(122)를 참조한다. 아래는 만약 해당 지정 프레임 타입들(114)을 위하여 유효하다면 수신된 패킷 헤더로부터 추출된 필드 값들의 예시적인 리스트를 나타낸 것이다:
- 목적지 MAC(6 바이트);
- 소스 MAC(6바이트);
- DSAP (1 바이트);
- SSAP (1 바이트);
- 이더넷 타입(2 바이트);
- VLAN ID (12 비트);
- 802.1p 우선성(3 비트);
- TOS (1 바이트);
- TTL (1 바이트);
- 프로토콜 ID(1 바이트);
- IP 체크섬(2 바이트);
- SRC_IP(4 바이트);
- DES_IP(4 바이트);
- SRC L4 포트(2 바이트);
- 목적지 L4 포트(2 바이트);
- UDP/TCP 체크섬(2 바이트); 및
- 사용자 정의/TCP 플랙(1 바이트).
추출 테이블(124) 내에 있는 레코드(122)는 단지 각각의 프레임 타입을 위하여 유효한 필드들만을 지정하고, 그리고 단지 각각의 유효한 필드를 위하여 오프셋이 지정이 된다는 것은 명확할 것이다. 그러나 위의 패킷 헤더 필드의 리스트는 또한 괄호 안에 필드 길이를 표시한다. 레코드(122) 내에 있는 유효한 필드들을 위하여 필드 길이 사양의 포함은 설계 선택에 맡겨진다: 레코드들(122) 내 길이 필드를 지정하는 것은 저장 공간을 필요로 하고, 대안으로 패킷 헤더 필드 추출자(120)는 패킷 헤더 필드들의 길이와 관한 가정들을 만들 수 있다.
본 발명의 예시적인 실시 형태의 또 다른 실행에 따르면, 패킷 헤더 추출자(120)는 패킷 헤더 필드로부터 물리적으로 필드 값을 추출하지 않고 단지 이때 패킷 헤더(120)로부터 분리된 레지스터들 내에 다시 필드 값들을 저장한다. 패킷 헤더(102)는 파이프라인(100)의 모든 단계에서 이용 가능한 것으로 유지되므로, 패킷 헤더 추출자(120)는 프레임 타입(114) 또는 M타입(126)에 기초하여 각각의 수신된 패킷에게 "포인터 템플릿(pointer template)"을 관련시키고 그리고 파이프라인(100)의 추후 단계들에게 패킷 헤더, 포인터 템플릿 및 M타입 트리플렛(triplet)을 제공한다. 추후 단계들의 모듈들 및/또는 프로세스들은 패킷 헤더 필드 값들을 조사할 필요를 가지므로, 모듈들 및/또는 프로세스들은 직접적으로 패킷 헤더 필드 값들을 조사하기 위하여 처리된 각각의 패킷과 관련된 포인트 템플릿을 참조한다. 예시적인 포인트 템플릿은 패킷 헤더(102)의 시작 및 해당 추출 레코드(122) 내에서 지정된 유효 오프셋 값들에 대한 메모리 어드레스 포인터를 포함한다. 패킷헤더 정보가 단지 한 번만이 저장되기 때문에 그와 같은 실행의 이점들은 공간 절약을 포함한다.
본 발명의 예시적인 실시 형태에 따르면, 각각의 레코드(122)는 패킷 분류를 위한 매치 타입(126)(M타입)을 추가로 지정을 한다. 프레임 타입 사양(114)은 패킷 헤드 값을 추출하는 목적을 위한 패킷 포맷과 관련되고, 반면에 매치 타입 사양(126)은 패킷 분류를 위하여 사용된다. 다양한 프레임 타입들(114)이 단일 매치 타입(126)에 맵핑이 될 수 있다.
본 발명의 바람직한 실시 형태에 따르면, 각각의 레코드(122)는 추가로 디폴트 패킷 처리 동작(128)이 특별한 프레임 타입과 관련하여 실행되어야 하는 지 여부를 지정한다:
00: 디폴트 포트 동작의 사용: (디폴트);
01: CPU에게 전달;
10: 필터: 패킷 폐기; 및
11: (무효/예약)
본 발명의 예시적인 실시 형태의 예시적인 실행에 따르면, 디폴트 포트 동작(128)은 각-입력 포트 기초 위에 레지스터 내에 지정된다. 예시적인 디폴트 포트 동작(128)은 아래와 같은 것을 포함한다:
00: L2/L3 검색 결과 사용: (디폴트);
01: CPU에게 전달;
10: 필터: 패킷을 폐기; 및
11: (무효/예약).
매치 타입(126) 및 예비 동작(128)과 함께 추출된 필드(130) 값이 L2 및 L3 검색을 위한 파이프라인(100)의 단계 3에게 제공이 된다. 예비 동작은 파이프라인(100) 내에서 추후 단계에 의하여 수정이 될 수 있다.
단계 3은 예시적으로 서로 다른 검색 작업을 실행하는 세 개의 검색 엔진을 포함한다: L2 검색, 프로토콜 VLAN 검색 및 L3 검색.
L2 검색 엔진(132)은 위에서 언급된 것처럼 Yik 등(몇몇 발명자들의 이름이 본 명세서에서 언급이 된다)에 의하여 2004년 2월 24일에 "High Speed MAC Address Search Engine"이라는 발명의 명칭으로 공개되고 함께 양도된 미국 특허 출원번호 6,697,871 B1에서 기술된 해싱 검색(a hashing search) 알고리즘을 사용한다. 요약 하면, L2 검색 엔진(132)은 아래와 같은 기능들을 제공한다:
소스 MAC ADDR 습득: 자체적으로 추출된 소스 MAC ADDR(130) 또는 소스 MAC ADDR 및 VLAN ID 결합(130)이 미국특허출원 '873에서 기술된 해싱 계획을 경유하여 L2 스위칭 데이터 베이스가 L2 스위칭 테이블 내에서 검색을 실행하기위한 키(keys)로 사용된다:
- 만약 검색이 해당 엔트리를 식별하지 않는다면, L2 스위칭 데이터베이스 엔트리가 L2 스위칭 테이블 내에서 생성이 된다(습득된 MAC ADDR이 또한 관리 프로세서에게 보고된다); 그리고
- 만약 검색이 해당 엔트리를 식별한다면, 엔트리와 관련된 오래된 비트가 갱신이 된다.
목적지 포트 검색이 미국 특허 출원 '873에서 기술된 해싱 계획을 경유하여 L2 스위칭 데이터베이스의 L2 스위칭 테이블 내에서 검색을 실행하기 위한 키들로 사용되는 추출된 목적지 MAC ADDR(130) 또는 목적지 MAC ADDR 및 VLAN ID 결합(130) 중의 어느 하나에 기초하여 실행이 된다.
- 만약 검색이 해당 엔트리를 식별하지 못한다면, 수신된 패킷은 모든 포트에게 쇄도하게 된다. 만약 수신된 패킷이 관련 VLAN ID를 가진다면, 패킷 쇄도는 동일한 VLAN 도메인과 관련된 포트들에 한정이 되고, 동일한 VLAN 도메인과 관련된 포트들은 VLAN 테이블을 경유하여 지정이 된다.
- 만약 검색이 성공하면, 이때에는 패킷이 단지 정확한 포트(들)에게만 송신 이 된다. 만약 패킷이 관련 VLAN ID를 가진다면, 관련 포트들은 동일한 VLAN 도메인과 관련된 것들이 된다.
L2 스위칭 데이터베이스는 아래의 예시적인 포맷을 가지는 엔트리를 포함한다:
네임 기술
T 스탬프 오래된 엔트리를 제어하기 위하여 사용되는 타임 스탬프. 만약 타임 스탬프가 미리 규정된 시간 주기 내에 갱신이 되지 않는다면, 엔트리는 제거된다.
어드레스 1. L2 프레임들을 위하여-MAC ADDR 2. L3 멀티캐스트 프레임을 위하여 - IP ADDR 및 VLAN ID
포트 번호/멀티캐스트 그룹 유니캐스트 패킷을 위하여, 필드는 관련 포트 번호 또는 MAC ADDR의 트렁킹 포트를 지시한다(트렁킹 포트는 다수개의 물리적 포트들에 해당하는 논리 포트이다). L2 멀티캐스트 및 IP 멀티캐스트 패킷을 위하여, 필드는 패킷이 속하는 멀티캐스트 그룹 ID를 지시한다. 이러한 그룹 ID에 기초하여, 검색 엔진은 목적지 출구 포트들의 그룹을 얻기 위하여 멀티캐스트 그룹 테이블 내에서 검색을 실행한다.
타입 엔트리 상태 000 - 무효 001 - 동적 MAC 엔트리 데이터 구조 010 - IP 멀티캐스트 데이터 구조 011 - 정적 MAC 테이터 구조 100 - L2 멀티캐스트 101 - 소스 및 목적지 필터를 가진 정적 MAC 데이터 구조 110 - 소스 필터를 가진 정적 MAC 데이터 구조 111 - 목적지 필터를 가진 정적 MAC 데이터 구조
우선성 우선성
폐기 비트 멀티캐스트 패킷 폐기
L2 검색 엔진(132)은 L2 스위칭 데이터베이스로부터 스위칭 정보를 검색/유도하고, 그리고 스위칭 정보는 본 발명의 범위를 제한하지 않는 범위에서 아래와 같은 것들을 포함한다:
출구 포트 비트맵들, 수신된 패킷에게 귀속되는 VLAN ID, VLAN ID 지정 취급 동작(삽입, 대체, 제거, 무시 등)을 지정하는 비트 맵, 전송 우선성, 드롭 우선성, 멀티캐스트 또는 유니캐스트 전달 사양 등. 스위칭 정보는 수신된 패킷을 취급하기 위한 패킷 처리 반응을 공식화하는 경우에 사용될 수 있다.
멀티캐스팅 패킷을 위하여, L2 검색 엔진(132)은 아래와 같은 예시적인 31비트 엔트리를 경유하여 그룹 멤버쉽을 지정하는 예시적인 그룹 ID 인덱스 엔트리들을 가지는 멀티캐스트 그룹 테이블 내에서 검색을 실행하는 것에 의하여 그룹 ID에 해당하는 출구 포트 사양을 획득할 필요가 있다:
31 30-28 27-00
관리 프로세서 포트 예약 포트 00 내지 27을 위한 포트 비트맵
본 발명을 제한하지 않는 범위에서, 멀티캐스트 그룹 테이블은 적어도 256 엔트리들을 포함할 수 있다.
소스 및 목적지 MAC ADDR들이 소스 MAC_IDX 및 목적지 MAC_IDX 지정자들(specifiers)에 해당하는 L2 검색 엔진(132)에 의하여 맵핑이 되고, 상기 지정자들은 단계 4에서 패킷 분류자 엔진(142)에 의하여 사용될 것이다.
본 발명의 예시적인 실시 형태에 따르면, 단계 3은 추가적으로 L3 검색 엔진(134)을 포함한다. L2 검색 엔진(132) 및 L3 검색 엔진(134)은 병렬로 작동한다. L3 검색 엔진(134)은 키로서 추출된 목적지 IP 어드레스를 사용하여 L3 스위치 데이터베이스 내에서 다음 홉 라우터 정보를 검색하는 것에 의하여 레이어-3 검색 작동을 실행한다. L3 스위칭 데이터베이스는 L3 IP 스위칭 테이블 및 범위 매칭 테이블을 포함한다. L3 스위칭 데이터베이스 검색 과정에서 검색된 정보는 분류자(142)에 의하여 사용되기 위하여 단계 4에게 제공될 수 있는 인덱스 값으로 추출된 소스 IP ADDR 및 목적지 IP ADDR을 맵핑을 하는 과정에서 사용된다.
L3 스위칭 데이터베이스 검색은 수신된 패킷과 관련하여 라우팅 정보를 결정하기 위하여 실행이 된다. L3 스위칭 데이터베이스 검색은 두개의 검색을 실행하는 것을 포함한다: 정확한 매치를 획득하고 그리고 범위 매치를 결정하는 것.
정확한 매치 검색은 Barrak 등(몇몇 이름은 본 명세서에 기술이 된다)에 의하여 2003년 12월 31일에 출원된 "High Speed MAC Address Search Engine"라는 발명의 명칭으로 함께 양도된 미국 특허 출원번호 10/750,455에 기술되어 있고, 상기 발명은 참조로서 본 명세서에 결합이 된다. 요약하면, L3 검색을 실행하는 경우, 목적지 IP ADDR들은 해시 인덱스(hash index)에게 해싱이 된다. 상기 해시 인덱스는 L3 스위칭 데이터베이스 내에서 기준 엔트리들로 사용이 된다.
각각의 L3 스위칭 데이터베이스 엔트리는 아래의 예시적인 정보를 포함한다:
네임 기술
에이징(aging) 비트 이러한 엔트리에 매칭이 되는 최근의 성공적인 검색을 표시
V 엔트리 유효 표시
IP 매치가 되어야할 IP ADDR
링크 포인터 유사하게 해시된 엔트리의 리스트에 대한 링크
다음 홉 라우터 정보
목적지 MAC ADDR 새로운 목적지 MAC 어드레스
VLAN ID 출구 VLAN ID
XP VLAN 태그를 위한 우선성 필드
T 포트 벡터 VLAN 태그가 해결방법으로 허용되는지 여부를 표시
포트 번호 그룹 출구를 위한 포트 번호 또는 트렁크 그룹 번호
카운터 IDX 통계(단계 5)를 위한 카운터 번호
L3 스위칭 데이터베이스를 검색하는 경우, IP ADDR들이 해당 인덱스 엔트리 내에 저장된 IP ADDR들과 비교한다.
만약 IP ADDR 매치가 발견이 된다면, L3 검색이 완료되고 그리고 아래의 동 작이 실행이 된다:
- 해당 다음-홉 라우터 정보가 얻어진다;
- L3 카운터 인덱스가 단계 5에서 L3 전송 카운터를 갱신하기 위하여 제공이 된다;
- L3 스위칭 데이터베이스 엔트리의 에이징 비트는 엔트리가 최근에 사용이 되었다는 것을 표시하면서 갱신이 된다; 그리고
- 매치가 된 엔트리가 단계 4에서 패킷 분류를 위하여 IP_IDX로서 사용이 된다.
만약 IP ADDR들 매치가 발견되지 않는다면, 다수 개의 IP ADDR들이 동일한 해싱 인덱스 내로 해시가 되었다는 것을 의미할 수도 있다. L3 스위칭 데이터베이스 엔트리는 이 경우 엔트리 리스트의 첫 번째 엔트리에 유효한 링크 포인터를 가질 수 있다. 상기 리스트는 매치를 발견하기 위하여 분석이 된다(parsed).
만약 리스트가 IP ADDR을 위한 매치를 포함할 수 없다면, 표시가 정확한 매치의 실패와 관련하여 제공이 된다. 정확한 매치를 발견하는 것을 실패하였으므로, L3 범위 검색의 결과가 고려된다.
L3 범위 검색은 가장 긴 접두사 매치 계획(prefix match scheme)을 모방한다. 스위칭 데이터베이스의 IP 범위 매치 테이블의 엔트리들은 IP ADDR 사양 및 IP ADDR들의 범위와 관련된 IP 마스크를 포함한다. IP 마스크는 비교를 위한 IP 범위(전형적으로 IP 서브넷)를 지정한다:
네임 기술
에이징 비트 이러한 엔트리에 매칭이 되는 최근의 성공적인 검색을 표시
V 엔트리 유효 표시
IP 매치가 되어야할 IP ADDR
IP_마스크 IP 마스크/넷마스크/관련 비트들
다음 홉 라우터 정보
목적지 MAC ADDR 새로운 목적지 MAC ADDR
VLAN 출구 VLAN ID
XP VLAN 태그를 위한 우선성 필드
T 포트 벡터 VLAN 태그가 해결방법으로 허용되는지 여부를 표시
포트 번호 그룹 출구를 위한 포트 번호 또는 트렁크 그룹 번호
카운터 IDX 통계(단계 5)를 위한 카운터 번호
본 발명의 범위를 제한하지 않는 범위에서, L3 스위칭 데이터베이스의 IP 범위 매치 테이블은 64 엔트리들을 포함하고, 보다 많은 엔트리들이 적용 분야에 따라 요구되는 경우에 사용될 수 있다.
추출된 목적지 IP ADDR의 비트들은 L3 스위칭 데이터베이스 엔트리 내에 저장된 IP ADDR들의 비트들과 비교되고 그리고 결과는 IP 마스크를 필요로 한다. 마스크는 관련 비트를 지정하고 그리고 만약 관련 비트들이 일치한다면, 이 경우 범위 매치는 양의 값을 가지게 된다.
만약 L3 범위 매치가 발견된다면, L3의 정확한 매치와 관련하여 실행된 동일한 동작이 적용된다. 만약 엔트리의 매치가 없다면, L3 범위 매치는 실패한 것으로 간주된다.
L3 정확한 매치 및 L3 범위 매치 양쪽 모두 성공적이라면, 정확한 매치가 L3 범위 매치에 대하여 우선성을 가지게 된다. 만약 아무런 매치가 발견되지 않는다면, 라우팅이 된 패킷은 전형적으로 추가적인 처리를 위하여 관리 프로세서에게 전달이 된다.
위의 개시 내용에서, L3 라우터 패킷들을 위한 스위치 반응을 해결하기 위한 목적지 IP 검색이 기술되었다. 본 발명의 예시적인 실시 형태에 따르면, 라우터 및 브리지 패킷을 포함하는 모든 IP 패킷을 위하여, L3 검색 엔진(134)은 또한 전형적으로 보다 작은 번호 비트들(12 또는 14 비트들과 같은)을 가지는 IP_IDX 내로 32비트 IP 어드레스를 맵핑하는 소스 IP ADDR들을 위하여 L3 스위칭 데이터베이스를 검색하려는 시도를 한다. 해당 IP_IDX' 내로 IP ADDR들을 맵핑하는 것은 분류 단계 4에서 실행 비용을 감소시키기 위하여 사용된다.
본 발명의 예시적인 실시 형태에 따르면, 선택이 VLAN 태그를 패킷 프로토콜 사용과 관련시키기 위하여 제공이 되고, 프로토콜은 패킷 헤더의 이더타입(Ethertype) 또는 DSAP/SSAP 필드들의 값에 의하여 식별이 된다. 프로토콜 VLAN 검색 엔진(136)은 이더넷-II 및 SNAP 수신 패킷을 위한 이더타입 또는 국지 링크 제어(Logical Link Control: LLC) 패킷을 위한 DSAP/SSAP를 결정한다. 본 발명의 예시적인 실행에 따르면, 적어도 16 구성 가능 이더타입들 또는 DSAP/SSAP가 각각 VLAN ID와 관련될 수 있다. 프로토콜 VLAN 검색 엔진(136)은 공지된 패턴에 대하여 추출된 필드를 매칭시키는 것을 포함하여 추출된 패킷 헤더 필드 값들에 대하여 작동을 실행한다:
- 패킷이 VLAN 태그/관련을 가지지 않는다는 것을 나타내는 수신된 패킷을 위한 매치가 발견되지 않는다면 아무런 동작이 취해지지 않는다. 본 발명의 예시적인 실행에 따르면, 매치가 발견되지 않는다면, 디폴트 VLAN ID가 할당이 될 수 있다;
- 만약 매치가 발견된다면, 수신된 패킷은 관련 매치 엔트리로부터 유도된 사양에 해당하는 VLAN IDX에 속하는 것으로 된다;
- 인덱스 및 포트 ID(112)가 출력이 되는 VLAN 태그를 결정하기 위한 프로토콜 VLAN 테이블을 쿼링하는(querying) 경우 검색 키로서 사용이 된다; 그리고
- VLAN ID(태그)가 매치가 되는 경우 대체된다.
예시적인 프로토콜 VLAN 테이블은 아래와 같은 것을 포함한다:
63 32 31 0
CPU 포트 CPU 포트 VLAN IDX를 VLAN ID로 맵핑
31-2 포트 포트 31 VLAN IDX를 VLAN ID로 맵핑
...
포트 2 VLAN IDX를 VLAN ID로 맵핑
포트 1 VLANID / IDX 15 VLANID/IDX 14 VLANID/IDX 13 VLANID/IDX 12
VLANID / IDX 11 VLANID/IDX 10 VLANID/IDX 9 VLANID/IDX 8
VLANID / IDX 7 VLANID/IDX 6 VLANID/IDX 5 VLANID/IDX 4
VLANID / IDX 3 VLANID/IDX 2 VLANID/IDX 1 VLANID/IDX 0
포트 0 VLANID / IDX 15 VLANID/IDX 14 VLANID/IDX 13 VLANID/IDX 12
VLANID / IDX 11 VLANID/IDX 10 VLANID/IDX 9 VLANID/IDX 8
VLANID / IDX 7 VLANID/IDX 6 VLANID/IDX 5 VLANID/IDX 4
VLANID / IDX 3 VLANID/IDX 2 VLANID/IDX 1 VLANID/IDX 0
VLAN IDX 및 VLAN 맵핑이 각 입구 포트 기초 위에 제공된다는 것을 주의하여야 한다. 그러므로 서로 다른 VLAN ID가 서로 다른 포트 위에 동일한 프로토콜을 위하여 할당이 될 수 있다.
본 발명의 예시적인 실시 형태에 따르면, 결합이 된 L2 및 L3 검색 엔진(132, 134)들은 수신된 패킷을 위하여 적어도 예비 스위치 반응(140)을 형성하는 것을 지원하는 매치 스위칭 데이터베이스 엔트리들로부터 스위칭 정보를 제공할 수 있다. 단계 4 처리가 완료된 후에 이용 가능한 정보는 이래와 같은 것들에 기초하여 스위치 반응의 형성을 지원한다: 입구 포트 ID, 추출된 패킷 헤더 정보, L2 스 위칭 데이터베이스로부터 추출된 스위칭 정보, L3 스위칭 데이터베이스로부터 추출된 스위칭 정보 및 프로토콜 VLAN 테이블로부터 유도된 정보. 스위치 반응에서 지정된 예시적인 정보는 아래와 같은 것들을 포함한다:
필드 필드 기술
최초 소스 포트 패킷을 수신하는 출구 포트
전송 우선성 대기 및 계획을 위하여 사용되는 패킷의 전송 우선성
드롭 우선성 대기에 선행하는 WRED를 위하여 사용되는 패킷의 폐기 우선성
VLAN 사용자 우선성 비트, CFI 비트 및 VLAN ID를 포함하는 태그 제어
사용 우선성 비트 L3 검색 엔진(134)은 패킷 검사 또는 검새의 결과가 아니라 기술자(descriptor) 태그 내에 저장된 우선성 비트를 출력하여야 한다는 것을 지시
VLAN 태그 인 수신된 패킷이 VLAN 태그 헤더를 포함한다는 것을 표시
멀티캐스트 수신된 패킷이 멀티캐스트 패킷이라는 것을 표시
재-계산 CRC 만약 헤더가 수정되었다면 CRC가 전송에 선행하여 이러한 패킷을 위하여 재-계산이 되어야 하는지 여부를 표시
대체 소스 MAC 전송에 우선하여(L3 라우터 패킷을 위하여) 이러한 패킷을 위하여 소스 MAC 어드레스가 대체가 되어야 한다는 것을 표시
VLAN 태그 아웃 비트 VLAN 태그 패킷이 전송되면서 경유하여야 하는 출구 포트들을 표시
목적지 포트 비트 맵 패킷이 전송되면서 경유하여야 할 포트들을 표시
패킷 길이 헤더, 데이터 및 CRC를 포함하여 저장되는 패킷의 길이. 패킷 기술자 길이는 포함하지 않는다.
스위치 반응 내의 정보는 단계 5에 후속하여 수신된 패킷을 처리하는 포워딩 엔진(다른 곳에서 기술된다)이 상기 패킷을 처리하는 방법을 지시하기 위하여 사용될 수 있다.
본 발명의 예시적인 실시 형태에 따르면, 단계 4는 패킷 흐름 내의 패킷을 다수 개의 추출된 필드들이 분류 규칙에 종속하도록 분류한다. 상기 분류 규칙은 시험 값으로 그리고 관련 시험 마스크들로 실행될 수 있다.
단계 2가 수신된 패킷의 헤더로부터 다수 개의 필드 값들을 추출하고 그리고 서로 다른 필드 값들이 서로 다른 프레임 포맷 타입(114)을 위하여 추출된다는 것을 기술하였다. 본 발명의 예시적인 실시 형태의 예시적인 실행에 따르면, 패킷 분 류 규칙은 서로 다른 패킷 프레임 포맷 타입을 위하여 서로 다른 필드들/필드들 값들을 일치시킨다. 분류 규칙들은 분류 규칙 테이블(144)이 엔트리(146) 내에 지정이 되고, 그리고 규칙 테이블의 필드들은 각각의 규칙과 관련된 M타입(126)에 따라 서로 다른 의미를 가질 수 있다. 예를 들어, 만약 M타입=1이 이더넷-II/IP/TCP 패킷에 해당하고, 그리고 M타입=2가 이더넷=II, IP/ICMP 패킷에 해당한다면; 이 경우에는 M타입=1을 위한 패킷 분류는 필드들에 기초하여 아래와 같이 예시적으로 실행될 수 있다: M타입=1, 소스 포트 ID(112), 소스 MAC ADDR, 목적지 MAC ADDR, 소스 IP ADDR, 목적지 IP ADDR, TCP 소스 포트, TCP 목적지 포트; 한편으로 M타입=2를 위한 분류는 필드들에 기초하여 아래와 같이 예시적으로 실시가 될 수 있다: M타입=2, 소스 포트 ID(112), 소스 MAC ADDR, 목적지 MAC ADDR, 소스 IP ADDR, 목적지 IP ADDR, ICMP-코드, ICMP-타입. 본 발명의 예시적인 실시 형태의 예시적인 실행에 따르면, 비록 분류 규칙 엔트리 필드들은 예를 들어 TCP 소스 포트 대 ICMP-코드와 같이 서로 다른 의미를 가질 수 있지만, 분류 규칙에 대하여 테스트를 하는 것은 해당하는 M타입 값들에 의하여 한정되므로 혼동이 발생이 되지 않는다.
아래의 표시는 분류 규칙 데이블 엔트리(146)의 포맷을 예시한 것이다:
매치 필드 기술
M타입 (몇몇 미리 규정된 매치 타입을 위하여 부착된 테이블 참조)
출구 포트 출구 포트: 물리적 포트 또는 트렁크 포트
목적지 MAC 인덱스 L2 검색 엔진(132) 맵핑/ MAC 테이블 엔트리 번호
소스 MAC 인덱스 L2 검색 엔진(132) 맵핑/ MAC 테이블 엔트리 번호
VLAN ID VLAN ID
이더타입/DSAP+SSAP 이더넷-II 및 SNAP 패킷들을 위한 이더넷 타입 또는 LLC 패킷을 위한 DSAP/SSAP
소스-IPv4 L3 검색 엔진(134) 맵핑: 정확한 매치 또는 범위 매치
목적지-IPv4 L3 검색 엔진(134) 맵핑: 정확한 매치 또는 범위 매치
프로토콜 ID IP 프로토콜 필드
소스-L4 소스 UDP/TCP 포트
목적지-L4 목적지 UDP/TCP 포트
TCP-플랙/사용자 정의 TCP 플랙 또는 사용자 정의 필드
가중치 만약 다수 개의 규칙들의 일치가 존재한다면, 가장 높은 가중치를 가진 규칙 선택
작동 과정에서, 패킷 분류자(142)는 추출된 필드 값을 해당 테스트 마스크에 종속하는 분류 규칙 내에서 지정이 된 기대 시험 값들과 비교하는 것에 의하여 분류 규칙에 대하여 패킷과 관련되어 M타입(126)과 관련된 분류 규칙 내에서 지정된 적어도 추출된 패킷 헤더 필드 값들의 서브-셋(subset) 시험한다. 본 발명의 예시적인 실시 형태의 예시적인 실행에 따르면, 분류 규칙 매치가 발견되는 경우, 분류 규칙 테이블(144) 내에 있는 분류 규칙 엔트리(146) 인덱스가 패킷 흐름 ID로서 사용이 된다.
본 발명의 예시적인 실시 형태에 따르면, 가중치가 각각의 분류 규칙과 관련이 된다. 다수 개의 규칙이 매치되는 경우, 패킷 분류자(142)와 관련된 선택자(selector)(148)는 가장 높은 가중치를 가지는 분류 규칙에 따라 수신된 패킷을 분류한다. 만약 동일한 가중치를 가지는 다수 개의 엔트리(146)가 매치가 된다면, 가장 높은 분류 규칙 테이블 인덱스를 가진 가장 높은 엔트리가 의존하는 패킷의 흐름 ID를 결정하는 데 있어 선택이 된다.
본 발명의 예시적인 실시 형태에 따르면, 가능한 범위에 이르기까지, 예비 동작(128)이 패킷을 위하여 스위치 반응(140)에 도달하도록 단계 2에서 가능한 조기에 수신된 패킷과 관련이 된다. 예를 들어, 예비 동작(128)은 단계 2에서 입구 포트에 기초할 수 있고, 그리고 이때 예비 동작은 L2 스위칭 데이터베이스로부터 L2 검색 엔진(132)에 의하여, 그리고 L3 스위칭 데이터베이스로부터 L3 검색 엔진에 의하여 유도된 스위칭 정보에 따라 단계 3에서 수정이 된다.
L3 라우팅 기능은 L3 검색 엔진(134)을 경유하여 제공된다. 그러나 패킷 분류자(142) 내에서 IP 범위 매칭을 경유하여 L3 라우팅을 제공하기 위한 유연성이 제공된다. 따라서 IP 범위 매칭들의 능력은 패킷 분류자(142)에 의하여 확장이 된다.
본 발명의 예시적인 실시 형태의 예시적인 실행에 따르면, M타입 사양(126)이 매칭 필드의 서로 다른 의미에 기초하는 규칙들을 구별하기 위하여 L3 라우팅 IP 범위 매칭 내에서 사용된다. 이러한 상황을 전달하는 하나의 방법은 새로운 M타입을 위하여 M타입 + 4를 할당하는 것이다. 이것은 L3 검색 엔진(134)이 L3 스위치 데이터베이스 내에서 라우터를 발견할 수 없고 그리고 L3 검색 기능을 실행하기 위한 패킷 분류자(142)를 이용할 수 없는 때이고, 이 경우에는 L3 검색 엔진(134)은 4를 M타입 값에 더하고 그리고 목적지 IP ADDR을 따라 그 값을 패킷 분류자(142)에게 제공한다. 예시적인 실행에 따르면, 패킷 분류자(142)는 IP 인덱스를 사용하는 대신 새로운 M타입에 기초하는 규칙들과 일치시키기 위하여 충분한 목적지 IP ADDR을 사용할 수 있다.
본 발명의 예시적인 실시 형태에 따르면, 동작(128)이 파이프라인(100)의 단계 5에서 실행된다. 수신된 패킷과 관련된 모든 동작(128)들이 아래와 같은 것으로 분류가 된다: 디폴트 포트 동작, 프레임 타입 동작, L2/L3 동작 및 패킷 처리 파이프라인(100)이 서로 다른 단계에서 수신된 패킷에게 할당이 된 흐름 동작. 스위치 반응은 또한 수신된 패킷과 관련될 수 있다. 동작(128)을 실행하는 것은 도 5의 500으로 표시된 부분에서 예시적으로 도시된 것처럼 우선성 규칙에 종속한다.
흐름 동작들은 가장 높은 우선성을 가진다. 만약 패킷 분류자(142)가 단계 4에서 수신된 패킷들을 성공적으로 분류한다면(502), 흐름 ID들이 패킷들에게 귀속하게 된다. 흐름 ID들은 동작 테이블(154) 내에서 흐름 동작을 검색하기 위하여 사용된다. 일단 적당한 흐름 동작(들) 및 해당 흐름 매개 변수가 동작 테이블(154)로부터 검색이 된다면, 흐름 동작들이 패킷 및/또는 패킷 헤더 위에서 실행이 된다(504).
만약 유효한 흐름 동작이 수신된 패킷과 관련이 되지 않는다면, 우선성이 프레임 타입 동작에 주어지고, 만약 단계 2에서 수신된 패킷과 관련되는 것으로, 추출 테이블(124)의 레코드들(122)로부터 위에서 기술된 것으로서 유도된 유효한 프레임 타입 동작(128)이라면 우선성이 주어진다. 수신된 패킷과 관련된 프레임 타입 동작이 단계(512)에서 결정이 된다. 프레임 타입 동작들(128)은 수신된 패킷을 CPU에 전달하는 것(514) 및 수신된 패킷(516)을 폐기하는 것을 포함한다.
만약 "00"의 프레임 타입 동작이 수신된 패킷과 관련이 된다면, 이때에는 우 선성이 패킷이 수신이 되었던(S포트 ID(112)에 기초하여) 소스 포트에 기초한 디폴트 포트 동작이 주어진다. 수신된 패킷과 관련되고, 단계(522)에서 조사된 유효한 포트 동작 코드는 수신된 패킷을 CPU에 전달하고 그리고 수신된 패킷을 폐기하는 것을 포함한다. 실행에 따라, 디폴트 포트 동작들이 수신된 패킷에게 귀속되거나 또는 적어도 하나의 디폴트 포트 동작 레지스터에서 각-포트 기초 위에 지정될 수 있다.
만약 "00"의 디폴트 포트 동작 코드가 수신된 패킷과 관련이 된다면, 이 경우에는 패킷은 L2/L2 검색 결과 동작(128)에 따라 처리된다(532).
도 6은 파이프라인(100)의 단계 5의 예시적인 구성에 대한 상세한 부분들을 도시한 것이다. 패킷에 해당하는 흐름 ID(150) 및 예비 동작(128)이 패킷에 대하여 실행되어야 할 동작들을 결정하기 위하여 동작 테이블(154)을 참조하는 데 있어 사용이 된다. 목적지 포트 ID 사양(152)을 포함할 수 있는 예비 스위치 반응(140)이 스위치 반응 수정자(modifier)(156)에게 제공이 된다. 스위치 반응 수정자(156)는 한정적인 스위치 반응(140)을 프레임 엔진(162)에게 제공하기 위하여 동작 테이블(154) 내에 지정된 정보로부터 유도된 명령들에 따라 작동한다. 패킷 헤더(102)가 패킷 헤더 수정자에게 제공된다. 패킷 헤더 수정자(158)는 동작 테이블(154) 내에서 지정된 정보로부터 유도된 명령들에 따라 패킷 헤더(102)를 수정한다. 일단 패킷 헤더(102)가 수정이 되면, 패킷 재-조립 모듈(164)이 출력 포트를 경유하여 전송되어야 할 새로운 패킷, 패킷 부하를 포함하는 새로운 패킷 및 수정된 패킷 헤더(102)를 공식화한다.
흐름 동작 테이블(154)의 각각의 엔트리는 아래의 예시적인 정보들을 포함한다:
- 패킷/패킷 헤더에 대하여 실행되어야 할 동작을 지정하는 동작 코드;
- 패킷 헤더 VLAN ID 대체를 가능하도록 사용되는 대체 VLAN ID 가능;
- VLAN ID 대체가 가능해진 경우 사용된 VLAN ID 사양;
- 아래와 같은 동작 코드에 기초하는 다수 개의 의미를 가지는 전달 INDX/DEST BIT MAP 필드:
i. 목적지 포트 비트 맵 표시,
ii. 동작이 리-맵핑 IP 및 MAC 헤더를 포함하는 경우 전달 인덱스를 IP 및 MAC 정보에게 표시하는 것,
iii. 동작이 하트비트 탐지를 포함하는 경우 하트비트 필드 표시,
- 가능 XP 리맵 사양은 전달 우선성 및 폐기 우선성 대체를 지정한다;
- XP 필드는 새로운 전달 우선성을 지정한다;
- DP 필드는 새로운 폐기 우선성을 지정한다;
- 스눕_ 가능은 스눕 포트에게 전달하는 패킷을 지정한다;
- 스눕_포트_ID 필드는 스눕 포트를 지정한다;
- Remap_TOS/DSCP_Enable 지정자는 IP 헤더 내에서 TOS/DSCP 필드 대체를 지정한다;
- TOS/DSCP 필드는 대체될 TOS/DSCP 값을 지정한다;
- 802.1p Remap_Enable 지정자는 패킷 헤더내에서 802.1p(VLAN 우선성) 필드 대체를 지정한다;
- 802.1p 필드는 802.1p 필드 값을 대체하는 경우 사용되는 VLAN 우선성 값을 지정한다;
- Metering_Enable 지정자는 흐름을 위한 계측 기능을 가능하도록 사용된다.;
- Counting_Enable 지정자는 흐름을 위한 카운팅 기능이 가능하도록 사용된다; 그리고
- Metering/Count_Index 지정자는 미터 또는 카운터 ID를 표시한다.
아래에서 6개의 흐름 동작들이 예시적인 상세한 사항들을 나타내었다:
L2/L3 전달(동작 코드 000)은 목적지 비트 맵을 매개변수로서 취하고 그리고 파이프라인(100)의 단계 3에서 제공된 예비 스위칭 반응(140) 내에서 지정된 목적지 포트 비트맵에 대하여 겹쳐 쓰기(overwrite)를 한다. 패킷 헤더는 패킷이 L2/L3 검색 결과(아래에서 기술되는 것처럼)에 따라 수정되는 동일한 방법으로 수정된다.
CPU 포트((동작 코드 001)에 대한 전달은 CPU 포트에 대한 패킷 전달을 지정하는 목적지 비트맵을 변경한다.
필터 패킷(동작 코드 010)은 폐기된 패킷의 카운팅을 실행하는 필터링 카운터를 갱신하는 명령들을 매개변수로서 취할 수 있다. 예비 스위치 반응(140)이 필터 비트 온(filter bit on)을 설정하기 위하여 수정이 된다. 패킷이 폐기된다.
하트비트 탐지(동작 코드 011): 만약 하트비트 패킷이 수신된다면, 이 경우 에는 세션 ID, 타입 및 모드가 처리되어야 할 장애-오버 모듈에게 송신된다(장애-오버 모듈의 작동은 다른 곳에서 기술된다). 예비 스위치 반응(140)이 복구 패킷 비트 온(on)을 설정하기 위하여 수정되고, 복구 패킷 비트 온(on)은 패킷이 하트비트 패킷이라는 것을 표시한다. 다른 수정은 목적지 포트 맵 사양을 대체하는 것을 포함하고 그리고 패킷은 추가적인 처리를 위하여 복구 모듈(도시되지 않음)에게 전달된다.
흐름 동작 MAC ADDR 리맵핑, IP ADDR 리맵핑 및 L3 리맵핑은 ADDR 리맵 테이블(166)을 실행하기 위하여 도 6에서 도시된 동일한 데이터베이스를 공유하지만, 그러나 MAC ADDR 리맵핑 데이터베이스(166), IP ADDR 리맵핑 데이터베이스(166) 및 L3 리맵핑 데이터베이스(166) 각각으로 아래의 본 명세서에서 참조된다. ADDR 리맵 테이블(166) 내에 있는 엔트리는 목적지 IP ADDR 사양, 목적지 비트맵, VLAN "태그 아웃(tagout)" 비트맵 사양(위에서 T 포트 벡터 참조), VLAN ID 사양 및 목적지 MAC ADDR을 포함한다.
MAC ADDR 리-맵핑(동작 코드 100)은 복구 데이터 흐름(아래 참조)에 대한 인덱스 및 MAC 및 IP 리-맵핑을 위하여 복구 가능으로 정의하는 세 개의 FLOV 비트를 매개변수로서 취한다. FLOVF-E, 복구 기능 가능 비트는 복구 기능을 켤 수 있도록 CPU에 의하여 설정이 된다. FLOVE-H, 하드웨어 가능 비트는 세션 장애로 설정이 되고, 그리고 복구 모듈에 의하여 탐지된다(다른 곳에서 기술된 것처럼). 그리고 LFOVE-S, 소프트웨어 가능 비트는 CPU가 세션 장애를 탐지하는 경우 CPU에 의하여 설정이 된다. 만약 복구/리맵이 예비 스위칭 반응(140)이 수정되지 않는 OFF 상태 라면 복구/리맵 온(ON)은 FLOV-E = 1 AND (FLOVE-H OR FLOVE-S) =1을 의미한다. 그러나 만약 복구/리맵이 ON이라면, 인덱스가 아래와 같은 정보를 검색하기 위하여 MAC 리맵핑 데이터베이스(166) 내에서 검색을 수행하기 위하여 사용된다: 대체 목적지 비트맵, 대체 VLAN ID 및 VLAN 우선성, 그리고 대체 출력 VLAN 태그 비트맵, 리맵핑 테이블 형성. 예비 스위치 반응(140)에 대한 수정은 아래와 같은 것들을 포함한다: 목적지 비트맵, VLAN ID 대체, VLAN 우선성 대체, VLAN "태그아웃" 비트맵 대체 (위의 T 포트 벡터 참조), 그리고 CRC 재계산. 패킷 헤더에 대한 수정은 목적지 MAC ADDR을 대체하는 것을 포함한다.
복구 블록(170)에 의하여 제공된 복구 기능과 관련하여, 만약 유입되는 패킷이 어드레스 맵핑이 요구하는 흐름 ID(150)와 관련된다면, 그리고 만약 장애가 흐름 ID(150)를 위하여 탐지되고 그리고 기록되었다면, 이 경우에는 패킷이 다른 방법으로 전달이 되어야 하고, 이것은 만약 장애가 없었다면 서로 다른 목적지 어드레스로 패킷이 전달되는 것을 포함한다. FLOV 비트들은 장애가 발생하였는지 여부를 식별하기 위하여 사용된다. 만약 장애가 발생하지 않았다면, 정상적으로 전달된다. 장애가 발생한 경우, 흐름 동작 테이블(154)의 해당 행 내에 저장된 인덱스가 사용되어야 할 대안적인 포워딩 정보를 포함하는 리맵핑 테이블(166)의 행에 대한 포인터로서 사용이 된다.
IP ADDR 리-맵핑(동작 코드 101)은 복구 데이터 흐름 및 위에서 기술된 것과 같은 세 개의 복구 비트들에 대한 인덱스를 매개변수로서 취한다. 만약 복구/리맵이 ON이라면, 인덱스가 아래와 같은 정보를 검색하기 위하여 IP 리맵핑 데이터베이 스(166) 내에서 검색을 실행하기 위하여 사용된다: 목적지 비트맵, 다음 홉 목적지 MAC ADDR, VLAN ID/TAG, 유출 VLAN 태그 비트 맵 및 목적지 IP 어드레스, 이들은 예비 스위치 반응 및 패킷 헤더(102)를 수정하기 위하여 사용된다. 패킷 타입에 따라, 아래의 표에서 요약이 된 패킷 헤더(102) 및 예비 스위치 반응(140)을 수정하기 위한 4개의 서로 다른 계획이 존재한다:
계획 패킷 헤더 필드 수정 예비 스위치 반응 수정
만약 패킷이 IP 브리지 패킷(라우팅이 된 패킷이 아닌) 및 UDP 또는 TCP 패킷이 아니라면(목적지 IP ADDR 대체) 목적지 MAC ADDR 대체 목적지 IP ADDR 대체 IP 체크섬 대체 목적지 비트맵 대체 VLAN ID 대체 VLAN "태그아웃"비트들 대체 CRC 설정/재계산
만약 패킷이 IP 브리지 패킷이고 그리고 UDP 또는 TCP 패킷이라면(목적지 IP ADDR 대체 및 TCP/UDP 체크섬 대체) 목적지 MAC ADDR 대체 목적지 IP ADDR 대체 IP 체크섬 대체 UDP/TCP 체크섬 재-계산 목적지 비트맵 대체 VLAN ID 대체 VLAN "태그아웃" 비트들 대체 CRC 설정/재-계산
만약 패킷이 IP 라우팅이 된 패킷이고 UDP 또는 TCP 패킷이 아니라면(라우팅 기능을 실행 그리고 목적지 IP ADDR 대체) 목적지 MAC ADDR 대체 TTL을 1만큼 감소 목적지 IP ADDR 대체 IP 체크섬 재-계산 목적지 비트맵 대체 VLAN ID 대체 VLAN "태그아웃" 비트들 대체 CRC 설정/재-계산 소스 MAC ADDR 대체
만약 패킷이 IP 라우팅이 된 UDP 또는 TCP 패킷이라면(라우팅 기능 실행, 목적지 IP ADDR 대체 그리고 TCP/UDP 체크섬 대체) 목적지 MAC ADDR 대체 1 만큼 TTL 감소 목적지 IP ADDR 대체 IP 체크섬 재-계산 UDP/TCP 체크섬 재-계산 목적지 비트맵 대체 VLAN ID 대체 VLAN "태그아웃" 비트 대체 CRC 비트 설정/재계산 소스 MAC ADDR 대체
상기에서 IP 라우팅이 된 패킷은 L3 라우터에 종속하는 패킷과 관련된다. 일반적으로, L3 라우팅, 흐름 동작 테이블(154) 내에 지정된 인덱스가 L3 라우팅을 제공하는 데 있어 라우팅 테이블 내에서 엔트리에게 지정을 위하여 사용될 수 있다.
L3 라우팅(동작 코드 110)은 라우팅 엔트리에 대한 인덱스를 매개변수로 취한다. 상기 인덱스는 목적지 비트 맵, 목적지 MAC ADDR, 다음 홉 목적지 MAC ADDR 및 VLAN 정보 폼(form) 리맵핑 테이블(166)을 추출하기 위하여 사용된다. 예비 스위치 반응(140)에 대한 수정은 아래와 같은 것들을 포함한다: 목적지 비트맵 대체, VLAN ID 대체, VLAN 우선성 대체, VLAN "태그아웃" 비트맵 및 CRC 재 계산. 패킷 헤더에 대한 수정은 아래와 같은 것들을 포함한다: 다음 홈 MAC ADDR을 가진 목적지 MAC ADDR, TTL을 1만큼 감소시키는 것 및 IP 체크섬을 갱신하는 것.
아래의 동작들은 서로 공존할 수 있고 그리고 위의 흐름 동작과 또한 공존할 수 있다.
XP 및 폐기 우선성(DP) 대체: XP 및 DP는 각각의 흐름을 위하여 CPU에 의하여 재-정의될 수 있다. 만약 XP_대체가 1로 설정이 된다면, 이 경우에는 예비 스위치 반응(140)이 XP 및 DP 값들을 대체하기 위하여 수정된다.
스눕핑(Snooping): 예비 스위치 반응(140)이 패킷이 목적지 비트맵 내에서 스눕핑 포트에 해당하는 비트를 켜는 것에 의하여 전달되는 출력 포트들 중의 하나로서 스눕 포트를 증가시키기 위하여 수정이 된다. 멀티캐스트 비트가 패킷을 전달하는 경우 설정이 되는 것이 또한 보장이 된다.
TOS/COS 리맵핑: 패킷 헤더(102)는 준비된 TOS/DSCP 값에 기초하여 TOS/COS를 대체하는 것에 의하여 수정된다. 패킷 헤더(102)가 수정되기 때문에 CRC 및 IP 체크섬이 재-계산되어야 한다.
802.1P 리맵핑: 만약 예비 스위치 반응(140)이 새로운 VLAN 태그와 함께 수정이 된다면 802.1p 필드. CRC가 또한 재-계산되어야 한다.
802.1Q VLAN ID 대체: 예비 스위치 반응의 802.1Q VLAN ID이 802.1Q VLAN ID 값으로 대체가 된다. CRC가 또한 재-계산되어야 한다.
도 7을 참조하면, 속도 계측 및 패킷 카운팅 양쪽 모두가 독립적으로 활성화가 되고 그리고 비-활성화가 될 수 있다.
속도 계측(Rate Metering): 계측 인덱스가 계측 모듈(168)에게 제공된다. 계측 모듈(168)은 계측 인덱스에 기초하여 트래픽 흐름을 추적한다. 만약 트래픽 흐름이 지정된 정점 속도를 초과한다면, 이 경우에는 계측 모듈(168)은 조건 적색(condition red)을 보고한다. 만약 트래픽 흐름이 지정된 평균 속도 아래가 된다면, 이 경우에는 계측 모듈(168)은 조건 녹색을 보고한다. 다른 경우에는 보고가 된 조건은 황색이 된다. 예비 스위치 반응(140)은 계측 모듈(168)에 의하여 보고가 된 색 사양에 기초하여 수정이 된다. 만약 색이 적색("10")이면, 필터 비트가 설정이 되고, 그리고 효과적으로 폐기되어야 할 패킷을 표시한다. 만약 되돌려진 색이 황색("01")이라면, 폐기 우선성이 설정이 되고, 우선성 규칙에 따라 패킷이 폐기되는 결과를 만든다. 만약 색이 녹색("00")이라면 예비 스위치 반응에 대한 해당 수정들이 만들어지지 않는다.
카운팅(Counting): 계측 모듈(168)에게 계측 인덱스를 제공하는 것은 또한 카운팅을 가능하도록 한다. 만약 흐름 조건이 적색이 아니라면 전송된 패킷 및 전송된 바이트들의 수에 해당하는 카운터들이 증가된다. 만약 흐름 조건이 적색이라면, 폐기 카운터가 증가된다.
흐름 계측 및 카운팅 블록(168)의 상세한 기능들은 아래와 같은 것들을 포함한다:
본 발명의 예시적인 실시 형태의 예시적인 실행에 따르면, IETF의 표준이 되는 2개의 속도 3개의 색 표시자(marker)(trTCM) 계획이 각 흐름 기초 위에 트래픽을 계측하기 위하여 사용된다. 본 발명의 예시적인 실시 형태에 따르면, 상기 계획은 각각의 흐름 정점 정보 속도(flow Peak Information Rate:PIR) 및 최대 정점 버스트 크기(Max Peak Burst size) 및 위임 정보 속도(Committed Information Rate:CIR)(평균 속도) 및 최대 평균 버스트 크기에 따라 두 개의 누설 버킷들(leaky buckets)을 사용하여 예시적으로 실행이 된다.
흐름 계측을 요구하는 모든 패킷을 위하여, 흐름 계측 모듈(168)은 해당 흐름 누설 버킷 카운터를 갱신하기 위하여 계측 인덱스를 사용한다. 계측 모듈은 아래와 같이 흐름의 녹색, 황색 및 적색 조건을 되돌려 준다:
적색: 만약 트래픽 흐름이 PIR을 초과한다면,
황색: 만약 트래픽 흐름이 CIR을 초과하지만, 그러나 PIR에 적합한 경우, 그리고
녹색: 만약 트래픽 흐름이 CIR에 적합한 경우.
각 흐름 카운터들은 계측 인덱스 인덱스된 테이블의 엔트리 내에 예시적으로 유지되고, 각각의 엔트리는 아래와 같은 것들을 가진다: 수신된 패킷 카운터, 수신된 바이트 카운트, 전송된 또는 적색 패킷 카운터, 전송된 또는 적색 바이트 카운터, 패킷 폐기 카운터. "전송된" 카운터들은 L3 동작에 기초하여 처리된 L3 스위치 패킷을 카운팅하기 위하여 사용되고, 한편으로 "적색" 카운터는 결정된 흐름 ID들 (150)에 따라 처리된 분류 패킷을 위하여 사용된다.
위에서 언급한 것처럼, 흐름 ID(150)에 관련되지 않은 패킷들은 L3 검색 결과에 해당하는 동작들에 따라 처리될 수 있다. 상기와 같은 경우 흐름 계측 및 카운팅 모듈(158)이 소스 카운터 인덱스 및 목적지 카운터 인덱스와 함께 L3 검색 엔진에 의하여 제공된다. 계측 및 카운팅 모듈(158)은 해당 수신 카운터를 갱신하기 위하여 소스 인덱스를 사용하고, 한편으로 목적지 인덱스를 사용하여 전송 카운터를 갱신한다. 만약 필터 비트 스위치 반응(150)이 설정된다면, 이 경우에는 폐기 카운터가 전송 카운터 대신 갱신이 된다.
L3 검색 엔진(134)은 L3 스위칭 데이터베이스 내에서 소스 IP 어드레스를 발견할 수 없고 그리고 이로 인하여 소스 카운터 IDX를 제공할 수 없다는 것을 유의하여야 한다. 본 발명의 예시적인 실시 형태에 따르면, 그와 같은 패킷을 위하여 소스 포트는 L3 디폴트 소스 포트 카운터를 갱신하기 위하여 인덱스로서 사용된다.
패킷 흐름과 관련하여 패킷이 분류되는 경우 흐름 카운터 갱신들이 실행이 되고, 그리고 흐름 동작이 또한 카운터 비트를 설정하는 것에 의하여 카운터 갱신들을 필요로 한다. 계측 및 카운터 모듈(168)은 관련 RX 카운터를 갱신하기 위하여 흐름 카운터 인덱스를 사용한다.
계측 및 카운팅 모듈(168)은 또한 입구 속도 계측을 위하여 적색(폐기된) 패킷의 수에 대한 자취를 유지한다. 만약 색이 적색이라면, 계측 및 카운팅 모듈(168)은 또한 패킷 폐기 카운터를 갱신한다(이러한 카운터는 공간 효율성을 이루기 위하여 위에서 언급된 것과 같은 전송 카운터와 함께 동일한 필드를 공유한다).
흐름 동작 코드(000)는 라우팅이 된 패킷 위한 L3 동작과 유사하다. 아래의 처리는 그와 같은 패킷에 대한 실행을 필요로 한다. 패킷 헤더(102)는 아래와 같은 것들에게 수정이 될 필요가 있다: L3 검색 엔진에 의하여 유도된 목적지 MAC ADDR이 되는 넥스트 홉 라우터의 MAC 어드레스로 목적지 MAC ADDR을 대체하고, 만약 패킷이 패킷 분류자(142)에 의하여 흐름 ID(150)에 관련이 된다면 MAC 어드레스는 MAC aDDR 리맵핑 테이블(166)으로부터 유도된 목적지 MAC ADDR에 의하여 추가로 겹쳐쓰기가 될 수 있다. TTL이 1만큼 감소되고, 그리고 IP_체크섬이 갱신이 된다. 예비 스위치 반응(150)d 대한 수정은 L2 CRC 재-계산 플랙을 설정하는 것 및 VLAN ID 사양을 겹쳐쓰기 하는 것을 포함한다. 아래의 L3 동작들은 L3 검색 엔진(134)에 의하여 실행된다: TTL>1이면 패킷 폐기, 그리고 대체 소스 MAC ADDR 비트는 예비 스위치 반응(140) 내에서 설정된다.
본 발명의 예시적인 실시 형태에 따르면, 유연한 헤더 파싱 계획이 제공되고, 상기에서 3개의 헤더 파싱 엔진들이 최대 라인 속도에서 유입되는 패킷을 위한 지정된 패킷 헤더 비트 패턴을 조사에 기초하는 다양한 프레임 타입들을 결정하기 위하여 병렬로 사용된다. 세 개의 헤더 파싱 엔진들을 사용하는 것은 아래와 같은 유연성을 가진다: 하드웨어 엔진은 표준 공지 프레임 타입, 결정 트리 파싱 엔진 및 구성 가능한 템플릿 매치 엔진을 위한 빠른 프레임 타입 식별을 제공한다.
본 발명의 예시적인 실시 형태에 따르면, 패킷 헤더 필드 값들이 최소 그리고 빠른 예비처리를 보장하는 프레임 타입 결정 후 패킷 헤더로부터 추출된다. 사용자 구성 가능한 필드 추출자가 사용되고, 그리고 상기 추출자를 통하여 적어도 하나의 필드의 오프셋이 각각의 프레임 타입과 관련하여 지정될 수 있다. 몇몇 패킷 타입을 위하여, 패킷 처리 동작이 파이프라인 내에서 이러한 초기 단계에서 결정될 수 있다.
본 발명의 예시적인 실시 형태에 따르면, 레이어-2 소스 및 목적지 MAC 어드레스들 및 레이어-3 소스 및 목적지 IP 어드레스를 어드레스 테이블을 검색하기 위하여 사용된 내부 인덱스로 맵핑을 시키는 것에 의하여 실행 비용이 감소된다. 결합된 L2 및 L3 검색 엔진은 추출된 네트워크 어드레스 필드를 짧은 비트 길이를 가지는 인데스 위로 맵핑을 시키기 위하여 해싱-기초 검색 계획을 사용한다.
본 발명의 예시적인 실시 형태에 따르면, 동작들이 분류된 패킷으로 귀속되고, 제한되지 않는 아래와 같은 것들을 포함한다: 가상 지역 영역 네트워크 식별자(VLAN ID) 삽입, VLAN 리-맵핑, 타입-오브-서비스(TOS) 리-맵핑, QoS(Quality-of-Service) 강제, 필터링, 포워딩 및 헤더 수정.
본 명세서에서 언급된 각각의 데이터베이스, 테이블, 리스트, 엔트리, 필드 및 레지스터의 크기는 관련된 메모리 저장 공간 요구를 가지는 것으로 이해가 되어야 한다. 데이터베이스들, 테이블들, 리스트들, 엔트리들, 필드들 및 레지스터들의 크기는 필요한 저장 공간을 제공하는 것과 관련된 비용을 고려하여야 할 설계 선택에 맡겨진다.
제시된 실시 형태는 단지 예시적인 것이고 그리고 이 분야에서 통상의 지식을 가진 자는 이에서 기술된 실시 형태에 대한 변형이 본 발명의 사상으로부터 벗어나지 않고 만들어 질 수 있다는 것을 인지할 것이다. 본 발명의 범위는 첨부된 청구항에 의하여 단지 제한된다.
본 발명의 이점들은 다음과 같은 것으로부터 유도된다: 패킷 처리 파이프라인의 용이한 안정을 가능하도록 하는 파이프라인 패킷 처리; 공지된 프레임 타입에 대하여 신속하게 프레임 타입 결정이 이루어지고, 그럼에도 불구하고 지정 실행의 퇴보를 지연시키는 새로운 타입의 지원을 유연하게 제공하는 것; 이어지는 단계에 의하여 연속적으로 세세히 구분되는 처리 동작의 조기 결정; 네트워크 어드레스 테이블 저장 요구를 감소시키고, 네트워크 어드레스 테이블 접근을 위한 감소된 데이터 전송 대폭을 필요로 하고, 외부 제1 차 네트워크 어드레스 테이블 내에 있는 다수의 해시된 엔트리 및 내부 제2 차 네트워크 어드레스 테이블 내에 있는 상대적으로 많은 수의 엔트리의 저장을 가능하도록 하는 짧은 비트 길이 인덱스 레이어-2 및 레이어-3 네트워크 어드레스 위에서 작동하는 결합 레이어-2 및 레이어-3 네트워크 어드레싱 검색 엔진; 스위치 반응의 조기 결정; 및 패킷-분류-기초 스위치 반응 및 패킷 헤더 수정.

Claims (21)

  1. 다수 개의 패킷 스위칭 노드 소스 포트들을 경유하여 수신된 패킷을 처리하기 위한 파이프라인 패킷 처리 구성을 가지는 패킷 스위칭 노드에 있어서,
    (a) 패킷이 수신되는 소스 포트 및 미리 결정된 패킷 프레임 타입 중의 하나에 기초하여 각각의 패킷에 의하여 전달된 다수 개의 패킷 헤더 필드로부터 패킷 헤더 필드 값들을 선택적으로 추출하기 위한 패킷 헤더 필드 값 추출자;
    (b) 매치 타입을 패킷에게 귀속시키고, 상기 매치 타입은 패킷 프레임의 포맷에 무관하게 상기 추출된 패킷 헤더 필드 값들에 기초하여 패킷을 미리 분류하기 위한 수단;
    (c) 패킷 스위칭 정보, 패킷 라우팅 정보, 및 추출된 패킷 헤더 필드 값, 매치 타입 및 패킷을 위한 예비 스위치 반응을 공식화하기 위한 소스 포트 중 하나에 기초한 패킷 스위칭 노드에 의하여 추적된 프로토콜 가상 지역 영역 네트워킹 정보 중 하나를 검색하기 위한 수단; 및
    (d) 소스 포트 식별자, 예비 스위치 반응, 추출된 패킷 헤더 필드 값들 및 매치 타입 중의 하나에 기초하는 다수 개의 패킷 처리 흐름들 중의 하나로 패킷을 분류하기 위한 패킷 분류자를 포함하는 패킷 스위칭 노드.
  2. 제1항에 있어서, 각각의 수신된 패킷의 패킷 프레임 타입을 결정하기 위한 수단을 더 포함하고, 상기 패킷 프레임 타입은 패킷 프레임의 포맷에 기초하여 패킷을 미리 분류하는 패킷 스위칭 노드.
  3. 제2항에 있어서, 패킷 프레임 타입을 결정하기 위한 수단은,
    (a) 패킷 헤더 비트 값들을 조사하기 위한 하드웨어 로직 및 표준화된 패킷 헤더 비트 패턴을 인지하기 위한 하드웨어 로직을 가지는 하드웨어 프레임 타입 식별 엔진;
    (b) 다수 개의 규칙들에게 패킷 헤더 필드 값들을 연속적으로 조건부로 종속시키기 위한 하드웨어 로직을 가지는 연속 프레임 타입 제거 엔진; 및
    (c) 패킷 헤더 영역에 대한 비교를 위하여 다수 개의 패킷 헤더 템플릿을 포함하는 탬플릿 매치 프레임 타입 식별 엔진 중의 하나를 포함하는 패킷 스위칭 노드.
  4. 제3항에 있어서, 연속 프레임 타입 제거 엔진은,
    (a) 각 소스 포트에 대한 결정 트리 파싱 엔진; 및
    (b) 각 소스 포트에 대한 결정 테이블 중의 하나를 포함하고,
    상기 각각의 결정 테이블은 다수 개의 결정 테이블 레코드들, 프레임 타입 식별 비트 패턴의 패킷 헤더 오프셋을 지정하는 각각의 결정 트리 레코드, 프레임 타입 식별 테스트 비트 패턴, 및 차후의 결정 테이블 레코드의 결정 테이블 행 인덱스를 지정하는 점프 명령과 프레임 타입 식별자 중 하나를 가지는 패킷 스위칭 노드.
  5. 제3항에 있어서, 적어도 2개의 하드웨어 프레임 타입 식별 엔진, 연속 프레임 타입 제거 엔진 및 템플릿 매치 프레임 타입 식별 엔진이 프레임 타입을 구별하는 것을 식별하는 경우 프레임 타입을 선택하기 위한 프레임 타입 선택자를 더 포함하는 패킷 스위칭 노드.
  6. 제1항에 있어서, 헤더 필드 값 추출자는 다수 개의 프레임 타입 인덱스 추출 테이블 레코드를 가지는 추출 검색 테이블을 더 포함하고, 각각의 레코드는 패킷 헤더 필드 오프셋을 지정하는 패킷 스위칭 노드.
  7. 제6항에 있어서, 매치 타입을 귀속시키기 위한 수단은 각각의 추출 테이블 레코드를 위한 매치 타입 지정자를 포함하는 패킷 스위칭 노드.
  8. 제7항에 있어서, 헤더 필드 값 추출자는 추가로 패킷과 관련하여 수행되어야 할 예비 동작을 귀속시키기 위한 수단을 포함하고, 상기 각각의 추출 테이블 레코드는 예비 동작 지정자를 더 포함하는 패킷 스위칭 노드.
  9. 제1항에 있어서, 헤더 필드 값 추출자는 패킷과 관련하여 수행되어야 할 예 비 동작을 귀속시키기 위한 수단을 더 포함하는 패킷 스위칭 노드.
  10. 제1항에 있어서, 패킷 스위칭 정보, 패킷 라우팅 정보 및 프로토콜 가상 지역 영역 네트워킹 정보 중의 하나를 검색하기 위한 수단은,
    (a) 스위칭 정보 데이터베이스와 상호 작용하는 레이어-2 검색 엔진;
    (b) 라우팅 정보 데이터베이스와 상호 작용하는 레이어-3 검색 엔진; 및
    (c) 가상 영역 네트워킹 테이블과 상호 작용하는 가상 지역 영역 네트워킹 검색 엔진을 포함하는 패킷 스위칭 노드.
  11. 제1항에 있어서, 패킷 분류자는 분류 규칙 엔트리를 가지는 분류 규칙 테이블을 포함하고, 각각의 분류 규칙 엔트리는 매치 타입 지정 포맷을 가지며, 각각의 분류 규칙 엔트리는 만약 엔트리 내에 지정된 조건이 충족된다면 조건부로 패킷과 관련되어야 할 처리 흐름 식별자를 지정하고, 각각의 분류 규칙 엔트리는 임의로 규칙 엔트리의 우선성을 지정하는 규칙 가중치를 지정하는 패킷 스위칭 노드.
  12. 제1항에 있어서,
    (a) 소스 포트, 프레임 타입 및 처리 흐름 분류 중 하나에 기초하여 취해져야 하는 동작을 결정하기 위한 수단;
    (b) 상기 동작에 따라 예비 스위치 반응을 선택적으로 수정하는 스위치 반응 수정자;
    (c) 상기 동작에 따라 패킷 헤더를 선택적으로 수정하는 패킷 헤더 수정자; 및
    (d) 스위치 반응에 따라 패킷을 처리하기 위한 수단을 더 포함하는 패킷 스위칭 노드.
  13. 파이프라인 패킷 처리 구성을 가지는 패킷 스위칭 노드의 다수 개의 소스 포트들을 경유하여 수신된 패킷을 처리하기 위한 방법에 있어서,
    (a) 패킷이 수신되는 소스 포트 및 미리 결정된 패킷 프레임 타입 중의 하나에 기초하는 각각의 패킷에 의하여 전달된 다수 개의 패킷 헤더 필드 값들로부터 패킷 헤더 필드 값들을 선택적으로 추출하는 단계;
    (b) 추출된 패킷 헤더 필드 값들에 기초하여 패킷 프레임의 포맷과 무관하게 패킷을 미리 분류하여 패킷에게 매치 타입을 귀속시키는 단계;
    (c) 패킷 스위칭 정보, 패킷 라우팅 정보, 및 추출된 패킷 헤더 값들, 매치 타입 및 패킷을 위한 예비 스위치 반응을 공식화하기 위한 소스 포트 중 하나에 기초한 패킷 스위칭 노드에 의하여 추적된 프로토콜 가상 지역 영역 네트워킹 정보 중의 하나를 검색하는 단계; 및
    (d) 소스 포트 식별자, 예비 스위치 반응, 추출된 패킷 헤더 필드 값들 및 매치 타입 중 하나에 기초한 다수 개의 패킷 처리 흐름들 중의 하나로 패킷을 분류하는 단계를 포함하는 방법.
  14. 제13항에 있어서, 패킷 프레임의 포맷에 기초하여 각각의 수신된 패킷을 미리 분류하고, 프레임 타입을 패킷에게 귀속시키는 전 단계를 더 포함하는 방법.
  15. 제14항에 있어서,
    (a) 패킷 헤더 비트 값들을 조사하여, 표준 패킷 헤더 비트 패턴을 인지하는 단계;
    (b) 조건부로 패킷 헤더 필드 값들을 연속적으로 다수 개의 규칙들에게 종속시키는 단계; 및
    (c) 패킷 헤더 템플릿에 대하여 패킷 헤더 영역을 비교하는 단계 중의 하나에 의하여 패킷의 프레임 타입을 결정하는 단계를 더 포함하는 방법.
  16. 제15항에 있어서, 조건부로 패킷 헤더 필드 값들을 연속적으로 다수 개의 규칙에 종속시키는 단계는,
    (a) 결정 테이블 내에 저장된 다수 개의 결정 테이블 레코드 중 결정 테이블 레코드 내에 지정된 패킷 헤더 오프셋에 기초하는 패킷 헤더로부터 추출된 패킷 헤더 필드 값을 결정 테이블 레코드 내에서 지정된 프레임 타입 식별 테스트 비트 패턴에게 종속시키는 단계; 및
    (b) 만약 한정된 프레임 타입 결정이 도달되지 않는다면 다수 개의 결정 테이블 레코드들로부터 차후의 결정 테이블 레코드를 선택적으로 선택하고, 그렇지 않다면 결정 테이블 레코드 내에 지정된 프레임 타입 식별자에게 귀속시키는 단계 를 더 포함하는 방법.
  17. 제15항에 있어서, 적어도 두 개의 패킷 헤더 비트 값들을 조사하여, 표준 패킷 헤더 비트 패턴을 인식하는 경우 프레임 타입을 선택하는 단계, 조건부로 패킷 헤더 필드 값들을 연속적으로 다수 개의 규칙에게 종속시키는 단계, 및 프레임 타입을 구별짓는 패킷 헤더 템플릿 산출물들에 대하여 패킷 헤더 영역을 비교하는 단계를 더 포함하는 방법.
  18. 제13항에 있어서, 각각의 패킷에 의하여 전달된 다수 개의 패킷 헤더 필드 값들로부터 패킷 헤더 필들 값들을 차후에 선택적으로 추출하는 단계는 패킷과 관련하여 수행되어야 할 예비 동작을 귀속시키는 단계를 더 포함하는 방법.
  19. 제13항에 있어서, 패킷 스위칭 정보, 패킷 라우팅 정보, 및 패킷 스위칭 노드에 의하여 추적된 프로토콜 가상 지역 영역 네트워킹 정보 중의 하나를 검색하는 단계는,
    (a) 스위칭 정보 데이터베이스를 문의하는 단계(querying);
    (b) 라우팅 정보 데이터베이스를 문의하는 단계; 및
    (c) 가상 영역 네트워킹 테이블을 문의하는 단계를 포함하는 방법.
  20. 제13항에 있어서, 패킷을 다수 개의 패킷 처리 흐름 중 하나로 분류하는 단 계는 처리 흐름 식별자를 다수 개의 분류 규칙 엔트리들 중 하나에서 지정된 조건에 기초한 패킷에게 조건부로 귀속시키는 단계를 더 포함하는 방법.
  21. 제13항에 있어서,
    (a) 소스 포트, 프레임 타입 및 처리 흐름 분류 중 하나에 기초하여 취해져야 할 동작을 결정하는 단계;
    (b) 상기 동작에 따라 예비 스위치 반응을 선택적으로 수정하는 단계;
    (c) 상기 동작에 따라 패킷 헤더를 선택적으로 수정하는 단계; 및
    (d) 상기 스위치 반응에 따라 패킷을 처리하는 단계를 더 포함하는 방법.
KR1020050057585A 2004-06-30 2005-06-30 스위칭 환경을 위한 결합 파이프라인 패킷 분류 및어드레스 검색 방법 및 장치 KR100697568B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/881,226 2004-06-30
US10/881,226 US7760719B2 (en) 2004-06-30 2004-06-30 Combined pipelined classification and address search method and apparatus for switching environments

Publications (2)

Publication Number Publication Date
KR20060048742A KR20060048742A (ko) 2006-05-18
KR100697568B1 true KR100697568B1 (ko) 2007-03-22

Family

ID=35511636

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050057585A KR100697568B1 (ko) 2004-06-30 2005-06-30 스위칭 환경을 위한 결합 파이프라인 패킷 분류 및어드레스 검색 방법 및 장치

Country Status (6)

Country Link
US (1) US7760719B2 (ko)
JP (1) JP2006020317A (ko)
KR (1) KR100697568B1 (ko)
CN (2) CN1716912B (ko)
DE (1) DE102005029396B4 (ko)
FR (1) FR2874296B1 (ko)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7724740B1 (en) * 2002-08-27 2010-05-25 3Com Corporation Computer system and network interface supporting class of service queues
US7444454B2 (en) * 2004-05-11 2008-10-28 L-3 Communications Integrated Systems L.P. Systems and methods for interconnection of multiple FPGA devices
US7921323B2 (en) * 2004-05-11 2011-04-05 L-3 Communications Integrated Systems, L.P. Reconfigurable communications infrastructure for ASIC networks
US7492763B1 (en) * 2004-07-16 2009-02-17 Applied Micro Circuits Corporation User-specified key creation from attributes independent of encapsulation type
US7720031B1 (en) * 2004-10-15 2010-05-18 Cisco Technology, Inc. Methods and devices to support mobility of a client across VLANs and subnets, while preserving the client's assigned IP address
US8000324B2 (en) * 2004-11-30 2011-08-16 Broadcom Corporation Pipeline architecture of a network device
US8065712B1 (en) 2005-02-16 2011-11-22 Cisco Technology, Inc. Methods and devices for qualifying a client machine to access a network
US7606231B2 (en) 2005-02-18 2009-10-20 Broadcom Corporation Pipeline architecture for a network device
US7941150B2 (en) 2005-05-19 2011-05-10 Nortel Networks Limited Method and system for allocating media access control layer resources in a wireless communication environment
US7843927B1 (en) * 2006-12-22 2010-11-30 Extreme Networks, Inc. Methods, systems, and computer program products for routing packets at a multi-mode layer 3 packet forwarding device
JP4583312B2 (ja) * 2006-01-30 2010-11-17 富士通株式会社 通信状況判定方法、通信状況判定システム及び判定装置
JP2009527839A (ja) * 2006-02-21 2009-07-30 コレリクス リミテッド 通信ネットワークのトランザクション監視のための方法及びシステム
US7809009B2 (en) * 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US7298636B1 (en) 2006-03-08 2007-11-20 Integrated Device Technology, Inc. Packet processors having multi-functional range match cells therein
US7825777B1 (en) 2006-03-08 2010-11-02 Integrated Device Technology, Inc. Packet processors having comparators therein that determine non-strict inequalities between applied operands
KR100776115B1 (ko) 2006-03-22 2007-11-15 기장근 부정 및 시작 플래그를 가지는 터너리 컨텐트 어드레스어블 메모리
US7668107B2 (en) * 2006-03-22 2010-02-23 Marvell Israel (M.I.S.L.) Ltd. Hardware implementation of network testing and performance monitoring in a network device
JP4776412B2 (ja) 2006-03-23 2011-09-21 エヌ・ティ・ティ・コミュニケーションズ株式会社 パケット転送装置、パケット転送方法、及びプログラム
US7733907B2 (en) 2006-04-07 2010-06-08 Microsoft Corporation Combined header processing for network packets
US8379644B1 (en) 2006-06-30 2013-02-19 Marvell International Ltd. System and method of processing management frames
GB2443005A (en) * 2006-07-19 2008-04-23 Chronicle Solutions Analysing network traffic by decoding a wide variety of protocols (or object types) of each packet
US7852843B2 (en) * 2006-07-21 2010-12-14 Cortina Systems, Inc. Apparatus and method for layer-2 to layer-7 search engine for high speed network application
US7808995B2 (en) * 2006-11-16 2010-10-05 L-3 Communications Integrated Systems L.P. Methods and systems for relaying data packets
JP5080589B2 (ja) * 2006-12-06 2012-11-21 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 拡張vlanクラシフィケーション
CN101563908B (zh) 2006-12-19 2013-01-09 国际商业机器公司 分析网络流的装置和方法
IL189514A (en) 2007-02-14 2011-12-29 Marvell Israel Misl Ltd Logical mediation system and method
CN100531097C (zh) * 2007-02-16 2009-08-19 华为技术有限公司 一种桥接的方法及装置
KR101442278B1 (ko) * 2007-03-30 2014-09-22 소니 주식회사 정보 처리 장치 및 방법
US7920560B2 (en) * 2007-06-12 2011-04-05 Hewlett-Packard Development Company, L.P. Method for detecting topology of computer systems
US7773595B2 (en) * 2007-09-14 2010-08-10 Agate Logic, Inc. System and method for parsing frames
US8391293B2 (en) * 2008-01-31 2013-03-05 Cisco Technology, Inc. Transporting X.25-over-ISDN through IP, using CUGS/protocol translation
US8279867B2 (en) * 2008-03-02 2012-10-02 Jeffrey Alan Carley Method and apparatus for reducing flood traffic in switches
US8335780B2 (en) * 2008-03-11 2012-12-18 James Madison Kelley Scalable high speed relational processor for databases and networks
JP2009239401A (ja) * 2008-03-26 2009-10-15 Alaxala Networks Corp パケット転送装置
CN101577662B (zh) 2008-05-05 2012-04-04 华为技术有限公司 一种基于树形数据结构的最长前缀匹配方法和装置
US8102865B2 (en) * 2008-05-16 2012-01-24 Microsoft Corporation Group based allocation of network bandwidth
JP5161683B2 (ja) * 2008-07-22 2013-03-13 キヤノン株式会社 情報処理装置、その制御方法、及びコンピュータプログラム
JP5161682B2 (ja) * 2008-07-22 2013-03-13 キヤノン株式会社 映像処理装置、その制御方法、コンピュータプログラム、及び映像処理システム
US8688902B2 (en) * 2008-08-06 2014-04-01 Fujitsu Limited Method and system for processing access control lists using an exclusive-or sum-of-products evaluator
CN101656659B (zh) * 2008-08-19 2012-05-23 中兴通讯股份有限公司 一种混合业务流的缓存处理方法、存储转发方法及装置
JP5407712B2 (ja) * 2009-09-30 2014-02-05 富士通株式会社 通信装置および通信制御方法
US8571031B2 (en) * 2009-10-07 2013-10-29 Intel Corporation Configurable frame processing pipeline in a packet switch
WO2011053973A1 (en) * 2009-11-02 2011-05-05 Marvell World Trade Ltd. Et Al. Switching apparatus and method based on virtual interfaces
NO332162B1 (no) * 2009-12-21 2012-07-09 Cisco Systems Int Sarl Anordning og fremgangsmate for a filtrere mediapakker
US8368423B2 (en) * 2009-12-23 2013-02-05 L-3 Communications Integrated Systems, L.P. Heterogeneous computer architecture based on partial reconfiguration
US8397054B2 (en) * 2009-12-23 2013-03-12 L-3 Communications Integrated Systems L.P. Multi-phased computational reconfiguration
US8331373B2 (en) 2010-03-15 2012-12-11 Extreme Networks, Inc. Methods, systems, and computer readable media for automatically selecting between internet protocol switching modes on a per-module basis in a packet forwarding device
US8788543B2 (en) * 2010-05-13 2014-07-22 International Business Machines Corporation Scalable, concurrent resizing of hash tables
FR2960371B1 (fr) * 2010-05-20 2012-06-22 Thales Sa Procede et dispositif d'analyse de donnees interceptees sur un reseau ip pour la surveillance de l'activite des utilisateurs d'un site web
US8964742B1 (en) 2010-07-28 2015-02-24 Marvell Israel (M.I.S.L) Ltd. Linked list profiling and updating
CN102377581A (zh) * 2010-08-09 2012-03-14 高通创锐讯通讯科技(上海)有限公司 一种多域流分类流水线的实现方法
EP2630774A1 (en) * 2010-10-22 2013-08-28 Telefonaktiebolaget L M Ericsson (PUBL) Differentiated handling of network traffic using network address translation
US8312066B2 (en) * 2010-11-30 2012-11-13 Telefonaktiebolaget L M Ericsson (Publ) Hash collision resolution with key compression in a MAC forwarding data structure
US9118576B2 (en) 2011-01-06 2015-08-25 Marvell Israel (M.I.S.L) Ltd. Network device with a programmable core
US9161080B2 (en) * 2011-01-28 2015-10-13 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
US8886742B2 (en) 2011-01-28 2014-11-11 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
KR101760333B1 (ko) * 2011-03-02 2017-07-21 삼성전자주식회사 다중 사용자 다중 안테나 전송에서 그룹 아이디 관리를 위한 타겟 단말 및 액세스 포인트의 통신 방법
US9001828B2 (en) * 2011-03-21 2015-04-07 Marvell World Trade Ltd. Method and apparatus for pre-classifying packets
CN102769884A (zh) * 2011-05-03 2012-11-07 中国移动通信集团公司 基于udp的永远在线业务传输心跳数据包的方法及设备
US8935389B2 (en) * 2011-05-17 2015-01-13 Guavus, Inc. Method and system for collecting and managing network data
US9716592B1 (en) * 2011-06-10 2017-07-25 Google Inc. Traffic distribution over multiple paths in a network while maintaining flow affinity
US9065860B2 (en) 2011-08-02 2015-06-23 Cavium, Inc. Method and apparatus for multiple access of plural memory banks
US9729431B1 (en) 2011-08-16 2017-08-08 Marvell International Ltd. Using standard fields to carry meta-information
US9183102B2 (en) * 2011-09-30 2015-11-10 Alcatel Lucent Hardware consumption architecture
US8724455B2 (en) * 2012-01-20 2014-05-13 International Business Machines Corporation Distributed control of a fail-to-wire switch for a network communication link
US9203780B2 (en) * 2012-01-27 2015-12-01 Microsoft Technology Licensing, Llc Techniques to distribute messages using communication pipelines
US9154413B2 (en) * 2012-06-21 2015-10-06 Breakingpoint Systems, Inc. High-speed CLD-based pipeline architecture
US8942258B2 (en) * 2012-09-14 2015-01-27 International Business Machines Corporation Segmentation and reassembly of network packets for switched fabric networks
US8923299B2 (en) * 2012-09-14 2014-12-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Segmentation and reassembly of network packets
CN104125093B (zh) * 2013-04-29 2018-07-10 阿瓦亚公司 分布式网络中的通信故障转移
CN108989311A (zh) * 2013-05-31 2018-12-11 华为技术有限公司 生成输入参数的方法及设备
US20140369363A1 (en) * 2013-06-18 2014-12-18 Xpliant, Inc. Apparatus and Method for Uniquely Enumerating Paths in a Parse Tree
US9363178B2 (en) 2013-12-18 2016-06-07 Telefonaktiebolaget L M Ericsson (Publ) Method, apparatus, and system for supporting flexible lookup keys in software-defined networks
US9544402B2 (en) * 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US9275336B2 (en) 2013-12-31 2016-03-01 Cavium, Inc. Method and system for skipping over group(s) of rules based on skip group rule
US9667446B2 (en) 2014-01-08 2017-05-30 Cavium, Inc. Condition code approach for comparing rule and packet data that are provided in portions
US9825913B2 (en) * 2014-06-04 2017-11-21 Nicira, Inc. Use of stateless marking to speed up stateful firewall rule processing
US9516145B2 (en) * 2014-06-19 2016-12-06 Cavium, Inc. Method of extracting data from packets and an apparatus thereof
CN104135434B (zh) * 2014-08-04 2017-09-22 新华三技术有限公司 以太网虚拟化互联网络中的路径切换方法和装置
WO2016049802A1 (en) * 2014-09-29 2016-04-07 Hewlett-Packard Development Company, L.P. Adaptive split and compression
US9838337B1 (en) * 2014-09-30 2017-12-05 Juniper Networks, Inc. Automatic virtual local area network (VLAN) provisioning in data center switches
US9961170B2 (en) * 2014-11-25 2018-05-01 Qualcomm Incorporated Ethertype packet discrimination data type
CN105791145B (zh) * 2014-12-18 2019-10-25 南京中兴新软件有限责任公司 基于等价多路径ecmp的报文传输方法及装置
US10015048B2 (en) 2014-12-27 2018-07-03 Intel Corporation Programmable protocol parser for NIC classification and queue assignments
US9912615B2 (en) * 2015-02-05 2018-03-06 Verizon Patent And Licensing Inc. Dynamic removal of MAC table entries based on a MAC table fullness level
US10153972B2 (en) 2015-02-13 2018-12-11 Nxp Usa, Inc. Method and apparatus for coding a user defined constant into a key composition rule using variable length command
US9729680B2 (en) 2015-04-23 2017-08-08 Nxp Usa, Inc. Methods and systems to embed valid-field (VF) bits in classification keys for network packet frames
CN104917705A (zh) * 2015-06-18 2015-09-16 国家电网公司 一种智能变电站过程层交换机的网络报文管理方法
US9825862B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Packet header field extraction
US9826071B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Configuring a switch for extracting packet header fields
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
US10911579B1 (en) * 2016-03-01 2021-02-02 Amazon Technologies, Inc. Generating programmatically defined fields of metadata for network packets
CN107181637B (zh) 2016-03-11 2021-01-29 华为技术有限公司 一种心跳信息发送方法、装置及心跳发送节点
TWI615007B (zh) * 2016-05-12 2018-02-11 遠傳電信股份有限公司 基於gtp-u協定的封包篩選切片系統及其使用方法
CN105857218A (zh) * 2016-06-14 2016-08-17 京东方科技集团股份有限公司 一种车载显示系统
JP2018011210A (ja) * 2016-07-14 2018-01-18 三菱電機株式会社 中継装置及び中継方法
US10194007B2 (en) * 2016-08-11 2019-01-29 Calix, Inc. Concurrent optical network terminal simulation
US10554494B1 (en) 2017-01-04 2020-02-04 Juniper Networks, Inc. Automatic ICCP provisioning and VLAN provisioning on an inter-chassis link in a MC-LAG
US11223520B1 (en) 2017-01-31 2022-01-11 Intel Corporation Remote control plane directing data plane configurator
CN108574679B (zh) * 2017-03-13 2021-03-30 华为技术有限公司 处理分组的方法和网络设备
US10694006B1 (en) 2017-04-23 2020-06-23 Barefoot Networks, Inc. Generation of descriptive data for packet fields
US10523578B1 (en) 2017-07-23 2019-12-31 Barefoot Networks, Inc. Transmission of traffic management data to processing pipeline
US10594630B1 (en) 2017-09-28 2020-03-17 Barefoot Networks, Inc. Expansion of packet data within processing pipeline
US11159440B2 (en) * 2017-11-22 2021-10-26 Marvell Israel (M.I.S.L) Ltd. Hybrid packet memory for buffering packets in network devices
US10785189B2 (en) * 2018-03-01 2020-09-22 Schweitzer Engineering Laboratories, Inc. Selective port mirroring and in-band transport of network communications for inspection
TWI685231B (zh) * 2019-04-23 2020-02-11 國立中央大學 封包分類方法
CN111277602B (zh) * 2020-01-23 2023-07-11 奇安信科技集团股份有限公司 网络数据包的识别处理方法、装置、电子设备及存储介质
US11875172B2 (en) 2020-09-28 2024-01-16 VMware LLC Bare metal computer for booting copies of VM images on multiple computing devices using a smart NIC
JP2022107316A (ja) 2021-01-08 2022-07-21 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
WO2022269786A1 (ja) * 2021-06-23 2022-12-29 日本電信電話株式会社 通信データ識別装置およびその方法
US11757777B2 (en) * 2021-09-23 2023-09-12 Hewlett Packard Enterprise Development Lp Assigning security group tag for infrastructure traffic and preserving security group tag in snooped packets in dynamic segmentation
WO2023112174A1 (ja) * 2021-12-14 2023-06-22 日本電信電話株式会社 データ処理装置、データ処理方法、及び、プログラム
CN114710434B (zh) * 2022-03-11 2023-08-25 深圳市风云实业有限公司 一种基于OpenFlow交换机的多级流表构建方法
US11899594B2 (en) 2022-06-21 2024-02-13 VMware LLC Maintenance of data message classification cache on smart NIC
US11928062B2 (en) 2022-06-21 2024-03-12 VMware LLC Accelerating data message classification with smart NICs

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001251351A (ja) 2000-03-02 2001-09-14 Nec Corp パケット交換機における入力パケット処理方式
US20030081615A1 (en) 2001-10-22 2003-05-01 Sun Microsystems, Inc. Method and apparatus for a packet classifier
KR20040054110A (ko) * 2002-12-17 2004-06-25 한국전자통신연구원 튜플 공간 검색 기반의 ip 패킷 분류장치 및 분류방법

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0273746A (ja) 1988-09-09 1990-03-13 Nec Corp パケツト伝送方式
JPH08163242A (ja) 1994-12-08 1996-06-21 Hitachi Ltd Lapd手順における異常検出方法
JP3406136B2 (ja) 1995-11-09 2003-05-12 株式会社日立コミュニケーションテクノロジー デジタル回線切替装置
JPH09198334A (ja) 1996-01-16 1997-07-31 Hitachi Inf Technol:Kk データ伝送システムの障害管理方法
US5748905A (en) * 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US6229787B1 (en) * 1996-09-11 2001-05-08 Nortel Networks Limited Mechanism to achieve very fast failover in ATM backbone networks using multi-homed circuits
WO2000003516A1 (en) * 1998-07-08 2000-01-20 Broadcom Corporation Network switching architecture with multiple table synchronization, and forwarding of both ip and ipx packets
US6370666B1 (en) * 1998-12-02 2002-04-09 Agere Systems Guardian Corp. Tuning scheme for error-corrected broadcast programs
US6594268B1 (en) 1999-03-11 2003-07-15 Lucent Technologies Inc. Adaptive routing system and method for QOS packet networks
US6697873B1 (en) * 1999-12-20 2004-02-24 Zarlink Semiconductor V.N., Inc. High speed MAC address search engine
JP4294821B2 (ja) 2000-01-26 2009-07-15 株式会社日立製作所 ネットワーク中継装置
JP2001297016A (ja) 2000-04-12 2001-10-26 Nec Corp 命令実行システム
US7075926B2 (en) 2000-05-24 2006-07-11 Alcatel Internetworking, Inc. (Pe) Programmable packet processor with flow resolution logic
US6763479B1 (en) 2000-06-02 2004-07-13 Sun Microsystems, Inc. High availability networking with alternate pathing failover
US7107359B1 (en) * 2000-10-30 2006-09-12 Intel Corporation Host-fabric adapter having hardware assist architecture and method of connecting a host system to a channel-based switched fabric in a data network
US7131125B2 (en) * 2000-12-22 2006-10-31 Nortel Networks Limited Method and system for sharing a computer resource between instruction threads of a multi-threaded process
US20020116521A1 (en) * 2001-02-22 2002-08-22 Denis Paul Soft multi-contract rate policing
JP4410467B2 (ja) * 2001-03-19 2010-02-03 インターナショナル・ビジネス・マシーンズ・コーポレーション キャッシュ入力の選択方法および装置
JP3715541B2 (ja) 2001-03-28 2005-11-09 アンリツ株式会社 Atm接続装置
US20020186683A1 (en) * 2001-04-02 2002-12-12 Alan Buck Firewall gateway for voice over internet telephony communications
US6963566B1 (en) * 2001-05-10 2005-11-08 Advanced Micro Devices, Inc. Multiple address lookup engines running in parallel in a switch for a packet-switched network
US7031314B2 (en) * 2001-05-16 2006-04-18 Bytemobile, Inc. Systems and methods for providing differentiated services within a network communication system
JP2003008581A (ja) 2001-06-26 2003-01-10 Yokogawa Electric Corp 通信制御装置
US7042841B2 (en) * 2001-07-16 2006-05-09 International Business Machines Corporation Controlling network congestion using a biased packet discard policy for congestion control and encoded session packets: methods, systems, and program products
US7647422B2 (en) * 2001-11-06 2010-01-12 Enterasys Networks, Inc. VPN failure recovery
US7457297B2 (en) * 2001-11-16 2008-11-25 Enterasys Networks, Inc. Methods and apparatus for differentiated services over a packet-based network
JP2003188905A (ja) 2001-12-20 2003-07-04 Nec Commun Syst Ltd サーバ/クライアントシステムにおけるtcp/ip通信の多重化方式および方法
JP3914072B2 (ja) 2002-03-19 2007-05-16 株式会社山武 ネットワーク障害監視方法、通信システムおよび回線切替装置
JP2003298660A (ja) 2002-03-29 2003-10-17 Hitachi Communication Technologies Ltd VoIPゲートウエイ装置およびVoIP通信状態の検出方法
JP2003338835A (ja) * 2002-05-20 2003-11-28 Fujitsu Ltd パケットスイッチ及び方法
US7450507B2 (en) * 2002-06-05 2008-11-11 Lucent Technologies Inc. Hierarchal rate-limiting at a network node that utilizes an infinity rate-limit check
US7487264B2 (en) * 2002-06-11 2009-02-03 Pandya Ashish A High performance IP processor
US7408957B2 (en) * 2002-06-13 2008-08-05 International Business Machines Corporation Selective header field dispatch in a network processing system
US6993039B2 (en) * 2002-07-22 2006-01-31 Utstarcom, Inc. System and method for GRE heartbeats
US7292589B2 (en) * 2002-08-13 2007-11-06 Narendra Kumar Dhara Flow based dynamic load balancing for cost effective switching systems
US7260066B2 (en) 2002-10-31 2007-08-21 Conexant Systems, Inc. Apparatus for link failure detection on high availability Ethernet backplane
US7835265B2 (en) 2002-10-31 2010-11-16 Conexant Systems, Inc. High availability Ethernet backplane architecture
US20050125557A1 (en) 2003-12-08 2005-06-09 Dell Products L.P. Transaction transfer during a failover of a cluster controller
KR100576005B1 (ko) 2004-01-05 2006-05-02 삼성전자주식회사 고가용성 라우터 이중화 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001251351A (ja) 2000-03-02 2001-09-14 Nec Corp パケット交換機における入力パケット処理方式
US20030081615A1 (en) 2001-10-22 2003-05-01 Sun Microsystems, Inc. Method and apparatus for a packet classifier
KR20040054110A (ko) * 2002-12-17 2004-06-25 한국전자통신연구원 튜플 공간 검색 기반의 ip 패킷 분류장치 및 분류방법

Also Published As

Publication number Publication date
DE102005029396B4 (de) 2013-10-17
US20060002386A1 (en) 2006-01-05
FR2874296B1 (fr) 2008-11-28
KR20060048742A (ko) 2006-05-18
CN1716912B (zh) 2014-06-11
JP2006020317A (ja) 2006-01-19
US7760719B2 (en) 2010-07-20
CN1716911A (zh) 2006-01-04
CN100555986C (zh) 2009-10-28
DE102005029396A1 (de) 2006-01-26
CN1716912A (zh) 2006-01-04
FR2874296A1 (fr) 2006-02-17

Similar Documents

Publication Publication Date Title
KR100697568B1 (ko) 스위칭 환경을 위한 결합 파이프라인 패킷 분류 및어드레스 검색 방법 및 장치
US10616001B2 (en) Flexible processor of a port extender device
US6275861B1 (en) Method and apparatus to identify flows in data systems
US8151339B2 (en) Method and apparatus for implementing filter rules in a network element
EP1158724A2 (en) Packet processor with programmable application logic
US8774177B2 (en) Classifying traffic at a network node using multiple on-chip memory arrays
US7719980B2 (en) Method and apparatus for flexible frame processing and classification engine
US7239639B2 (en) System and method for dynamically constructing packet classification rules
US7869411B2 (en) Compact packet operation device and method
US10068034B2 (en) Efficient matching of TCAM rules using hash tables in RAM
US8774179B1 (en) Member link status change handling for aggregate interfaces
US8165125B2 (en) Apparatus and method of classifying packets
US9313131B2 (en) Hardware implemented ethernet multiple tuple filter system and method
US7787463B2 (en) Content aware apparatus and method
US20050175022A1 (en) Bridge apparatus and logical queue control method
US11700202B2 (en) Port extender with local switching
US20020116521A1 (en) Soft multi-contract rate policing
US7274698B2 (en) Multilevel parser for conditional flow detection in a network device
US9219659B1 (en) Policy control list keys for network devices

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
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120228

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130227

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee