[go: up one dir, main page]

CN107508767B - Techniques for using assigned switch identifications in input/output devices - Google Patents

Techniques for using assigned switch identifications in input/output devices Download PDF

Info

Publication number
CN107508767B
CN107508767B CN201710697402.5A CN201710697402A CN107508767B CN 107508767 B CN107508767 B CN 107508767B CN 201710697402 A CN201710697402 A CN 201710697402A CN 107508767 B CN107508767 B CN 107508767B
Authority
CN
China
Prior art keywords
data
input
identification
tag
output device
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201710697402.5A
Other languages
Chinese (zh)
Other versions
CN107508767A (en
Inventor
E·露兹欧恩
I·霍富士
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Priority to CN201710697402.5A priority Critical patent/CN107508767B/en
Publication of CN107508767A publication Critical patent/CN107508767A/en
Application granted granted Critical
Publication of CN107508767B publication Critical patent/CN107508767B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/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/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Techniques for using assigned switch identifications in input/output devices are disclosed. Examples are disclosed for assigning a switch identification to data received at an input/output device coupled to a host device. In some examples, the data may be associated with a Virtual Station Interface (VSI) of a virtual machine implemented on the host device. For these examples, a switch identification may be assigned to the data based on the assigned port identifier, the identification information of the data, or the originator of at least a portion of the identification information. The assigned switch identification may then be used as part of a lookup table to determine one or more actions for processing data at the input/output device. Other examples are described and claimed.

Description

Techniques for using assigned switch identifications in input/output devices
The present application is a divisional application of the inventive patent application having PCT international application number PCT/US2012/031276, international application date of 2012, 3/29, application number 201280071997.9 of the phase of entering the chinese country, entitled "technique for using assigned switch identification in input/output device".
Background
An input/output (I/O) device, such as a Network Interface Card (NIC), may be coupled to a computing platform or host device deployed at the server-network edge where the server domain ends and the external network domain begins. One known way to implement switch logic or circuitry in NICs in these types of environments is through the use of a set of look-up tables. The lookup table may identify a portion of the data, such as a packet header, and then an action may be defined in the lookup table based on the packet header. Look-up tables are often good in implementing NICs that connect switch circuits of all ports through a single switch instance.
The standards adopted by the Institute of Electrical and Electronics Engineers (IEEE) recommendations describe implementing many switches as part of an Edge Virtual Bridging (EVB). The proposed Standard has the title "IEEE Standard for Local and metropolitan Area Networks-Virtual bridge Local Area Networks-interpretation edge Virtual Bridging" and is identified as IEEE802.1Qbg, draft 2.1, published 30 months 1 2012 (hereinafter "IEEE 802.1 Qbg"). A NIC operating in accordance with IEEE802. Qbg may require a separate private switch instance to be implemented for each logical or virtual port associated with the ethernet port. In addition, the NIC may also need to implement additional instances of local switches for internal traffic between processing elements in the host device, which may include Virtual Machines (VMs). Further, cascading switch instances may be required to implement a Virtual Ethernet Bridge (VEB) or Virtual Ethernet Port Aggregator (VEPA) within a single ethernet port. Using separate look-up tables for each switch instance may require a significant amount of NIC resources for these multiple switch instances.
Drawings
FIG. 1 illustrates an example system.
Fig. 2 illustrates an example switch identification structure.
Fig. 3 shows an example assigned switch identification table.
FIG. 4 illustrates an example lookup table.
Fig. 5 shows a block diagram of an example architecture of a switch manager.
Fig. 6 illustrates an example flow diagram for assigning switch identifications.
FIG. 7 illustrates an example system diagram for a host device.
Detailed Description
As contemplated in the present invention, multiple switch instances when implementing EVBs may require significant NIC resources when using separate look-up tables for each switch instance. Further, switch instances in a virtual switch environment may also be associated with dynamic configurations. Assigning separate lookup tables for each possible switch instance may require too much resources as a result of dynamic configuration, and may also limit possible configurations because a given NIC has limited resources to support these separate lookup tables.
In some examples, techniques are implemented for assigning a switch identification to data received at an input/output device coupled to a host device. For these examples, the data may be associated with a Virtual Station Interface (VSI) maintained on the I/O device, which may be communicatively coupled to a virtual machine implemented on the host device. For these examples, the data may be sent from one of a virtual machine or a network element capable of being coupled to the I/O device over a network communication link. A switch identification may be assigned to the data based on an assigned port identifier of a port used at the I/O device to receive the data, identification information of the data, and an originator of at least a portion of the identification information. The assigned switch identification may be used as part of a lookup table to determine one or more actions for processing data at the I/O device.
FIG. 1 illustrates an example first system. An example first system, as shown in FIG. 1, includes a system 100. The system 100 may include a host device 101 coupled to an input/output (I/O) device 140. As shown in fig. 1, I/O device 140 may be coupled to host device 101 through various Virtual Station Interfaces (VSIs) 111D, 112D, 113A, 114B, 115C, 116D, 117E, and 118x ('x' indicates being associated with a data channel yet to be established) included by virtual switches (V.S.)141, 143, 146, 147, 148, and 149. The various VSIs included with these virtual switches may be respectively arranged to be coupled to a Virtual Machine (VM)111 and 118 as shown in fig. 1, and may allow data (e.g., in the form of data packets or data frames) to be received from VM111 and 118 or sent/transmitted to VM111 and 118). For these examples, VM111 and 118 may be configured or arranged to be implemented using computing resources maintained on host device 101. Any number of virtual switches may be associated with any number of VSIs to be communicatively coupled to any number of VMs and/or virtual machine managers (hypervisors).
According to some examples, as shown in FIG. 1, logical ports (L-ports) 141-1D are shown as being included in virtual switch 141. The L-port 141-1D may act as a logical port that can be coupled to a data channel D. As mentioned more below, the data channel D may be arranged to route data between VM111 and VM 112. The routing of data, for example, may be through the corresponding VSIs 111D and 112D as shown in FIG. 1.
Further, as also shown in FIG. 1, communication links 150-1 through 150-4 may couple network elements included in network 160 to host device 101 through respective ports 130-1 through 130-4. In some examples, ports 130-1 through 130-4 may represent physical connectors or ports through which data (e.g., in the form of data packets or frames) may be received at I/O device 140 or transmitted/transmitted from I/O device 140. The I/O device 140 is also shown to include a port expander 144. According to some examples, as shown in FIG. 1, port expander 144 may include E-port 144-1C and E-port 144-2D. For these examples, port expander 144 may allow physical port 130-2 to be expanded to at least two expanders/logical ports to route data to/from virtual switches 146 and 147 through E-port 144-1C and E-port 144-2D.
In some examples, as shown in fig. 1, the I/O device 140 includes a switch manager 142. As described more below, the switch manager 142 may include logic and/or features to assign a switch identification to data received in the I/O device 140. For these examples, the data may be received at one of the various ports depicted in fig. 1. The assigned switch identification may then be used as part of a lookup table to determine one or more actions (e.g., forwarding, encryption/security processing, etc.) for processing data in the I/O device 140.
According to certain examples, the I/O device 140 may be configured to operate or implement these aspects in accordance with at least some aspects of the proposed IEEE standards (including progeny and variants) entitled "Standard for Local and metropolitan Area Networks-Virtual Bridged Area Networks-Bridge portal extensions for Local and metropolitan Area Networks" and identified as IEEE802.1BR, draft 3.2 (published 2012-1-25 (hereinafter "IEEE 802.1 BR"). For these examples, the I/O device 140 may also be configured to operate or implement at least some aspects of the proposed IEEE802.1Qbg standard (including progeny and variants). As part of an implementation of IEEE802.1Qbg or IEEE802.1BR, various data channels may be established for routing data locally between virtual machines on host device 101 or globally to network elements located in network 160.
In some examples, as shown in FIG. 1, the various established data channels are identified as data channels A-E. For these examples, the various VSIs coupled to VM111 through VM 116 are associated with data channel A, B, C, D or E, except for VSI 118x coupled to virtual machine 118. In some examples, VSI 118x may represent the VSI yet to be associated with the established data channel. As mentioned more below, data routed through VSI 118x may include control information for ultimately establishing a data channel with VSI 118 x. For these examples, this default identification or marking of control data may be generated or produced locally in the I/O device 140 and then used to assign the switch identification to the data.
According to some examples, data channels may be used to route data between VMs located in host device 101 or between VMs and network elements located in network 160. For these examples, the identification information for data routed through these data channels may include flags described in IEEE802.1Qbg or IEEE802.1 BR. The tag may be a service tag (S-tag) or a bridge port extension tag (E-tag). In some examples, the S-tag or E-tag may be identification information indicating that data with one of these tags may be associated with a given channel. These tags may be generated globally or sent from elements remote from the I/O device 140, such as network elements on the network 160.
In some examples, switch manager 142 may include logic and/or features arranged to receive data in I/O device 140. The data may be associated with a VSI and may have identification information (e.g., an S-tag or an E-tag) indicating that it is associated with channel a. As shown in fig. 1, the VSI coupled to or associated with channel a may be VSI 113A. For these examples, VSI 113A may be arranged or configured to couple to VM113 and also arranged to route data from VM113 through virtual switch 143. According to some examples, data may be considered to be received at physical port 130-1 coupled to channel a because the data is routed via a data channel coupled to network 160. The switch manager 142 may include logic and/or features arranged or configured to assign a switch identification number to data based on an identifier assigned to the port 130-1, identification information (e.g., label information) of the data, and an originator of at least a portion of the identification information. The switch identification information may then be used by logic and/or features of switch manager 142 as part of a lookup table to determine one or more actions for processing data in I/O device 140.
In some other examples, data having identification information indicating an association with channel a may be received in I/O device 140 through port 130-1. Data received through port 130-1 may then be routed to virtual switch 143 through channel a. As mentioned above, the VSI 113A may be coupled to the VM 113. For these examples, the VSI 113A may be arranged to cause data to be sent or transmitted to the VM 113. For these other examples, switch manager 142 may include logic and/or features arranged or configured to assign a switch identification number to the data based on an identifier assigned to the I/O device 140 receiving port (port 130-1), identification information of the data, and an originator of at least a portion of the identification information. The switch identification information may then be used by logic and/or features of switch manager 142 as part of a lookup table to determine one or more actions for processing data in I/O device 140.
In some examples, data that may be routed between VMs 111 and 112 through data channel D in virtual switch 141 may be received at a port included in I/O device 140. Data received from VM111 at L-port 141-1D through VSI 111D may have destination VM 112. For these examples, the identification information for the data received at port 141-1D may include a data channel identification number generated at I/O device 140 (e.g., at virtual switch 141). The data channel D identification number may be in a format similar to an S-tag or an E-tag. The switch manager 142 may comprise logic and/or features arranged or configured to assign a switch identification number to data based on an identifier assigned to the port 141-1D, a locally generated channel D identification number, and an indication that an originator of at least a portion of the identification information is located in the I/O device 140. The switch identification information may then be used by logic and/or features of switch manager 142 as part of a lookup table to determine one or more actions for processing data in I/O device 140.
In some examples, the virtual switch 141 may be configured to operate in accordance with IEEE802.1Qbg and act as a Virtual Ethernet Bridge (VEB).
In some examples, communication links 150-1 through 150-4 may communicatively couple I/O device 140 to network 160 through ports 130-1 through 130-4, respectively. Communication links 150-1 through 150-4 may include various types of wired, wireless, or optical communication media. For these examples, communication links 150-1 through 150-4 may operate in accordance with one or more applicable communication or network standards in any version. The communication or network standard may include, but is not limited to, IEEE802.1Qbg or IEEE802.1 BR.
Fig. 2 illustrates an example switch identification structure 200. In some examples, switch manager 142 may include logic and/or features to assign a switch identification to data received in I/O device 140 using switch identification fabric 200. As shown in fig. 2, the switch identification structure includes fields 210, 220, and 230. In some examples, field 210 may indicate an originator of at least a portion of the data. The field 220 may indicate an assigned port identifier of the port through which data may be received in the I/O device 140. The field 230 may indicate identification information of the data. The identification information of the data may include a data channel identification number, such as an S-tag, an E-tag, or locally generated/generated default information.
According to some examples, the local originator of the identification information may be indicated in the switch ID structure 200 by a 1-bit binary value of 0, and the global originator may be indicated by a 1-bit value of 1 in field 210. Further, the received port # in field 220 may be indicated by a 3-bit value. Thus, for example, an assigned identifier of "4" would be indicated by a 3-bit binary value of 100, and an assigned identifier of "2" would be indicated by a 3-bit binary value of 010. The present invention is not limited to only 1-bit or 3-bit binary values for fields 210 or 220, respectively.
In some examples, the identification information for the data included in field 230 may include data channel identification numbers from 1 to 4096. In addition, the S-tag or E-tag information may also include identification numbers from 1 to 4096. These identification numbers may be represented in field 230 as 12-bit binary values or 3-character hexadecimal values. The present invention is not limited to 12-bit binary or 3-character hexadecimal values of field 230, or numbers from 1 to 4096.
Fig. 3 illustrates an example assigned switch identification table 300. In some examples, assigned switch ID table 300 depicts how switch identifications may be assigned to data using values associated with switch ID fabric 200. For these examples, assigned switch ID table 300 may be stored at least in a memory (e.g., memory 145) maintained in I/O device 140. The various virtual switches of the I/O device 140 are listed in the left column of the assigned switch identification table 300, while the assigned switch identifications for the received data are listed in the right three columns.
According to some examples, switch manager 142 may include logic and/or features configured or arranged to assign a switch identification to data based on an assigned port identifier of a port through which the data is received, identification information (flag or default) of the data, and an originator (local or global) of at least a portion of the identification information. For example, virtual switch 141 is mentioned above in generating identification information for data routed between VMs 111 and 112. As such, the value 0 is indicated in the "local/global" column of virtual switch 141. Further, in some examples, the L-port 141-1D of virtual switch 141 may have been assigned port number 1, and this port number of virtual switch 141 is shown in table 300 as having a binary value of 001. Further, data may be forwarded between VSIs coupled to virtual switch 141 over data channel D. For this example, the data channel identification associated with data channel D may have a hexadecimal value of 0x005, which is shown in the "identification information" column in fig. 3.
In some examples, as mentioned above with respect to fig. 1, virtual switches 143 and 146-148 may be configured to receive data having identification information generated or produced remotely from I/O device 140. Thus, the value 1 is indicated in the "local/global" columns of virtual switches 143 and 146 and 148. For these virtual switches, data received from network 160 may be received through ports 130-1 through 130-3. These three ports may be assigned port numbers 1-3, from left to right (see fig. 1), and these port numbers are shown in table 300 as having binary values 001, 010, and 011, respectively. Further, data may be forwarded or routed through VSIs coupled to the virtual switches via one of the data channels a-E. According to some examples, the S-tag may be associated with data received over data channels A-E. The S-tags received over data channels a-E may have identification numbers with hexadecimal values 0x002, 0x003, 0x004, 0x005, and 0x006, respectively.
In some examples, virtual switch 149 may be configured to receive data over an unassigned data channel x coupled to port 130-4. Since the data channel has no assigned data number, the originator of the identification information of the data received over channel x is considered local and indicates a value of 1 in the column "local/global" column of virtual switch 149. As shown in fig. 1, port 130-4 may be a fourth port coupled to network 160. According to some examples, port 130-4 may be assigned port number 4 with a binary value of 100, as indicated in the "received port #" column. Further, a default hexadecimal value of 0x000 is also indicated in the "identification information" column, showing that data received at virtual switch 149 may not have been associated with or assigned a data channel identification number.
According to some examples, as shown in table 300, the data channel identification numbers for data channel D at virtual switch 141 and data channel D at virtual switch 147 are both 0x 005. However, since the data channel identifier for data channel D at virtual switch 141 is from a local originator, the assigned switch identification is different because the local identifier has a value of 0 as compared to the global identifier having a value of 1 for data channel D at virtual switch 147.
Fig. 4 illustrates an example lookup table 400. As shown in fig. 4, the lookup table 400 contains columns for assigned switch identifications, VSI identifications, and associated actions. According to certain examples, the assigned switch identification may be based on the assigned switch ID table 300, as described above for fig. 3. For these examples, the 1-bit and 3-bit binary values in the "local/global" and "received port #" columns may be combined to form a 4-bit binary value, and then the 4-bit binary value may be converted to a 1-character hexadecimal value. Then, a 1-character hexadecimal value may be added as a fourth character to the 3-character data characteristic value shown in the "identification information" column of the assigned switch ID table 300. As a result of these combinations, a given assigned switch identification may have a 4-character hexadecimal value as shown in the look-up table 400. For example, data received at port 3 of the I/O device 140 with a global originator of the identification information would have a 4-bit binary value 1011 and this value would be converted to a hexadecimal value B (or decimal number 11).
According to some examples, as shown in fig. 4, lookup table 400 may include a "VSI info" column to indicate identification information including a Virtual Local Area Network (VLAN)/Media Access Controller (MAC) ID. For these examples, the VLAN/MAC ID information may be used with the assigned switch ID to further determine which actions to take on data received at the I/O device 140.
In some examples, as shown in fig. 4, the received data may be assigned a 4-character switch identification number, and switch manager 142 may include logic and/or features configured or arranged to use the specified switch identification as part of lookup table 400 and possibly VLAN/MAC ID information in order to determine an action for the data received through a given port at I/O device 140.
According to some examples, the switch manager 142 maintained in the I/O device 140 may include logic and/or features to at least temporarily store the lookup table 400 in the memory 145. For these examples, at least some portions of memory 145 may be arranged or configured as a ternary content-addressable memory (TCAM). Data received at the I/O device 140 and assigned a given switch identification may be quickly associated with its corresponding assigned switch identification and a corresponding processing action may be quickly determined based on the use of the assigned switch identification indicated in the lookup table 400.
In some examples, as shown in fig. 4 for lookup table 400, the action for processing the data assigned the given switch identification may include routing the data directly to the given port. For example, data with an assigned switch identification of 0x1005 may be routed directly to VSI 111D. This data may then be transferred/sent from the VSI 111D to the VM 112.
According to some examples, as shown in fig. 4 for lookup table 400, the action for processing the data assigned to the given switch identification may include an element of I/O device 140 (e.g., a cryptographic processor circuit) performing cryptographic processing on the data and then routing the data to the given port. For example, data with an assigned switch identification of 0x9002 may be forwarded to a cryptoprocessor circuit for encryption/decryption and then routed to VSI 113A. Data may then be transferred/sent from the VSI 113A to the VM 113.
In some examples, as shown in fig. 4 for lookup table 400, the action for processing the data assigned the given switch identification may include an element of I/O device 140 (e.g., a security processor circuit) performing packet/frame check processing on the data and then routing the data to the given port. For example, data with an assigned switch identification of 0xA005 may be forwarded to the security processor circuit for packet/frame inspection and then routed to the corresponding port. Data may then be transferred/sent from the VSI 116D to the VM 116.
Fig. 5 shows a block diagram of an example architecture of the switch manager 142. In some examples, switch manager 142 may include logic and/or features configured or arranged to assign a switch identification to data received in I/O devices 140 coupled to the host device. According to some examples, as shown in fig. 5, switch manager 142 includes switch logic 510, control logic 520, memory 530, and input/output (I/O) interfaces 540. As shown in fig. 5, switch logic 510 may be coupled to control logic 520, memory 530, and I/O interfaces 540. Switch logic 510 may include one or more of receive feature 512, assign feature 514, or query feature 516, or any reasonable combination thereof.
In some examples, the elements depicted in fig. 5 are configured to support or enable a switch manager 142 as described elsewhere herein. A given switch manager 142 may include some, all, or more elements than depicted in fig. 5. For example, switch logic 510 and control logic 520 may individually or collectively represent various logical devices or executable content for implementing features of switch manager 142. An example logic device may include one or more of a processor circuit, a microprocessor, a microcontroller, a processor circuit, a Field Programmable Gate Array (FPGA), an Application Specific Integrated Circuit (ASIC), separate threads or cores of a multi-core/multi-threaded microprocessor, cryptographic blocks, a split processor, or a combination thereof.
In some examples, as shown in fig. 5, the switch logic 510 includes a receive feature 512, an assign feature 514, or a query feature 516. The switch logic 510 may be configured to perform operations using one or more of these features. For example, receive feature 512 may assist an I/O device in receiving data. Assignment feature 514 can assign a switch identification number based on an assigned port identifier of a port through which data is received in the I/O device, identification information of the data, and an originator of at least a portion of the identification information. Query feature 516 may use the specified switch identification as part of a lookup table to determine one or more actions for processing data at the I/O device.
In some examples, the control logic 520 may be configured to control the overall operation of the mode switch manager 142. As mentioned above, control logic 520 may represent any of a variety of logic devices or executable content. For certain examples, control logic 520 may be configured to operate with executable content or instructions to implement control of switch manager 142. In some alternative examples, the features and functions of control logic 520 may be implemented within switch logic 510.
According to some examples, memory 530 may be configured to store executable content or instructions for use by control logic 520 and/or switch logic 210. The executable content or instructions may be used to implement or activate features, elements, or logic of the switch manager 142. As described more below, memory 530 may also be arranged to at least temporarily maintain information associated with assigning a switch identification number to data received at an I/O device coupled to the host device.
Memory 530 may include one or more of a variety of non-volatile memory media including, but not limited to, flash memory, programmable variables or states, Read Only Memory (ROM), Random Access Memory (RAM), or other static or dynamic memory media.
In some examples, I/O interface 540 may provide an interface through a local communication medium or link between switch manager 142 and an element of an I/O device or an element of a host device. I/O interface 540 may comprise an interface that operates in accordance with various communication protocols or standards to communicate over a local communication medium or link. These communication protocols or standards may be described in one or more industry standards, including progeny and variants, such as those associated with the inter-integrated circuit (I2C) specification, the system management bus (SMBus) specification, the Accelerated Graphics Port (AGP) specification, the peripheral component interconnect Express (PCI Express) specification, the Universal Serial Bus (USB) specification, or the Serial Advanced Technology Attachment (SATA) specification. Although the present invention is not limited to the standards and associated protocols mentioned above.
According to some examples, I/O interface 540 may provide an interface through a network communication link or channel between switch manager 142 and an element of a computing device coupled to the I/O device and/or a network element associated with the communication link coupled to the I/O device. I/O interface 540 may comprise an interface that operates in accordance with various communication protocols or standards to communicate over a network communication link or channel. These communication protocols or standards may be described in ethernet-related standards or specifications (including progeny and variants), such as those associated with IEEE802.1Qbg or IEEE802.1 BR. The present invention is not limited to these ethernet-related standards.
Fig. 6 illustrates an example flow diagram for assigning switch identifications. In some examples, elements of the system 100 as shown in fig. 1 may be used to illustrate example operations related to the flow diagram depicted in fig. 6. Example operations may also be illustrated using a switch manager 142 as shown in fig. 1 or fig. 5. However, the example operations described are not limited to only an implementation or switch manager 142 on the system 100 as described above with respect to fig. 1 or 5.
Example operations related to the flow diagram depicted in fig. 6 may also be illustrated using the switch ID structure 200, assigned switch ID table 300, and lookup table 400 as shown in fig. 2-4. However, the example operations described are not limited to the specific structures or tables shown in FIGS. 2-4.
Moving from the start to block 610 (receive data), switch manager 142 may include logic and/or features arranged to assist I/O device 140 in receiving data (e.g., by receiving features 512). In some examples, the data may be in the form of data packets or frames and have destinations associated with one or more virtual machines in host device 101 or one or more network elements in network 160.
Proceeding from block 610 to decision block 620 (from network. In some examples, data may be received from VM111 or VM 112 through L-port 141-1D included in virtual switch 141. For these examples, the process moves to decision block 630. In other examples, the data may be received from network elements located in network 160. For these other examples, the process moves to decision block 650.
Moving from decision block 620 to decision block 630 (with a flag. In some examples, a data packet header associated with the data may not include identification information for identifying the association with the data channel. For these other examples, the process moves to decision block 640. Otherwise, if the received data includes identification information, the process moves to block 670.
Moving from decision block 630 to block 640 (switch ID ═ { local, port #, VSI channel ID }), switch manager 142 may include logic and/or features arranged to assign a switch identification to the data (e.g., by assigning feature 514). In some examples, since the data does not include identification information, the originator of the identification information will be local. Port # will be the assigned identifier of the L-port 141-1D included in the virtual switch 141. The VSI channel ID may be a channel identification number assigned by the switch manager 142 that may be in a similar format as an S-tag or E-tag.
Moving from decision block 620 to decision block 650 (with a flag. In some examples, a data packet header associated with the data may not include identification information for identifying the association with the data channel. For these other examples, the process moves to decision block 660. Otherwise, if the received data includes identification information, the process moves to block 670.
Moving from decision block 650 to 660 (switch ID ═ { local, port #, default ID }), switch manager 142 may include logic and/or features arranged to assign a switch identification to the data (e.g., by assigning feature 514). In some examples, similar to block 640, since the data does not include identification information, the originator of the identification information will be local. Port # may be an assigned identifier of a port (e.g., port #4) coupled to one of communication links 150-1 through 150-4 through which data is received from the network. The default ID may be a default channel identification number assigned by the switch manager 142, which may be in a similar format as an S-tag or E-tag.
Moving from decision block 630 or decision block 650 to block 670 (switch ID ═ global, port #, label }), switch manager 142 may include logic and/or features configured to assign a switch identification to the data (e.g., by assigning feature 514). In some examples, the identification information for the data may be generated outside or remotely from the I/O device 140 and thus considered global. Port # may be an assigned identifier of a port (e.g., port #2) coupled to one of communication links 150-1 through 150-2 through which data is received from the network. Further, the tag may also be identification information of the data, and may be in a format similar to an S-tag or an E-tag.
Moving from block 640, 660, or 670 to block 680 (using the switch ID to process the data), switch manager 142 may include logic and/or features for using the switch identification number assigned to the data, and may also use the VSI ID information (VLAN/MAC ID) to determine one or more actions for processing the data at I/O device 140 (e.g., by querying feature 516). In some examples, one or more actions of the data may be determined using actions identified in the lookup table 400 for the corresponding switch identification number. As mentioned above, the one or more actions may include routing data, cryptographic processing of data, or packet inspection processing of data. The process then ends.
Fig. 7 illustrates an example system diagram of a host device 700. As shown in fig. 7, host device 700 includes hypervisor 705, operating system 710, application programs 720, network input/output (I/O) devices 730, user input/output (I/O) devices 740, storage 750, memory 760, Central Processing Unit (CPU)770, chipset 780, and communications equipment (Comms) 790. Also depicted in fig. 7 are a number of interfaces for interconnecting and/or communicatively coupling elements of host device 700, according to some examples. For example, user interface 715 and interface 735 may allow a user (not shown) and/or application programs 720 to couple to operating system 710 and/or hypervisor 705. Further, interface 735 may also allow hypervisor 705 and/or elements of operating system 710 (e.g., device drivers 711) to be communicatively coupled to elements of host device 700, such as network I/O device 730, user I/O device 740, storage 750, memory 760, CPU 770, chipset 780, or communications apparatus 790. The interface 754, for example, may allow hardware and/or firmware elements of the host device 700 to be communicatively coupled together, e.g., via a system bus or other type of internal communication channel.
In some examples, as shown in fig. 7, host device 700 may include an operating system 710. Operating system 710, for example, may include one or more operating systems. The separate operating system included in operating system 710 may be implemented as part of a separate virtual machine supported by elements of host device 700. For these examples, a separate virtual machine may be associated with one or more processors included in CPU 770. Further, for these examples, hypervisor 705 may also act as a virtual machine manager for these separate virtual machines.
According to some examples, as shown in FIG. 7, the operating systems 710 may each include a device driver 711. The device driver 711 may include logic and/or features configured to interact with hardware/firmware type elements of the host device 700 (e.g., via the interface 735). For example, device drivers 711 may include a device driver that controls or instructs memory 750 or memory 760 to satisfy requests made by application programs 720 or operating system 710. The device drivers 711 may also include device drivers that enable the network I/O device 730 to interact with the CPU 770 and the memory 760 to receive/forward data over a communication channel coupled to the host device 700 (e.g., through the network I/O device 730 or the communications apparatus 790).
In some examples, application 720 may include an application that may be implemented on host device 700. For these examples, application 720 may request access (e.g., through operating system 710) or use elements of the system, such as user I/O device 740, storage 750, or memory 760.
According to some examples, network I/O device 730 may be similar to I/O device 140 described above with respect to fig. 1. For these examples, network I/O device 730 may include switch manager 142 (not shown in fig. 7) having logic and/or features configured or arranged to assign a switch identification to data received in network I/O device 730. In some examples, network I/O device 730 may be configured to function as a Network Interface Card (NIC).
In some examples, user I/O device 740 may include one or more user input devices coupled to interface 754 for entering data and commands to be implemented by elements of host device 700. For example, the user input device may include a keyboard, mouse, touch screen, track pad, track ball, equal point mouse (isopoint), voice recognition system, and/or the like. Similarly, user I/O device 740 may include one or more user output devices coupled to interface 754 for outputting information to an operator or user. For example, the user output devices may include one or more displays, printers, speakers, and/or other user output devices, if desired. For example, one of the user output devices may be a display. The display may be a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), or any other type of display.
In some examples, storage 750 may include various types of memory configured to be implemented or operated in a storage mode of operation. Storage 750 may include at least one or a combination of different types of storage devices that store relatively large amounts of data. These different types of storage devices may include, but are not limited to, magnetic disk drives, optical disk drives, tape drives, internal storage devices, attached storage devices, flash memory, battery-powered SDRAM (synchronous DRAM), network-accessible storage devices, and/or other types of non-volatile memory (e.g., Phase Change Memory (PCM)). In some examples, storage 750 may be included as part of user I/O device 730, rather than as a separate element as depicted in fig. 7.
According to some examples, memory 760 may include different types of memory including at least one or a combination of RAM, DRAM, static RAM (sram), phase change material RAM (pram), and/or other types of volatile memory. In some examples, memory 760 may be configured to maintain buffers used by network I/O device 730, CPU 770, and/or elements of operating system 710 to at least temporarily store received data.
According to some examples, CPU 770 may be implemented as a central processing unit of host device 700. CPU 770 may include one or more processors having one or more processor cores, respectively. In some examples, CPU 770 may include any type of processor, such as, for example, a multi-core processor, a Reduced Instruction Set Computer (RISC), a processor with a pipeline, a Complex Instruction Set Computer (CISC), a Digital Signal Processor (DSP), and so forth.
In some examples, chipset 780 may provide intercommunication among operating system 710, network user equipment 730, user I/O device 740, storage 750, memory 760, CPU 770, or communication means 790. For example, chipset 780 may provide intercommunication among operating system 710, user I/O device 740, memory 750 and CPU 770 to retrieve information from memory 750 for displaying graphics on a display comprised in user I/O device 740. The graphics may be rendered by CPU 770 at the request of an operating system included in operating system 710.
In some examples, communications apparatus 790 may include logic and/or features to allow host device 700 to communicate externally with elements remote from host device 700. These logic and/or features may include communicating over wired, wireless, or optical communication channels or links via one or more wired, wireless, or optical networks. In communicating across such networks, the communications device 790 may operate in accordance with any version of one or more applicable communications or network standards. Further, in some examples, communications apparatus 790 may also be integrated with network I/O device 730 to receive/forward data associated with communications to elements remote from host device 700.
As mentioned above, the interface 754 may allow the host device 70The hardware and/or firmware elements of 0 are communicatively coupled together. According to some examples, the interface 754 may operate according to one or more protocols or standards. May be in one or more industry standards (including progeny and variants), such as the inter-integrated circuit (I2C) standard, the system management bus (SMBus) standard, the Accelerated Graphics Port (AGP) standard, the peripheral component interconnect Express (PCI Express) standard, the Universal Serial Bus (USB) specification, the High Definition Multimedia Interface (HDMI) standard, the Digital Visual Interface (DVI) specification, the bluetooth specificationTMSpecifications, or those associated with the Serial Advanced Technology Attachment (SATA) specification, describe these protocols or standards. Although the present invention is not limited to the standards and associated protocols mentioned above.
In some examples, host device 700 may be included in a computing device. Examples of computing devices may include, but are not limited to, physical end stations, servers, blade servers, computing boards, workstations, desktop computers, Personal Computers (PCs) or laptop computers, ultra-mobile computers, and the like.
One or more aspects of at least one example may be implemented by representative instructions stored on at least one machine-readable medium which represent various logic within a processor, which when read by a machine, computing device, or system, causes the machine, computing device, or system to fabricate logic to perform the techniques described herein. Such representations, known as "IP cores" may be stored in a tangible, machine-readable medium and provided to various customers or production facilities for loading into the fabrication machines that actually manufacture the logic or processor.
Examples may be implemented using hardware elements, software elements, or a combination of both. In some examples, hardware elements may include devices, logic devices, components, processors, microprocessors, circuits, processor components, circuit elements (e.g., transistors, resistors, capacitors, inductors, and so forth), integrated circuits, Application Specific Integrated Circuits (ASIC), Programmable Logic Devices (PLD), Digital Signal Processors (DSP), Field Programmable Gate Array (FPGA), memory units, logic gates, registers, semiconductor device, chips, microchips, chip sets, and so forth. In some examples, a software element may include a software component, a program, an application, a computer program, a system program, a machine program, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, Application Program Interfaces (API), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Determining whether an example is implemented using hardware elements or software elements may vary in accordance with any number of factors, such as desired computational rate, power levels, heat tolerances, processing cycle budget, input data rates, output data rates, memory resources, data bus speeds and other design or performance constraints, as desired for a given implementation.
Some examples may include an article of manufacture or at least one computer-readable medium. The computer-readable medium may include a non-transitory storage medium storing logic. In some examples, a non-transitory storage medium may include one or more types of computer-readable storage media capable of storing electronic data, including volatile memory or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or re-writeable memory, and so forth. In some examples, logic may include various software elements, such as software components, programs, applications, computer programs, application programs, system programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, APIs, instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof.
According to some examples, a computer-readable medium may include a non-transitory storage medium storing or maintaining instructions that, when executed by a machine, computing device, or system, cause the machine, computing device, or system to perform a method and/or operations according to the described examples. The instructions may include any suitable type of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, and the like. The instructions may be implemented according to a predefined computer language, manner or syntax, for instructing a machine, computing device or system to perform a certain function. The instructions may be implemented using any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language.
Some examples may be described using the expression "in one example" or "an example" along with their derivatives. These terms mean that a particular function, structure, or characteristic described with reference to an example is included in at least one example. The appearances of the phrase "in one example" in various places in the specification are not necessarily all referring to the same example.
The expressions "coupled" and "connected," along with their derivatives, may be used to describe some examples. These terms are not necessarily intended as synonyms for each other. For example, descriptions using the terms "connected" and/or "coupled" may indicate that two or more elements are in direct physical or electrical contact with each other. The term "coupled," however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.
It is emphasized that the abstract of the disclosure is provided to comply with 37c.f.r. paragraph 1.72(b), requiring an abstract that will allow the reader to quickly ascertain the characteristics of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. Furthermore, in the foregoing "detailed description," it can be seen that various features may be combined in one example in order to simplify the description. This method of disclosure is not to be interpreted as reflecting an intention that the claimed examples require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed example. Thus the following claims are hereby incorporated into the detailed description, with each claim standing on its own as a separate example. In the appended claims, the terms "comprising" and "characterized by" are used as the plain-english equivalents of the respective terms "comprising" and "wherein". Furthermore, the terms "first," "second," "third," and the like are used merely as labels, and are not intended to impose numerical requirements on their objects.
In some examples, a method may be implemented that includes receiving data at an input/output device coupled to a host device. The data may be associated with a virtual station interface maintained in the input/output device. The virtual station interface may be communicatively coupled to a virtual machine implemented in the host device. The data may be sent from one of the virtual machines or network elements capable of being coupled to the input/output device through a network communication link. A switch identification may be assigned to the data based on an assigned port identifier of a port used to receive the data at the input/output device, identification information of the data, and at least a portion of an originator of the identification information. According to some examples, the assigned switch identification may be used as part of a lookup table to determine one or more actions for processing data at the input/output device.
In some examples, implementations of this method may include: the port for receiving data comprises one of: a physical port capable of coupling to a network communication link; or a logical port capable of being coupled to a data channel arranged to route data from a virtual machine to another virtual machine implemented on the host device.
According to some examples, an implementation of this method may include an originator of at least a portion of identification information to be identified as local based on identification information of data being generated in an input/output device, the data originator being identified as global based on the identification information of the data being generated external to the input/output device. For these examples, the local identification may be associated with the first identifier and the global identification may be associated with the second identifier. The assigned switch identification may include one of the first identifier or the second identifier based on whether the originator is identified as local or global.
In some examples, an implementation of this method may include identifying that an originator of at least a portion of the information is to be identified as local. For these examples, the identification information for the data may include a data channel identification number associated with a virtual station interface communicatively coupled to the virtual machine.
According to some examples, an implementation of this method may include identifying that an originator of at least a portion of the information is to be identified as local. For these examples, the identification information for the data may include a default identification number generated at the input/output device based on the data associated with the control data. The control data may involve establishing a data channel between the network element and the virtual machine. The data channels are routed through the virtual station interface.
In some examples, implementation of this method may include operating the input/output device according to one or more ethernet specifications. The one or more ethernet specifications may include an Institute of Electrical and Electronics Engineers (IEEE)802.1Qbg ethernet specification or an IEEE802.1BR ethernet specification. For these examples, an originator of at least a portion of the identification information may be identified as global, and the identification number may include one of a service tag (S-tag) or a bridge port extension tag (E-tag). The S-tag or the E-tag may relate to a data channel established between the network element and the virtual machine. The established data channel may be routed through a virtual station interface.
According to some examples, implementations of this method may include operating the I/O device according to one or more ethernet specifications. The one or more ethernet specifications include an Institute of Electrical and Electronics Engineers (IEEE)802.1Qbg ethernet specification or an IEEE802.1br ethernet specification. For these examples, an originator of at least a portion of the identification information may be identified as local, and the identification number includes one of a service tag (S-tag) or a bridge port extension tag (E-tag). The S-tag or the E-tag may relate to a data channel established between the virtual machine and the network element. The established data channel may be routed through a virtual station interface.
In some examples, implementations of this method may include storing information associated with a plurality of switches of the I/O device in a single switch identification table maintained in memory in the input/output device. The information may include an assigned switch identification for the data.
In some examples, implementations of this method may include using the assigned switch identification as part of a lookup table, including a lookup table to be stored in a memory in the input/output device, the memory arranged as a ternary content-addressable memory (TCAM).
According to certain examples, at least one machine readable medium comprises a plurality of instructions that in response to being executed on a computing device, cause the computing device to carry out an example method as mentioned above.
In some examples, an apparatus may include means for performing the example methods as mentioned above.
According to certain examples, an example apparatus may include a processor circuit and a memory unit communicatively coupled to the processor circuit. The memory unit may be arranged to store instructions of logic operating on the processor circuit. The logic may be configured to receive data in an input/output device that is capable of being coupled to a host device. The data may have a destination associated with a virtual station interface maintained in the input/output device. The virtual station interface may be capable of coupling to a virtual machine implemented in the host device. The data may be sent from one of the virtual machines or network elements capable of being coupled to the input/output device through a network communication link. The logic may also be configured to assign a switch identification to the data based on the assigned port identifier used to receive the data at the input/output device, the identification information of the data, and an originator of at least a portion of the identification information. For these examples, logic may be configured to use the assigned switch identification as part of a lookup table to determine one or more actions for processing the data at the input/output device.
In some examples of example devices, the memory unit may include volatile memory.
In some examples of example devices, the port for receiving data may include one of: a physical port capable of coupling to a network communication link; or a logical port capable of being coupled to a data channel configured to route data from a virtual machine to a virtual machine implemented in a host device.
According to some examples of example devices, the data-based identification information is generated in an input/output device, and an originator of at least a portion of the identification information may be identified as local. The identification information based on the data is generated external to the input/output device, and the data originator may also be identified or global. The local identification may be associated with a first identifier and the global identification may be associated with a second identifier. The assigned switch identification may include one of the first identifier or the second identifier based on whether the originator is identified as local or global.
In some examples of example devices, an originator of at least a portion of the identification information may be identified as local. Additionally, the identification information of the data may further include a data channel identification number associated with a virtual station interface capable of being coupled to the virtual machine.
According to some examples of example devices, an originator of at least a portion of the identification information may be identified as local. For these examples, the identification information for the data may include a default identification number generated at the input/output device based on the data associated with the control data. The control data may relate to establishing a data channel between the network element and the virtual station interface through the virtual station interface.
In some examples of example devices, the input/output device may be configured to operate in accordance with one or more ethernet specifications, including an Institute of Electrical and Electronics Engineers (IEEE)802.1Qbg ethernet specification or an IEEE802.1BR ethernet specification. For these examples, the originator of at least a portion of the identification information may be identified as global. The identification number may include one of a service tag (S-tag) or a bridge port extension tag (E-tag). The S-tag or the E-tag may relate to a data channel established between the network element and the virtual machine. The data channel may be routed through a virtual station interface.
According to certain examples of example apparatus, the input/output device may be arranged to operate in accordance with one or more ethernet specifications including an Institute of Electrical and Electronics Engineers (IEEE)802.1Qbg ethernet specification or an IEEE802.1BR ethernet specification. For these examples, an originator of at least a portion of the identification information may be identified as local, the identification number including one of a service tag (S-tag) or a bridge port extension tag (E-tag). Further, the S-tag or E-tag may also relate to a data channel established between the virtual machine and the network element. The established data channel may be routed through a virtual station interface.
In some examples of example devices, the logic may also be configured to use the assigned switch identification as part of a lookup table stored in memory in the input/output device. The memory may be arranged as a Triple Content Addressable Memory (TCAM).
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims (23)

1. A method for an input/output device, comprising:
receiving data at an input/output device coupled to a host device, the data for being routed through a virtual station interface maintained at the input/output device, the virtual station interface communicatively coupled to a virtual machine implemented at the host device, the data being transmitted from one of the virtual machine or a network element, the network element capable of being coupled to the input/output device through a network communication link;
assigning a switch identification to the data based on the assigned port identifier of the port through which the data was received at the input/output device, identification information of the data, and an originator of at least a portion of the identification information;
using the assigned switch identification as part of a lookup table to determine one or more actions for processing data at the input/output device.
2. The method of claim 1, wherein the port for receiving the data comprises one of: a physical port capable of coupling to the network communication link; or a logical port capable of being coupled to a data channel arranged to route data from the virtual machine to another virtual machine implemented at the host device.
3. The method of claim 1, wherein the originator of at least the portion of the identification information is to be identified as local based on the identification information of the data generated at the input/output device or the data originator is to be identified as global based on the identification information generated external to the input/output device, a local identification being associated with a first identifier and a global identification being associated with a second identifier, the assigned switch identification including one of the first identifier or the second identifier based on whether the originator is identified as local or global.
4. The method of claim 1, wherein the originator of at least a portion of the identification information is to be identified as local and the identification information of the data includes a data channel identification number associated with the virtual station interface communicatively coupled to the virtual machine.
5. The method of claim 1, wherein the originator of at least a portion of the identification information is to be identified as local and the identification information of the data includes a default identification number generated at the input/output device based on data associated with control data related to establishing a data channel between the network element and the virtual machine, the data channel routed through the virtual station interface.
6. The method of claim 1, comprising operating the input/output device in accordance with one or more ethernet specifications, the ethernet specifications including an institute of electrical and electronics engineers IEEE802.1Qbg ethernet specification or an IEEE802.1BR ethernet specification, the originator of at least the portion of the identification information to be identified as global and the identification number to include one of a service tag, S-tag, or a bridge port extension tag, E-tag.
7. The method of claim 6, wherein the S-tag or the E-tag relates to an established data channel between the network element and the virtual machine, the established data channel being routed through the virtual station interface.
8. The method of claim 1, comprising operating the input/output device in accordance with one or more ethernet specifications, the ethernet specifications including an institute of electrical and electronics engineers IEEE802.1Qbg ethernet specification or an IEEE802.1BR ethernet specification, the originator of at least a portion of the identification information to be identified as local, the identification number including one of a service tag, S-tag, or a bridge port extension tag, E-tag.
9. The method of claim 8, wherein the S-tag or the E-tag relates to an established data channel between the virtual machine and the network element, the established data channel being routed through the virtual station interface.
10. The method of claim 1, comprising storing information associated with a plurality of switches of the input/output device in a single switch identification table, the single switch identification table maintained in memory at the input/output device.
11. The method of claim 10, comprising the information comprising the assigned switch identification for the data.
12. The method of claim 1, wherein using the assigned switch identification as part of a lookup table comprises the lookup table to be stored in a memory at the input/output device, the memory arranged as a ternary content-addressable memory (TCAM).
13. An apparatus for an input/output device, comprising:
a processor circuit; and
a memory unit communicatively coupled to the processor circuit, the memory unit arranged to store instructions for logic operating on the processor circuit, the logic configured to receive data at an input/output device coupleable to a host device, the data arranged to be routed through a virtual station interface maintained at the input/output device, the virtual station interface coupleable to a virtual machine implemented on the host device, the data sent from one of the virtual machine or a network element coupleable to the input/output device over a network communication link, the logic further configured to determine, based on an assigned port identifier of a port through which the data was received at the input/output device, identification information of the data, and an originator of at least a portion of the identification information, assigning a switch identification to the data, the logic configured to use the assigned switch identification as part of a lookup table to determine one or more actions for processing the data at the input/output device.
14. The apparatus of claim 13, comprising the memory unit, the memory comprising a volatile memory.
15. The apparatus of claim 13, wherein the port for receiving the data comprises one of: a physical port capable of coupling to the network communication link; or a logical port capable of being coupled to a data channel arranged to route data from the virtual machine to another virtual machine implemented at the host device.
16. The apparatus of claim 13, the originator of at least the portion of the identification information is identified as local based on the identification information of the data generated at the input/output device, or the originator is identified as global based on the identification information of the data generated external to the input/output device, a local identification being associated with a first identifier and a global identification being associated with a second identifier, the assigned switch identification including one of the first identifier or the second identifier based on whether the originator is identified as local or global.
17. The apparatus of claim 16, comprising: the originator of at least a portion of the identification information is to be identified as local and the identification information of the data includes a data channel identification number associated with the virtual station interface that is capable of being coupled to the virtual machine.
18. The apparatus of claim 16, comprising: the originator of at least a portion of the identification information is to be identified as local and the identification information of the data includes a default identification number generated at the input/output device based on data associated with control data related to establishing a data channel between the network element and the virtual machine, the data channel routed through the virtual station interface.
19. The apparatus of claim 13, the input/output device arranged to operate in accordance with one or more ethernet specifications, the ethernet specification comprising an institute of electrical and electronics engineers IEEE802.1Qbg ethernet specification or an IEEE802.1br ethernet specification, the originator of at least the portion of the identification information to be identified as global, and the identification number comprising one of a service tag S-tag or a bridge port extension tag E-tag.
20. The apparatus of claim 19, wherein the S-tag or the E-tag relates to an established data channel between the network element and the virtual machine, the established data channel routed through the virtual station interface.
21. The apparatus of claim 13, the input/output device arranged to operate in accordance with one or more ethernet specifications, the ethernet specification comprising an institute of electrical and electronics engineers ieee 802.11 qbg ethernet specification or an ieee 802.11 br ethernet specification, the originator of at least the portion of the identification information to be identified as local and the identification number comprising one of a service tag S-tag or a bridge port extension tag E-tag.
22. The apparatus of claim 21, wherein the S-tag or the E-tag relates to an established data channel between the virtual machine and the network element, the established data channel routed through the virtual station interface.
23. The apparatus of claim 13, comprising the logic further configured to use the assigned switch identification as part of a lookup table stored in a memory at the input/output device, the memory arranged as a ternary content-addressable memory TCAM.
CN201710697402.5A 2012-03-29 2012-03-29 Techniques for using assigned switch identifications in input/output devices Active CN107508767B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710697402.5A CN107508767B (en) 2012-03-29 2012-03-29 Techniques for using assigned switch identifications in input/output devices

Applications Claiming Priority (3)

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
CN201280071997.9A CN104221343B (en) 2012-03-29 2012-03-29 Techniques for using assigned switch identities in input/output devices
CN201710697402.5A CN107508767B (en) 2012-03-29 2012-03-29 Techniques for using assigned switch identifications in input/output devices

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201280071997.9A Division CN104221343B (en) 2012-03-29 2012-03-29 Techniques for using assigned switch identities in input/output devices

Publications (2)

Publication Number Publication Date
CN107508767A CN107508767A (en) 2017-12-22
CN107508767B true CN107508767B (en) 2020-10-02

Family

ID=49260867

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710697402.5A Active CN107508767B (en) 2012-03-29 2012-03-29 Techniques for using assigned switch identifications in input/output devices
CN201280071997.9A Active CN104221343B (en) 2012-03-29 2012-03-29 Techniques for using assigned switch identities in input/output devices

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201280071997.9A Active CN104221343B (en) 2012-03-29 2012-03-29 Techniques for using assigned switch identities in input/output devices

Country Status (5)

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

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 (en) * 2016-11-17 2018-05-01 宏碁股份有限公司 Root complex management method and root complex
CN109426545B (en) * 2017-08-31 2023-02-03 阿里巴巴集团控股有限公司 Data communication method and device
CN112532756B (en) * 2019-09-17 2023-10-24 华为技术有限公司 Interface expansion method, device and system
CN114328623B (en) * 2021-12-28 2025-05-30 深圳云天励飞技术股份有限公司 Data transmission processing method and related device in chip system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010028028A1 (en) * 2008-09-08 2010-03-11 Virginia Tech Intellectual Properties Systems, devices, and methods for managing energy usage
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
CN102340419A (en) * 2010-07-16 2012-02-01 美国博通公司 Method and system for network

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100399767C (en) * 2003-09-26 2008-07-02 华为技术有限公司 Method for accessing IP public network by virtual switch system
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
US8195774B2 (en) * 2008-05-23 2012-06-05 Vmware, Inc. Distributed virtual switch for virtualized computer systems
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
US8213336B2 (en) * 2009-02-23 2012-07-03 Cisco Technology, Inc. Distributed data center access switch
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
CN102316001B (en) * 2011-10-13 2014-02-05 杭州华三通信技术有限公司 Virtual network connection configuration realizing method and network equipment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
WO2010028028A1 (en) * 2008-09-08 2010-03-11 Virginia Tech Intellectual Properties Systems, devices, and methods for managing energy usage
CN102340419A (en) * 2010-07-16 2012-02-01 美国博通公司 Method and system for network

Also Published As

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

Similar Documents

Publication Publication Date Title
US9280367B2 (en) Techniques for using an assigned switch identification at an input/output device
CN112217746B (en) Method, host and system for message processing in cloud computing system
US10491517B2 (en) Packet processing method in cloud computing system, host, and system
CN113360247B (en) Logical processing of containers
US8964600B2 (en) Methods of forming virtual network overlays
US9602416B2 (en) Overlay capabilities exchange using DCBX
US9973335B2 (en) Shared buffers for processing elements on a network device
CN107508767B (en) Techniques for using assigned switch identifications in input/output devices
US20200021518A1 (en) Packet processing using service chains
US9503278B2 (en) Reflective relay processing on logical ports for channelized links in edge virtual bridging systems
HK1250189B (en) Method for message processing in cloud computing system, host and system
HK1250189A1 (en) Method for message processing in cloud computing system, host and system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant