Compartir a través de


Reenvío de solicitudes de OID a adaptadores de red físicos

En este tema se describe cómo las extensiones del conmutador extensible Hyper-V reenvían solicitudes de identificador de objeto (OID) para adaptadores físicos subyacentes a través de la ruta de acceso de control del conmutador extensible Hyper-V. La extensión también puede originar solicitudes OID a adaptadores de red físicos subyacentes siguiendo los métodos descritos en este tema.

Por ejemplo, el adaptador de red externo puede vincularse al borde del minipuerto virtual de un controlador intermedio multiplexor NDIS (MUX). El controlador MUX está enlazado a un equipo de una o varias redes físicas en el host. Esta configuración se conoce como un equipo de conmutadores extensible .

En esta configuración, se expone una extensión de conmutador extensible a todos los adaptadores de red del equipo. Esto permite que la extensión administre la configuración y el uso de adaptadores de red individuales en el equipo. Por ejemplo, una extensión de reenvío puede proporcionar soporte para una solución de conmutación por error de equilibrio de carga (LBFO) sobre el equipo mediante el reenvío de paquetes salientes a adaptadores individuales. Una extensión de reenvío que administra un equipo de conmutadores extensible es conocida como un proveedor de conexión en equipo. Para obtener más información sobre los proveedores de teaming, consulte Extensiones de proveedor de formación de equipos.

En la ilustración siguiente se muestra un ejemplo de un equipo de conmutadores extensible para NDIS 6.40 (Windows Server 2012 R2) y versiones posteriores.

Diagrama de la ruta de control OID para NDIS 6.40.

En la ilustración siguiente se muestra un ejemplo de un equipo de conmutadores extensible para NDIS 6.30 (Windows Server 2012).

Diagrama del equipo de conmutadores extensibles para NDIS 6.30.

Nota En la interfaz de conmutador extensible de Hyper-V, los controladores de filtro NDIS se conocen como extensiones de conmutador extensible y la pila de controladores se conoce como pila de controladores de conmutador extensible.

Las solicitudes OID deben encapsularse para reenviar la solicitud a un adaptador de red físico subyacente. Las solicitudes OID se encapsulan primero dentro de una estructura de NDIS_SWITCH_NIC_OID_REQUEST. A continuación, las solicitudes OID se reenvían a través de la ruta de acceso de control del conmutador extensible mediante una solicitud OID set de OID_SWITCH_NIC_REQUEST.

Las solicitudes de OID a los adaptadores físicos subyacentes se emiten mediante lo siguiente:

interfaz de conmutador extensible.
Las solicitudes de OID, como las solicitudes de descarga de hardware, son emitidas por controladores de protocolo o filtro superpuestos que se ejecutan en una de las siguientes:

  • Sistema operativo de administración que se ejecuta en la partición primaria Hyper-V.

  • Sistema operativo invitado que se ejecuta en la partición secundaria Hyper-V.

Cuando el conmutador extensible recibe estas solicitudes de OID, se encapsulan y reenvían a través de la ruta de acceso del control de conmutador extensible. Cuando una extensión de reenvío recibe la solicitud OID encapsulada, puede reenviar la solicitud a un adaptador físico subyacente. Esta capacidad es especialmente útil para configurar el equipo de conmutadores extensibles para descargas de hardware.

Por ejemplo, el controlador MUX anuncia las funcionalidades comunes de todo el equipo de conmutadores extensibles. Sin embargo, la extensión de reenvío puede emitir solicitudes OID para consultar o establecer las funcionalidades individuales de los adaptadores dentro del equipo. A continuación, la extensión de reenvío puede originar una indicación de estado NDIS del adaptador de red externo para notificar a los controladores sobre las funcionalidades que se aplican a todo el equipo. Para obtener más información sobre este procedimiento, consulte Indicaciones de estado NDIS originadas por adaptadores de red físicos.

Cuando la extensión de reenvío reenvía la solicitud OID a través del camino de control, el adaptador de red externo la recibe. En este momento, la solicitud OID se descapsula y se reenvía al adaptador de red físico especificado.

