- added encoding_type_t mappings
[strongswan.git] / Source / charon / payloads / encodings.h
index c68ec9c..e085454 100644 (file)
@@ -146,7 +146,19 @@ enum encoding_type_e{
         */
        FLAG,
        /**
-        * Representating a length field
+        * Representating a length field of a payload
+        * 
+        * When generating it must be changed from host to network order.
+        * The value is read from the associated data struct.
+        * The current write position is moved 16 bit forward afterwards.
+        * 
+        * When parsing it must be changed from network to host order.
+        * The value is written to the associated data struct.
+        * The current read pointer is moved 16 bit forward afterwards.
+        */
+       PAYLOAD_LENGTH,
+       /**
+        * Representating a length field of a header
         * 
         * When generating it must be changed from host to network order.
         * The value is read from the associated data struct.
@@ -156,7 +168,7 @@ enum encoding_type_e{
         * The value is written to the associated data struct.
         * The current read pointer is moved 32 bit forward afterwards.
         */
-       LENGTH,
+       HEADER_LENGTH,
        /**
         * Representating a spi size field
         * 
@@ -168,10 +180,113 @@ enum encoding_type_e{
         * The value is written to the associated data struct.
         * The current read pointer is moved 32 bit forward afterwards.
         */
-       SPI_SIZE
+       SPI_SIZE,
+       /**
+        * Representating a spi field
+        * 
+        * When generating the content of the chunkt pointing to 
+        * is written.
+        * 
+        * When parsing SPI_SIZE bytes are read and written into the chunk pointing to.
+        */
+       SPI,
+       /**
+        * Representating one or more proposal substructures
+        * 
+        * The offset points to a linked_list_t pointer.
+        * 
+        * When generating the proposal_substructure_t objects are stored 
+        * in the pointed linked_list.
+        * 
+        * When parsing the parsed proposal_substructure_t objects have 
+        * to be stored in the pointed linked_list.
+        */     
+       PROPOSALS,
+       /**
+        * Representating one or more transform substructures
+        * 
+        * The offset points to a linked_list_t pointer.
+        * 
+        * When generating the transform_substructure_t objects are stored 
+        * in the pointed linked_list.
+        * 
+        * When parsing the parsed transform_substructure_t objects have 
+        * to be stored in the pointed linked_list.
+        */     
+       TRANSFORMS,
+       /**
+        * Representating one or more Attributes of a transform substructure
+        * 
+        * The offset points to a linked_list_t pointer.
+        * 
+        * When generating the transform_attribute_t objects are stored 
+        * in the pointed linked_list.
+        * 
+        * When parsing the parsed transform_attribute_t objects have 
+        * to be stored in the pointed linked_list.
+        */     
+       TRANSFORM_ATTRIBUTES,
+       /**
+        * Representing a 1 Bit flag specifying the format of a transform attribute.
+        * 
+        * When generation, the next bit is set to 1 if the associated value 
+        * in the data struct is TRUE, 0 otherwise. The current write position 
+        * is moved 1 bit forward afterwards.
+        *
+        * When parsing, the next bit is read and stored in the associated data 
+        * struct. 0 means FALSE, 1 means TRUE, The current read pointer 
+        * is moved 1 bit forward afterwards.
+        */
+       ATTRIBUTE_FORMAT,
+       /**
+        * Representing a 15 Bit unsigned int value used as attribute type 
+        * in an attribute transform
+        * 
+        * 
+        * When generating it must be changed from host to network order.
+        * The value is read from the associated data struct.
+        * The current write position is moved 15 bit forward afterwards.
+        * 
+        * When parsing it must be changed from network to host order.
+        * The value is written to the associated data struct.
+        * The current read pointer is moved 15 bit forward afterwards.
+        */
+       ATTRIBUTE_TYPE,
+
+       /**
+        * Depending on the field of type ATTRIBUTE_FORMAT
+        * this field contains the length or the value of an transform attribute.
+        * Its stored in a 16 unsigned integer field
+        * 
+        * When generating it must be changed from host to network order.
+        * The value is read from the associated data struct.
+        * The current write position is moved 16 bit forward afterwards.
+        * 
+        * When parsing it must be changed from network to host order.
+        * The value is written to the associated data struct.
+        * The current read pointer is moved 16 bit forward afterwards.
+        */
+       ATTRIBUTE_LENGTH_OR_VALUE,
+
+       /*      
+        * Depending on the field of type ATTRIBUTE_FORMAT
+        * this field is available or missing and so parsed/generated 
+        * or not parsed/not generated
+        * 
+        * When generating the content of the chunkt pointing to 
+        * is written.
+        * 
+        * When parsing SPI_SIZE bytes are read and written into the chunk pointing to.
+        */
+       ATTRIBUTE_VALUE
 };
 
 /**
+ * mappings to map encoding_type_t's to strings
+ */
+extern mapping_t encoding_type_t_mappings[];
+
+/**
  * An encoding rule is a mapping of a specific encoding type to 
  * a location in the data struct where the current field is stored to
  * or read from.