Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico descreve como o NDIS e os drivers sobrepostos determinam os recursos do comutador NIC de um adaptador de rede que oferece suporte à virtualização de E/S de raiz única (SR-IOV). Este tópico contém as seguintes informações:
Relatar as capacidades do switch NIC durante MiniportInitializeEx
Consulta de capacidades do switch NIC pelos drivers sobrepostos
Nota Apenas o driver de miniporta para a função física (PF) do PCI Express (PCIe) de um adaptador de rede SR-IOV pode indicar as capacidades do switch NIC. Os controladores de miniporta para funções virtuais PCIe (VFs) não devem indicar as capacidades do comutador NIC do adaptador SR-IOV.
Para obter mais informações sobre comutadores NIC, consulte comutadores NIC.
Reportando capacidades de switch NIC durante MiniportInitializeEx
Quando o NDIS chama a função MiniportInitializeExdo driver de miniporta, o driver fornece as seguintes capacidades de switch NIC:
O conjunto completo de recursos de hardware para um switch NIC que o adaptador de rede pode suportar.
Observação A partir do NDIS 6.30, apenas um comutador NIC é criado no adaptador de rede. Este comutador é conhecido como o comutador NIC padrão .
Os recursos do comutador NIC que estão atualmente habilitados no adaptador de rede.
O driver de miniporta relata as capacidades de hardware do switch NIC do adaptador de rede subjacente através de uma estrutura NDIS_NIC_SWITCH_CAPABILITIES que é inicializada da seguinte forma:
O driver de miniporta inicializa o membro do cabeçalho. O driver define o membro Tipo do Cabeçalho como NDIS_OBJECT_TYPE_DEFAULT.
A partir do NDIS 6.30, o driver de miniporta define o membro Revisão de Cabeçalho como NDIS_NIC_SWITCH_CAPABILITIES_REVISION_2 e o membro Tamanho como NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_2.
O driver de miniporta define os sinalizadores apropriados no membro NicSwitchCapabilities da estrutura NDIS_NIC_SWITCH_CAPABILIDADES para definir as capacidades do switch NIC do adaptador de rede SR-IOV. Por exemplo, o controlador de miniporta define o sinalizador NDIS_NIC_SWITCH_CAPS_PER_VPORT_INTERRUPT_MODERATION_SUPPORTED caso o switch NIC suporte modulação de interrupções em cada porta virtual (VPort) criada no switch.
O driver de miniporta define os outros membros da estrutura de NDIS_NIC_SWITCH_CAPABILITIES para o intervalo de valores para as capacidades de switch NIC do adaptador de rede SR-IOV. Por exemplo, o driver de miniporta define os membros MaxNumVFs e MaxNumVPorts para o número máximo de VFs e VPorts que o adaptador pode suportar.
Observação Dependendo dos recursos de hardware disponíveis no adaptador de rede, o driver de miniporta pode definir o MaxNumVFs atributo para um valor inferior ao seu *NumVFs palavra-chave. Para obter mais informações sobre essa palavra-chave, consulte Palavras-chave INF padronizadas para SR-IOV.
Quando o NDIS chama a função MiniportInitializeEx do driver de miniporta, o driver regista as capacidades do comutador NIC do adaptador de rede seguindo estas etapas:
O driver de miniporta inicializa uma estrutura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES.
O controlador de miniporta define o membro HardwareNicSwitchCapabilities como um ponteiro para uma estrutura NDIS_NIC_SWITCH_CAPABILITIES que foi previamente inicializada.
Se a configuração do Registro para a palavra-chave *SRIOV INF tiver um valor de um, o adaptador de rede está atualmente habilitado para criação e configuração do comutador NIC. O driver de miniporta define os membros CurrentNicSwitchCapabilities como um ponteiro para a mesma estrutura NDIS_NIC_SWITCH_CAPABILITIES.
Se a configuração do Registro para a palavra-chave *SRIOV INF tiver um valor zero, o adaptador de rede não está habilitado atualmente para a criação e configuração do switch NIC. O driver de miniporta deve definir o membro CurrentNicSwitchCapabilities como NULL.
Para obter mais informações sobre a palavra-chave *SRIOV INF, consulte Palavras-chave INF padronizadas para SR-IOV.
O driver chama NdisMSetMiniportAttributes e define o parâmetro MiniportAttributes como um ponteiro para a estrutura NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .
Para obter mais informações sobre o processo de inicialização do adaptador, consulte inicializando um adaptador de miniporta.
Criando um switch NIC sem SR-IOV
Os controladores de miniportas no NDIS 6.60 e posterior devem aderir aos seguintes requisitos para a coexistência de um switch de NIC e funcionalidades VMQ quando o SR-IOV não está ativado. Quando SR-IOV estiver ativado, o driver de miniporta deve aderir aos requisitos existentes na seção anterior.
- O driver de miniport anuncia os recursos do switch NIC e VMQ.
- A NIC pode alternar entre o switch NIC e o modo VMQ sem uma reinicialização da NIC.
- Quando a NIC começa, ela está pronta para funcionar em qualquer modo (criando um comutador NIC ou criando filas de VMQ).
- Se um comutador NIC for criado, a miniporta fracassará em qualquer chamada subsequente de alocação de fila VMQ.
- Se uma fila VMQ for criada primeiro, o driver de miniporta terá êxito na alocação da fila VMQ, mas falhará em qualquer chamada de alocação de switch NIC.
- Quando o comutador NIC é excluído ou todas as filas VMQ são excluídas, o driver de miniporta retorna ao estado inicial e está pronto para entrar em qualquer um desses modos novamente.
- Quando a NIC começa, ela está pronta para funcionar em qualquer modo (criando um comutador NIC ou criando filas de VMQ).
Para anunciar que um switch NIC pode ser criado sem o uso de SR-IOV, o driver de miniporta define a bandeira NDIS_NIC_SWITCH_CAPS_NIC_SWITCH_WITHOUT_IOV_SUPPORTED no membro NicSwitchCapabilities da estrutura NDIS_NIC_SWITCH_CAPABILITIES.
Consultando capacidades do switch NIC por drivers sobrejacentes
O NDIS passa as capacidades de comutador NIC atualmente habilitadas do adaptador de rede para os controladores superiores que se ligam ao adaptador de rede da seguinte maneira:
Quando o NDIS chama a função FilterAttach de um driver de filtro superior, o NDIS passa os recursos do comutador NIC do adaptador de rede através do parâmetro AttachParameters. Este parâmetro contém um ponteiro para uma estrutura NDIS_FILTER_ATTACH_PARAMETERS. O NicSwitchCapabilities membro desta estrutura contém um ponteiro para uma estrutura NDIS_NIC_SWITCH_CAPABILITIES.
Quando o NDIS chama a funçãoProtocolBindAdapterEx de um driver de protocolosobreposto, o NDIS passa os recursos do comutador NIC do adaptador de rede através do parâmetro BindParameters. Este parâmetro contém um ponteiro para uma estrutura NDIS_FILTER_ATTACH_PARAMETERS. O NicSwitchCapabilities membro desta estrutura contém um ponteiro para uma estrutura NDIS_NIC_SWITCH_CAPABILITIES.
O NDIS também retorna a estrutura NDIS_NIC_SWITCH_CAPABILITIES quando lida com solicitações de consulta de identificador de objeto (OID) de OID_NIC_SWITCH_HARDWARE_CAPABILITIES e OID_NIC_SWITCH_CURRENT_CAPABILITIES emitidas por drivers de protocolo ou filtro sobrepostos.