From: dpdklab@iol.unh.edu
To: test-report@dpdk.org
Cc: dpdk-test-reports@iol.unh.edu
Subject: |WARNING| pw131937 [PATCH] [v4] security: hide security context
Date: Tue, 26 Sep 2023 11:32:44 -0700 (PDT) [thread overview]
Message-ID: <651323cc.810a0220.f3ca1.db1bSMTPIN_ADDED_MISSING@mx.google.com> (raw)
Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/131937
_apply patch failure_
Submitter: Akhil Goyal <gakhil@marvell.com>
Date: Tuesday, September 26 2023 08:08:50
Applied on: CommitID:d419c85a7299a57fb94edcc00f1d2f816e22fb40
Apply patch set 131937 failed:
Checking patch app/test-crypto-perf/cperf_ops.c...
error: while searching for:
else
sess_conf.ipsec.direction = RTE_SECURITY_IPSEC_SA_DIR_INGRESS;
struct rte_security_ctx *ctx = (struct rte_security_ctx *)
rte_cryptodev_get_sec_ctx(dev_id);
/* Create security session */
return (void *)rte_security_session_create(ctx, &sess_conf, sess_mp);
error: patch failed: app/test-crypto-perf/cperf_ops.c:749
error: while searching for:
.crypto_xform = &cipher_xform
};
struct rte_security_ctx *ctx = (struct rte_security_ctx *)
rte_cryptodev_get_sec_ctx(dev_id);
/* Create security session */
return (void *)rte_security_session_create(ctx, &sess_conf, sess_mp);
error: patch failed: app/test-crypto-perf/cperf_ops.c:853
error: while searching for:
} },
.crypto_xform = &cipher_xform
};
struct rte_security_ctx *ctx = (struct rte_security_ctx *)
rte_cryptodev_get_sec_ctx(dev_id);
/* Create security session */
return (void *)rte_security_session_create(ctx, &sess_conf, sess_mp);
error: patch failed: app/test-crypto-perf/cperf_ops.c:901
Checking patch app/test-crypto-perf/cperf_test_latency.c...
error: while searching for:
else if (ctx->options->op_type == CPERF_PDCP ||
ctx->options->op_type == CPERF_DOCSIS ||
ctx->options->op_type == CPERF_IPSEC) {
struct rte_security_ctx *sec_ctx =
rte_cryptodev_get_sec_ctx(ctx->dev_id);
rte_security_session_destroy(sec_ctx, ctx->sess);
}
#endif
error: patch failed: app/test-crypto-perf/cperf_test_latency.c:53
Checking patch app/test-crypto-perf/cperf_test_pmd_cyclecount.c...
error: while searching for:
#ifdef RTE_LIB_SECURITY
if (ctx->options->op_type == CPERF_PDCP ||
ctx->options->op_type == CPERF_DOCSIS) {
struct rte_security_ctx *sec_ctx =
(struct rte_security_ctx *)
rte_cryptodev_get_sec_ctx(ctx->dev_id);
rte_security_session_destroy(sec_ctx,
(void *)ctx->sess);
} else
#endif
rte_cryptodev_sym_session_free(ctx->dev_id, ctx->sess);
error: patch failed: app/test-crypto-perf/cperf_test_pmd_cyclecount.c:67
Checking patch app/test-crypto-perf/cperf_test_throughput.c...
error: while searching for:
else if (ctx->options->op_type == CPERF_PDCP ||
ctx->options->op_type == CPERF_DOCSIS ||
ctx->options->op_type == CPERF_IPSEC) {
struct rte_security_ctx *sec_ctx =
(struct rte_security_ctx *)
rte_cryptodev_get_sec_ctx(ctx->dev_id);
rte_security_session_destroy(
sec_ctx,
(void *)ctx->sess);
}
#endif
else
error: patch failed: app/test-crypto-perf/cperf_test_throughput.c:44
Checking patch app/test-crypto-perf/cperf_test_verify.c...
error: while searching for:
else if (ctx->options->op_type == CPERF_PDCP ||
ctx->options->op_type == CPERF_DOCSIS ||
ctx->options->op_type == CPERF_IPSEC) {
struct rte_security_ctx *sec_ctx =
rte_cryptodev_get_sec_ctx(ctx->dev_id);
rte_security_session_destroy(sec_ctx, ctx->sess);
}
#endif
error: patch failed: app/test-crypto-perf/cperf_test_verify.c:48
Checking patch app/test-security-perf/test_security_perf.c...
error: while searching for:
struct rte_security_session_conf sess_conf;
int i, ret, nb_sessions, nb_sess_total;
struct rte_security_session **sess;
struct rte_security_ctx *sec_ctx;
double setup_rate, destroy_rate;
uint64_t setup_ms, destroy_ms;
struct lcore_conf *conf = arg;
error: patch failed: app/test-security-perf/test_security_perf.c:344
Checking patch app/test/test_cryptodev.c...
error: while searching for:
const struct rte_security_capability *capability;
uint16_t i = 0;
struct rte_security_ctx *ctx = (struct rte_security_ctx *)
rte_cryptodev_get_sec_ctx(
ts_params->valid_devs[0]);
capabilities = rte_security_capabilities_get(ctx);
error: patch failed: app/test/test_cryptodev.c:8931
error: while searching for:
struct crypto_unittest_params *ut_params = &unittest_params;
uint8_t *plaintext;
int ret = TEST_SUCCESS;
struct rte_security_ctx *ctx = (struct rte_security_ctx *)
rte_cryptodev_get_sec_ctx(
ts_params->valid_devs[0]);
struct rte_cryptodev_info dev_info;
uint64_t feat_flags;
error: patch failed: app/test/test_cryptodev.c:8973
error: while searching for:
unsigned int trn_data = 0;
struct rte_cryptodev_info dev_info;
uint64_t feat_flags;
struct rte_security_ctx *ctx = (struct rte_security_ctx *)
rte_cryptodev_get_sec_ctx(
ts_params->valid_devs[0]);
struct rte_mbuf *temp_mbuf;
rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);
error: patch failed: app/test/test_cryptodev.c:9180
error: while searching for:
struct ipsec_test_data *res_d_tmp = NULL;
uint8_t input_text[IPSEC_TEXT_MAX_LEN];
int salt_len, i, ret = TEST_SUCCESS;
struct rte_security_ctx *ctx;
uint32_t src, dst;
uint32_t verify;
error: patch failed: app/test/test_cryptodev.c:9905
error: while searching for:
uint32_t crc_data_len;
int ret = TEST_SUCCESS;
struct rte_security_ctx *ctx = (struct rte_security_ctx *)
rte_cryptodev_get_sec_ctx(
ts_params->valid_devs[0]);
/* Verify the capabilities */
struct rte_security_capability_idx sec_cap_idx;
error: patch failed: app/test/test_cryptodev.c:11088
error: while searching for:
int32_t cipher_len, crc_len;
int ret = TEST_SUCCESS;
struct rte_security_ctx *ctx = (struct rte_security_ctx *)
rte_cryptodev_get_sec_ctx(
ts_params->valid_devs[0]);
/* Verify the capabilities */
struct rte_security_capability_idx sec_cap_idx;
error: patch failed: app/test/test_cryptodev.c:11272
Checking patch app/test/test_cryptodev_security_ipsec.c...
error: while searching for:
}
int
test_ipsec_stats_verify(struct rte_security_ctx *ctx,
void *sess,
const struct ipsec_test_flags *flags,
enum rte_security_ipsec_sa_direction dir)
error: patch failed: app/test/test_cryptodev_security_ipsec.c:1249
Checking patch app/test/test_cryptodev_security_ipsec.h...
error: while searching for:
enum rte_security_ipsec_sa_direction dir,
int pkt_num);
int test_ipsec_stats_verify(struct rte_security_ctx *ctx,
void *sess,
const struct ipsec_test_flags *flags,
enum rte_security_ipsec_sa_direction dir);
error: patch failed: app/test/test_cryptodev_security_ipsec.h:302
Checking patch app/test/test_security_inline_macsec.c...
error: while searching for:
static int
init_mempools(unsigned int nb_mbuf)
{
struct rte_security_ctx *sec_ctx;
uint16_t nb_sess = 512;
uint32_t sess_sz;
char s[64];
error: patch failed: app/test/test_security_inline_macsec.c:136
error: while searching for:
}
static void
mcs_stats_dump(struct rte_security_ctx *ctx, enum mcs_op op,
void *rx_sess, void *tx_sess,
uint8_t rx_sc_id, uint8_t tx_sc_id,
uint16_t rx_sa_id[], uint16_t tx_sa_id[])
error: patch failed: app/test/test_security_inline_macsec.c:482
error: while searching for:
}
static int
mcs_stats_check(struct rte_security_ctx *ctx, enum mcs_op op,
const struct mcs_test_opts *opts,
const struct mcs_test_vector *td,
void *rx_sess, void *tx_sess,
error: patch failed: app/test/test_security_inline_macsec.c:667
error: while searching for:
struct rte_security_macsec_sa sa_conf = {0};
struct rte_security_macsec_sc sc_conf = {0};
struct mcs_err_vector err_vector = {0};
struct rte_security_ctx *ctx;
int nb_rx = 0, nb_sent;
int i, j = 0, ret, id, an = 0;
uint8_t tci_off;
error: patch failed: app/test/test_security_inline_macsec.c:900
error: while searching for:
memset(rx_pkts_burst, 0, sizeof(rx_pkts_burst[0]) * opts->nb_td);
ctx = (struct rte_security_ctx *)rte_eth_dev_get_sec_ctx(port_id);
if (ctx == NULL) {
printf("Ethernet device doesn't support security features.\n");
return TEST_SKIPPED;
error: patch failed: app/test/test_security_inline_macsec.c:908
Checking patch app/test/test_security_inline_proto.c...
error: while searching for:
/* Create Inline IPsec session */
static int
create_inline_ipsec_session(struct ipsec_test_data *sa, uint16_t portid,
void **sess, struct rte_security_ctx **ctx,
uint32_t *ol_flags, const struct ipsec_test_flags *flags,
struct rte_security_session_conf *sess_conf)
{
error: patch failed: app/test/test_security_inline_proto.c:136
error: while searching for:
struct rte_security_capability_idx sec_cap_idx;
const struct rte_security_capability *sec_cap;
enum rte_security_ipsec_sa_direction dir;
struct rte_security_ctx *sec_ctx;
uint32_t verify;
sess_conf->action_type = RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL;
error: patch failed: app/test/test_security_inline_proto.c:149
error: while searching for:
sess_conf->userdata = (void *) sa;
sec_ctx = (struct rte_security_ctx *)rte_eth_dev_get_sec_ctx(portid);
if (sec_ctx == NULL) {
printf("Ethernet device doesn't support security features.\n");
return TEST_SKIPPED;
error: patch failed: app/test/test_security_inline_proto.c:221
error: while searching for:
static int
init_mempools(unsigned int nb_mbuf)
{
struct rte_security_ctx *sec_ctx;
uint16_t nb_sess = 512;
uint32_t sess_sz;
char s[64];
error: patch failed: app/test/test_security_inline_proto.c:503
error: while searching for:
struct rte_crypto_sym_xform auth_in = {0};
struct rte_crypto_sym_xform aead_in = {0};
struct ipsec_test_data sa_data;
struct rte_security_ctx *ctx;
unsigned int i, nb_rx = 0, j;
uint32_t ol_flags;
bool outer_ipv4;
error: patch failed: app/test/test_security_inline_proto.c:846
error: while searching for:
struct rte_crypto_sym_xform auth = {0};
struct rte_crypto_sym_xform aead = {0};
struct sa_expiry_vector vector = {0};
struct rte_security_ctx *ctx;
int nb_rx = 0, nb_sent;
uint32_t ol_flags;
int i, j = 0, ret;
error: patch failed: app/test/test_security_inline_proto.c:1113
error: while searching for:
struct rte_mbuf *tx_pkt = NULL;
int nb_rx, nb_sent;
void *ses;
struct rte_security_ctx *ctx;
uint32_t ol_flags;
bool outer_ipv4;
int i, ret;
error: patch failed: app/test/test_security_inline_proto.c:1398
Checking patch doc/guides/prog_guide/rte_security.rst...
error: while searching for:
Once the session mempools have been created, ``rte_security_session_create()``
is used to allocate and initialize a session for the required crypto/ethernet device.
Session APIs need a parameter ``rte_security_ctx`` to identify the crypto/ethernet
security ops. This parameter can be retrieved using the APIs
``rte_cryptodev_get_sec_ctx()`` (for crypto device) or ``rte_eth_dev_get_sec_ctx``
(for ethernet port).
error: patch failed: doc/guides/prog_guide/rte_security.rst:637
Checking patch doc/guides/rel_notes/deprecation.rst...
error: while searching for:
which got error interrupt to the application,
so that application can reset that particular queue pair.
* security: Hide structures ``rte_security_ops`` and ``rte_security_ctx``
as these are internal to DPDK library and drivers.
* eventdev: The single-event (non-burst) enqueue and dequeue operations,
used by static inline burst enqueue and dequeue functions in ``rte_eventdev.h``,
will be removed in DPDK 23.11.
error: patch failed: doc/guides/rel_notes/deprecation.rst:139
Checking patch doc/guides/rel_notes/release_23_11.rst...
error: while searching for:
except ``rte_thread_setname()`` and ``rte_ctrl_thread_create()`` which are
replaced with ``rte_thread_set_name()`` and ``rte_thread_create_control()``.
ABI Changes
-----------
error: patch failed: doc/guides/rel_notes/release_23_11.rst:144
Checking patch examples/ipsec-secgw/ipsec-secgw.c...
error: while searching for:
static inline void
process_pkts(struct lcore_conf *qconf, struct rte_mbuf **pkts,
uint8_t nb_pkts, uint16_t portid, struct rte_security_ctx *ctx)
{
struct ipsec_traffic traffic;
error: patch failed: examples/ipsec-secgw/ipsec-secgw.c:568
Checking patch examples/ipsec-secgw/ipsec.c...
error: while searching for:
static inline int
verify_security_capabilities(struct rte_security_ctx *ctx,
struct rte_security_session_conf *sess_conf,
uint32_t *ol_flags)
{
error: patch failed: examples/ipsec-secgw/ipsec.c:205
error: while searching for:
};
if (ips->type == RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL) {
struct rte_security_ctx *ctx = (struct rte_security_ctx *)
rte_cryptodev_get_sec_ctx(
cdev_id);
/* Set IPsec parameters in conf */
set_ipsec_conf(sa, &(sess_conf.ipsec));
error: patch failed: examples/ipsec-secgw/ipsec.c:327
error: while searching for:
struct rte_ipsec_session *ips)
{
int32_t ret = 0;
struct rte_security_ctx *sec_ctx;
struct rte_security_session_conf sess_conf = {
.action_type = ips->type,
.protocol = RTE_SECURITY_PROTOCOL_IPSEC,
error: patch failed: examples/ipsec-secgw/ipsec.c:411
error: while searching for:
struct rte_flow_error err;
int ret = 0;
sec_ctx = (struct rte_security_ctx *)
rte_eth_dev_get_sec_ctx(
sa->portid);
if (sec_ctx == NULL) {
RTE_LOG(ERR, IPSEC,
" rte_eth_dev_get_sec_ctx failed\n");
error: patch failed: examples/ipsec-secgw/ipsec.c:490
error: while searching for:
return -1;
}
} else if (ips->type == RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL) {
sec_ctx = (struct rte_security_ctx *)
rte_eth_dev_get_sec_ctx(sa->portid);
if (sec_ctx == NULL) {
RTE_LOG(ERR, IPSEC,
error: patch failed: examples/ipsec-secgw/ipsec.c:657
Checking patch examples/ipsec-secgw/ipsec.h...
error: while searching for:
struct lcore_rx_queue {
uint16_t port_id;
uint8_t queue_id;
struct rte_security_ctx *sec_ctx;
} __rte_cache_aligned;
struct buffer {
error: patch failed: examples/ipsec-secgw/ipsec.h:279
Checking patch examples/ipsec-secgw/ipsec_worker.c...
error: while searching for:
struct port_drv_mode_data {
void *sess;
struct rte_security_ctx *ctx;
};
typedef void (*ipsec_worker_fn_t)(void);
error: patch failed: examples/ipsec-secgw/ipsec_worker.c:20
Checking patch examples/ipsec-secgw/ipsec_worker.h...
error: while searching for:
}
static __rte_always_inline void
prepare_one_packet(struct rte_security_ctx *ctx, struct rte_mbuf *pkt,
struct ipsec_traffic *t)
{
uint32_t ptype = pkt->packet_type;
error: patch failed: examples/ipsec-secgw/ipsec_worker.h:119
error: while searching for:
}
static __rte_always_inline void
prepare_traffic(struct rte_security_ctx *ctx, struct rte_mbuf **pkts,
struct ipsec_traffic *t, uint16_t nb_pkts)
{
int32_t i;
error: patch failed: examples/ipsec-secgw/ipsec_worker.h:230
Checking patch lib/security/rte_security.c...
error: while searching for:
}
void *
rte_security_session_create(struct rte_security_ctx *instance,
struct rte_security_session_conf *conf,
struct rte_mempool *mp)
{
struct rte_security_session *sess = NULL;
uint32_t sess_priv_size;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, session_create, NULL, NULL);
error: patch failed: lib/security/rte_security.c:60
error: while searching for:
}
int
rte_security_session_update(struct rte_security_ctx *instance,
void *sess,
struct rte_security_session_conf *conf)
{
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, session_update, -EINVAL,
-ENOTSUP);
RTE_PTR_OR_ERR_RET(sess, -EINVAL);
error: patch failed: lib/security/rte_security.c:93
error: while searching for:
}
unsigned int
rte_security_session_get_size(struct rte_security_ctx *instance)
{
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, session_get_size, 0, 0);
return (sizeof(struct rte_security_session) +
error: patch failed: lib/security/rte_security.c:106
error: while searching for:
}
int
rte_security_session_stats_get(struct rte_security_ctx *instance,
void *sess,
struct rte_security_stats *stats)
{
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, session_stats_get, -EINVAL,
-ENOTSUP);
/* Parameter sess can be NULL in case of getting global statistics. */
error: patch failed: lib/security/rte_security.c:115
error: while searching for:
}
int
rte_security_session_destroy(struct rte_security_ctx *instance, void *sess)
{
int ret;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, session_destroy, -EINVAL,
error: patch failed: lib/security/rte_security.c:128
error: while searching for:
}
int
rte_security_macsec_sc_create(struct rte_security_ctx *instance,
struct rte_security_macsec_sc *conf)
{
int sc_id;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, macsec_sc_create, -EINVAL, -ENOTSUP);
error: patch failed: lib/security/rte_security.c:149
error: while searching for:
}
int
rte_security_macsec_sa_create(struct rte_security_ctx *instance,
struct rte_security_macsec_sa *conf)
{
int sa_id;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, macsec_sa_create, -EINVAL, -ENOTSUP);
error: patch failed: lib/security/rte_security.c:165
error: while searching for:
}
int
rte_security_macsec_sc_destroy(struct rte_security_ctx *instance, uint16_t sc_id,
enum rte_security_macsec_direction dir)
{
int ret;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, macsec_sc_destroy, -EINVAL, -ENOTSUP);
error: patch failed: lib/security/rte_security.c:181
error: while searching for:
}
int
rte_security_macsec_sa_destroy(struct rte_security_ctx *instance, uint16_t sa_id,
enum rte_security_macsec_direction dir)
{
int ret;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, macsec_sa_destroy, -EINVAL, -ENOTSUP);
error: patch failed: lib/security/rte_security.c:199
error: while searching for:
}
int
rte_security_macsec_sc_stats_get(struct rte_security_ctx *instance, uint16_t sc_id,
enum rte_security_macsec_direction dir,
struct rte_security_macsec_sc_stats *stats)
{
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, macsec_sc_stats_get, -EINVAL, -ENOTSUP);
RTE_PTR_OR_ERR_RET(stats, -EINVAL);
error: patch failed: lib/security/rte_security.c:217
error: while searching for:
}
int
rte_security_macsec_sa_stats_get(struct rte_security_ctx *instance, uint16_t sa_id,
enum rte_security_macsec_direction dir,
struct rte_security_macsec_sa_stats *stats)
{
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, macsec_sa_stats_get, -EINVAL, -ENOTSUP);
RTE_PTR_OR_ERR_RET(stats, -EINVAL);
error: patch failed: lib/security/rte_security.c:228
error: while searching for:
}
int
__rte_security_set_pkt_metadata(struct rte_security_ctx *instance,
void *sess,
struct rte_mbuf *m, void *params)
{
#ifdef RTE_DEBUG
RTE_PTR_OR_ERR_RET(sess, -EINVAL);
RTE_PTR_OR_ERR_RET(instance, -EINVAL);
error: patch failed: lib/security/rte_security.c:239
error: while searching for:
}
const struct rte_security_capability *
rte_security_capabilities_get(struct rte_security_ctx *instance)
{
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, capabilities_get, NULL, NULL);
return instance->ops->capabilities_get(instance->device);
}
const struct rte_security_capability *
rte_security_capability_get(struct rte_security_ctx *instance,
struct rte_security_capability_idx *idx)
{
const struct rte_security_capability *capabilities;
const struct rte_security_capability *capability;
uint16_t i = 0;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, capabilities_get, NULL, NULL);
error: patch failed: lib/security/rte_security.c:255
error: while searching for:
security_capabilities_from_dev_id(int dev_id, const void **caps)
{
const struct rte_security_capability *capabilities;
struct rte_security_ctx *sec_ctx;
if (rte_cryptodev_is_valid_dev(dev_id) == 0)
return -EINVAL;
sec_ctx = (struct rte_security_ctx *)rte_cryptodev_get_sec_ctx(dev_id);
RTE_PTR_OR_ERR_RET(sec_ctx, -EINVAL);
capabilities = rte_security_capabilities_get(sec_ctx);
error: patch failed: lib/security/rte_security.c:401
Checking patch lib/security/rte_security.h...
error: while searching for:
#define RTE_SECURITY_IPSEC_TUNNEL_VERIFY_DST_ADDR 0x1
#define RTE_SECURITY_IPSEC_TUNNEL_VERIFY_SRC_DST_ADDR 0x2
/**
* Security context for crypto/eth devices
*
* Security instance for each driver to register security operations.
* The application can get the security context from the crypto/eth device id
* using the APIs rte_cryptodev_get_sec_ctx()/rte_eth_dev_get_sec_ctx()
* This structure is used to identify the device(crypto/eth) for which the
* security operations need to be performed.
*/
struct rte_security_ctx {
void *device;
/**< Crypto/ethernet device attached */
const struct rte_security_ops *ops;
/**< Pointer to security ops for the device */
uint16_t sess_cnt;
/**< Number of sessions attached to this context */
uint16_t macsec_sc_cnt;
/**< Number of MACsec SC attached to this context */
uint16_t macsec_sa_cnt;
/**< Number of MACsec SA attached to this context */
uint32_t flags;
/**< Flags for security context */
};
#define RTE_SEC_CTX_F_FAST_SET_MDATA 0x00000001
/**< Driver uses fast metadata update without using driver specific callback.
* For fast mdata, mbuf dynamic field would be registered by driver
error: patch failed: lib/security/rte_security.h:56
error: while searching for:
* - On failure, NULL
*/
void *
rte_security_session_create(struct rte_security_ctx *instance,
struct rte_security_session_conf *conf,
struct rte_mempool *mp);
error: patch failed: lib/security/rte_security.h:695
error: while searching for:
*/
__rte_experimental
int
rte_security_session_update(struct rte_security_ctx *instance,
void *sess,
struct rte_security_session_conf *conf);
error: patch failed: lib/security/rte_security.h:711
error: while searching for:
* - 0 if device is invalid or does not support the operation.
*/
unsigned int
rte_security_session_get_size(struct rte_security_ctx *instance);
/**
* Free security session header and the session private data and
error: patch failed: lib/security/rte_security.h:725
error: while searching for:
* - other negative values in case of freeing private data errors.
*/
int
rte_security_session_destroy(struct rte_security_ctx *instance, void *sess);
/**
* @warning
error: patch failed: lib/security/rte_security.h:742
error: while searching for:
*/
__rte_experimental
int
rte_security_macsec_sc_create(struct rte_security_ctx *instance,
struct rte_security_macsec_sc *conf);
/**
error: patch failed: lib/security/rte_security.h:761
error: while searching for:
*/
__rte_experimental
int
rte_security_macsec_sc_destroy(struct rte_security_ctx *instance, uint16_t sc_id,
enum rte_security_macsec_direction dir);
/**
error: patch failed: lib/security/rte_security.h:780
error: while searching for:
*/
__rte_experimental
int
rte_security_macsec_sa_create(struct rte_security_ctx *instance,
struct rte_security_macsec_sa *conf);
/**
error: patch failed: lib/security/rte_security.h:800
error: while searching for:
*/
__rte_experimental
int
rte_security_macsec_sa_destroy(struct rte_security_ctx *instance, uint16_t sa_id,
enum rte_security_macsec_direction dir);
/** Device-specific metadata field type */
error: patch failed: lib/security/rte_security.h:819
error: while searching for:
return rte_security_dynfield_offset >= 0;
}
#define RTE_SECURITY_SESS_OPAQUE_DATA_OFF 0
#define RTE_SECURITY_SESS_FAST_MDATA_OFF 1
/**
error: patch failed: lib/security/rte_security.h:889
error: while searching for:
/** Function to call PMD specific function pointer set_pkt_metadata() */
__rte_experimental
int __rte_security_set_pkt_metadata(struct rte_security_ctx *instance,
void *sess,
struct rte_mbuf *m, void *params);
error: patch failed: lib/security/rte_security.h:933
error: while searching for:
* - On failure, a negative value.
*/
static inline int
rte_security_set_pkt_metadata(struct rte_security_ctx *instance,
void *sess,
struct rte_mbuf *mb, void *params)
{
/* Fast Path */
if (instance->flags & RTE_SEC_CTX_F_FAST_SET_MDATA) {
*rte_security_dynfield(mb) = (rte_security_dynfield_t)
rte_security_session_fast_mdata_get(sess);
return 0;
error: patch failed: lib/security/rte_security.h:951
error: while searching for:
*/
__rte_experimental
int
rte_security_session_stats_get(struct rte_security_ctx *instance,
void *sess,
struct rte_security_stats *stats);
error: patch failed: lib/security/rte_security.h:1105
error: while searching for:
*/
__rte_experimental
int
rte_security_macsec_sa_stats_get(struct rte_security_ctx *instance,
uint16_t sa_id, enum rte_security_macsec_direction dir,
struct rte_security_macsec_sa_stats *stats);
error: patch failed: lib/security/rte_security.h:1125
error: while searching for:
*/
__rte_experimental
int
rte_security_macsec_sc_stats_get(struct rte_security_ctx *instance,
uint16_t sc_id, enum rte_security_macsec_direction dir,
struct rte_security_macsec_sc_stats *stats);
error: patch failed: lib/security/rte_security.h:1145
error: while searching for:
* - Return NULL if no capabilities available.
*/
const struct rte_security_capability *
rte_security_capabilities_get(struct rte_security_ctx *instance);
/**
* Query if a specific capability is available on security instance
error: patch failed: lib/security/rte_security.h:1296
error: while searching for:
* - Return NULL if the capability not matched on security instance.
*/
const struct rte_security_capability *
rte_security_capability_get(struct rte_security_ctx *instance,
struct rte_security_capability_idx *idx);
#ifdef __cplusplus
error: patch failed: lib/security/rte_security.h:1310
Checking patch lib/security/rte_security_driver.h...
error: while searching for:
/**< Private session material, variable size (depends on driver) */
};
/**
* Helper macro to get driver private data
*/
error: patch failed: lib/security/rte_security_driver.h:37
Applying patch app/test-crypto-perf/cperf_ops.c with 3 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Applying patch app/test-crypto-perf/cperf_test_latency.c with 1 reject...
Rejected hunk #1.
Applying patch app/test-crypto-perf/cperf_test_pmd_cyclecount.c with 1 reject...
Rejected hunk #1.
Applying patch app/test-crypto-perf/cperf_test_throughput.c with 1 reject...
Rejected hunk #1.
Applying patch app/test-crypto-perf/cperf_test_verify.c with 1 reject...
Rejected hunk #1.
Applying patch app/test-security-perf/test_security_perf.c with 1 reject...
Rejected hunk #1.
Applying patch app/test/test_cryptodev.c with 6 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Rejected hunk #5.
Rejected hunk #6.
Applying patch app/test/test_cryptodev_security_ipsec.c with 1 reject...
Rejected hunk #1.
Applying patch app/test/test_cryptodev_security_ipsec.h with 1 reject...
Rejected hunk #1.
Applying patch app/test/test_security_inline_macsec.c with 5 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Rejected hunk #5.
Applying patch app/test/test_security_inline_proto.c with 7 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Rejected hunk #5.
Rejected hunk #6.
Rejected hunk #7.
Applying patch doc/guides/prog_guide/rte_security.rst with 1 reject...
Rejected hunk #1.
Applying patch doc/guides/rel_notes/deprecation.rst with 1 reject...
Rejected hunk #1.
Applying patch doc/guides/rel_notes/release_23_11.rst with 1 reject...
Rejected hunk #1.
Applying patch examples/ipsec-secgw/ipsec-secgw.c with 1 reject...
Rejected hunk #1.
Applying patch examples/ipsec-secgw/ipsec.c with 5 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Rejected hunk #5.
Applying patch examples/ipsec-secgw/ipsec.h with 1 reject...
Rejected hunk #1.
Applying patch examples/ipsec-secgw/ipsec_worker.c with 1 reject...
Rejected hunk #1.
Applying patch examples/ipsec-secgw/ipsec_worker.h with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
Applying patch lib/security/rte_security.c with 14 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Rejected hunk #5.
Rejected hunk #6.
Rejected hunk #7.
Rejected hunk #8.
Rejected hunk #9.
Rejected hunk #10.
Rejected hunk #11.
Rejected hunk #12.
Rejected hunk #13.
Rejected hunk #14.
Applying patch lib/security/rte_security.h with 17 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Rejected hunk #5.
Rejected hunk #6.
Rejected hunk #7.
Rejected hunk #8.
Rejected hunk #9.
Rejected hunk #10.
Rejected hunk #11.
Rejected hunk #12.
Rejected hunk #13.
Rejected hunk #14.
Rejected hunk #15.
Rejected hunk #16.
Rejected hunk #17.
Applying patch lib/security/rte_security_driver.h with 1 reject...
Rejected hunk #1.
hint: Use 'git am --show-current-patch' to see the failed patch
diff a/app/test-crypto-perf/cperf_ops.c b/app/test-crypto-perf/cperf_ops.c (rejected hunks)
@@ -749,8 +749,7 @@ create_ipsec_session(struct rte_mempool *sess_mp,
else
sess_conf.ipsec.direction = RTE_SECURITY_IPSEC_SA_DIR_INGRESS;
- struct rte_security_ctx *ctx = (struct rte_security_ctx *)
- rte_cryptodev_get_sec_ctx(dev_id);
+ void *ctx = rte_cryptodev_get_sec_ctx(dev_id);
/* Create security session */
return (void *)rte_security_session_create(ctx, &sess_conf, sess_mp);
@@ -853,8 +852,7 @@ cperf_create_session(struct rte_mempool *sess_mp,
.crypto_xform = &cipher_xform
};
- struct rte_security_ctx *ctx = (struct rte_security_ctx *)
- rte_cryptodev_get_sec_ctx(dev_id);
+ void *ctx = rte_cryptodev_get_sec_ctx(dev_id);
/* Create security session */
return (void *)rte_security_session_create(ctx, &sess_conf, sess_mp);
@@ -901,8 +899,7 @@ cperf_create_session(struct rte_mempool *sess_mp,
} },
.crypto_xform = &cipher_xform
};
- struct rte_security_ctx *ctx = (struct rte_security_ctx *)
- rte_cryptodev_get_sec_ctx(dev_id);
+ void *ctx = rte_cryptodev_get_sec_ctx(dev_id);
/* Create security session */
return (void *)rte_security_session_create(ctx, &sess_conf, sess_mp);
diff a/app/test-crypto-perf/cperf_test_latency.c b/app/test-crypto-perf/cperf_test_latency.c (rejected hunks)
@@ -53,8 +53,7 @@ cperf_latency_test_free(struct cperf_latency_ctx *ctx)
else if (ctx->options->op_type == CPERF_PDCP ||
ctx->options->op_type == CPERF_DOCSIS ||
ctx->options->op_type == CPERF_IPSEC) {
- struct rte_security_ctx *sec_ctx =
- rte_cryptodev_get_sec_ctx(ctx->dev_id);
+ void *sec_ctx = rte_cryptodev_get_sec_ctx(ctx->dev_id);
rte_security_session_destroy(sec_ctx, ctx->sess);
}
#endif
diff a/app/test-crypto-perf/cperf_test_pmd_cyclecount.c b/app/test-crypto-perf/cperf_test_pmd_cyclecount.c (rejected hunks)
@@ -67,11 +67,9 @@ cperf_pmd_cyclecount_test_free(struct cperf_pmd_cyclecount_ctx *ctx)
#ifdef RTE_LIB_SECURITY
if (ctx->options->op_type == CPERF_PDCP ||
ctx->options->op_type == CPERF_DOCSIS) {
- struct rte_security_ctx *sec_ctx =
- (struct rte_security_ctx *)
- rte_cryptodev_get_sec_ctx(ctx->dev_id);
- rte_security_session_destroy(sec_ctx,
- (void *)ctx->sess);
+ void *sec_ctx = rte_cryptodev_get_sec_ctx(ctx->dev_id);
+
+ rte_security_session_destroy(sec_ctx, (void *)ctx->sess);
} else
#endif
rte_cryptodev_sym_session_free(ctx->dev_id, ctx->sess);
diff a/app/test-crypto-perf/cperf_test_throughput.c b/app/test-crypto-perf/cperf_test_throughput.c (rejected hunks)
@@ -44,12 +44,9 @@ cperf_throughput_test_free(struct cperf_throughput_ctx *ctx)
else if (ctx->options->op_type == CPERF_PDCP ||
ctx->options->op_type == CPERF_DOCSIS ||
ctx->options->op_type == CPERF_IPSEC) {
- struct rte_security_ctx *sec_ctx =
- (struct rte_security_ctx *)
- rte_cryptodev_get_sec_ctx(ctx->dev_id);
- rte_security_session_destroy(
- sec_ctx,
- (void *)ctx->sess);
+ void *sec_ctx = rte_cryptodev_get_sec_ctx(ctx->dev_id);
+
+ rte_security_session_destroy(sec_ctx, (void *)ctx->sess);
}
#endif
else
diff a/app/test-crypto-perf/cperf_test_verify.c b/app/test-crypto-perf/cperf_test_verify.c (rejected hunks)
@@ -48,8 +48,8 @@ cperf_verify_test_free(struct cperf_verify_ctx *ctx)
else if (ctx->options->op_type == CPERF_PDCP ||
ctx->options->op_type == CPERF_DOCSIS ||
ctx->options->op_type == CPERF_IPSEC) {
- struct rte_security_ctx *sec_ctx =
- rte_cryptodev_get_sec_ctx(ctx->dev_id);
+ void *sec_ctx = rte_cryptodev_get_sec_ctx(ctx->dev_id);
+
rte_security_session_destroy(sec_ctx, ctx->sess);
}
#endif
diff a/app/test-security-perf/test_security_perf.c b/app/test-security-perf/test_security_perf.c (rejected hunks)
@@ -344,7 +344,7 @@ test_security_session_perf(void *arg)
struct rte_security_session_conf sess_conf;
int i, ret, nb_sessions, nb_sess_total;
struct rte_security_session **sess;
- struct rte_security_ctx *sec_ctx;
+ void *sec_ctx;
double setup_rate, destroy_rate;
uint64_t setup_ms, destroy_ms;
struct lcore_conf *conf = arg;
diff a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c (rejected hunks)
@@ -8931,9 +8931,7 @@ security_proto_supported(enum rte_security_session_action_type action,
const struct rte_security_capability *capability;
uint16_t i = 0;
- struct rte_security_ctx *ctx = (struct rte_security_ctx *)
- rte_cryptodev_get_sec_ctx(
- ts_params->valid_devs[0]);
+ void *ctx = rte_cryptodev_get_sec_ctx(ts_params->valid_devs[0]);
capabilities = rte_security_capabilities_get(ctx);
@@ -8973,9 +8971,7 @@ static int test_pdcp_proto(int i, int oop, enum rte_crypto_cipher_operation opc,
struct crypto_unittest_params *ut_params = &unittest_params;
uint8_t *plaintext;
int ret = TEST_SUCCESS;
- struct rte_security_ctx *ctx = (struct rte_security_ctx *)
- rte_cryptodev_get_sec_ctx(
- ts_params->valid_devs[0]);
+ void *ctx = rte_cryptodev_get_sec_ctx(ts_params->valid_devs[0]);
struct rte_cryptodev_info dev_info;
uint64_t feat_flags;
@@ -9180,9 +9176,7 @@ test_pdcp_proto_SGL(int i, int oop,
unsigned int trn_data = 0;
struct rte_cryptodev_info dev_info;
uint64_t feat_flags;
- struct rte_security_ctx *ctx = (struct rte_security_ctx *)
- rte_cryptodev_get_sec_ctx(
- ts_params->valid_devs[0]);
+ void *ctx = rte_cryptodev_get_sec_ctx(ts_params->valid_devs[0]);
struct rte_mbuf *temp_mbuf;
rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info);
@@ -9905,7 +9899,7 @@ test_ipsec_proto_process(const struct ipsec_test_data td[],
struct ipsec_test_data *res_d_tmp = NULL;
uint8_t input_text[IPSEC_TEXT_MAX_LEN];
int salt_len, i, ret = TEST_SUCCESS;
- struct rte_security_ctx *ctx;
+ void *ctx;
uint32_t src, dst;
uint32_t verify;
@@ -11088,9 +11082,7 @@ test_docsis_proto_uplink(const void *data)
uint32_t crc_data_len;
int ret = TEST_SUCCESS;
- struct rte_security_ctx *ctx = (struct rte_security_ctx *)
- rte_cryptodev_get_sec_ctx(
- ts_params->valid_devs[0]);
+ void *ctx = rte_cryptodev_get_sec_ctx(ts_params->valid_devs[0]);
/* Verify the capabilities */
struct rte_security_capability_idx sec_cap_idx;
@@ -11272,9 +11264,7 @@ test_docsis_proto_downlink(const void *data)
int32_t cipher_len, crc_len;
int ret = TEST_SUCCESS;
- struct rte_security_ctx *ctx = (struct rte_security_ctx *)
- rte_cryptodev_get_sec_ctx(
- ts_params->valid_devs[0]);
+ void *ctx = rte_cryptodev_get_sec_ctx(ts_params->valid_devs[0]);
/* Verify the capabilities */
struct rte_security_capability_idx sec_cap_idx;
diff a/app/test/test_cryptodev_security_ipsec.c b/app/test/test_cryptodev_security_ipsec.c (rejected hunks)
@@ -1249,7 +1249,7 @@ test_ipsec_status_check(const struct ipsec_test_data *td,
}
int
-test_ipsec_stats_verify(struct rte_security_ctx *ctx,
+test_ipsec_stats_verify(void *ctx,
void *sess,
const struct ipsec_test_flags *flags,
enum rte_security_ipsec_sa_direction dir)
diff a/app/test/test_cryptodev_security_ipsec.h b/app/test/test_cryptodev_security_ipsec.h (rejected hunks)
@@ -302,7 +302,7 @@ int test_ipsec_status_check(const struct ipsec_test_data *td,
enum rte_security_ipsec_sa_direction dir,
int pkt_num);
-int test_ipsec_stats_verify(struct rte_security_ctx *ctx,
+int test_ipsec_stats_verify(void *ctx,
void *sess,
const struct ipsec_test_flags *flags,
enum rte_security_ipsec_sa_direction dir);
diff a/app/test/test_security_inline_macsec.c b/app/test/test_security_inline_macsec.c (rejected hunks)
@@ -136,7 +136,7 @@ init_packet(struct rte_mempool *mp, const uint8_t *data, unsigned int len)
static int
init_mempools(unsigned int nb_mbuf)
{
- struct rte_security_ctx *sec_ctx;
+ void *sec_ctx;
uint16_t nb_sess = 512;
uint32_t sess_sz;
char s[64];
@@ -482,7 +482,7 @@ test_macsec_post_process(struct rte_mbuf *m, const struct mcs_test_vector *td,
}
static void
-mcs_stats_dump(struct rte_security_ctx *ctx, enum mcs_op op,
+mcs_stats_dump(void *ctx, enum mcs_op op,
void *rx_sess, void *tx_sess,
uint8_t rx_sc_id, uint8_t tx_sc_id,
uint16_t rx_sa_id[], uint16_t tx_sa_id[])
@@ -667,7 +667,7 @@ mcs_stats_dump(struct rte_security_ctx *ctx, enum mcs_op op,
}
static int
-mcs_stats_check(struct rte_security_ctx *ctx, enum mcs_op op,
+mcs_stats_check(void *ctx, enum mcs_op op,
const struct mcs_test_opts *opts,
const struct mcs_test_vector *td,
void *rx_sess, void *tx_sess,
@@ -900,7 +900,7 @@ test_macsec(const struct mcs_test_vector *td[], enum mcs_op op, const struct mcs
struct rte_security_macsec_sa sa_conf = {0};
struct rte_security_macsec_sc sc_conf = {0};
struct mcs_err_vector err_vector = {0};
- struct rte_security_ctx *ctx;
+ void *ctx;
int nb_rx = 0, nb_sent;
int i, j = 0, ret, id, an = 0;
uint8_t tci_off;
@@ -908,7 +908,7 @@ test_macsec(const struct mcs_test_vector *td[], enum mcs_op op, const struct mcs
memset(rx_pkts_burst, 0, sizeof(rx_pkts_burst[0]) * opts->nb_td);
- ctx = (struct rte_security_ctx *)rte_eth_dev_get_sec_ctx(port_id);
+ ctx = rte_eth_dev_get_sec_ctx(port_id);
if (ctx == NULL) {
printf("Ethernet device doesn't support security features.\n");
return TEST_SKIPPED;
diff a/app/test/test_security_inline_proto.c b/app/test/test_security_inline_proto.c (rejected hunks)
@@ -136,7 +136,7 @@ static struct rte_flow *default_flow[RTE_MAX_ETHPORTS];
/* Create Inline IPsec session */
static int
create_inline_ipsec_session(struct ipsec_test_data *sa, uint16_t portid,
- void **sess, struct rte_security_ctx **ctx,
+ void **sess, void **ctx,
uint32_t *ol_flags, const struct ipsec_test_flags *flags,
struct rte_security_session_conf *sess_conf)
{
@@ -149,7 +149,7 @@ create_inline_ipsec_session(struct ipsec_test_data *sa, uint16_t portid,
struct rte_security_capability_idx sec_cap_idx;
const struct rte_security_capability *sec_cap;
enum rte_security_ipsec_sa_direction dir;
- struct rte_security_ctx *sec_ctx;
+ void *sec_ctx;
uint32_t verify;
sess_conf->action_type = RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL;
@@ -221,7 +221,7 @@ create_inline_ipsec_session(struct ipsec_test_data *sa, uint16_t portid,
sess_conf->userdata = (void *) sa;
- sec_ctx = (struct rte_security_ctx *)rte_eth_dev_get_sec_ctx(portid);
+ sec_ctx = rte_eth_dev_get_sec_ctx(portid);
if (sec_ctx == NULL) {
printf("Ethernet device doesn't support security features.\n");
return TEST_SKIPPED;
@@ -503,7 +503,7 @@ init_packet(struct rte_mempool *mp, const uint8_t *data, unsigned int len, bool
static int
init_mempools(unsigned int nb_mbuf)
{
- struct rte_security_ctx *sec_ctx;
+ void *sec_ctx;
uint16_t nb_sess = 512;
uint32_t sess_sz;
char s[64];
@@ -846,7 +846,7 @@ test_ipsec_with_reassembly(struct reassembly_vector *vector,
struct rte_crypto_sym_xform auth_in = {0};
struct rte_crypto_sym_xform aead_in = {0};
struct ipsec_test_data sa_data;
- struct rte_security_ctx *ctx;
+ void *ctx;
unsigned int i, nb_rx = 0, j;
uint32_t ol_flags;
bool outer_ipv4;
@@ -1113,7 +1113,7 @@ test_ipsec_inline_proto_process(struct ipsec_test_data *td,
struct rte_crypto_sym_xform auth = {0};
struct rte_crypto_sym_xform aead = {0};
struct sa_expiry_vector vector = {0};
- struct rte_security_ctx *ctx;
+ void *ctx;
int nb_rx = 0, nb_sent;
uint32_t ol_flags;
int i, j = 0, ret;
@@ -1398,7 +1398,7 @@ test_ipsec_inline_proto_process_with_esn(struct ipsec_test_data td[],
struct rte_mbuf *tx_pkt = NULL;
int nb_rx, nb_sent;
void *ses;
- struct rte_security_ctx *ctx;
+ void *ctx;
uint32_t ol_flags;
bool outer_ipv4;
int i, ret;
diff a/doc/guides/prog_guide/rte_security.rst b/doc/guides/prog_guide/rte_security.rst (rejected hunks)
@@ -637,7 +637,7 @@ And the session mempool object size should be enough to accommodate
Once the session mempools have been created, ``rte_security_session_create()``
is used to allocate and initialize a session for the required crypto/ethernet device.
-Session APIs need a parameter ``rte_security_ctx`` to identify the crypto/ethernet
+Session APIs need an opaque handle to identify the crypto/ethernet
security ops. This parameter can be retrieved using the APIs
``rte_cryptodev_get_sec_ctx()`` (for crypto device) or ``rte_eth_dev_get_sec_ctx``
(for ethernet port).
diff a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst (rejected hunks)
@@ -139,9 +139,6 @@ Deprecation Notices
which got error interrupt to the application,
so that application can reset that particular queue pair.
-* security: Hide structures ``rte_security_ops`` and ``rte_security_ctx``
- as these are internal to DPDK library and drivers.
-
* eventdev: The single-event (non-burst) enqueue and dequeue operations,
used by static inline burst enqueue and dequeue functions in ``rte_eventdev.h``,
will be removed in DPDK 23.11.
diff a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst (rejected hunks)
@@ -144,6 +144,9 @@ API Changes
except ``rte_thread_setname()`` and ``rte_ctrl_thread_create()`` which are
replaced with ``rte_thread_set_name()`` and ``rte_thread_create_control()``.
+* security: Structures ``rte_security_ops`` and ``rte_security_ctx`` were moved to
+ internal library headers not visible to application.
+
ABI Changes
-----------
diff a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c (rejected hunks)
@@ -568,7 +568,7 @@ process_pkts_outbound_nosp(struct ipsec_ctx *ipsec_ctx,
static inline void
process_pkts(struct lcore_conf *qconf, struct rte_mbuf **pkts,
- uint8_t nb_pkts, uint16_t portid, struct rte_security_ctx *ctx)
+ uint8_t nb_pkts, uint16_t portid, void *ctx)
{
struct ipsec_traffic traffic;
diff a/examples/ipsec-secgw/ipsec.c b/examples/ipsec-secgw/ipsec.c (rejected hunks)
@@ -205,7 +205,7 @@ verify_ipsec_capabilities(struct rte_security_ipsec_xform *ipsec_xform,
static inline int
-verify_security_capabilities(struct rte_security_ctx *ctx,
+verify_security_capabilities(void *ctx,
struct rte_security_session_conf *sess_conf,
uint32_t *ol_flags)
{
@@ -327,9 +327,7 @@ create_lookaside_session(struct ipsec_ctx *ipsec_ctx_lcore[],
};
if (ips->type == RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL) {
- struct rte_security_ctx *ctx = (struct rte_security_ctx *)
- rte_cryptodev_get_sec_ctx(
- cdev_id);
+ void *ctx = rte_cryptodev_get_sec_ctx(cdev_id);
/* Set IPsec parameters in conf */
set_ipsec_conf(sa, &(sess_conf.ipsec));
@@ -411,7 +409,7 @@ create_inline_session(struct socket_ctx *skt_ctx, struct ipsec_sa *sa,
struct rte_ipsec_session *ips)
{
int32_t ret = 0;
- struct rte_security_ctx *sec_ctx;
+ void *sec_ctx;
struct rte_security_session_conf sess_conf = {
.action_type = ips->type,
.protocol = RTE_SECURITY_PROTOCOL_IPSEC,
@@ -490,9 +488,7 @@ create_inline_session(struct socket_ctx *skt_ctx, struct ipsec_sa *sa,
struct rte_flow_error err;
int ret = 0;
- sec_ctx = (struct rte_security_ctx *)
- rte_eth_dev_get_sec_ctx(
- sa->portid);
+ sec_ctx = rte_eth_dev_get_sec_ctx(sa->portid);
if (sec_ctx == NULL) {
RTE_LOG(ERR, IPSEC,
" rte_eth_dev_get_sec_ctx failed\n");
@@ -657,8 +653,7 @@ create_inline_session(struct socket_ctx *skt_ctx, struct ipsec_sa *sa,
return -1;
}
} else if (ips->type == RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL) {
- sec_ctx = (struct rte_security_ctx *)
- rte_eth_dev_get_sec_ctx(sa->portid);
+ sec_ctx = rte_eth_dev_get_sec_ctx(sa->portid);
if (sec_ctx == NULL) {
RTE_LOG(ERR, IPSEC,
diff a/examples/ipsec-secgw/ipsec.h b/examples/ipsec-secgw/ipsec.h (rejected hunks)
@@ -279,7 +279,7 @@ struct cnt_blk {
struct lcore_rx_queue {
uint16_t port_id;
uint8_t queue_id;
- struct rte_security_ctx *sec_ctx;
+ void *sec_ctx;
} __rte_cache_aligned;
struct buffer {
diff a/examples/ipsec-secgw/ipsec_worker.c b/examples/ipsec-secgw/ipsec_worker.c (rejected hunks)
@@ -20,7 +20,7 @@
struct port_drv_mode_data {
void *sess;
- struct rte_security_ctx *ctx;
+ void *ctx;
};
typedef void (*ipsec_worker_fn_t)(void);
diff a/examples/ipsec-secgw/ipsec_worker.h b/examples/ipsec-secgw/ipsec_worker.h (rejected hunks)
@@ -119,7 +119,7 @@ adjust_ipv6_pktlen(struct rte_mbuf *m, const struct rte_ipv6_hdr *iph,
}
static __rte_always_inline void
-prepare_one_packet(struct rte_security_ctx *ctx, struct rte_mbuf *pkt,
+prepare_one_packet(void *ctx, struct rte_mbuf *pkt,
struct ipsec_traffic *t)
{
uint32_t ptype = pkt->packet_type;
@@ -230,7 +230,7 @@ prepare_one_packet(struct rte_security_ctx *ctx, struct rte_mbuf *pkt,
}
static __rte_always_inline void
-prepare_traffic(struct rte_security_ctx *ctx, struct rte_mbuf **pkts,
+prepare_traffic(void *ctx, struct rte_mbuf **pkts,
struct ipsec_traffic *t, uint16_t nb_pkts)
{
int32_t i;
diff a/lib/security/rte_security.c b/lib/security/rte_security.c (rejected hunks)
@@ -60,11 +60,12 @@ rte_security_oop_dynfield_register(void)
}
void *
-rte_security_session_create(struct rte_security_ctx *instance,
+rte_security_session_create(void *ctx,
struct rte_security_session_conf *conf,
struct rte_mempool *mp)
{
struct rte_security_session *sess = NULL;
+ struct rte_security_ctx *instance = ctx;
uint32_t sess_priv_size;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, session_create, NULL, NULL);
@@ -93,10 +94,10 @@ rte_security_session_create(struct rte_security_ctx *instance,
}
int
-rte_security_session_update(struct rte_security_ctx *instance,
- void *sess,
- struct rte_security_session_conf *conf)
+rte_security_session_update(void *ctx, void *sess, struct rte_security_session_conf *conf)
{
+ struct rte_security_ctx *instance = ctx;
+
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, session_update, -EINVAL,
-ENOTSUP);
RTE_PTR_OR_ERR_RET(sess, -EINVAL);
@@ -106,8 +107,10 @@ rte_security_session_update(struct rte_security_ctx *instance,
}
unsigned int
-rte_security_session_get_size(struct rte_security_ctx *instance)
+rte_security_session_get_size(void *ctx)
{
+ struct rte_security_ctx *instance = ctx;
+
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, session_get_size, 0, 0);
return (sizeof(struct rte_security_session) +
@@ -115,10 +118,10 @@ rte_security_session_get_size(struct rte_security_ctx *instance)
}
int
-rte_security_session_stats_get(struct rte_security_ctx *instance,
- void *sess,
- struct rte_security_stats *stats)
+rte_security_session_stats_get(void *ctx, void *sess, struct rte_security_stats *stats)
{
+ struct rte_security_ctx *instance = ctx;
+
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, session_stats_get, -EINVAL,
-ENOTSUP);
/* Parameter sess can be NULL in case of getting global statistics. */
@@ -128,8 +131,9 @@ rte_security_session_stats_get(struct rte_security_ctx *instance,
}
int
-rte_security_session_destroy(struct rte_security_ctx *instance, void *sess)
+rte_security_session_destroy(void *ctx, void *sess)
{
+ struct rte_security_ctx *instance = ctx;
int ret;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, session_destroy, -EINVAL,
@@ -149,9 +153,9 @@ rte_security_session_destroy(struct rte_security_ctx *instance, void *sess)
}
int
-rte_security_macsec_sc_create(struct rte_security_ctx *instance,
- struct rte_security_macsec_sc *conf)
+rte_security_macsec_sc_create(void *ctx, struct rte_security_macsec_sc *conf)
{
+ struct rte_security_ctx *instance = ctx;
int sc_id;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, macsec_sc_create, -EINVAL, -ENOTSUP);
@@ -165,9 +169,9 @@ rte_security_macsec_sc_create(struct rte_security_ctx *instance,
}
int
-rte_security_macsec_sa_create(struct rte_security_ctx *instance,
- struct rte_security_macsec_sa *conf)
+rte_security_macsec_sa_create(void *ctx, struct rte_security_macsec_sa *conf)
{
+ struct rte_security_ctx *instance = ctx;
int sa_id;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, macsec_sa_create, -EINVAL, -ENOTSUP);
@@ -181,9 +185,10 @@ rte_security_macsec_sa_create(struct rte_security_ctx *instance,
}
int
-rte_security_macsec_sc_destroy(struct rte_security_ctx *instance, uint16_t sc_id,
+rte_security_macsec_sc_destroy(void *ctx, uint16_t sc_id,
enum rte_security_macsec_direction dir)
{
+ struct rte_security_ctx *instance = ctx;
int ret;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, macsec_sc_destroy, -EINVAL, -ENOTSUP);
@@ -199,9 +204,10 @@ rte_security_macsec_sc_destroy(struct rte_security_ctx *instance, uint16_t sc_id
}
int
-rte_security_macsec_sa_destroy(struct rte_security_ctx *instance, uint16_t sa_id,
+rte_security_macsec_sa_destroy(void *ctx, uint16_t sa_id,
enum rte_security_macsec_direction dir)
{
+ struct rte_security_ctx *instance = ctx;
int ret;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, macsec_sa_destroy, -EINVAL, -ENOTSUP);
@@ -217,10 +223,12 @@ rte_security_macsec_sa_destroy(struct rte_security_ctx *instance, uint16_t sa_id
}
int
-rte_security_macsec_sc_stats_get(struct rte_security_ctx *instance, uint16_t sc_id,
+rte_security_macsec_sc_stats_get(void *ctx, uint16_t sc_id,
enum rte_security_macsec_direction dir,
struct rte_security_macsec_sc_stats *stats)
{
+ struct rte_security_ctx *instance = ctx;
+
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, macsec_sc_stats_get, -EINVAL, -ENOTSUP);
RTE_PTR_OR_ERR_RET(stats, -EINVAL);
@@ -228,10 +236,12 @@ rte_security_macsec_sc_stats_get(struct rte_security_ctx *instance, uint16_t sc_
}
int
-rte_security_macsec_sa_stats_get(struct rte_security_ctx *instance, uint16_t sa_id,
+rte_security_macsec_sa_stats_get(void *ctx, uint16_t sa_id,
enum rte_security_macsec_direction dir,
struct rte_security_macsec_sa_stats *stats)
{
+ struct rte_security_ctx *instance = ctx;
+
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, macsec_sa_stats_get, -EINVAL, -ENOTSUP);
RTE_PTR_OR_ERR_RET(stats, -EINVAL);
@@ -239,10 +249,9 @@ rte_security_macsec_sa_stats_get(struct rte_security_ctx *instance, uint16_t sa_
}
int
-__rte_security_set_pkt_metadata(struct rte_security_ctx *instance,
- void *sess,
- struct rte_mbuf *m, void *params)
+__rte_security_set_pkt_metadata(void *ctx, void *sess, struct rte_mbuf *m, void *params)
{
+ struct rte_security_ctx *instance = ctx;
#ifdef RTE_DEBUG
RTE_PTR_OR_ERR_RET(sess, -EINVAL);
RTE_PTR_OR_ERR_RET(instance, -EINVAL);
@@ -255,19 +264,21 @@ __rte_security_set_pkt_metadata(struct rte_security_ctx *instance,
}
const struct rte_security_capability *
-rte_security_capabilities_get(struct rte_security_ctx *instance)
+rte_security_capabilities_get(void *ctx)
{
+ struct rte_security_ctx *instance = ctx;
+
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, capabilities_get, NULL, NULL);
return instance->ops->capabilities_get(instance->device);
}
const struct rte_security_capability *
-rte_security_capability_get(struct rte_security_ctx *instance,
- struct rte_security_capability_idx *idx)
+rte_security_capability_get(void *ctx, struct rte_security_capability_idx *idx)
{
const struct rte_security_capability *capabilities;
const struct rte_security_capability *capability;
+ struct rte_security_ctx *instance = ctx;
uint16_t i = 0;
RTE_PTR_CHAIN3_OR_ERR_RET(instance, ops, capabilities_get, NULL, NULL);
@@ -401,12 +412,12 @@ static int
security_capabilities_from_dev_id(int dev_id, const void **caps)
{
const struct rte_security_capability *capabilities;
- struct rte_security_ctx *sec_ctx;
+ void *sec_ctx;
if (rte_cryptodev_is_valid_dev(dev_id) == 0)
return -EINVAL;
- sec_ctx = (struct rte_security_ctx *)rte_cryptodev_get_sec_ctx(dev_id);
+ sec_ctx = rte_cryptodev_get_sec_ctx(dev_id);
RTE_PTR_OR_ERR_RET(sec_ctx, -EINVAL);
capabilities = rte_security_capabilities_get(sec_ctx);
diff a/lib/security/rte_security.h b/lib/security/rte_security.h (rejected hunks)
@@ -56,30 +56,6 @@ enum rte_security_ipsec_tunnel_type {
#define RTE_SECURITY_IPSEC_TUNNEL_VERIFY_DST_ADDR 0x1
#define RTE_SECURITY_IPSEC_TUNNEL_VERIFY_SRC_DST_ADDR 0x2
-/**
- * Security context for crypto/eth devices
- *
- * Security instance for each driver to register security operations.
- * The application can get the security context from the crypto/eth device id
- * using the APIs rte_cryptodev_get_sec_ctx()/rte_eth_dev_get_sec_ctx()
- * This structure is used to identify the device(crypto/eth) for which the
- * security operations need to be performed.
- */
-struct rte_security_ctx {
- void *device;
- /**< Crypto/ethernet device attached */
- const struct rte_security_ops *ops;
- /**< Pointer to security ops for the device */
- uint16_t sess_cnt;
- /**< Number of sessions attached to this context */
- uint16_t macsec_sc_cnt;
- /**< Number of MACsec SC attached to this context */
- uint16_t macsec_sa_cnt;
- /**< Number of MACsec SA attached to this context */
- uint32_t flags;
- /**< Flags for security context */
-};
-
#define RTE_SEC_CTX_F_FAST_SET_MDATA 0x00000001
/**< Driver uses fast metadata update without using driver specific callback.
* For fast mdata, mbuf dynamic field would be registered by driver
@@ -695,7 +671,7 @@ struct rte_security_session_conf {
* - On failure, NULL
*/
void *
-rte_security_session_create(struct rte_security_ctx *instance,
+rte_security_session_create(void *instance,
struct rte_security_session_conf *conf,
struct rte_mempool *mp);
@@ -711,7 +687,7 @@ rte_security_session_create(struct rte_security_ctx *instance,
*/
__rte_experimental
int
-rte_security_session_update(struct rte_security_ctx *instance,
+rte_security_session_update(void *instance,
void *sess,
struct rte_security_session_conf *conf);
@@ -725,7 +701,7 @@ rte_security_session_update(struct rte_security_ctx *instance,
* - 0 if device is invalid or does not support the operation.
*/
unsigned int
-rte_security_session_get_size(struct rte_security_ctx *instance);
+rte_security_session_get_size(void *instance);
/**
* Free security session header and the session private data and
@@ -742,7 +718,7 @@ rte_security_session_get_size(struct rte_security_ctx *instance);
* - other negative values in case of freeing private data errors.
*/
int
-rte_security_session_destroy(struct rte_security_ctx *instance, void *sess);
+rte_security_session_destroy(void *instance, void *sess);
/**
* @warning
@@ -761,7 +737,7 @@ rte_security_session_destroy(struct rte_security_ctx *instance, void *sess);
*/
__rte_experimental
int
-rte_security_macsec_sc_create(struct rte_security_ctx *instance,
+rte_security_macsec_sc_create(void *instance,
struct rte_security_macsec_sc *conf);
/**
@@ -780,7 +756,7 @@ rte_security_macsec_sc_create(struct rte_security_ctx *instance,
*/
__rte_experimental
int
-rte_security_macsec_sc_destroy(struct rte_security_ctx *instance, uint16_t sc_id,
+rte_security_macsec_sc_destroy(void *instance, uint16_t sc_id,
enum rte_security_macsec_direction dir);
/**
@@ -800,7 +776,7 @@ rte_security_macsec_sc_destroy(struct rte_security_ctx *instance, uint16_t sc_id
*/
__rte_experimental
int
-rte_security_macsec_sa_create(struct rte_security_ctx *instance,
+rte_security_macsec_sa_create(void *instance,
struct rte_security_macsec_sa *conf);
/**
@@ -819,7 +795,7 @@ rte_security_macsec_sa_create(struct rte_security_ctx *instance,
*/
__rte_experimental
int
-rte_security_macsec_sa_destroy(struct rte_security_ctx *instance, uint16_t sa_id,
+rte_security_macsec_sa_destroy(void *instance, uint16_t sa_id,
enum rte_security_macsec_direction dir);
/** Device-specific metadata field type */
@@ -889,6 +865,27 @@ static inline bool rte_security_dynfield_is_registered(void)
return rte_security_dynfield_offset >= 0;
}
+#define RTE_SECURITY_CTX_FLAGS_OFF 4
+/**
+ * Get security flags from security instance.
+ */
+static inline uint32_t
+rte_security_ctx_flags_get(void *ctx)
+{
+ return *((uint32_t *)ctx + RTE_SECURITY_CTX_FLAGS_OFF);
+}
+
+/**
+ * Set security flags in security instance.
+ */
+static inline void
+rte_security_ctx_flags_set(void *ctx, uint32_t flags)
+{
+ uint32_t *data;
+ data = (((uint32_t *)ctx) + RTE_SECURITY_CTX_FLAGS_OFF);
+ *data = flags;
+}
+
#define RTE_SECURITY_SESS_OPAQUE_DATA_OFF 0
#define RTE_SECURITY_SESS_FAST_MDATA_OFF 1
/**
@@ -933,7 +930,7 @@ rte_security_session_fast_mdata_set(void *sess, uint64_t fdata)
/** Function to call PMD specific function pointer set_pkt_metadata() */
__rte_experimental
-int __rte_security_set_pkt_metadata(struct rte_security_ctx *instance,
+int __rte_security_set_pkt_metadata(void *instance,
void *sess,
struct rte_mbuf *m, void *params);
@@ -951,12 +948,12 @@ int __rte_security_set_pkt_metadata(struct rte_security_ctx *instance,
* - On failure, a negative value.
*/
static inline int
-rte_security_set_pkt_metadata(struct rte_security_ctx *instance,
+rte_security_set_pkt_metadata(void *instance,
void *sess,
struct rte_mbuf *mb, void *params)
{
/* Fast Path */
- if (instance->flags & RTE_SEC_CTX_F_FAST_SET_MDATA) {
+ if (rte_security_ctx_flags_get(instance) & RTE_SEC_CTX_F_FAST_SET_MDATA) {
*rte_security_dynfield(mb) = (rte_security_dynfield_t)
rte_security_session_fast_mdata_get(sess);
return 0;
@@ -1105,7 +1102,7 @@ struct rte_security_stats {
*/
__rte_experimental
int
-rte_security_session_stats_get(struct rte_security_ctx *instance,
+rte_security_session_stats_get(void *instance,
void *sess,
struct rte_security_stats *stats);
@@ -1125,7 +1122,7 @@ rte_security_session_stats_get(struct rte_security_ctx *instance,
*/
__rte_experimental
int
-rte_security_macsec_sa_stats_get(struct rte_security_ctx *instance,
+rte_security_macsec_sa_stats_get(void *instance,
uint16_t sa_id, enum rte_security_macsec_direction dir,
struct rte_security_macsec_sa_stats *stats);
@@ -1145,7 +1142,7 @@ rte_security_macsec_sa_stats_get(struct rte_security_ctx *instance,
*/
__rte_experimental
int
-rte_security_macsec_sc_stats_get(struct rte_security_ctx *instance,
+rte_security_macsec_sc_stats_get(void *instance,
uint16_t sc_id, enum rte_security_macsec_direction dir,
struct rte_security_macsec_sc_stats *stats);
@@ -1296,7 +1293,7 @@ struct rte_security_capability_idx {
* - Return NULL if no capabilities available.
*/
const struct rte_security_capability *
-rte_security_capabilities_get(struct rte_security_ctx *instance);
+rte_security_capabilities_get(void *instance);
/**
* Query if a specific capability is available on security instance
@@ -1310,7 +1307,7 @@ rte_security_capabilities_get(struct rte_security_ctx *instance);
* - Return NULL if the capability not matched on security instance.
*/
const struct rte_security_capability *
-rte_security_capability_get(struct rte_security_ctx *instance,
+rte_security_capability_get(void *instance,
struct rte_security_capability_idx *idx);
#ifdef __cplusplus
diff a/lib/security/rte_security_driver.h b/lib/security/rte_security_driver.h (rejected hunks)
@@ -37,6 +37,30 @@ struct rte_security_session {
/**< Private session material, variable size (depends on driver) */
};
+/**
+ * Security context for crypto/eth devices
+ *
+ * Security instance for each driver to register security operations.
+ * The application can get the security context from the crypto/eth device id
+ * using the APIs rte_cryptodev_get_sec_ctx()/rte_eth_dev_get_sec_ctx()
+ * This structure is used to identify the device(crypto/eth) for which the
+ * security operations need to be performed.
+ */
+struct rte_security_ctx {
+ void *device;
+ /**< Crypto/ethernet device attached */
+ const struct rte_security_ops *ops;
+ /**< Pointer to security ops for the device */
+ uint32_t flags;
+ /**< Flags for security context */
+ uint16_t sess_cnt;
+ /**< Number of sessions attached to this context */
+ uint16_t macsec_sc_cnt;
+ /**< Number of MACsec SC attached to this context */
+ uint16_t macsec_sa_cnt;
+ /**< Number of MACsec SA attached to this context */
+};
+
/**
* Helper macro to get driver private data
*/
https://lab.dpdk.org/results/dashboard/patchsets/27726/
UNH-IOL DPDK Community Lab
reply other threads:[~2023-09-26 18:32 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=651323cc.810a0220.f3ca1.db1bSMTPIN_ADDED_MISSING@mx.google.com \
--to=dpdklab@iol.unh.edu \
--cc=dpdk-test-reports@iol.unh.edu \
--cc=test-report@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).