summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/microchip/sparx5/sparx5_qos.h
diff options
context:
space:
mode:
authorDaniel Machon <daniel.machon@microchip.com>2022-09-20 12:14:31 +0200
committerDavid S. Miller <davem@davemloft.net>2022-09-23 09:53:10 +0100
commit211225428d65882ceccfbde49ab6f4d832badc0c (patch)
tree7a7251eaa72e83a7d5003c320a9605be671780c7 /drivers/net/ethernet/microchip/sparx5/sparx5_qos.h
parente02a5ac6bf7763edcd9590b98a14dd17f49a5248 (diff)
net: microchip: sparx5: add support for offloading ets qdisc
Add support for offloading ets qdisc to sparx5 switch. The ets qdisc makes it possible to configure a mix og strict and bandwidth-sharing bands. The ets qdisc must be attached as a root qdisc. Signed-off-by: Daniel Machon <daniel.machon@microchip.com> Signed-off-by: Steen Hegelund <steen.hegelund@microchip.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/microchip/sparx5/sparx5_qos.h')
-rw-r--r--drivers/net/ethernet/microchip/sparx5/sparx5_qos.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_qos.h b/drivers/net/ethernet/microchip/sparx5/sparx5_qos.h
index 49662ad86018..ced35033a6c5 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_qos.h
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_qos.h
@@ -34,6 +34,9 @@
#define SPX5_SE_BURST_MIN 1
#define SPX5_SE_BURST_UNIT 4096
+/* Dwrr */
+#define SPX5_DWRR_COST_MAX 63
+
struct sparx5_shaper {
u32 mode;
u32 rate;
@@ -51,6 +54,11 @@ struct sparx5_layer {
struct sparx5_lg leak_groups[SPX5_HSCH_LEAK_GRP_CNT];
};
+struct sparx5_dwrr {
+ u32 count; /* Number of inputs running dwrr */
+ u8 cost[SPX5_PRIOS];
+};
+
int sparx5_qos_init(struct sparx5 *sparx5);
/* Multi-Queue Priority */
@@ -64,4 +72,11 @@ int sparx5_tc_tbf_add(struct sparx5_port *port,
u32 layer, u32 idx);
int sparx5_tc_tbf_del(struct sparx5_port *port, u32 layer, u32 idx);
+/* Enhanced Transmission Selection */
+struct tc_ets_qopt_offload_replace_params;
+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);
+
#endif /* __SPARX5_QOS_H__ */