MCPcopy Create free account
hub / github.com/F-Stack/f-stack / vhost_crypto_create_sess

Function vhost_crypto_create_sess

dpdk/lib/vhost/vhost_crypto.c:336–403  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

334}
335
336static void
337vhost_crypto_create_sess(struct vhost_crypto *vcrypto,
338 VhostUserCryptoSessionParam *sess_param)
339{
340 struct rte_crypto_sym_xform xform1 = {0}, xform2 = {0};
341 struct rte_cryptodev_sym_session *session;
342 int ret;
343
344 switch (sess_param->op_type) {
345 case VIRTIO_CRYPTO_SYM_OP_NONE:
346 case VIRTIO_CRYPTO_SYM_OP_CIPHER:
347 ret = transform_cipher_param(&xform1, sess_param);
348 if (unlikely(ret)) {
349 VC_LOG_ERR("Error transform session msg (%i)", ret);
350 sess_param->session_id = ret;
351 return;
352 }
353 break;
354 case VIRTIO_CRYPTO_SYM_OP_ALGORITHM_CHAINING:
355 if (unlikely(sess_param->hash_mode !=
356 VIRTIO_CRYPTO_SYM_HASH_MODE_AUTH)) {
357 sess_param->session_id = -VIRTIO_CRYPTO_NOTSUPP;
358 VC_LOG_ERR("Error transform session message (%i)",
359 -VIRTIO_CRYPTO_NOTSUPP);
360 return;
361 }
362
363 xform1.next = &xform2;
364
365 ret = transform_chain_param(&xform1, sess_param);
366 if (unlikely(ret)) {
367 VC_LOG_ERR("Error transform session message (%i)", ret);
368 sess_param->session_id = ret;
369 return;
370 }
371
372 break;
373 default:
374 VC_LOG_ERR("Algorithm not yet supported");
375 sess_param->session_id = -VIRTIO_CRYPTO_NOTSUPP;
376 return;
377 }
378
379 session = rte_cryptodev_sym_session_create(vcrypto->cid, &xform1,
380 vcrypto->sess_pool);
381 if (!session) {
382 VC_LOG_ERR("Failed to create session");
383 sess_param->session_id = -VIRTIO_CRYPTO_ERR;
384 return;
385 }
386
387 /* insert hash to map */
388 if (rte_hash_add_key_data(vcrypto->session_map,
389 &vcrypto->last_session_id, session) < 0) {
390 VC_LOG_ERR("Failed to insert session to hash table");
391
392 if (rte_cryptodev_sym_session_free(vcrypto->cid, session) < 0)
393 VC_LOG_ERR("Failed to free session");

Callers 1

Calls 5

transform_cipher_paramFunction · 0.85
transform_chain_paramFunction · 0.85
rte_hash_add_key_dataFunction · 0.85

Tested by

no test coverage detected