Hyper-V Extensible Switch Control Path for NDIS Status Indications
This topic discusses the control path that NDIS status indications from an underlying physical adapter move across. One or more underlying physical adapters can be teamed with the Hyper-V extensible switch external network adapter.
For example, the extensible switch external network adapter can be bound to the virtual miniport edge of an NDIS multiplexer (MUX) intermediate driver. The MUX intermediate driver itself can be bound to a team of one or more physical networks on the host. This configuration is known as an extensible switch team. For more information about extensible switch teams, see Types of Physical Network Adapter Configurations.
In this configuration, the extensible switch extensions are exposed to every network adapter in the extensible switch team. This allows the forwarding extension in the extensible switch driver stack to manage the configuration and use of individual network adapters in the team. For example, the extension can provide support for a load balancing failover (LBFO) solution over the team by forwarding outgoing packets to individual adapters. Such an extension is known as a teaming provider. For more information about teaming providers, see Teaming Provider Extensions.
The following figure shows the extensible switch control path for NDIS status indications issued by an underlying extensible switch team for NDIS 6.40 (Windows Server 2012 R2) and later.
The following figure shows the extensible switch control path for NDIS status indications issued by an underlying extensible switch team for NDIS 6.30 (Windows Server 2012).
The extensible switch supports NDIS status indications from the underlying physical adapter or extensible switch team in the following ways:
When an NDIS status indication arrives at the extensible switch interface, it encapsulates the indication inside an NDIS_SWITCH_NIC_STATUS_INDICATION structure. Then, the miniport edge of the extensible switch issues an NDIS_STATUS_SWITCH_NIC_STATUS indication that contains this structure.
When a forwarding extension receives this indication, it can duplicate the indication to change the encapsulated data. This allows the forwarding extension to change the indicated status or capabilities of the underlying extensible switch team.
A forwarding extension that operates as a teaming provider can participate in the configuration of the adapter team for hardware offloads by initiating NDIS_STATUS_SWITCH_NIC_STATUS indications that are related to the offload technology.
For example, the provider can initiate an NDIS_STATUS_SWITCH_NIC_STATUS indication with an encapsulated NDIS_STATUS_RECEIVE_FILTER_CURRENT_CAPABILITIES indication to modify the offload capabilities for the virtual machine queue (VMQ) on the adapter team.
Teaming providers can also initiate an NDIS_STATUS_SWITCH_NIC_STATUS indication to modify other network adapter configurations other than an extensible switch team.
For example, the extension can initiate an NDIS_STATUS_SWITCH_NIC_STATUS with an encapsulated NDIS_STATUS_SWITCH_PORT_REMOVE_VF indication. This indication removes the binding between a virtual machine (VM) network adapter and a PCI Express (PCIe) virtual function (VF). The VF is exposed by an underlying physical network adapter that supports the single root I/O virtualization (SR-IOV) interface.
After this binding is removed, packets are delivered through an extensible switch port instead of directly between the VM network adapter and the VF of the underlying SR-IOV physical adapter. This allows the extensible switch port policies to be applied to packets that are received or sent over the extensible switch port.
For more information on how forwarding extensions can initiate NDIS_STATUS_SWITCH_NIC_STATUS indications, see Managing NDIS Status Indications from Physical Network Adapters.