Home | History | Annotate | Download | only in IpSecDxe
      1 /** @file
      2   IKE Packet related definitions and function declarations.
      3 
      4   Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
      5 
      6   This program and the accompanying materials
      7   are licensed and made available under the terms and conditions of the BSD License
      8   which accompanies this distribution.  The full text of the license may be found at
      9   http://opensource.org/licenses/bsd-license.php.
     10 
     11   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 
     14 **/
     15 
     16 #ifndef _IKE_V1_PACKET_H_
     17 #define _IKE_V1_PACKET_H_
     18 
     19 #include "Ike.h"
     20 
     21 #define IKE_PACKET_REF(p) ((p)->RefCount++)
     22 
     23 /**
     24   Allocate a buffer for the IKE_PACKET and intitalize its Header and payloadlist.
     25 
     26   @return The pointer of the IKE_PACKET.
     27 
     28 **/
     29 IKE_PACKET *
     30 IkePacketAlloc (
     31   VOID
     32   );
     33 
     34 
     35 /**
     36   Free the IkePacket by the specified IKE_PACKET pointer.
     37 
     38   @param[in]  IkePacket  The pointer of the IKE_PACKET to be freed.
     39 
     40 **/
     41 VOID
     42 IkePacketFree (
     43   IN IKE_PACKET *IkePacket
     44   );
     45 
     46 
     47 /**
     48   Copy the NetBuf into a IKE_PACKET sturcture.
     49 
     50   Create a IKE_PACKET and fill the received IKE header into the header of IKE_PACKET
     51   and copy the recieved packet without IKE HEADER to the PayloadBuf of IKE_PACKET.
     52 
     53   @param[in]  Netbuf      The pointer of the Netbuf which contains the whole received
     54                           IKE packet.
     55 
     56   @return The pointer of the IKE_PACKET which contains the received packet.
     57 
     58 **/
     59 IKE_PACKET *
     60 IkePacketFromNetbuf (
     61   IN NET_BUF *Netbuf
     62   );
     63 
     64 /**
     65   Convert the format from IKE_PACKET to NetBuf.
     66 
     67   @param[in]  SessionCommon  Pointer of related IKE_COMMON_SESSION
     68   @param[in]  IkePacket      Pointer of IKE_PACKET to be copy to NetBuf
     69   @param[in]  IkeType        The IKE type to pointer the packet is for which IKE
     70                              phase. Now it supports IKE_SA_TYPE, IKE_CHILDSA_TYPE,
     71                              IKE_INFO_TYPE.
     72 
     73   @return A pointer of Netbuff which contains the contents of the IKE_PACKE in network order.
     74 **/
     75 NET_BUF *
     76 IkeNetbufFromPacket (
     77   IN UINT8               *SessionCommon,
     78   IN IKE_PACKET          *IkePacket,
     79   IN UINTN               IkeType
     80   );
     81 
     82 #endif
     83