cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

macsec_api.h (12518B)


      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__ */