#include "cxgb4.h"
#include "cxgb4_tc_matchall.h"
#include "sched.h"
#include "cxgb4_uld.h"
#include "cxgb4_filter.h"
#include "cxgb4_tc_flower.h"
static int cxgb4_policer_validate(const struct flow_action *action,
const struct flow_action_entry *act,
struct netlink_ext_ack *extack)
{ … }
static int cxgb4_matchall_egress_validate(struct net_device *dev,
struct tc_cls_matchall_offload *cls)
{ … }
static int cxgb4_matchall_tc_bind_queues(struct net_device *dev, u32 tc)
{ … }
static void cxgb4_matchall_tc_unbind_queues(struct net_device *dev)
{ … }
static int cxgb4_matchall_alloc_tc(struct net_device *dev,
struct tc_cls_matchall_offload *cls)
{ … }
static void cxgb4_matchall_free_tc(struct net_device *dev)
{ … }
static int cxgb4_matchall_mirror_alloc(struct net_device *dev,
struct tc_cls_matchall_offload *cls)
{ … }
static void cxgb4_matchall_mirror_free(struct net_device *dev)
{ … }
static int cxgb4_matchall_del_filter(struct net_device *dev, u8 filter_type)
{ … }
static int cxgb4_matchall_add_filter(struct net_device *dev,
struct tc_cls_matchall_offload *cls,
u8 filter_type)
{ … }
static int cxgb4_matchall_alloc_filter(struct net_device *dev,
struct tc_cls_matchall_offload *cls)
{ … }
static int cxgb4_matchall_free_filter(struct net_device *dev)
{ … }
int cxgb4_tc_matchall_replace(struct net_device *dev,
struct tc_cls_matchall_offload *cls_matchall,
bool ingress)
{ … }
int cxgb4_tc_matchall_destroy(struct net_device *dev,
struct tc_cls_matchall_offload *cls_matchall,
bool ingress)
{ … }
int cxgb4_tc_matchall_stats(struct net_device *dev,
struct tc_cls_matchall_offload *cls_matchall)
{ … }
static void cxgb4_matchall_disable_offload(struct net_device *dev)
{ … }
int cxgb4_init_tc_matchall(struct adapter *adap)
{ … }
void cxgb4_cleanup_tc_matchall(struct adapter *adap)
{ … }