linux/drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c

// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright (c) 2018 Synopsys, Inc. and/or its affiliates.
 * stmmac TC Handling (HW only)
 */

#include <net/pkt_cls.h>
#include <net/tc_act/tc_gact.h>
#include "common.h"
#include "dwmac4.h"
#include "dwmac5.h"
#include "stmmac.h"

static void tc_fill_all_pass_entry(struct stmmac_tc_entry *entry)
{}

static struct stmmac_tc_entry *tc_find_entry(struct stmmac_priv *priv,
					     struct tc_cls_u32_offload *cls,
					     bool free)
{}

static int tc_fill_actions(struct stmmac_tc_entry *entry,
			   struct stmmac_tc_entry *frag,
			   struct tc_cls_u32_offload *cls)
{}

static int tc_fill_entry(struct stmmac_priv *priv,
			 struct tc_cls_u32_offload *cls)
{}

static void tc_unfill_entry(struct stmmac_priv *priv,
			    struct tc_cls_u32_offload *cls)
{}

static int tc_config_knode(struct stmmac_priv *priv,
			   struct tc_cls_u32_offload *cls)
{}

static int tc_delete_knode(struct stmmac_priv *priv,
			   struct tc_cls_u32_offload *cls)
{}

static int tc_setup_cls_u32(struct stmmac_priv *priv,
			    struct tc_cls_u32_offload *cls)
{}

static int tc_rfs_init(struct stmmac_priv *priv)
{}

static int tc_init(struct stmmac_priv *priv)
{}

static int tc_setup_cbs(struct stmmac_priv *priv,
			struct tc_cbs_qopt_offload *qopt)
{}

static int tc_parse_flow_actions(struct stmmac_priv *priv,
				 struct flow_action *action,
				 struct stmmac_flow_entry *entry,
				 struct netlink_ext_ack *extack)
{}

#define ETHER_TYPE_FULL_MASK

static int tc_add_basic_flow(struct stmmac_priv *priv,
			     struct flow_cls_offload *cls,
			     struct stmmac_flow_entry *entry)
{}

static int tc_add_ip4_flow(struct stmmac_priv *priv,
			   struct flow_cls_offload *cls,
			   struct stmmac_flow_entry *entry)
{}

static int tc_add_ports_flow(struct stmmac_priv *priv,
			     struct flow_cls_offload *cls,
			     struct stmmac_flow_entry *entry)
{}

static struct stmmac_flow_entry *tc_find_flow(struct stmmac_priv *priv,
					      struct flow_cls_offload *cls,
					      bool get_free)
{}

static struct {} tc_flow_parsers[] =;

static int tc_add_flow(struct stmmac_priv *priv,
		       struct flow_cls_offload *cls)
{}

static int tc_del_flow(struct stmmac_priv *priv,
		       struct flow_cls_offload *cls)
{}

static struct stmmac_rfs_entry *tc_find_rfs(struct stmmac_priv *priv,
					    struct flow_cls_offload *cls,
					    bool get_free)
{}

#define VLAN_PRIO_FULL_MASK

static int tc_add_vlan_flow(struct stmmac_priv *priv,
			    struct flow_cls_offload *cls)
{}

static int tc_del_vlan_flow(struct stmmac_priv *priv,
			    struct flow_cls_offload *cls)
{}

static int tc_add_ethtype_flow(struct stmmac_priv *priv,
			       struct flow_cls_offload *cls)
{}

static int tc_del_ethtype_flow(struct stmmac_priv *priv,
			       struct flow_cls_offload *cls)
{}

static int tc_add_flow_cls(struct stmmac_priv *priv,
			   struct flow_cls_offload *cls)
{}

static int tc_del_flow_cls(struct stmmac_priv *priv,
			   struct flow_cls_offload *cls)
{}

static int tc_setup_cls(struct stmmac_priv *priv,
			struct flow_cls_offload *cls)
{}

struct timespec64 stmmac_calc_tas_basetime(ktime_t old_base_time,
					   ktime_t current_time,
					   u64 cycle_time)
{}

static void tc_taprio_map_maxsdu_txq(struct stmmac_priv *priv,
				     struct tc_taprio_qopt_offload *qopt)
{}

static int tc_taprio_configure(struct stmmac_priv *priv,
			       struct tc_taprio_qopt_offload *qopt)
{}

static void tc_taprio_stats(struct stmmac_priv *priv,
			    struct tc_taprio_qopt_offload *qopt)
{}

static void tc_taprio_queue_stats(struct stmmac_priv *priv,
				  struct tc_taprio_qopt_offload *qopt)
{}

static int tc_setup_taprio(struct stmmac_priv *priv,
			   struct tc_taprio_qopt_offload *qopt)
{}

static int tc_setup_etf(struct stmmac_priv *priv,
			struct tc_etf_qopt_offload *qopt)
{}

static int tc_query_caps(struct stmmac_priv *priv,
			 struct tc_query_caps_base *base)
{}

const struct stmmac_tc_ops dwmac510_tc_ops =;