]> git.proxmox.com Git - mirror_edk2.git/blame - NetworkPkg/Application/IpsecConfig/IpSecConfig.h
NetworkPkg: Support print help information using -? command.
[mirror_edk2.git] / NetworkPkg / Application / IpsecConfig / IpSecConfig.h
CommitLineData
a3bcde70
HT
1/** @file\r
2 The internal structure and function declaration in IpSecConfig application.\r
3\r
9bdc6592 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 _IPSEC_CONFIG_H_\r
17#define _IPSEC_CONFIG_H_\r
18\r
19#include <Library/BaseMemoryLib.h>\r
20#include <Library/UefiLib.h>\r
21#include <Library/ShellLib.h>\r
22#include <Library/DebugLib.h>\r
23#include <Library/MemoryAllocationLib.h>\r
24#include <Library/UefiBootServicesTableLib.h>\r
be6cd654 25#include <Library/UefiHiiServicesLib.h>\r
a3bcde70
HT
26#include <Library/NetLib.h>\r
27\r
28#include <Protocol/IpSecConfig.h>\r
29\r
be6cd654
ZL
30//\r
31// String token ID of VConfig command help message text.\r
32//\r
33GLOBAL_REMOVE_IF_UNREFERENCED EFI_STRING_ID mStringIpSecHelpTokenId = STRING_TOKEN (STR_IPSEC_CONFIG_HELP);\r
34\r
a3bcde70
HT
35#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))\r
36\r
37#define IPSECCONFIG_STATUS_NAME L"IpSecStatus"\r
38\r
39#define BIT(x) (UINT32) (1 << (x))\r
40\r
41#define IPSEC_STATUS_DISABLED 0x0\r
42#define IPSEC_STATUS_ENABLED 0x1\r
43\r
44#define EFI_IP4_PROTO_ICMP 0x1\r
45#define EFI_IP4_PROTO_TCP 0x6\r
46#define EFI_IP4_PROTO_UDP 0x11\r
47\r
48#define EFI_IPSEC_ANY_PROTOCOL 0xFFFF\r
49#define EFI_IPSEC_ANY_PORT 0\r
50\r
780847d1 51///\r
52/// IPsec Authentication Algorithm Definition\r
53/// The number value definition is aligned to IANA assignment\r
54///\r
55#define IPSEC_AALG_NONE 0x00\r
56#define IPSEC_AALG_MD5HMAC 0x01\r
57#define IPSEC_AALG_SHA1HMAC 0x02\r
58#define IPSEC_AALG_SHA2_256HMAC 0x05\r
59#define IPSEC_AALG_SHA2_384HMAC 0x06\r
60#define IPSEC_AALG_SHA2_512HMAC 0x07\r
61#define IPSEC_AALG_AES_XCBC_MAC 0x09\r
62#define IPSEC_AALG_NULL 0xFB\r
63\r
64///\r
65/// IPsec Encryption Algorithm Definition\r
66/// The number value definition is aligned to IANA assignment\r
67///\r
68#define IPSEC_EALG_NONE 0x00\r
69#define IPSEC_EALG_DESCBC 0x02\r
70#define IPSEC_EALG_3DESCBC 0x03\r
71#define IPSEC_EALG_CASTCBC 0x06\r
72#define IPSEC_EALG_BLOWFISHCBC 0x07\r
73#define IPSEC_EALG_NULL 0x0B\r
74#define IPSEC_EALG_AESCBC 0x0C\r
75#define IPSEC_EALG_AESCTR 0x0D\r
76#define IPSEC_EALG_AES_CCM_ICV8 0x0E\r
77#define IPSEC_EALG_AES_CCM_ICV12 0x0F\r
78#define IPSEC_EALG_AES_CCM_ICV16 0x10\r
79#define IPSEC_EALG_AES_GCM_ICV8 0x12\r
80#define IPSEC_EALG_AES_GCM_ICV12 0x13\r
81#define IPSEC_EALG_AES_GCM_ICV16 0x14\r
82\r
83typedef struct {\r
a3bcde70
HT
84 CHAR16 *VarName;\r
85 UINT32 Attribute1;\r
86 UINT32 Attribute2;\r
87 UINT32 Attribute3;\r
88 UINT32 Attribute4;\r
89} VAR_CHECK_ITEM;\r
90\r
780847d1 91typedef struct {\r
92 LIST_ENTRY Link;\r
93 CHAR16 *Name;\r
94 SHELL_PARAM_TYPE Type;\r
95 CHAR16 *Value;\r
96 UINTN OriginalPosition;\r
a3bcde70
HT
97} SHELL_PARAM_PACKAGE;\r
98\r
780847d1 99typedef struct {\r
a3bcde70
HT
100 CHAR16 *String;\r
101 UINT32 Integer;\r
102} STR2INT;\r
103\r
104extern EFI_IPSEC_CONFIG_PROTOCOL *mIpSecConfig;\r
105extern EFI_HII_HANDLE mHiiHandle;\r
106extern CHAR16 mAppName[];\r
107\r
108//\r
109// -P\r
110//\r
111extern STR2INT mMapPolicy[];\r
112\r
113//\r
114// --proto\r
115//\r
116extern STR2INT mMapIpProtocol[];\r
117\r
118//\r
119// --action\r
120//\r
121extern STR2INT mMapIpSecAction[];\r
122\r
123//\r
124// --mode\r
125//\r
126extern STR2INT mMapIpSecMode[];\r
127\r
128//\r
129// --dont-fragment\r
130//\r
131extern STR2INT mMapDfOption[];\r
132\r
133//\r
134// --ipsec-proto\r
135//\r
136extern STR2INT mMapIpSecProtocol[];\r
137//\r
138// --auth-algo\r
139//\r
140extern STR2INT mMapAuthAlgo[];\r
141\r
142//\r
143// --encrypt-algo\r
144//\r
145extern STR2INT mMapEncAlgo[];\r
146//\r
147// --auth-proto\r
148//\r
149extern STR2INT mMapAuthProto[];\r
150\r
151//\r
152// --auth-method\r
153//\r
154extern STR2INT mMapAuthMethod[];\r
155\r
156#endif\r