Nota A partir de Windows Server 2012, solo las solicitudes de OID de descarga de hardware se encapsulan y se reenvían de esta manera. Por ejemplo, las solicitudes OID de delegación para la cola de máquinas virtuales (VMQ) o la seguridad de protocolo de Internet (IPsec) se encapsulan y se reenvían a través de la ruta de control del conmutador extensible. Para obtener más información, consulte Administración de solicitudes OID de descarga de hardware en adaptadores de red físicos

Una extensión de reenvío.
La extensión de reenvío puede originar sus propias solicitudes OID encapsuladas y reenviarlas a un adaptador de red físico subyacente. La extensión de reenvío puede encapsular solicitudes OID NDIS estándar. La extensión de reenvío también puede encapsular solicitudes OID privadas definidas por el proveedor de hardware independiente (IHV) para los adaptadores de red físicos. Esto permite una extensión de reenvío que también ha desarrollado el IHV para habilitar o deshabilitar atributos propietarios en adaptadores físicos individuales del equipo.

Además, la extensión de reenvío puede originar solicitudes OID de descarga de hardware encapsuladas para asignar recursos a una partición secundaria especificada Hyper-V. Por ejemplo, la extensión de reenvío puede originar solicitudes OID encapsuladas de OID_RECEIVE_FILTER_ALLOCATE_QUEUE para asignar una VMQ para una partición secundaria especificada. En este caso, la extensión encapsula la solicitud como originada en el puerto de conmutador extensible y la conexión del adaptador de red asociada a la partición.

Nota: La extensión de reenvío solo puede originar su propia solicitud OID encapsulada de procesamiento de hardware si está filtrando la misma solicitud de OID que fue emitida por controladores superpuestos. En este caso, la extensión no debe reenviar la solicitud OID original. En su lugar, la extensión debe llamar a NdisFOidRequestComplete para completar esta solicitud cuando NDIS llama a su FilterOidRequestComplete para completar la solicitud OID originada.

Extensiones de filtrado o captura
Una extensión de filtrado o captura puede originar sus propias solicitudes de consulta OID encapsuladas y reenviarlas a un adaptador de red físico subyacente. Estas extensiones pueden encapsular solicitudes de consulta OID NDIS estándar o solicitudes de consulta OID privadas definidas por el proveedor de hardware independiente (IHV) para los adaptadores de red físicos.

Nota Solo las extensiones de reenvío pueden generar solicitudes de conjuntos de OID encapsuladas a adaptadores físicos subyacentes.

