Fine with me. BR, Bogdan
On 11 July 2017 at 15:31, Petri Savolainen <petri.savolai...@linaro.org> wrote: > Move direction (inboud/outbound) specific SA parameters > into separate structures. Specification is more clear > between common and direction specific SA parameters. > > Signed-off-by: Petri Savolainen <petri.savolai...@linaro.org> > Signed-off-by: Bogdan Pricope <bogdan.pric...@linaro.org> > --- > include/odp/api/spec/ipsec.h | 103 > +++++++++++++++++++++++++------------------ > 1 file changed, 59 insertions(+), 44 deletions(-) > > diff --git a/include/odp/api/spec/ipsec.h b/include/odp/api/spec/ipsec.h > index 388c9f38..5e5c87ec 100644 > --- a/include/odp/api/spec/ipsec.h > +++ b/include/odp/api/spec/ipsec.h > @@ -630,51 +630,18 @@ typedef struct odp_ipsec_sa_param_t { > /** Parameters for crypto and authentication algorithms */ > odp_ipsec_crypto_param_t crypto; > > - /** Parameters for tunnel mode */ > - odp_ipsec_tunnel_param_t tunnel; > - > - /** Fragmentation mode */ > - odp_ipsec_frag_mode_t frag_mode; > - > /** Various SA option flags */ > odp_ipsec_sa_opt_t opt; > > /** SA lifetime parameters */ > odp_ipsec_lifetime_t lifetime; > > - /** SA lookup mode */ > - odp_ipsec_lookup_mode_t lookup_mode; > - > - /** Minimum anti-replay window size. Use 0 to disable anti-replay > - * service. */ > - uint32_t antireplay_ws; > - > /** Initial sequence number */ > uint64_t seq; > > /** SPI value */ > uint32_t spi; > > - /** Additional inbound SA lookup parameters. Values are considered > - * only in ODP_IPSEC_LOOKUP_DSTADDR_SPI lookup mode. */ > - struct { > - /** Select IP version > - */ > - odp_ipsec_ip_version_t ip_version; > - > - /** IP destination address (NETWORK ENDIAN) */ > - void *dst_addr; > - > - } lookup_param; > - > - /** MTU for outbound IP fragmentation offload > - * > - * This is the maximum length of IP packets that outbound IPSEC > - * operations may produce. The value may be updated later with > - * odp_ipsec_mtu_update(). > - */ > - uint32_t mtu; > - > /** Select pipelined destination for resulting events > * > * Asynchronous and inline modes generate events. Select where > @@ -691,17 +658,6 @@ typedef struct odp_ipsec_sa_param_t { > */ > odp_queue_t dest_queue; > > - /** Classifier destination CoS for resulting packets > - * > - * Successfully decapsulated packets are sent to classification > - * through this CoS. Other resulting events are sent to 'dest_queue'. > - * This field is considered only when 'pipeline' is > - * ODP_IPSEC_PIPELINE_CLS. The CoS must not be shared between any > pktio > - * interface default CoS. The maximum number of different CoS > supported > - * is defined by IPSEC capability max_cls_cos. > - */ > - odp_cos_t dest_cos; > - > /** User defined SA context pointer > * > * User defined context pointer associated with the SA. > @@ -718,6 +674,65 @@ typedef struct odp_ipsec_sa_param_t { > */ > uint32_t context_len; > > + /** IPSEC SA direction dependent parameters */ > + union { > + /** Inbound specific parameters */ > + struct { > + /** SA lookup mode */ > + odp_ipsec_lookup_mode_t lookup_mode; > + > + /** Additional SA lookup parameters. Values are > + * considered only in ODP_IPSEC_LOOKUP_DSTADDR_SPI > + * lookup mode. */ > + struct { > + /** Select IP version */ > + odp_ipsec_ip_version_t ip_version; > + > + /** IP destination address (NETWORK ENDIAN) to > + * be matched in addition to SPI value. */ > + void *dst_addr; > + > + } lookup_param; > + > + /** Minimum anti-replay window size. Use 0 to disable > + * anti-replay service. > + */ > + uint32_t antireplay_ws; > + > + /** Classifier destination CoS for resulting packets > + * > + * Successfully decapsulated packets are sent to > + * classification through this CoS. Other resulting > + * events are sent to 'dest_queue'. This field is > + * considered only when 'pipeline' is > + * ODP_IPSEC_PIPELINE_CLS. The CoS must not be shared > + * between any pktio interface default CoS. The > maximum > + * number of different CoS supported is defined by > + * IPSEC capability max_cls_cos. > + */ > + odp_cos_t dest_cos; > + > + } inbound; > + > + /** Outbound specific parameters */ > + struct { > + /** Parameters for tunnel mode */ > + odp_ipsec_tunnel_param_t tunnel; > + > + /** Fragmentation mode */ > + odp_ipsec_frag_mode_t frag_mode; > + > + /** MTU for outbound IP fragmentation offload > + * > + * This is the maximum length of IP packets that > + * outbound IPSEC operations may produce. The value > may > + * be updated later with odp_ipsec_mtu_update(). > + */ > + uint32_t mtu; > + > + } outbound; > + }; > + > } odp_ipsec_sa_param_t; > > /** > -- > 2.13.0 >