File Index
Files and directories
Sign in
FILE

ktls_txrx.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h C
 1/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
 2/* Copyright (c) 2020, Mellanox Technologies inc. All rights reserved. */
 3
 4#ifndef __MLX5E_KTLS_TXRX_H__
 5#define __MLX5E_KTLS_TXRX_H__
 6
 7#ifdef CONFIG_MLX5_EN_TLS
 8
 9#include <net/tls.h>
10#include "en.h"
11#include "en/txrx.h"
12
13struct mlx5e_accel_tx_tls_state {
14	u32 tls_tisn;
15};
16
17u16 mlx5e_ktls_get_stop_room(struct mlx5_core_dev *mdev, struct mlx5e_params *params);
18
19bool mlx5e_ktls_handle_tx_skb(struct net_device *netdev, struct mlx5e_txqsq *sq,
20			      struct sk_buff *skb,
21			      struct mlx5e_accel_tx_tls_state *state);
22void mlx5e_ktls_handle_rx_skb(struct mlx5e_rq *rq, struct sk_buff *skb,
23			      struct mlx5_cqe64 *cqe, u32 *cqe_bcnt);
24
25void mlx5e_ktls_handle_ctx_completion(struct mlx5e_icosq_wqe_info *wi);
26void mlx5e_ktls_handle_get_psv_completion(struct mlx5e_icosq_wqe_info *wi,
27					  struct mlx5e_icosq *sq);
28
29void mlx5e_ktls_tx_handle_resync_dump_comp(struct mlx5e_txqsq *sq,
30					   struct mlx5e_tx_wqe_info *wi,
31					   u32 *dma_fifo_cc);
32
33void
34mlx5e_ktls_rx_resync_async_request_cancel(struct mlx5e_icosq_wqe_info *wi);
35
36static inline bool
37mlx5e_ktls_tx_try_handle_resync_dump_comp(struct mlx5e_txqsq *sq,
38					  struct mlx5e_tx_wqe_info *wi,
39					  u32 *dma_fifo_cc)
40{
41	if (unlikely(wi->resync_dump_frag_page)) {
42		mlx5e_ktls_tx_handle_resync_dump_comp(sq, wi, dma_fifo_cc);
43		return true;
44	}
45	return false;
46}
47
48bool mlx5e_ktls_rx_handle_resync_list(struct mlx5e_channel *c, int budget);
49
50static inline bool
51mlx5e_ktls_rx_pending_resync_list(struct mlx5e_channel *c, int budget)
52{
53	return budget && test_bit(MLX5E_SQ_STATE_PENDING_TLS_RX_RESYNC, &c->async_icosq.state);
54}
55
56static inline void
57mlx5e_ktls_handle_tx_wqe(struct mlx5_wqe_ctrl_seg *cseg,
58			 struct mlx5e_accel_tx_tls_state *state)
59{
60	cseg->tis_tir_num = cpu_to_be32(state->tls_tisn << 8);
61}
62#else
63static inline bool
64mlx5e_ktls_tx_try_handle_resync_dump_comp(struct mlx5e_txqsq *sq,
65					  struct mlx5e_tx_wqe_info *wi,
66					  u32 *dma_fifo_cc)
67{
68	return false;
69}
70
71static inline bool
72mlx5e_ktls_rx_handle_resync_list(struct mlx5e_channel *c, int budget)
73{
74	return false;
75}
76
77static inline bool
78mlx5e_ktls_rx_pending_resync_list(struct mlx5e_channel *c, int budget)
79{
80	return false;
81}
82
83static inline u16 mlx5e_ktls_get_stop_room(struct mlx5_core_dev *mdev,
84					   struct mlx5e_params *params)
85{
86	return 0;
87}
88
89static inline void mlx5e_ktls_handle_rx_skb(struct mlx5e_rq *rq,
90					    struct sk_buff *skb,
91					    struct mlx5_cqe64 *cqe,
92					    u32 *cqe_bcnt)
93{
94}
95#endif /* CONFIG_MLX5_EN_TLS */
96
97#endif /* __MLX5E_TLS_TXRX_H__ */
~/ Read-only file preview.