KR102394259B1 - 내부 스위치 패브릭에서의 비동일한 링크 접속들을 위한 분사 - Google Patents

내부 스위치 패브릭에서의 비동일한 링크 접속들을 위한 분사 Download PDF

Info

Publication number
KR102394259B1
KR102394259B1 KR1020200034892A KR20200034892A KR102394259B1 KR 102394259 B1 KR102394259 B1 KR 102394259B1 KR 1020200034892 A KR1020200034892 A KR 1020200034892A KR 20200034892 A KR20200034892 A KR 20200034892A KR 102394259 B1 KR102394259 B1 KR 102394259B1
Authority
KR
South Korea
Prior art keywords
fabric
core
cores
endpoints
output ports
Prior art date
Application number
KR1020200034892A
Other languages
English (en)
Other versions
KR20210086390A (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 KR20210086390A publication Critical patent/KR20210086390A/ko
Application granted granted Critical
Publication of KR102394259B1 publication Critical patent/KR102394259B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/1523Parallel switch fabric planes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1553Interconnection of ATM switching modules, e.g. ATM switching fabrics
    • H04L49/1576Crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card

Abstract

일반적으로, 내부 디바이스 스위치 패브릭을 위한 패브릭 평면의 패브릭 코어들에 의한 균형화된 셀 핸들링을 용이하게 하기 위한 기법들이 설명된다. 일부 예들에서, 라우팅 시스템은 복수의 패브릭 엔드포인트들, 및 패브릭 엔드포인트들 사이에서 셀들을 스위칭하기 위한 패브릭 평면을 포함하는 스위칭 패브릭을 포함한다. 패브릭 평면은 2 개의 패브릭 코어들, 및 패브릭 코어들을 접속하는 하나 이상의 인터-코어 링크들을 포함한다. 각각의 패브릭 코어는 (i) 수신된 셀이 수신되었던 패브릭 코어의 입력 포트 및 (ii) 수신된 셀을 위한 목적지 패브릭 엔드포인트에 기초하여, 셀들의 수신된 셀을 라우팅하기 위한 패브릭 코어의 출력 포트를 선택하고 - 선택된 출력 포트들의 적어도 부분은 인터-코어 링크들에 접속됨 -, 수신된 셀을 선택된 출력 포트로 스위칭한다.

Description

내부 스위치 패브릭에서의 비동일한 링크 접속들을 위한 분사{SPRAYING FOR UNEQUAL LINK CONNECTIONS IN AN INTERNAL SWITCH FABRIC}
개시내용은 컴퓨터 네트워크들에 관한 것으로, 더 상세하게는, 컴퓨터 네트워크들 내에서 패킷들을 통신하는 것에 관한 것이다.
컴퓨터 네트워크는 데이터를 교환할 수 있고 자원들을 공유할 수 있는 상호접속된 컴퓨팅 디바이스들의 집합이다. 이더넷 네트워크(Ethernet network)와 같은 패킷-기반 네트워크에서는, 컴퓨팅 디바이스들이 데이터를, 네트워크를 가로질러 출발지 디바이스(source device)로부터 목적지 디바이스(destination device)로 개별적으로 라우팅되는 패킷들로 칭해진 가변-길이 블록(variable-length block)들로 분할함으로써 데이터를 통신한다. 목적지 디바이스는 패킷들로부터 데이터를 추출하고, 데이터를 그 원래의 형태로 조립한다.
라우터(router)들로서 지칭된 어떤 디바이스들은 네트워크의 토폴로지(topology)를 나타내는 라우팅 정보를 유지한다. 라우터들은 네트워크를 통한 이용가능한 루트(route)들의 정확한 표현을 유지하기 위하여 라우팅 정보를 교환한다. "루트"는 네트워크 상의 2 개의 위치들 사이의 경로로서 일반적으로 정의될 수 있다. 착신 데이터 패킷을 수신할 시에, 라우터는 라우팅 정보에 따라 패킷을 포워딩하기 위한 적절한 다음 도약(hop)을 선택하기 위하여 "키(key)"로서 종종 지칭된, 패킷 내의 정보를 검사한다.
다양한 라우터들이 인터넷 내에서 존재한다. 네트워크 서비스 제공자(Network Service Provider)(NSP)들은 예를 들어, 인터넷 액세스 및 다른 서비스들을 고객들에게 제공하기 위하여 "에지 라우터(edge router)들"을 유지한다. NSP가 제공할 수 있는 서비스들의 예들은 보이스 오버 IP(Voice over IP)(VoIP), 비동기식 전송 모드(Asynchronous Transfer Mode)(ATM) 또는 프레임 중계 통신들을 위한 액세스, 인터넷 프로토콜(Internet protocol)(IP) 데이터 서비스들, 및 비디오 스트리밍과 같은 멀티미디어 서비스들을 포함한다. NSP들의 에지 라우터들은 네트워크 트래픽을, 인터넷의 백본(backbone)을 형성하는 것으로서 일반적으로 간주될 수 있는 고속 "코어 라우터(core router)들"로 종종 통신한다. 이 코어 라우터들은 에지 라우터들보다 실질적으로 더 많은 프로세싱 자원들을 종종 포함하고, 네트워크 트래픽의 고용량들을 핸들링(handle)하도록 설계된다.
라우터들은 포트들을 가지는 네트워크 인터페이스 카드들 뿐만 아니라 패킷 포워딩 엔진(packet forwarding engine)(PFE)들 또는 다른 패킷 프로세서들을 포함하는 라인 카드(line card)들을 포함할 수 있다. 라인 카드들은 라우터 스위치 패브릭(router switch fabric)을 통해 스위칭되도록 하기 위하여 네트워크로부터 패킷들을 수신하고 패킷들을 프로세싱하고, 네트워크에서의 다음 목적지로 전송되도록 하기 위하여 스위치 패브릭으로부터 패킷들을 수신한다. 라우터의 스위치 패브릭은 라우터를 통해 하나의 라인 카드 상의 유입 포트(ingress port)로부터 또 다른 라인 카드 상의 목적지 유출 포트(destination egress port)로 트래픽을 스위칭하는 패브릭 평면(fabric plane)들을 갖는 패브릭 카드(fabric card)들을 포함할 수 있다.
일반적으로, 내부 디바이스 스위치 패브릭을 위한 패브릭 평면의 패브릭 코어(fabric core)들에 의한 균형화된 셀 핸들링을 용이하게 하기 위한 기법들이 설명된다. 기법들은 패브릭 코어들을 서로에게 접속하는 인터-코어 링크(inter-core link)들 사이에서, 그리고 패브릭 코어들에 접속되는 목적지 패브릭 엔드포인트(destination fabric endpoint)들로의 직접 링크(direct link)들 사이에서 셀들을 분사(spray)하는 것을 포함할 수 있다. 기법들은 패브릭 엔드포인트들이 패브릭 평면으로의 홀수 개의 이용가능한 링크들을 공유할 때, 또는 다수의 패브릭 엔드포인트들이 패브릭 평면으로의 상이한 수들의 링크들을 가질 때에 특히 이용가능할 수 있어서, 패브릭 평면과의 불균형화된 접속성으로 귀착될 수 있다.
예를 들어, 라인 카드 상의 2 개의 패브릭 엔드포인트들은 패브릭 평면으로의 홀수 개의 링크들을 집합적으로 가질 수 있다. 이 링크들 중의 하나는 2 개의 패브릭 엔드포인트들 사이에서 공유된다. 패브릭 평면은 2 개의 패브릭 코어들을 포함하고, 홀수 개의 링크들은 코어들의 제1 코어에 오직 접속되는 공유된 링크를 제외하고는, 2 개의 코어들 사이에서 동일하게 배분되고 2 개의 코어들에 접속된다. 또 다른 예에서, 2 개의 패브릭 엔드포인트들은 패브릭 평면으로의 상이한 수의 링크들을 가질 수 있다. 예를 들어, 제1 패브릭 엔드포인트는 2 개의 코어들의 각각으로의 4 개의 링크들을 가질 수 있는 반면, 제2 패브릭 엔드포인트들은 2 개의 코어들의 각각으로의 단일 링크를 가질 수 있다. 이러한 패브릭 엔드포인트들, 및 링크들의 그 개개의 접속 세트들은 불균형화된다.
공유된 또는 불균형화된 링크들의 이 2 개의 시나리오들에 대하여 2 개의 패브릭 코어들 사이의 균형화된 셀 핸들링을 용이하게 하기 위하여, 제1 코어는 인터-코어 링크를 통해 코어들의 제2 코어로의 공유된 또는 불균형화된 링크 상에서 수신되는 셀 트래픽(cell traffic)의 부분을 분사한다. 본원에서 이용된 바와 같이, 상호접속 포트는 또 다른 패브릭 코어로의 인터-코어 링크를 통해 통신가능하게 결합되는 패브릭 코어 상의 포트이고, 출력 포트는 셀들을 전송하기 위하여 패브릭 엔드포인트 또는 다른 패브릭 코어에 접속된 패브릭 코어의 포트이고, 입력 포트는 패브릭 엔드포인트 또는 다른 패브릭 코어로부터 셀들을 수신하기 위한 패브릭 코어의 포트이다. 셀이 패브릭 평면의 입력 포트에서 도달할 때, 셀을 위한 초기 수신 패브릭 코어는 출발지 패브릭 엔드포인트와 입력 포트 사이의 링크가 불균형화되는지 또는 공유되는지 여부를 표시하는 입력 포트에 적어도 기초하여, 출력 포트로 스위칭하기 위하여 다른 패브릭 코어로의 인터-코어 링크를 통해 셀을 전송할 것인지 여부를 결정할 수 있다.
기법들은 적어도 하나의 실용적인 애플리케이션을 용이하게 하기 위한 하나 이상의 기술적 장점들을 제공할 수 있다. 예를 들어, 셀 핸들링 기법들은 멀티코어 패브릭 평면 스위칭 아키텍처들 - 패브릭 평면들은 다수의 패브릭 엔드포인트들 사이에서 공유된 홀수 개의 링크들을 가짐 - 이 패브릭 코어들 사이의 균형화된(즉, 공정한) 셀 핸들링을 달성하는 것을 가능하게 할 수 있다. 또 다른 예로서, 셀 핸들링 기법들은 패브릭 코어들 사이의 균형화된 셀 핸들링을 달성하기 위하여 멀티코어 패브릭 평면과의 패브릭 엔드포인트들 사이의 불균형화된 링크 접속성을 가능하게 할 수 있다.
하나의 예에서, 라우팅 시스템은 복수의 패브릭 엔드포인트들, 및 패브릭 엔드포인트들 사이에서 셀들을 스위칭하기 위한 패브릭 평면을 포함하는 스위칭 패브릭을 포함한다. 패브릭 평면은 2 개의 패브릭 코어들, 및 패브릭 코어들을 접속하는 하나 이상의 인터-코어 링크들을 포함한다. 각각의 패브릭 코어는 (i) 수신된 셀이 수신되었던 패브릭 코어의 입력 포트 및 (ii) 수신된 셀을 위한 목적지 패브릭 엔드포인트에 기초하여, 셀들의 수신된 셀을 라우팅하기 위한 패브릭 코어의 출력 포트를 선택하고 - 선택된 출력 포트들의 적어도 부분은 인터-코어 링크들에 접속됨 -, 수신된 셀을 선택된 출력 포트로 스위칭한다.
또 다른 예는 복수의 엔드포인트들, 및 엔드포인트들 사이에서 셀들을 스위칭하기 위한 패브릭 평면을 포함하는 스위칭 패브릭을 갖는 라우터에서, 셀을 라우팅하는 방법을 포함한다. 스위치 패브릭 평면은 패브릭 코어들 중의 2 개, 및 패브릭 코어들을 접속하는 하나 이상의 인터-코어 링크들을 포함한다. 방법은 복수의 입력 포트들에서 셀들을 수신하는 단계를 포함한다. 방법은 패브릭 코어들에 의해, (i) 수신된 셀이 수신되었던 패브릭 코어의 입력 포트 및 (ii) 수신된 셀을 위한 목적지 패브릭 엔드포인트에 기초하여, 셀들의 수신된 셀을 라우팅하기 위한 패브릭 코어의 출력 포트를 선택하는 단계 - 선택된 출력 포트들의 적어도 부분은 인터-코어 링크들에 접속됨 - 를 또한 포함한다. 추가적으로, 방법은 수신된 셀을 선택된 출력 포트들로 스위칭하는 단계를 포함한다.
또 다른 예에서, 네트워크 디바이스는 복수의 패브릭 엔드포인트들을 집합적으로 가지는 복수의 라인 카드들, 및 라인 카드들에 결합되고 패브릭 엔드포인트들 사이에서 셀들을 스위칭하기 위한 패브릭 평면을 포함하는 패브릭 스위치 카드를 포함한다. 패브릭 평면은 2 개의 패브릭 코어들, 및 패브릭 코어들을 접속하는 하나 이상의 인터-코어 링크들을 포함한다. 각각의 패브릭 코어는 (i) 수신된 셀이 수신되었던 패브릭 코어의 입력 포트 및 (ii) 수신된 셀을 위한 목적지 패브릭 엔드포인트에 기초하여, 셀들의 수신된 셀을 라우팅하기 위한 패브릭 코어의 출력 포트를 선택하고 - 선택된 출력 포트들의 적어도 부분은 인터-코어 링크들에 접속됨 -, 수신된 셀을 선택된 출력 포트로 스위칭한다.
하나 이상의 예들의 세부사항들은 동반 도면들 및 이하의 설명에서 기재된다. 다른 특징들, 목적들, 및 장점들은 설명 및 도면들로부터, 그리고 청구항들로부터 명백할 것이다.
도 1은 서비스 제공자 네트워크가 이 개시내용에서 설명된 기법들에 따라 구성된 비동일한 링크 가능형 라우터를 포함하는 일 예의 네트워크 환경을 예시하는 블록도이다.
도 2는 본원에서 설명된 기법들에 따른 스위칭 시스템의 예를 예시하는 블록도이다.
도 3a 및 도 3b는 패브릭 평면으로의 공유된 및/또는 불균형화된 링크 접속들을 갖는 패브릭 엔드포인트들을 가지는 라인 카드들의 블록도들이다.
도 4a, 도 4b, 및 도 4c는 패브릭 코어들에 접속된 엔드포인트들의 예시적인 구성들의 블록도들이다.
도 5는 이 개시내용에서 설명된 기법들에 따라 셀들을 스위칭하도록 구성된 애플리케이션-특정 집적 회로(application-specific integrated circuit)(ASIC)를 도시하는 블록도이다.
도 6은 이 개시내용의 기법들에 따른 일 예의 데이터 셀 포맷을 예시하는 블록도이다.
도 7은 동일한 패브릭 코어들에 접속된 상이한 유형들의 엔드포인트들의 일 예의 구성의 블록도이다.
도 8은 패브릭 코어들에 의해 셀들을 스위칭하는 일 예의 방법을 예시하는 플로우차트이다.
도 9는 입력 포트 및 목적지 엔드포인트에 기초하여 패브릭 코어에 의해 셀들을 스위칭하는 일 예의 방법을 예시하는 플로우차트이다.
도 1은 서비스 제공자 네트워크가 이 개시내용에서 설명된 기법들에 따라 구성된 라우터를 포함하는 일 예의 네트워크 환경을 예시하는 블록도이다. 예의 목적들을 위하여, 발명의 원리들은 라우터(102)가 서비스 제공자 네트워크(108)에 대한 액세스를 고객 네트워크들(106A 내지 106C)(집합적으로, "고객 네트워크들(106)")에 제공하기 위하여 에지 라우터들(104A 및 104B)(집합적으로, "에지 라우터들(104)")과 통신하는 도 1의 단순화된 네트워크 환경(100)에 대하여 설명된다. 라우터(102)는 네트워크 환경(100)의 토폴로지의 정확한 표현을 유지하기 위하여 에지 라우터들(104)과 라우팅 정보를 교환할 수 있다. 이하에서 설명된 바와 같이, 라우터(102)는 서비스 제공자 네트워크(108) 내에서 단일 노드로서 동작하는 복수의 협력적 라우팅 컴포넌트들로 구성될 수 있다. 라우터(102)는 다양한 내부 라우팅 컴포넌트들(예컨대, 라인 카드들, 스위칭 패브릭 카드들, 라우팅 엔진 카드 등)을 함께 결합하는 샤시(chassis)(도 1에서 도시되지 않음)를 포함한다.
예시되지 않았지만, 서비스 제공자 네트워크(108)는 다른 제공자들에 의해 관리된 하나 이상의 네트워크들에 결합될 수 있고, 이에 따라, 대규모 공중 네트워크 기반구조, 예컨대, 인터넷의 일부를 형성할 수 있다. 결과적으로, 고객 네트워크들(106)은 인터넷의 에지 네트워크(edge network)들로서 간주될 수 있다. 서비스 제공자 네트워크(108)는 인터넷에 대한 액세스를 고객 네트워크들(106) 내의 컴퓨팅 디바이스들에 제공할 수 있고, 고객 네트워크들(106) 내의 컴퓨팅 디바이스들이 서로 통신하는 것을 허용할 수 있다. 또 다른 예에서, 서비스 제공자 네트워크(108)는 인터넷의 코어 내에서 네트워크 서비스들을 제공할 수 있다. 어느 경우에나, 서비스 제공자 네트워크(108)가 추가적인 라우터들, 스위치들, 서버들, 또는 다른 디바이스들과 같은, 라우터(102) 및 에지 라우터들(104) 이외의 다양한 네트워크 디바이스들(도시되지 않음)을 포함할 수 있다.
예시된 예에서, 에지 라우터(104A)는 액세스 링크(110A)를 통해 고객 네트워크(106A)에 결합되고, 에지 라우터(104B)는 추가적인 액세스 링크들(110B 및 110C)을 통해 고객 네트워크들(106B 및 106C)에 결합된다. 고객 네트워크들(106)은 기업의 지리적으로 분리된 장소들을 위한 네트워크들일 수 있다. 고객 네트워크들(106)은 개인용 컴퓨터들, 랩톱 컴퓨터들, 핸드헬드 컴퓨터들, 워크스테이션들, 서버들, 스위치들, 프린터들, 고객 데이터 센터들, 또는 다른 디바이스들과 같은 하나 이상의 컴퓨팅 디바이스들(도시되지 않음)을 포함할 수 있다. 도 1에서 예시된 네트워크 환경(100)의 구성은 단지 예이다. 서비스 제공자 네트워크(108)는 임의의 수의 고객 네트워크들(106)에 결합될 수 있다. 그럼에도 불구하고, 설명의 용이함을 위하여, 오직 일 예의 수의 고객 네트워크들(106A 내지 106C)이 도 1에서 예시된다. 서비스 제공자 네트워크들(108)을 제외한 많은 상이한 유형들의 네트워크들은 고객/기업 네트워크들, 전송 네트워크들, 어그리게이션(aggregation) 또는 액세스 네트워크들 등을 포함하는 라우터(102)의 사례를 채용할 수 있다.
이하에서 더욱 상세하게 설명된 바와 같이, 라우터(102)는 스위치 패브릭(112)을 포함한다. 스위치 패브릭(112)은 패브릭 평면들에 접속된 패브릭 엔드포인트들 사이에서 라우터(102)를 통해 셀들을 라우팅하기 위하여 이용된 패브릭 평면들을 제공하는 스위치 패브릭 카드들을 포함한다. 패브릭 평면들은 셀 트래픽을 균형화하기 위하여 패브릭 코어들 사이에서 셀들을 라우팅하는 것을 용이하게 하는 인터-코어 링크들을 갖는 패브릭 코어들을 포함한다. 이것은 각각의 패브릭 코어를 위한 균형화된 트래픽 부하를 유지하면서, 각각의 패브릭 엔드포인트가 패브릭 코어로의 동일한 수의 링크들을 가질 필요가 없거나 다수의 패브릭 엔드포인트들이 홀수 개의 링크들을 공유할 수 있는 구성에서의 패브릭 엔드포인트들을 이용하는 것을 용이하게 한다. 이 동작은 라우터(102)의 외부에서 투명하지만, 이 동작은 샤시 또는 스위치 패브릭 카드들을 업데이트하지 않으면서 라우터(102)가 업데이트될 수 있도록, 라인 카드들 및 그 상의 패브릭 엔드포인트들의 더 신축적인 구성을 허용하는 이득을 제공한다. 그 결과로, 라우터(102)의 하드웨어 구성은 현존하는 아키텍처들에 대비하여 더 신축적일 수 있다.
각각의 패브릭 평면이 각각의 패브릭 엔드포인트로부터 패브릭 평면으로의 동일한 수의 링크들을 가지는 아키텍처들은 동일한 셀 트래픽이 패브릭 엔드포인트들 사이의 링크들 사이에서 분사되는 것을 용이하게 한다. 스위치 패브릭(112)은 하나 이상의 패브릭 평면들을 포함한다. 패브릭 평면들 중의 적어도 하나는 다수의(예컨대, 2 개의) 패브릭 코어들을 가지고, 패브릭 코어들의 각각은 별도의 크로스바 스위치(cross-bar switch)이고 패브릭 평면의 입력 포트들 및 출력 포트들에 접속된다. 이 개시내용의 기법들에 따르면, 패브릭 평면은 패브릭 코어들에 의한 균형화된 셀 핸들링을 용이하게 한다. 패브릭 코어들은 하나 이상의 인터-코어 링크들에 의해 접속된다. 기법들은 인터-코어 링크들 사이에서, 그리고 패브릭 평면의 포트들을 통해 패브릭 코어들에 접속되는 목적지 패브릭 엔드포인트들로의 직접 링크들 사이에서 셀들을 분사하는 것을 포함할 수 있다. 기법들은 패브릭 엔드포인트들이 패브릭 평면으로의 홀수 개의 이용가능한 링크들을 공유할 때, 또는 다수의 패브릭 엔드포인트들이 패브릭 평면으로의 상이한 수들의 링크들을 가질 때에 특히 이용가능할 수 있어서, 패브릭 평면과의 불균형화된 접속성으로 귀착될 수 있다.
셀 핸들링 기법들은 멀티코어 패브릭 평면 스위칭 아키텍처들 - 패브릭 평면들은 다수의 패브릭 엔드포인트들 사이에서 공유된 홀수 개의 링크들을 가짐 - 이 패브릭 코어들 사이의 균형화된(즉, 공정한) 셀 핸들링을 달성하는 것을 가능하게 할 수 있다. 또 다른 예로서, 셀 핸들링 기법들은 패브릭 코어들 사이의 균형화된 셀 핸들링을 달성하기 위하여 멀티코어 패브릭 평면과의 패브릭 엔드포인트들 사이의 불균형화된 링크 접속성을 가능하게 할 수 있다.
도 2는 본원에서 설명된 기법들에 따른 스위칭 시스템의 예를 예시하는 블록도이다. 스위칭 시스템(202)의 스위치 패브릭(200)(때때로, "패브릭(200)"으로서 지칭됨)은 도 1의 라우터(102)의 스위치 패브릭(112)의 일 예의 사례를 표현할 수 있다. 스위칭 시스템(202)의 라인 카드들(204A 및 204B)(집합적으로, "라인 카드들(204)")은 패브릭(200)에 의해 스위칭된 데이터 유닛들(예컨대, 셀들)의 출발지들 및/또는 목적지들로서 동작하기 위하여 스위치 패브릭(200)의 패브릭 평면들(206A 내지 206K)의 각각에 별도로 결합된다. 구체적으로, 예시된 예에서, 라인 카드들(204)은 공유된 및 비공유된 링크들을 통해 패브릭 평면들(206)에 접속되는 다수의 패브릭 엔드포인트(207A 및 207B)(집합적으로, "패브릭 엔드포인트들(207)")를 가지고, 셀들의 출발지들 및/또는 목적지들로서 동작한다. 예시된 예에서, 라인 카드들 중의 하나(204A)의 엔드포인트들(207)은 스위치 패브릭(200)을 통해, 패킷들(208)을 유출(egress)하거나, 소비하거나, 또는 그렇지 않을 경우에 싱킹(sink)하는 또 다른 라인 카드(204B)의 엔드포인트들(207)로 스위칭하기 위하여, 패킷들(208)을 유입(ingress)하거나, 발신(orginate)하거나, 또는 그렇지 않을 경우에 소싱(source)한다.
패브릭 엔드포인트들(207)의 각각은 셀들을 위한 출발지 및 목적지의 양자로서 전형적으로 동작하지만, 패브릭 엔드포인트들(207) 중의 임의의 것은 다양한 사례들에서 셀들을 위한 출발지 또는 목적지 중의 어느 하나일 수 있다. 일부 예들에서, 패브릭 엔드포인트들(207)은 패브릭 엔드포인트들(207)이 패킷 스위칭 디바이스(예컨대, 라우터(102))를 위한 분산된 포워딩 평면을 집합적으로 구현하도록, 패킷 포워딩 엔진(PFE) 또는 다른 포워딩 유닛을 각각 표현할 수 있다. 일부 예들에서, 패브릭 엔드포인트들(207)은 패브릭(200)을 통해 분산된 애플리케이션을 위한 패킷들을 교환하는 서버들 또는 다른 호스트들(예컨대, 가상 머신(virtual machine)들)을 위한 패브릭 인터페이스들을 표현할 수 있다. 패브릭 엔드포인트들(207)은 다른 동작들 중에서, 패브릭(200)을 통해 스위칭되는 셀들을 위한 큐잉(queuing)을 제공하기 위한 개개의 스위치 패브릭 인터페이스들 또는 "스위치 인터페이스(switch interface)들"(SI들 - 도시되지 않음)을 포함할 수 있다.
이 예에서, 스위치 패브릭(200)은 각각이 다수의 패브릭 코어들(210A 및 210B)을 포함하는 복수의 패브릭 평면들(206A 내지 206K)(집합적으로, "패브릭 평면들(206)"로서 지칭됨)을 포함한다. 패브릭 평면들(206A 내지 206K)은 패브릭 코어들("패브릭 코어들(210A 및 210B)"로서 예시되고 "패브릭 코어들(210)"로서 본원에서 집합적으로 지칭됨)에 의해 지원된 동작적으로 독립적인 병렬 스위치 패브릭 평면들이다. 스위칭 시스템(202)은 하나 이상의 패브릭 평면들(206)을 포함할 수 있다. 스위칭 시스템(202)은 패브릭 평면들(206)을 구현하기 위한 하나 이상의 스위치 패브릭 카드들을 포함할 수 있다. 단일 패브릭 평면(206)에서의 패브릭 코어들(210)의 수는 패브릭 코어들(210)의 개개의 능력들 및 필요한 패브릭 대역폭에 따라, 임의의 수일 수 있다. 예시된 예에서, 패브릭 평면(206A)은 2 개의 패브릭 코어들(210A 및 210B)을 포함한다. 각각의 패브릭 코어(210)는 스위칭 대역폭을 패브릭 엔드포인트들(207)에 제공하기 위하여 독립적인 스위치 네트워크(예컨대, 베네스 네트워크(Benes network))를 구현하기 위한 유사한 컴포넌트들을 포함하고, 컴포넌트들 및 기능성은 패브릭 평면(206A)의 패브릭 코어들(210A 및 210B)에 대하여 주로 이하에서 설명된다. 별도의 패브릭 평면들(206)의 패브릭 코어들(210)은, 하나의 패브릭 평면(206)의 패브릭 코어들(210) 중의 하나의 고장이 다른 패브릭 평면들(206)의 나머지 동작 패브릭 평면들의 스위칭 능력에 영향을 주지 않는다는 점에서 동작적으로 독립적이다. 패브릭 코어들(210)의 각각은 비-차단(non-blocking) 접속성을 제공할 수 있다.
패브릭 코어들(210)의 각각은 라인 카드들 중의 하나(204A)의 패브릭 엔드포인트들(207A)에 결합된 입력 포트들(212), 및 라인 카드들 중의 또 다른 하나(204B)의 패브릭 엔드포인트들(207B)에 결합된 출력 포트들(214)을 포함한다. 2 개의 유입 패브릭 엔드포인트들(207A)을 갖는 하나의 라인 카드(204A) 및 2 개의 유출 패브릭 엔드포인트들(207B)을 갖는 하나의 라인 카드(204B)가 오직 단순화를 위하여 예시되지만, 각각의 패브릭 평면(206)은 전형적으로, 다수의 라인 카드들의 개개의 패브릭 엔드포인트들에 결합된 다수의 입력 포트들(212) 및 출력 포트들(214)을 포함한다. 패브릭 엔드포인트(207A)가 패킷을 획득할 때, 패브릭 엔드포인트(207A)는 어느 패브릭 엔드포인트(이 예에서의 라인 카드(204B)의 패브릭 엔드포인트들(207B) 중의 하나)가 패킷을 위한 목적지인지를 결정하기 위한 룩업 동작(lookup operation)을 수행한다. 패킷을 획득하는 것은 예를 들어, 네트워크 또는 호스트로부터 패킷을 수신하는 것 또는 패킷을 발신하는 것을 지칭할 수 있다. 패브릭 엔드포인트(207A)는 임의적으로, 패킷들을 셀들로 분할하고, 패킷/셀들을 패브릭(200)을 가로질러 목적지 패브릭 엔드포인트(207B)로 포워딩한다. 패브릭 엔드포인트(207A)는 패브릭 평면들(206)을 가로질러 대역폭 부하를 분산시키기 위하여 셀들을 스위칭하기 위한 상이한 패브릭 평면들(206)을 선택한다.
패브릭 엔드포인트들(207)은 패브릭(200)을 가로질러 데이터 셀을 송신하기 위한 요청/승인 프로토콜을 채용할 수 있다. 이러한 경우들에는, 출발지 패브릭 엔드포인트(207)가 요청을 패브릭(200)을 가로질러 목적지 패브릭 엔드포인트(207)로 송신한다. 일부 예들에서, 셀들을 위한 선택된 패브릭 평면(206A)을 가로질러 셀들을 전송하기 위하여, 출발지 패브릭 엔드포인트(207A)는 전송 부하를 공정하게 분산시키기 위하여, 라운드-로빈(round-robin)(예컨대, 결손 가중화된 라운드 로빈(deficit weighted round robin) 등) 또는 다른 균형화 순서로 각각의 이러한 요청을 패브릭 코어들(210) 중의 상이한 하나를 가로질러 송신한다. 요청을 수신하는 것에 응답하여, 목적지 패브릭 엔드포인트(207)는 목적지 패브릭 엔드포인트(207B)가 대응하는 요청을 수신하였던 동일한 패브릭 코어(210)를 가로질러 승인을 출발지 패브릭 엔드포인트(207A)로 송신한다. 승인을 수신하는 것에 응답하여, 출발지 패브릭 엔드포인트(207A)는 출발지 패브릭 엔드포인트(207A)가 대응하는 요청을 발행하였던 동일한 패브릭 코어(210)를 가로질러 데이터 셀을 목적지 패브릭 엔드포인트(207B)로 송신한다.
예시된 예에서, 동일한 패브릭 평면(206) 상의 패브릭 코어들(210)은 패브릭 엔드포인트들(207)을 향해 가는 트래픽을 균등하게 분산시키기 위하여 셀들이 2 개의 패브릭 코어들(210) 사이에서 전송되는 것을 용이하게 하는 인터-코어 포트들(216)을 포함한다. 불균형화된 접속들은 패브릭 엔드포인트들(207)이 패브릭 코어들(210)로의 상이한 수의 접속들을 가질 때에 발생한다. 셀이 출발지 패브릭 엔드포인트(207A)로부터, 출발지 패브릭 엔드포인트(207A)가 불균형화된 접속을 가지는 패브릭 코어(210)로 전송될 때, 셀은 라우팅되도록 하기 위하여 인터-코어 링크를 통해 다른 패브릭 코어(210)로 포워딩될 수 있다. 이러한 방식으로, 스위치 패브릭(200)은 패브릭 엔드포인트들(207)로부터의 링크들의 수가 패브릭 엔드포인트들이 패브릭 코어(210)로의 동일한 접속들을 가질 수 없다는 것을 의미하는 구성을 수용한다.
불균형화된 접속들은, 패브릭 평면 당 상이한 수의 링크들과 같은 상이한 구성들을 갖는 패브릭 엔드포인트들이 라우터 내에서 이용되고, 및/또는 2 개 이상의 패브릭 엔드포인트들이 링크들의 집합적인 대역폭을 효과적으로 사용하기 위하여 링크를 공유할 수 있도록, 2 개 이상의 패브릭 엔드포인트들의 세트가 패브릭 평면들(206) 중의 하나 이상을 갖는 홀수 개의 링크들을 가질 수 있으므로 발생할 수 있다.
도 3a 및 도 3b는 패브릭 평면으로의 공유된 및/또는 불균형화된 링크 접속들을 갖는 패브릭 엔드포인트들 그룹들을 가지는 라인 카드들의 블록도들이다. 도 3a의 예시된 예에서, 라인 카드들(300A 및 300B)은 2 개의 패브릭 엔드포인트 그룹들(예컨대, 각각 엔드포인트 그룹들(302A 및 302B) 및 엔드포인트 그룹들(302C 및 302D))을 각각 가진다. 엔드포인트 그룹들(302A 내지 302D)은 다수의 패브릭 엔드포인트들을 각각 포함한다. 패브릭 엔드포인트들의 각각은 예를 들어, PFE 또는 다른 패킷 프로세서를 표현할 수 있다. 예시된 예에서, 엔드포인트 그룹들(302A 내지 302D)은 2 개의 패브릭 엔드포인트들(예컨대, 엔드포인트들 "C0" 및 "C1")을 각각 포함한다. 예시된 예들의 패브릭 엔드포인트들(C0 및 C1)은 위의 도 2의 패브릭 엔드포인트들(207)의 예들일 수 있다. 예시된 예에서, 엔드포인트 그룹들(302A 및 302B)(단순화를 위하여, 때때로 각각 "EG0(302A)" 및 "EG1(302B)"로서 지칭됨)은 9 개의 링크들을 이용하여 패브릭 평면(206)에 각각 접속된다. 유사하게, 엔드포인트 그룹들(302C 및 302D)(단순화를 위하여, 때때로 각각 "EG2(302C)" 및 "EG3(302D)"로서 지칭됨)은 9 개의 링크들을 이용하여 패브릭 평면(206)에 각각 접속된다.
EG0(302A)은 5 개의 링크들을 이용하여 제1 패브릭 코어(210A)에 접속된다. EG0(302A)은 패브릭 평면(206) 내의 우회 링크들(306)을 통해 4 개의 링크들을 이용하여 제2 패브릭 코어(210B)에 접속된다. EG0(302A)의 엔드포인트들(C0 및 C1)은 제1 코어(210A)로의 5 개의 링크들 중의 2 개의 전용 링크들을 각각 가지고, EG0(302A)의 엔드포인트들(C0 및 C1)은 제1 코어(210A)로의 5 개의 링크들 중의 1 개(때때로 "공유된 링크" 또는 "0.5 개의 링크"로서 지칭됨)를 공유한다. EG0(302A)의 엔드포인트(C0)는 제2 코어(210B)로의 4 개의 링크들 중의 2 개의 전용 링크들로 제2 코어(210B)에 접속된다. 전반적으로, EG0(302A)의 C0은 2.5 개의 링크들을 이용하여 제1 패브릭 코어(210A)에 접속되고, 2 개의 링크들을 이용하여 제2 패브릭 코어(210B)에 접속된다. 유사하게, EG0(302A)의 C1은 2 개의 전용 링크들 및 1 개의 공유된 링크로 제1 패브릭 코어(210A)에 접속되고, 2 개의 전용 링크들로 제2 패브릭 코어(210B)에 접속된다. EG1(302B) 및 그 엔드포인트들(C0 및 C1)은 패브릭 코어들(210A, 210B), 유사하게 EG1(302A)에 접속된다.
EG2(302C) 및 EG3(302D)은 패브릭 코어들(210A, 210B)에 대하여 EG0 및 EG1에 상반적(reciprocal)인 방식으로, 제1 패브릭 코어(210A) 및 제2 패브릭 코어(210B)에 접속된다. 예를 들어, EG2(302C)의 C0 및 C1은 2 개의 전용 링크들을 각각 가지고, 제1 패브릭 코어(210A)로의 2 개의 전용 링크들을 각각 가지면서, 제2 패브릭 코어(210B)로의 링크를 공유한다. 이에 따라, EG2(302C)의 C0은 2.5 개의 링크들을 이용하여 제2 패브릭 코어(210A)에 접속되고, 2 개의 링크들을 이용하여 제1 패브릭 코어(210A)에 접속된다. 예시된 예에서, 엔드포인트들로부터 패브릭 평면(206)으로의 링크들은 패브릭 평면(206) 상의 포트들(304)에 접속되고, 내부 접속들을 통해 개개의 패브릭 코어들(210)에 접속된다.
뒤따르는 예는 EG0(302A)의 C0 내지 EG2(302C)의 C0 사이의 일 예의 셀 트래픽을 설명한다. EGO(302A)의 C0의 비공유된 링크 상에서 발신되는 트래픽은 (예컨대, 인터-코어 링크를 거치지 않으면서) 동일한 패브릭 코어(210A)를 통해 EG2C의 C0의 비공유된 링크로 스위칭된다. 제1 패브릭 코어(210A)에 접속된 공유된 링크(예컨대, EGO(302A)의 C0 및 C1 사이에서 공유된 링크) 상에서 발신되는 트래픽은 제2 패브릭 코어(210B)에 접속된 공유된 링크(예컨대, EG2(302C)의 C0 및 C1 사이에서 공유된 링크)로 전송된다. 이것을 행하기 위하여, 제1 패브릭 코어(210A) 및 제2 패브릭 코어(210B)는 인터-코어 링크(308)를 통해 접속된다. EG0(302A)의 C0와 연관된 공유된 링크 상에서 제1 패브릭 코어(210A)로 전송된 셀은 제2 패브릭 코어(210B)로 전송되도록 하기 위하여 인터-코어 링크(308)로 스위칭된다. 제2 패브릭 코어(210B)에서, 인터-코어 링크(308) 상에서 발신되는 셀들은 EG2(302C)의 C0과 연관된 공유된 링크로 스위칭된다. 제1 패브릭 코어의 라우팅 테이블(routing table)은 스위칭을 달성하기 위하여 셀 헤더(cell header)에서 특정된 셀의 입력 포트 및 목적지 엔드포인트를 이용한다. 인터-코어 링크들(308)은 2 개의 엔드포인트들과 연관되므로(예컨대, 인터-코어 링크(308) 상에서 도달하는 셀은 2 개의 엔드포인트들 사이에서 공유된 링크 때문에 EG2(302C)의 C0 또는 C1에 대하여 궁극적으로 예정될 수 있음), 인터-코어 링크들(308)은 각각이 목적지 엔드포인트로서 작동하는 2 개의 논리적 서브-채널들을 가진다.
도 3b의 예시된 예에서, EG0(302A) 및 EG1(302B)은 도 3a에서 설명된 바와 같이, 패브릭 코어들(206)에 접속된다. 패브릭 엔드포인트들(310A 및 310B)(각각 "PFE0(310A)" 및 "PFE1(310B)"로서 지칭됨)은 단일 링크를 이용하여 패브릭 코어들(206)의 각각에 접속된다. 도 3b의 예시된 예에서의 패브릭 엔드포인트들(310A 및 310B)은 위의 도 2의 패브릭 엔드포인트들(207)의 예들일 수 있다. 이에 따라, 패브릭 코어들로의 링크들은 불균형화된다. PFE0(310A)로부터 라인 카드 EG0(302A)으로의 트래픽은 출발지 트래픽의 2 개의 링크들 내지 목적지 트래픽의 4.5 개의 링크들을 암시한다. 패브릭 평면(206)의 관점으로부터, 이 트래픽은 4:4:1의 비율로 분사되어야 한다(예컨대, 공유된 링크들로의 매 셀에 대하여 비공유된 링크들의 각각으로의 4 개의 셀들). 공유된 링크가 링크 카드(300C)로부터 착신되는 것과 동일한 패브릭 코어(210)에 접속되는지 여부에 따라, 각각의 패브릭 코어(210)는 직접적으로 또는 인터-코어 링크(308A)를 이용하는 것 중의 어느 하나로 "1" 비율 트래픽을 공유된 링크로 전송할 것이다.
공유된 링크 상의 엔드포인트들 중의 하나(예컨대, PFE0(310A))에 대하여 예정된 그룹 엔드포인트들 중의 하나(예컨대, EG0(302A))에서 발신되는 트래픽은 균등하게 분할된다. 셀 트래픽의 하나의 절반은 셀이 수신되었던 패브릭 코어(예컨대, 제1 패브릭 코어(210A))로부터 PFE0(310A)으로의 링크로 스위칭되고, 셀 트래픽의 절반은 다른 패브릭 코어(예컨대, 제2 패브릭 코어(210B))로의 인터-코어 링크(308B)로 스위칭된다. 그룹 엔드포인트로부터 엔드포인트로의 트래픽(예컨대, 그룹 엔드포인트-대-엔드포인트(endpoint-to-endpoint) 트래픽)을 위하여 이용된 인터-코어 링크(308B)는 그룹 엔드포인트들 사이의 트래픽 및 엔드포인트-대-그룹 엔드포인트(endpoint-to-group endpoint) 트래픽을 위하여 이용된 인터-코어 링크들(308A)로부터 떨어진 별도의 인터-코어 링크들(308B)을 이용할 수 있다. 각각의 엔드포인트(예컨대, PFE(310A) 및 PFE(310B))는 상이한 인터-코어 링크(308B)와 연관될 수 있다. 이러한 방식으로, 패브릭 코어는 (예컨대, 셀이 패브릭 평면을 통해 스위칭되고 있는 동안에 출발지 및 목적지를 위한 단일 필드를 이용하는 시스템에서) 셀이 인터-코어 링크(308B) 중의 어느 하나 상에서 도달하였는지에 기초하여 출발지 그룹 엔드포인트를 식별할 수 있다.
도 4a, 도 4b, 및 도 4c는 패브릭 평면의 패브릭 코어들(210A 및 210B)에 접속된 엔드포인트들(207)의 일 예의 구성들의 블록도들이다. 도 4a에서, 엔드포인트들(207)은 패브릭 코어들(210)로의 균형화된 접속들을 가진다. 예시된 예에서, 엔드포인트들(207)의 각각은 동일한 수의 링크들(N1 개의 링크들)에 의해 패브릭 코어들(210)의 각각에 접속된다. 도 4b는 불균형화된 구성의 예이다. 예시된 예에서, 엔드포인트들(207)은 패브릭 코어들(210)의 각각으로의 동일한 수의 링크들을 가지지 않는다. 제1 엔드포인트(207A)는 패브릭 코어들(210)의 각각으로의 제1 수의 링크들(N1 개의 링크들)을 가진다. 그러나, 제2 엔드포인트(207B)는 패브릭 코어들(210)의 각각으로의 상이한 수의 링크들을 가진다. 예시된 예에서, 제2 엔드포인트(207B)는 제1 패브릭 코어(210A)로의 제2 수의 링크들(N2 개의 링크들) 및 제2 패브릭 코어(210B)로의 제3 수의 링크들(N3 개의 링크들)을 가진다. 엔드포인트들(207)로부터의 링크들의 수는 불균형화되므로, 인터-코어 링크(308)는 트래픽을 균형화하는 것을 용이하게 하기 위하여 확립된다. 링크들은 예를 들어, 하나의 라우터 내에서 이용되고 패브릭 평면에 접속되는 다수의 유형들의 엔드포인트들이 있을 때에 이러한 방법으로 불균형화되도록 구성될 수 있다. 도 4c는 각각의 엔드포인트(207)가 패브릭 코어들(210)의 각각으로의 동일한 수의 링크들을 가지지 않는 불균형화된 구성의 또 다른 예이다. 예시된 예에서, 제1 엔드포인트(207A)는 제1 패브릭 코어(210A)로의 제1 수의 링크들(N1 개의 링크들) 및 제2 패브릭 코어(210B)로의 제2 수의 링크들(N2 개의 링크들)을 가진다. 제2 엔드포인트(207B)는 제1 패브릭 코어(210A)로의 제2 수의 링크들(N2 개의 링크들) 및 제2 패브릭 코어(210B)로의 제1 수의 링크들(N1 개의 링크들)을 가진다. 패브릭 코어(210)로의 여분의 링크들은 "불균형화된 링크들"로서 지칭될 수 있다. 이 구성은 예를 들어, 엔드포인트들(207)이 패브릭 코어들(210)에 접속하기 위한 홀수 개의 링크들을 가지지만, 엔드포인트들(207)이 동일한 수의 링크 인터페이스들을 가질 때에 발생할 수 있다. 또 다른 예로서, 이 구성은 그 다음으로, 엔드포인트(207)가 N1이 2이고 N2가 2.5가 되도록 공유된 링크를 가질 때에 발생할 수 있다. 도 4c의 예시된 예에서, 패브릭 코어들(210)은 셀 트래픽을 균형화하는 것을 용이하게 하기 위하여 인터-코어 링크들(308)을 가진다.
도 5는 이 개시내용에서 설명된 기법들에 따라 스테이지 스위치(stage switch)를 구현하도록 구성된 애플리케이션-특정 집적 회로(ASIC)(500)를 도시하는 블록도이다. ASIC(500)은 하드웨어-기반 로직을 표현하고, 프로그래밍가능 집적 회로를 포함할 수 있다. ASIC(500)은 패브릭 칩의 예를 표현할 수 있고, 스위칭 패브릭을 위한 크로스바 스위치(502)를 구현한다. ASIC(500)은 예를 들어, 패브릭 코어들(210) 중의 임의의 것을 표현할 수 있다.
크로스바 스위치(502)는 각각이 셀들을 전체 메쉬(full mesh)를 통해 출력 포트들(506A 내지 506T)(집합적으로, "출력 포트들(506)")로 분사할 수 있는 입력 포트들(504A 내지 504S)(집합적으로, "입력 포트들(504)")을 가진다. 입력 포트들(504) 및/또는 출력 포트들(506)의 부분은 셀들을 또 다른 크로스바 스위치(502)로 전송하고 또 다른 크로스바 스위치(502)로부터 셀들을 수신하는 것을 용이하게 하기 위하여 인터-코어 링크들에 접속된다. 스위칭 모듈(508)은 (i) 목적지 패브릭 엔드포인트들(207)에 도달하기 위하여 이용가능한 출력 포트들(506)을 식별하는 목적지 테이블(510), 및 (ii) 입력 포트 및 셀의 셀 헤더에서의 입력 포트 및 목적지 엔드포인트에 기초하여 셀을 어떻게 라우팅할 것인지를 특정하는 라우팅 테이블(512)로 프로그래밍된다.
도 6은 이 개시내용의 기법들에 따른 일 예의 데이터 셀 포맷을 예시하는 블록도이다. 데이터 셀(600)에 따른 상이한 셀 유형들은 이하에서 더욱 상세하게 설명된 바와 같이, 패브릭 엔드포인트들(207) 및 멀티스테이지 스위치 패브릭에서의 상이한 스테이지 스위치들을 위한 동작들을 정의한다. 데이터 셀(600)은 셀 헤더(602) 및 셀 페이로드(604)를 포함한다. 셀 헤더(602)는 다음의 필드들: 셀 크기(606), 시퀀스 번호(SEQ NO.)(608), 목적지 식별자(DST ID)(610), 및 출발지 식별자(SRC ID)(612)를 포함한다. 셀 헤더(602)를 위한 다양한 예의 구현예들은 필드(field)들을 재배열할 수 있고, 더 많거나 더 적은 필드들을 포함할 수 있는 등과 같다.
셀 크기(606)는 셀 페이로드(7604)의 크기, 또는 일부 경우들에는, 셀 헤더(602) 및 셀 페이로드(604)의 양자를 포함하는 데이터 셀(600)의 크기를 특정한다. 일 예의 셀 크기들은 96으로부터 200 바이트들까지의 범위이다. 시퀀스 번호(608)는 셀을 위한 시퀀스 번호를 식별한다. 셀 목적지 식별자(610) 및 셀 출발지 식별자(612)는 각각 셀을 위한 목적지 패브릭 엔드포인트 및 출발지 패브릭 엔드포인트를 식별한다. 셀 목적지 식별자(610)는 패브릭 코어(210)가 셀을 출력 포트들(예컨대, 위의 도 5의 출력 포트들(506)) 중의 하나로 라우팅하는 것을 용이하게 하기 위하여, 예를 들어, 라우팅 테이블(512)에 대한 입력으로서 이용된다. 데이터 셀(600)을 위한 데이터 페이로드(604)는 전형적으로, 예를 들어, 패킷 스위치 또는 데이터 센서 패브릭이든 간에, 스위칭 시스템에 의해 스위칭된 패킷들을 위한 패킷 데이터이다.
도 7은 동일한 패브릭 코어(210A)에 접속된 상이한 유형들의 엔드포인트들(700A, 700B, 및 700C)의 일 예의 구성의 블록도이다. 예시된 예에서, 엔드포인트들(700A 및 700B)은 동일한 엔드포인트 그룹(702)에 있다. 엔드포인트 그룹(702)은 도 3a 및 도 3b의 엔드포인트 그룹들(302) 중의 하나의 임의의 예일 수 있고, 엔드포인트들(700A 및 700B)은 도 3a 및 도 3b의 엔드포인트들(C0 및 C1)의 예들일 수 있다. 엔드포인트(700C)는 도 3b의 엔드포인트들 중의 하나(예컨대, 엔드포인트(310A))의 예일 수 있다. 예시된 예에서, 엔드포인트들(700A 및 700B)은 패브릭 코어들(210)에 접속하기 위하여 이용가능한 홀수 개의 링크들을 집합적으로 가진다. 엔드포인트들(700A 및 700B)은 패브릭 코어(210A)로의 2 개의 링크들(704)(예컨대, 비공유된 링크들)을 각각 가진다. 추가적으로, 엔드포인트(700A 및 700B)는 패브릭 코어(210A)로의 링크(706)를 공유한다. 인터-코어 링크(708A)는 다른 패브릭 코어(예컨대, 도 2의 패브릭 코어(210B))로의 공유된 링크(706)와 연관된 셀 트래픽을 스위칭하기 위하여 확립된다. 추가적으로, 또 다른 인터-코어 링크(708B)는 다른 패브릭 코어에 접속된 공유된 링크들과 연관된 셀 트래픽을 수신하기 위하여 확립된다. 엔드포인트(700C)는 패브릭 코어(210)로의 링크(704)를 가진다. 엔드포인트(700C)와 연관된 인터-코어 링크들(708C)은 패브릭 코어들(210) 사이에서 확립된다.
이 인터-코어 링크들(708A 내지 708C)은 패브릭 코어들(210) 사이의 셀 트래픽을 균형화하는 것을 용이하게 한다. 패브릭 코어들(210)은 셀을 어떻게 라우팅할 것인지를 특정하는 라우팅 테이블, 및 출력 포트들을 엔드포인트들로 맵핑하는 목적지 테이블을 포함한다. 라우팅 테이블은 셀의 입력 포트 및 목적지 엔드포인트에 기초하여 셀을 어떻게 라우팅할 것인지를 특정한다. 입력 포트들은 입력 포트에 접속된 링크의 유형(예컨대, 인터-코어 링크, 공유된 링크, 불균형화된 링크, 비공유된 링크 등)과 연관된다. 예를 들어, 셀이 공유된 링크(706) 상에서 발신될 경우에, 셀은 상이하게 라우팅될 수 있다. 패브릭 코어(210)는 라우팅 테이블 및 목적지 테이블들을 이용하여, 엔드포인트들(700A, 700B, 및 700C) 중의 하나로의 링크를 갖는 출력 포트 또는 인터-코어 링크들(708A 내지 708C) 중의 하나에 접속된 출력 포트 중의 어느 하나인, 셀을 위한 출력 포트를 선택한다. 일부 예들에서는, 라우팅 테이블 상에서, 각각의 목적지 엔드포인트가 결손 가중화된 라운드 로빈(deficit weighted round robin)(DWRR) 구성, 분사 비율(spray ratio), 및 하나 이상의 출력 포트들로 맵핑된다. DWRR 구성은 2 비트들: 우회 비트 및 분사 선택 비트를 가진다. 우회 비트가 설정될 때, 패브릭 코어는 셀을 입력 포트로부터 출력 포트로 라우팅한다(예컨대, 입력 포트에서 도달하는 매 셀은 특정된 출력 포트로 스위칭됨). 우회 비트가 설정되지 않을 때, 패브릭 코어(210)는 DWRR 및 특정된 분사 비율을 이용하여 입력 포트에서 도달하는 셀들을 다수의 출력 포트들로 스위칭한다. 분사 선택 비트는 분사 비율을 이용하여 DWRR의 파라미터들을 특정한다. 일 예의 라우팅 테이블들은 이하의 표들 1 및 2 상에서 예시된다.
Figure 112020030120035-pat00001
Figure 112020030120035-pat00002
표 1 상에서 예시된 예들에서는, 엔드포인트(700C)의 목적지를 가지고 입력 포트로부터 수신되는 셀들이 제1 또는 제2 엔드포인트들(700A 및 700B) 중의 어느 하나의 엔드포인트의 불균형 링크에 접속되고, 셀은 DWRR을 이용하여 1:1 비율로 엔드포인트(700C)에 접속된 출력 포트 또는 엔드포인트(700C)와 연관된 인터-코어 링크에 접속된 출력 포트 중의 어느 하나로 분사된다. 표 2 상에서 예시된 예로서, 엔드포인트들(700A 및 700B) 중의 하나의 목적지를 가지고 인터-코어 링크에 접속된 입력 포트로부터 도달하는 셀들은 그 불균형화된 링크에 접속된 출력 포트로 스위칭된다.
도 8은 패브릭 코어들(210)에 의해 셀들을 스위칭하는 일 예의 방법을 예시하는 플로우차트이다. 패브릭 코어(210)는 입력 포트(예컨대, 위의 도 5의 입력 포트들(504) 중의 하나)로부터 셀을 수신한다(802). 셀은 셀이 어느 엔드포인트로 라우팅되어야 하는지를 알리기 위한 목적지 식별자(예컨대, 위의 도 6의 목적지 식별자(610))를 갖는 셀 헤더(예컨대, 위의 도 6의 셀 헤더(602))를 포함한다. 입력 포트는 예를 들어, 직접 링크, 공유된 링크, 또는 엔드포인트로부터의 균형화된 링크, 또는 또 다른 패브릭 코어(210)로부터의 인터-코어 링크와 연관될 수 있다. 셀이 그로부터 수신되었던 입력 포트 및 목적지 엔드포인트에 기초하여, 패브릭 코어(210)는 라우팅 테이블을 이용하여, 셀을 어느 출력 포트로 스위칭할 것인지를 결정하기 위하여 결손 가중화된 라운드 로빈을 우회할 것인지 여부를 결정한다(804). 예를 들어, 일부 입력 포트들에 대하여, 라우팅 테이블은 셀을 적절한 출력 포트로 라우팅하기 위하여 결손 가중 라운드 로빈이 필요하지 않다는 것을 특정할 수 있다. 일부 입력 포트들은 단일 출력 포트와 연관될 수 있다. 패브릭 코어(210)가 결손 가중화된 라운드 로빈을 우회하기 위한 것일 때(804에서의 긍정), 패브릭 코어(210)는 결손 가중화된 라운드 로빈을 이용하지 않으면서, 셀을 라우팅 테이블에 의해 특정된 출력 포트로 스위칭한다(806). 일부 예들에서, 출력 포트는 공유된 링크 또는 인터-코어 링크에 접속된다. 패브릭 코어(210)가 결손 가중화된 라운드 로빈을 우회하지 않기 위한 것일 때(804에서 부정), 패브릭 코어(210)는 결손 가중화된 라운드 로빈 및 라우팅 테이블에 의해 특정된 분사 비율을 이용하여 셀을 특정된 출력 포트들 중의 하나로 스위칭해야 한다(블록(808)). 일부 예들에서, 특정된 포트들 중의 하나는 인터-코어 링크에 접속된다.
도 9는 일 예의 구성(예컨대, 위의 도 7에서 예시된 바와 같은 구성)을 가지는 패브릭 코어에 의해, 그리고 셀들을 스위칭하기 위하여 입력 포트 및 목적지 엔드포인트를 이용하는 라우팅 테이블에 기초하여 셀들을 스위칭하는 하나의 접근법을 예시하는 플로우차트이다. 초기에, 패브릭 코어(210)는 입력 포트(예컨대, 위의 도 5의 입력 포트들(504) 중의 하나)로부터 셀을 수신한다(902). 셀은 셀이 어느 엔드포인트로 라우팅되어야 하는지를 알리기 위한 목적지 식별자를 갖는 셀 헤더(예컨대, 위의 도 6의 셀 헤더(602))를 포함한다. 입력 포트는 예를 들어, 직접 링크, 공유된 링크, 또는 엔드포인트로부터의 균형화된 링크, 또는 또 다른 패브릭 코어(210)로부터의 인터-코어 링크와 연관될 수 있다. 예시된 예에서, 라우팅 테이블은 목적지 입력이 균형화된 엔드포인트(예컨대, 패브릭 평면(206) 상의 패브릭 코어들(210)로의 동일한 수의 링크들을 가지는 엔드포인트) 또는 불균형화된 엔드포인트(예컨대, 패브릭 평면(206)의 패브릭 코어들(210)로의 상이한 수의 링크들을 가지는 엔드포인트)인지 여부에 기초하여 셀을 라우팅한다. 일 예의 라우터는 균형화된 및 불균형화된 엔드포인트들의 조합을 가질 수 있거나, 공유된 링크들을 갖는 엔드포인트들을 가질 수 있다. 패브릭 코어(210)는 라우팅 테이블을 이용하여, 목적지 엔드포인트가 균형화된 엔드포인트인지 여부를 결정한다(904). 목적지 엔드포인트가 균형화된 엔드포인트, 패브릭 코어(210)일 때, 방법은 블록(906)에서 계속된다. 목적지 엔드포인트가 균형화된 엔드포인트, 패브릭 코어(210)가 아닐 때, 방법은 블록(916)에서 계속된다.
블록(906)에서, 패브릭 코어(210)는 입력 포트가 (i) 균형화된 엔드포인트와 연관된 직접 링크, 또는 (ii) 인터-코어 링크인지 여부를 결정한다. 입력 포트가 (i) 균형화된 엔드포인트와 연관된 직접 링크, 또는 (ii) 인터-코어 링크일 때(906에서 긍정), 패브릭 코어(210)는 셀을 목적지 엔드포인트와 연관된 직접 링크로 라우팅한다(08). 그렇지 않고, 입력 포트가 불균형화된 엔드포인트로부터의 직접 동일 링크일 때(910에서 긍정), 패브릭 코어(210)는 셀을 목적지 엔드포인트와 연관된 직접 링크로 라우팅한다(908). 그렇지 않고, 입력 포트가 불균형화된 엔드포인트로부터의 비동일한 링크일 때(912에서 긍정), 패브릭 코어(210)는 라우팅 테이블에 의해 특정된 분사 비율을 갖는 결손 가중화된 라운드 로빈을 이용하여, 셀을 목적지 엔드포인트와 연관된 직접 링크 또는 인터-코어 링크 중의 어느 하나로 라우팅한다(블록(914)).
블록(916)에서, 패브릭 코어(210)는 입력 포트가 균형화된 엔드포인트와 연관된 직접 링크인지 여부를 결정한다. 입력 포트가 균형화된 엔드포인트와 연관된 직접 링크일 때(916에서 긍정), 패브릭 코어(210)는 라우팅 테이블에 의해 특정된 분사 비율을 갖는 결손 가중화된 라운드 로빈을 이용하여, 셀을 목적지 엔드포인트와 연관된 직접 링크 또는 인터-코어 링크 중의 어느 하나로 라우팅한다(918). 그렇지 않을 경우에, 패브릭 코어(210)는 입력 포트가 불균형화된 엔드포인트로부터의 직접 동일 링크인지 여부를 결정한다(920). 입력 포트가 불균형화된 엔드포인트로부터의 직접 비공유된 링크일 때(920에서 긍정), 패브릭 코어(210)는 분사 비율을 갖는 결손 가중화된 라운드 로빈을 이용하여, 셀을 목적지 엔드포인트와 연관된 직접 링크로 라우팅한다(블록(922)). 그렇지 않을 경우에, 패브릭 코어(210)는 입력 포트가 불균형화된 엔드포인트로부터의 공유된 링크인지 여부를 결정한다(924). 입력 포트가 불균형화된 엔드포인트로부터의 공유된 링크일 때(924에서 긍정), 패브릭 코어(210)는 셀을 목적지 엔드포인트와 연관된 인터-코어 링크로 라우팅한다(926). 그렇지 않을 경우에, 패브릭 코어(210)는 입력 포트가 인터-코어 링크인 것으로 결정한다(블록(928)). 패브릭 코어(210)는 그 다음으로, 셀을 목적지 엔드포인트와 연관된 공유된 링크로 라우팅한다(930).
이 개시내용에서 설명된 기법들은 적어도 부분적으로 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수 있다. 예를 들어, 설명된 기법들의 다양한 양태들은 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서(digital signal processor)(DSP)들, 애플리케이션 특정 집적 회로(application specific integrated circuit)(ASIC)들, 필드 프로그래밍가능 게이트 어레이(field programmable gate array)(FPGA)들, 또는 임의의 다른 동등한 집적된 또는 개별 로직 회로부 뿐만 아니라, 이러한 컴포넌트들의 임의의 조합들을 포함하는 하나 이상의 프로세서들 내에서 구현될 수 있다. 용어 "프로세서" 또는 "프로세싱 회로부"는 일반적으로, 단독인 또는 다른 로직 회로부와 조합하는 상기한 로직 회로부 또는 임의의 다른 동등한 회로부 중의 임의의 것을 지칭할 수 있다. 하드웨어를 포함하는 제어 유닛은 또한, 이 개시내용의 기법들 중의 하나 이상을 수행할 수 있다.
이러한 하드웨어, 소프트웨어, 및 펌웨어는 이 개시내용에서 설명된 다양한 동작들 및 기능들을 지원하기 위하여, 동일한 디바이스 내에서 또는 별도의 디바이스들 내에서 구현될 수 있다. 추가적으로, 설명된 유닛들, 모듈들, 또는 컴포넌트들 중의 임의의 것은 개별적인 그러나 상호동작가능한 로직 디바이스들로서 함께 또는 별도로 구현될 수 있다. 모듈들 또는 유닛들로서의 상이한 특징들의 도시는 상이한 기능적인 양태들을 강조표시하도록 의도되고, 이러한 모듈들 또는 유닛들이 별도의 하드웨어 또는 소프트웨어 컴포넌트들에 의해 실현되어야 한다는 것을 반드시 암시하지는 않는다. 오히려, 하나 이상의 모듈들 또는 유닛들과 연관된 기능성은 별도의 하드웨어 또는 소프트웨어 컴포넌트들에 의해 수행될 수 있거나, 공통적인 또는 별도의 하드웨어 또는 소프트웨어 컴포넌트들 내에 통합될 수 있다.
이 개시내용에서 설명된 기법들은 또한, 명령들을 포함하는, 컴퓨터-판독가능 저장 매체와 같은 컴퓨터-판독가능 매체에서 구체화되거나 인코딩될 수 있다. 컴퓨터-판독가능 매체에서 내장되거나 인코딩된 명령들은 프로그래밍가능 프로세서 또는 다른 프로세서로 하여금, 예컨대, 명령들이 실행될 때에 방법을 수행하게 할 수 있다. 컴퓨터-판독가능 매체들은 비-일시적 컴퓨터-판독가능 저장 매체들 및 순시적(transient) 통신 매체들을 포함할 수 있다. 유형(tangible)이고 비-순시적인 컴퓨터 판독가능 저장 매체들은 랜덤 액세스 메모리(random access memory)(RAM), 판독 전용 메모리(read only memory)(ROM), 프로그래밍가능 판독 전용 메모리(programmable read only memory)(PROM), 소거가능 프로그래밍가능 판독 전용 메모리(erasable programmable read only memory)(EPROM), 전자적 소거가능 프로그래밍가능 판독 전용 메모리(electronically erasable programmable read only memory)(EEPROM), 플래시 메모리, 하드 디스크, CD-ROM, 플로피 디스크, 카세트, 자기적 매체들, 광학적 매체들, 또는 다른 컴퓨터-판독가능 저장 매체들을 포함할 수 있다. 용어 "컴퓨터-판독가능 저장 매체들"은 신호들이 아닌 물리적 저장 매체들, 반송파(carrier wave)들, 또는 다른 순시적 매체들을 지칭한다는 것이 이해되어야 한다.

Claims (30)

  1. 라우팅 시스템으로서,
    복수의 패브릭 엔드포인트(fabric endpoint)들; 및
    네트워크 디바이스 내의 내부 스위칭 패브릭(switching fabric)
    을 포함하고, 상기 내부 스위칭 패브릭은 상기 복수의 패브릭 엔드포인트들 사이에서 셀들을 스위칭하도록 구성된 패브릭 평면(fabric plane)을 포함하고,
    상기 패브릭 평면은 적어도 2개의 패브릭 코어(fabric core)들, 및 상기 적어도 2개의 패브릭 코어들을 접속하는 하나 이상의 인터-코어 링크(inter-core link)들을 포함하고,
    상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어는 복수의 입력 포트들 및 복수의 출력 포트들을 포함하고, 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어의 상기 복수의 출력 포트들의 적어도 일부는 상기 하나 이상의 인터-코어 링크들에 접속되고,
    상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어는, (i) 수신된 셀이 수신되었던 상기 패브릭 코어의 상기 복수의 입력 포트들의 입력 포트 및 (ii) 상기 수신된 셀을 위한 상기 복수의 패브릭 엔드포인트들의 목적지 패브릭 엔드포인트에 기초하여, 상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 출력 포트를 선택하고, 상기 수신된 셀을 상기 복수의 출력 포트들의 상기 선택된 출력 포트로 스위칭하도록 구성되는, 라우팅 시스템.
  2. 제1항에 있어서, 상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 상기 출력 포트를 선택하기 위해, 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어는 상기 수신된 셀을 위한 상기 목적지 패브릭 엔드포인트에 기초하여, 상기 수신된 셀이 수신되었던 상기 패브릭 코어의 상기 복수의 입력 포트들의 상기 입력 포트를 상기 복수의 출력 포트들의 상기 출력 포트에 매핑하도록 구성된 라우팅 테이블을 포함하는, 라우팅 시스템.
  3. 제2항에 있어서, 상기 라우팅 테이블은 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어의 상기 복수의 입력 포트들의 상기 입력 포트들의 적어도 일부를 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어의 상기 복수의 출력 포트들의 적어도 2개의 출력 포트들에 매핑하도록 구성되는, 라우팅 시스템.
  4. 제3항에 있어서, 상기 복수의 출력 포트들의 상기 적어도 2개의 출력 포트들에 매핑되는 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어의 상기 복수의 입력 포트들의 상기 입력 포트들의 상기 적어도 일부에 대해, 상기 라우팅 테이블은 상기 복수의 출력 포트들의 상기 적어도 2개의 출력 포트들의 각각의 출력 포트를 선택하기 위한 분사 비율을 지정하도록 구성되는, 라우팅 시스템.
  5. 제4항에 있어서,
    상기 복수의 출력 포트의 상기 적어도 2개의 출력 포트의 제1 출력 포트는 상기 하나 이상의 인터-코어 링크들의 인터-코어 링크에 접속되고,
    상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 상기 출력 포트를 선택하기 위해, 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어는, 상기 분사 비율에 기초하여, 상기 하나 이상의 인터-코어 링크들의 상기 인터-코어 링크에 접속된 상기 제1 출력 포트를 선택하도록 구성되는, 라우팅 시스템.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 복수의 패브릭 엔드포인트들의 제1 부분은 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어에 대한 제1 수의 링크들을 포함하고, 상기 복수의 패브릭 엔드포인트들의 제2 부분은 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어에 대한 제2 수의 링크들을 포함하고, 상기 제1 수는 상기 제2 수와 상이한, 라우팅 시스템.
  7. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 복수의 패브릭 엔드포인트들의 2개의 패브릭 엔드포인트들은 상기 패브릭 평면에 대한 홀수 개의 링크들을 집합적으로 포함하는, 라우팅 시스템.
  8. 제7항에 있어서, 상기 복수의 패브릭 엔드포인트들의 상기 2개의 패브릭 엔드포인트들은 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어에 대한 링크를 공유하는, 라우팅 시스템.
  9. 제8항에 있어서,
    상기 하나 이상의 인터-코어 링크들의 인터-코어 링크는 라우팅 테이블에서 상기 복수의 패브릭 엔드포인트들의 상기 2개의 패브릭 엔드포인트들에 의해 공유되는 상기 링크와 연관되고,
    상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 상기 출력 포트를 선택하기 위해, 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어는, 상기 인터-코어 링크들의 상기 인터-코어 링크와 상기 복수의 패브릭 엔드포인트들의 상기 2개의 패브릭 엔드포인트들에 의해 공유되는 상기 링크의 연관에 기초하여, 상기 복수의 출력 포트들의 상기 출력 포트를 선택하도록 구성되는, 라우팅 시스템.
  10. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 상기 출력 포트를 선택하기 위해, 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어는, 상기 수신된 셀이 수신되었던 상기 패브릭 코어의 상기 복수의 입력 포트들의 상기 입력 포트와 상기 복수의 출력 포트들의 상기 출력 포트가 접속되는 상기 하나 이상의 인터-코어 링크들의 인터-코어 링크의 연관에 기초하여, 상기 수신된 셀을 상기 목적지 패브릭 엔드포인트와 연관된 상기 복수의 출력 포트들의 출력 포트에 라우팅하도록 구성되는, 라우팅 시스템.
  11. 방법으로서,
    네트워크 디바이스 내의 내부 스위칭 패브릭의 패브릭 평면의 적어도 2개의 패브릭 코어들의 패브릭 코어에 의해, 상기 패브릭 코어의 복수의 입력 포트들에서 셀들을 수신하는 단계 - 상기 네트워크 디바이스는 복수의 패브릭 엔드포인트들을 포함하고, 상기 내부 스위칭 패브릭의 상기 패브릭 평면은 상기 복수의 패브릭 엔드포인트들 사이에서 셀들을 스위칭하도록 구성되고, 상기 패브릭 평면은 상기 적어도 2개의 패브릭 코어들을 접속하는 하나 이상의 인터-코어 링크들을 더 포함하고, 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어는 상기 복수의 입력 포트들 및 복수의 출력 포트들을 포함하고, 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어의 상기 복수의 출력 포트들의 적어도 일부는 상기 적어도 2개의 패브릭 코어들을 접속하는 상기 하나 이상의 인터-코어 링크들에 접속됨 -;
    상기 적어도 2개의 패브릭 코어들의 상기 패브릭 코어에 의해, (i) 수신된 셀이 수신되었던 상기 패브릭 코어의 상기 복수의 입력 포트들의 입력 포트 및 (ii) 상기 수신된 셀을 위한 상기 복수의 패브릭 엔드포인트들의 목적지 패브릭 엔드포인트에 기초하여, 상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 출력 포트를 선택하는 단계; 및
    상기 적어도 2개의 패브릭 코어들의 상기 패브릭 코어에 의해, 상기 수신된 셀을 상기 복수의 출력 포트들의 상기 선택된 출력 포트로 스위칭하는 단계
    를 포함하는, 방법.
  12. 제11항에 있어서, 상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 상기 출력 포트를 선택하는 단계는,
    상기 적어도 2개의 패브릭 코어들의 상기 패브릭 코어의 라우팅 테이블에 의해, 상기 수신된 셀을 위한 상기 목적지 패브릭 엔드포인트에 기초하여, 상기 수신된 셀이 수신되었던 상기 패브릭 코어의 상기 복수의 입력 포트들의 상기 입력 포트를 상기 복수의 출력 포트들의 상기 출력 포트에 매핑하는 단계를 포함하는, 방법.
  13. 제12항에 있어서, 상기 라우팅 테이블에 의해,
    상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어의 상기 복수의 입력 포트들의 상기 입력 포트들의 적어도 일부를 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어의 상기 복수의 출력 포트들의 적어도 2개의 출력 포트들에 매핑하는 단계를 더 포함하는, 방법.
  14. 제13항에 있어서, 상기 복수의 출력 포트들의 상기 적어도 2개의 출력 포트들에 매핑되는 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어의 상기 복수의 입력 포트들의 상기 입력 포트들의 상기 적어도 일부에 대해, 상기 라우팅 테이블은 상기 복수의 출력 포트들의 상기 적어도 2개의 출력 포트들의 각각의 출력 포트를 선택하기 위한 분사 비율을 지정하도록 구성되는, 방법.
  15. 제14항에 있어서,
    상기 복수의 출력 포트들의 상기 적어도 2개의 출력 포트들의 제1 출력 포트는 상기 하나 이상의 인터-코어 링크들의 인터-코어 링크에 접속되고,
    상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 상기 출력 포트를 선택하는 단계는, 상기 분사 비율에 기초하여, 상기 하나 이상의 인터-코어 링크들의 상기 인터-코어 링크에 접속된 상기 제1 출력 포트를 선택하는 단계를 포함하는, 방법.
  16. 제11항 내지 제15항 중 어느 한 항에 있어서, 상기 복수의 패브릭 엔드포인트들의 제1 부분은 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어에 대한 제1 수의 링크들을 포함하고, 상기 복수의 패브릭 엔드포인트들의 제2 부분은 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어에 대한 제2 수의 링크들을 포함하며, 상기 제1 수는 상기 제2 수와 상이한, 방법.
  17. 제11항 내지 제15항 중 어느 한 항에 있어서, 상기 복수의 패브릭 엔드포인트들의 2개의 패브릭 엔드포인트들은 상기 패브릭 평면에 대한 홀수 개의 링크들을 집합적으로 포함하는, 방법.
  18. 제17항에 있어서, 상기 복수의 패브릭 엔드포인트들의 상기 2개의 패브릭 엔드포인트들은 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어에 대한 링크를 공유하는, 방법.
  19. 제18항에 있어서,
    상기 하나 이상의 인터-코어 링크들의 인터-코어 링크는 라우팅 테이블에서 상기 복수의 패브릭 엔드포인트들의 상기 2개의 패브릭 엔드포인트들에 의해 공유되는 상기 링크와 연관되고,
    상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 상기 출력 포트를 선택하는 단계는, 상기 인터-코어 링크들의 상기 인터-코어 링크와 상기 복수의 패브릭 엔드포인트들의 상기 2개의 패브릭 엔드포인트들에 의해 공유되는 상기 링크의 연관에 기초하여, 상기 복수의 출력 포트들의 상기 출력 포트를 선택하는 단계를 포함하는, 방법.
  20. 네트워크 디바이스의 하나 이상의 프로그래밍가능 프로세서들로 하여금, 제11항 내지 제15항 중 어느 한 항에 기재된 방법을 수행하게 하기 위한 명령들로 인코딩된 비-일시적 컴퓨터-판독가능 저장 매체.
  21. 네트워크 디바이스로서,
    복수의 패브릭 엔드포인트들을 집합적으로 포함하는 복수의 라인 카드들;
    상기 라인 카드들에 결합되고, 상기 복수의 패브릭 엔드포인트들 사이에서 셀들을 스위칭하도록 구성된 패브릭 평면을 포함하는 내부 패브릭 스위치 카드
    를 포함하고,
    상기 패브릭 평면은 적어도 2개의 패브릭 코어들, 및 상기 적어도 2개의 패브릭 코어들을 접속하는 하나 이상의 인터-코어 링크들을 포함하고,
    상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어는 복수의 입력 포트들 및 복수의 출력 포트들을 포함하고, 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어의 상기 복수의 출력 포트들의 적어도 일부는 상기 하나 이상의 인터-코어 링크들에 접속되고,
    상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어는, (i) 수신된 셀이 수신되었던 상기 패브릭 코어의 상기 복수의 입력 포트들의 입력 포트 및 (ii) 상기 수신된 셀을 위한 상기 복수의 패브릭 엔드포인트들의 목적지 패브릭 엔드포인트에 기초하여, 상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 출력 포트를 선택하고, 상기 수신된 셀을 상기 복수의 출력 포트들의 상기 선택된 출력 포트로 스위칭하도록 구성되는, 네트워크 디바이스.
  22. 제21항에 있어서, 상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 상기 출력 포트를 선택하기 위해, 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어는 상기 수신된 셀을 위한 상기 목적지 패브릭 엔드포인트에 기초하여, 상기 수신된 셀이 수신되었던 상기 패브릭 코어의 상기 복수의 입력 포트들의 상기 입력 포트를 상기 복수의 출력 포트들의 상기 출력 포트에 매핑하도록 구성된 라우팅 테이블을 포함하는, 네트워크 디바이스.
  23. 제22항에 있어서, 상기 라우팅 테이블은 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어의 상기 복수의 입력 포트들의 상기 입력 포트들의 적어도 일부를 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어의 상기 복수의 출력 포트들의 적어도 2개의 출력 포트들에 매핑하도록 구성되는, 네트워크 디바이스.
  24. 제23항에 있어서, 상기 복수의 출력 포트들의 상기 적어도 2개의 출력 포트들에 매핑되는 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어의 상기 복수의 입력 포트들의 상기 입력 포트들의 상기 적어도 일부에 대해, 상기 라우팅 테이블은 상기 복수의 출력 포트들의 상기 적어도 2개의 출력 포트들의 각각의 출력 포트를 선택하기 위한 분사 비율을 지정하도록 구성되는, 네트워크 디바이스.
  25. 제24항에 있어서,
    상기 복수의 출력 포트들의 상기 적어도 2개의 출력 포트들의 제1 출력 포트는 상기 하나 이상의 인터-코어 링크들의 인터-코어 링크에 접속되고,
    상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 상기 출력 포트를 선택하기 위해, 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어는, 상기 분사 비율에 기초하여, 상기 하나 이상의 인터-코어 링크들의 상기 인터-코어 링크에 접속된 상기 제1 출력 포트를 선택하도록 구성되는, 네트워크 디바이스.
  26. 제21항 내지 제25항 중 어느 한 항에 있어서, 상기 복수의 패브릭 엔드포인트들의 제1 부분은 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어에 대한 제1 수의 링크들을 포함하고, 상기 복수의 패브릭 엔드포인트들의 제2 부분은 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어에 대한 제2 수의 링크들을 포함하고, 상기 제1 수는 상기 제2 수와 상이한, 네트워크 디바이스.
  27. 제21항 내지 제25항 중 어느 한 항에 있어서, 상기 복수의 패브릭 엔드포인트들의 2개의 패브릭 엔드포인트들은 상기 패브릭 평면에 대한 홀수 개의 링크들을 집합적으로 포함하는, 네트워크 디바이스.
  28. 제27항에 있어서, 상기 복수의 패브릭 엔드포인트들의 상기 2개의 패브릭 엔드포인트들은 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어에 대한 링크를 공유하는, 네트워크 디바이스.
  29. 제28항에 있어서,
    상기 하나 이상의 인터-코어 링크들의 인터-코어 링크는 라우팅 테이블에서 상기 복수의 패브릭 엔드포인트들의 상기 2개의 패브릭 엔드포인트들에 의해 공유되는 상기 링크와 연관되고,
    상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 상기 출력 포트를 선택하기 위해, 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어는, 상기 인터-코어 링크들의 상기 인터-코어 링크와 상기 복수의 패브릭 엔드포인트들의 상기 2개의 패브릭 엔드포인트들에 의해 공유되는 상기 링크의 연관에 기초하여, 상기 복수의 출력 포트들의 상기 출력 포트를 선택하도록 구성되는, 네트워크 디바이스.
  30. 제21항 내지 제25항 중 어느 한 항에 있어서, 상기 셀들의 상기 수신된 셀을 라우팅하기 위한 상기 패브릭 코어의 상기 복수의 출력 포트들의 상기 출력 포트를 선택하기 위해, 상기 적어도 2개의 패브릭 코어들의 각각의 패브릭 코어는, 상기 수신된 셀이 수신되었던 상기 패브릭 코어의 상기 복수의 입력 포트들의 상기 입력 포트와 상기 복수의 출력 포트들의 상기 출력 포트가 접속되는 상기 하나 이상의 인터-코어 링크들의 인터-코어 링크의 연관에 기초하여, 상기 수신된 셀을 상기 목적지 패브릭 엔드포인트와 연관된 상기 복수의 출력 포트들의 출력 포트에 라우팅하도록 구성되는, 네트워크 디바이스.
KR1020200034892A 2019-12-30 2020-03-23 내부 스위치 패브릭에서의 비동일한 링크 접속들을 위한 분사 KR102394259B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/730,031 US11316796B2 (en) 2019-12-30 2019-12-30 Spraying for unequal link connections in an internal switch fabric
US16/730,031 2019-12-30

Publications (2)

Publication Number Publication Date
KR20210086390A KR20210086390A (ko) 2021-07-08
KR102394259B1 true KR102394259B1 (ko) 2022-05-03

Family

ID=69953908

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200034892A KR102394259B1 (ko) 2019-12-30 2020-03-23 내부 스위치 패브릭에서의 비동일한 링크 접속들을 위한 분사

Country Status (6)

Country Link
US (1) US11316796B2 (ko)
EP (1) EP3846399B1 (ko)
KR (1) KR102394259B1 (ko)
CN (1) CN113132252A (ko)
SG (1) SG10202001462PA (ko)
TW (1) TWI794596B (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006313949A (ja) * 2005-05-06 2006-11-16 Hitachi Ltd パケット転送装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE508050C2 (sv) * 1995-11-09 1998-08-17 Ericsson Telefon Ab L M Anordning och förfarande vid paketförmedling
US6411599B1 (en) 1998-05-29 2002-06-25 International Business Machines Corporation Fault tolerant switching architecture
US7102999B1 (en) * 1999-11-24 2006-09-05 Juniper Networks, Inc. Switching device
CA2293920A1 (en) * 1999-12-31 2001-06-30 Nortel Networks Corporation Global distributed switch
CA2346200A1 (en) * 2000-05-05 2001-11-05 Winston Mok Flexible, self-aligning time and space switch fabrics
US7154902B1 (en) * 2002-10-21 2006-12-26 Force10 Networks, Inc. Epoch-based packet switching
US7274696B1 (en) * 2002-10-21 2007-09-25 Force10 Networks, Inc. Scalable redundant switch fabric architecture
US7366166B2 (en) * 2003-04-25 2008-04-29 Alcatel Usa Sourcing, L.P. Data switching using soft configuration
US8050559B2 (en) 2006-08-21 2011-11-01 Juniper Networks, Inc. Multi-chassis router with multiplexed optical interconnects
US20090080428A1 (en) * 2007-09-25 2009-03-26 Maxxan Systems, Inc. System and method for scalable switch fabric for computer network
US8265071B2 (en) * 2008-09-11 2012-09-11 Juniper Networks, Inc. Methods and apparatus related to a flexible data center security architecture
US9847953B2 (en) * 2008-09-11 2017-12-19 Juniper Networks, Inc. Methods and apparatus related to virtualization of data center resources
CN101729430B (zh) * 2010-01-15 2012-05-23 西安电子科技大学 用于支持端到端时延保证的动态资源分配系统及分配方法
CN102238072B (zh) * 2010-05-06 2015-03-25 中兴通讯股份有限公司 一种动态选择路由的方法及clos交换网系统
US8837499B2 (en) 2011-05-14 2014-09-16 International Business Machines Corporation Distributed fabric protocol (DFP) switching network architecture
US8705551B2 (en) * 2011-07-27 2014-04-22 Fujitsu Limited Method and system for management of flood traffic over multiple 0:N link aggregation groups
US8782321B2 (en) 2012-02-08 2014-07-15 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US20140016486A1 (en) * 2012-07-12 2014-01-16 Broadcom Corporation Fabric Cell Packing in a Switch Device
WO2014183126A1 (en) 2013-05-10 2014-11-13 Huawei Technologies Co., Ltd. System and method for photonic switching
US9479457B2 (en) * 2014-03-31 2016-10-25 Juniper Networks, Inc. High-performance, scalable and drop-free data center switch fabric
AU2015283976B2 (en) 2014-07-03 2018-12-06 Fiber Mountain, Inc. Data center path switch with improved path interconnection architecture
US9866427B2 (en) * 2015-02-16 2018-01-09 Juniper Networks, Inc. Multi-stage switch fabric fault detection and handling
US10454830B2 (en) * 2016-05-05 2019-10-22 City University Of Hong Kong System and method for load balancing in a data network
US10476817B2 (en) * 2017-05-31 2019-11-12 Juniper Networks, Inc. Transport LSP setup using selected fabric path between virtual nodes
WO2019068013A1 (en) 2017-09-29 2019-04-04 Fungible, Inc. FABRIC CONTROL PROTOCOL FOR DATA CENTER NETWORKS WITH PACKAGING OF PACKETS ON MULTIPLE ALTERNATIVE DATA PATHWAYS
US10587517B2 (en) * 2017-11-30 2020-03-10 Juniper Networks, Inc. Optimizing fabric path forwarding for virtual nodes within an electronic device
US10951527B2 (en) * 2018-12-28 2021-03-16 Juniper Networks, Inc. Switch fabric packet flow reordering

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006313949A (ja) * 2005-05-06 2006-11-16 Hitachi Ltd パケット転送装置

Also Published As

Publication number Publication date
TW202127835A (zh) 2021-07-16
CN113132252A (zh) 2021-07-16
US20210203612A1 (en) 2021-07-01
EP3846399B1 (en) 2023-11-15
EP3846399A1 (en) 2021-07-07
KR20210086390A (ko) 2021-07-08
TWI794596B (zh) 2023-03-01
US11316796B2 (en) 2022-04-26
SG10202001462PA (en) 2021-07-29

Similar Documents

Publication Publication Date Title
JP7417825B2 (ja) スライスベースルーティング
US10666563B2 (en) Buffer-less virtual routing
JP7234384B2 (ja) パケット処理方法および装置、デバイス、ならびにシステム
US9065768B2 (en) Apparatus for a high performance and highly available multi-controllers in a single SDN/OpenFlow network
EP2567519B1 (en) Per-graph link cost assignment in layer 2 multipath networks
US7801155B2 (en) Resource allocation in virtual routers
US8644328B2 (en) Methods for intelligent NIC bonding and load-balancing
US9559953B2 (en) Path splitting with a connection-oriented network
US8953599B1 (en) Traffic cut-through within network device having multiple virtual network devices
US9148298B2 (en) Asymmetric ring topology for reduced latency in on-chip ring networks
US7990965B1 (en) Transmission of layer two (L2) multicast traffic over multi-protocol label switching networks
CN110061915B (zh) 跨多个架构交换机的虚拟链路聚合的方法和系统
US20170257684A1 (en) Systems, apparatus, and methods for segment routing of optical signals
US20170111294A1 (en) Integrated folded clos architecture
US10291750B1 (en) Aggregating data sessions between autonomous systems
US11296980B2 (en) Multicast transmissions management
KR102394259B1 (ko) 내부 스위치 패브릭에서의 비동일한 링크 접속들을 위한 분사
RU2740035C1 (ru) Шлюз прямых межсоединений
WO2022188530A1 (zh) 一种路由处理方法及网络设备
US8942232B1 (en) Multi-stage switching topology
US9473423B2 (en) Inter domain link for fibre channel
US11070474B1 (en) Selective load balancing for spraying over fabric paths
WO2023169364A1 (zh) 路由生成方法、数据报文的转发方法及装置
KR20020077573A (ko) 레이어3 스위치칩과 인터페이스가 가능한 엠피엘에스모듈
JP2003134153A (ja) Ip−vpn内アクセス制御システムおよび方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant