Partilhar via


Gerenciando o contexto de encaminhamento de comutador extensível do Hyper-V

Nota Esta página pressupõe que você esteja familiarizado com as informações e diagramas em Visão geral do Comutador Extensível do Hyper-V e encaminhamento híbrido.

A estrutura NET_BUFFER_LIST para cada pacote que atravessa o caminho de dados de comutador extensível do Hyper-V contém dados OOB (fora de banda). Esses dados especificam a porta de origem de onde o pacote se originou, bem como uma ou mais portas de destino para entrega de pacotes. Esses dados OOB são conhecidos como o contexto extensível de encaminhamento de comutador.

Nota O contexto de encaminhamento de comutador extensível é diferente da estrutura de NET_BUFFER_LIST_CONTEXT . Isso permite que as extensões aloquem suas próprias estruturas de contexto sem afetar o contexto de encaminhamento.

O contexto de encaminhamento de comutador extensível é alocado e liberado da seguinte maneira:

Todas as extensíveis extensíveis podem chamar as seguintes funções extensíveis do manipulador de comutador para acessar os dados no contexto de encaminhamento do pacote:

AllocateNetBufferListForwardingContext
Aloca o contexto de encaminhamento de comutador extensível e prepara uma estrutura NET_BUFFER_LIST para operações de envio ou recebimento dentro do comutador extensível.

CopyNetBufferListInfo
Copia o contexto de encaminhamento da estrutura NET_BUFFER_LIST de um pacote de origem para a estrutura NET_BUFFER_LIST de um pacote de destino. Esses dados incluem as informações extensíveis da porta de origem do comutador e do adaptador de rede. As informações de porta de destino do comutador extensível também podem ser copiadas para o pacote de destino.

FreeNetBufferListForwardingContext
Libera os recursos no contexto extensível de encaminhamento de comutador de uma estrutura de NET_BUFFER_LIST . Esses dados foram usados para operações de envio ou recebimento em um comutador extensível do Hyper-V e foram alocados anteriormente chamando a função AllocateNetBufferListForwardingContext .

GetNetBufferListDestinations
Retorna as portas de destino do contexto de encaminhamento da estrutura de NET_BUFFER_LIST de um pacote.

Uma extensão de encaminhamento é responsável por adicionar portas de destino para um pacote, a menos que o pacote seja um pacote NVGRE. (Para obter mais informações, consulte Encaminhamento Híbrido.) A extensão chama as seguintes funções extensíveis do manipulador de comutador para adicionar ou atualizar as portas de destino dentro do contexto de encaminhamento do pacote:

AddNetBufferListDestination
Adiciona um único destino à área de contexto de encaminhamento de comutador extensível para um pacote especificado por uma estrutura NET_BUFFER_LIST .

Nota Essa chamada confirma a alteração na área de contexto de encaminhamento. Nesse caso, a extensão de encaminhamento não precisa chamar UpdateNetBufferListDestinations.

GrowNetBufferListDestinations
Aumenta o tamanho da matriz de porta de destino na área de contexto de encaminhamento da estrutura de NET_BUFFER_LIST de um pacote.

UpdateNetBufferListDestinations
Confirma modificações feitas pela extensão em uma ou mais portas de destino de comutador extensíveis de um pacote. Essa função atualiza o contexto de encaminhamento da estrutura NET_BUFFER_LIST de um pacote com essas alterações.

Nota Depois que a extensão de encaminhamento confirmar as alterações das portas de destino para o contexto de encaminhamento, as portas de destino não poderão ser removidas e somente o membro IsExcluded da estrutura NDIS_SWITCH_PORT_DESTINATION de uma porta de destino poderá ser alterado. Para obter mais informações, consulte Excluindo a entrega de pacotes para portas de destino de comutador extensível.

Contexto de encaminhamento extensível do Hyper-V

Tipos de dados de contexto de encaminhamento extensível do Hyper-V