]> git.proxmox.com Git - mirror_edk2.git/blame - NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.h
Correct inconsistent information in IpsecConfig.efi help report.
[mirror_edk2.git] / NetworkPkg / Application / IpsecConfig / PolicyEntryOperation.h
CommitLineData
a3bcde70
HT
1/** @file\r
2 The function declaration of policy entry operation in IpSecConfig application.\r
3\r
686d4d4a 4 Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>\r
a3bcde70
HT
5\r
6 This program and the accompanying materials\r
7 are licensed and made available under the terms and conditions of the BSD License\r
8 which accompanies this distribution. The full text of the license may be found at\r
9 http://opensource.org/licenses/bsd-license.php.\r
10\r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13\r
14**/\r
15\r
16#ifndef _POLICY_ENTRY_OPERATION_H_\r
17#define _POLICY_ENTRY_OPERATION_H_\r
18\r
19#define LOCAL BIT(0)\r
20#define REMOTE BIT(1)\r
21#define PROTO BIT(2)\r
22#define LOCAL_PORT BIT(3)\r
23#define REMOTE_PORT BIT(4)\r
24#define ICMP_TYPE BIT(5)\r
25#define ICMP_CODE BIT(6)\r
26#define NAME BIT(7)\r
27#define PACKET_FLAG BIT(8)\r
28#define ACTION BIT(9)\r
29#define EXT_SEQUENCE BIT(10)\r
30#define SEQUENCE_OVERFLOW BIT(11)\r
31#define FRAGMENT_CHECK BIT(12)\r
32#define LIFEBYTE BIT(13)\r
33#define LIFETIME_SOFT BIT(14)\r
34#define LIFETIME BIT(15)\r
35#define MODE BIT(16)\r
36#define TUNNEL_LOCAL BIT(17)\r
37#define TUNNEL_REMOTE BIT(18)\r
38#define DONT_FRAGMENT BIT(19)\r
39#define IPSEC_PROTO BIT(20)\r
40#define AUTH_ALGO BIT(21)\r
41#define ENCRYPT_ALGO BIT(22)\r
42#define SPI BIT(23)\r
43#define DEST BIT(24)\r
44#define SEQUENCE_NUMBER BIT(25)\r
45#define ANTIREPLAY_WINDOW BIT(26)\r
46#define AUTH_KEY BIT(27)\r
47#define ENCRYPT_KEY BIT(28)\r
48#define PATH_MTU BIT(29)\r
64b2d0e5 49#define SOURCE BIT(30)\r
a3bcde70
HT
50\r
51#define PEER_ID BIT(0)\r
52#define PEER_ADDRESS BIT(1)\r
53#define AUTH_PROTO BIT(2)\r
54#define AUTH_METHOD BIT(3)\r
55#define IKE_ID BIT(4)\r
56#define AUTH_DATA BIT(5)\r
57#define REVOCATION_DATA BIT(6)\r
58\r
59typedef struct {\r
60 EFI_IPSEC_CONFIG_DATA_TYPE DataType;\r
61 EFI_IPSEC_CONFIG_SELECTOR *Selector; // Data to be inserted.\r
62 VOID *Data;\r
63 UINT32 Mask;\r
64 POLICY_ENTRY_INDEXER Indexer;\r
65 EFI_STATUS Status; // Indicate whether insertion succeeds.\r
66} EDIT_POLICY_ENTRY_CONTEXT;\r
67\r
68typedef struct {\r
69 EFI_IPSEC_CONFIG_DATA_TYPE DataType;\r
70 EFI_IPSEC_CONFIG_SELECTOR *Selector; // Data to be inserted.\r
71 VOID *Data;\r
72 POLICY_ENTRY_INDEXER Indexer;\r
73 EFI_STATUS Status; // Indicate whether insertion succeeds.\r
74} INSERT_POLICY_ENTRY_CONTEXT;\r
75\r
76/**\r
77 The prototype for the CreateSpdEntry()/CreateSadEntry()/CreatePadEntry().\r
78 Fill in EFI_IPSEC_CONFIG_SELECTOR and corresponding data thru ParamPackage list.\r
79\r
80 @param[out] Selector The pointer to the EFI_IPSEC_CONFIG_SELECTOR union.\r
81 @param[out] Data The pointer to corresponding data.\r
82 @param[in] ParamPackage The pointer to the ParamPackage list.\r
83 @param[out] Mask The pointer to the Mask.\r
84 @param[in] CreateNew The switch to create new.\r
85\r
86 @retval EFI_SUCCESS Filled in EFI_IPSEC_CONFIG_SELECTOR and corresponding data successfully.\r
87 @retval EFI_INVALID_PARAMETER Invalid user input parameter.\r
88\r
89**/\r
90typedef\r
91EFI_STATUS\r
92(*CREATE_POLICY_ENTRY) (\r
93 OUT EFI_IPSEC_CONFIG_SELECTOR **Selector,\r
94 OUT VOID **Data,\r
95 IN LIST_ENTRY *ParamPackage,\r
96 OUT UINT32 *Mask,\r
97 IN BOOLEAN CreateNew\r
98 );\r
99\r
100/**\r
101 The prototype for the CombineSpdEntry()/CombineSadEntry()/CombinePadEntry().\r
102 Combine old SPD/SAD/PAD entry with new SPD/SAD/PAD entry.\r
103\r
104 @param[in, out] OldSelector The pointer to the old EFI_IPSEC_CONFIG_SELECTOR union.\r
105 @param[in, out] OldData The pointer to the corresponding old data.\r
106 @param[in] NewSelector The pointer to the new EFI_IPSEC_CONFIG_SELECTOR union.\r
107 @param[in] NewData The pointer to the corresponding new data.\r
108 @param[in] Mask The pointer to the Mask.\r
109 @param[out] CreateNew The switch to create new.\r
110\r
111 @retval EFI_SUCCESS Combined successfully.\r
112 @retval EFI_INVALID_PARAMETER Invalid user input parameter.\r
113\r
114**/\r
115typedef\r
116EFI_STATUS\r
117(* COMBINE_POLICY_ENTRY) (\r
686d4d4a 118 IN OUT EFI_IPSEC_CONFIG_SELECTOR *OldSelector,\r
119 IN OUT VOID *OldData,\r
120 IN EFI_IPSEC_CONFIG_SELECTOR *NewSelector,\r
121 IN VOID *NewData,\r
122 IN UINT32 Mask,\r
123 OUT BOOLEAN *CreateNew\r
a3bcde70
HT
124 );\r
125\r
126/**\r
127 Insert or add entry information in database according to datatype.\r
128\r
129 @param[in] DataType The value of EFI_IPSEC_CONFIG_DATA_TYPE.\r
130 @param[in] ParamPackage The pointer to the ParamPackage list.\r
131\r
132 @retval EFI_SUCCESS Insert or add entry information successfully.\r
133 @retval EFI_NOT_FOUND Can't find the specified entry.\r
134 @retval EFI_BUFFER_TOO_SMALL The entry already existed.\r
135 @retval EFI_UNSUPPORTED The operation is not supported./\r
136 @retval Others Some mistaken case.\r
137**/\r
138EFI_STATUS\r
139AddOrInsertPolicyEntry (\r
140 IN EFI_IPSEC_CONFIG_DATA_TYPE DataType,\r
141 IN LIST_ENTRY *ParamPackage\r
142 );\r
143\r
144/**\r
145 Edit entry information in the database according to datatype.\r
146\r
147 @param[in] DataType The value of EFI_IPSEC_CONFIG_DATA_TYPE.\r
148 @param[in] ParamPackage The pointer to the ParamPackage list.\r
149\r
150 @retval EFI_SUCCESS Edit entry information successfully.\r
151 @retval EFI_NOT_FOUND Can't find the specified entry.\r
152 @retval Others Some mistaken case.\r
153**/\r
154EFI_STATUS\r
155EditPolicyEntry (\r
156 IN EFI_IPSEC_CONFIG_DATA_TYPE DataType,\r
157 IN LIST_ENTRY *ParamPackage\r
158 );\r
159#endif\r