La extensión de reenvío debe seguir estos pasos cuando reenvía, redirige o origina una solicitud OID encapsulada para un adaptador físico subyacente:

  1. Si la extensión de reenvío origina una solicitud OID, debe inicializar una estructura de NDIS_OID_REQUEST asignada por la extensión con la información relacionada con la solicitud.

    Si la extensión reenvía una solicitud OID, no debe cambiar la estructura existente NDIS_OID_REQUEST a la que hace referencia el parámetro OidRequest de la función FilterOidRequest. En su lugar, la extensión debe llamar a NdisAllocateCloneOidRequest para asignar memoria para una nueva estructura de NDIS_OID_REQUEST y copiar toda la información de la estructura existente NDIS_OID_REQUEST.

  2. La extensión establece los miembros de una estructura NDIS_SWITCH_NIC_OID_REQUEST , que ha sido asignada por la extensión, a los siguientes valores:

    • El miembro DestinationPortId debe establecerse en el identificador del puerto de conmutador extensible al que está conectado el adaptador de red externo.

    • El miembro DestinationNicIndex debe configurarse con un valor de índice diferente de cero del adaptador de red físico subyacente.

      Para obtener más información sobre estos valores de índice, consulte Valores de Índice del Adaptador de Red.

    • Si la extensión de reenvío origina una solicitud de OID de descarga de hardware para una partición secundaria de Hyper-V, el miembro SourcePortId debe establecerse en el identificador del puerto que es utilizado por la partición. Además, el miembro SourceNicIndex debe establecerse en el índice del adaptador de red para la conexión de red a ese puerto.

      Si la extensión de reenvío origina una solicitud de OID estándar o privada para sus propios fines, los miembros SourcePortId y SourceNicIndex deberán ser establecidos a cero.

      Si la extensión de redireccionamiento está reenviando o redirigiendo una solicitud OID de descarga de tareas de hardware, debe conservar los valores de los miembros SourcePortId y SourceNicIndex establecidos por la interfaz del conmutador extensible.

    • El miembro OidRequest debe establecerse en un puntero a una estructura de NDIS_OID_REQUEST inicializada para la solicitud OID encapsulada. La extensión de reenvío asigna e inicializa esta estructura o usa la copia clonada de la estructura.

  3. La extensión establece los miembros de una estructura NDIS_OID_REQUEST , que ha sido asignada por la extensión, a los siguientes valores:

    • El elemento Oid debe establecerse en OID_SWITCH_NIC_REQUEST.

    • El miembro InformationBuffer debe contener un puntero a un búfer que contenga los datos de solicitud de OID generados o filtrados.

    • El miembro InformationBufferLength debe contener la longitud, en bytes, del búfer que contiene los datos de solicitud de OID generados o filtrados.

    La extensión establece los demás miembros en valores válidos para la estructura NDIS_OID_REQUEST.

  4. La extensión llama a ReferenceSwitchNic para incrementar un contador de referencia para el índice del adaptador de red físico de destino. Esto garantiza que la interfaz de conmutador extensible no eliminará la conexión del adaptador de red físico mientras su contador de referencia no sea cero.

    Cuando la extensión llama a ReferenceSwitchNic, establece el parámetro SwitchPortId en el valor especificado para el miembro DestinationPortId. La extensión también establece el parámetro SwitchNicIndex en el valor especificado para el miembro DestinationNicIndex.

    Nota Si ReferenceSwitchNic no devuelve NDIS_STATUS_SUCCESS, la solicitud OID no se puede reenviar al adaptador de red físico de destino.

  5. Si la extensión de reenvío origina una solicitud de OID de descarga de hardware para una partición secundaria de Hyper-V, también llama a ReferenceSwitchNic para incrementar un contador de referencia para el índice de la conexión del adaptador de red de origen que está asociada a la partición. Esto garantiza que la interfaz de conmutador extensible no eliminará la conexión del adaptador de red físico mientras su contador de referencia sea distinto de cero.

    Cuando la extensión llama a ReferenceSwitchNic, establece el parámetro SwitchPortId en el valor especificado para el miembro SourcePortId. La extensión también establece el parámetro SwitchNicIndex en el valor especificado para el miembro de SourceNicIndex.

    Nota Si ReferenceSwitchNic no devuelve NDIS_STATUS_SUCCESS, la solicitud OID no se puede reenviar al adaptador de red físico de destino.

  6. La extensión llama a NdisFOidRequest para reenviar la solicitud OID encapsulada al puerto de conmutador extensible de destino y al adaptador de red especificados.

    Nota Si la extensión reenvía una solicitud OID filtrada, debe llamar a NdisFOidRequest en el contexto de su llamada a la función FilterOidRequest. Si la extensión reenvía las solicitudes OID que ha generado, llama a NdisFIndicateStatus mientras se encuentra en los estados de Running, Restarting, Pausedy Pausando. Para obtener más información sobre estos estados, consulte Estados y operaciones del módulo de filtro.

  7. Cuando NDIS llama a la función FilterOidRequestComplete, la extensión llama a DereferenceSwitchNic para borrar el contador de referencia para el índice del adaptador de red físico de destino.

    Si la extensión de reenvío originó una solicitud de OID de descarga de hardware para una partición secundaria de Hyper-V, también llama a DereferenceSwitchNic para borrar el contador de referencia para el índice de la conexión del adaptador de red de origen para el adaptador.

    En ambos casos, la extensión establece los parámetros SwitchPortId y SwitchNicIndex a los mismos valores que utilizó en la llamada a ReferenceSwitchNic.

Para obtener más información sobre cómo emite la extensión solicitudes de OID, consulte Generación de solicitudes OID a partir de un controlador de filtro NDIS.

Para obtener más información sobre los controladores MUX, consulte Controladores intermedios NDIS MUX.