Note, this change only sets defaults for the ID/KEY, more specific use cases like NVMe/TCP may set the ID and KEY on a per connection basis. Also simplify PSK identity string, that isn't NVMe focused. NVMe libraries using this will need to construct more complicated identity strings and pass them to the sock layer. Example: rpc.py sock_impl_set_options -i ssl --psk-key 4321DEADBEEF1234 rpc.py sock_impl_set_options -i ssl --psk-identity psk.spdk.io ./build/examples/perf --psk-key 4321DEADBEEF1234 --psk-identity psk.spdk.io ./build/examples/hello_sock --psk-key 4321DEADBEEF1234 --psk-identity psk.spdk.io Change-Id: I1cb5b0b706bdeafbccbc71f8320bc8e2961cbb55 Signed-off-by: Boris Glimcher <Boris.Glimcher@emc.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13759 Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot
87 lines
3.4 KiB
Python
87 lines
3.4 KiB
Python
def sock_impl_get_options(client, impl_name=None):
|
|
"""Get parameters for the socket layer implementation.
|
|
|
|
Args:
|
|
impl_name: name of socket implementation, e.g. posix
|
|
"""
|
|
params = {}
|
|
|
|
params['impl_name'] = impl_name
|
|
|
|
return client.call('sock_impl_get_options', params)
|
|
|
|
|
|
def sock_impl_set_options(client,
|
|
impl_name=None,
|
|
recv_buf_size=None,
|
|
send_buf_size=None,
|
|
enable_recv_pipe=None,
|
|
enable_quickack=None,
|
|
enable_placement_id=None,
|
|
enable_zerocopy_send_server=None,
|
|
enable_zerocopy_send_client=None,
|
|
zerocopy_threshold=None,
|
|
tls_version=None,
|
|
enable_ktls=None,
|
|
psk_key=None,
|
|
psk_identity=None):
|
|
"""Set parameters for the socket layer implementation.
|
|
|
|
Args:
|
|
impl_name: name of socket implementation, e.g. posix
|
|
recv_buf_size: size of socket receive buffer in bytes (optional)
|
|
send_buf_size: size of socket send buffer in bytes (optional)
|
|
enable_recv_pipe: enable or disable receive pipe (optional)
|
|
enable_quickack: enable or disable quickack (optional)
|
|
enable_placement_id: option for placement_id. 0:disable,1:incoming_napi,2:incoming_cpu (optional)
|
|
enable_zerocopy_send_server: enable or disable zerocopy on send for server sockets(optional)
|
|
enable_zerocopy_send_client: enable or disable zerocopy on send for client sockets(optional)
|
|
zerocopy_threshold: set zerocopy_threshold in bytes(optional)
|
|
tls_version: set TLS protocol version (optional)
|
|
enable_ktls: enable or disable Kernel TLS (optional)
|
|
psk_key: set psk_key (optional)
|
|
psk_identity: set psk_identity (optional)
|
|
"""
|
|
params = {}
|
|
|
|
params['impl_name'] = impl_name
|
|
if recv_buf_size is not None:
|
|
params['recv_buf_size'] = recv_buf_size
|
|
if send_buf_size is not None:
|
|
params['send_buf_size'] = send_buf_size
|
|
if enable_recv_pipe is not None:
|
|
params['enable_recv_pipe'] = enable_recv_pipe
|
|
if enable_quickack is not None:
|
|
params['enable_quickack'] = enable_quickack
|
|
if enable_placement_id is not None:
|
|
params['enable_placement_id'] = enable_placement_id
|
|
if enable_zerocopy_send_server is not None:
|
|
params['enable_zerocopy_send_server'] = enable_zerocopy_send_server
|
|
if enable_zerocopy_send_client is not None:
|
|
params['enable_zerocopy_send_client'] = enable_zerocopy_send_client
|
|
if zerocopy_threshold is not None:
|
|
params['zerocopy_threshold'] = zerocopy_threshold
|
|
if tls_version is not None:
|
|
params['tls_version'] = tls_version
|
|
if enable_ktls is not None:
|
|
params['enable_ktls'] = enable_ktls
|
|
if psk_key is not None:
|
|
params['psk_key'] = psk_key
|
|
if psk_identity is not None:
|
|
params['psk_identity'] = psk_identity
|
|
|
|
return client.call('sock_impl_set_options', params)
|
|
|
|
|
|
def sock_set_default_impl(client, impl_name=None):
|
|
"""Set the default socket implementation.
|
|
|
|
Args:
|
|
impl_name: name of socket implementation, e.g. posix
|
|
"""
|
|
params = {}
|
|
|
|
params['impl_name'] = impl_name
|
|
|
|
return client.call('sock_set_default_impl', params)
|