#include <net/pkt_cls.h>
#include "sparx5_main.h"
#include "sparx5_qos.h"
void sparx5_new_base_time(struct sparx5 *sparx5, const u32 cycle_time,
const ktime_t org_base_time, ktime_t *new_base_time)
{ … }
static const u32 spx5_hsch_max_group_rate[SPX5_HSCH_LEAK_GRP_CNT] = …;
static struct sparx5_layer layers[SPX5_HSCH_LAYER_CNT];
static u32 sparx5_lg_get_leak_time(struct sparx5 *sparx5, u32 layer, u32 group)
{ … }
static void sparx5_lg_set_leak_time(struct sparx5 *sparx5, u32 layer, u32 group,
u32 leak_time)
{ … }
static u32 sparx5_lg_get_first(struct sparx5 *sparx5, u32 layer, u32 group)
{ … }
static u32 sparx5_lg_get_next(struct sparx5 *sparx5, u32 layer, u32 group,
u32 idx)
{ … }
static u32 sparx5_lg_get_last(struct sparx5 *sparx5, u32 layer, u32 group)
{ … }
static bool sparx5_lg_is_last(struct sparx5 *sparx5, u32 layer, u32 group,
u32 idx)
{ … }
static bool sparx5_lg_is_first(struct sparx5 *sparx5, u32 layer, u32 group,
u32 idx)
{ … }
static bool sparx5_lg_is_empty(struct sparx5 *sparx5, u32 layer, u32 group)
{ … }
static bool sparx5_lg_is_singular(struct sparx5 *sparx5, u32 layer, u32 group)
{ … }
static void sparx5_lg_enable(struct sparx5 *sparx5, u32 layer, u32 group,
u32 leak_time)
{ … }
static void sparx5_lg_disable(struct sparx5 *sparx5, u32 layer, u32 group)
{ … }
static int sparx5_lg_get_group_by_index(struct sparx5 *sparx5, u32 layer,
u32 idx, u32 *group)
{ … }
static int sparx5_lg_get_group_by_rate(u32 layer, u32 rate, u32 *group)
{ … }
static int sparx5_lg_get_adjacent(struct sparx5 *sparx5, u32 layer, u32 group,
u32 idx, u32 *prev, u32 *next, u32 *first)
{ … }
static int sparx5_lg_conf_set(struct sparx5 *sparx5, u32 layer, u32 group,
u32 se_first, u32 idx, u32 idx_next, bool empty)
{ … }
static int sparx5_lg_del(struct sparx5 *sparx5, u32 layer, u32 group, u32 idx)
{ … }
static int sparx5_lg_add(struct sparx5 *sparx5, u32 layer, u32 new_group,
u32 idx)
{ … }
static int sparx5_shaper_conf_set(struct sparx5_port *port,
const struct sparx5_shaper *sh, u32 layer,
u32 idx, u32 group)
{ … }
static u32 sparx5_weight_to_hw_cost(u32 weight_min, u32 weight)
{ … }
static int sparx5_dwrr_conf_set(struct sparx5_port *port,
struct sparx5_dwrr *dwrr)
{ … }
static int sparx5_leak_groups_init(struct sparx5 *sparx5)
{ … }
int sparx5_qos_init(struct sparx5 *sparx5)
{ … }
int sparx5_tc_mqprio_add(struct net_device *ndev, u8 num_tc)
{ … }
int sparx5_tc_mqprio_del(struct net_device *ndev)
{ … }
int sparx5_tc_tbf_add(struct sparx5_port *port,
struct tc_tbf_qopt_offload_replace_params *params,
u32 layer, u32 idx)
{ … }
int sparx5_tc_tbf_del(struct sparx5_port *port, u32 layer, u32 idx)
{ … }
int sparx5_tc_ets_add(struct sparx5_port *port,
struct tc_ets_qopt_offload_replace_params *params)
{ … }
int sparx5_tc_ets_del(struct sparx5_port *port)
{ … }