| /* 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_INGRESSPRECTLFRECORD 24 |
| #define ROWOFFSET_INGRESSPRECTLFRECORD 0 |
| |
| #define NUMROWS_INGRESSPRECLASSRECORD 48 |
| #define ROWOFFSET_INGRESSPRECLASSRECORD 0 |
| |
| #define NUMROWS_INGRESSPOSTCLASSRECORD 48 |
| #define ROWOFFSET_INGRESSPOSTCLASSRECORD 0 |
| |
| #define NUMROWS_INGRESSSCRECORD 32 |
| #define ROWOFFSET_INGRESSSCRECORD 0 |
| |
| #define NUMROWS_INGRESSSARECORD 32 |
| #define ROWOFFSET_INGRESSSARECORD 32 |
| |
| #define NUMROWS_INGRESSSAKEYRECORD 32 |
| #define ROWOFFSET_INGRESSSAKEYRECORD 0 |
| |
| #define NUMROWS_INGRESSPOSTCTLFRECORD 24 |
| #define ROWOFFSET_INGRESSPOSTCTLFRECORD 0 |
| |
| #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); |
| |
| /*! Read the raw table data from the specified row of the Ingress |
| * Pre-MACSec 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_ingress_prectlf_record(struct aq_hw_s *hw, |
| struct aq_mss_ingress_prectlf_record *rec, |
| u16 table_index); |
| |
| /*! Pack the fields of rec, and write the packed data into the |
| * specified row of the Ingress Pre-MACSec 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_ingress_prectlf_record(struct aq_hw_s *hw, |
| const struct aq_mss_ingress_prectlf_record *rec, |
| u16 table_index); |
| |
| /*! Read the raw table data from the specified row of the Ingress |
| * Pre-MACSec 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_ingress_preclass_record(struct aq_hw_s *hw, |
| struct aq_mss_ingress_preclass_record *rec, |
| u16 table_index); |
| |
| /*! Pack the fields of rec, and write the packed data into the |
| * specified row of the Ingress Pre-MACSec 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_ingress_preclass_record(struct aq_hw_s *hw, |
| const struct aq_mss_ingress_preclass_record *rec, |
| u16 table_index); |
| |
| /*! Read the raw table data from the specified row of the Ingress 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_ingress_sc_record(struct aq_hw_s *hw, |
| struct aq_mss_ingress_sc_record *rec, |
| u16 table_index); |
| |
| /*! Pack the fields of rec, and write the packed data into the |
| * specified row of the Ingress 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_ingress_sc_record(struct aq_hw_s *hw, |
| const struct aq_mss_ingress_sc_record *rec, |
| u16 table_index); |
| |
| /*! Read the raw table data from the specified row of the Ingress 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_ingress_sa_record(struct aq_hw_s *hw, |
| struct aq_mss_ingress_sa_record *rec, |
| u16 table_index); |
| |
| /*! Pack the fields of rec, and write the packed data into the |
| * specified row of the Ingress 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_ingress_sa_record(struct aq_hw_s *hw, |
| const struct aq_mss_ingress_sa_record *rec, |
| u16 table_index); |
| |
| /*! Read the raw table data from the specified row of the Ingress 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_ingress_sakey_record(struct aq_hw_s *hw, |
| struct aq_mss_ingress_sakey_record *rec, |
| u16 table_index); |
| |
| /*! Pack the fields of rec, and write the packed data into the |
| * specified row of the Ingress 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_ingress_sakey_record(struct aq_hw_s *hw, |
| const struct aq_mss_ingress_sakey_record *rec, |
| u16 table_index); |
| |
| /*! Read the raw table data from the specified row of the Ingress |
| * Post-MACSec 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 48). |
| */ |
| int aq_mss_get_ingress_postclass_record(struct aq_hw_s *hw, |
| struct aq_mss_ingress_postclass_record *rec, |
| u16 table_index); |
| |
| /*! Pack the fields of rec, and write the packed data into the |
| * specified row of the Ingress Post-MACSec Packet Classifier table. |
| * rec - [IN] The bitfield values to write to the table row. |
| * table_index - The table row to write(max 48). |
| */ |
| int aq_mss_set_ingress_postclass_record(struct aq_hw_s *hw, |
| const struct aq_mss_ingress_postclass_record *rec, |
| u16 table_index); |
| |
| /*! Read the raw table data from the specified row of the Ingress |
| * Post-MACSec 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_ingress_postctlf_record(struct aq_hw_s *hw, |
| struct aq_mss_ingress_postctlf_record *rec, |
| u16 table_index); |
| |
| /*! Pack the fields of rec, and write the packed data into the |
| * specified row of the Ingress Post-MACSec 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_ingress_postctlf_record(struct aq_hw_s *hw, |
| const struct aq_mss_ingress_postctlf_record *rec, |
| u16 table_index); |
| |
| /*! Read the counters for the specified SC, and unpack them into the |
| * fields of counters. |
| * counters - [OUT] The raw table row data will be unpacked here. |
| * sc_index - The table row to read (max 31). |
| */ |
| int aq_mss_get_egress_sc_counters(struct aq_hw_s *hw, |
| struct aq_mss_egress_sc_counters *counters, |
| u16 sc_index); |
| |
| /*! Read the counters for the specified SA, and unpack them into the |
| * fields of counters. |
| * counters - [OUT] The raw table row data will be unpacked here. |
| * sa_index - The table row to read (max 31). |
| */ |
| int aq_mss_get_egress_sa_counters(struct aq_hw_s *hw, |
| struct aq_mss_egress_sa_counters *counters, |
| u16 sa_index); |
| |
| /*! Read the counters for the common egress counters, and unpack them |
| * into the fields of counters. |
| * counters - [OUT] The raw table row data will be unpacked here. |
| */ |
| int aq_mss_get_egress_common_counters(struct aq_hw_s *hw, |
| struct aq_mss_egress_common_counters *counters); |
| |
| /*! Clear all Egress counters to 0.*/ |
| int aq_mss_clear_egress_counters(struct aq_hw_s *hw); |
| |
| /*! Read the counters for the specified SA, and unpack them into the |
| * fields of counters. |
| * counters - [OUT] The raw table row data will be unpacked here. |
| * sa_index - The table row to read (max 31). |
| */ |
| int aq_mss_get_ingress_sa_counters(struct aq_hw_s *hw, |
| struct aq_mss_ingress_sa_counters *counters, |
| u16 sa_index); |
| |
| /*! Read the counters for the common ingress counters, and unpack them |
| * into the fields of counters. |
| * counters - [OUT] The raw table row data will be unpacked here. |
| */ |
| int aq_mss_get_ingress_common_counters(struct aq_hw_s *hw, |
| struct aq_mss_ingress_common_counters *counters); |
| |
| /*! Clear all Ingress counters to 0. */ |
| int aq_mss_clear_ingress_counters(struct aq_hw_s *hw); |
| |
| /*! 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__ */ |