PolicyEntryOperation.h 5.5 KB

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