All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Pirko <jiri@resnulli.us>
To: netdev@vger.kernel.org
Cc: nogahf@mellanox.com, yuvalm@mellanox.com, davem@davemloft.net,
	idosch@mellanox.com, mlxsw@mellanox.com, jhs@mojatatu.com,
	xiyou.wangcong@gmail.com, kubakici@wp.pl
Subject: [patch net-next 03/10] mlxsw: spectrum: qdiscs: Add priority map per qdisc
Date: Wed, 28 Feb 2018 10:45:00 +0100	[thread overview]
Message-ID: <20180228094507.22354-4-jiri@resnulli.us> (raw)
In-Reply-To: <20180228094507.22354-1-jiri@resnulli.us>

From: Nogah Frankel <nogahf@mellanox.com>

Add priority map per qdisc, to indicate which priorities are being
directed through this qdisc.

Signed-off-by: Nogah Frankel <nogahf@mellanox.com>
Reviewed-by: Yuval Mintz <yuvalm@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
index 858846a019ae..0e0299020d82 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_qdisc.c
@@ -78,6 +78,7 @@ struct mlxsw_sp_qdisc_ops {
 struct mlxsw_sp_qdisc {
 	u32 handle;
 	u8 tclass_num;
+	u8 prio_bitmap;
 	union {
 		struct red_stats red;
 	} xstats_base;
@@ -467,6 +468,7 @@ mlxsw_sp_qdisc_prio_destroy(struct mlxsw_sp_port *mlxsw_sp_port,
 					  MLXSW_SP_PORT_DEFAULT_TCLASS);
 		mlxsw_sp_qdisc_destroy(mlxsw_sp_port,
 				       &mlxsw_sp_port->tclass_qdiscs[i]);
+		mlxsw_sp_port->tclass_qdiscs[i].prio_bitmap = 0;
 	}
 
 	return 0;
@@ -494,11 +496,15 @@ mlxsw_sp_qdisc_prio_replace(struct mlxsw_sp_port *mlxsw_sp_port,
 	int tclass, i;
 	int err;
 
+	for (i = 0; i < IEEE_8021QAZ_MAX_TCS; i++)
+		mlxsw_sp_port->tclass_qdiscs[i].prio_bitmap = 0;
+
 	for (i = 0; i < IEEE_8021QAZ_MAX_TCS; i++) {
 		tclass = MLXSW_SP_PRIO_BAND_TO_TCLASS(p->priomap[i]);
 		err = mlxsw_sp_port_prio_tc_set(mlxsw_sp_port, i, tclass);
 		if (err)
 			return err;
+		mlxsw_sp_port->tclass_qdiscs[tclass].prio_bitmap |= BIT(i);
 	}
 
 	return 0;
@@ -628,6 +634,7 @@ int mlxsw_sp_tc_qdisc_init(struct mlxsw_sp_port *mlxsw_sp_port)
 		goto err_root_qdisc_init;
 
 	mlxsw_sp_port->root_qdisc = mlxsw_sp_qdisc;
+	mlxsw_sp_port->root_qdisc->prio_bitmap = 0xff;
 	mlxsw_sp_port->root_qdisc->tclass_num = MLXSW_SP_PORT_DEFAULT_TCLASS;
 
 	mlxsw_sp_qdisc = kzalloc(sizeof(*mlxsw_sp_qdisc) * IEEE_8021QAZ_MAX_TCS,
-- 
2.14.3

  parent reply	other threads:[~2018-02-28  9:45 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-28  9:44 [patch net-next 00/10] mlxsw: Offload multi-queue RED support Jiri Pirko
2018-02-28  9:44 ` [patch net-next 01/10] mlxsw: spectrum: qdiscs: Support qdisc per tclass Jiri Pirko
2018-02-28  9:44 ` [patch net-next 02/10] mlxsw: spectrum: Add priority counters Jiri Pirko
2018-02-28  9:45 ` Jiri Pirko [this message]
2018-02-28  9:45 ` [patch net-next 04/10] mlxsw: spectrum: qdiscs: Collect stats for sch_red based on priomap Jiri Pirko
2018-02-28  9:45 ` [patch net-next 05/10] mlxsw: spectrum: qdiscs: Update backlog handling of a child qdiscs Jiri Pirko
2018-02-28  9:45 ` [patch net-next 06/10] net: sch: Don't warn on missmatching qlen and backlog for offloaded qdiscs Jiri Pirko
2018-02-28  9:45 ` [patch net-next 07/10] mlxsw: spectrum: Update sch_prio stats to include sch_red related drops Jiri Pirko
2018-02-28  9:45 ` [patch net-next 08/10] mlxsw: spectrum: qdiscs: prio: Delete child qdiscs when removing bands Jiri Pirko
2018-02-28  9:45 ` [patch net-next 09/10] net: sch: prio: Add offload ability for grafting a child Jiri Pirko
2018-03-02  3:38   ` Alexander Aring
2018-03-02  3:48     ` Jakub Kicinski
2018-03-02  8:37       ` Jiri Pirko
2018-03-02 14:21         ` Alexander Aring
2018-03-02 14:45           ` Marcelo Ricardo Leitner
2018-02-28  9:45 ` [patch net-next 10/10] mlxsw: spectrum: qdiscs: prio: Handle graft command Jiri Pirko
2018-02-28 17:15 ` [patch net-next 00/10] mlxsw: Offload multi-queue RED support David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180228094507.22354-4-jiri@resnulli.us \
    --to=jiri@resnulli.us \
    --cc=davem@davemloft.net \
    --cc=idosch@mellanox.com \
    --cc=jhs@mojatatu.com \
    --cc=kubakici@wp.pl \
    --cc=mlxsw@mellanox.com \
    --cc=netdev@vger.kernel.org \
    --cc=nogahf@mellanox.com \
    --cc=xiyou.wangcong@gmail.com \
    --cc=yuvalm@mellanox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.