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
>

Reply via email to