1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34#include <linux/mlx5/device.h>
35
36#include "accel/ipsec.h"
37#include "mlx5_core.h"
38#include "fpga/ipsec.h"
39
40u32 mlx5_accel_ipsec_device_caps(struct mlx5_core_dev *mdev)
41{
42 return mlx5_fpga_ipsec_device_caps(mdev);
43}
44EXPORT_SYMBOL_GPL(mlx5_accel_ipsec_device_caps);
45
46unsigned int mlx5_accel_ipsec_counters_count(struct mlx5_core_dev *mdev)
47{
48 return mlx5_fpga_ipsec_counters_count(mdev);
49}
50
51int mlx5_accel_ipsec_counters_read(struct mlx5_core_dev *mdev, u64 *counters,
52 unsigned int count)
53{
54 return mlx5_fpga_ipsec_counters_read(mdev, counters, count);
55}
56
57void *mlx5_accel_esp_create_hw_context(struct mlx5_core_dev *mdev,
58 struct mlx5_accel_esp_xfrm *xfrm,
59 const __be32 saddr[4],
60 const __be32 daddr[4],
61 const __be32 spi, bool is_ipv6)
62{
63 return mlx5_fpga_ipsec_create_sa_ctx(mdev, xfrm, saddr, daddr,
64 spi, is_ipv6);
65}
66
67void mlx5_accel_esp_free_hw_context(void *context)
68{
69 mlx5_fpga_ipsec_delete_sa_ctx(context);
70}
71
72int mlx5_accel_ipsec_init(struct mlx5_core_dev *mdev)
73{
74 return mlx5_fpga_ipsec_init(mdev);
75}
76
77void mlx5_accel_ipsec_cleanup(struct mlx5_core_dev *mdev)
78{
79 mlx5_fpga_ipsec_cleanup(mdev);
80}
81
82struct mlx5_accel_esp_xfrm *
83mlx5_accel_esp_create_xfrm(struct mlx5_core_dev *mdev,
84 const struct mlx5_accel_esp_xfrm_attrs *attrs,
85 u32 flags)
86{
87 struct mlx5_accel_esp_xfrm *xfrm;
88
89 xfrm = mlx5_fpga_esp_create_xfrm(mdev, attrs, flags);
90 if (IS_ERR(xfrm))
91 return xfrm;
92
93 xfrm->mdev = mdev;
94 return xfrm;
95}
96EXPORT_SYMBOL_GPL(mlx5_accel_esp_create_xfrm);
97
98void mlx5_accel_esp_destroy_xfrm(struct mlx5_accel_esp_xfrm *xfrm)
99{
100 mlx5_fpga_esp_destroy_xfrm(xfrm);
101}
102EXPORT_SYMBOL_GPL(mlx5_accel_esp_destroy_xfrm);
103
104int mlx5_accel_esp_modify_xfrm(struct mlx5_accel_esp_xfrm *xfrm,
105 const struct mlx5_accel_esp_xfrm_attrs *attrs)
106{
107 return mlx5_fpga_esp_modify_xfrm(xfrm, attrs);
108}
109EXPORT_SYMBOL_GPL(mlx5_accel_esp_modify_xfrm);
110