Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/uipc_ktls.c
Show First 20 Lines • Show All 1,193 Lines • ▼ Show 20 Lines | #endif | ||||
SOCK_IO_SEND_UNLOCK(so); | SOCK_IO_SEND_UNLOCK(so); | ||||
counter_u64_add(ktls_offload_total, 1); | counter_u64_add(ktls_offload_total, 1); | ||||
return (0); | return (0); | ||||
} | } | ||||
int | int | ||||
ktls_get_rx_mode(struct socket *so) | ktls_get_rx_mode(struct socket *so, int *modep) | ||||
{ | { | ||||
struct ktls_session *tls; | struct ktls_session *tls; | ||||
struct inpcb *inp; | struct inpcb *inp; | ||||
int mode; | |||||
if (SOLISTENING(so)) | if (SOLISTENING(so)) | ||||
return (EINVAL); | return (EINVAL); | ||||
inp = so->so_pcb; | inp = so->so_pcb; | ||||
INP_WLOCK_ASSERT(inp); | INP_WLOCK_ASSERT(inp); | ||||
SOCKBUF_LOCK(&so->so_rcv); | SOCK_RECVBUF_LOCK(so); | ||||
tls = so->so_rcv.sb_tls_info; | tls = so->so_rcv.sb_tls_info; | ||||
if (tls == NULL) | if (tls == NULL) | ||||
mode = TCP_TLS_MODE_NONE; | *modep = TCP_TLS_MODE_NONE; | ||||
else | else | ||||
mode = tls->mode; | *modep = tls->mode; | ||||
SOCKBUF_UNLOCK(&so->so_rcv); | SOCK_RECVBUF_UNLOCK(so); | ||||
return (mode); | return (0); | ||||
} | } | ||||
int | int | ||||
ktls_get_tx_mode(struct socket *so) | ktls_get_tx_mode(struct socket *so, int *modep) | ||||
{ | { | ||||
struct ktls_session *tls; | struct ktls_session *tls; | ||||
struct inpcb *inp; | struct inpcb *inp; | ||||
int mode; | |||||
if (SOLISTENING(so)) | if (SOLISTENING(so)) | ||||
return (EINVAL); | return (EINVAL); | ||||
inp = so->so_pcb; | inp = so->so_pcb; | ||||
INP_WLOCK_ASSERT(inp); | INP_WLOCK_ASSERT(inp); | ||||
SOCKBUF_LOCK(&so->so_snd); | SOCK_SENDBUF_LOCK(so); | ||||
tls = so->so_snd.sb_tls_info; | tls = so->so_snd.sb_tls_info; | ||||
if (tls == NULL) | if (tls == NULL) | ||||
mode = TCP_TLS_MODE_NONE; | *modep = TCP_TLS_MODE_NONE; | ||||
else | else | ||||
mode = tls->mode; | *modep = tls->mode; | ||||
SOCKBUF_UNLOCK(&so->so_snd); | SOCK_SENDBUF_UNLOCK(so); | ||||
return (mode); | return (0); | ||||
} | } | ||||
/* | /* | ||||
* Switch between SW and ifnet TLS sessions as requested. | * Switch between SW and ifnet TLS sessions as requested. | ||||
*/ | */ | ||||
int | int | ||||
ktls_set_tx_mode(struct socket *so, int mode) | ktls_set_tx_mode(struct socket *so, int mode) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 1,309 Lines • Show Last 20 Lines |