수신 경로에서 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 값을 지정해야 합니다.
미니포트 드라이버가 들어오는 패킷의 암호를 해독하지 않으면 CryptoDone 및 NextCryptoDone 플래그가 모두 지워집니다. 미니포트 드라이버는 패킷이 AH로 보호되었는지 또는 ESP로 보호되는지에 관계없이 암호 해독되지 않는 모든 수신 패킷에 대해 이 작업을 수행합니다. 미니포트 드라이버는 암호 해독되지 않는 모든 패킷에 대해 CryptoStatus 를 CRYPTO_SUCCESS 설정합니다.
미니포트 드라이버가 TCP/IP 전송에 대한 NET_BUFFER_LIST 구조를 표시한 후 전송은 NIC가 수행한 IPsec의 결과를 검사하고, 패킷에 대한 시퀀스 번호를 확인하고, 체크섬 또는 시퀀싱 테스트에 실패한 패킷으로 수행할 작업을 결정합니다.