spdk_sock_impl_opts Struct Reference

SPDK socket implementation options. More...

Data Fields

uint32_t recv_buf_size
 Minimum size of sock receive buffer. More...
 
uint32_t send_buf_size
 Minimum size of sock send buffer. More...
 
bool enable_recv_pipe
 Enable or disable receive pipe. More...
 
bool enable_zerocopy_send
 Deprecated, please use enable_zerocopy_send_server or enable_zerocopy_send_client instead Enable or disable use of zero copy flow on send. More...
 
bool enable_quickack
 Enable or disable quick ACK. More...
 
uint32_t enable_placement_id
 Enable or disable placement_id. More...
 
bool enable_zerocopy_send_server
 Enable or disable use of zero copy flow on send for server sockets. More...
 
bool enable_zerocopy_send_client
 Enable or disable use of zero copy flow on send for client sockets. More...
 
uint32_t zerocopy_threshold
 Set zerocopy threshold in bytes. More...
 
uint32_t tls_version
 TLS protocol version. More...
 
bool enable_ktls
 Enable or disable kernel TLS. More...
 
uint8_t * psk_key
 Set default PSK key. More...
 
uint32_t psk_key_size
 Size of psk_key.
 
char * psk_identity
 Set default PSK identity. More...
 
int(* get_key )(uint8_t *out, int out_len, const char **cipher, const char *psk_identity, void *get_key_ctx)
 Optional callback to retrieve PSK based on client's identity. More...
 
void * get_key_ctx
 Context to be passed to get_key() callback.
 
const char * tls_cipher_suites
 Cipher suite. More...
 

Detailed Description

SPDK socket implementation options.

A pointer to this structure is used by spdk_sock_impl_get_opts() and spdk_sock_impl_set_opts() to allow the user to request options for the socket module implementation. Each socket module defines which options from this structure are applicable to the module.

Field Documentation

◆ enable_ktls

bool spdk_sock_impl_opts::enable_ktls

Enable or disable kernel TLS.

Used by ssl socket modules.

◆ enable_placement_id

uint32_t spdk_sock_impl_opts::enable_placement_id

Enable or disable placement_id.

Used by posix and uring socket modules. Valid values in the enum spdk_placement_mode.

◆ enable_quickack

bool spdk_sock_impl_opts::enable_quickack

Enable or disable quick ACK.

Used by posix and uring socket modules.

◆ enable_recv_pipe

bool spdk_sock_impl_opts::enable_recv_pipe

Enable or disable receive pipe.

Used by posix and uring socket modules.

◆ enable_zerocopy_send

bool spdk_sock_impl_opts::enable_zerocopy_send

Deprecated, please use enable_zerocopy_send_server or enable_zerocopy_send_client instead Enable or disable use of zero copy flow on send.

Used by posix socket module.

◆ enable_zerocopy_send_client

bool spdk_sock_impl_opts::enable_zerocopy_send_client

Enable or disable use of zero copy flow on send for client sockets.

Used by posix and uring socket modules.

◆ enable_zerocopy_send_server

bool spdk_sock_impl_opts::enable_zerocopy_send_server

Enable or disable use of zero copy flow on send for server sockets.

Used by posix and uring socket modules.

◆ get_key

int(* spdk_sock_impl_opts::get_key) (uint8_t *out, int out_len, const char **cipher, const char *psk_identity, void *get_key_ctx)

Optional callback to retrieve PSK based on client's identity.

Parameters
outBuffer for PSK in binary format to be filled with found key.
out_lenLength of "out" buffer.
cipherCipher suite to be set by this callback.
psk_identityPSK identity for which the key needs to be found.
get_key_ctxContext for this callback.
Returns
key length on success, -1 on failure.

◆ psk_identity

char* spdk_sock_impl_opts::psk_identity

Set default PSK identity.

Used by ssl socket module.

◆ psk_key

uint8_t* spdk_sock_impl_opts::psk_key

Set default PSK key.

Used by ssl socket module.

◆ recv_buf_size

uint32_t spdk_sock_impl_opts::recv_buf_size

Minimum size of sock receive buffer.

Used by posix and uring socket modules.

◆ send_buf_size

uint32_t spdk_sock_impl_opts::send_buf_size

Minimum size of sock send buffer.

Used by posix and uring socket modules.

◆ tls_cipher_suites

const char* spdk_sock_impl_opts::tls_cipher_suites

Cipher suite.

Used by ssl socket module. For connecting side, it must contain a single cipher: example: "TLS_AES_256_GCM_SHA384"

For listening side, it may be a colon separated list of ciphers: example: "TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256"

◆ tls_version

uint32_t spdk_sock_impl_opts::tls_version

TLS protocol version.

Used by ssl socket module.

◆ zerocopy_threshold

uint32_t spdk_sock_impl_opts::zerocopy_threshold

Set zerocopy threshold in bytes.

A consecutive sequence of requests' iovecs that fall below this threshold may be sent without zerocopy flag set.


The documentation for this struct was generated from the following file: