]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.h
Add NetworkPkg (P.UDK2010.UP3.Network.P1)
[mirror_edk2.git] / NetworkPkg / Application / IpsecConfig / PolicyEntryOperation.h
diff --git a/NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.h b/NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.h
new file mode 100644 (file)
index 0000000..5161bac
--- /dev/null
@@ -0,0 +1,158 @@
+/** @file\r
+  The function declaration of policy entry operation in IpSecConfig application.\r
+\r
+  Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>\r
+\r
+  This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php.\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef _POLICY_ENTRY_OPERATION_H_\r
+#define _POLICY_ENTRY_OPERATION_H_\r
+\r
+#define LOCAL              BIT(0)\r
+#define REMOTE             BIT(1)\r
+#define PROTO              BIT(2)\r
+#define LOCAL_PORT         BIT(3)\r
+#define REMOTE_PORT        BIT(4)\r
+#define ICMP_TYPE          BIT(5)\r
+#define ICMP_CODE          BIT(6)\r
+#define NAME               BIT(7)\r
+#define PACKET_FLAG        BIT(8)\r
+#define ACTION             BIT(9)\r
+#define EXT_SEQUENCE       BIT(10)\r
+#define SEQUENCE_OVERFLOW  BIT(11)\r
+#define FRAGMENT_CHECK     BIT(12)\r
+#define LIFEBYTE           BIT(13)\r
+#define LIFETIME_SOFT      BIT(14)\r
+#define LIFETIME           BIT(15)\r
+#define MODE               BIT(16)\r
+#define TUNNEL_LOCAL       BIT(17)\r
+#define TUNNEL_REMOTE      BIT(18)\r
+#define DONT_FRAGMENT      BIT(19)\r
+#define IPSEC_PROTO        BIT(20)\r
+#define AUTH_ALGO          BIT(21)\r
+#define ENCRYPT_ALGO       BIT(22)\r
+#define SPI                BIT(23)\r
+#define DEST               BIT(24)\r
+#define SEQUENCE_NUMBER    BIT(25)\r
+#define ANTIREPLAY_WINDOW  BIT(26)\r
+#define AUTH_KEY           BIT(27)\r
+#define ENCRYPT_KEY        BIT(28)\r
+#define PATH_MTU           BIT(29)\r
+\r
+#define PEER_ID            BIT(0)\r
+#define PEER_ADDRESS       BIT(1)\r
+#define AUTH_PROTO         BIT(2)\r
+#define AUTH_METHOD        BIT(3)\r
+#define IKE_ID             BIT(4)\r
+#define AUTH_DATA          BIT(5)\r
+#define REVOCATION_DATA    BIT(6)\r
+\r
+typedef struct {\r
+  EFI_IPSEC_CONFIG_DATA_TYPE    DataType;\r
+  EFI_IPSEC_CONFIG_SELECTOR     *Selector;    // Data to be inserted.\r
+  VOID                          *Data;\r
+  UINT32                        Mask;\r
+  POLICY_ENTRY_INDEXER          Indexer;\r
+  EFI_STATUS                    Status;       // Indicate whether insertion succeeds.\r
+} EDIT_POLICY_ENTRY_CONTEXT;\r
+\r
+typedef struct {\r
+  EFI_IPSEC_CONFIG_DATA_TYPE    DataType;\r
+  EFI_IPSEC_CONFIG_SELECTOR     *Selector;    // Data to be inserted.\r
+  VOID                          *Data;\r
+  POLICY_ENTRY_INDEXER          Indexer;\r
+  EFI_STATUS                    Status;       // Indicate whether insertion succeeds.\r
+} INSERT_POLICY_ENTRY_CONTEXT;\r
+\r
+/**\r
+  The prototype for the CreateSpdEntry()/CreateSadEntry()/CreatePadEntry().\r
+  Fill in EFI_IPSEC_CONFIG_SELECTOR and corresponding data thru ParamPackage list.\r
+\r
+  @param[out] Selector        The pointer to the EFI_IPSEC_CONFIG_SELECTOR union.\r
+  @param[out] Data            The pointer to corresponding data.\r
+  @param[in]  ParamPackage    The pointer to the ParamPackage list.\r
+  @param[out] Mask            The pointer to the Mask.\r
+  @param[in]  CreateNew       The switch to create new.\r
+\r
+  @retval EFI_SUCCESS              Filled in EFI_IPSEC_CONFIG_SELECTOR and corresponding data successfully.\r
+  @retval EFI_INVALID_PARAMETER    Invalid user input parameter.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(*CREATE_POLICY_ENTRY) (\r
+  OUT EFI_IPSEC_CONFIG_SELECTOR    **Selector,\r
+  OUT VOID                         **Data,\r
+  IN  LIST_ENTRY                   *ParamPackage,\r
+  OUT UINT32                       *Mask,\r
+  IN  BOOLEAN                      CreateNew\r
+  );\r
+\r
+/**\r
+  The prototype for the CombineSpdEntry()/CombineSadEntry()/CombinePadEntry().\r
+  Combine old SPD/SAD/PAD entry with new SPD/SAD/PAD entry.\r
+\r
+  @param[in, out] OldSelector    The pointer to the old EFI_IPSEC_CONFIG_SELECTOR union.\r
+  @param[in, out] OldData        The pointer to the corresponding old data.\r
+  @param[in]      NewSelector    The pointer to the new EFI_IPSEC_CONFIG_SELECTOR union.\r
+  @param[in]      NewData        The pointer to the corresponding new data.\r
+  @param[in]      Mask           The pointer to the Mask.\r
+  @param[out]     CreateNew      The switch to create new.\r
+\r
+  @retval EFI_SUCCESS              Combined successfully.\r
+  @retval EFI_INVALID_PARAMETER    Invalid user input parameter.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(* COMBINE_POLICY_ENTRY) (\r
+  EFI_IPSEC_CONFIG_SELECTOR    *OldSelector,\r
+  VOID                         *OldData,\r
+  EFI_IPSEC_CONFIG_SELECTOR    *NewSelector,\r
+  VOID                         *NewData,\r
+  UINT32                       Mask,\r
+  BOOLEAN                      *CreateNew\r
+  );\r
+\r
+/**\r
+  Insert or add entry information in database according to datatype.\r
+\r
+  @param[in] DataType        The value of EFI_IPSEC_CONFIG_DATA_TYPE.\r
+  @param[in] ParamPackage    The pointer to the ParamPackage list.\r
+\r
+  @retval EFI_SUCCESS             Insert or add entry information successfully.\r
+  @retval EFI_NOT_FOUND           Can't find the specified entry.\r
+  @retval EFI_BUFFER_TOO_SMALL    The entry already existed.\r
+  @retval EFI_UNSUPPORTED         The operation is not supported./\r
+  @retval Others                  Some mistaken case.\r
+**/\r
+EFI_STATUS\r
+AddOrInsertPolicyEntry (\r
+  IN EFI_IPSEC_CONFIG_DATA_TYPE    DataType,\r
+  IN LIST_ENTRY                    *ParamPackage\r
+  );\r
+\r
+/**\r
+  Edit entry information in the database according to datatype.\r
+\r
+  @param[in] DataType        The value of EFI_IPSEC_CONFIG_DATA_TYPE.\r
+  @param[in] ParamPackage    The pointer to the ParamPackage list.\r
+\r
+  @retval EFI_SUCCESS             Edit entry information successfully.\r
+  @retval EFI_NOT_FOUND           Can't find the specified entry.\r
+  @retval Others                  Some mistaken case.\r
+**/\r
+EFI_STATUS\r
+EditPolicyEntry (\r
+  IN EFI_IPSEC_CONFIG_DATA_TYPE    DataType,\r
+  IN LIST_ENTRY                    *ParamPackage\r
+  );\r
+#endif\r