FILE
ktls_txrx.h
File preview with syntax highlighting.
linux-6.19.14/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls_txrx.h
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.