mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-19 07:26:45 +07:00
nfp: flower: add qos offload framework
Introduce matchall filter offload infrastructure that is needed to offload qos features like policing. Subsequent patches will make use of police-filters for ingress rate limiting. Signed-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
88c44a5200
commit
b66d035eec
@ -43,7 +43,8 @@ nfp-objs += \
|
||||
flower/match.o \
|
||||
flower/metadata.o \
|
||||
flower/offload.o \
|
||||
flower/tunnel_conf.o
|
||||
flower/tunnel_conf.o \
|
||||
flower/qos_conf.o
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_BPF_SYSCALL),y)
|
||||
|
@ -39,6 +39,7 @@ struct nfp_app;
|
||||
#define NFP_FL_NBI_MTU_SETTING BIT(1)
|
||||
#define NFP_FL_FEATS_GENEVE_OPT BIT(2)
|
||||
#define NFP_FL_FEATS_VLAN_PCP BIT(3)
|
||||
#define NFP_FL_FEATS_VF_RLIM BIT(4)
|
||||
#define NFP_FL_FEATS_FLOW_MOD BIT(5)
|
||||
#define NFP_FL_FEATS_FLOW_MERGE BIT(30)
|
||||
#define NFP_FL_FEATS_LAG BIT(31)
|
||||
@ -366,6 +367,8 @@ int nfp_flower_lag_populate_pre_action(struct nfp_app *app,
|
||||
struct nfp_fl_pre_lag *pre_act);
|
||||
int nfp_flower_lag_get_output_id(struct nfp_app *app,
|
||||
struct net_device *master);
|
||||
int nfp_flower_setup_qos_offload(struct nfp_app *app, struct net_device *netdev,
|
||||
struct tc_cls_matchall_offload *flow);
|
||||
int nfp_flower_reg_indir_block_handler(struct nfp_app *app,
|
||||
struct net_device *netdev,
|
||||
unsigned long event);
|
||||
|
@ -1185,6 +1185,9 @@ static int nfp_flower_setup_tc_block_cb(enum tc_setup_type type,
|
||||
case TC_SETUP_CLSFLOWER:
|
||||
return nfp_flower_repr_offload(repr->app, repr->netdev,
|
||||
type_data);
|
||||
case TC_SETUP_CLSMATCHALL:
|
||||
return nfp_flower_setup_qos_offload(repr->app, repr->netdev,
|
||||
type_data);
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
21
drivers/net/ethernet/netronome/nfp/flower/qos_conf.c
Normal file
21
drivers/net/ethernet/netronome/nfp/flower/qos_conf.c
Normal file
@ -0,0 +1,21 @@
|
||||
// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
/* Copyright (C) 2019 Netronome Systems, Inc. */
|
||||
|
||||
#include <net/pkt_cls.h>
|
||||
|
||||
#include "cmsg.h"
|
||||
#include "main.h"
|
||||
|
||||
int nfp_flower_setup_qos_offload(struct nfp_app *app, struct net_device *netdev,
|
||||
struct tc_cls_matchall_offload *flow)
|
||||
{
|
||||
struct netlink_ext_ack *extack = flow->common.extack;
|
||||
struct nfp_flower_priv *fl_priv = app->priv;
|
||||
|
||||
if (!(fl_priv->flower_ext_feats & NFP_FL_FEATS_VF_RLIM)) {
|
||||
NL_SET_ERR_MSG_MOD(extack, "unsupported offload: loaded firmware does not support qos rate limit offload");
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
return -EOPNOTSUPP;
|
||||
}
|
Loading…
Reference in New Issue
Block a user