From: Petri Savolainen <petri.savolai...@linaro.org>

Create IP header parameter types, so that those can be used
also outside of SA parameter struct.

Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org>
---
/** Email created from pull request 403 (psavol:next-ipsec-tfc)
 ** https://github.com/Linaro/odp/pull/403
 ** Patch: https://github.com/Linaro/odp/pull/403.patch
 ** Base sha: 5718327018debbb02aacb464493504c95fbe57a3
 ** Merge commit sha: 5fe995377a907528cc4b1ce80386e5238f99e8de
 **/
 include/odp/api/spec/ipsec.h | 72 ++++++++++++++++++++++++--------------------
 1 file changed, 40 insertions(+), 32 deletions(-)

diff --git a/include/odp/api/spec/ipsec.h b/include/odp/api/spec/ipsec.h
index 47e3045f3..c78afbe3f 100644
--- a/include/odp/api/spec/ipsec.h
+++ b/include/odp/api/spec/ipsec.h
@@ -382,6 +382,44 @@ typedef struct odp_ipsec_crypto_param_t {
 
 } odp_ipsec_crypto_param_t;
 
+/** IPv4 header parameters */
+typedef struct odp_ipsec_ipv4_param_t {
+       /** IPv4 source address (NETWORK ENDIAN) */
+       void *src_addr;
+
+       /** IPv4 destination address (NETWORK ENDIAN) */
+       void *dst_addr;
+
+       /** IPv4 Differentiated Services Code Point */
+       uint8_t dscp;
+
+       /** IPv4 Don't Fragment bit */
+       uint8_t df;
+
+       /** IPv4 Time To Live */
+       uint8_t ttl;
+
+} odp_ipsec_ipv4_param_t;
+
+/** IPv6 header parameters */
+typedef struct odp_ipsec_ipv6_param_t {
+       /** IPv6 source address (NETWORK ENDIAN) */
+       void *src_addr;
+
+       /** IPv6 destination address (NETWORK ENDIAN) */
+       void *dst_addr;
+
+       /** IPv6 flow label */
+       uint32_t flabel;
+
+       /** IPv6 Differentiated Services Code Point */
+       uint8_t dscp;
+
+       /** IPv6 hop limit */
+       uint8_t hlimit;
+
+} odp_ipsec_ipv6_param_t;
+
 /**
  * IPSEC tunnel parameters
  *
@@ -397,40 +435,10 @@ typedef struct odp_ipsec_tunnel_param_t {
        /** Variant mappings for tunnel parameters */
        union {
                /** IPv4 header parameters */
-               struct {
-                       /** IPv4 source address (NETWORK ENDIAN) */
-                       void *src_addr;
-
-                       /** IPv4 destination address (NETWORK ENDIAN) */
-                       void *dst_addr;
-
-                       /** IPv4 Differentiated Services Code Point */
-                       uint8_t dscp;
-
-                       /** IPv4 Don't Fragment bit */
-                       uint8_t df;
-
-                       /** IPv4 Time To Live */
-                       uint8_t ttl;
-               } ipv4;
+               odp_ipsec_ipv4_param_t ipv4;
 
                /** IPv6 header parameters */
-               struct {
-                       /** IPv6 source address (NETWORK ENDIAN) */
-                       void *src_addr;
-
-                       /** IPv6 destination address (NETWORK ENDIAN) */
-                       void *dst_addr;
-
-                       /** IPv6 Differentiated Services Code Point */
-                       uint8_t dscp;
-
-                       /** IPv6 flow label */
-                       uint32_t flabel;
-
-                       /** IPv6 hop limit */
-                       uint8_t hlimit;
-               } ipv6;
+               odp_ipsec_ipv6_param_t ipv6;
        };
 } odp_ipsec_tunnel_param_t;
 

Reply via email to