summaryrefslogtreecommitdiff
path: root/src/libcharon/encoding/payloads/payload.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcharon/encoding/payloads/payload.h')
-rw-r--r--src/libcharon/encoding/payloads/payload.h39
1 files changed, 24 insertions, 15 deletions
diff --git a/src/libcharon/encoding/payloads/payload.h b/src/libcharon/encoding/payloads/payload.h
index 2e783cb30..0f407ff42 100644
--- a/src/libcharon/encoding/payloads/payload.h
+++ b/src/libcharon/encoding/payloads/payload.h
@@ -137,7 +137,7 @@ enum payload_type_t{
* This payload type is not sent over wire and just
* used internally to handle IKEv2-Header like a payload.
*/
- HEADER = 140,
+ HEADER = 256,
/**
* PROPOSAL_SUBSTRUCTURE has a value of PRIVATE USE space.
@@ -145,7 +145,7 @@ enum payload_type_t{
* This payload type is not sent over wire and just
* used internally to handle a proposal substructure like a payload.
*/
- PROPOSAL_SUBSTRUCTURE = 141,
+ PROPOSAL_SUBSTRUCTURE = 257,
/**
* TRANSFORM_SUBSTRUCTURE has a value of PRIVATE USE space.
@@ -153,7 +153,7 @@ enum payload_type_t{
* This payload type is not sent over wire and just
* used internally to handle a transform substructure like a payload.
*/
- TRANSFORM_SUBSTRUCTURE = 142,
+ TRANSFORM_SUBSTRUCTURE = 258,
/**
* TRANSFORM_ATTRIBUTE has a value of PRIVATE USE space.
@@ -161,7 +161,7 @@ enum payload_type_t{
* This payload type is not sent over wire and just
* used internally to handle a transform attribute like a payload.
*/
- TRANSFORM_ATTRIBUTE = 143,
+ TRANSFORM_ATTRIBUTE = 259,
/**
* TRAFFIC_SELECTOR_SUBSTRUCTURE has a value of PRIVATE USE space.
@@ -169,7 +169,7 @@ enum payload_type_t{
* This payload type is not sent over wire and just
* used internally to handle a transform selector like a payload.
*/
- TRAFFIC_SELECTOR_SUBSTRUCTURE = 144,
+ TRAFFIC_SELECTOR_SUBSTRUCTURE = 260,
/**
* CONFIGURATION_ATTRIBUTE has a value of PRIVATE USE space.
@@ -177,18 +177,9 @@ enum payload_type_t{
* This payload type is not sent over wire and just
* used internally to handle a transform attribute like a payload.
*/
- CONFIGURATION_ATTRIBUTE = 145,
-
- /**
- * A unknown payload has a value of PRIVATE USE space.
- *
- * This payload type is not sent over wire and just
- * used internally to handle a unknown payload.
- */
- UNKNOWN_PAYLOAD = 146,
+ CONFIGURATION_ATTRIBUTE = 261,
};
-
/**
* enum names for payload_type_t.
*/
@@ -269,4 +260,22 @@ struct payload_t {
*/
payload_t *payload_create(payload_type_t type);
+/**
+ * Check if a specific payload is implemented, or handled as unknown payload.
+ *
+ * @param type type of the payload to check
+ * @return FALSE if payload type handled as unknown payload
+ */
+bool payload_is_known(payload_type_t type);
+
+/**
+ * Get the value field in a payload using encoding rules.
+ *
+ * @param payload payload to look up a field
+ * @param type encoding rule type to look up
+ * @param skip number rules of type to skip, 0 to get first
+ * @return type specific value pointer, NULL if not found
+ */
+void* payload_get_field(payload_t *payload, encoding_type_t type, u_int skip);
+
#endif /** PAYLOAD_H_ @}*/