]> git.proxmox.com Git - mirror_edk2.git/blame - NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.h
NetworkPkg: Replace BSD License with BSD+Patent License
[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 5\r
ecf98fbc 6 SPDX-License-Identifier: BSD-2-Clause-Patent\r
a3bcde70
HT
7\r
8**/\r
9\r
10#ifndef _POLICY_ENTRY_OPERATION_H_\r
11#define _POLICY_ENTRY_OPERATION_H_\r
12\r
13#define LOCAL BIT(0)\r
14#define REMOTE BIT(1)\r
15#define PROTO BIT(2)\r
16#define LOCAL_PORT BIT(3)\r
17#define REMOTE_PORT BIT(4)\r
18#define ICMP_TYPE BIT(5)\r
19#define ICMP_CODE BIT(6)\r
20#define NAME BIT(7)\r
21#define PACKET_FLAG BIT(8)\r
22#define ACTION BIT(9)\r
23#define EXT_SEQUENCE BIT(10)\r
24#define SEQUENCE_OVERFLOW BIT(11)\r
25#define FRAGMENT_CHECK BIT(12)\r
26#define LIFEBYTE BIT(13)\r
27#define LIFETIME_SOFT BIT(14)\r
28#define LIFETIME BIT(15)\r
29#define MODE BIT(16)\r
30#define TUNNEL_LOCAL BIT(17)\r
31#define TUNNEL_REMOTE BIT(18)\r
32#define DONT_FRAGMENT BIT(19)\r
33#define IPSEC_PROTO BIT(20)\r
34#define AUTH_ALGO BIT(21)\r
35#define ENCRYPT_ALGO BIT(22)\r
36#define SPI BIT(23)\r
37#define DEST BIT(24)\r
38#define SEQUENCE_NUMBER BIT(25)\r
39#define ANTIREPLAY_WINDOW BIT(26)\r
40#define AUTH_KEY BIT(27)\r
41#define ENCRYPT_KEY BIT(28)\r
42#define PATH_MTU BIT(29)\r
64b2d0e5 43#define SOURCE BIT(30)\r
a3bcde70
HT
44\r
45#define PEER_ID BIT(0)\r
46#define PEER_ADDRESS BIT(1)\r
47#define AUTH_PROTO BIT(2)\r
48#define AUTH_METHOD BIT(3)\r
49#define IKE_ID BIT(4)\r
50#define AUTH_DATA BIT(5)\r
51#define REVOCATION_DATA BIT(6)\r
52\r
53typedef struct {\r
54 EFI_IPSEC_CONFIG_DATA_TYPE DataType;\r
55 EFI_IPSEC_CONFIG_SELECTOR *Selector; // Data to be inserted.\r
56 VOID *Data;\r
57 UINT32 Mask;\r
58 POLICY_ENTRY_INDEXER Indexer;\r
59 EFI_STATUS Status; // Indicate whether insertion succeeds.\r
60} EDIT_POLICY_ENTRY_CONTEXT;\r
61\r
62typedef struct {\r
63 EFI_IPSEC_CONFIG_DATA_TYPE DataType;\r
64 EFI_IPSEC_CONFIG_SELECTOR *Selector; // Data to be inserted.\r
65 VOID *Data;\r
66 POLICY_ENTRY_INDEXER Indexer;\r
67 EFI_STATUS Status; // Indicate whether insertion succeeds.\r
68} INSERT_POLICY_ENTRY_CONTEXT;\r
69\r
70/**\r
71 The prototype for the CreateSpdEntry()/CreateSadEntry()/CreatePadEntry().\r
72 Fill in EFI_IPSEC_CONFIG_SELECTOR and corresponding data thru ParamPackage list.\r
73\r
74 @param[out] Selector The pointer to the EFI_IPSEC_CONFIG_SELECTOR union.\r
75 @param[out] Data The pointer to corresponding data.\r
76 @param[in] ParamPackage The pointer to the ParamPackage list.\r
77 @param[out] Mask The pointer to the Mask.\r
78 @param[in] CreateNew The switch to create new.\r
79\r
80 @retval EFI_SUCCESS Filled in EFI_IPSEC_CONFIG_SELECTOR and corresponding data successfully.\r
81 @retval EFI_INVALID_PARAMETER Invalid user input parameter.\r
82\r
83**/\r
84typedef\r
85EFI_STATUS\r
86(*CREATE_POLICY_ENTRY) (\r
87 OUT EFI_IPSEC_CONFIG_SELECTOR **Selector,\r
88 OUT VOID **Data,\r
89 IN LIST_ENTRY *ParamPackage,\r
90 OUT UINT32 *Mask,\r
91 IN BOOLEAN CreateNew\r
92 );\r
93\r
94/**\r
95 The prototype for the CombineSpdEntry()/CombineSadEntry()/CombinePadEntry().\r
96 Combine old SPD/SAD/PAD entry with new SPD/SAD/PAD entry.\r
97\r
98 @param[in, out] OldSelector The pointer to the old EFI_IPSEC_CONFIG_SELECTOR union.\r
99 @param[in, out] OldData The pointer to the corresponding old data.\r
100 @param[in] NewSelector The pointer to the new EFI_IPSEC_CONFIG_SELECTOR union.\r
101 @param[in] NewData The pointer to the corresponding new data.\r
102 @param[in] Mask The pointer to the Mask.\r
103 @param[out] CreateNew The switch to create new.\r
104\r
105 @retval EFI_SUCCESS Combined successfully.\r
106 @retval EFI_INVALID_PARAMETER Invalid user input parameter.\r
107\r
108**/\r
109typedef\r
110EFI_STATUS\r
111(* COMBINE_POLICY_ENTRY) (\r
686d4d4a 112 IN OUT EFI_IPSEC_CONFIG_SELECTOR *OldSelector,\r
113 IN OUT VOID *OldData,\r
114 IN EFI_IPSEC_CONFIG_SELECTOR *NewSelector,\r
115 IN VOID *NewData,\r
116 IN UINT32 Mask,\r
117 OUT BOOLEAN *CreateNew\r
a3bcde70
HT
118 );\r
119\r
120/**\r
121 Insert or add entry information in database according to datatype.\r
122\r
123 @param[in] DataType The value of EFI_IPSEC_CONFIG_DATA_TYPE.\r
124 @param[in] ParamPackage The pointer to the ParamPackage list.\r
125\r
126 @retval EFI_SUCCESS Insert or add entry information successfully.\r
127 @retval EFI_NOT_FOUND Can't find the specified entry.\r
128 @retval EFI_BUFFER_TOO_SMALL The entry already existed.\r
129 @retval EFI_UNSUPPORTED The operation is not supported./\r
130 @retval Others Some mistaken case.\r
131**/\r
132EFI_STATUS\r
133AddOrInsertPolicyEntry (\r
134 IN EFI_IPSEC_CONFIG_DATA_TYPE DataType,\r
135 IN LIST_ENTRY *ParamPackage\r
136 );\r
137\r
138/**\r
139 Edit entry information in the database according to datatype.\r
140\r
141 @param[in] DataType The value of EFI_IPSEC_CONFIG_DATA_TYPE.\r
142 @param[in] ParamPackage The pointer to the ParamPackage list.\r
143\r
144 @retval EFI_SUCCESS Edit entry information successfully.\r
145 @retval EFI_NOT_FOUND Can't find the specified entry.\r
146 @retval Others Some mistaken case.\r
147**/\r
148EFI_STATUS\r
149EditPolicyEntry (\r
150 IN EFI_IPSEC_CONFIG_DATA_TYPE DataType,\r
151 IN LIST_ENTRY *ParamPackage\r
152 );\r
153#endif\r