]> git.proxmox.com Git - mirror_edk2.git/blob - NetworkPkg/IpSecDxe/IkePacket.h
BaseTools/Capsule: Do not support -o with --dump-info
[mirror_edk2.git] / NetworkPkg / IpSecDxe / IkePacket.h
1 /** @file
2 IKE Packet related definitions and function declarations.
3
4 Copyright (c) 2010 - 2018, 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