blob: 053d659d9c73a905dd8fdd8388721e5339b10153 [file] [log] [blame]
Vishal Bhoj82c80712015-12-15 21:13:33 +05301/** @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**/
29IKE_PACKET *
30IkePacketAlloc (
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**/
41VOID
42IkePacketFree (
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**/
59IKE_PACKET *
60IkePacketFromNetbuf (
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**/
75NET_BUF *
76IkeNetbufFromPacket (
77 IN UINT8 *SessionCommon,
78 IN IKE_PACKET *IkePacket,
79 IN UINTN IkeType
80 );
81
82#endif