From: Justin Lai <justinlai0215@realtek.com>
To: Simon Horman <horms@kernel.org>
Cc: "kuba@kernel.org" <kuba@kernel.org>,
"davem@davemloft.net" <davem@davemloft.net>,
"edumazet@google.com" <edumazet@google.com>,
"pabeni@redhat.com" <pabeni@redhat.com>,
"andrew+netdev@lunn.ch" <andrew+netdev@lunn.ch>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
Ping-Ke Shih <pkshih@realtek.com>,
Larry Chiu <larry.chiu@realtek.com>
Subject: RE: [PATCH net-next] rtase: Add ndo_setup_tc support for CBS offload in traffic control setup
Date: Thu, 20 Mar 2025 03:44:33 +0000 [thread overview]
Message-ID: <6824bd62f05644ec8d301457449eae19@realtek.com> (raw)
In-Reply-To: <20250319123407.GC280585@kernel.org>
> On Fri, Mar 14, 2025 at 05:40:21PM +0800, Justin Lai wrote:
> > Add support for ndo_setup_tc to enable CBS offload functionality as
> > part of traffic control configuration for network devices.
> >
> > Signed-off-by: Justin Lai <justinlai0215@realtek.com>
>
> ...
>
> > diff --git a/drivers/net/ethernet/realtek/rtase/rtase_main.c
> > b/drivers/net/ethernet/realtek/rtase/rtase_main.c
> > index 2aacc1996796..2a61cd192026 100644
> > --- a/drivers/net/ethernet/realtek/rtase/rtase_main.c
> > +++ b/drivers/net/ethernet/realtek/rtase/rtase_main.c
> > @@ -1661,6 +1661,54 @@ static void rtase_get_stats64(struct net_device
> *dev,
> > stats->rx_length_errors = tp->stats.rx_length_errors; }
> >
> > +static void rtase_set_hw_cbs(const struct rtase_private *tp, u32
> > +queue) {
> > + u32 idle = tp->tx_qos[queue].idleslope * RTASE_1T_CLOCK;
> > + u32 val, i;
> > +
> > + val = u32_encode_bits(idle / RTASE_1T_POWER,
> RTASE_IDLESLOPE_INT_MASK);
> > + idle %= RTASE_1T_POWER;
> > +
> > + for (i = 1; i <= RTASE_IDLESLOPE_INT_SHIFT; i++) {
> > + idle *= 2;
> > + if ((idle / RTASE_1T_POWER) == 1)
> > + val |= BIT(RTASE_IDLESLOPE_INT_SHIFT - i);
> > +
> > + idle %= RTASE_1T_POWER;
> > + }
> > +
> > + rtase_w32(tp, RTASE_TXQCRDT_0 + queue * 4, val); }
> > +
> > +static void rtase_setup_tc_cbs(struct rtase_private *tp,
> > + const struct tc_cbs_qopt_offload *qopt) {
> > + u32 queue = qopt->queue;
>
> Hi Justin,
>
> Does queue need to be checked somewhere to make sure it is in range?
Hi Simon,
Thank you for your response. I will add a check to ensure that the
queue is within the specified range.
>
> > +
> > + tp->tx_qos[queue].hicredit = qopt->hicredit;
> > + tp->tx_qos[queue].locredit = qopt->locredit;
> > + tp->tx_qos[queue].idleslope = qopt->idleslope;
> > + tp->tx_qos[queue].sendslope = qopt->sendslope;
>
> Does qopt->enable need to be honoured in order to allow the offload to be
> both enabled and disabled?
>
Thank you for your suggestion. I will add a check for qopt->enable and
handle it appropriately.
> > +
> > + rtase_set_hw_cbs(tp, queue);
> > +}
> > +
> > +static int rtase_setup_tc(struct net_device *dev, enum tc_setup_type type,
> > + void *type_data) {
> > + struct rtase_private *tp = netdev_priv(dev);
> > +
> > + switch (type) {
> > + case TC_SETUP_QDISC_CBS:
> > + rtase_setup_tc_cbs(tp, type_data);
> > + break;
> > + default:
> > + return -EOPNOTSUPP;
> > + }
> > +
> > + return 0;
> > +}
> > +
> > static netdev_features_t rtase_fix_features(struct net_device *dev,
> > netdev_features_t
> features)
> > {
>
> ...
next prev parent reply other threads:[~2025-03-20 3:45 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-14 9:40 [PATCH net-next] rtase: Add ndo_setup_tc support for CBS offload in traffic control setup Justin Lai
2025-03-19 12:34 ` Simon Horman
2025-03-20 3:44 ` Justin Lai [this message]
2025-03-24 12:06 ` Justin Lai
2025-03-25 17:20 ` Simon Horman
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=6824bd62f05644ec8d301457449eae19@realtek.com \
--to=justinlai0215@realtek.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=larry.chiu@realtek.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pkshih@realtek.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.