File Index
Files and directories
Sign in
FILE

macsec_api.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ethernet/aquantia/atlantic/macsec/macsec_api.h C
  1/* SPDX-License-Identifier: GPL-2.0-only */
  2/* Atlantic Network Driver
  3 * Copyright (C) 2020 Marvell International Ltd.
  4 */
  5
  6#ifndef __MACSEC_API_H__
  7#define __MACSEC_API_H__
  8
  9#include "aq_hw.h"
 10#include "macsec_struct.h"
 11
 12#define NUMROWS_INGRESSPRECTLFRECORD 24
 13#define ROWOFFSET_INGRESSPRECTLFRECORD 0
 14
 15#define NUMROWS_INGRESSPRECLASSRECORD 48
 16#define ROWOFFSET_INGRESSPRECLASSRECORD 0
 17
 18#define NUMROWS_INGRESSPOSTCLASSRECORD 48
 19#define ROWOFFSET_INGRESSPOSTCLASSRECORD 0
 20
 21#define NUMROWS_INGRESSSCRECORD 32
 22#define ROWOFFSET_INGRESSSCRECORD 0
 23
 24#define NUMROWS_INGRESSSARECORD 32
 25#define ROWOFFSET_INGRESSSARECORD 32
 26
 27#define NUMROWS_INGRESSSAKEYRECORD 32
 28#define ROWOFFSET_INGRESSSAKEYRECORD 0
 29
 30#define NUMROWS_INGRESSPOSTCTLFRECORD 24
 31#define ROWOFFSET_INGRESSPOSTCTLFRECORD 0
 32
 33#define NUMROWS_EGRESSCTLFRECORD 24
 34#define ROWOFFSET_EGRESSCTLFRECORD 0
 35
 36#define NUMROWS_EGRESSCLASSRECORD 48
 37#define ROWOFFSET_EGRESSCLASSRECORD 0
 38
 39#define NUMROWS_EGRESSSCRECORD 32
 40#define ROWOFFSET_EGRESSSCRECORD 0
 41
 42#define NUMROWS_EGRESSSARECORD 32
 43#define ROWOFFSET_EGRESSSARECORD 32
 44
 45#define NUMROWS_EGRESSSAKEYRECORD 32
 46#define ROWOFFSET_EGRESSSAKEYRECORD 96
 47
 48/*!  Read the raw table data from the specified row of the Egress CTL
 49 *   Filter table, and unpack it into the fields of rec.
 50 *  rec - [OUT] The raw table row data will be unpacked into the fields of rec.
 51 *  table_index - The table row to read (max 23).
 52 */
 53int aq_mss_get_egress_ctlf_record(struct aq_hw_s *hw,
 54				  struct aq_mss_egress_ctlf_record *rec,
 55				  u16 table_index);
 56
 57/*!  Pack the fields of rec, and write the packed data into the
 58 *   specified row of the Egress CTL Filter table.
 59 *  rec - [IN] The bitfield values to write to the table row.
 60 *  table_index - The table row to write(max 23).
 61 */
 62int aq_mss_set_egress_ctlf_record(struct aq_hw_s *hw,
 63				  const struct aq_mss_egress_ctlf_record *rec,
 64				  u16 table_index);
 65
 66/*!  Read the raw table data from the specified row of the Egress
 67 *   Packet Classifier table, and unpack it into the fields of rec.
 68 *  rec - [OUT] The raw table row data will be unpacked into the fields of rec.
 69 *  table_index - The table row to read (max 47).
 70 */
 71int aq_mss_get_egress_class_record(struct aq_hw_s *hw,
 72				   struct aq_mss_egress_class_record *rec,
 73				   u16 table_index);
 74
 75/*!  Pack the fields of rec, and write the packed data into the
 76 *   specified row of the Egress Packet Classifier table.
 77 *  rec - [IN] The bitfield values to write to the table row.
 78 *  table_index - The table row to write (max 47).
 79 */
 80int aq_mss_set_egress_class_record(struct aq_hw_s *hw,
 81				   const struct aq_mss_egress_class_record *rec,
 82				   u16 table_index);
 83
 84/*!  Read the raw table data from the specified row of the Egress SC
 85 *   Lookup table, and unpack it into the fields of rec.
 86 *  rec - [OUT] The raw table row data will be unpacked into the fields of rec.
 87 *  table_index - The table row to read (max 31).
 88 */
 89int aq_mss_get_egress_sc_record(struct aq_hw_s *hw,
 90				struct aq_mss_egress_sc_record *rec,
 91				u16 table_index);
 92
 93/*!  Pack the fields of rec, and write the packed data into the
 94 *   specified row of the Egress SC Lookup table.
 95 *  rec - [IN] The bitfield values to write to the table row.
 96 *  table_index - The table row to write (max 31).
 97 */
 98int aq_mss_set_egress_sc_record(struct aq_hw_s *hw,
 99				const struct aq_mss_egress_sc_record *rec,
100				u16 table_index);
101
102/*!  Read the raw table data from the specified row of the Egress SA
103 *   Lookup table, and unpack it into the fields of rec.
104 *  rec - [OUT] The raw table row data will be unpacked into the fields of rec.
105 *  table_index - The table row to read (max 31).
106 */
107int aq_mss_get_egress_sa_record(struct aq_hw_s *hw,
108				struct aq_mss_egress_sa_record *rec,
109				u16 table_index);
110
111/*!  Pack the fields of rec, and write the packed data into the
112 *   specified row of the Egress SA Lookup table.
113 *  rec  - [IN] The bitfield values to write to the table row.
114 *  table_index - The table row to write (max 31).
115 */
116int aq_mss_set_egress_sa_record(struct aq_hw_s *hw,
117				const struct aq_mss_egress_sa_record *rec,
118				u16 table_index);
119
120/*!  Read the raw table data from the specified row of the Egress SA
121 *   Key Lookup table, and unpack it into the fields of rec.
122 *  rec - [OUT] The raw table row data will be unpacked into the fields of rec.
123 *  table_index - The table row to read (max 31).
124 */
125int aq_mss_get_egress_sakey_record(struct aq_hw_s *hw,
126				   struct aq_mss_egress_sakey_record *rec,
127				   u16 table_index);
128
129/*!  Pack the fields of rec, and write the packed data into the
130 *   specified row of the Egress SA Key Lookup table.
131 *  rec - [IN] The bitfield values to write to the table row.
132 *  table_index - The table row to write (max 31).
133 */
134int aq_mss_set_egress_sakey_record(struct aq_hw_s *hw,
135				   const struct aq_mss_egress_sakey_record *rec,
136				   u16 table_index);
137
138/*!  Read the raw table data from the specified row of the Ingress
139 *   Pre-MACSec CTL Filter table, and unpack it into the fields of rec.
140 *  rec - [OUT] The raw table row data will be unpacked into the fields of rec.
141 *  table_index - The table row to read (max 23).
142 */
143int aq_mss_get_ingress_prectlf_record(struct aq_hw_s *hw,
144				      struct aq_mss_ingress_prectlf_record *rec,
145				      u16 table_index);
146
147/*!  Pack the fields of rec, and write the packed data into the
148 *   specified row of the Ingress Pre-MACSec CTL Filter table.
149 *  rec - [IN] The bitfield values to write to the table row.
150 *  table_index - The table row to write(max 23).
151 */
152int aq_mss_set_ingress_prectlf_record(struct aq_hw_s *hw,
153	const struct aq_mss_ingress_prectlf_record *rec,
154	u16 table_index);
155
156/*!  Read the raw table data from the specified row of the Ingress
157 *   Pre-MACSec Packet Classifier table, and unpack it into the fields of rec.
158 *  rec - [OUT] The raw table row data will be unpacked into the fields of rec.
159 *  table_index - The table row to read (max 47).
160 */
161int aq_mss_get_ingress_preclass_record(struct aq_hw_s *hw,
162	struct aq_mss_ingress_preclass_record *rec,
163	u16 table_index);
164
165/*!  Pack the fields of rec, and write the packed data into the
166 *   specified row of the Ingress Pre-MACSec Packet Classifier table.
167 *  rec - [IN] The bitfield values to write to the table row.
168 *  table_index - The table row to write(max 47).
169 */
170int aq_mss_set_ingress_preclass_record(struct aq_hw_s *hw,
171	const struct aq_mss_ingress_preclass_record *rec,
172	u16 table_index);
173
174/*!  Read the raw table data from the specified row of the Ingress SC
175 *   Lookup table, and unpack it into the fields of rec.
176 *  rec - [OUT] The raw table row data will be unpacked into the fields of rec.
177 *  table_index - The table row to read (max 31).
178 */
179int aq_mss_get_ingress_sc_record(struct aq_hw_s *hw,
180				 struct aq_mss_ingress_sc_record *rec,
181				 u16 table_index);
182
183/*!  Pack the fields of rec, and write the packed data into the
184 *   specified row of the Ingress SC Lookup table.
185 *  rec - [IN] The bitfield values to write to the table row.
186 *  table_index - The table row to write(max 31).
187 */
188int aq_mss_set_ingress_sc_record(struct aq_hw_s *hw,
189				 const struct aq_mss_ingress_sc_record *rec,
190				 u16 table_index);
191
192/*!  Read the raw table data from the specified row of the Ingress SA
193 *   Lookup table, and unpack it into the fields of rec.
194 *  rec - [OUT] The raw table row data will be unpacked into the fields of rec.
195 *  table_index - The table row to read (max 31).
196 */
197int aq_mss_get_ingress_sa_record(struct aq_hw_s *hw,
198				 struct aq_mss_ingress_sa_record *rec,
199				 u16 table_index);
200
201/*!  Pack the fields of rec, and write the packed data into the
202 *   specified row of the Ingress SA Lookup table.
203 *  rec - [IN] The bitfield values to write to the table row.
204 *  table_index - The table row to write(max 31).
205 */
206int aq_mss_set_ingress_sa_record(struct aq_hw_s *hw,
207				 const struct aq_mss_ingress_sa_record *rec,
208				 u16 table_index);
209
210/*!  Read the raw table data from the specified row of the Ingress SA
211 *   Key Lookup table, and unpack it into the fields of rec.
212 *  rec - [OUT] The raw table row data will be unpacked into the fields of rec.
213 *  table_index - The table row to read (max 31).
214 */
215int aq_mss_get_ingress_sakey_record(struct aq_hw_s *hw,
216				    struct aq_mss_ingress_sakey_record *rec,
217				    u16 table_index);
218
219/*!  Pack the fields of rec, and write the packed data into the
220 *   specified row of the Ingress SA Key Lookup table.
221 *  rec - [IN] The bitfield values to write to the table row.
222 *  table_index - The table row to write(max 31).
223 */
224int aq_mss_set_ingress_sakey_record(struct aq_hw_s *hw,
225	const struct aq_mss_ingress_sakey_record *rec,
226	u16 table_index);
227
228/*!  Read the raw table data from the specified row of the Ingress
229 *   Post-MACSec Packet Classifier table, and unpack it into the
230 *   fields of rec.
231 *  rec - [OUT] The raw table row data will be unpacked into the fields of rec.
232 *  table_index - The table row to read (max 48).
233 */
234int aq_mss_get_ingress_postclass_record(struct aq_hw_s *hw,
235	struct aq_mss_ingress_postclass_record *rec,
236	u16 table_index);
237
238/*!  Pack the fields of rec, and write the packed data into the
239 *   specified row of the Ingress Post-MACSec Packet Classifier table.
240 *  rec - [IN] The bitfield values to write to the table row.
241 *  table_index - The table row to write(max 48).
242 */
243int aq_mss_set_ingress_postclass_record(struct aq_hw_s *hw,
244	const struct aq_mss_ingress_postclass_record *rec,
245	u16 table_index);
246
247/*!  Read the raw table data from the specified row of the Ingress
248 *   Post-MACSec CTL Filter table, and unpack it into the fields of rec.
249 *  rec - [OUT] The raw table row data will be unpacked into the fields of rec.
250 *  table_index - The table row to read (max 23).
251 */
252int aq_mss_get_ingress_postctlf_record(struct aq_hw_s *hw,
253	struct aq_mss_ingress_postctlf_record *rec,
254	u16 table_index);
255
256/*!  Pack the fields of rec, and write the packed data into the
257 *   specified row of the Ingress Post-MACSec CTL Filter table.
258 *  rec - [IN] The bitfield values to write to the table row.
259 *  table_index - The table row to write(max 23).
260 */
261int aq_mss_set_ingress_postctlf_record(struct aq_hw_s *hw,
262	const struct aq_mss_ingress_postctlf_record *rec,
263	u16 table_index);
264
265/*!  Read the counters for the specified SC, and unpack them into the
266 *   fields of counters.
267 *  counters - [OUT] The raw table row data will be unpacked here.
268 *  sc_index - The table row to read (max 31).
269 */
270int aq_mss_get_egress_sc_counters(struct aq_hw_s *hw,
271				  struct aq_mss_egress_sc_counters *counters,
272				  u16 sc_index);
273
274/*!  Read the counters for the specified SA, and unpack them into the
275 *   fields of counters.
276 *  counters - [OUT] The raw table row data will be unpacked here.
277 *  sa_index - The table row to read (max 31).
278 */
279int aq_mss_get_egress_sa_counters(struct aq_hw_s *hw,
280				  struct aq_mss_egress_sa_counters *counters,
281				  u16 sa_index);
282
283/*!  Read the counters for the common egress counters, and unpack them
284 *   into the fields of counters.
285 *  counters - [OUT] The raw table row data will be unpacked here.
286 */
287int aq_mss_get_egress_common_counters(struct aq_hw_s *hw,
288	struct aq_mss_egress_common_counters *counters);
289
290/*!  Clear all Egress counters to 0.*/
291int aq_mss_clear_egress_counters(struct aq_hw_s *hw);
292
293/*!  Read the counters for the specified SA, and unpack them into the
294 *   fields of counters.
295 *  counters - [OUT] The raw table row data will be unpacked here.
296 *  sa_index - The table row to read (max 31).
297 */
298int aq_mss_get_ingress_sa_counters(struct aq_hw_s *hw,
299				   struct aq_mss_ingress_sa_counters *counters,
300				   u16 sa_index);
301
302/*!  Read the counters for the common ingress counters, and unpack them
303 *   into the fields of counters.
304 *  counters - [OUT] The raw table row data will be unpacked here.
305 */
306int aq_mss_get_ingress_common_counters(struct aq_hw_s *hw,
307	struct aq_mss_ingress_common_counters *counters);
308
309/*!  Clear all Ingress counters to 0. */
310int aq_mss_clear_ingress_counters(struct aq_hw_s *hw);
311
312/*!  Get Egress SA expired. */
313int aq_mss_get_egress_sa_expired(struct aq_hw_s *hw, u32 *expired);
314/*!  Get Egress SA threshold expired. */
315int aq_mss_get_egress_sa_threshold_expired(struct aq_hw_s *hw,
316					   u32 *expired);
317/*!  Set Egress SA expired. */
318int aq_mss_set_egress_sa_expired(struct aq_hw_s *hw, u32 expired);
319/*!  Set Egress SA threshold expired. */
320int aq_mss_set_egress_sa_threshold_expired(struct aq_hw_s *hw,
321					   u32 expired);
322
323#endif /* __MACSEC_API_H__ */
~/ Read-only file preview.