KR101698648B1 - 서비스 품질의 가상화를 위한 방법 및 장치 - Google Patents

서비스 품질의 가상화를 위한 방법 및 장치 Download PDF

Info

Publication number
KR101698648B1
KR101698648B1 KR1020140164241A KR20140164241A KR101698648B1 KR 101698648 B1 KR101698648 B1 KR 101698648B1 KR 1020140164241 A KR1020140164241 A KR 1020140164241A KR 20140164241 A KR20140164241 A KR 20140164241A KR 101698648 B1 KR101698648 B1 KR 101698648B1
Authority
KR
South Korea
Prior art keywords
aura
pool
buffers
packet
levels
Prior art date
Application number
KR1020140164241A
Other languages
English (en)
Other versions
KR20150075356A (ko
Inventor
2세 윌슨 파크허스트 스나이더
토마스 프레더릭 훔멜
안나 카렌 쿠즈카우스키
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 KR20150075356A publication Critical patent/KR20150075356A/ko
Application granted granted Critical
Publication of KR101698648B1 publication Critical patent/KR101698648B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • H04L47/326Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames with random discard, e.g. random early discard [RED]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Environmental & Geological Engineering (AREA)

Abstract

서비스 품질 (quality of service) 의 가상화를 위한 방법 및 이를 구현하는 시스템이 개시되며, 이 서비스 품질 가상화 방법은 인터페이스에서 수신된 패킷을 아우라 식별자 (aura identifier) 를 통해서 아우라와 연관시키는 단계; 아우라에 대한 구성 파라미터들 (configuration parameters) 을 결정하는 단계; 아우라에 대한 풀 (pool) 을 결정하는 단계; 풀의 리소스들 (resources) 의 상태를 결정하는 단계로서, 상기 리소스들은 상기 풀 내에 가용한 버퍼들의 레벨 및 상기 아우라에 할당된 버퍼들의 레벨을 포함하는, 상기 상태를 결정하는 단계; 및 상기 풀의 결정된 상태 및 상기 아우라에 대한 구성 파라미터들에 따라서 상기 패킷에 대한 서비스 품질을 결정하는 단계를 포함한다.

Description

서비스 품질의 가상화를 위한 방법 및 장치{A METHOD AND AN APPARATUS FOR VIRTUALIZATION OF QUALITY-OF-SERVICE}
본 개시는 메모리 관리에 관한 것이다. 특히, 본 발명은 QoS (quality-of-service) 의 가상화에 관한 것이다.
통신 시스템에서 네크워크를 통해서 노드, 예를 들어서 스위치에서의 패킷의 수신은 패킷을 처리하기 위해서 메모리 할당을 요구한다. 그러나, 메모리는 한정된 리소스이며; 따라서 QoS 레벨을 보장하기 위해서 다수의 기법들이 개발되었다. QoS는 네트워크의 사용자들에 의해서 경험되는 네트워크 통신의 전반적인 성능이며 상이한 파라미터들, 예를 들어서, 에러 레이트, 대역폭, 처리량, 전송 지연, 가용성, 지터, 및 본 기술 분야의 당업자에게 알려진 다른 파라미터들을 측정함으로써 정량화된다.
요구된 QoS를 확보하기 위해서, 한정된 메모리 측면에서, 몇몇 방법들이 통상적으로 사용된다. 테일 드랍 방법 (tail drop method) 은 패킷들을 드랍시킬 때를 결정하는데 사용되는 간단한 큐 관리 기법이다. 할당된 큐가 제 1 사전결정된 용량에 달하면, 이 큐 용량이 제 2 사전결정된 용량까지 증가할 때까지 새롭게 도달한 패킷들은 드랍된다. 이 방법은 패킷들 간을 구별하지 않아서 모든 패킷들이 동등하게 취급된다. 큐는 엔티티들, 즉 패킷을 포함하는 데이터들이 유지되는 스트럭처 (structure) 로의 데이터의 구성이다. 데이터 스트럭처는 버퍼들의 집합들, 일부 목적을 위해서 하드웨어에 할당되거나 소프트웨어 엔티티가 사용할 수 있는 메모리의 일부로서 구현될 수 있다. 백프레셔 (backpressure) 는 할당된 큐가 제 1 사전결정된 용량에 도달한 때에 이 큐 용량이 제 2 사전결정된 용량으로 증가될 때까지 패킷들의 소스가 패킷 전송을 중지할 것을 요청하는 큐 관리 방법이다. RED (random early discard) 방법은 평균 큐 크기를 모니터링하고 통계적 확률에 기초하여서 패킷들을 드랍시킨다. 큐가 거의 비게 되면, 모든 인커밍 (incoming) 패킷들이 수락된다. 큐가 증가함에 따라서, 인커밍 패킷을 드랍시킬 확률이 증가한다.
보다 정교한 구현예에서, 다양한 QoS 관리 방법이 결합된다; 이로써 각 기법과 관련된 파라미터들에서의 변화에 따라서 해당 기법을 변화시킨다. 이러한 파라미터들은 메모리를 사용할 패킷을 특성화하는 정성사항들 (qualities), 예를 들어서 패킷이 수신된 물리적 인터페이스, 패킷으로부터 선택된 필드들, 예를 들어서 DIFFSRV (Differentiated Services), IEEE 802.1 Q VLAN 우선순위, 및 본 기술분야의 당업자에게 알려진 다른 특성들에 기초하여서 선택된다.
가상화를 향한 현 경향은 QoS 관리의 재고려를 요구한다. 가상화는 하드웨어 및 소프트웨어 리소스들, 즉 중앙 프로세서 유닛, 저장 시스템, 입력/출력 리소스들, 네트워크 리소스, 운영 체제, 및 본 기술 분야에서 알려진 컴퓨팅 리소스들의 가상 버전이 호스트 머신으로서 지칭되는 컴퓨터 시스템에 의해서 시뮬레이션되게 하는 프로세스이다. 통상적인 호스트 머신은 선택사양적으로 소프트웨어 엔티티, 즉 운영 체제와 함께, 또한 게스트 머신들로 지칭되는 가상 머신들을 생성 및 동작시키는 소프트웨어 또는 펌웨어인 하이퍼바이저를 운영하는 하드웨어 플랫폼을 포함할 수 있다. 하드웨어 가상화를 통해서, 하이퍼바이저는 각 가상 머신에 가상 하드웨어 운영 플랫폼을 제공한다. 가상 하드웨어 운영 플랫폼과 인터페이싱함으로써, 가상 머신은 호스트 머신의 컴퓨팅 리소스들에 액세스하여서 가상 머신들의 각각의 동작들을 실행한다. 이로써, 단일 호스트 머신은 다수의 가상 머신들을 지원하고, 각 가상 머신은 운영 체제 및/또는 다른 소프트웨어 엔티티, 즉 애플리케이션을 동시에 가상화를 통해서 동작시킨다.
이로써, 가상화는 메모리 내의 다수의 가상 어드레스 공간들에 대한 필요가 증가함에 따라서, 메모리 리소스들의 관리에 대한 압력을 증가시킬 가능성이 있다. 이는 수신된 패킷이 이러한 가상 어드레스 공간들 중 하나로 향하게 하는 필요를 낳으며, 이 어드레스 공간들 각각은 가능하게는 상이한 QoS를 갖는다. 다수의 가상 어드레스 공간들의 존재, 이와 연관된 QoS 레벨들 및 다수의 QoS 방법들은 잠재적으로 대형의 복잡한 스트럭처들을 요구한다.
따라서, 유연성 및 추가적인 이점들을 가능하게 하면서 상술한 복잡성 문제에 대한 해법을 제공하는 방법 및 이 방법을 구현하는 장치에 대한 필요가 본 기술에서 존재한다.
본 개시의 양태에서, 첨부된 독립 청구항들에 따른 서비스 품질을 위한 장치 및 방법이 개시된다. 추가 양태들이 종속항들에서 개시된다.
본 명세서에 개시된 전술한 양태들은 첨부 도면들과 함께 취해질 때 이하의 기술을 참조함으로써 보다 용이하게 명백해질 것이다.
도 1은 본 개시의 일 양태에 따른 가상화 시스템의 개념적 스트럭처를 도시한다.
도 2a는 QoS의 가상화를 위한 프로세스의 흐름도의 제 1 부분을 도시한다.
도 2b는 QoS의 가상화를 위한 프로세스의 흐름도의 제 2 부분을 도시한다.
도 3은 QoS의 가상화를 실현하는 개념적 스트럭처 및 이 스트럭처의 요소들 중의 정보 흐름을 도시한다.
달리 규정되지 않는 한, 본 명세서에 사용된 모든 용어들 (기술적 용어 및 과학적 용어를 포함) 은 본 발명이 속하는 당업자에 의해 일반적으로 이해되는 동일한 의미를 갖는다. 일반적으로 사용되는 사전들에 정의된 바와 같은 용어들은 관련 분야 및 본 개시의 맥락에서 이들의 의미와 일관된 의미를 갖는 것으로 해석되어야 한다는 것이 또한 이해될 것이다.
본 명세서에 사용된 바와 같이, 단수 형태들 "a", "an", 및 "the"는 문맥에 분명하게 달리 지시하지 않는 한, 복수 형태들도 포함하는 것으로 의도된다. 용어들 "포함하다 (comprise, comprises)" 및/또는 "포함하는"은 본 명세서에서 사용될 때 언급된 피처들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 명시하지만, 하나 이상의 다른 피처들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들, 및/또는 이들의 그룹의 존재 또는 추가를 불가능하게 하지 않는다는 것이 또한 이해될 것이다. 용어 "및/또는"은 하나 이상의 연관된 열거된 아이템들의 임의의 그리고 모든 조합들을 포함한다.
다양한 개시된 양태들은 하나 이상의 예시적인 구성들을 참조하여 예시될 수도 있다. 본 명세서에 사용된 바와 같이, 용어 "예시적인"은 "예, 사례 또는 예시로서 기능하는"을 의미하고, 본 명세서에 개시된 다른 구성들에 대해 선호되거나 유리한 것으로 해석될 필요는 없다.
본 발명의 다양한 양태들은 명시적으로 언급되지 않는 한, 본 발명의 개념적인 구성들의 개략적인 예시들인 도면들을 참조하여 본 명세서에 기술될 것이다. 본 개시의 다양한 양태들은 당업자들이 본 발명을 실행할 수 있도록 제공된다. 본 개시에 걸쳐 제공된 다양한 양태들에 대한 수정들은 당업자들에게 용이하게 명백해질 것이고, 본 명세서에 개시된 개념들은 다른 애플리케이션들로 확장될 수도 있다.
도 1은 본 개시의 일 양태에 따른 가상화 시스템 (100) 의 개념적 스트럭처를 도시한다. 하드웨어 플랫폼 (102) 은 선택사양적 소프트웨어 엔티티 (104), 즉 운영 체제와 함께, 또한 호스트된 하이퍼바이저 (106) 로서 알려진 타입 2 하이퍼바이저를 운영하는 호스트 머신을 포함한다. 본 기술 분야의 당업자에게 잘 알려진 바와 같이, 선택사양적 소프트웨어 엔티티 (104) 는 또한 네이티브 하이퍼바이저들로서 알려진 타입 1 하이퍼바이저들에 대해서는 필요하지 않다. 본 개시의 양태들은 양 타입의 하이퍼바이저들에 대해서 동일하게 적용가능하다.
하드웨어 플랫폼 (102) 은 특정 호스트 머신, 즉 중앙 프로세서 유닛, 입력/출력 리소스들, 저장 시스템, 네트워크 리소스 및 본 기술 분야의 당업자에게 알려진 다른 리소스들에 의해서 요구되는 컴퓨팅 리소스들을 구현하는 모든 물리적 엔티티들을 포함한다. 과도한 복잡성을 피하기 위해서, 오직 저장 시스템 (108) 및 네트워크 리소스 (110) 만이 도시된다. 저장 시스템 (108) 은 하드 드라이브, 반도체 기반 메모리 및 본 기술 분야에서 알려진 다른 타입의 메모리를 포함할 수 있다. 네트워크 리소스 (110) 는 적어도 하나의 NIC를 포함한다.
하이퍼바이저 (106) 는 적어도 하나의 가상 머신 (112) 을 생성 및 동작시킨다. 3 개의 가상 머신들 (112) 이 도시되지만, 단일 가상 머신을 포함하여서 임의의 개수의 가상 머신들이 존재할 수도 있음을 본 기술 분야의 당업자는 이해할 것이다. 가상 머신 (112) 의 동작을 구성하는 파라미터들은 스트럭처 (114) 를 통해서 규정된다. 일 양태에서, 스트럭처 (114) 는 적어도 하나의 레지스터를 포함할 수 있다.
QoS의 가상화를 위한 프로세스 (200) 의 흐름도를 도시하는 도 2가 참조된다. 도 3에 도시된 QoS의 가상화를 실현하는 개념적 스트럭처의 특정 요소들 간의 관계 및 이러한 요소들 간의 정보 흐름을 더욱 명료화하기 위해서, 도 2의 설명에서, 도 3의 구조적 요소들이 괄호로 참조된다.
단계 (202) 에서, 하이퍼바이저 (미도시) 가 하이퍼바이저 및 모든 종속된 엔티티들, 즉 인터페이스 (302), VNIC의 가상 머신(들) (미도시), VNIC들 (미도시) 및 다른 엔티티들의 동작을 구성하는 스트럭처들을 개시한다. 열거된 엔티티들 중 일부는 도 3에 도시되지 않았지만, 도 3에 도시된 스트럭처는 가상화 시스템 (100) 에 의해서 구현된다는 것을 본 기술 분야의 당업자는 이해할 것이다. 프로세스가 단계 (204) 에서 계속된다.
단계 (204) 에서, 인커밍 패킷이 인터페이스 (302), 예를 들어서, NIC, 이더넷 MAC (Media Access Control), 또는 본 기술 분야의 당업자에게 알려진 다른 인터페이스에 도달하고 파서 (parser) (304) 에 의해서 파싱된다. 일 양태에서, 파서는 인터페이스 (302) 에서 구현된다. 파싱된 패킷의 필드로부터의 정보는, 구성 정보 및 임의의 추가 정보와 함께 파서 (304) 에 의해서 평가된다. 이 평가에 기초하여서, 패킷은 아우라 식별자 (aura identifier) (306) 가 할당됨으로써 아우라와 연관된다. 용어 "아우라"는 패킷에 대한 흐름 제어를 어떻게 기록 및 처리하는지를 식별하는데 사용된다. 정보 필드들은 예를 들어서 소스 인터넷 프로토콜 (IP) 어드레스, 소스 MAC 어드레스, 수신지 IP 어드레스, 수신지 MAC 어드레스, VLAN 헤더들 및 본 기술 분야의 당업자에게 알려진 다른 필드들을 포함할 수 있다. 구성 정보는 예를 들어서 소스 포트 수를 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당될 수 있는 버퍼들의 개수에 맵핑하는 것, IEEE 802.1 Q VLAN 우선순위 및/또는 DIFFSRV 우선순위들에 대한 부가사항 및 본 기술 분야의 당업자에게 알려진 다른 구성 정보를 포함할 수 있다. 추가 정보는 예를 들어서, 패킷이 도달한 포트, 패킷이 도달한 인터페이스 및 본 기술 분야의 당업자에게 알려진 다른 정보를 포함할 수 있다. 프로세스가 단계 (206) 에서 계속된다.
단계 (206) 에서, 아우라 식별자 (306) 가 아우라 관리 블록 (307) 에 제공된다. 아우라 관리 블록 (307) 에서, 리소스 제어 블록 (308) 은 아우라 식별자 (306) 에 의해서 식별된 아우라와 연관된 패킷에 대한 서비스 품질 QoS를 제어하는 리소스들을 결정한다.
이러한 리소스들은 가용한 버퍼들의 풀 (pool) 을 포함하며, 이러한 풀로부터 일 버퍼가 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당될 것이다. 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당될 수 있는 버퍼들의 최대 개수는 구성 파라미터 AURA_CNT_LIMIT에 의해서 결정된다; 특정 시간에 할당된 버퍼들의 개수는 파라미터 AURA_CNT에 의해서 결정된다. 용어 버퍼는 하드웨어 또는 소프트웨어 엔티티에 할당될 수 있는 메모리의 일부를 포함한다. 용어 풀은 복수의 버퍼들을 식별하는데 사용된다. 일 양태에서, 버퍼 풀은 공동 계류 중이면서 2013년 12월 25일자에 출원된 미국 출원 번호 14/140494 "A METHOD AND AN APPARATUS FOR MEMORY ADDRESS ALLIGNMENT"에서 개시된다. 일 버퍼가 2 개 이상의 풀에 속하지 않을 수도 있다.
리소스들을 할당하기 위해서, 아우라 식별자 (306) 가 아우라 풀 수 (310) 및 아우라 레벨 (312) 을 결정하는데 사용된다. 이러한 결정은 스트럭처, 예를 들어서 룩업 테이블에 의해서 아우라 식별자를 아우라 풀 수 및 아우라 레벨에 맵핑함으로써 수행될 수 있다. 이러한 맵핑은 하나 이상의 아우라 식별자(들)를 단일 풀 상으로 맵핑할 수 있다. 2 개 이상의 아우라가 단일 풀 상으로 맵핑되는 경우에, 아우라 버퍼 할당은 상이한 아우라 식별자들에 대해서 동일하거나 상이할 수도 있다.
아우라 풀 수 (310) 는 가용한 버퍼들의 풀을 식별하며 이 풀로부터 일 버퍼가 아우라 식별자 (306) 에 의해서 식별된 아우라와 연관된 패킷에 할당될 것이다. 아우라 레벨 (312) 은 구성 파라미터의 값을 포함한다. 본 개시의 명료성을 위해서, 다음의 표기방식이 사용된다. 가용한 버퍼들의 풀과 관련된 아우라 레벨의 구성 파라미터는 표기 AURA_POOL_LEVELS[]에 의해서 식별되며; 아우라에 할당된 버퍼들과 관련된 아우라 레벨의 구성 파라미터는 표기 AURA_CNT_LEVELS[]에 의해서 식별된다. 괄호 [] 내의 표현은 해당 레벨에서 취해질 QoS 조치를 표시한다.
일 양태에서, 이 표현은 DROP를 포함할 수 있는데, 이는 패킷을 거절 ("드랍") 하는 것을 표시한다. 다른 표현은 PASS를 포함할 수 있는데, 이는 패킷을 수락하는 것을 말한다. 또 다른 표현은 BP를 포함할 수 있는데, 이는 패킷을 수락하고 백프레셔 (backpressure) 를 적용하는 것을 표시한다. 그러나, 다른 QoS 조치들을 표시하는 다른 표현들이 사용될 수도 있음을 본 기술 분야의 당업자는 이해할 것이다.
전술한 바에 기초하여서, 예시적으로, 표기 AURA_POOL_LEVELS[PASS]는 가용한 버퍼들의 풀과 관련된 구성 파라미터 아우라 레벨의 값을 표시하며, 이 값은 해당 아우라와 연관된 패킷을 수락하거나 QoS 조치를 실행하기 위한 임계치를 포함하는, 풀 내의 가용한 버퍼들의 개수를 포함한다. 다른 예로서, 표기 AURA_CNT_LEVELS[PASS]는 해당 아우라에 할당된 버퍼들과 관련된 가용한 버퍼들의 풀과 관련된 구성 파라미터 아우라 레벨의 값을 표시하며, 이 값은 해당 아우라에 할당된 버퍼들의 개수를 포함하며, 이는 해당 아우라와 연관된 패킷을 수락하거나 QoS 조치를 실행하기 위한 임계치를 포함한다.
프로세스는 단계 (208) 에서 계속된다.
단계 (208) 에서, 아우라 풀 수 (310) 에 의해서 식별된 풀의 상태가 결정된다. 일 양태에서, 풀의 상태는 메모리 (314) 로부터 검색된다. 풀의 상태는 풀 (316) 내의 가용한 버퍼들의 레벨 및 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 레벨을 포함한다. 일 양태에서, 레벨들은 순간 레벨들 (instant levels) 을 포함할 수 있다. 다른 양태에서, 순간 레벨들은 더 처리될 수 있다. 이러한 처리는 예를 들어서, 정규화 및/또는 시간-평균화를 포함할 수 있다. 이로써, 용어 "결정된 레벨(들)"은 명시적으로 언급되지 않는 이상 순간 레벨 및 처리된 레벨 모두를 일괄하여서 지칭하는데 사용된다.
정규화는 최대 정규화된 레벨에 대해서 결정된 레벨들을 재스케일링한다. 일 양태에서, 정규화는 정규화된 엔티티의 최대 레벨에 대한 최대 정규화된 레벨의 비로서 상수로서 계산하는 것을 포함하며; 정규화된 엔티티는 풀 내의 가용한 버퍼들의 레벨 또는 해당 아우라에 할당된 아우라 버퍼의 레벨을 포함한다. 이어서, 결정된 레벨이 상기 상수 만큼 승산되어서 정규화된 값을 산출한다.
일 양태에서, 이 상수는 2 의 멱수 (power) 로 제한되는데, 이는 재스케일링된 값들을 <0, 128> 만큼 작은 인터벌로 줄일 수 있다. 상수를 2의 멱수로 제한함으로써, 대안적인, 계산상 보다 효율적인, 계산이 시프트에 의해서 승산을 대체함으로써 이루어질 수 있는데 그 이유는 2 의 승산 또는 제산의 멱은 시프트와 등가이기 때문이다.
시간 평균화가 프로그램가능한 시간에 걸쳐서 계산될 수 있는데, 여기서 프로그램가능한 시간은 제로 시간을 포함하며; 이로써 순간 값을 산출한다. 시간 평균화는 예를 들어서, 평균 이동 (moving average), 몇 개의 최근 타임 샘플들에 걸친 평균화, 몇 개의 타임 샘플들에 걸친 최근 최대를 평균화하는 것, 몇 개의 타임 샘플들에 걸친 최근 최소를 평균화하는 것, 및 본 기술 분야의 당업자에게 알려진 다른 평균화 방법들을 포함할 수 있다. 프로세스는 단계 (210) 및 단계 (212) 에서 순차적으로 또는 병행하여서 진행한다.
결정된 레벨들이 각 아우라에 대해서 블록 (320) 에 의해서 스케줄에 따라서 수행되고 풀에 대해서 풀 관리 블록 (318) 에 의해서 수행된다. 일 양태에서, 스케줄은 주기적이다. 다른 양태에서, 스케줄은 이벤트, 예를 들어서 패킷의 정규 프로세싱, 예를 들어서 패킷이 수락되고 버퍼로 이동하고 패킷이 버퍼로부터 목표 애플리케이션으로 이동하고 본 기술 분야의 당업자에게 알려진 다른 프로세싱으로 인해서 버퍼(들) 할당에서의 변화에 의해서 트리거된다. 이와 달리, 하드웨어 엔티티 (344) 또는 소프트웨어 엔티티 (346) 가 이하에서 개시될 바와 같이 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 레벨들을 증가 또는 감소시킬 수 있다.
단계 (210) 에서, 풀 (316) 내에 현재 가용한 버퍼들의 결정된 레벨이 블록 (322) 내에서 제 1 사전결정된 임계치와 비교된다. 일 양태에서, 이 버퍼들의 사전결정된 레벨은 정규화된다. 제 1 임계치는 구성가능한 파라미터이며, 이 값은 예를 들어서 해당 풀을 포함하는 총 버퍼들의 개수의 퍼센티지에 따라서 결정된다. 풀 (316) 내에 현재 가용한 버퍼들의 레벨이 제 1 사전결정된 임계치를 넘으면 (cross), 블록 (322) 은 표시자 (324) 를 생성하며, 이 표시자는 블록 (332) 으로 제공되어서 이 블록으로 하여금 인터럽트 (334) 를 생성하게 하며, 프로세스는 단계 (214) 로 진행하고; 그렇지 않으면 프로세스는 단계 (218) 에서 계속된다.
단계 (214) 에서, 블록 (332) 은 생성된 인터럽트 (334) 를 하이퍼바이저에게 제공한다. 하이퍼바이저는 해당 아우라와 연관된 패킷(들)의 QoS를 변화시키는 조치를 취할 수 있다. 예시적으로, 이 조치는 제 1 임계치를 넘는 방향 (crossing direction) 에 따라서 리소스들을 풀에 부가하거나 리소스들을 풀로부터 제거할 수 있다. 일 양태에서, 풀 내에 현재 가용한 버퍼들의 레벨이 제 1 사전결정된 임계치보다 작은 값으로부터 제 1 사전결정된 임계치보다 큰 값의 방향으로 제 1 임계치를 넘으면 리소스들이 풀로부터 제거되며, 풀 내에 현재 가용한 버퍼들의 레벨이 제 1 사전결정된 임계치보다 큰 값으로부터 제 1 사전결정된 임계치보다 작은 값의 방향으로 제 1 임계치를 넘으면 리소스들이 풀로 추가된다. 이러한 조치는 이하에서 기술되는 바와 같은 하드웨어 엔티티 (344) 또는 소프트웨어 엔티티 (346) 를 통해서 실행될 수 있다. 프로세스는 단계 (218) 에서 계속된다.
단계 (212) 에서, 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 결정된 레벨이 블록 (322) 내에서 제 2 사전결정된 임계치와 비교된다. 제 2 임계치는 구성가능한 파라미터이며, 이 값은 예를 들어서 아우라에 할당된 아우라 버퍼의 개수의 퍼센티지에 따라서 결정된다. 아우라에 할당된 아우라 버퍼들의 수가 제 2 사전결정된 임계치를 넘으면, 블록 (322) 은 표시자 (324) 를 생성하며, 이 표시자는 블록 (332) 으로 제공되어서 이 블록으로 하여금 인터럽트 (334) 를 생성하게 한다. 프로세스는 단계 (214) 에서 계속된다.
단계 (214) 에서, 블록 (332) 은 생성된 인터럽트 (334) 를 하이퍼바이저에게 제공한다. 하이퍼바이저는 해당 아우라와 연관된 패킷(들)의 QoS를 변화시키는 조치를 취할 수 있다. 예시적으로, 이 조치는 제 2 임계치를 넘는 방향 (crossing direction) 에 따라서 리소스들을 풀에 부가하거나 리소스들을 풀로부터 제거할 수 있다. 일 양태에서, 아우라 식별자에 의해서 식별된 아우라에 할당된 버퍼들의 레벨이 제 2 사전결정된 임계치보다 작은 값으로부터 제 2 사전결정된 임계치보다 큰 값의 방향으로 이 제 2 임계치를 넘으면 리소스들이 풀로부터 제거되며, 이와 반대로도 된다. 이러한 조치는 이하에서 기술되는 바와 같은 하드웨어 엔티티 (344) 또는 소프트웨어 엔티티 (346) 를 통해서 실행될 수 있다. 프로세스는 단계 (216) 에서 계속된다.
단계 (216) 에서, 풀 (316) 내에 가용한 버퍼들의 결정된 레벨들과 가용한 버퍼들의 풀과 관련된 아우라 레벨의 결정된 구성 파라미터, 즉 AURA_POOL_LEVELS[]의 값 간의 하나 이상의 비교가 존재한다. 후속 비교가 수행될지의 여부는 아래에서 개시되는 바와 같이 선행하는 비교의 결과에 의존할 수 있다. 위에서 암시되고 아래에서 더 상세하게 개시된 바와 같이, 구성가능한 파라미터들이 조절될 수도 있다. 이로써, 일 양태에서, 레벨들은 순간 레벨들을 포함할 수 있다. 다른 양태에서, 순간 레벨들은 더 처리될 수 있다. 이러한 처리는 예를 들어서, 정규화 및/또는 시간-평균화를 포함할 수 있다. 이로써, 용어 "결정된 구성 파라미터"는 명시적으로 언급되지 않는 이상 구성 파라미터(들)의 순간 레벨 및 처리된 레벨 모두를 일괄하여서 지칭하는데 사용된다.
풀 (316) 내에 가용한 버퍼들의 결정된 레벨이 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 보다 작으면, 블록 (322) 은 표시자 (326) 를 생성하며, 이 표시자는 블록 (336) 에 제공되어서 이 블록으로 하여금 패킷을 드랍시키도록 한다. 일 양태에서, 풀 내의 가용한 버퍼들의 레벨은 정규화 및 시간 평균화된다. 일 양태에서, 블록 (336) 은 인터페이스 (302) 의 일부로서 구현된다. 프로세스는 단계 (220) 에서 계속되며, 그렇지 않으면 후속 비교가 수행된다.
풀 (316) 내에 가용한 버퍼들의 결정된 레벨이 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 과 결정된 구성 파라미터 AURA_POOLS_LEVELS[PASS] 간에 있으면, 블록 (322) 은 표시자 (328) 를 생성하며, 이 표시자는 블록 (332) 에 제공되어서 이 블록으로 하여금 랜덤 조기 폐기 (random early discard) 를 수행하게 한다. 일 양태에서, 풀 내의 가용한 버퍼들의 레벨은 정규화 및 시간 평균화된다. 프로세스는 단계 (222) 에서 계속되며, 그렇지 않으면 후속 비교가 수행된다.
풀 (316) 내에 가용한 버퍼들의 결정된 레벨이 결정된 구성 파라미터 AURA_POOLS_LEVELS[BP] 보다 작으면, 블록 (322) 은 표시자 (330) 를 생성하며, 이 표시자는 블록 (332) 에 제공되어서 이 블록으로 하여금 백프레셔 (backpressure) 를 적용하게 한다. 일 양태에서, 풀 내의 가용한 버퍼들의 레벨은 정규화된다. 프로세스는 단계 (224) 에서 계속된다.
단계 (220) 에서, 패킷이 드랍된다. 프로세스는 단계 (204) 에서 계속된다.
단계 (222) 에서, 랜덤 조기 폐기가 이하에서 보다 상세하게 개시될 바와 같이 수행된다. 프로세스는 단계 (204) 에서 계속된다.
단계 (224) 에서, 백프레셔가 이하에서 보다 상세하게 개시될 바와 같이 적용된다. 프로세스는 단계 (204) 에서 계속된다.
단계 (218) 에서, 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 결정된 레벨들과 아우라에 할당된 버퍼들과 관련된 결정된 구성 파라미터, 즉 AURA_CNT_LEVELS[]의 값들 간의 하나 이상의 비교가 존재한다. 후속 비교가 수행될지의 여부는 아래에서 개시되는 바와 같이 선행하는 비교의 결과에 의존할 수 있다. 위에서 암시되고 아래에서 더 상세하게 개시된 바와 같이, 구성가능한 파라미터들이 조절될 수도 있다. 이로써, 일 양태에서, 레벨들은 순간 레벨들을 포함할 수 있다. 다른 양태에서, 순간 레벨들은 더 처리될 수 있다. 이러한 처리는 예를 들어서, 정규화 및/또는 시간-평균화를 포함할 수 있다. 이로써, 용어 "결정된 구성 파라미터"는 명시적으로 언급되지 않는 이상 구성 파라미터(들)의 순간 레벨 및 처리된 레벨 모두를 일괄하여서 지칭하는데 사용된다.
아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 결정된 레벨이 결정된 구성 파라미터 AURA_CNT_LIMIT보다 크면, 블록 (322) 은 표시자 (326) 를 생성하며, 이 표시자는 블록 (332) 에 제공되어서 이 블록으로 하여금 패킷을 드랍시키도록 한다. 일 양태에서, 아우라 식별자에 식별된 아우라에 할당된 아우라 버퍼의 레벨은 정규화된다. 프로세스는 단계 (220) 에서 계속되며, 그렇지 않으면 후속 비교가 수행된다. 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 결정된 레벨이 결정된 구성 파라미터 AURA_CNT_LEVELS[DROP]보다 크면, 블록 (322) 은 표시자 (324) 를 생성하며, 이 표시자는 블록 (332) 에 제공되어서 이 블록으로 하여금 패킷을 드랍시키도록 한다. 일 양태에서, 아우라 식별자에 식별된 아우라에 할당된 아우라 버퍼의 레벨은 정규화된다. 프로세스는 단계 (220) 에서 계속되며, 그렇지 않으면 후속 비교가 수행된다. 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 결정된 레벨이 결정된 구성 파라미터 AURA_CNT_LEVELS[PASS]와 결정된 구성 파라미터 AURA_CNT_LEVELS[DROP] 간에 있으면, 블록 (322) 은 표시자 (328) 를 생성하며, 이 표시자는 블록 (332) 에 제공되어서 이 블록으로 하여금 랜덤 조기 폐기를 수행하게 한다. 일 양태에서, 아우라 식별자에 식별된 아우라에 할당된 아우라 버퍼의 레벨은 정규화 및 시간 평균화된다. 프로세스는 단계 (222) 에서 계속되며, 그렇지 않으면 후속 비교가 수행된다.
아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 결정된 레벨이 결정된 구성 파라미터 AURA_CNT_LEVELS[BP]보다 작으면, 블록 (322) 은 표시자 (330) 를 생성하며, 이 표시자는 블록 (332) 에 제공되어서 이 블록으로 하여금 백프레셔 (backpressure) 를 적용하게 한다. 일 양태에서, 아우라 식별자에 의해서 식별된 아우라에 할당된 아우라 버퍼의 레벨은 정규화 및 시간 평균화된다. 프로세스는 단계 (224) 에서 계속된다.
단계 (220) 에서, 패킷이 드랍된다. 프로세스는 단계 (204) 에서 계속된다.
단계 (222) 에서, 랜덤 조기 폐기가 이하에서 보다 상세하게 개시될 바와 같이 수행된다. 프로세스는 단계 (204) 에서 계속된다.
단계 (224) 에서, 백프레셔가 이하에서 보다 상세하게 개시될 바와 같이 적용된다. 프로세스는 단계 (204) 에서 계속된다.
임의의 시간에, 풀 (316) 내에 가용한 버퍼들의 레벨들 및/또는 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 레벨들의 상태는 버퍼(들) 사용에서의 변화로 인해서 변화되며, 풀 수 (pool number) (310) 에 의해서 식별된 풀의 결정된 상태 및 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 레벨은 재계산된다. 이러한 버퍼(들) 사용에서의 변화는 패킷의 정규 처리, 예를 들어서, 패킷이 수락되어서 버퍼로 이동하는 처리, 패킷이 버퍼로부터 목표 애플리케이션으로 이동하는 처리 및 본 기술 분야의 당업자에게 알려진 다른 프로세싱 태스크들로 인한 것일 수 있다.
추가적으로, 하드웨어 (344) 엔티티 또는 소프트웨어 (346) 엔티티는 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼들의 레벨을 증가 또는 감소시킬 수 있다. 이는 QoS가 조절될 수 있게 한다. 이러한 하드웨어 엔티티들은 추가 처리를 수행하는 코프로세서(들), 예를 들어서, 패킷 압축을 수행하는 압축 엔진 (미도시), 파서 (304) 및 본 기술 분야의 당업자에게 알려진 다른 하드웨어 엔티티들을 포함할 수 있다. 소프트웨어 엔티티는 예를 들어서 버퍼들을 할당 또는 복구 (reclaim) 하거나 패킷을 멀티캐스팅하는 소프트웨어 프로세스 및 본 기술 분야의 당업자에게 알려진 다른 소프트웨어 엔티티들을 포함할 수 있다.
일 양태에서, 동일한 버퍼 풀을 사용하는 코프로세서(들)는 아우라 식별자 (306) 에 의해서 식별된 아우라에 대해서 할당된 아우라 버퍼의 레벨들에 대응하는 증가 또는 감소와 함께, 아우라 식별자 (306) 에 의해서 식별된 아우라로 버퍼들을 할당 또는 복구 (un-allocate) 할 수 있다. 이는 QoS가 조절되게 한다.
다른 양태에서, 아우라 카운트가 물리적 리소스들, 즉 버퍼에 대응할 필요가 없기 때문에, 코프로세서(들)는 아우라 식별자 (306) 에 의해서 식별된 아우라에 대해서 할당된 아우라 버퍼들의 레벨들을, 버퍼들을 할당 또는 복구 (un-allocate) 하지 않으면서, 증가 또는 감소시킬 수 있으며, 이로써 QoS가 조절되게 한다.
또 다른 양태에서, 파서 (304) 가 아우라 식별자 (306) 에 의해서 식별된 아우라에 대해서 할당된 아우라 버퍼들의 레벨들을 증가 또는 감소시킬 수 있다. 이는 QoS가 버퍼들을 소비하지 않으면서 조절될 수 있게 한다.
또 다른 양태에서, 소프트웨어 엔티티가 아우라 식별자 (306) 에 의해서 식별된 아우라에 대해서 할당된 아우라 버퍼의 정규화된 레벨들을 증가 또는 감소시킬 수 있다. 이는 QoS가 버퍼들을 소비하지 않으면서 조절될 수 있게 한다.
위에서 개시된 바와 같이, 단계 (222) 에서, 랜덤 조기 폐기가 수행된다. 일 양태에서, 블록 (332) 에서, 비교기 (337) 는 미리 계산된 드랍 확률을 의사 난수와 비교하여서 패킷의 후속 프로세싱을 위해서 버퍼를 할당할지 또는 패킷을 드랍할지를 결정한다.
풀 (316) 내에 가용한 버퍼들의 결정된 레벨에 따른 드랍 확률에 있어서, 블록 (332) 은 결정된 구성 파라미터 AURA_POOLS_LEVELS[PASS] 의 값 및 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 의 함수로서 제 1 드랍 확률 (drop probability) 을 계산한다. 일 양태에서, 이 함수는, 풀 (316) 내에 가용한 버퍼들의 정규화되고 시간 평균된 레벨들의 값이 결정된 구성 파라미터 AURA_POOLS_LEVELS[PASS] 의 값보다 크거나 같을 경우의 0으로부터, 풀 (316) 내에 가용한 버퍼들의 정규화되고 시간 평균된 레벨들의 값이 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 의 값보다 작거나 같은 경우의 1로 선형으로 증가한다. 그러나, 인터벌 <0;1> 에 의해서 경계가 정해지는 임의의 함수가 고려된다.
아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 결정된 레벨에 따른 드랍 확률에 있어서, 블록 (332) 은 결정된 구성 파라미터 AURA_CNT_LEVELS[PASS] 및 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 의 함수로서 제 2 드랍 확률 (drop probability) 을 계산한다. 일 양태에서, 이 함수는, 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 결정된 레벨이 결정된 구성 파라미터 AURA_CNT_LEVELS[PASS] 의 값보다 작거나 같을 경우의 0으로부터, 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 결정된 레벨이 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 의 값보다 크거나 같은 경우의 1로 선형으로 증가한다. 그러나, 인터벌 <0;1> 에 의해서 경계가 정해지는 임의의 함수가 고려된다.
제 1 드랍 확률 및 제 2 드랍 확률을 계산한 후에, 아우라 관리 블록 (308) 내의 엔티티, 예를 들어서 블록 (322) 이 제 1 드랍 확률 및 제 2 드랍 확률 중 큰 것을 취함으로써 제 1 드랍 확률 및 제 2 드랍 확률을 결합시킨다. 이어서, 블록 (322) 은 인터벌 <0;1> 으로부터 또는 이로부터 스케일링된 의사 난수를 생성하며, 일 양태에서, 의사 난수가 결합된 드랍 확률들의 값보다 작으면, 패킷이 드랍된다. 다른 양태에서, 의사 난수가 결합된 드랍 확률들의 값보다 작거나 같으면, 패킷이 드랍된다.
선형 함수들의 상이한 기울기들은 풀 (316) 내의 가용한 버퍼들의 결정된 레벨이 높으면 보다 양호하며, 아우라 식별자 (306) 에 의해서 식별된 아우라에 할당된 아우라 버퍼의 결정된 레벨들이 필요한 것보다 작은 경우에 낮은 값들이 보다 양호한 것에 기인된다.
위에서 개시된 바와 같이, 단계 (224) 에서, 백프레셔가 적용된다. 특정 환경들에서, 풀은 상이한 인터페이스들에서 패킷들에 대응하는 아우라들에 할당될 수 있다. 이로써, 백프레셔는 모든 인터페이스들에서 적용될 필요가 있다. 일 아우라가 다수의 인터페이스들에 영향을 주도록 하기 위해서, 2 레벨 맵핑 프로세스가 사용된다. 도 3을 다시 참조하면 맵핑의 제 1 레벨은 블록 (338) 에서 수행된다. 백프레셔가 적용될 것을 알리는 표시자 (330) 를 수신하면, 블록 (338) 은 백프레셔를 요청하는 아우라의 아우라 식별자 (306) 를 백프레셔 식별자 (340) 에 맵핑한다. 하나 이상의 아우라 식별자(들) (306) 는 단일 백프레셔 식별자 (340) 에 맵핑될 수 있다. 맵핑의 제 2 레벨은 블록 (342) 에서 수행된다. 블록 (342) 은 백프레셔 식별자 (340) 를 인터페이스 (302) 내의 하나 이상의 채널(들) 상에 맵핑하는 스트럭처를 포함한다. 이로써, 백프레셔 식별자 (340) 상에 맵핑된 아우라 식별자 (306) 를 갖는 임의의 아우라가 백프레셔 상태에 있으면, 백프레셔 식별자 (340) 상에 맵핑된 모든 인터페이스 (302) 채널들이 백프레셔 상태에 있다.
본 개시의 다양한 양태들이 본 기술 분야의 당업자가 본 발명을 실시할 수 있도록 제공되었다. 이러한 양태들에 대한 다양한 수정사항들이 본 기술 분야의 당업자에게 용이하게 자명하며 본 명세서에서 개시된 개념들은 본 발명의 사상 또는 범위 내에서 다른 양태들에 적용될 수 있다. 따라서, 본 발명은 본 명세서에서 도시된 양태들로 한정되지 않고 본 명세서에서 개시된 원리들 및 신규한 특징들과 일관된 가장 넓은 범위가 부여된다.
당업자에게 공지되거나 나중에 공지될 본 개시에 걸쳐 기술된 다양한 양태들과 함께 기술된 다양한 예시적 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들에 대한 모든 구조적이고 기능적인 등가물들은 참조로서 명시적으로 통합되고 청구항들에 의해 포괄되도록 의도된다. 이러한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 조합으로 구현될 수도 있다.
당업자는 임의의 다양한 상이한 기술들 및 기법들을 사용하여 표현될 수도 있다는 것을 이해할 것이다. 예를 들어, 상기 기술에 걸쳐 참조될 수도 있는 데이터, 인스트럭션들, 명령들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압, 전류, 전자기 파, 자계 또는 파티클들, 광학계 또는 파티클들, 또는 임의의 이들의 조합으로 표현될 수도 있다.
또한, 이러한 개시가 청구항들에 명시적으로 언급되는지 여부와 무관하게 본 명세서에 개시되지 않은 것은 공공으로 전용되도록 의도된다. 어떠한 엘리먼트도 엘리먼트가 "을 위한 수단"이라는 구 또는 방법 청구항의 경우에, "을 위한 단계"라는 구를 사용하여 명시적으로 언급되지 않는 한, 35 U.S.C. §112의 조항, 여섯번째 문단에 따라 해석되지 않는다.

Claims (24)

  1. 서비스 품질 (quality of service) 의 가상화를 위한 방법에 있어서,
    인터페이스에서 수신된 패킷을, 상기 패킷의 스트럭처의 내부 필드들의 정보와 상기 패킷의 스트럭처 외부의 정보를 평가함으로써, 아우라 식별자 (aura identifier) 를 통해서 아우라와 연관시키는 단계;
    상기 아우라에 할당될 수도 있는 버퍼들의 최대 수를 식별하는 파라미터 (AURA_CNT_LIMIT), 특정한 시간에 할당된 버퍼들의 수를 식별하는 파라미터 (AURA_CNT), 및 가용한 버퍼들의 상기 풀에 관련된 아우라 레벨을 식별하는 파라미터 (AURA_POOL_LEVELS) 를 포함하는, 상기 아우라에 대한 구성 파라미터들 (configuration parameters) 을 결정하는 단계;
    상기 아우라에 대한 버퍼들의 풀 (pool) 을 결정하는 단계;
    상기 풀의 리소스들 (resources) 의 상태를 결정하는 단계로서, 상기 리소스들은 상기 풀 내의 가용한 버퍼들의 레벨 및 상기 아우라에 할당된 버퍼들의 레벨을 포함하는, 상기 상태를 결정하는 단계; 및
    상기 풀의 상기 결정된 상태 및 상기 아우라에 대한 상기 구성 파라미터들에 따라서 상기 패킷에 대한 서비스 품질을 결정하는 단계를 포함하는, 서비스 품질의 가상화를 위한 방법.
  2. 제 1 항에 있어서,
    상기 패킷에 대한 서비스 품질을 결정하는 단계는,
    상기 풀 내의 가용한 버퍼들의 상기 결정된 레벨을 제 1 임계치와 비교하는 단계;
    상기 아우라에 할당된 버퍼들의 상기 결정된 레벨을 제 2 임계치와 비교하는 단계; 및
    상기 풀 내의 가용한 버퍼들의 상기 결정된 레벨이 상기 제 1 임계치를 넘는 (cross) 경우 및/또는 상기 아우라에 할당된 버퍼들의 상기 결정된 레벨이 상기 제 2 임계치를 넘는 경우에 인터럽트 (interrupt) 를 제공하는 단계를 포함하는, 서비스 품질의 가상화를 위한 방법.
  3. 제 2 항에 있어서,
    상기 제공된 인터럽트 및 상기 제 1 임계치 및/또는 상기 제 2 임계치를 넘는 방향에 따라서 상기 풀에 리소스들을 부가하거나 상기 풀로부터 리소스들을 제거하는 단계를 더 포함하고;
    상기 제 1 임계치가 상기 제 1 임계치보다 보다 작은 값으로부터 상기 제 1 임계치보다 보다 큰 레벨로 넘어갈 때 그리고/또는 상기 제 2 임계치가 상기 제 2 임계치보다 보다 작은 값으로부터 상기 제 2 임계치보다 보다 큰 레벨로 넘어갈 때 상기 리소스들은 상기 풀로부터 제거되고; 그리고
    그 외에는 상기 리소스들은 부가되는, 서비스 품질의 가상화를 위한 방법.
  4. 제 1 항에 있어서,
    상기 패킷에 대한 서비스 품질을 결정하는 단계는,
    상기 풀 내의 가용한 버퍼들의 상기 결정된 레벨을 상기 버퍼들의 풀과 관련된 아우라 레벨들의 상기 구성 파라미터들의 값과 비교하는 단계;
    상기 아우라에 할당된 아우라 버퍼들의 상기 결정된 레벨을 상기 아우라에 할당된 상기 버퍼들과 관련된 아우라 레벨들의 구성 파라미터들의 값과 비교하는 단계; 및
    상기 비교의 결과에 따라서 상기 패킷에 대한 서비스 품질을 결정하는 단계를 포함하는, 서비스 품질의 가상화를 위한 방법.
  5. 제 4 항에 있어서,
    상기 비교의 결과에 따라서 상기 패킷에 대한 서비스 품질을 결정하는 단계는,
    상기 풀 내의 가용한 상기 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 의 값보다 작거나,
    상기 아우라에 할당된 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_CNT_LIMIT 의 값보다 크거나,
    상기 아우라에 할당된 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_CNT_LEVELS[DROP] 의 값보다 큰 경우에, 상기 패킷을 드랍시키는 (dropping) 단계를 포함하는, 서비스 품질의 가상화를 위한 방법.
  6. 제 4 항에 있어서,
    상기 비교의 결과에 따라서 상기 패킷에 대한 서비스 품질을 결정하는 단계는,
    상기 풀 내의 가용한 상기 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 의 값과 상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[PASS] 의 값 사이에 있거나,
    상기 아우라에 할당된 상기 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_CNT_LEVELS[DROP] 의 값과 상기 결정된 구성 파라미터 AURA_CNT_LEVELS[PASS] 의 값 사이에 있는 경우에, 상기 패킷의 랜덤 조기 폐기 (random early discard) 를 수행하는 단계를 포함하는, 서비스 품질의 가상화를 위한 방법.
  7. 제 6 항에 있어서,
    상기 패킷의 랜덤 조기 폐기를 수행하는 단계는,
    상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[PASS] 의 값 및 상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 의 값의 제 1 함수로서 제 1 드랍 확률 (drop probability) 을 계산하는 단계;
    상기 결정된 구성 파라미터 AURA_CNT_LEVELS[PASS] 의 값 및 상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 의 값의 제 2 함수로서 제 2 드랍 확률을 계산하는 단계;
    상기 계산된 제 1 드랍 확률 및 상기 계산된 제 2 드랍 확률을 결합하는 (combining) 단계;
    의사 난수 (pseudorandom number) 를 생성하는 단계; 및
    상기 결합된 드랍 확률들을 상기 의사 난수와 비교한 결과에 따라서 랜덤 조기 폐기를 수행하는 단계를 포함하는, 서비스 품질의 가상화를 위한 방법.
  8. 제 7 항에 있어서,
    상기 계산된 제 1 드랍 확률 및 상기 계산된 제 2 드랍 확률을 결합하는 (combining) 단계는,
    상기 제 1 드랍 확률 및 상기 제 2 드랍 확률 중 큰 것을 취하는 단계를 포함하는, 서비스 품질의 가상화를 위한 방법.
  9. 제 7 항에 있어서,
    상기 패킷의 랜덤 조기 폐기를 수행하는 단계는,
    상기 의사 난수가 상기 결합된 드랍 확률들보다 작거나 동일한 경우에 상기 패킷을 드랍시키는 단계를 포함하는, 서비스 품질의 가상화를 위한 방법.
  10. 제 7 항에 있어서,
    상기 패킷의 랜덤 조기 폐기를 수행하는 단계는,
    상기 의사 난수가 상기 결합된 드랍 확률들보다 작은 경우에 상기 패킷을 드랍시키는 단계를 포함하는, 서비스 품질의 가상화를 위한 방법.
  11. 제 4 항에 있어서,
    상기 비교 결과에 따라서 상기 패킷에 대한 서비스 품질을 결정하는 단계는,
    상기 풀 내의 가용한 상기 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[BP] 의 값보다 작거나,
    상기 아우라에 할당된 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_CNT_LEVELS[BP] 의 값보다 작은 경우에, 백프레셔 (backpressure) 를 적용하는 단계를 포함하는, 서비스 품질의 가상화를 위한 방법.
  12. 제 11 항에 있어서,
    상기 백프레셔를 적용하는 단계는,
    백프레셔를 요청하는 모든 아우라들의 상기 아우라 식별자를 백프레셔 표시자에 맵핑하는 단계;
    상기 백프레셔 표시자를 상기 인터페이스의 하나 이상의 채널들 상으로 맵핑하는 단계; 및
    상기 백프레셔 표시자에 따라서 상기 백프레셔를 적용하는 단계를 포함하는, 서비스 품질의 가상화를 위한 방법.
  13. 서비스 품질 (quality of service) 의 가상화를 위한 장치에 있어서,
    인터페이스에서 수신된 패킷을, 상기 패킷의 스트럭처의 내부 필드들의 정보와 상기 패킷의 스트럭처 외부의 정보를 평가함으로써, 아우라 식별자를 통해서 아우라와 연관시키도록 구성된 파서 (parser); 및
    상기 파서에 통신되게 접속된 아우라 관리 엔티티로서, 상기 아우라 관리 엔티티는,
    상기 아우라에 할당될 수도 있는 버퍼들의 최대 수를 식별하는 파라미터 (AURA_CNT_LIMIT), 특정한 시간에 할당된 버퍼들의 수를 식별하는 파라미터 (AURA_CNT), 및 가용한 버퍼들의 상기 풀에 관련된 아우라 레벨을 식별하는 파라미터 (AURA_POOL_LEVELS) 를 포함하는, 상기 아우라에 대한 구성 파라미터들을 결정하고,
    상기 아우라에 대한 버퍼들의 풀을 결정하고,
    상기 풀의 리소스들 (resources) 의 상태를 결정하고,
    상기 풀의 상기 결정된 상태 및 상기 아우라에 대한 상기 구성 파라미터들에 따라서 상기 패킷에 대한 서비스 품질을 결정하도록 구성되고,
    상기 리소스들은 상기 풀 내의 가용한 버퍼들의 레벨 및 상기 아우라에 할당된 버퍼들의 레벨을 포함하는, 서비스 품질의 가상화를 위한 장치.
  14. 제 13 항에 있어서,
    상기 아우라 관리 엔티티는,
    상기 풀 내의 가용한 버퍼들의 상기 결정된 레벨을 제 1 임계치와 비교하고;
    상기 아우라에 할당된 버퍼들의 상기 결정된 레벨을 제 2 임계치와 비교하고;
    상기 풀 내의 가용한 버퍼들의 상기 결정된 레벨이 상기 제 1 임계치를 넘는 (cross) 경우 및/또는 상기 아우라에 할당된 상기 버퍼들의 상기 결정된 레벨이 상기 제 2 임계치를 넘는 경우에 인터럽트를 제공하도록 구성됨으로써, 상기 패킷에 대한 서비스 품질을 결정하는, 서비스 품질의 가상화를 위한 장치.
  15. 제 14 항에 있어서,
    상기 제공된 인터럽트 및 상기 제 1 임계치 및/또는 상기 제 2 임계치를 넘는 방향에 따라서 상기 풀에 리소스들을 부가하거나 상기 풀로부터 리소스들을 제거하기 위한 수단을 더 포함하고;
    상기 제 1 임계치가 상기 제 1 임계치보다 보다 작은 값으로부터 상기 제 1 임계치보다 보다 큰 레벨로 넘어갈 때 그리고/또는 상기 제 2 임계치가 상기 제 2 임계치보다 보다 작은 값으로부터 상기 제 2 임계치보다 보다 큰 레벨로 넘어갈 때 상기 리소스들은 상기 풀로부터 제거되고; 그리고
    그 외에는 상기 리소스들은 부가되는, 서비스 품질의 가상화를 위한 장치.
  16. 제 13 항에 있어서,
    상기 아우라 관리 엔티티는,
    상기 풀 내의 가용한 버퍼들의 상기 결정된 레벨을 상기 버퍼들의 상기 풀과 관련된 아우라 레벨들의 상기 결정된 구성 파라미터들의 값과 비교하고;
    상기 아우라에 할당된 아우라 버퍼들의 상기 결정된 레벨을 상기 아우라에 할당된 상기 버퍼들과 관련된 아우라 레벨들의 구성 파라미터들의 값과 비교하고; 그리고
    상기 비교의 결과에 따라서 상기 패킷에 대한 서비스 품질을 결정하도록 구성됨으로써, 상기 패킷에 대한 서비스 품질을 결정하는, 서비스 품질의 가상화를 위한 장치.
  17. 제 16 항에 있어서,
    상기 아우라 관리 엔티티는,
    상기 풀 내의 가용한 상기 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 의 값보다 작거나,
    상기 아우라에 할당된 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_CNT_LIMIT 의 값보다 크거나,
    상기 아우라에 할당된 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_CNT_LEVELS[DROP] 의 값보다 큰 경우에,
    상기 패킷을 드랍시키도록 구성됨으로써, 상기 패킷에 대한 서비스 품질을 결정하는, 서비스 품질의 가상화를 위한 장치.
  18. 제 16 항에 있어서,
    상기 아우라 관리 엔티티는,
    상기 풀 내의 가용한 상기 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 의 값과 상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[PASS] 의 값 사이에 있거나,
    상기 아우라에 할당된 상기 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_CNT_LEVELS[DROP] 의 값과 상기 결정된 구성 파라미터 AURA_CNT_LEVELS[PASS] 의 값 사이에 있는 경우에, 상기 패킷의 랜덤 조기 폐기를 수행하도록 구성됨으로써, 상기 패킷에 대한 서비스 품질을 결정하는, 서비스 품질의 가상화를 위한 장치.
  19. 제 18 항에 있어서,
    상기 아우라 관리 엔티티는,
    상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[PASS] 의 값 및 상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 의 값의 제 1 함수로서 제 1 드랍 확률 (drop probability) 을 계산하며;
    상기 결정된 구성 파라미터 AURA_CNT_LEVELS[PASS] 의 값 및 상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[DROP] 의 값의 제 2 함수로서 제 2 드랍 확률 (drop probability) 을 계산하며;
    상기 계산된 제 1 드랍 확률 및 상기 계산된 제 2 드랍 확률을 결합하며;
    의사 난수를 생성하며; 그리고
    상기 결합된 드랍 확률들을 상기 의사 난수와 비교한 결과에 따라서 랜덤 조기 폐기를 수행하도록 구성됨으로써, 상기 패킷의 랜덤 조기 폐기를 수행하는, 서비스 품질의 가상화를 위한 장치.
  20. 제 19 항에 있어서,
    상기 아우라 관리 엔티티는,
    상기 제 1 드랍 확률 및 상기 제 2 드랍 확률 중 큰 것을 취하도록 구성됨으로써, 상기 계산된 제 1 드랍 확률 및 상기 계산된 제 2 드랍 확률을 결합하는, 서비스 품질의 가상화를 위한 장치.
  21. 제 19 항에 있어서,
    상기 아우라 관리 엔티티는,
    상기 의사 난수가 상기 결합된 드랍 확률들보다 작거나 동일한 경우에 상기 패킷을 드랍시키도록 구성됨으로써, 상기 패킷의 랜덤 조기 폐기를 수행하는, 서비스 품질의 가상화를 위한 장치.
  22. 제 19 항에 있어서,
    상기 아우라 관리 엔티티는,
    상기 의사 난수가 상기 결합된 드랍 확률들보다 작은 경우에 상기 패킷을 드랍시키도록 구성됨으로써, 상기 패킷의 랜덤 조기 폐기를 수행하는, 서비스 품질의 가상화를 위한 장치.
  23. 제 16 항에 있어서,
    상기 아우라 관리 엔티티는,
    상기 풀 내의 가용한 상기 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_POOLS_LEVELS[BP] 의 값보다 작거나,
    상기 아우라에 할당된 상기 버퍼들의 상기 결정된 레벨이 상기 결정된 구성 파라미터 AURA_CNT_LEVELS[BP] 의 값보다 작은 경우에,
    백프레셔 (backpressure) 를 적용하도록 구성됨으로써, 상기 패킷에 대한 서비스 품질을 결정하는, 서비스 품질의 가상화를 위한 장치.
  24. 제 23 항에 있어서,
    상기 아우라 관리 엔티티는,
    백프레셔를 요청하는 모든 아우라들의 상기 아우라 식별자를 백프레셔 표시자에 맵핑하고;
    상기 백프레셔 표시자를 상기 인터페이스의 하나 이상의 채널들 상으로 맵핑하고; 그리고
    상기 백프레셔 표시자에 따라서 상기 백프레셔를 적용하도록 구성됨으로써, 상기 백프레셔를 적용하는, 서비스 품질의 가상화를 위한 장치.
KR1020140164241A 2013-12-25 2014-11-24 서비스 품질의 가상화를 위한 방법 및 장치 KR101698648B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/140,503 2013-12-25
US14/140,503 US9379992B2 (en) 2013-12-25 2013-12-25 Method and an apparatus for virtualization of a quality-of-service

Publications (2)

Publication Number Publication Date
KR20150075356A KR20150075356A (ko) 2015-07-03
KR101698648B1 true KR101698648B1 (ko) 2017-01-20

Family

ID=53401365

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140164241A KR101698648B1 (ko) 2013-12-25 2014-11-24 서비스 품질의 가상화를 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US9379992B2 (ko)
KR (1) KR101698648B1 (ko)
CN (1) CN104750539B (ko)
HK (1) HK1207719A1 (ko)
TW (1) TWI571076B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9571426B2 (en) * 2013-08-26 2017-02-14 Vmware, Inc. Traffic and load aware dynamic queue management
US11010165B2 (en) 2019-03-12 2021-05-18 Marvell Asia Pte, Ltd. Buffer allocation with memory-based configuration
US11513958B1 (en) 2019-05-29 2022-11-29 Marvell Asia Pte, Ltd. Shared mid-level data cache
US11327890B1 (en) 2019-05-29 2022-05-10 Marvell Asia Pte, Ltd. Partitioning in a processor cache
US11093405B1 (en) 2019-05-29 2021-08-17 Marvell Asia Pte, Ltd. Shared mid-level data cache
US11036643B1 (en) 2019-05-29 2021-06-15 Marvell Asia Pte, Ltd. Mid-level instruction cache
US11379368B1 (en) 2019-12-05 2022-07-05 Marvell Asia Pte, Ltd. External way allocation circuitry for processor cores

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140105218A1 (en) 2012-10-12 2014-04-17 Prashant H. Anand Queue monitoring to filter the trend for enhanced buffer management and dynamic queue threshold in 4g ip network/equipment for better traffic performance
US8862560B1 (en) 2010-06-21 2014-10-14 Emc Corporation Compression system pause and auto-resume

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781801A (en) * 1995-12-20 1998-07-14 Emc Corporation Method and apparatus for receive buffer management in multi-sender communication systems
TW374967B (en) * 1998-06-22 1999-11-21 Winbond Electronics Corp Ethernet switch having shared memory structure and method of the shared memory
GB2372172B (en) * 2001-05-31 2002-12-24 Ericsson Telefon Ab L M Congestion handling in a packet data network
US6842619B2 (en) * 2001-07-19 2005-01-11 Ericsson Inc. Telecommunications system and method for load sharing within a code division multiple access 2000 network
US7093024B2 (en) * 2001-09-27 2006-08-15 International Business Machines Corporation End node partitioning using virtualization
US6954435B2 (en) * 2002-04-29 2005-10-11 Harris Corporation Determining quality of service (QoS) routing for mobile ad hoc networks
US8130661B2 (en) * 2003-08-01 2012-03-06 Opnet Technologies, Inc. Systems and methods for intelligent probe testing
US7165131B2 (en) * 2004-04-27 2007-01-16 Intel Corporation Separating transactions into different virtual channels
FI20055104A0 (fi) * 2004-05-19 2005-03-04 Nokia Corp Menetelmä tiedon siirtämiseksi telekommunikaatiojärjestelmässä ja verkkoelementti
FI20045182A0 (fi) * 2004-05-19 2004-05-19 Nokia Corp Tiedonsiirto UMTS järjestelmässä
US7535907B2 (en) * 2005-04-08 2009-05-19 Oavium Networks, Inc. TCP engine
CN101860475B (zh) * 2010-04-02 2013-04-03 北京邮电大学 基于上下文感知的自治队列管理的方法
US8792491B2 (en) * 2010-08-12 2014-07-29 Citrix Systems, Inc. Systems and methods for multi-level quality of service classification in an intermediary device
CN103139103B (zh) * 2011-12-02 2015-11-04 京信通信***(中国)有限公司 一种网络拥塞的控制方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8862560B1 (en) 2010-06-21 2014-10-14 Emc Corporation Compression system pause and auto-resume
US20140105218A1 (en) 2012-10-12 2014-04-17 Prashant H. Anand Queue monitoring to filter the trend for enhanced buffer management and dynamic queue threshold in 4g ip network/equipment for better traffic performance

Also Published As

Publication number Publication date
HK1207719A1 (en) 2016-02-05
US20150180793A1 (en) 2015-06-25
CN104750539B (zh) 2017-07-28
TWI571076B (zh) 2017-02-11
US9379992B2 (en) 2016-06-28
CN104750539A (zh) 2015-07-01
TW201528734A (zh) 2015-07-16
KR20150075356A (ko) 2015-07-03

Similar Documents

Publication Publication Date Title
KR101698648B1 (ko) 서비스 품질의 가상화를 위한 방법 및 장치
US11422839B2 (en) Network policy implementation with multiple interfaces
US10735325B1 (en) Congestion avoidance in multipath routed flows
US11736402B2 (en) Fast data center congestion response based on QoS of VL
US20240195740A1 (en) Receiver-based precision congestion control
US9634938B2 (en) Adaptive scheduling of data flows in data center networks for efficient resource utilization
JP6420354B2 (ja) 優先度および帯域幅割り当てに基づくトラフィッククラスアービトレーション
US10554554B2 (en) Hybrid network processing load distribution in computing systems
US11394649B2 (en) Non-random flowlet-based routing
US8929253B2 (en) Virtual switching ports on high-bandwidth links
US10097467B1 (en) Load balancing for multipath groups routed flows by re-associating routes to multipath groups
WO2015114473A1 (en) Method and apparatus for locality sensitive hash-based load balancing
US10819640B1 (en) Congestion avoidance in multipath routed flows using virtual output queue statistics
US20160285771A1 (en) Technique for achieving low latency in data center network environments
WO2014108773A1 (en) Low-latency lossless switch fabric for use in a data center
US10715424B2 (en) Network traffic management with queues affinitized to one or more cores
US20220311711A1 (en) Congestion control based on network telemetry
US10747577B2 (en) Performance characterization for datacenters
US10616116B1 (en) Network traffic load balancing using rotating hash
US20230239244A1 (en) Heavy hitter flow detection
US10228852B1 (en) Multi-stage counters
CN112511449A (zh) 一种报文流乱序检测方法、报文处理方法及装置
CN116647883B (zh) 增强型虚拟信道切换
CN116567116A (zh) 报文处理方法、装置、可编程交换机、***、设备和介质
CN116647883A (zh) 增强型虚拟信道切换

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200107

Year of fee payment: 4