Intel 324632-003 Switch User Manual


 
Intel
®
82575EB Gigabit Ethernet Controller — Queuing for Virtual Machine Devices (VMDq)
Intel
®
82575EB Gigabit Ethernet Controller 324632-003
Software Developer’s Manual and EEPROM Guide Revision: 2.1
120 January 2011
When receiving an incoming packet, its header is analyzed, according to the protocol used (IPv4, IPv6,
etc.). The connection-related fields are parsed and then a hash function is performed. The outcome of
the hash function is used to index into the indirection table memory; the value stored in this table is
used to generate an input to the Select modules that indicates to which queue the incoming packet is
going to be directed.
The number of processors in use need to fit the number of queues. As a result, when a platform
features more than four processors, only four of them are allocated to the Rx queues.
5.4.1 Queuing for Virtual Machine Devices (VMDq)
VMDs are I/O devices specifically targeted for sharing in a virtual system. In a virtual system, multiple
operating systems are loaded and each executes as though the entire system's resources are available
for each. However, for the limited number of I/O devices, this presents a problem because each
operating system might be in a separate memory domain and all the data movement and device
management has to be done by a VMM (Virtual Machine Monitor). VMM access adds latency and delay
to I/O accesses and degrades I/O performance. VMDs are designed to reduce the burden of VMM by
making certain functions of an I/O device shared and thus can be accessed directly from each guest
operating system or Virtual Machine (VM). The 82575's four queues can be accessed by four different
VMs if configured properly. When the 82575 is enabled for multiple queue direct access for VMs, it
becomes a VMDq device.
Note: Most configuration and resources are shared across queues. System software must resolve
any conflicts in configuration between the VMs.
The 82575 provides several options for sharing the four receive queues among VMs:
VMs are associated with receive queues based on the packet destination MAC address
VMs are associated with receive queues based on the packet VLAN tag ID
VMs are associated with receive queues based on the packet destination MAC address and Receive
Side Scaling (RSS)
VMs are associated with receive queues based on the packet VLAN tag ID and Receive Side Scaling
(RSS)
The appropriate mode is defined through the Multiple Receive Queues Enable field in the Multiple
Receive Queues Command register (MRQC). If promiscuous mode is enabled, packets that do not
match into a specific queue are routed into a default queue defined by the VMDq Control register
(VMD_CTL). Promiscuous mode is used to support more than four VMs so that the busier VMs are
assigned specific queues while all other VMs share the default queue. Unless assigned a dedicated MAC
address and a specific port, multicast and broadcast packets will be sent to the default queue.
Note: Packets must pass the regular receive filtering rules to be posted into any of the receive
queues.
5.4.1.1 Association Through MAC Address
Each of the 16 MAC address filters can be associated with one of the four receive queues. A packet that
matches a certain filter (and is eligible to be passed to the host) is routed to the respective queue. The
QSEL field in the Receive Address High register (RAH) determines the target queue. Packets that do not
match any of the MAC filters (broadcast, promiscuous, etc.) are forwarded to the default queue.