KR101617210B1 - 입력/출력 디바이스에서 할당 스위치 아이덴티피케이션을 사용하는 기술 - Google Patents

입력/출력 디바이스에서 할당 스위치 아이덴티피케이션을 사용하는 기술 Download PDF

Info

Publication number
KR101617210B1
KR101617210B1 KR1020147027286A KR20147027286A KR101617210B1 KR 101617210 B1 KR101617210 B1 KR 101617210B1 KR 1020147027286 A KR1020147027286 A KR 1020147027286A KR 20147027286 A KR20147027286 A KR 20147027286A KR 101617210 B1 KR101617210 B1 KR 101617210B1
Authority
KR
South Korea
Prior art keywords
data
identification information
identification
tag
switch
Prior art date
Application number
KR1020147027286A
Other languages
English (en)
Other versions
KR20140139522A (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 KR20140139522A publication Critical patent/KR20140139522A/ko
Application granted granted Critical
Publication of KR101617210B1 publication Critical patent/KR101617210B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • 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/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3015Name registration, generation or assignment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

호스트 디바이스에 결합되는 입력/출력 디바이스에서 수신되는 데이터에 스위치 아이덴티피케이션을 할당하는 예들이 개시된다. 일부 예들에서, 데이터는 호스트 디바이스에서 구현되는 가상 머신에 대한 가상 스테이션 인터페이스(VSI)와 연관될 수 있다. 이 예들의 경우, 스위치 아이덴티피케이션은 할당되는 포트 식별자, 데이터에 대한 아이덴티피케이션 정보 또는 아이덴티피케이션 정보의 적어도 일부분의 발신자에 기초하여 데이터에 할당될 수 있다. 할당 스위치 아이덴티피케이션은 그 후에 입력/출력 디바이스에서 데이터를 프로세싱하는 하나 이상의 액션들을 결정하기 위하여 검색표의 일부로서 사용될 수 있다. 다른 예들이 개시되고 청구된다.

Description

입력/출력 디바이스에서 할당 스위치 아이덴티피케이션을 사용하는 기술{TECHNIQUES FOR USING AN ASSIGNED SWITCH IDENTIFICATION AT AN INPUT/OUTPUT DEVICE}
본 발명은 입력/출력 디바이스에서 할당 스위치 아이덴티피케이션(assigned switch identification)을 사용하는 기술에 관한 것이다.
네트워크 인터페이스 카드(network interface card; NIC)와 같은 입력/출력(input/output; I/O) 디바이스는 서버 도메인이 끝나고 외부 네트워크 도메인이 시작되는 서버 네트워크 에지(server network edge)에 배치되는 컴퓨팅 플랫폼 또는 호스트 디바이스(host device)에 결합될 수 있다. 이 유형들의 환경들 내의 NIC에서 스위치 로직(logic) 또는 회로소자를 구현하는 공지되어 있는 방법은 검색표들의 세트의 사용을 통하는 것이다. 검색표들은 패킷 헤더와 같은 데이터의 부분을 식별할 수 있고 그 후에 액션들이 패킷 헤더에 기초하여 검색표 내에 정의될 수 있다. 검색표들은 전형적으로 단일 스위치 인스턴스(instance)를 통해 모든 포트들을 접속시키는 스위치 회로소자를 구현하는 NIC에서 양호하게 작용한다.
국제 전기 전자 기술자 협회(Institute of Electrical and Electronics Engineers: IEEE)에 의해 제안된 표준은 많은 스위치들을 에지 가상 브릿징(Edge Virtual Bridging; EVB)의 일부로서 구현하는 것을 기술한다. 제안된 표준은 "IEEE Standard for Local and Metropolitan Area Networks - Virtual Bridged Local Area Networks - Amendment Edge Virtual Bridging"의 명칭을 가지며 2012년 1월 30일에 출간된 IEEE 802.1Qbg, 드래프트 2.1로서 식별된다. IEEE 802.Qbg에 따라 동작하는 NIC는 이더넷 포트와 연관되는 각 로직 또는 가상 포트 별로 별개의 전용 스위치 인스턴스들을 구현할 필요가 있을 수 있다. 또한, NIC는 가상 머신(virtual machine; VM)들을 포함할 수 있는 호스트 디바이스(host device)에서 프로세싱 요소들 사이의 내부 트래픽에 대한 추가 로컬 스위치 인스턴스들을 구현할 필요가 있을 수 있다. 더욱이, 캐스케이딩(cascading)된 스위치 인스턴스들은 단일 이더넷 포트 내에 가상 이더넷 브릿지(Virtual Ethernet Bridge; VEB) 또는 가상 이더넷 포트 집합기(Virtual Ethernet Port Aggregator; VEPA)를 구현할 필요가 있을 수 있다. 이 다수의 스위치 인스턴스들의 경우 각 스위치 인스턴스 별로 별개의 검색표들을 사용하는 것은 상당한 양의 NIC 자원들을 요구할 수 있다.
본 발명의 목적은 상술한 문제를 해결하는 것이다.
본 발명의 하나의 양태에 따르면, 호스트 디바이스(host device)에 결합되는 입력/출력 디바이스에서 수신되는 데이터에 스위치 아이덴티피케이션(switch identification)을 할당하는 예들이 개시된다. 일부 예들에서, 데이터는 호스트 디바이스에서 구현되는 가상 머신에 대한 가상 스테이션 인터페이스(Virtual station interface; VSI)와 연관될 수 있다. 이 예들의 경우, 스위치 아이덴티피케이션은 할당되는 포트 식별자, 데이터에 대한 아이덴티피케이션 정보 또는 아이덴티피케이션 정보의 적어도 일부분의 발신자(originator)에 기초하여 데이터에 할당될 수 있다. 할당 스위치 아이덴티피케이션은 그 후에 입력/출력 디바이스에서 데이터를 프로세싱하는 하나 이상의 액션(action)들을 결정하기 위하여 검색표의 일부로서 사용될 수 있다.
도 1은 예시 시스템을 도시하는 도면이다.
도 2는 예시 스위치 아이덴티피케이션 구조를 도시하는 도면이다.
도 3은 예시 할당 스위치 아이덴티피케이션 표를 도시하는 도면이다.
도 4는 예시 검색표를 도시하는 도면이다.
도 5는 스위치 관리자에 대한 예시 아키텍처의 블록도를 도시하는 도면이다.
도 6은 스위치 아이덴티피케이션을 할당하는 예시 흐름도를 도시하는 도면이다.
도 7은 호스트 디바이스에 대한 예시 시스템도를 도시하는 도면이다.
본 발명에서 고려되는 바와 같이, EVB를 구현할 때의 다수의 스위치 인스턴스들은 스위치 인스턴스 별로 별개의 검색표들을 사용할 때 상당한 양의 NIC 자원들을 요구할 수 있다. 또한 가상 스위칭 환경에서의 스위치 인스턴스들은 동적 구성들과 연관될 수 있다. 동적 구성들의 결과로서, 각 가능한 스위치 인스턴스 별로 별개의 검색표를 할당하는 것은 너무 많은 자원들을 요구할 수 있고 또한 이 별개의 검색표들을 지원하기 위해서 소정의 NIC가 제한된 자원들을 가지므로 가능한 구성들을 제한할 수 있다.
일부 예들에서, 호스트 디바이스에 결합되는 입력/출력 디바이스에서 수신되는 데이터에 스위치 아이덴티피케이션을 할당하는 기술들이 구현된다. 이 예들에서, 데이터는 I/O 디바이스에서 유지되는 가상 스테이션 인터페이스(virtual station interface; VSI)와 연관될 수 있고, VSI는 호스트 디바이스에서 구현되는 가상 머신에 통신가능하게 결합될 수 있다. 이 예들의 경우, 데이터는 네트워크 통신 링크를 통해 I/O 디바이스에 결합될 수 있는 가상 머신 또는 네트워크 요소 중 하나로부터 송신되었을 수 있다. 스위치 아이덴티피케이션은 I/O 디바이스에서 데이터가 수신되는 포트에 대해 할당되는 포트 식별자, 데이터에 대한 아이덴티피케이션 정보 및 아이덴티피케이션 정보의 적어도 일부의 발신자에 기초하여 데이터에 할당될 수 있다. 할당 스위치 아이덴티피케이션은 I/O 디바이스에서 데이터를 프로세싱하는 하나 이상의 액션들을 결정하기 위하여 검색표의 일부로서 사용될 수 있다.
도 1은 예시 제 1 시스템을 도시한다. 예시 제 1 시스템은, 도 1에 도시되는 바와 같이, 시스템(100)을 포함한다. 시스템(100)은 입력/출력(I/O) 디바이스(140)에 결합되는 호스트 디바이스(101)를 포함할 수 있다. 도 1에 도시되는 바와 같이, I/O 디바이스(140)는 가상 스위치(virtual switch; V.S.)들(141, 143, 146, 147, 148 및 149)에 포함되는 다양한 가상 스테이션 인터페이스(virtual station interface; VSI)들(111D, 112D, 113A, 114B, 115C, 116D, 117E 및 118x)('x'는 아직 설정되지 않은 데이터 채널과의 연관성을 표시한다)을 통해 호스트 디바이스(101)에 결합될 수 있다. 이 가상 스위치들과 함께 포함되는 다양한 VSI들은 도 1에 도시되는 바와 같이 가상 머신(virtual machine; VM)들(111 내지 118)에 결합되도록 별개로 구성될 수 있고 데이터(예를 들어, 데이터 패킷들 또는 데이터 프레임들의 형태인)가 VM들(111 내지 118)로부터 수신되거나 VM들(111 내지 118)로 송신/전송되는 것을 가능하게 할 수 있다. 이 예들의 경우, VM들(111 내지 118)은 호스트 디바이스(101)에서 유지되는 컴퓨팅 자원들을 사용하여 구현되도록 구성되거나 구성될 수 있다. 임의의 수의 가상 스위치들은 임의의 수의 VM들 및/또는 가상 머신 관리자들(하이퍼바이저(hypervisor)들)에 통신가능하게 결합되도록 임의의 수의 VSI들과 연관될 수 있다.
일부 예들에 따르면, 도 1에 도시되는 바와 같이, 로직 포트(L-포트)(141-D)는 가상 스위치(141)에 포함되는 것으로 도시된다. L-포트(141-D)는 데이터 채널 D에 결합될 수 있는 로직 포트 역할을 할 수 있다. 아래에서 더 언급되는 바와 같이, 데이터 채널 D는 VM(111) 및 VM(112) 사이의 데이터를 라우팅하도록 구성될 수 있다. 데이터의 라우팅은 예를 들어, 도 1에 도시되는 바와 같이, 각각의 VSI들(111 및 112)을 통할 수 있다.
또한, 도 1에 도시되는 바와 같이, 통신 링크들(150-1 내지 150-4)은 네트워크(들)(160)에 포함되는 네트워크 요소들을 각각의 포트들(130-1 내지 130-4)을 통해 호스트 디바이스(101)에 결합할 수 있다. 일부 예들에서, 포트들(130-1 내지 130-4)은 데이터(예를 들어, 데이터 패킷들 또는 프레임들의 형태인)가 I/O 디바이스(140)에서 또는 I/O 디바이스(140)로부터 수신 또는 송신/전송될 수 있는 물리적 커넥터 또는 포트를 나타낼 수 있다. I/O 디바이스(140)는 또한 포트 연장기(port extender)(144)를 포함하는 것으로 도시된다. 일부 예들에 따르면, 도 1에 도시되는 바와 같이, 포트 연장기(144)는 E-포트(144-1C) 및 E-포트(144-2D)를 포함할 수 있다. 이 예들의 경우, 포트 연장기(144)는 데이터를 E-포트(144-1C) 및 E-포트(144-2D)를 통해 가상 스위치들(146 및 147)로/로부터 라우팅하기 위하여 물리 포트(103-2)가 적어도 2개의 연장기/로직 포트들로 연장되는 것을 가능하게 할 수 있다.
일부 예들에서, 도 1에 도시되는 바와 같이, I/O 디바이스(140)는 스위치 관리자(142)를 포함한다. 아래에서 더 기술되는 바와 같이, 스위치 관리자(142)는 스위치 아이덴티피케이션을 I/O 디바이스(140)에서 수신되는 데이터로 할당하는 로직 및/또는 피처(feature)들을 포함할 수 있다. 이 예들의 경우, 데이터는 도 1에 도시되는 다양한 포트들 중에서부터의 한 포트에서 수신될 수 있다. 할당 스위치 아이덴티피케이션들은 그 후에 I/O 디바이스(140)에서 데이터를 프로세싱하기 위한(예를 들어, 전송, 암호/보안 프로세싱 등) 하나 이상의 액션들을 결정하는 검색표의 일부로서 사용될 수 있다.
일부 예들에 따르면, I/O 디바이스(140)는 "Standard for Local and Metropolitan Area Networks - Virtual Bridged Local Area Networks - Bridge Port Extension"의 명칭을 가지는 제안된 IEEEE 표준(후속들 및 변형들을 포함하는)의 적어도 일부 양태들에 따라 동작하거나 상기 양태들을 구현하도록 구성되고 2012년 1월 25일에 발행된 IEEE 802/1BR, 드래프트 3.2(이후에, "IEEE 802.1BR")로서 식별될 수 있다. 이 예들의 경우, I/O 디바이스(140)는 또한 제안되는 IEEE 802.1Qbg 표준(후속들 및 변형들을 포함하는)의 적어도 일부의 양태들에 부합하여 동작하거나 상기 양태들을 구현하도록 구성될 수 있다. IEEE 802.1Qbg 또는 IEEE 802.1BR의 구현의 일부로서, 데이터를 호스트 디바이스(101) 상의 가상 머신들 사이에서 로컬로(locally) 또는 네트워크(들)(160)에 위치되는 네트워크 요소들로 전역으로(globally) 라우팅하는 다양한 데이터 채널들이 설정될 수 있다.
일부 예들에서, 도 1에 도시되는 바와 같이, 다양한 설정된 데이터 채널들은 데이터 채널들(A 내지 E)로서 식별된다. 이 예들의 경우에, VM들(111 내지 116)에 결합되는 다양한 VSI들은 가상 머신(118)에 결합되는 VSI(118x)를 제외하고 데이터 채널들(A, B, C, D 또는 E)과 연관된다. VSI(118x)는 일부 실시예들에서, 설정된 데이터 채널과 아직 연관되지 않는 VSI를 표현할 수 있다. 아래 더 언급되는 바와 같이, VSI(118x)를 통해 라우팅되는 데이터는 결국 VSI(118x)와 데이터 채널을 설정하는 데 사용되는 제어 정보를 포함할 수 있다. 이 예들의 경우에 이 제어 데이터에 대한 디폴트 아이덴티피케이션 또는 태그(tag)는 I/O 디바이스(140)에서 로컬로 발생되거나 기원된 후에 스위치 아이덴티피케이션을 데이터에 할당하는 데 사용될 수 있다.
일부 예들에 따르면, 데이터 채널들은 호스트 디바이스(101)에 위치되는 VM들 사이에서 데이터를 라우팅하거나 또는 네트워크(들)(160)에 위치되는 네트워크 요소들 및 VM들 사이에서 데이터를 라우팅하는 데 사용될 수 있다. 이 예들에서, 이 데이터 채널들을 통해 라우팅되는 데이터에 대한 아이덴티피케이션 정보는 IEEE 802.1Qbg 또는 IEEE 802.1BR에서 기술되는 태그를 포함할 수 있다. 태그는 서비스 태그(S-태그) 또는 브릿지 포트 연장 태그(Bridge Port Extension tag)(E-태그)일 수 있다. 일부 예들에서, S-태그 또는 E-태그는 이 태그들 중 하나를 가지는 데이터가 소정의 채널과 연관될 수 있음을 나타내기 위한 아이덴티피케이션 정보일 수 있다. 이 태그들은 네트워크(들)(160)에서의 네트워크 요소들과 같이, I/O 디바이스(140)에 원격(remote)인 요소들에서 전역적으로 생성 또는 기원될 수 있다.
일부 예들에서, 스위치 관리자(142)는 I/O 디바이스(140)에서 데이터를 수신하도록 구성되는 로직 및/또는 피처들을 포함할 수 있다. 데이터는 VSI와 연관될 수 있고 채널 A와의 연관성을 나타내도록 아이덴티피케이션 정보(예를 들어, S-태그 또는 E-태그)를 가질 수 있다. 도 1에 도시되는 바와 같이, 채널 A에 결합되거나 채널 A와 연관되는 VSI는 VSI(113A)일 수 있다. 이 예들의 경우, VSI(113A)는 VM(113)에 결합되도록 구성되거나 구성 가능할 수 있고 또한 데이터를 VM(113)으로부터 가상 스위치(143)를 통해 라우팅하도록 구성될 수 있다. 일부 예들에 따르면, 데이터가 네트워크(들)(160)에 결합되는 데이터 채널을 통해 라우팅되므로, 데이터는 채널 A에 결합되는 물리 포트(130-1)에서 수신되는 것으로 간주될 수 있다. 스위치 관리자(142)는 포트(130-1)에 할당되는 식별자, 데이터에 대한 아이덴티피케이션 정보(예를 들어, 태그 정보) 및 아이덴티피케이션 정보의 적어도 일부분의 발신자(originator)에 기초하여 스위치 아이덴티피케이션 번호를 데이터에 할당하도록 구성 또는 구성되는 로직 및/또는 피처들을 포함할 수 있다. 스위치 아이덴티피케이션 정보는 그 후에 I/O 디바이스(140)에서 데이터를 프로세싱하는 하나 이상의 액션들을 결정하기 위하여 스위치 관리자(142)의 로직 및/또는 피처들에 의해 검색표의 일부로서 사용될 수 있다.
일부 다른 예들에서, 채널 A와의 연관성을 표시하는 아이덴티피케이션 정보를 가지는 데이터는 I/O 디바이스(140)에서 포트(130-1)를 통하여 수신될 수 있다. 포트(130-1)를 통하여 수신되는 데이터는 그 후에 채널 A를 통해 가상 스위치(143)로 라우팅될 수 있다. 이전에 언급된 바와 같이, VSI(113A)는 VM(113)에 결합될 수 있다. 이 예들의 경우, VSI(113A)는 데이터로 하여금 VM(113)으로 송신 또는 전송되도록 구성될 수 있다. 이 다른 예들의 경우에, 스위치 관리자(142)는 I/O 디바이스(140) 수신 포트(포트(130-1))에 할당되는 식별자, 데이터에 대한 아이덴티피케이션 정보 및 아이덴티피케이션 정보의 적어도 일부분의 발신자에 기초하여 스위치 아이덴티피케이션 번호를 데이터에 할당하도록 구성 또는 구성되는 로직 및/또는 피처들을 포함할 수 있다. 스위치 아이덴티피케이션 정보는 그 후에 I/O 디바이스(140)에서 데이터를 프로세싱하는 하나 이상의 액션들을 결정하기 위하여 스위치 관리자(142)의 로직 및/또는 피처들에 의해 검색표의 일부로서 사용될 수 있다.
일부 예들에서, 데이터는 가상 스위치(141)에서 VM들(111 및 112) 사이에서 데이터 채널 D를 통해 라우팅될 수 있는 I/O 디바이스(140)에 포함되는 포트에서 수신될 수 있다. VM(111)으로부터 VSI(111D)를 통해 L-포트(141-1D)에서 수신되는 데이터는 VM(112)의 목적지를 가질 수 있다. 이 예들의 경우, 포트(141-1D)에서 수신되는 데이터에 대한 아이덴티피케이션 정보는 I/O 디바이스(140)에서(예를 들어, 가상 스위치(141)에서) 기원되는 데이터 채널 아이덴티피케이션 번호를 포함할 수 있다. 데이터 채널 D 아이덴티피케이션 번호는 S-태그 또는 E-태그의 포맷과 유사할 수 있다. 스위치 관리자(142)는 포트(141-1D)에 할당되는 식별자, 로컬로 생성되는 채널 D 아이덴티피케이션 번호 및 아이덴티피케이션 정보의 적어도 일부분의 발신자가 I/O 디바이스(140)에 있었다는 표시에 기초하여 스위치 아이덴티피케이션 번호를 데이터에 할당하도록 구성 또는 구성되는 로직 및/또는 피처들을 포함할 수 있다. 스위치 아이덴티피케이션 정보는 그 후에 I/O 디바이스(140)에서 데이터를 프로세싱하는 하나 이상의 액션들을 결정하기 위하여 스위치 관리자(142)의 로직 및/또는 피처들에 의해 검색표의 일부로서 사용될 수 있다.
일부 예들에서, 가상 스위치(141)는 IEEE 802.1Qbg에 따라 동작하고 가상 이더넷 브릿지(Virtual Ethernet Bridge; VEB)로서 기능하도록 구성될 수 있다.
일부 예들에서, 통신 링크들(150-1 내지 150-4)은 I/O 디바이스(140)를 포트들(130-1 내지 130-4)을 통해 각각 네트워크(들)(160)에 통신가능하게 결합할 수 있다. 통신 링크들(150-1 내지 150-4)은 다양한 유형들의 유선, 무선 또는 광학 통신 매체들을 포함할 수 있다. 이 예들의 경우, 통신 링크들(150-1 내지 150-4)은 하나 이상의 적용 가능한 통신 또는 네트워킹 표준들에 따라 임의의 버전으로 동작될 수 있다. 통신 또는 네트워킹 표준들은 IEEE 802.1Qbg 또는 IEEE 802.1BR을 포함할 수 있으나 이로 제한되지 않는다.
도 2는 예시 스위치 아이덴티피케이션 구조(200)를 도시한다. 일부 예들에서, 스위치 관리자(142)는 스위치 아이덴티피케이션을 I/O 디바이스(140)에서 수신되는 데이터에 할당하기 위하여 스위치 아이덴티피케이션 구조(200)를 사용하는 로직 및/또는 피처들을 포함할 수 있다. 도 2에 도시되는 바와 같이, 스위치 아이덴티피케이션 구조는 필드들(210, 220 및 230)을 포함한다. 일부 예들에서, 필드(210)는 데이터에 대한 아이덴티피케이션 정보의 적어도 일부분에 대한 발신자를 나타낼 수 있다. 필드(220)는 I/O 디바이스(140)에서 데이터가 수신될 수 있는 포트에 대해 할당되는 포트 식별자를 나타낼 수 있다. 필드(230)는 데이터에 대한 아이덴티피케이션 정보를 나타낼 수 있다. 데이터에 대한 아이덴티피케이션 정보는 S-태그들, E-태그들 또는 로컬로 생성/기원되는 디폴트 정보와 같이 데이터 채널 아이덴티피케이션 번호들을 포함할 수 있다.
일부 예들에 따르면, 아이덴티피케이션 정보의 로컬 발신자는 스위치 ID 구조(200)에서 0의 1-비트 이진 값에 의해 표시될 수 있고 전역 발신자는 필드(210)에서 1의 1-비트 값에 의해 표시될 수 있다. 또한, 필드(220)에서 수신되는 포트(#)는 3-비트 값에 의해 표시될 수 있다. 그러므로, 예를 들어, 할당된 "4"의 식별자는 100의 3-비트 이진 값에 의해 표시될 수 있고 할당된 "2"의 식별자는 010의 3-비트 이진 값에 의해 표시될 수 있다. 본 명세서는 필드들(210 또는 220)에 대해 1-비트 또는 3-비트 이진 값들로 각각 제한되지 않는다.
일부 예들에서, 필드(230) 내에 포함되는 데이터에 대한 아이덴티피케이션 정보는 1에서 4096에 이르는 데이터 채널 아이덴티피케이션 번호들을 포함할 수 있다. 또한 S-태그 또는 E-태그 정보는 1에서 4096에 이르는 아이덴티피케이션 번호들을 포함할 수 있다. 이 아이덴티피케이션 번호들은 필드(230)에서 12-비트 이진 값 또는 3-문자 16진(hexadecimal) 값으로 표현될 수 있다. 본 명세서는 필드(230)에 대해 12-비트 이진 또는 3-문자 16진 값으로 또는 1에서 4096에 이르는 수들로 제한되지 않는다.
도 3은 예시 할당 스위치 아이덴티피케이션 표(300)를 도시한다. 일부 예들에서, 할당 스위치 ID 표(300)는 스위치 ID 구조(200)와 연관되는 값이 스위치 아이덴티피케이션들을 데이터에 할당하는 데 어떻게 사용될 수 있는지를 도시한다. 이 예들의 경우에, 할당 스위치 ID 표(300)는 적어도 I/O 디바이스(140)에서 유지되는 메모리(예를 들어, 메모리(145))에 저장될 수 있다. I/O 디바이스(140)의 다양한 가상 스위치들은 할당 스위치 아이덴티피케이션 표(300)의 좌측 열에 기재되고 수신되는 데이터에 대한 할당 스위치 아이덴티피케이션들은 우측의 세 열들에 기재된다.
일부 예들에 따르면, 스위치 관리자(142)는 데이터가 수신되는 포트에 대해 할당되는 포트 식별자, 데이터에 대한 아이덴티피케이션 정보(태그 또는 디폴트 값) 및 아이덴티피케이션 정보의 적어도 일부분의 발신자(로컬 또는 전역)에 기초하여 스위치 아이덴티피케이션을 데이터에 할당하도록 구성 또는 구성되는 로직 및/또는 피처들을 포함할 수 있다. 예를 들어, 가상 스위치(141)는 VM들(111 및 112) 사이에서 라우팅되는 데이터에 대한 아이덴티피케이션 정보를 생성하는 것으로 상술되었다. 그러므로, 0의 값은 가상 스위치(141)에 대한 "로컬/전역" 열에서 표시된다. 또한, 일부 예들에서, 가상 스위치(141)의 L-포트(141-1D)는 1의 포트 번호를 할당받고 가상 스위치(141)에 대한 이 포트 번호는 표(300)에서 001의 이진 값을 가지는 것으로 나타난다. 더욱이, 데이터는 데이터 채널 D를 통해 가상 스위치(141)에 결합되는 VSI들 사이에서 전송될 수 있다. 이 예의 경우, 데이터 채널 D와 연관되는 데이터 채널 아이덴티피케이션은 0x005의 16진 값을 가질 수 있고 이 값은 도 3에서 "아이덴티피케이션 정보" 열에 나타난다.
일부 예들에서, 도 1에서 상술한 바와 같이, 가상 스위치들(143 및 146 내지 148)은 I/O 디바이스(140)에 원격에서 생성 또는 기원되는 아이덴티피케이션 정보를 가지는 데이터를 수신하도록 구성될 수 있다. 그러므로 1의 값은 가상 스위치들(143 및 146 내지 148)에 대한 "로컬/전역" 열에 표시된다. 이 가상 스위치들의 경우 네트워크(들)(160)로부터 수신되는 데이터는 포트들(130-1 내지 130-3)을 통해 수신될 수 있다. 이 세 포트들은 좌에서 우로, 1 내지 3의 포트 번호들을 할당받고(도 1을 참조할 것), 이 포트 번호들은 표(300)에 001, 010 및 011의 이진 값들을 각각 가지는 것으로 도시된다. 더욱이, 데이터는 데이터 채널들 A 내지 E 중 하나를 통해 이 가상 스위치들에 결합되는 VSI들로 전송되거나 또는 상기 VSI들을 통해 라우팅될 수 있다. 일부 예들에 따르면, S-태그는 데이터 채널들 A 내지 E를 통해 수신되는 데이터와 연관될 수 있다. 데이터 채널들 A 내지 E를 통해 수신되는 S-태그는 각각 0x002, 0x003, 0x004, 0x005 및 0x006의 16진 값을 가지는 아이덴티피케이션 번호를 가질 수 있다.
일부 예들에서, 가상 스위치(149)는 포트(130-4)에 결합되는 미할당 데이터 채널 x를 통해 데이터를 수신하도록 구성될 수 있다. 데이터 채널이 할당된 데이터 번호를 가지지 않으므로, 채널 x를 통해 수신되는 데이터에 대한 아이덴티피케이션 정보의 발신자는 로컬로 간주되고 1의 값은 가상 스위치(149)에 대한 "로컬/전역" 열에 표시된다. 도 1에 도시되는 바와 같이, 포트(130-4)는 네트워크(들)(160)에 결합되는 제 4 포트일 수 있다. 일부 예들에 따르면, 포트(130-4)는 "수신되는 포트#" 열에서 표시되는 바와 같이 100의 이진 값을 가지는 4의 포트 번호를 할당받을 수 있다. 또한 "아이덴티피케이션 정보"에 표시되는 0x000의 디폴트 16진 값은 가상 스위치(149)에서 수신되는 데이터가 데이터 채널 아이덴티피케이션 번호와 아직 연관되거나 상기 번호를 할당받을 수 없음을 나타낸다.
일부 예들에 따르면, 표(300)에 도시되는 바와 같이, 가상 스위치(141)에서의 데이터 채널 D 및 가상 스위치(147)에서의 데이터 채널 D에 대한 데이터 채널 아이덴티피케이션 번호는 모두 0x005이다. 그러나, 가상 스위치(141)에서의 데이터 채널 D에 대한 데이터 채널 식별자는 로컬 발신자로부터 온 것이므로, 할당 스위치 아이덴티피케이션은 0의 값을 가지는 로컬 식별자로 인해 가상 스위치(147)에서의 데이터 채널 D에 대해 1의 값을 가지는 전역 식별자와 비교하여 상이하다.
도 4는 예시 검색표(400)를 도시한다. 도 4에 도시되는 바와 같이, 검색표(400)는 할당 스위치 아이덴티피케이션들, VSI 아이덴티피케이션들 및 연관되는 액션들에 대한 열들을 포함한다. 일부 예들에 따르면, 할당 스위치 아이덴티피케이션들은 도 3에 대하여 기술된 바와 같이, 할당 스위치 ID 표(300)에 기초하였을 수 있다. 이 예들의 경우, "로컬/전역" 및 "수신되는 포트#" 열에서의 1-비트 및 3-비트 이진 값들은 4-비트 이진 값을 형성하기 위하여 결합될 수 있고 그러한 4-비트 이진 값은 그 후에 1-문자 16진 값으로 변환될 수 있다. 1-문자 16진 값은 그 후에 할당 스위치 ID 표(300)의 "아이덴티피케이션 정보" 열에 도시되는 3-문자 데이터 특성 값에 제 4 문자로서 추가될 수 있다. 이 결합들의 결과로서, 소정의 할당 스위치 아이덴티피케이션은 검색표(400)에서 도시된 바와 같이 4-문자 16진 값을 가질 수 있다. 예를 들어, 아이덴티피케이션 정보에 대한 전역 발신자를 가지고 I/O 디바이스(140)의 포트(3)에서 수신되는 데이터는 1011의 4-비트 이진 값을 가질 것이고 이 값은 B의 16진 값(또는 11의 십진 값)으로 변환된다.
일부 예들에 따르면, 도 4에 도시되는 바와 같이, 검색표(400)는 가상 로컬 에어리어 네트워크(VLAN)/매체 액세스 제어기(media access controller; MAC) ID를 포함하는 아이덴티피케이션 정보를 표시하기 위하여 "VSI 정보" 열을 포함할 수 있다. 이 예들의 경우, VLAN/MAC ID 정보는 I/O 디바이스(140)에서 수신되는 데이터에 대해 어떤 액션들을 취할지를 더 결정하기 위하여 할당 스위치 ID와 함께 사용될 수 있다.
일부 예들에서, 도 4에 도시되는 바와 같이, 수신되는 데이터는 4-문자 스위치 아이덴티피케이션 번호들을 할당받을 수 있고 스위치 관리자(142)는 I/O 디바이스(140)에 있는 소정의 포트를 통해 수신되는 데이터에 대한 액션을 결정하기 위하여 할당 스위치 아이덴티피케이션들을 검색표(400)의 일부로서 그리고 가능하다면 VLAN/MAC ID 정보를 사용하도록 구성 또는 구성되는 로직 및/또는 피처들을 포함할 수 있다.
일부 예들에 따르면, I/O 디바이스(140)에서 유지되는 스위치 관리자(142)는 메모리(145)에 검색표(400)를 적어도 일시적으로 저장하는 로직 및/또는 피처들을 포함할 수 있다. 이 예들의 경우, 메모리(145)의 적어도 일부분들은 3중 컨텐츠 어드레스 가능 메모리(TCAM)으로서 구성 또는 구성될 수 있다. I/O 디바이스(140)에서 수신되고 소정의 스위치 아이덴티피케이션을 할당받은 데이터는 자체의 각각의 할당 스위치 아이덴티피케이션과 신속하게 연관될 수 있고 대응하는 프로세싱 액션들은 검색표(400)에서 표시된 것에 기초하는 상기 할당 스위치 아이덴티피케이션을 사용하여 신속하게 결정될 수 있다.
일부 예들에서, 검색표(400)에 대하여 도 4에 도시되는 바와 같이, 소정의 스위치 아이덴티피케이션을 할당받은 데이터를 프로세싱하는 액션들은 데이터를 소정의 포트들로 직접적으로 라우팅하는 것을 포함할 수 있다. 예를 들어, 0x1005의 할당 스위치 아이덴티피케이션을 가지는 데이터는 VSI(111D)로 직접적으로 라우팅될 수 있다. 이 데이터는 그 후에 VSI(111D)에서 VM(112)로 전송/송신될 수 있다.
일부 예들에 따르면, 검색표(400)에 대하여 도 4에 도시되는 바와 같이, 소정의 스위치 아이덴티피케이션이 할당된 데이터를 프로세싱하는 액션들은 데이터의 암호화 프로세싱을 수행하고 나서 데이터를 소정의 포트로 라우팅하는 I/O 디바이스(140)(예를 들어, 암호화 프로세서 회로)의 요소들을 포함할 수 있다. 예를 들어, 0x9002의 할당 스위치 아이덴티피케이션을 가지는 데이터는 암호화/복호화를 위해 암호화 프로세서 회로로 전송되고 나서 VSI(113A)로 라우팅될 수 있다. 데이터는 그 후에 VSI(113A)로부터 VM(113)으로 전송/송신될 수 있다.
일부 예들에서, 검색표(400)에 대해 도 4에서 도시되는 바와 같이, 소정의 스위치 아이덴티피케이션이 할당된 데이터를 프로세싱하는 액션들은 데이터의 패킷/프레임 검사 프로세싱을 수행하고 나서 데이터를 소정의 포트로 라우팅하는 I/O 디바이스(140)(예를 들어, 보안 프로세서 회로)의 요소들을 포함할 수 있다. 예를 들어, 0xA005의 할당 스위치 아이덴티피케이션을 가지는 데이터는 패킷/프레임 검사를 위해 보안 프로세서 회로로 전송되고 나서 포트(143-1A)로 라우팅될 수 있다. 데이터는 그 후에 VSI(115D)로부터 VM(115)으로 전송/송신될 수 있다.
도 5는 스위치 관리자(142)에 대한 예시 아키텍처의 블록도를 도시한다. 일부 예들에서, 스위치 관리자(142)는 호스트 디바이스 결합되는 I/O 디바이스에서 수신되는 데이터에 스위치 아이덴티피케이션을 할당하도록 구성 또는 구성되는 피처들 및/또는 로직을 포함한다. 일부 예들에 따르면, 도 5에 도시되는 바와 같이, 스위치 관리자(142)는 스위치 로직(510), 제어 로직(520), 메모리(530) 및 입력/출력(I/O) 인터페이스들(540)을 포함한다. 도 5에 도시되는 바와 같이, 스위치 로직(510)은 제어 로직(520), 메모리(530) 및 I/O 인터페이스들(540)에 결합될 수 있다. 스위치 로직(510)은 수신 피처(512), 할당 피처(514) 또는 검색 피처(516) 또는 이들의 임의의 합리적 결합 중 하나 이상을 포함할 수 있다.
일부 예들에서, 도 5에 도시되는 요소들은 본 명세서 다른 곳에서 기술되는 바와 같이 스위치 관리자(142)를 지원하거나 가능하게 하도록 구성된다. 소정의 스위치 관리자(142)는 도 5에서 도시되는 것들의 일부, 전부 또는 그보다 더 많은 요소들을 포함할 수 있다. 예를 들어, 스위치 로직(510) 및 제어 로직(520)은 스위치 관리자(142)의 피처들을 구현하기 위하여 다양한 로직 디바이스(들) 또는 실행 가능 컨텐츠를 별개로 또는 총칭하여 표현할 수 있다. 예시 로직 디바이스들은 프로세서 회로, 마이크로프로세서, 마이크로컨트롤러, 프로세서 회로, 필드 프로그래머블 게이트 어레이(field programmable gate array; FPGA), 주문형 반도체(application specific integrated circuit; ASIC), 격리 스레드(sequestered thread) 또는 멀티 코어/멀티 스레디드(multi-threaded) 마이크로프로세서의 코어, 암호 블록, 오프로드(offload) 프로세서 또는 이들의 결합 중 하나 이상을 포함할 수 있다.
일부 예들에서, 도 5에 도시되는 바와 같이, 스위치 로직(510)은 수신 피처(512), 할당 피처(514) 또는 검색 피처(516)를 포함한다. 스위치 로직(510)은 동작들을 수행하기 위하여 이들 피처들 중 하나 이상을 사용하도록 구성될 수 있다. 예를 들어, 수신 피처(512)는 I/O 디바이스가 데이터를 수신하는 것을 보조할 수 있다. 할당 피처(514)는 I/O 디바이스에서 데이터가 수신되었던 포트에 대한 할당 포트 식별자, 데이터에 대한 아이덴티피케이션 정보 및 아이덴티피케이션 정보의 적어도 일부분의 발신자에 기초하여 스위치 아이덴티피케이션 번호를 할당할 수 있다. 검색 피처(516)는 I/O 디바이스에서 데이터를 프로세싱하는 하나 이상의 액션들을 결정하기 위하여 할당 스위치 아이덴티피케이션을 검색표의 일부로서 사용할 수 있다.
일부 예들에서, 제어 로직(520)은 스위치 관리자(142)의 전체 동작을 제어하도록 구성될 수 있다. 상술한 바와 같이, 제어 로직(520)은 다양한 로직 디바이스(들) 또는 실행 가능 컨텐츠 중 임의의 하나를 표현할 수 있다. 일부 예들의 경우, 제어 로직(520)은 스위치 관리자(142)의 제어를 구현하기 위하여 실행 가능 컨텐츠 또는 명령들과 함께 동작하도록 구성될 수 있다. 일부 대안의 예들에서, 제어 로직(520)의 피처들 및 기능은 스위치 로직(510) 내에서 구현될 수 있다.
일부 예들에 따르면, 메모리(530)는 제어 로직(520) 및/또는 스위치 로직(510)에 의해 사용되는 실행 가능 컨텐츠 또는 명령들을 저장하도록 구성될 수 있다. 실행 가능 컨텐츠 또는 명령들은 스위치 관리자(142)의 피처들, 요소들 또는 로직을 구현하거나 활성화하는 데 사용될 수 있다. 아래에서 더 설명되는 바와 같이, 메모리(530)는 또한 호스트 디바이스에 결합되는 I/O 디바이스에서 수신되는 데이터에 스위치 아이덴티피케이션 번호들을 할당하는 것과 관련되는 정보를 적어도 일시적으로 유지하도록 구성될 수 있다.
메모리(530)는 플래시 메모리, 프로그램 가능 변수들 또는 상태들, 판독 전용 메모리(read-only memory; ROM), 랜덤 액세스 메모리(random access memory; RAM) 또는 다른 정적 또는 동적 저장 매체 중 하나 이상의 유형들을 포함하나 이로 제한되지 않는 광범위한 비휘발성 메모리 매체를 포함할 수 있다.
일부 예들에서, I/O 인터페이스들(540)은 스위치 관리자(142) 및 호스트 디바이스의 요소들 또는 I/O 디바이스의 요소들 사이의 로컬 통신 매체 또는 링크를 통해 인터페이스를 제공할 수 있다. I/O 인터페이스들(540)은 로컬 통신 매체 또는 링크를 통해 통신하도록 다양한 통신 프로토콜들 또는 표준들에 따라 동작하는 인터페이스들을 포함할 수 있다. 이 통신 프로토콜들 또는 표준들은 상호 집적 회로(Inter-Integrated Circuit; I2C) 사양, 시스템 관리 버스(System Management Bus; SMBus) 사양, 주변 구성요소 상호접속 익스프레스(Peripheral Component Interconnect Express; PCI 익스프레스) 사양, 범용 직렬 버스(Universal Serial Bus; USB) 사양 또는 직렬 고급 기술 결합(Serial Advanced Technology Attachment; SATA) 사양과 연관되는 산업 표준들과 같은 하나 이상의 산업 표준들(후속들 및 변형들을 포함하여)에서 기술될 수 있다. 그러나 본 명세서는 단지 상술한 표준들 및 연관되는 프로토콜들로 제한되지 않는다.
일부 예들에 따르면, I/O 인터페이스들(540)은 스위치 관리자(142) 및 I/O 디바이스에 결합되는 컴퓨터 디바이스에 위치되는 요소들 및/또는 I/O 디바이스에 결합되는 통신 링크와 연관되는 네트워크 요소들 사이의 네트워크 통신 링크 또는 채널을 통하여 인터페이스를 제공할 수 있다. I/O 인터페이스들(540)은 네트워크 통신 링크 또는 채널을 통해 통신하기 위한 다양한 통신 프로토콜들 또는 표준들에 따라 동작하는 인터페이스들을 포함할 수 있다. 이 통신 프로토콜들 또는 표준들은 IEEE 802.1Qbg 또는 IEEE 802.1BR과 연관되는 것들과 같이, 이더넷 관련 표준들 또는 사양들(후속들 및 변형들을 포함하여)에 기술될 수 있다. 본 명세서는 단지 이 이더넷 관련 표준들로 제한되지 않는다.
도 6은 스위치 아이덴티피케이션을 할당하는 예시 흐름도를 도시한다. 일부 예들에서, 도 1에 도시되는 바와 같은 시스템(100)의 요소들은 도 6에 도시되는 흐름도와 관련되는 예시 동작들을 설명하는 데 사용될 수 있다. 도 1 또는 도 5에서 도시되는 바와 같은 스위치 관리자(142) 또한 예시 동작들을 설명하는 데 사용될 수 있다. 그러나, 기술되는 예시 동작들은 시스템(100) 상에서 구현되는 것으로 또는 도 1 또는 도 5에 도시되는 바와 같은 스위치 관리자(142)로 제한되지 않는다.
도 2 내지 도 4에 도시되는 바와 같은 스위치 ID 구조(200), 할당 스위치 ID 표(300) 및 검색표(400)는 또한 도 6에서 도시되는 흐름도와 관련되는 예시 동작들을 설명하는 데 사용될 수 있다. 그러나 기술되는 예시 동작들은 도 2 내지 도 4에 도시되는 바와 같은 이 특정한 구조들 또는 표들로 제한되지 않는다.
시작에서 블록 610(데이터를 수신)으로 이동하여, 스위치 관리자(142)는 I/O 디바이스(140)가 데이터를 수신하는 것(예를 들어, 수신 피처(512)를 통해)을 보조하도록 구성되는 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 데이터는 데이터 패킷 또는 프레임의 포맷 상태에 있고 호스트 디바이스(101)에 있는 하나 이상의 가상 머신들과 또는 네트워크(들)(160)에 있는 하나 이상의 네트워크 요소들과 연관되는 목적지를 가질 수 있다.
블록 610으로부터 결정 블록 620(네트워크로부터의?)으로 진행하여, 스위치 관리자(142)는 데이터가 통신 링크들(150-1 내지 150-4)에 결합되는 포트들(130-1 내지 130-4) 중 어느 하나를 통해 또는 가상 스위치(141)에 포함되는 L-포트(141-1D)에서 수신되었는지를 (예를 들어, 수신 피처(512)를 통해) 결정하도록 구성되는 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 데이터는 VM(111) 또는 VM(112)로부터 가상 스위치(141)에 포함되는 L-포트(141-1D)를 통해 수신되었을 수 있다. 이 예들의 경우, 프로세스는 결정 블록 630으로 이동된다. 다른 예들에서, 데이터는 네트워크(들)(160)과 함께 또는 네트워크(들)(160)에 위치되는 네트워크 요소로부터 수신되었을 수 있다. 이 다른 예들의 경우, 프로세스는 결정 블록 650으로 이동한다.
결정 블록 620으로부터 결정 블록 630(태그를 가지나?)으로 이동하여, 스위치 관리자(142)는 수신되는 데이터가 S-태그 또는 E-태그와 같은 아이덴티피케이션 정보를 포함하는지를 결정하도록 구성되는(예를 들어, 할당 피처(514)를 통해 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 데이터와 연관되는 데이터 패킷 헤더는 데이터 채널과의 연관성을 식별하기 위한 아이덴티피케이션 정보를 포함하지 않을 수 있다. 이 예들의 경우, 프로세스는 블록 640으로 이동한다. 그렇지 않고, 수신되는 데이터가 아이덴티피케이션 정보를 포함하면, 프로세스는 블록 670으로 이동한다.
결정 블록 630으로부터 블록 640(스위치 ID = {로컬, 포트#, VSI 채널 ID})으로 이동하여, 스위치 관리자(142)는 스위치 아이덴티피케이션을 데이터에 할당하도록(예를 들어, 할당 피처(514)를 통해) 구성되는 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 데이터가 아이덴티피케이션 정보를 포함하지 않았으므로, 아이덴티피케이션 정보의 발신자는 로컬일 것이다. 포트#는 가상 스위치(141)에 포함되는 L-포트(141-1D)에 대해 할당되는 식별자일 것이다. VSI 채널 ID는 S-태그 또는 E-태그와 유사한 포맷 상태일 수 있는, 스위치 관리자(142)에 의해 할당되는 채널 아이덴티피케이션 번호일 수 있다.
결정 블록 620으로부터 결정 블록 630과 유사한 결정 블록 650(태그를 가지나?)으로 이동하여, 스위치 관리자(142)는 수신되는 데이터가 S-태그 또는 E-태그와 같은 아이덴티피케이션 정보를 포함하는지를 결정할 수 있다. 일부 예들에서, 데이터와 연관되는 데이터 패킷 헤더는 데이터 채널과의 연관성을 식별하기 위하여 아이덴티피케이션 정보를 포함하지 않을 수 있다. 이 예들의 경우, 프로세스는 블록 660으로 이동한다. 그렇지 않고, 수신되는 데이터가 아이덴티피케이션 정보를 포함하면, 프로세스는 블록 670으로 이동한다.
결정 블록 650으로부터 블록 660(스위치 ID = {로컬, 포트#, 디폴트 ID})으로 이동하여, 스위치 관리자(142)는 스위치 아이덴티피케이션을 데이터에 할당하도록(예를 들어, 할당 피처(514)를 통해) 구성되는 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 블록 640과 유사하게, 데이터가 아이덴티피케이션 정보를 포함하지 않았으므로, 아이덴티피케이션 정보의 발신자를 로컬일 것이다. 포트#는 네트워크로부터 데이터가 수신되었던 통신 링크들(150-1 내지 150-4) 중 하나에 결합되는 포트(예를 들어 포트 #4)에 대해 할당되는 식별자일 수 있다. 디폴트 ID는 S-태그 또는 E-태그와 유사한 포맷 상태일 수 있는, 스위치 관리자(142)에 의해 할당되는 디폴트 채널 아이덴티피케이션 번호일 수 있다.
결정 블록 630 또는 결정 블록 650으로부터 블록 670(스위치 ID = {전역, 포트#, 태그})으로 이동하여, 스위치 관리자(142)는 스위치 아이덴티피케이션을 데이터에 할당하도록(예를 들어, 할당 피처(514)를 통해) 구성되는 로직 및/또는 피처들을 포함할 수 있다. 일부 예들에서, 데이터에 대한 아이덴티피케이션 정보는 I/O 디바이스(140)의 외부에서 또는 I/O 디바이스(140)에 원격에서 기원되었을 수 있으므로 전역으로 간주된다. 포트#는 네트워크로부터 데이터가 수신되었던 통신 링크들(150-1 내지 150-4) 중 하나에 결합되는 포트(예를 들어, 포트#2)에 대해 할당되는 식별자일 수 있다. 또한, 태그는 데이터에 대한 아이덴티피케이션 정보일 수 있고 S-태그 또는 E-태그와 유사한 포맷 상태일 수 있다.
블록들 640, 660 또는 670으로부터 블록 680(데이터를 프로세싱하기 위하여 스위치 ID를 사용한다)으로 이동하여, 스위치 관리자(142)는 데이터에 할당되는 스위치 아이덴티피케이션 번호를 사용하는 로직 및/또는 피처들을 포함할 수 있고 또한 I/O 디바이스(140)에서 데이터를 프로세싱하는 하나 이상의 액션들을 결정하기 위하여(예를 들어, 검색 피처(516)를 통해) VSI ID 정보(VLAN/MAC ID들)를 사용할 수 있다. 일부 예들에서, 검색표(400)에서 대응하는 스위치 아이덴티피케이션 번호에 대하여 식별되는 액션은 데이터에 대한 하나 이상의 액션들을 결정하는 데 사용될 수 있다. 상술한 바와 같이, 하나 이상의 액션들은 데이터를 라우팅하고, 데이터의 암호화 프로세싱 또는 데이터의 패킷 검사 프로세싱을 포함할 수 있다. 프로세스는 그 후에 종료된다.
도 7은 호스트 디바이스(700)에 대한 예시 시스템도를 도시한다. 도 7에 도시되는 바와 같이, 호스트 디바이스(700)는 하이퍼바이저(705), 운영 시스템(들)(710), 애플리케이션들(720), 네트워크 입력/출력(I/O) 디바이스(들)(730), 사용자 입력/출력(I/O) 디바이스(들)(740), 저장소(750), 메모리(760), 중앙 처리 장치(CPU)(770), 칩셋(780) 및 통신(Comm)들(790)을 포함한다. 일부 예들에 따르면, 호스트 디바이스(700)의 요소들을 상호 접속하고/하거나 통신가능하게 결합하기 위하여 몇몇 개의 인터페이스들이 또한 도 7에 도시된다. 예를 들어, 사용자 인터페이스(715) 및 인터페이스(735)는 사용자들(도시되지 않음) 및/또는 애플리케이션(들)(720)이 운영 시스템(들)(710) 및/또는 하이퍼바이저(705)에 결합되는 것을 가능하게 할 수 있다. 또한, 인터페이스(735)는 하이퍼바이저(705) 및/또는 운영 시스템(들)(710)(예를 들어, 디바이스 드라이버(들)(711)의 요소들이 네트워크 I/O 디바이스(들)(730), 사용자 I/O 디바이스(들)(740), 저장소(750), 메모리(760), CPU(770), 칩셋(780) 또는 Comm들(790)과 같은 호스트 디바이스(700)의 요소들에 통신가능하게 결합되는 것을 가능하게 할 수 있다. 인터페이스(754)는 예를 들어 호스트 디바이스(700)의 하드웨어 및/또는 펌웨어 요소들이 시스템 버스 또는 다른 유형의 내부 통신 채널을 통해 서로 통신가능하게 결합되는 것을 가능하게 할 수 있다.
일부 예들에서, 도 7에 도시되는 바와 같이, 호스트 디바이스(700)는 운영 시스템(들)(710)을 포함할 수 있다. 운영 시스템(들)(710)은 예를 들어 하나 이상의 운영 시스템들을 포함할 수 있다. 운영 시스템(들)(710) 내에 포함되는 별개의 운영 시스템들은 호스트 디바이스(700)의 요소들에 의해 지원되는 별개의 가상 머신들의 일부로서 구현될 수 있다. 이 예들의 경우, 별개의 가상 머신들은 CPU(770) 내에 포함되는 하나 이상의 프로세서들과 연관될 수 있다. 또한, 이 예들의 경우, 하이퍼바이저(705)는 이 별개의 가상 머신들에 대한 가상 머신 관리자 역할을 할 수 있다.
일부 예들에 따르면, 도 7에 도시되는 바와 같이, 운영 시스템(들)(710)은 디바이스 드라이버(들)(711)를 별개로 포함할 수 있다. 디바이스 드라이버(들)(711)은 호스트 디바이스(700)의 하드웨어/펌웨어 유형 요소들과 상호 작용하도록(예를 들어, 인터페이스(735)를 통해) 구성되는 로직 및/또는 피처들을 포함할 수 있다. 예를 들어, 디바이스 드라이버(들)(711)는 저장소(750) 또는 메모리(760)를 애플리케이션(들)(720) 또는 운영 시스템(들)(710)에 의해 행해지는 요청들을 완수하도록 제어하거나 지시하는 디바이스 드라이버들을 포함할 수 있다. 디바이스 드라이버(들)(711)는 호스트 디바이스(700)에 결합되는 통신 채널들을 통해(예를 들어, 네트워크 I/O 디바이스(들)(730) 또는 Comm(790)을 통해) 데이터를 수신/전송하기 위해 네트워크 I/O 디바이스(들)(730)이 CPU(770) 및 메모리(760)와 상호 작용하는 것을 가능하게 하는 디바이스 드라이버들을 포함할 수 있다.
일부 예들에서, 애플리케이션(들)(720)은 호스트 디바이스(700) 상에서 구현될 수 있는 애플리케이션들을 포함할 수 있다. 이 예들의 경우, 애플리케이션(들)(720)은 사용자 I/O 디바이스들(740), 저장소(750) 또는 메모리(760)와 같은 시스템의 요소들에 액세스하거나(예를 들어, 운영 시스템(710)을 통해) 상기 요소들을 사용하는 것을 요청할 수 있다.
일부 예들에 따르면, 네트워크 I/O 디바이스(들)(730)은 도 1에서 기술되는 I/O 디바이스(140)와 유사할 수 있다. 이 예들의 경우, 네트워크 I/O 디바이스(들)(730)은 네트워크 I/O 디바이스(들)(730)에서 수신되는 데이터에 스위치 아이덴티피케이션을 할당하도록 구성 또는 구성되는 로직 및/또는 피처들을 가지는 스위치 관리자(142)(도 7에 도시되지 않음)를 포함할 수 있다. 일부 예들에서, 네트워크 I/O 디바이스(들)(730)는 네트워크 인터페이스 카드(network interface card; NIC)로서 기능하도록 구성될 수 있다.
일부 예들에서, 사용자 I/O 디바이스(들)(740)는 호스트 디바이스(700)의 요소들에 의해 구현되는 데이터 및 명령들을 입력하기 위하여 인터페이스(754)에 결합되는 하나 이상의 사용자 입력 디바이스들을 포함할 수 있다. 예를 들어, 사용자 입력 디바이스들은 키보드, 마우스, 터치 스크린, 트랙 패드, 트랙 볼, 아이소포인트(isopoint), 음성 인식 시스템 등을 포함할 수 있다. 유사하게, 사용자 I/O 디바이스(들)(740)는 정보를 운영자 또는 사용자에게 출력하기 위하여 인터페이스(754)에 결합되는 하나 이상의 사용자 출력 디바이스들을 포함할 수 있다. 예를 들어, 사용자 출력 디바이스들은 바람직한 경우에, 하나 이상의 디스플레이들, 프린터들, 스피커들 및/또는 다른 출력 디바이스들을 포함할 수 있다. 예를 들어, 사용자 출력 디바이스들 중 하나는 디스플레이일 수 있다. 디스플레이는 음극선관(cathode ray tube; CRT)들, 액정 디스플레이(liquid crystal display; LCD)들 또는 다른 유형의 디스플레이일 수 있다.
일부 예들에서, 저장소(750)는 저장 동작 모드에서 구현 또는 동작되도록 구성되는 다양한 유형들의 메모리를 포함할 수 있다. 저장소(750)는 상대적으로 대량의 데이터를 저장하기 위하여 상이한 유형들의 저장 디바이스들 중 적어도 하나 또는 이들의 결합을 포함할 수 있다. 이 상이한 유형들의 저장 디바이스들은 자기 디스크 드라이브, 광 디스크 드라이브, 테이프 드라이브, 내부 저장 디바이스, 접속 저장 디바이스, 플래시 메모리, 배터리 백업 SDRAM(동기 DRAM), 네트워크 액세스 가능 저장 디바이스 및/또는 다른 유형들의 비휘발성 메모리(예를 들어, 상변화 메모리(phase change memory; PCM)) 중 하나 이상을 포함할 수 있으나 이로 제한되지 않는다. 일부 예들에서, 저장소(750)는 도 7에 도시되는 바와 같이, 별개의 요소라기 보다는 사용자 I/O 디바이스들(730)의 일부로서 포함될 수 있다.
일부 예들에 따르면, 메모리(760)는 RAM, DRAM, 정적 RAM(SRAM), 상변화 재료 RAM(PAM) 및/또는 다른 유형들의 휘발성 메모리를 포함하는 상이한 유형들의 메모리 중 하나 또는 이들의 결합을 포함할 수 있다. 일부 예들에서, 메모리(760)는 수신되는 데이터를 적어도 일시적으로 저장하기 위하여 네트워크 I/O 디바이스(들)(730), CPU(770)의 요소들 및/또는 운영 시스템(들)(710)에 의해 사용되는 버퍼들을 유지하도록 구성될 수 있다.
일부 예들에 따르면, CPU(770)는 호스트 디바이스(700)에 대한 중앙 처리 장치로서 구현될 수 있다. CPU(770)는 하나 이상의 프로세서 코어들을 개별적으로 가지는 하나 이상의 프로세서들을 포함할 수 있다. 일부 예들에서, CPU(770)는 예를 들어, 멀티 코어 프로세서, 축소 명령 세트 컴퓨터(reduced instruction set computer; RISC), 파이프라인을 가지는 프로세서, 복합 명령 세트 컴퓨터(complex instruction set computer; CISC), 디지털 신호 프로세서(DSP) 등과 같은, 임의의 유형의 프로세서를 포함할 수 있다.
일부 예들에 따르면, 칩셋(780)은 운영 시스템(들)(710), 네트워크 사용자 디바이스(들)(730), 사용자 I/O 디바이스(들)(740), 저장소(750), 메모리(760), CPU(770) 또는 Comm들(790) 사이의 상호 통신을 제공할 수 있다. 예를 들어, 칩셋(780)은 저장소(750)로부터 정보를 검색하여 사용자 I/O 디바이스(들)(740) 내에 포함되는 디스플레이에 그래픽들을 디스플레이하기 위하여 운영 시스템(들)(710), 사용자 I/O 디바이스(들)(740), 저장소(750) 및 CPU(770) 사이의 상호 통신을 제공할 수 있다. 그래픽들은 운영 시스템(들)(710)에 포함되는 운영 시스템의 요청 시에 CPU(770)에 의해 렌더링(rendering)되었을 수 있다.
일부 예들에서, Comm들(790)은 호스트 디바이스(700)에 원격인 요소들과 외적으로 통신하는 것을 가능하게 하는 로직 및/또는 피처들을 포함할 수 있다. 이 로직 및/또는 피처들은 유선, 무선 또는 광 통신 채널들을 통한 통신 또는 하나 이상의 유선, 무선 또는 광 네트워크들을 통한 링크들을 포함할 수 있다. 그와 같은 네트워크들에 걸친 통신에서, Comm들(790)은 하나 이상의 적용 가능 통신 또는 네트워킹 표준들에 따라 임의의 버전으로 동작할 수 있다. 또한, 일부 예들에서, Comm들(790)은 호스트 디바이스(700)에 원격인 요소들로 통신들과 연관되는 데이터를 수신/전송하기 위하여 네트워크 I/O 디바이스(들)(730)과 통합될 수 있다.
상술한 바와 같이, 인터페이스(754)는 호스트 디바이스(700)의 하드웨어 및/또는 펌웨어 요소들이 통신가능하게 서로 결합되는 것을 가능하게 한다. 일부 예들에 따르면, 인터페이스(754)는 하나 이상의 프로토콜들 또는 표준들에 따라 동작할 수 있다. 이 프로토콜들 또는 표준들은 상호 집적 회로(Inter-Integrated Circuit; I2C) 사양, 시스템 관리 버스(System Management Bus; SMBus) 사양, 가속 그래픽 포트(Accelerated Graphics Port; AGP) 사양, 주변 구성요소 상호 접속 익스프레스(Peripheral Component Interconnect Express; PCI Express) 사양, 범용 직렬 버스(Universal Serial Bus; USB) 사양, 고 선명도 멀티미디어 인터페이스(High-Definition Multimedia Interface; HDMI) 표준, 디지털 비주얼 인터페이스(Digital Visual Interface; DVI) 사양, Bluetooth™ 사양, 또는 직렬 고급 기술 결합(Serial Advanced Technology Attachment; SATA) 사양과 연관되는 표준들(후속들 및 변형들을 포함하여)과 같이 하나 또는 하나 이상의 산업 표준들에서 기술될 수 있다. 그러나 본 발명은 상술한 표준들 또는 연관되는 프로토콜들만으로 제한되지 않는다.
일부 예들에서, 호스트 디바이스(700)는 컴퓨팅 디바이스에 포함될 수 있다. 컴퓨팅 디바이스의 예들은 물리적 엔드 스테이션(end station), 서버, 블레이드 서버(blade server), 컴퓨팅 보드, 워크스테이션, 데스크탑 컴퓨터, 개인용 컴퓨터(PC) 또는 랩탑 컴퓨터, 울트라 모바일(ultra-mobile) 컴퓨터 등을 포함할 수 있으나 이로 제한되지 않는다.
적어도 하나의 예의 하나 이상의 양태들은 프로세서 내의 다양한 로직을 나타내는 적어도 하나의 머신 판독 가능 매체 상에서 저장되는 각각의 명령들에 의해 구현될 수 있고, 이 명령들은 머신에 의해 판독될 때, 컴퓨팅 디바이스 또는 시스템이 머신, 컴퓨팅 디바이스 또는 시스템으로 하여금 로직을 만들어 본원에서 설명되는 기술들을 수행하도록 한다. "IP 코어(core)들"로서 공지된 그와 같은 표현들은 유형의 머신 판독 가능 매체 상에 저장되고 다양한 고객들에게 또는 로직 또는 프로세서를 실제로 제작하는 제작 머신들로 로딩하는 제작 설비들에 공급된다.
다양한 예들은 하드웨어 요소들, 소프트웨어 요소들 또는 이 둘의 결합을 사용하여 구현될 수 있다. 일부 예들에서, 하드웨어 요소들은 디바이스들, 구성요소들, 프로세서들, 마이크로프로세서들, 회로들, 회로 요소들(예를 들어, 트랜지스터들, 저항들, 커패시터들, 인덕터들 등), 집적 회로들, 주문형 반도체(application specific integrated circuit; ASIC)들, 프로그램 가능 로직 디바이스(programmable logic device; PLD)들, 디지털 신호 프로세서(digital signal processor; DSP)들, 필드 프로그래머블 게이트 어레이(field programmable gate array; FPGA), 메모리 유닛들, 로직 게이트들, 레지스터(register)들, 반도체 디바이스, 칩들, 마이크로칩들, 칩셋들 등을 포함할 수 있다. 일부 예들에서, 소프트웨어 요소들은 소프트웨어 구성요소들, 프로그램들, 애플리케이션들, 컴퓨터 프로그램들, 애플리케이션 프로그램들, 시스템 프로그램들, 머신 프로그램들, 운영 시스템 소프트웨어, 미들웨어(middleware), 펌웨어, 소프트웨어 모듈들, 루틴들, 서브루틴들, 기능들, 방법들, 절차들, 소프트웨어 인터페이스들, 애플리케이션 프로그램 인터페이스(application program interface; API)들, 명령 세트들, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트(code segment)들, 컴퓨터 코드 세그먼트들, 워드(word)들, 값들, 심볼들, 또는 이들의 임의의 결합을 포함할 수 있다. 하나의 예가 하드웨어 요소들 및/또는 소프트웨어 요소들을 사용하여 구현되는지를 결정하는 것은 소정의 구현에 바람직할 때, 원하는 계산 레이트, 전력 레벨들, 내열성(heat tolerance)들, 프로세싱 사이클 버짓(cycle budget), 입력 데이터 레이트들, 출력 데이터 레이트들, 메모리 자원들, 데이터 버스 속도들 및 다른 설계 또는 성능 제약들과 같은 임의의 수의 요인들에 따라 변할 수 있다.
일부 예들은 제조 물품 또는 적어도 하나의 컴퓨터 판독 가능 매체를 포함할 수 있다. 컴퓨터 판독 가능 매체는 로직을 저장하기 위하여 비일시적 저장 매체를 포함할 수 있다. 일부 예들에서, 비일시적 저장 매체는 휘발성 메모리 또는 비휘발성 메모리, 제거 가능 또는 비 제거 가능 메모리, 소거 가능 또는 비 소거 가능 메모리, 기록 가능 또는 재 기록 가능 메모리 등을 포함하여, 전자 데이터를 저장할 수 있는 하나 이상의 유형들의 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 일부 예들에서, 로직은 소프트웨어 구성요소들, 프로그램들, 애플리케이션들, 컴퓨터 프로그램들, 애플리케이션 프로그램들, 시스템 프로그램들, 머신 프로그램들, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈들, 루틴들, 서브루틴들, 기능들, 방법들, 절차들, 소프트웨어 인터페이스들, API, 명령 세트들, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트들, 컴퓨터 코드 세그먼트들, 워드들, 값들, 심볼들 또는 이들의 임의의 결합과 같이, 다양한 소프트웨어 요소들을 포함할 수 있다.
일부 예들에 따르면, 컴퓨터 판독 가능 매체는 머신, 컴퓨팅 디바이스 또는 시스템에 의해 실행될 때, 머신, 컴퓨팅 디바이스 또는 시스템으로 하여금 기술되는 예들에 따른 방법들 및/또는 동작들을 수행하도록 하는 명령들을 저장 또는 유지하는 비일시적 저장 매체를 포함할 수 있다. 명령들은 소스 코드, 컴파일링된 코드, 해석 코드, 실행 가능 코드, 정적 코드, 동적 코드 등과 같은, 임의의 적절한 유형의 코드를 포함할 수 있다. 명령들은 머신, 컴퓨팅 디바이스 또는 시스템에게 특정한 기능을 수행하도록 지시하기 위하여, 미리 정의된 컴퓨터 언어, 방식 또는 구문(syntax)에 따라 구현될 수 있다. 명령들은 임의의 적절한 고-레벨, 저-레벨, 객체-지향, 비주얼, 컴파일링 및/또는 해석 프로그래밍 언어를 사용하여 구현될 수 있다.
일부 예들은 표현 "하나의 예에서" 또는 "예"를 이들의 파생어들과 함께 사용하여 기술될 수 있다. 이 용어들은 예들과 관련하여 기술되는 특정한 피처, 구조 또는 특징이 적어도 하나의 예에 포함되는 것을 의미한다. 명세서 내의 다양한 장소들에서 어구 "하나의 예에서"가 등장하는 것은 반드시 모두 동일한 예를 언급하는 것은 아니다.
일부 예들은 표현 "결합되는" 및 "접속되는"을 이들의 파생어들과 함께 사용하여 기술될 수 있다. 이 용어들은 반드시 서로에 대한 동의어들로서 의도되는 것은 아니다. 예를 들어, 용어들 "접속되는" 및/또는 "결합되는"을 사용하는 표현들은 둘 이상의 요소들이 서로 직접적으로 물리적 또는 전기적 접속되어 있음을 나타낼 수 있다. 그러나, 용어 "결합되는"은 또한 둘 이상의 요소들이 서로 직접적으로 접속되지 않으나, 여전히 서로 상호 동작하거나 상호 작용하는 것을 의미할 수 있다.
명세서의 요약은 독자가 기술 개시의 성격을 즉시 확인하는 것이 가능할 요약을 요구하는 37 C.F.R 섹션 1.72(b)에 부합하도록 제공되는 것이 강조된다. 이는 청구항들의 범위 또는 의미를 해석하거나 제한하는 데 사용되지 않을 것임을 조건으로 제시된다. 게다가, 상술한 상세한 설명에서, 다양한 피처들은 본 명세서를 간소화하기 위해 단일 예에서 서로 그룹화되어 있는 것이 확인될 수 있다. 이 명세서의 방법은 청구되는 예들이 각각의 청구항에서 명백하게 열거되는 것보다 더 많은 피처들을 요구하는 것을 의도하는 것임을 반영하는 것으로 해석되어서는 안 된다. 오히려, 다음의 청구항들이 반영하는 바와 같이, 발명의 특허 대상은 단일한 개시된 예의 피처들 전부보다 더 적은 피처들에 있다. 그러므로, 다음의 청구항들은 이에 상세한 설명들에 통합되고, 각각의 청구항은 개별 예로서 자기 자체로 독립된다. 첨부되는 청구항들에서, 용어들 "including" 및 "in which"는 각각의 용어들 "comprising" 및 "wherein"의 평이한 영어(plain English)의 동의어들로서 각각 사용된다. 더욱이, 용어들 "제 1", "제 2", "제 3" 등은 단지 라벨들로서 사용되고 자체의 목적들에 대한 수치적 요건들을 부과하려고 의도되지 않는다.
일부 예들에서 호스트 디바이스에 결합되는 입력/출력 디바이스에서 데이터를 수신하는 것을 포함하는 방법들이 구현될 수 있다. 데이터는 입력/출력 디바이스에서 유지되는 가상 스테이션 인터페이스와 연관될 수 있다. 가상 스테이션 인터페이스는 호스트 디바이스에서 구현되는 가상 머신에 통신가능하게 결합될 수 있다. 데이터는 네트워크 통신 링크를 통해 입력/출력 디바이스에 결합될 수 있는 가상 머신 또는 네트워크 요소 중 하나로부터 송신되었을 수 있다. 스위치 아이덴티피케이션은 입력/출력 디바이스에서 데이터가 수신되는 포트에 대해 할당되는 포트 식별자, 데이터에 대한 아이덴티피케이션 정보, 아이덴티피케이션 정보의 적어도 일부분의 발신자에 기초하여 데이터에 할당될 수 있다. 일부 예들에 따르면, 할당 스위치 아이덴티피케이션은 입력/출력 디바이스에서 데이터를 프로세싱하는 하나 이상의 액션들을 결정하기 위하여 검색표의 일부로서 사용될 수 있다.
일부 예들에서, 이 방법의 구현은 네트워크 통신 링크에 결합될 수 있는 물리 포트 또는 가상 머신으로부터 호스트 디바이스에서 구현되는 다른 가상 머신으로 데이터를 라우팅하도록 구성되는 데이터 채널에 결합될 수 있는 로직 포트 중 하나를 포함하여, 데이터가 수신되는 포트를 포함할 수 있다.
일부 예들에 따르면, 이 방법의 구현은 입력/출력 디바이스에서 생성되는 데이터에 대한 아이덴티피케이션 정보에 기초하여 로컬로 식별되는 아이덴티피케이션 정보의 적어도 일부분의 발신자 또는 입력/출력 디바이스의 외부에서 생성되는 데이터에 대한 아이덴티피케이션 정보에 기초하여 전역으로 식별되는 데이터 발신자를 포함할 수 있다. 이 예들의 경우에, 로컬 아이덴티피케이션은 제 1 식별자와 연관될 수 있고 전역 아이덴티피케이션은 제 2 식별자와 연관될 수 있다. 할당 스위치 아이덴티피케이션은 발신자가 로컬로 식별되는지 또는 전역으로 식별되는지에 기초하여 제 1 식별자 또는 제 2 식별자 중 하나를 포함할 수 있다.
일부 예들에서, 이 방법의 구현은 로컬로 식별되는 아이덴티피케이션 정보의 적어도 일부분의 발신자를 포함할 수 있다. 이 예들의 경우, 데이터에 대한 아이덴티피케이션 정보는 가상 머신에 통신가능하게 결합되는 가상 스테이션 인터페이스와 연관되는 데이터 채널 아이덴티피케이션 번호를 포함할 수 있다.
일부 예들에 따르면, 이 방법의 구현은 로컬로 식별되는 아이덴티피케이션 정보의 적어도 일부분의 발신자를 포함할 수 있다. 이 예들의 경우 데이터에 대한 아이덴티피케이션 정보는 제어 데이터와 연관되는 데이터에 기초하여 입력/출력 디바이스에서 생성되는 디폴트 아이덴티피케이션 번호를 포함할 수 있다. 제어 데이터는 네트워크 요소 및 가상 머신 사이에 데이터 채널을 설정하는 것과 관련될 수 있다. 데이터 채널은 가상 스테이션 인터페이스를 통해 라우팅된다.
일부 예들에서, 이 방법의 구현은 하나 이상의 이더넷 사양들에 부합하여 입력/출력 디바이스를 동작시키는 것을 포함할 수 있다. 하나 이상의 이더넷 사양은 국제 전기전자 기술자 협회(IEEE) 802.1Qbg 이더넷 사양 또는 IEEE 802.1BR 이더넷 사양을 포함할 수 있다. 이 예들의 경우, 아이덴티피케이션 정보의 적어도 일부분의 발신자는 전역으로 식별될 수 있고 아이덴티피케이션 번호는 서비스 태그(S-태그) 또는 브릿지 포트 연장 태그(E-태그) 중 하나를 포함할 수 있다. S-태그 또는 E-태그는 네트워크 요소 및 가상 머신 사이에서 설정되는 데이터 채널과 관련될 수 있다. 설정된 데이터 채널은 가상 스테이션 인터페이스를 통해 라우팅될 수 있다.
일부 예들에 따르면, 이 방법의 구현은 하나 이상의 이더넷 사양들에 부합하여 I/O 디바이스를 동작시키는 것을 포함할 수 있다. 하나 이상의 이더넷 사양들은 국제 전기전자 기술자 협회(Institute of Electrical and Electronics Engineers; IEEE) 802.1Qbg 이더넷 사양 또는 IEEE 802.1BR 이더넷 사양을 포함한다. 이 예들의 경우, 아이덴티피케이션 정보의 적어도 일부분의 발신자는 로컬로서 식별될 수 있고 아이덴티피케이션 번호는 서비스 태그(S-태그) 또는 브릿지 포트 연장 태그(E-태그) 중 하나를 포함할 수 있다. S-태그 또는 E-태그는 가상 머신 및 네트워크 요소 사이에서 설정되는 데이터 채널과 관련될 수 있다. 설정된 데이터 채널은 가상 스테이션 인터페이스를 통하여 라우팅될 수 있다.
일부 예들에서, 이 방법의 구현은 단일 스위치 아이덴티피케이션 표에서 I/O 디바이스의 다수의 스위치들과 연관되는 정보를 저장하는 것을 포함할 수 있고, 단일 스위치 아이덴티피케이션 표는 입력/출력 디바이스에서의 메모리에서 유지된다. 정보는 데이터에 대해 할당되는 스위치 아이덴티피케이션을 포함할 수 있다.
일부 예들에서, 이 방법의 구현은 할당 스위치 아이덴티피케이션을 검색표의 일부로 사용하는 것을 포함하고, 검색표는 입력/출력 디바이스에 있는 메모리에 저장되고, 메모리는 3중 컨텐츠 어드레스 가능 메모리(ternary content-addressable memory; TCAM)로서 구성된다.
일부 예들에 따르면, 적어도 하나의 머신 판독 가능 매체는 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여 컴퓨팅 디바이스로 하여금 상술한 바에 따른 예시 방법을 수행하도록 하는 복수의 명령들을 포함한다.
일부 예들에서 장치 또는 디바이스는 상술한 바와 같은 예시 방법을 수행하는 수단을 포함할 수 있다.
일부 예들에 따르면, 예시 장치 또는 디바이스는 프로세서 회로 및 프로세서 회로에 통신가능하게 결합되는 메모리 유닛을 포함할 수 있다. 메모리 유닛은 프로세서 회로 상에서 작용하는 로직을 위한 명령들을 저장하도록 구성될 수 있다. 이 로직은 호스트 디바이스에 결합될 수 있는 입력/출력 디바이스에서 데이터를 수신하도록 구성될 수 있다. 데이터는 입력/출력 디바이스에서 유지되는 가상 스테이션 인터페이스와 연관되는 목적지를 가질 수 있다. 가상 스테이션 인터페이스는 호스트 디바이스에서 구현되는 가상 머신에 결합되는 것이 가능할 수 있다. 데이터는 네트워크 통신 링크를 통해 입력/출력 디바이스에 결합될 수 있는 가상 머신 또는 네트워크 요소 중 하나로부터 송신되었을 수 있다. 로직은 또한 입력/출력 디바이스에서 데이터가 수신되는 할당된 포트 식별자, 데이터에 대한 아이덴티피케이션 정보 및 아이덴티피케이션 정보의 적어도 일부분의 발신자에 기초하여 스위치 아이덴티피케이션을 데이터에 할당하도록 구성되었을 수 있다. 이 예들의 경우, 로직은 입력/출력 디바이스에서 데이터를 프로세싱하는 하나 이상의 액션들을 결정하기 위하여 할당 스위치 아이덴티피케이션을 검색표의 일부로서 사용하도록 구성될 수 있다.
예시 디바이스에 대한 일부 예들에서, 메모리 유닛은 휘발성 메모리를 포함할 수 있다.
예시 디바이스에 대한 일부 예들에서, 데이터가 수신되는 포트는 네트워크 통신 링크에 결합될 수 있는 물리 포트 또는 데이터를 가상 머신으로부터 호스트 디바이스에서 구현되는 다른 가상 머신으로 라우팅하도록 구성되는 데이터 채널에 결합될 수 있는 로직 포트 중 하나를 포함할 수 있다.
예시 디바이스에 대한 일부 예들에 따르면, 아이덴티피케이션 정보의 적어도 일부의 발신자는 입력/출력 디바이스에 생성되는 데이터에 대한 아이덴티피케이션 정보에 기초하여 로컬로 식별될 수 있다. 데이터 발신자는 또한 입력/출력 디바이스의 외부에서 생성되는 데이터에 대한 아이덴티피케이션 정보에 기초하여 전역으로 식별될 수 있다. 로컬 아이덴티피케이션은 제 1 식별자와 연관될 수 있고 전역 아이덴티피케이션은 제 2 식별자와 연관될 수 있다. 할당 스위치 아이덴티피케이션은 발신자가 로컬 또는 전역으로 식별되는지에 기초하여 제 1 식별자 또는 제 2 식별자 중 하나를 포함할 수 있다.
예시 디바이스에 대한 일부 예들에서, 아이덴티피케이션 정보의 적어도 일부는 로컬로 식별될 수 있다. 또한, 데이터에 대한 아이덴티피케이션 정보는 가상 머신에 결합될 수 있는 가상 스테이션 인터페이스와 연관되는 데이터 채널 아이덴티피케이션 번호를 포함할 수 있다.
예시 디바이스에 대한 일부 예들에 따르면, 아이덴티피케이션 정보의 적어도 일부분의 발신자는 로컬로서 식별될 수 있다. 이 예들의 경우, 데이터에 대한 아이덴티피케이션 정보는 제어 데이터와 연관되는 데이터에 기초하여 입력/출력 디바이스에서 생성되는 디폴트 아이덴티피케이션 번호를 포함할 수 있다. 제어 데이터는 가상 스테이션 인터페이스를 통해 네트워크 요소 및 가상 머신 사이에 데이터 채널을 설정하는 것과 관련될 수 있다.
예시 디바이스에 대한 일부 예들에서, 입력/출력 디바이스는 국제 전기전자 기술자 협회(Institute of Electrical and Electronics Engineers; IEEE) 802.1Qbg 이더넷 사양 또는 IEEE 802.1BR 이더넷 사양을 포함하는 하나 이상의 이더넷 사양들에 따라 동작하도록 구성될 수 있다. 이 예들의 경우, 아이덴티피케이션 정보의 적어도 일부의 발신자는 전역으로 식별될 수 있다. 아이덴티피케이션 번호는 서비스 태그(S-태그) 또는 브릿지 포트 연장 태그(E-태그) 중 하나를 포함할 수 있다. S-태그 또는 E-태그는 네트워크 요소와 가상 머신 사이에서 설정되는 데이터 채널과 관련될 수 있다. 데이터 채널은 가상 스테이션 인터페이스를 통해 라우팅될 수 있다.
예시 디바이스에 대한 일부 예들에 따르면, 입력/출력 디바이스는 국제 전기전자 기술자 협회(IEEE) 802.1Qbg 이더넷 사양 또는 IEEE 802.1BR 이더넷 사용을 포함하는 하나 이상의 이더넷 사양들에 따라 동작하도록 구성될 수 있다. 이 예들의 경우, 아이덴티피케이션 정보의 적어도 일부의 발신자는 로컬로 식별될 수 있고 아이덴티피케이션 번호는 서비스 태그(Service tag; S-태그) 또는 브릿지 포트 연장 태그(E-태그) 중 하나를 포함할 수 있다. 또한, S-태그 또는 E-태그는 가상 머신 및 네트워크 요소 사이의 설정된 데이터 채널과 관련될 수 있다. 설정된 데이터 채널은 가상 스테이션 인터페이스를 통해 라우팅될 수 있다.
예시 디바이스들에 대한 일부 예들에서, 로직은 또한 할당 스위치 아이덴티피케이션을 입력/출력 디바이스에 있는 메모리에 저장되는 검색표의 일부로서 사용하도록 구성될 수 있다. 메모리는 3중 컨텐츠 어드레스 가능 메모리(ternary content-addressable memory; TCAM)로서 구성될 수 있다.
특허 대상이 구조 특징들 및/또는 방법적 액션들에 특정한 언어로 기술되었을지라도, 첨부된 청구항들에서 정의되는 특허 대상은 반드시 상술한 특정한 특징들 또는 액션들로 제한되지는 않는 것이 이해될 수 있다. 오히려, 상술한 특정한 특징들 및 액션들은 청구항들을 구현하는 예시 형태들로 개시된다.

Claims (25)

  1. 호스트 디바이스에 결합되는 입력/출력 디바이스에서 데이터를 수신하는 단계 ― 상기 데이터는 상기 입력/출력 디바이스에서 유지되는 가상 스테이션 인터페이스와 연관되고, 상기 가상 스테이션 인터페이스는 상기 호스트 디바이스에서 구현되는 가상 머신에 통신가능하게 결합되고, 상기 데이터는 네트워크 통신 링크를 통해 상기 입력/출력 디바이스에 결합될 수 있는 네트워크 요소 또는 상기 가상 머신 중 하나로부터 송신됨 ― 와,
    상기 입력/출력 디바이스에서 상기 데이터가 수신되는 포트에 대해 할당되는 포트 식별자, 상기 데이터에 대한 아이덴티피케이션(identification) 정보 및 상기 아이덴티피케이션 정보의 적어도 일부분의 발신자(an originator)에 기초하여 상기 데이터에 스위치 아이덴티피케이션을 할당하는 단계와,
    상기 입력/출력 디바이스에서 상기 데이터를 프로세싱하는 하나 이상의 액션(action)들을 결정하기 위하여 상기 할당된 스위치 아이덴티피케이션을 검색표의 일부로서 사용하는 단계를 포함하는
    할당 스위치 아이덴티피케이션 사용 방법.
  2. 제 1 항에 있어서,
    상기 데이터가 수신되는 포트는 상기 네트워크 통신 링크에 결합될 수 있는 물리 포트 또는 데이터를 상기 가상 머신으로부터 상기 호스트 디바이스에서 구현되는 다른 가상 머신으로 라우팅하도록 구성되는 데이터 채널에 결합될 수 있는 로직 포트 중 하나를 포함하는
    할당 스위치 아이덴티피케이션 사용 방법.
  3. 제 1 항에 있어서,
    상기 아이덴티피케이션 정보의 적어도 일부분의 발신자는 상기 입력/출력 디바이스에서 생성되는 데이터에 대한 아이덴티피케이션 정보에 기초하여 로컬로 식별되거나, 상기 아이덴티피케이션 정보의 적어도 일부분의 발신자는 상기 입력/출력 디바이스의 외부에서 생성되는 데이터에 대한 아이덴티피케이션 정보에 기초하여 전역으로 식별되고, 로컬 아이덴티피케이션은 제 1 식별자와 연관되고 전역 아이덴티피케이션은 제 2 식별자와 연관되고, 상기 할당된 스위치 아이덴티피케이션은 상기 발신자가 로컬로 식별되는지 또는 전역으로 식별되는지에 기초하여 상기 제 1 식별자 또는 상기 제 2 식별자 중 하나를 포함하는
    할당 스위치 아이덴티피케이션 사용 방법.
  4. 제 1 항에 있어서,
    상기 아이덴티피케이션 정보의 적어도 일부분의 발신자는 로컬로서 식별되고 상기 데이터에 대한 아이덴티피케이션 정보는 상기 가상 머신에 통신가능하게 결합되는 상기 가상 스테이션 인터페이스와 연관되는 데이터 채널 아이덴티피케이션 번호를 포함하는
    할당 스위치 아이덴티피케이션 사용 방법.
  5. 제 1 항에 있어서,
    상기 아이덴티피케이션 정보의 적어도 일부분의 발신자는 로컬로서 식별되고 상기 데이터에 대한 아이덴티피케이션 정보는 상기 네트워크 요소 및 상기 가상 머신 사이에 데이터 채널을 설정하는 것과 관련되는 제어 데이터와 연관되는 데이터에 기초하여 상기 입력/출력 디바이스에서 생성되는 디폴트 아이덴티피케이션 번호를 포함하고, 상기 데이터 채널은 상기 가상 스테이션 인터페이스를 통해 라우팅되는
    할당 스위치 아이덴티피케이션 사용 방법.
  6. 제 1 항에 있어서,
    국제 전기전자 기술자 협회(Institute of Electrical and Electronics Engineers; IEEE) 802.1Qbg 이더넷 사양 또는 IEEE 802.1BR 이더넷 사양을 포함하는 하나 이상의 이더넷 사양들에 부합하여 상기 입력/출력 디바이스를 동작시키는 단계를 포함하고, 상기 아이덴티피케이션 정보의 적어도 일부분의 발신자는 전역으로 식별되고 상기 아이덴티피케이션 정보는 서비스 태그(Service tag; S-태그) 또는 브릿지 포트 연장 태그(Bridge Port Extension tag; E-태그) 중 하나를 포함하는
    할당 스위치 아이덴티피케이션 사용 방법.
  7. 제 6 항에 있어서,
    상기 S-태그 또는 상기 E-태그는 상기 네트워크 요소와 상기 가상 머신 사이에서 설정되는 데이터 채널과 관련되고, 상기 설정되는 데이터 채널은 상기 가상 스테이션 인터페이스를 통해 라우팅되는
    할당 스위치 아이덴티피케이션 사용 방법.
  8. 제 1 항에 있어서,
    국제 전기 전자 기술자 협회(IEEE) 802.1Qbg 이더넷 사양 또는 IEEE 802.1BR 이더넷 사양을 포함하는 하나 이상의 이더넷 사양들에 부합하여 상기 I/O 디바이스를 동작시키는 단계를 포함하고, 상기 아이덴티피케이션 정보의 적어도 일부분의 발신자는 로컬로 식별되고 상기 아이덴티피케이션 정보는 서비스 태그(S-태그) 또는 브릿지 포트 연장 태그(E-태그) 중 하나를 포함하는
    할당 스위치 아이덴티피케이션 사용 방법.
  9. 제 8 항에 있어서,
    상기 S-태그 또는 상기 E-태그는 상기 가상 머신과 상기 네트워크 요소 사이에서 설정되는 데이터 채널과 관련되고, 상기 설정되는 데이터 채널은 상기 가상 스테이션 인터페이스를 통해 라우팅되는
    할당 스위치 아이덴티피케이션 사용 방법.
  10. 제 1 항에 있어서,
    단일 스위치 아이덴티피케이션 표에 상기 I/O 디바이스의 다수의 스위치들과 연관되는 정보를 저장하는 단계를 포함하고, 상기 단일 스위치 아이덴티피케이션 표는 상기 입력/출력 디바이스에 있는 메모리에서 유지되는
    할당 스위치 아이덴티피케이션 사용 방법.
  11. 제 10 항에 있어서,
    상기 정보는 상기 데이터에 대해 할당된 스위치 아이덴티피케이션을 포함하는
    할당 스위치 아이덴티피케이션 사용 방법.
  12. 제 1 항에 있어서,
    상기 할당된 스위치 아이덴티피케이션을 검색표의 일부로서 사용하는 단계는 은 상기 입력/출력 디바이스에 있는 메모리에 저장되는 상기 검색표를 포함하고, 상기 메모리는 3중 컨텐츠 어드레스 가능 메모리(ternary content-addressable memory; TCAM)로서 구성되는
    할당 스위치 아이덴티피케이션 사용 방법.
  13. 적어도 하나의 머신 판독 가능 매체로서,
    컴퓨팅 디바이스 상에서 실행되는 것에 응답하여 상기 컴퓨팅 디바이스로 하여금 제 1 항 내지 제 12 항 중 어느 한 항에 따른 방법을 수행하게 하는 복수의 명령을 포함하는
    적어도 하나의 머신 판독 가능 매체.
  14. 제 1 항 내지 제 12 항 중 어느 한 항의 방법을 수행하는 수단을 포함하는
    장치.
  15. 프로세서 회로와,
    상기 프로세서 회로와 통신가능하게 결합되는 메모리 유닛(memory unit)을 포함하고, 상기 메모리 유닛은 상기 프로세서 회로 상에서 동작하는 로직을 위한 명령들을 저장하도록 구성되고, 상기 로직은 호스트 디바이스에 결합될 수 있는 입력/출력 디바이스에서 데이터를 수신하도록 구성되고, 상기 데이터는 상기 입력/출력 디바이스에서 유지되는 가상 스테이션 인터페이스와 연관되는 목적지를 가지고, 상기 가상 스테이션 인터페이스는 상기 호스트 디바이스에 구현되는 가상 머신에 결합될 수 있고, 상기 데이터는 네트워크 통신 링크를 통해 상기 입력/출력 디바이스에 결합될 수 있는 네트워크 요소 또는 상기 가상 머신 중 하나로부터 송신되고, 상기 로직은 또한 상기 입력/출력 디바이스에서 상기 데이터가 수신되는 포트에 대해 할당되는 포트 식별자, 상기 데이터에 대한 아이덴티피케이션 정보 및 상기 아이덴티피케이션 정보의 적어도 일부분의 발신자에 기초하여 스위치 아이덴티피케이션을 상기 데이터에 할당하도록 구성되고, 상기 로직은 상기 입력/출력 디바이스에서 상기 데이터를 프로세싱하는 하나 이상의 액션들을 결정하기 위하여 상기 할당된 스위치 아이덴티피케이션을 검색표의 일부로서 사용하도록 구성되는
    장치.
  16. 제 15 항에 있어서,
    상기 메모리 유닛은 휘발성 메모리를 포함하는
    장치.
  17. 제 15 항 또는 제 16 항에 있어서,
    상기 데이터가 수신되는 상기 포트는 상기 네트워크 통신 링크에 결합될 수 있는 물리 포트 또는 상기 가상 머신으로부터 상기 호스트 디바이스에서 구현되는 다른 가상 머신으로 데이터를 라우팅하도록 구성되는 데이터 채널에 결합될 수 있는 로직 포트 중 하나를 포함하는
    장치.
  18. 제 15 항 또는 제 16 항에 있어서,
    상기 아이덴티피케이션 정보의 적어도 일부분의 발신자는 상기 입력/출력 디바이스에서 생성되는 데이터에 대한 아이덴티피케이션 정보에 기초하여 로컬로 식별되거나, 상기 아이덴티피케이션 정보의 적어도 일부분의 발신자는 상기 입력/출력 디바이스의 외부에서 생성되는 데이터에 대한 아이덴티피케이션 정보에 기초하여 전역으로 식별되고, 로컬 아이덴티피케이션은 제 1 식별자와 연관되고 전역 아이덴티피케이션은 제 2 식별자와 연관되고, 상기 할당된 스위치 아이덴티피케이션은 상기 발신자가 로컬로 식별되는지 또는 전역으로 식별되는지에 기초하여 상기 제 1 식별자 또는 상기 제 2 식별자 중 하나를 포함하는
    장치.
  19. 제 18 항에 있어서,
    상기 아이덴티피케이션 정보의 적어도 일부분의 발신자는 로컬로서 식별되며 상기 데이터에 대한 아이덴티피케이션 정보는 상기 가상 머신에 결합될 수 있는 상기 가상 스테이션 인터페이스와 연관되는 데이터 채널 아이덴티피케이션 번호를 포함하는
    장치.
  20. 제 18 항에 있어서,
    상기 아이덴티피케이션 정보의 적어도 일부분의 발신자는 로컬로 식별되며, 상기 데이터에 대한 아이덴티피케이션 정보는 상기 네트워크 요소와 상기 가상 머신 사이에서 설정되는 데이터 채널과 관련되는 제어 데이터와 연관되는 데이터에 기초하여 상기 입력/출력 디바이스에서 생성되는 디폴트 아이덴티피케이션 번호를 포함하며, 상기 데이터 채널은 상기 가상 스테이션 인터페이스를 통해 라우팅되는
    장치.
  21. 제 15 항 또는 제 16 항에 있어서,
    상기 입력/출력 디바이스는 국제 전기 전자 기술자 협회(IEEE) 802.1Qbg 이더넷 사양 또는 IEEE 802.1BR 이더넷 사양을 포함하는 하나 이상의 이더넷 사양들에 부합하여 동작하도록 구성되고, 상기 아이덴티피케이션 정보의 적어도 일부분의 발신자는 전역으로 식별되고 상기 아이덴티피케이션 정보는 서비스 태그(S-태그) 또는 브릿지 포트 연장 태그(E-태그) 중 하나를 포함하는
    장치.
  22. 제 21 항에 있어서,
    상기 S-태그 또는 상기 E-태그는 상기 네트워크 요소와 상기 가상 머신 사이에서 설정되는 데이터 채널과 관련되고, 상기 데이터 채널은 상기 가상 스테이션 인터페이스를 통해 라우팅되는
    장치.
  23. 제 15 항 또는 제 16 항에 있어서,
    상기 입력/출력 디바이스는 국제 전기전자 기술자 협회(IEEE) 802.1Qbg 이더넷 사양 또는 IEEE 802.1BR 이더넷 사양을 포함하는 하나 이상의 이더넷 사양들에 부합하여 동작하도록 구성되고, 상기 아이덴티피케이션 정보의 적어도 일부분의 발신자는 로컬로 식별되고 상기 아이덴티피케이션 정보는 서비스 태그(S-태그) 또는 브릿지 포트 연장 태그(E-태그) 중 하나를 포함하는
    장치.
  24. 제 23 항에 있어서,
    상기 S-태그 또는 상기 E-태그는 상기 가상 머신과 상기 네트워크 요소 사이에서 설정되는 데이터 채널과 관련되고, 상기 설정되는 데이터 채널은 상기 가상 스테이션 인터페이스를 통해 라우팅되는
    장치.
  25. 제 15 항 또는 제 16 항에 있어서,
    상기 로직은 또한 상기 할당된 스위치 아이덴티피케이션을 상기 입력/출력 디바이스에 있는 메모리에 저장되는 검색표의 일부로서 사용하도록 구성되며, 상기 메모리는 3중 컨텐츠 어드레스 가능 메모리(ternary content-addressable memory; TCAM)로서 구성되는
    장치.
KR1020147027286A 2012-03-29 2012-03-29 입력/출력 디바이스에서 할당 스위치 아이덴티피케이션을 사용하는 기술 KR101617210B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/031276 WO2013147805A1 (en) 2012-03-29 2012-03-29 Techniques for using an assigned switch identification at an input/output device

Publications (2)

Publication Number Publication Date
KR20140139522A KR20140139522A (ko) 2014-12-05
KR101617210B1 true KR101617210B1 (ko) 2016-05-18

Family

ID=49260867

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147027286A KR101617210B1 (ko) 2012-03-29 2012-03-29 입력/출력 디바이스에서 할당 스위치 아이덴티피케이션을 사용하는 기술

Country Status (5)

Country Link
KR (1) KR101617210B1 (ko)
CN (2) CN107508767B (ko)
DE (1) DE112012006126T5 (ko)
TW (1) TWI651957B (ko)
WO (1) WO2013147805A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9823849B2 (en) * 2015-06-26 2017-11-21 Intel Corporation Method and apparatus for dynamically allocating storage resources to compute nodes
TWI622884B (zh) * 2016-11-17 2018-05-01 宏碁股份有限公司 根複合體管理方法及根複合體
CN109426545B (zh) * 2017-08-31 2023-02-03 阿里巴巴集团控股有限公司 一种数据通信方法及装置
CN112532756B (zh) * 2019-09-17 2023-10-24 华为技术有限公司 接口扩展方法、装置和系统
CN114328623A (zh) * 2021-12-28 2022-04-12 深圳云天励飞技术股份有限公司 芯片系统中的数据传输处理方法及相关装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292858A1 (en) * 2008-05-23 2009-11-26 Vmware, Inc. Distributed Virtual Switch for Virtualized Computer Systems
US20100214949A1 (en) * 2009-02-23 2010-08-26 Cisco Technology, Inc. Distributed data center access switch

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100399767C (zh) * 2003-09-26 2008-07-02 华为技术有限公司 一种虚拟交换机系统接入ip公网的方法
US7693158B1 (en) * 2003-12-22 2010-04-06 Extreme Networks, Inc. Methods and systems for selectively processing virtual local area network (VLAN) traffic from different networks while allowing flexible VLAN identifier assignment
US8838743B2 (en) * 2004-02-13 2014-09-16 Intel Corporation Apparatus and method for a dynamically extensible virtual switch
US7620741B2 (en) * 2005-04-22 2009-11-17 Sun Microsystems, Inc. Proxy-based device sharing
TW200917240A (en) * 2007-10-05 2009-04-16 Sheng-Chi Chen Perpendicular magnetic recording film and method of fabricating the same
US8924960B2 (en) * 2008-08-28 2014-12-30 Intel Corporation Assignment, at least in part, of at least one virtual machine to at least one packet
WO2010028028A1 (en) * 2008-09-08 2010-03-11 Virginia Tech Intellectual Properties Systems, devices, and methods for managing energy usage
US8130641B2 (en) * 2009-03-13 2012-03-06 Hewlett-Packard Development Company, L.P. Methods and systems for managing network traffic within a virtual network system
US20110286380A1 (en) * 2010-05-21 2011-11-24 Yee Yi Zhu Wireless workgroup bridge for network viryualization
US8417800B2 (en) * 2010-07-16 2013-04-09 Broadcom Corporation Method and system for network configuration and/or provisioning based on open virtualization format (OVF) metadata
CN102316001B (zh) * 2011-10-13 2014-02-05 杭州华三通信技术有限公司 一种虚拟网络连接配置实现方法和网络设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292858A1 (en) * 2008-05-23 2009-11-26 Vmware, Inc. Distributed Virtual Switch for Virtualized Computer Systems
US20100214949A1 (en) * 2009-02-23 2010-08-26 Cisco Technology, Inc. Distributed data center access switch

Also Published As

Publication number Publication date
CN107508767B (zh) 2020-10-02
CN104221343A (zh) 2014-12-17
TW201404097A (zh) 2014-01-16
CN107508767A (zh) 2017-12-22
CN104221343B (zh) 2017-09-26
KR20140139522A (ko) 2014-12-05
WO2013147805A1 (en) 2013-10-03
DE112012006126T5 (de) 2014-12-24
TWI651957B (zh) 2019-02-21

Similar Documents

Publication Publication Date Title
US9280367B2 (en) Techniques for using an assigned switch identification at an input/output device
US10491517B2 (en) Packet processing method in cloud computing system, host, and system
US11005755B2 (en) Packet processing method in cloud computing system, host, and system
US11411828B2 (en) Host network analyzer
CN108293022B (zh) 一种报文传输的方法、装置和系统
KR101617210B1 (ko) 입력/출력 디바이스에서 할당 스위치 아이덴티피케이션을 사용하는 기술
US9590904B2 (en) Fast software L2 switching using a caching technique
US20160335107A1 (en) Logical processing for containers
US10645051B2 (en) Memory-mapped input/output (I/O) channel
US20150120962A1 (en) Sharing a java virtual machine
CN108337192B (zh) 一种云数据中心中报文通信方法和装置
CN103051529B (zh) 一种报文的处理方法和装置
US8661156B2 (en) Transport layer connection
WO2017219272A1 (zh) 转发报文的方法和装置
CN111698141B (zh) 报文的转发方法及装置
CN111756651A (zh) 一种流量传输方法、装置、设备、介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee