brintos

brintos / linux-shallow public Read only

0
0
Text · 12.2 KiB · ff03cc4 Raw
324 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/* Atlantic Network Driver3 * 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 2413#define ROWOFFSET_INGRESSPRECTLFRECORD 014 15#define NUMROWS_INGRESSPRECLASSRECORD 4816#define ROWOFFSET_INGRESSPRECLASSRECORD 017 18#define NUMROWS_INGRESSPOSTCLASSRECORD 4819#define ROWOFFSET_INGRESSPOSTCLASSRECORD 020 21#define NUMROWS_INGRESSSCRECORD 3222#define ROWOFFSET_INGRESSSCRECORD 023 24#define NUMROWS_INGRESSSARECORD 3225#define ROWOFFSET_INGRESSSARECORD 3226 27#define NUMROWS_INGRESSSAKEYRECORD 3228#define ROWOFFSET_INGRESSSAKEYRECORD 029 30#define NUMROWS_INGRESSPOSTCTLFRECORD 2431#define ROWOFFSET_INGRESSPOSTCTLFRECORD 032 33#define NUMROWS_EGRESSCTLFRECORD 2434#define ROWOFFSET_EGRESSCTLFRECORD 035 36#define NUMROWS_EGRESSCLASSRECORD 4837#define ROWOFFSET_EGRESSCLASSRECORD 038 39#define NUMROWS_EGRESSSCRECORD 3240#define ROWOFFSET_EGRESSSCRECORD 041 42#define NUMROWS_EGRESSSARECORD 3243#define ROWOFFSET_EGRESSSARECORD 3244 45#define NUMROWS_EGRESSSAKEYRECORD 3246#define ROWOFFSET_EGRESSSAKEYRECORD 9647 48/*!  Read the raw table data from the specified row of the Egress CTL49 *   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 the58 *   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 Egress67 *   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 the76 *   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 SC85 *   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 the94 *   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 SA103 *   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 the112 *   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 SA121 *   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 the130 *   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 Ingress139 *   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 the148 *   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 Ingress157 *   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 the166 *   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 SC175 *   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 the184 *   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 SA193 *   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 the202 *   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 SA211 *   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 the220 *   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 Ingress229 *   Post-MACSec Packet Classifier table, and unpack it into the230 *   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 the239 *   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 Ingress248 *   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 the257 *   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 the266 *   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 the275 *   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 them284 *   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 the294 *   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 them303 *   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__ */324