#include <net/inet6_hashtables.h>
#include "en_accel/en_accel.h"
#include "en_accel/ktls.h"
#include "en_accel/ktls_txrx.h"
#include "en_accel/ktls_utils.h"
#include "en_accel/fs_tcp.h"
struct accel_rule { … };
#define PROGRESS_PARAMS_WRITE_UNIT …
#define PROGRESS_PARAMS_PADDED_SIZE …
struct mlx5e_ktls_rx_resync_buf { … };
enum { … };
struct mlx5e_ktls_rx_resync_ctx { … };
struct mlx5e_ktls_offload_context_rx { … };
static bool mlx5e_ktls_priv_rx_put(struct mlx5e_ktls_offload_context_rx *priv_rx)
{ … }
static void mlx5e_ktls_priv_rx_get(struct mlx5e_ktls_offload_context_rx *priv_rx)
{ … }
struct mlx5e_ktls_resync_resp { … };
void mlx5e_ktls_rx_resync_destroy_resp_list(struct mlx5e_ktls_resync_resp *resp_list)
{ … }
struct mlx5e_ktls_resync_resp *
mlx5e_ktls_rx_resync_create_resp_list(void)
{ … }
static void accel_rule_handle_work(struct work_struct *work)
{ … }
static void accel_rule_init(struct accel_rule *rule, struct mlx5e_priv *priv)
{ … }
static void icosq_fill_wi(struct mlx5e_icosq *sq, u16 pi,
struct mlx5e_icosq_wqe_info *wi)
{ … }
static struct mlx5_wqe_ctrl_seg *
post_static_params(struct mlx5e_icosq *sq,
struct mlx5e_ktls_offload_context_rx *priv_rx)
{ … }
static struct mlx5_wqe_ctrl_seg *
post_progress_params(struct mlx5e_icosq *sq,
struct mlx5e_ktls_offload_context_rx *priv_rx,
u32 next_record_tcp_sn)
{ … }
static int post_rx_param_wqes(struct mlx5e_channel *c,
struct mlx5e_ktls_offload_context_rx *priv_rx,
u32 next_record_tcp_sn)
{ … }
static void
mlx5e_set_ktls_rx_priv_ctx(struct tls_context *tls_ctx,
struct mlx5e_ktls_offload_context_rx *priv_rx)
{ … }
static struct mlx5e_ktls_offload_context_rx *
mlx5e_get_ktls_rx_priv_ctx(struct tls_context *tls_ctx)
{ … }
static int
resync_post_get_progress_params(struct mlx5e_icosq *sq,
struct mlx5e_ktls_offload_context_rx *priv_rx)
{ … }
static void resync_handle_work(struct work_struct *work)
{ … }
static void resync_init(struct mlx5e_ktls_rx_resync_ctx *resync,
struct mlx5e_priv *priv)
{ … }
static void resync_handle_seq_match(struct mlx5e_ktls_offload_context_rx *priv_rx,
struct mlx5e_channel *c)
{ … }
void mlx5e_ktls_handle_get_psv_completion(struct mlx5e_icosq_wqe_info *wi,
struct mlx5e_icosq *sq)
{ … }
static bool resync_queue_get_psv(struct sock *sk)
{ … }
static void resync_update_sn(struct mlx5e_rq *rq, struct sk_buff *skb)
{ … }
void mlx5e_ktls_rx_resync(struct net_device *netdev, struct sock *sk,
u32 seq, u8 *rcd_sn)
{ … }
void mlx5e_ktls_handle_rx_skb(struct mlx5e_rq *rq, struct sk_buff *skb,
struct mlx5_cqe64 *cqe, u32 *cqe_bcnt)
{ … }
void mlx5e_ktls_handle_ctx_completion(struct mlx5e_icosq_wqe_info *wi)
{ … }
static int mlx5e_ktls_sk_get_rxq(struct sock *sk)
{ … }
int mlx5e_ktls_add_rx(struct net_device *netdev, struct sock *sk,
struct tls_crypto_info *crypto_info,
u32 start_offload_tcp_sn)
{ … }
void mlx5e_ktls_del_rx(struct net_device *netdev, struct tls_context *tls_ctx)
{ … }
bool mlx5e_ktls_rx_handle_resync_list(struct mlx5e_channel *c, int budget)
{ … }