178d03027SSrujana Challa /* SPDX-License-Identifier: BSD-3-Clause 278d03027SSrujana Challa * Copyright(C) 2021 Marvell. 378d03027SSrujana Challa */ 478d03027SSrujana Challa #ifndef _CNXK_SECURITY_H__ 578d03027SSrujana Challa #define _CNXK_SECURITY_H__ 678d03027SSrujana Challa 778d03027SSrujana Challa #include <rte_crypto.h> 878d03027SSrujana Challa #include <rte_security.h> 978d03027SSrujana Challa 10fdbec406SAnoob Joseph #include "roc_ie_on.h" 11fdbec406SAnoob Joseph #include "roc_ie_ot.h" 1278d03027SSrujana Challa 1378d03027SSrujana Challa /* Response length calculation data */ 1478d03027SSrujana Challa struct cnxk_ipsec_outb_rlens { 1578d03027SSrujana Challa uint16_t partial_len; 1678d03027SSrujana Challa uint8_t roundup_byte; 1778d03027SSrujana Challa int8_t roundup_len; 1878d03027SSrujana Challa uint16_t max_extended_len; 1978d03027SSrujana Challa }; 2078d03027SSrujana Challa 2178d03027SSrujana Challa int __roc_api 2278d03027SSrujana Challa cnxk_ipsec_outb_rlens_get(struct cnxk_ipsec_outb_rlens *rlens, 2378d03027SSrujana Challa struct rte_security_ipsec_xform *ipsec_xfrm, 2478d03027SSrujana Challa struct rte_crypto_sym_xform *crypto_xfrm); 2578d03027SSrujana Challa uint8_t __roc_api 2678d03027SSrujana Challa cnxk_ipsec_ivlen_get(enum rte_crypto_cipher_algorithm c_algo, 2778d03027SSrujana Challa enum rte_crypto_auth_algorithm a_algo, 2878d03027SSrujana Challa enum rte_crypto_aead_algorithm aead_algo); 2978d03027SSrujana Challa uint8_t __roc_api 3078d03027SSrujana Challa cnxk_ipsec_icvlen_get(enum rte_crypto_cipher_algorithm c_algo, 3178d03027SSrujana Challa enum rte_crypto_auth_algorithm a_algo, 3278d03027SSrujana Challa enum rte_crypto_aead_algorithm aead_algo); 3378d03027SSrujana Challa 3478d03027SSrujana Challa uint8_t __roc_api 3578d03027SSrujana Challa cnxk_ipsec_outb_roundup_byte(enum rte_crypto_cipher_algorithm c_algo, 3678d03027SSrujana Challa enum rte_crypto_aead_algorithm aead_algo); 3778d03027SSrujana Challa 3878d03027SSrujana Challa /* [CN10K, .) */ 3978d03027SSrujana Challa int __roc_api 4078d03027SSrujana Challa cnxk_ot_ipsec_inb_sa_fill(struct roc_ot_ipsec_inb_sa *sa, 4178d03027SSrujana Challa struct rte_security_ipsec_xform *ipsec_xfrm, 425ece02e7SVidya Sagar Velumuri struct rte_crypto_sym_xform *crypto_xfrm, 435ece02e7SVidya Sagar Velumuri bool is_inline); 4478d03027SSrujana Challa int __roc_api 4578d03027SSrujana Challa cnxk_ot_ipsec_outb_sa_fill(struct roc_ot_ipsec_outb_sa *sa, 4678d03027SSrujana Challa struct rte_security_ipsec_xform *ipsec_xfrm, 4778d03027SSrujana Challa struct rte_crypto_sym_xform *crypto_xfrm); 4878d03027SSrujana Challa bool __roc_api cnxk_ot_ipsec_inb_sa_valid(struct roc_ot_ipsec_inb_sa *sa); 4978d03027SSrujana Challa bool __roc_api cnxk_ot_ipsec_outb_sa_valid(struct roc_ot_ipsec_outb_sa *sa); 5078d03027SSrujana Challa 51532963b8SVidya Sagar Velumuri /* [CN9K] */ 52*bcee02dcSVidya Sagar Velumuri int __roc_api cnxk_on_ipsec_inb_sa_create(struct rte_security_ipsec_xform *ipsec, 53532963b8SVidya Sagar Velumuri struct rte_crypto_sym_xform *crypto_xform, 54532963b8SVidya Sagar Velumuri struct roc_ie_on_inb_sa *in_sa); 55532963b8SVidya Sagar Velumuri 56*bcee02dcSVidya Sagar Velumuri int __roc_api cnxk_on_ipsec_outb_sa_create(struct rte_security_ipsec_xform *ipsec, 57532963b8SVidya Sagar Velumuri struct rte_crypto_sym_xform *crypto_xform, 58532963b8SVidya Sagar Velumuri struct roc_ie_on_outb_sa *out_sa); 5978d03027SSrujana Challa #endif /* _CNXK_SECURITY_H__ */ 60