Recebendo dados de rede com descarregamento IPsec versão 2

[O recurso de descarregamento de tarefa IPsec foi preterido e não deve ser usado.]

Uma NIC executa o processamento IPsec (IPsecOV2) de descarregamento IPsec versão 2 em um pacote de recebimento, conforme especificado em uma SA (associação de segurança) que foi descarregada do transporte.

O driver de miniporta define as informações de OOB (fora de banda) do IPsecOV2 antes de indicar os dados recebidos para drivers de sobreposição. Para obter mais informações sobre como acessar informações de OOB, consulte Acessando informações de NET_BUFFER_LIST no descarregamento IPsec versão 2.

Nota Um driver de miniporta deve indicar todos os pacotes recebidos para drivers de sobreposição, mesmo que ocorra um erro durante o processamento dos dados IPsec na NIC. O driver deve indicar pacotes com erros para permitir que a pilha de driver monitore e solucione problemas de tráfego de rede.

Antes que o driver de miniporta indique o pacote de dados recebido na pilha do driver, o driver de miniporte:

  • Verifica se o hardware está configurado para lidar com tarefas de descarregamento IPsec. Caso contrário, o driver de miniporto faz uma indicação de recebimento sem processamento de descarregamento de IPsec adicional.

  • Examina o SPI (índice de parâmetros de segurança) para determinar se existe uma SA descarregada correspondente. O driver de miniporta confirma que o endereço de destino no pacote é o mesmo especificado na SA descarregada. Se não houver nenhuma SA correspondente, a NIC indicará os dados recebidos sem definir as informações de OOB IPsecOV2.

  • Verifica se ele pode processar o pacote com base nos recursos que o driver de miniporto relatou ao transporte ou faz uma indicação de recebimento sem processamento de IPsec adicional. Por exemplo, o pacote pode ter opções de IP em que a NIC não dá suporte ao processamento de descarregamento IPsec para esses pacotes e o driver de miniporto faz o processamento IPsec.

  • Define o sinalizador CryptoDone na estrutura NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO para indicar que uma NIC executou a verificação de IPsec em pelo menos um conteúdo IPsec no pacote recebido.

  • Define o sinalizador NextCryptoDone na estrutura NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO para indicar que uma NIC executou a verificação de IPsec nas partes de túnel e transporte de um pacote de recebimento. O driver de miniporta define esse sinalizador somente se um pacote tiver cargas de túnel e transporte; caso contrário, esse sinalizador deve ser zero.

  • Define o valor cryptoStatus correto da estrutura NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO para indicar os resultados das verificações de IPsec.

Se a NIC não executou o processamento de descarregamento em um pacote de entrada, o driver de miniporta limpará os sinalizadores CryptoDone e NextCryptoDone . O driver de miniporta limpa esses sinalizadores para todos os pacotes de recebimento em que uma NIC não descriptografa, independentemente de o pacote ser protegido por AH ou protegido por ESP.

Um driver de miniporta pode definir SaDeleteReq, na estrutura NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO para uma NET_BUFFER_LIST de recebimento. O transporte TCP/IP emite posteriormente OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA uma vez para excluir a SA de entrada que o pacote foi recebido e mais uma vez para excluir a SA de saída que corresponde à SA de entrada excluída. Para obter mais informações sobre como adicionar e excluir SAs, consulte Managing Security Associations in IPsec Offload Version 2.

Depois que o driver de miniporto indica a estrutura de NET_BUFFER_LIST para o transporte TCP/IP, o transporte TCP/IP examina os resultados do IPsec verifica se a NIC foi executada no pacote, verifica os números de sequência do pacote e determina o que fazer com um pacote que falha na soma de verificação ou nos testes de sequenciamento.