1588dfe31SMichal Berger# SPDX-License-Identifier: BSD-3-Clause 2588dfe31SMichal Berger# Copyright (C) 2022 Intel Corporation. 3588dfe31SMichal Berger# All rights reserved. 4976f8b09Spaul luse# 5588dfe31SMichal Berger 6712e8cb7SBen Walkerfrom spdk.rpc.helpers import deprecated_alias 7712e8cb7SBen Walker 8712e8cb7SBen Walker 9c6ecddccSpaul lusedef accel_get_opc_assignments(client): 10712e8cb7SBen Walker """Get list of opcode name to module assignments. 11c6ecddccSpaul luse """ 12c6ecddccSpaul luse return client.call('accel_get_opc_assignments') 1344cbea40Spaul luse 1444cbea40Spaul luse 15712e8cb7SBen Walker@deprecated_alias('accel_get_engine_info') 16712e8cb7SBen Walkerdef accel_get_module_info(client): 17712e8cb7SBen Walker """Get list of valid module names and their operations. 1844cbea40Spaul luse """ 19712e8cb7SBen Walker return client.call('accel_get_module_info') 20efa33b85Spaul luse 21efa33b85Spaul luse 22712e8cb7SBen Walkerdef accel_assign_opc(client, opname, module): 23712e8cb7SBen Walker """Manually assign an operation to a module. 24efa33b85Spaul luse 25efa33b85Spaul luse Args: 26efa33b85Spaul luse opname: name of operation 27712e8cb7SBen Walker module: name of module 28efa33b85Spaul luse """ 29efa33b85Spaul luse params = { 30efa33b85Spaul luse 'opname': opname, 31712e8cb7SBen Walker 'module': module, 32efa33b85Spaul luse } 33efa33b85Spaul luse 34efa33b85Spaul luse return client.call('accel_assign_opc', params) 352608d129SAlexey Marchuk 362608d129SAlexey Marchuk 373b8b12cdSJacek Kalwasdef accel_crypto_key_create(client, cipher, key, key2, tweak_mode, name): 382608d129SAlexey Marchuk """Create Data Encryption Key Identifier. 392608d129SAlexey Marchuk 402608d129SAlexey Marchuk Args: 412608d129SAlexey Marchuk cipher: cipher 422608d129SAlexey Marchuk key: key 432608d129SAlexey Marchuk key2: key2 443b8b12cdSJacek Kalwas tweak_mode: tweak mode 452608d129SAlexey Marchuk name: key name 462608d129SAlexey Marchuk """ 472608d129SAlexey Marchuk params = { 482608d129SAlexey Marchuk 'cipher': cipher, 492608d129SAlexey Marchuk 'key': key, 502608d129SAlexey Marchuk 'name': name, 512608d129SAlexey Marchuk } 522608d129SAlexey Marchuk if key2 is not None: 532608d129SAlexey Marchuk params['key2'] = key2 543b8b12cdSJacek Kalwas if tweak_mode is not None: 553b8b12cdSJacek Kalwas params['tweak_mode'] = tweak_mode 562608d129SAlexey Marchuk 572608d129SAlexey Marchuk return client.call('accel_crypto_key_create', params) 582608d129SAlexey Marchuk 592608d129SAlexey Marchuk 60c30dfbc2SKonrad Sztyberdef accel_crypto_key_destroy(client, key_name): 6113f97e67SAlexey Marchuk """Destroy Data Encryption Key. 6213f97e67SAlexey Marchuk 6313f97e67SAlexey Marchuk Args: 64c30dfbc2SKonrad Sztyber key_name: key name 6513f97e67SAlexey Marchuk """ 6613f97e67SAlexey Marchuk params = { 67c30dfbc2SKonrad Sztyber 'key_name': key_name 6813f97e67SAlexey Marchuk } 6913f97e67SAlexey Marchuk 7013f97e67SAlexey Marchuk return client.call('accel_crypto_key_destroy', params) 7113f97e67SAlexey Marchuk 7213f97e67SAlexey Marchuk 732608d129SAlexey Marchukdef accel_crypto_keys_get(client, key_name): 742608d129SAlexey Marchuk """Get a list of the crypto keys. 752608d129SAlexey Marchuk 762608d129SAlexey Marchuk Args: 772608d129SAlexey Marchuk key_name: Get information about a specific key 782608d129SAlexey Marchuk """ 792608d129SAlexey Marchuk params = {} 802608d129SAlexey Marchuk 812608d129SAlexey Marchuk if key_name is not None: 822608d129SAlexey Marchuk params['key_name'] = key_name 832608d129SAlexey Marchuk 842608d129SAlexey Marchuk return client.call('accel_crypto_keys_get', params) 85b2454dfbSKonrad Sztyber 86b2454dfbSKonrad Sztyber 87b2454dfbSKonrad Sztyberdef accel_set_driver(client, name): 88b2454dfbSKonrad Sztyber """Select accel platform driver to execute operation chains. 89b2454dfbSKonrad Sztyber 90b2454dfbSKonrad Sztyber Args: 91b2454dfbSKonrad Sztyber name: name of the driver 92b2454dfbSKonrad Sztyber """ 93b2454dfbSKonrad Sztyber return client.call('accel_set_driver', {'name': name}) 94688f7fb8SKonrad Sztyber 95688f7fb8SKonrad Sztyber 9631bfcb45SKonrad Sztyberdef accel_set_options(client, small_cache_size, large_cache_size, 9731bfcb45SKonrad Sztyber task_count, sequence_count, buf_count): 98688f7fb8SKonrad Sztyber """Set accel framework's options.""" 99688f7fb8SKonrad Sztyber params = {} 100688f7fb8SKonrad Sztyber 101688f7fb8SKonrad Sztyber if small_cache_size is not None: 102688f7fb8SKonrad Sztyber params['small_cache_size'] = small_cache_size 103688f7fb8SKonrad Sztyber if large_cache_size is not None: 104688f7fb8SKonrad Sztyber params['large_cache_size'] = large_cache_size 10531bfcb45SKonrad Sztyber if task_count is not None: 10631bfcb45SKonrad Sztyber params['task_count'] = task_count 10731bfcb45SKonrad Sztyber if sequence_count is not None: 10831bfcb45SKonrad Sztyber params['sequence_count'] = sequence_count 10931bfcb45SKonrad Sztyber if buf_count is not None: 11031bfcb45SKonrad Sztyber params['buf_count'] = buf_count 111688f7fb8SKonrad Sztyber 112688f7fb8SKonrad Sztyber return client.call('accel_set_options', params) 113f2459a2fSKonrad Sztyber 114f2459a2fSKonrad Sztyber 115f2459a2fSKonrad Sztyberdef accel_get_stats(client): 116f2459a2fSKonrad Sztyber """Get accel framework's statistics""" 117f2459a2fSKonrad Sztyber 118f2459a2fSKonrad Sztyber return client.call('accel_get_stats') 1198625cc18SKonrad Sztyber 1208625cc18SKonrad Sztyber 121*760cb023SKonrad Sztyberdef accel_error_inject_error(client, opcode, type, count=None, interval=None, errcode=None): 1228625cc18SKonrad Sztyber """Inject an error to processing accel operation""" 1238625cc18SKonrad Sztyber params = {} 1248625cc18SKonrad Sztyber if count is not None: 1258625cc18SKonrad Sztyber params['count'] = count 126*760cb023SKonrad Sztyber if interval is not None: 127*760cb023SKonrad Sztyber params['interval'] = interval 128bb019612SKonrad Sztyber if errcode is not None: 129bb019612SKonrad Sztyber params['errcode'] = errcode 1308625cc18SKonrad Sztyber 1318625cc18SKonrad Sztyber return client.call('accel_error_inject_error', 1328625cc18SKonrad Sztyber {'opcode': opcode, 'type': type, **params}) 133