4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Prototypes definitions of IKE service.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync http://opensource.org/licenses/bsd-license.php.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef _IKE_SERVICE_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define _IKE_SERVICE_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include "Ike.h"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include "IpSecImpl.h"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include "IkeCommon.h"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define IPSEC_CRYPTO_LIB_MEMORY 128 * 1024
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This is prototype definition of general interface to intialize a IKE negotiation.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] UdpService Point to Udp Servcie used for the IKE packet sending.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] SpdEntry Point to SPD entry related to this IKE negotiation.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] PadEntry Point to PAD entry related to this IKE negotiation.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] RemoteIp Point to IP Address which the remote peer to negnotiate.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The operation is successful.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return Otherwise The operation is failed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(*IKE_NEGOTIATE_SA) (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IKE_UDP_SERVICE * UdpService,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IPSEC_SPD_ENTRY * SpdEntry,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IPSEC_PAD_ENTRY * PadEntry,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IP_ADDRESS * RemoteIp
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This is prototype definition fo general interface to start a IKE negotiation at Quick Mode.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function will be called when the related IKE SA is existed and start to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync create a Child SA.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] IkeSaSession Point to IKE SA Session related to this Negotiation.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] SpdEntry Point to SPD entry related to this Negotiation.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Context Point to data passed from the caller.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The operation is successful.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval Otherwise The operation is failed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(*IKE_NEGOTIATE_CHILD_SA) (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 *IkeSaSession,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IPSEC_SPD_ENTRY *SpdEntry,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 *Context
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This is prototype definition of the general interface when initialize a Inforamtion
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Exchange.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] IkeSaSession Point to IKE SA Session related to.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Context Point to data passed from caller.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(*IKE_NEGOTIATE_INFO) (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 *IkeSaSession,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 *Context
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This is prototype definition of the general interface when recived a IKE Pakcet
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for the IKE SA establishing.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] UdpService Point to UDP service used to send IKE Packet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] IkePacket Point to received IKE packet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(*IKE_HANDLE_SA) (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IKE_UDP_SERVICE *UdpService,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IKE_PACKET *IkePacket
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This is prototyp definition of the general interface when recived a IKE Packet
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync xfor the Child SA establishing.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] UdpService Point to UDP service used to send IKE packet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] IkePacket Point to received IKE packet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(*IKE_HANDLE_CHILD_SA) (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IKE_UDP_SERVICE *UdpService,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IKE_PACKET *IkePacket
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This is prototype definition of the general interface when received a IKE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync information Packet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] UdpService Point to UDP service used to send IKE packet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] IkePacket Point to received IKE packet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(*IKE_HANDLE_INFO) (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IKE_UDP_SERVICE *UdpService,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IKE_PACKET *IkePacket
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct _IKE_EXCHANGE_INTERFACE {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 IkeVer;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IKE_NEGOTIATE_SA NegotiateSa;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IKE_NEGOTIATE_CHILD_SA NegotiateChildSa;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IKE_NEGOTIATE_INFO NegotiateInfo;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IKE_HANDLE_SA HandleSa;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IKE_HANDLE_CHILD_SA HandleChildSa;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IKE_HANDLE_INFO HandleInfo;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} IKE_EXCHANGE_INTERFACE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Open and configure a UDPIO of Udp4 for IKE packet receiving.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is called at the IPsecDriverBinding start. IPsec create a UDP4 and
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync a UDP4 IO for each NIC handle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Private Point to IPSEC_PRIVATE_DATA
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Controller Handler for NIC card.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The Operation is successful.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCE The required system resource can't be allocated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIkeOpenInputUdp4 (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IPSEC_PRIVATE_DATA *Private,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HANDLE Controller
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Open and configure a UDPIO of Udp6 for IKE packet receiving.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is called at the IPsecDriverBinding start. IPsec create a UDP6 and UDP6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IO for each NIC handle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Private Point to IPSEC_PRIVATE_DATA
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Controller Handler for NIC card.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The Operation is successful.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCE The required system resource can't be allocated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIkeOpenInputUdp6 (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IPSEC_PRIVATE_DATA *Private,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HANDLE Controller
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The general interface of starting IPsec Key Exchange.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is called when start a IKE negotiation to get a Key.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] UdpService Point to IKE_UDP_SERVICE which will be used for
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IKE packet sending.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] SpdEntry Point to the SPD entry related to the IKE negotiation.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] RemoteIp Point to EFI_IP_ADDRESS related to the IKE negotiation.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The Operation is successful.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_ACCESS_DENIED No related PAD entry was found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIkeNegotiate (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IKE_UDP_SERVICE *UdpService,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IPSEC_SPD_ENTRY *SpdEntry,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_IP_ADDRESS *RemoteIp
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The general interface when receive a IKE packet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is called when UDP IO receives a IKE packet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Packet Point to received IKE packet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] EndPoint Point to UDP_END_POINT which contains the information of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Remote IP and Port.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] IoStatus The Status of Recieve Token.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Context Point to data passed from the caller.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIkeDispatch (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN NET_BUF *Packet,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UDP_END_POINT *EndPoint,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_STATUS IoStatus,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Context
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Check if the NIC handle is binded to a Udp service.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Private Pointer of IPSEC_PRIVATE_DATA
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Handle The Handle of the NIC card
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] IpVersion The version of the IP stack.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return a pointer of IKE_UDP_SERVICE.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIKE_UDP_SERVICE *
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIkeLookupUdp (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IPSEC_PRIVATE_DATA *Private,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HANDLE Handle,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 IpVersion
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Delete all established IKE SAs and related Child SAs.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is the subfunction of the IpSecCleanupAllSa(). It first calls
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IkeDeleteChildSa() to delete all Child SAs then send out the related
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Information packet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Private Pointer of the IPSEC_PRIVATE_DATA.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] IsDisableIpsec Indicate whether needs to disable IPsec.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIkeDeleteAllSas (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN IPSEC_PRIVATE_DATA *Private,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN IsDisableIpsec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern IKE_EXCHANGE_INTERFACE mIkev1Exchange;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern IKE_EXCHANGE_INTERFACE mIkev2Exchange;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif