수신 경로에서 IPsec 작업 오프로드

[IPsec 작업 오프로드 기능은 더 이상 사용되지 않으며 사용하지 않아야 합니다.]

NIC가 수신 패킷에서 IPsec(인터넷 프로토콜 보안) 처리를 수행하는 경우 패킷에 ESP 페이로드가 포함된 경우 패킷의 암호를 해독하고 패킷에 대한 AH 또는 ESP 암호화 체크섬(또는 둘 다)을 계산합니다. TCP/IP 전송까지 패킷에 대한 NET_BUFFER_LIST 구조를 나타내기 전에 미니포트 드라이버는 IPsecOffloadV1NetBufferListInfo의 _Id 사용하여 NET_BUFFER_LIST_INFO 매크로를 호출하여 패킷과 연결된 NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO 구조를 가져옵니다.

미니포트 드라이버는 NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO 구조에서 CryptoDone 플래그를 설정하여 NIC가 수신 패킷에서 하나 이상의 IPsec 페이로드에 대해 IPsec 검사를 수행했음을 나타냅니다. NIC가 수신 패킷의 터널 및 전송 부분 모두에서 IPsec 검사를 수행한 경우 미니포트 드라이버는 NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO 구조에서 NextCryptoDone 플래그도 설정합니다. 미니포트 드라이버는 패킷에 터널 및 전송 IPsec 페이로드가 모두 있는 경우에만 NextCryptoDone 을 설정합니다. 그렇지 않으면 미니포트 드라이버는 NextCryptoDone 을 0으로 설정합니다. IPsec 검사 결과를 나타내기 위해 미니포트 드라이버는 NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO 구조체의 CryptoStatus 멤버에 대한 값도 제공해야 합니다. NIC가 체크섬 오류 또는 암호 해독 실패를 감지하는 경우 미니포트 드라이버는 수신 패킷에 대한 NET_BUFFER_LIST 구조를 어떤 형태로든 나타내고 적절한 CryptoStatus 값을 지정해야 합니다.

미니포트 드라이버가 들어오는 패킷의 암호를 해독하지 않으면 CryptoDoneNextCryptoDone 플래그가 모두 지워집니다. 미니포트 드라이버는 패킷이 AH로 보호되었는지 또는 ESP로 보호되는지에 관계없이 암호 해독되지 않는 모든 수신 패킷에 대해 이 작업을 수행합니다. 미니포트 드라이버는 암호 해독되지 않는 모든 패킷에 대해 CryptoStatus 를 CRYPTO_SUCCESS 설정합니다.

미니포트 드라이버가 TCP/IP 전송에 대한 NET_BUFFER_LIST 구조를 표시한 후 전송은 NIC가 수행한 IPsec의 결과를 검사하고, 패킷에 대한 시퀀스 번호를 확인하고, 체크섬 또는 시퀀싱 테스트에 실패한 패킷으로 수행할 작업을 결정합니다.