linux/drivers/net/ethernet/netronome/nfp/abm/ctrl.c

// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
/* Copyright (C) 2018 Netronome Systems, Inc. */

#include <linux/bitops.h>
#include <linux/kernel.h>
#include <linux/log2.h>

#include "../nfpcore/nfp_cpp.h"
#include "../nfpcore/nfp_nffw.h"
#include "../nfp_app.h"
#include "../nfp_abi.h"
#include "../nfp_main.h"
#include "../nfp_net.h"
#include "main.h"

#define NFP_NUM_PRIOS_SYM_NAME
#define NFP_NUM_BANDS_SYM_NAME
#define NFP_ACT_MASK_SYM_NAME

#define NFP_RED_SUPPORT_SYM_NAME

#define NFP_QLVL_SYM_NAME
#define NFP_QLVL_STRIDE
#define NFP_QLVL_BLOG_BYTES
#define NFP_QLVL_BLOG_PKTS
#define NFP_QLVL_THRS
#define NFP_QLVL_ACT

#define NFP_QMSTAT_SYM_NAME
#define NFP_QMSTAT_STRIDE
#define NFP_QMSTAT_NON_STO
#define NFP_QMSTAT_STO
#define NFP_QMSTAT_DROP
#define NFP_QMSTAT_ECN

#define NFP_Q_STAT_SYM_NAME
#define NFP_Q_STAT_STRIDE
#define NFP_Q_STAT_PKTS
#define NFP_Q_STAT_BYTES

#define NFP_NET_ABM_MBOX_CMD
#define NFP_NET_ABM_MBOX_RET
#define NFP_NET_ABM_MBOX_DATALEN
#define NFP_NET_ABM_MBOX_RESERVED
#define NFP_NET_ABM_MBOX_DATA

static int
nfp_abm_ctrl_stat(struct nfp_abm_link *alink, const struct nfp_rtsym *sym,
		  unsigned int stride, unsigned int offset, unsigned int band,
		  unsigned int queue, bool is_u64, u64 *res)
{}

int __nfp_abm_ctrl_set_q_lvl(struct nfp_abm *abm, unsigned int id, u32 val)
{}

int nfp_abm_ctrl_set_q_lvl(struct nfp_abm_link *alink, unsigned int band,
			   unsigned int queue, u32 val)
{}

int __nfp_abm_ctrl_set_q_act(struct nfp_abm *abm, unsigned int id,
			     enum nfp_abm_q_action act)
{}

int nfp_abm_ctrl_set_q_act(struct nfp_abm_link *alink, unsigned int band,
			   unsigned int queue, enum nfp_abm_q_action act)
{}

u64 nfp_abm_ctrl_stat_non_sto(struct nfp_abm_link *alink, unsigned int queue)
{}

u64 nfp_abm_ctrl_stat_sto(struct nfp_abm_link *alink, unsigned int queue)
{}

static int
nfp_abm_ctrl_stat_basic(struct nfp_abm_link *alink, unsigned int band,
			unsigned int queue, unsigned int off, u64 *val)
{}

int nfp_abm_ctrl_read_q_stats(struct nfp_abm_link *alink, unsigned int band,
			      unsigned int queue, struct nfp_alink_stats *stats)
{}

int nfp_abm_ctrl_read_q_xstats(struct nfp_abm_link *alink,
			       unsigned int band, unsigned int queue,
			       struct nfp_alink_xstats *xstats)
{}

int nfp_abm_ctrl_qm_enable(struct nfp_abm *abm)
{}

int nfp_abm_ctrl_qm_disable(struct nfp_abm *abm)
{}

int nfp_abm_ctrl_prio_map_update(struct nfp_abm_link *alink, u32 *packed)
{}

static int nfp_abm_ctrl_prio_check_params(struct nfp_abm_link *alink)
{}

int nfp_abm_ctrl_read_params(struct nfp_abm_link *alink)
{}

static unsigned int nfp_abm_ctrl_prio_map_size(struct nfp_abm *abm)
{}

static const struct nfp_rtsym *
nfp_abm_ctrl_find_rtsym(struct nfp_pf *pf, const char *name, unsigned int size)
{}

static const struct nfp_rtsym *
nfp_abm_ctrl_find_q_rtsym(struct nfp_abm *abm, const char *name_fmt,
			  size_t size)
{}

int nfp_abm_ctrl_find_addrs(struct nfp_abm *abm)
{}