/* SPDX-License-Identifier: GPL-2.0-only */ /* Atlantic Network Driver * Copyright (C) 2020 Marvell International Ltd. */ #ifndef __MACSEC_API_H__ #define __MACSEC_API_H__ #include "aq_hw.h" #include "macsec_struct.h" #define NUMROWS_EGRESSCTLFRECORD 24 #define ROWOFFSET_EGRESSCTLFRECORD 0 #define NUMROWS_EGRESSCLASSRECORD 48 #define ROWOFFSET_EGRESSCLASSRECORD 0 #define NUMROWS_EGRESSSCRECORD 32 #define ROWOFFSET_EGRESSSCRECORD 0 #define NUMROWS_EGRESSSARECORD 32 #define ROWOFFSET_EGRESSSARECORD 32 #define NUMROWS_EGRESSSAKEYRECORD 32 #define ROWOFFSET_EGRESSSAKEYRECORD 96 /*! Read the raw table data from the specified row of the Egress CTL * Filter table, and unpack it into the fields of rec. * rec - [OUT] The raw table row data will be unpacked into the fields of rec. * table_index - The table row to read (max 23). */ int aq_mss_get_egress_ctlf_record(struct aq_hw_s *hw, struct aq_mss_egress_ctlf_record *rec, u16 table_index); /*! Pack the fields of rec, and write the packed data into the * specified row of the Egress CTL Filter table. * rec - [IN] The bitfield values to write to the table row. * table_index - The table row to write(max 23). */ int aq_mss_set_egress_ctlf_record(struct aq_hw_s *hw, const struct aq_mss_egress_ctlf_record *rec, u16 table_index); /*! Read the raw table data from the specified row of the Egress * Packet Classifier table, and unpack it into the fields of rec. * rec - [OUT] The raw table row data will be unpacked into the fields of rec. * table_index - The table row to read (max 47). */ int aq_mss_get_egress_class_record(struct aq_hw_s *hw, struct aq_mss_egress_class_record *rec, u16 table_index); /*! Pack the fields of rec, and write the packed data into the * specified row of the Egress Packet Classifier table. * rec - [IN] The bitfield values to write to the table row. * table_index - The table row to write (max 47). */ int aq_mss_set_egress_class_record(struct aq_hw_s *hw, const struct aq_mss_egress_class_record *rec, u16 table_index); /*! Read the raw table data from the specified row of the Egress SC * Lookup table, and unpack it into the fields of rec. * rec - [OUT] The raw table row data will be unpacked into the fields of rec. * table_index - The table row to read (max 31). */ int aq_mss_get_egress_sc_record(struct aq_hw_s *hw, struct aq_mss_egress_sc_record *rec, u16 table_index); /*! Pack the fields of rec, and write the packed data into the * specified row of the Egress SC Lookup table. * rec - [IN] The bitfield values to write to the table row. * table_index - The table row to write (max 31). */ int aq_mss_set_egress_sc_record(struct aq_hw_s *hw, const struct aq_mss_egress_sc_record *rec, u16 table_index); /*! Read the raw table data from the specified row of the Egress SA * Lookup table, and unpack it into the fields of rec. * rec - [OUT] The raw table row data will be unpacked into the fields of rec. * table_index - The table row to read (max 31). */ int aq_mss_get_egress_sa_record(struct aq_hw_s *hw, struct aq_mss_egress_sa_record *rec, u16 table_index); /*! Pack the fields of rec, and write the packed data into the * specified row of the Egress SA Lookup table. * rec - [IN] The bitfield values to write to the table row. * table_index - The table row to write (max 31). */ int aq_mss_set_egress_sa_record(struct aq_hw_s *hw, const struct aq_mss_egress_sa_record *rec, u16 table_index); /*! Read the raw table data from the specified row of the Egress SA * Key Lookup table, and unpack it into the fields of rec. * rec - [OUT] The raw table row data will be unpacked into the fields of rec. * table_index - The table row to read (max 31). */ int aq_mss_get_egress_sakey_record(struct aq_hw_s *hw, struct aq_mss_egress_sakey_record *rec, u16 table_index); /*! Pack the fields of rec, and write the packed data into the * specified row of the Egress SA Key Lookup table. * rec - [IN] The bitfield values to write to the table row. * table_index - The table row to write (max 31). */ int aq_mss_set_egress_sakey_record(struct aq_hw_s *hw, const struct aq_mss_egress_sakey_record *rec, u16 table_index); /*! Get Egress SA expired. */ int aq_mss_get_egress_sa_expired(struct aq_hw_s *hw, u32 *expired); /*! Get Egress SA threshold expired. */ int aq_mss_get_egress_sa_threshold_expired(struct aq_hw_s *hw, u32 *expired); /*! Set Egress SA expired. */ int aq_mss_set_egress_sa_expired(struct aq_hw_s *hw, u32 expired); /*! Set Egress SA threshold expired. */ int aq_mss_set_egress_sa_threshold_expired(struct aq_hw_s *hw, u32 expired); #endif /* __MACSEC_API_H__ */