[PATCH] test/security: add inline IPsec Rx inject test

Stephen Hemminger stephen at networkplumber.org
Fri Jan 19 17:56:22 CET 2024


On Fri, 19 Jan 2024 11:42:20 +0530
Rahul Bhansali <rbhansali at marvell.com> wrote:

> +static int
> +test_ipsec_with_rx_inject(struct ip_pkt_vector *vector, const struct ipsec_test_flags *flags)
> +{
> +	struct rte_security_session_conf sess_conf_out = {0};
> +	struct rte_security_session_conf sess_conf_in = {0};
> +	uint32_t nb_tx, burst_sz, nb_sent = 0, nb_inj = 0;
> +	void *out_ses[ENCAP_DECAP_BURST_SZ] = {0};
> +	void *in_ses[ENCAP_DECAP_BURST_SZ] = {0};
> +	struct rte_crypto_sym_xform cipher_out = {0};
> +	struct rte_crypto_sym_xform cipher_in = {0};
> +	struct rte_crypto_sym_xform auth_out = {0};
> +	struct rte_crypto_sym_xform aead_out = {0};
> +	struct rte_crypto_sym_xform auth_in = {0};
> +	struct rte_crypto_sym_xform aead_in = {0};
> +	uint32_t i, j, nb_rx = 0, nb_inj_rx = 0;
> +	struct rte_mbuf **inj_pkts_burst;
> +	struct ipsec_test_data sa_data;
> +	uint32_t ol_flags;
> +	bool outer_ipv4;
> +	int ret = 0;
> +	void *ctx;
> +
> +	inj_pkts_burst = (struct rte_mbuf **)rte_calloc("inj_buff",
> +			MAX_TRAFFIC_BURST,
> +			sizeof(void *),
> +			RTE_CACHE_LINE_SIZE);

Why use rte_calloc(), instead of calloc()
this is a test and the buffer does not need to be shared
it is on stack.

Cast is not necessary here, calloc and rte_calloc return void *

> +	if (!inj_pkts_burst)
> +		return TEST_FAILED;
> +
> +	burst_sz = vector->burst ? ENCAP_DECAP_BURST_SZ : 1;
> +	nb_tx = burst_sz;
> +
> +	memset(tx_pkts_burst, 0, sizeof(tx_pkts_burst[0]) * nb_tx);
> +	memset(rx_pkts_burst, 0, sizeof(rx_pkts_burst[0]) * nb_tx);
> +	memset(inj_pkts_burst, 0, sizeof(inj_pkts_burst[0]) * nb_tx);

calloc routines return already zero'd buffer


More information about the dev mailing list