Changeset View
Changeset View
Standalone View
Standalone View
sys/sys/ktls.h
Show First 20 Lines • Show All 176 Lines • ▼ Show 20 Lines | |||||
struct ktls_session { | struct ktls_session { | ||||
union { | union { | ||||
int (*sw_encrypt)(struct ktls_ocf_encrypt_state *state, | int (*sw_encrypt)(struct ktls_ocf_encrypt_state *state, | ||||
struct ktls_session *tls, struct mbuf *m, | struct ktls_session *tls, struct mbuf *m, | ||||
struct iovec *outiov, int outiovcnt); | struct iovec *outiov, int outiovcnt); | ||||
int (*sw_decrypt)(struct ktls_session *tls, | int (*sw_decrypt)(struct ktls_session *tls, | ||||
const struct tls_record_layer *hdr, struct mbuf *m, | const struct tls_record_layer *hdr, struct mbuf *m, | ||||
uint64_t seqno, int *trailer_len); | uint64_t seqno, int *trailer_len, bool verify_digest); | ||||
}; | }; | ||||
struct ktls_ocf_session *ocf_session; | struct ktls_ocf_session *ocf_session; | ||||
struct m_snd_tag *snd_tag; | struct m_snd_tag *snd_rcv_tag; | ||||
jhb: I would perhaps defer renaming this for now until we rename the underlying type? This would… | |||||
struct tls_session_params params; | struct tls_session_params params; | ||||
u_int wq_index; | u_int wq_index; | ||||
volatile u_int refcount; | volatile u_int refcount; | ||||
int mode; | int mode; | ||||
int direction; | |||||
struct task reset_tag_task; | struct task reset_tag_task; | ||||
struct task disable_ifnet_task; | struct task disable_ifnet_task; | ||||
struct inpcb *inp; | struct inpcb *inp; | ||||
bool reset_pending; | bool reset_pending; | ||||
bool disable_ifnet_pending; | bool disable_ifnet_pending; | ||||
bool sync_dispatch; | bool sync_dispatch; | ||||
bool sequential_records; | bool sequential_records; | ||||
/* Only used for TLS 1.0. */ | /* Only used for TLS 1.0. */ | ||||
uint64_t next_seqno; | uint64_t next_seqno; | ||||
STAILQ_HEAD(, mbuf) pending_records; | STAILQ_HEAD(, mbuf) pending_records; | ||||
} __aligned(CACHE_LINE_SIZE); | } __aligned(CACHE_LINE_SIZE); | ||||
extern unsigned int ktls_ifnet_max_rexmit_pct; | extern unsigned int ktls_ifnet_max_rexmit_pct; | ||||
void ktls_check_rx(struct sockbuf *sb); | void ktls_check_rx(struct sockbuf *sb); | ||||
int ktls_mbuf_crypto_state(struct mbuf *mb, int offset, int len); | |||||
void ktls_disable_ifnet(void *arg); | void ktls_disable_ifnet(void *arg); | ||||
int ktls_enable_rx(struct socket *so, struct tls_enable *en); | int ktls_enable_rx(struct socket *so, struct tls_enable *en); | ||||
int ktls_enable_tx(struct socket *so, struct tls_enable *en); | int ktls_enable_tx(struct socket *so, struct tls_enable *en); | ||||
Done Inline ActionsJust a suggestion. Making the return value a enum will improve readability of debugging sessions and remove extraneous "default" clause from switch statement. glebius: Just a suggestion. Making the return value a enum will improve readability of debugging… | |||||
void ktls_destroy(struct ktls_session *tls); | void ktls_destroy(struct ktls_session *tls); | ||||
void ktls_frame(struct mbuf *m, struct ktls_session *tls, int *enqueue_cnt, | void ktls_frame(struct mbuf *m, struct ktls_session *tls, int *enqueue_cnt, | ||||
uint8_t record_type); | uint8_t record_type); | ||||
void ktls_seq(struct sockbuf *sb, struct mbuf *m); | void ktls_seq(struct sockbuf *sb, struct mbuf *m); | ||||
void ktls_enqueue(struct mbuf *m, struct socket *so, int page_count); | void ktls_enqueue(struct mbuf *m, struct socket *so, int page_count); | ||||
void ktls_enqueue_to_free(struct mbuf *m); | void ktls_enqueue_to_free(struct mbuf *m); | ||||
int ktls_get_rx_mode(struct socket *so, int *modep); | int ktls_get_rx_mode(struct socket *so, int *modep); | ||||
int ktls_set_tx_mode(struct socket *so, int mode); | int ktls_set_tx_mode(struct socket *so, int mode); | ||||
int ktls_get_tx_mode(struct socket *so, int *modep); | int ktls_get_tx_mode(struct socket *so, int *modep); | ||||
int ktls_output_eagain(struct inpcb *inp, struct ktls_session *tls); | int ktls_output_eagain(struct inpcb *inp); | ||||
#ifdef RATELIMIT | #ifdef RATELIMIT | ||||
int ktls_modify_txrtlmt(struct ktls_session *tls, uint64_t max_pacing_rate); | int ktls_modify_txrtlmt(struct ktls_session *tls, uint64_t max_pacing_rate); | ||||
#endif | #endif | ||||
bool ktls_pending_rx_info(struct sockbuf *sb, uint64_t *seqnop, size_t *residp); | bool ktls_pending_rx_info(struct sockbuf *sb, uint64_t *seqnop, size_t *residp); | ||||
static inline struct ktls_session * | static inline struct ktls_session * | ||||
ktls_hold(struct ktls_session *tls) | ktls_hold(struct ktls_session *tls) | ||||
{ | { | ||||
Show All 16 Lines |
I would perhaps defer renaming this for now until we rename the underlying type? This would also reduce the diff for now?