linux/drivers/net/ethernet/aquantia/atlantic/aq_macsec.c

// SPDX-License-Identifier: GPL-2.0-only
/* Atlantic Network Driver
 * Copyright (C) 2020 Marvell International Ltd.
 */

#include "aq_macsec.h"
#include "aq_nic.h"
#include <linux/rtnetlink.h>

#include "macsec/macsec_api.h"
#define AQ_MACSEC_KEY_LEN_128_BIT
#define AQ_MACSEC_KEY_LEN_192_BIT
#define AQ_MACSEC_KEY_LEN_256_BIT

enum aq_clear_type {};

static int aq_clear_txsc(struct aq_nic_s *nic, const int txsc_idx,
			 enum aq_clear_type clear_type);
static int aq_clear_txsa(struct aq_nic_s *nic, struct aq_macsec_txsc *aq_txsc,
			 const int sa_num, enum aq_clear_type clear_type);
static int aq_clear_rxsc(struct aq_nic_s *nic, const int rxsc_idx,
			 enum aq_clear_type clear_type);
static int aq_clear_rxsa(struct aq_nic_s *nic, struct aq_macsec_rxsc *aq_rxsc,
			 const int sa_num, enum aq_clear_type clear_type);
static int aq_clear_secy(struct aq_nic_s *nic, const struct macsec_secy *secy,
			 enum aq_clear_type clear_type);
static int aq_apply_macsec_cfg(struct aq_nic_s *nic);
static int aq_apply_secy_cfg(struct aq_nic_s *nic,
			     const struct macsec_secy *secy);

static void aq_ether_addr_to_mac(u32 mac[2], const unsigned char *emac)
{}

/* There's a 1:1 mapping between SecY and TX SC */
static int aq_get_txsc_idx_from_secy(struct aq_macsec_cfg *macsec_cfg,
				     const struct macsec_secy *secy)
{}

static int aq_get_rxsc_idx_from_rxsc(struct aq_macsec_cfg *macsec_cfg,
				     const struct macsec_rx_sc *rxsc)
{}

static int aq_get_txsc_idx_from_sc_idx(const enum aq_macsec_sc_sa sc_sa,
				       const int sc_idx)
{}

/* Rotate keys u32[8] */
static void aq_rotate_keys(u32 (*key)[8], const int key_len)
{}

#define STATS_2x32_TO_64(stat_field)

static int aq_get_macsec_common_stats(struct aq_hw_s *hw,
				      struct aq_macsec_common_stats *stats)
{}

static int aq_get_rxsa_stats(struct aq_hw_s *hw, const int sa_idx,
			     struct aq_macsec_rx_sa_stats *stats)
{}

static int aq_get_txsa_stats(struct aq_hw_s *hw, const int sa_idx,
			     struct aq_macsec_tx_sa_stats *stats)
{}

static int aq_get_txsa_next_pn(struct aq_hw_s *hw, const int sa_idx, u32 *pn)
{}

static int aq_get_rxsa_next_pn(struct aq_hw_s *hw, const int sa_idx, u32 *pn)
{}

static int aq_get_txsc_stats(struct aq_hw_s *hw, const int sc_idx,
			     struct aq_macsec_tx_sc_stats *stats)
{}

static int aq_mdo_dev_open(struct macsec_context *ctx)
{}

static int aq_mdo_dev_stop(struct macsec_context *ctx)
{}

static int aq_set_txsc(struct aq_nic_s *nic, const int txsc_idx)
{}

static u32 aq_sc_idx_max(const enum aq_macsec_sc_sa sc_sa)
{}

static u32 aq_to_hw_sc_idx(const u32 sc_idx, const enum aq_macsec_sc_sa sc_sa)
{}

static enum aq_macsec_sc_sa sc_sa_from_num_an(const int num_an)
{}

static int aq_mdo_add_secy(struct macsec_context *ctx)
{}

static int aq_mdo_upd_secy(struct macsec_context *ctx)
{}

static int aq_clear_txsc(struct aq_nic_s *nic, const int txsc_idx,
			 enum aq_clear_type clear_type)
{}

static int aq_mdo_del_secy(struct macsec_context *ctx)
{}

static int aq_update_txsa(struct aq_nic_s *nic, const unsigned int sc_idx,
			  const struct macsec_secy *secy,
			  const struct macsec_tx_sa *tx_sa,
			  const unsigned char *key, const unsigned char an)
{}

static int aq_mdo_add_txsa(struct macsec_context *ctx)
{}

static int aq_mdo_upd_txsa(struct macsec_context *ctx)
{}

static int aq_clear_txsa(struct aq_nic_s *nic, struct aq_macsec_txsc *aq_txsc,
			 const int sa_num, enum aq_clear_type clear_type)
{}

static int aq_mdo_del_txsa(struct macsec_context *ctx)
{}

static int aq_rxsc_validate_frames(const enum macsec_validation_type validate)
{}

static int aq_set_rxsc(struct aq_nic_s *nic, const u32 rxsc_idx)
{}

static int aq_mdo_add_rxsc(struct macsec_context *ctx)
{}

static int aq_mdo_upd_rxsc(struct macsec_context *ctx)
{}

static int aq_clear_rxsc(struct aq_nic_s *nic, const int rxsc_idx,
			 enum aq_clear_type clear_type)
{}

static int aq_mdo_del_rxsc(struct macsec_context *ctx)
{}

static int aq_update_rxsa(struct aq_nic_s *nic, const unsigned int sc_idx,
			  const struct macsec_secy *secy,
			  const struct macsec_rx_sa *rx_sa,
			  const unsigned char *key, const unsigned char an)
{}

static int aq_mdo_add_rxsa(struct macsec_context *ctx)
{}

static int aq_mdo_upd_rxsa(struct macsec_context *ctx)
{}

static int aq_clear_rxsa(struct aq_nic_s *nic, struct aq_macsec_rxsc *aq_rxsc,
			 const int sa_num, enum aq_clear_type clear_type)
{}

static int aq_mdo_del_rxsa(struct macsec_context *ctx)
{}

static int aq_mdo_get_dev_stats(struct macsec_context *ctx)
{}

static int aq_mdo_get_tx_sc_stats(struct macsec_context *ctx)
{}

static int aq_mdo_get_tx_sa_stats(struct macsec_context *ctx)
{}

static int aq_mdo_get_rx_sc_stats(struct macsec_context *ctx)
{}

static int aq_mdo_get_rx_sa_stats(struct macsec_context *ctx)
{}

static int apply_txsc_cfg(struct aq_nic_s *nic, const int txsc_idx)
{}

static int apply_rxsc_cfg(struct aq_nic_s *nic, const int rxsc_idx)
{}

static int aq_clear_secy(struct aq_nic_s *nic, const struct macsec_secy *secy,
			 enum aq_clear_type clear_type)
{}

static int aq_apply_secy_cfg(struct aq_nic_s *nic,
			     const struct macsec_secy *secy)
{}

static int aq_apply_macsec_cfg(struct aq_nic_s *nic)
{}

static int aq_sa_from_sa_idx(const enum aq_macsec_sc_sa sc_sa, const int sa_idx)
{}

static int aq_sc_idx_from_sa_idx(const enum aq_macsec_sc_sa sc_sa,
				 const int sa_idx)
{}

static void aq_check_txsa_expiration(struct aq_nic_s *nic)
{}

#define AQ_LOCKED_MDO_DEF(mdo)

AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()
AQ_LOCKED_MDO_DEF()

const struct macsec_ops aq_macsec_ops =;

int aq_macsec_init(struct aq_nic_s *nic)
{}

void aq_macsec_free(struct aq_nic_s *nic)
{}

int aq_macsec_enable(struct aq_nic_s *nic)
{}

void aq_macsec_work(struct aq_nic_s *nic)
{}

int aq_macsec_rx_sa_cnt(struct aq_nic_s *nic)
{}

int aq_macsec_tx_sc_cnt(struct aq_nic_s *nic)
{}

int aq_macsec_tx_sa_cnt(struct aq_nic_s *nic)
{}

static int aq_macsec_update_stats(struct aq_nic_s *nic)
{}

u64 *aq_macsec_get_stats(struct aq_nic_s *nic, u64 *data)
{}