From: Shinas Rasheed <srasheed@marvell.com>
To: <netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Cc: <hgani@marvell.com>, <vimleshk@marvell.com>, <sedara@marvell.com>,
<srasheed@marvell.com>, <egallen@redhat.com>,
<mschmidt@redhat.com>, <pabeni@redhat.com>, <kuba@kernel.org>,
<horms@kernel.org>, <wizhao@redhat.com>, <kheib@redhat.com>,
<konguyen@redhat.com>, Veerasenareddy Burru <vburru@marvell.com>,
Satananda Burla <sburla@marvell.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>
Subject: [PATCH net-next v1 5/8] octeon_ep_vf: add support for ndo ops
Date: Thu, 21 Dec 2023 01:28:41 -0800 [thread overview]
Message-ID: <20231221092844.2885872-6-srasheed@marvell.com> (raw)
In-Reply-To: <20231221092844.2885872-1-srasheed@marvell.com>
Add support for ndo ops to set MAC address, change MTU, get stats.
Add control path support to set MAC address, change MTU, get stats,
set speed, get and set link mode.
Signed-off-by: Shinas Rasheed <srasheed@marvell.com>
---
.../marvell/octeon_ep_vf/octep_vf_main.c | 54 +++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c b/drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c
index 1bb621de5165..c29f99e8f121 100644
--- a/drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c
+++ b/drivers/net/ethernet/marvell/octeon_ep_vf/octep_vf_main.c
@@ -188,6 +188,23 @@ static netdev_tx_t octep_vf_start_xmit(struct sk_buff *skb,
return NETDEV_TX_OK;
}
+int octep_vf_get_if_stats(struct octep_vf_device *oct)
+{
+ struct octep_vf_iface_rxtx_stats vf_stats;
+ int ret, size;
+
+ memset(&vf_stats, 0, sizeof(struct octep_vf_iface_rxtx_stats));
+ ret = octep_vf_mbox_bulk_read(oct, OCTEP_PFVF_MBOX_CMD_GET_STATS,
+ (u8 *)&vf_stats, &size);
+ if (!ret) {
+ memcpy(&oct->iface_rx_stats, &vf_stats.iface_rx_stats,
+ sizeof(struct octep_vf_iface_rx_stats));
+ memcpy(&oct->iface_tx_stats, &vf_stats.iface_tx_stats,
+ sizeof(struct octep_vf_iface_tx_stats));
+ }
+ return ret;
+}
+
int octep_vf_get_link_info(struct octep_vf_device *oct)
{
int ret, size;
@@ -201,6 +218,42 @@ int octep_vf_get_link_info(struct octep_vf_device *oct)
return 0;
}
+/**
+ * octep_vf_get_stats64() - Get Octeon network device statistics.
+ *
+ * @netdev: kernel network device.
+ * @stats: pointer to stats structure to be filled in.
+ */
+static void octep_vf_get_stats64(struct net_device *netdev,
+ struct rtnl_link_stats64 *stats)
+{
+ struct octep_vf_device *oct = netdev_priv(netdev);
+ u64 tx_packets, tx_bytes, rx_packets, rx_bytes;
+ int q;
+
+ tx_packets = 0;
+ tx_bytes = 0;
+ rx_packets = 0;
+ rx_bytes = 0;
+ for (q = 0; q < oct->num_oqs; q++) {
+ struct octep_vf_iq *iq = oct->iq[q];
+ struct octep_vf_oq *oq = oct->oq[q];
+
+ tx_packets += iq->stats.instr_completed;
+ tx_bytes += iq->stats.bytes_sent;
+ rx_packets += oq->stats.packets;
+ rx_bytes += oq->stats.bytes;
+ }
+ stats->tx_packets = tx_packets;
+ stats->tx_bytes = tx_bytes;
+ stats->rx_packets = rx_packets;
+ stats->rx_bytes = rx_bytes;
+ if (!octep_vf_get_if_stats(oct)) {
+ stats->multicast = oct->iface_rx_stats.mcast_pkts;
+ stats->rx_errors = oct->iface_rx_stats.err_pkts;
+ }
+}
+
/**
* octep_vf_tx_timeout_task - work queue task to Handle Tx queue timeout.
*
@@ -313,6 +366,7 @@ static const struct net_device_ops octep_vf_netdev_ops = {
.ndo_open = octep_vf_open,
.ndo_stop = octep_vf_stop,
.ndo_start_xmit = octep_vf_start_xmit,
+ .ndo_get_stats64 = octep_vf_get_stats64,
.ndo_tx_timeout = octep_vf_tx_timeout,
.ndo_set_mac_address = octep_vf_set_mac,
.ndo_change_mtu = octep_vf_change_mtu,
--
2.25.1
next prev parent reply other threads:[~2023-12-21 9:29 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-21 9:28 [PATCH net-next v1 0/8] add octeon_ep_vf driver Shinas Rasheed
2023-12-21 9:28 ` [PATCH net-next v1 1/8] octeon_ep_vf: Add driver framework and device initialization Shinas Rasheed
2023-12-22 17:13 ` kernel test robot
2023-12-21 9:28 ` [PATCH net-next v1 2/8] octeon_ep_vf: add hardware configuration APIs Shinas Rasheed
2023-12-21 9:28 ` [PATCH net-next v1 3/8] octeon_ep_vf: add VF-PF mailbox communication Shinas Rasheed
2023-12-21 9:28 ` [PATCH net-next v1 4/8] octeon_ep_vf: add Tx/Rx ring resource setup and cleanup Shinas Rasheed
2023-12-22 13:10 ` Simon Horman
2023-12-22 16:33 ` [EXT] " Shinas Rasheed
2023-12-21 9:28 ` Shinas Rasheed [this message]
2023-12-21 9:28 ` [PATCH net-next v1 6/8] octeon_ep_vf: add Tx/Rx processing and interrupt support Shinas Rasheed
2023-12-21 9:28 ` [PATCH net-next v1 7/8] octeon_ep_vf: add ethtool support Shinas Rasheed
2023-12-21 9:28 ` [PATCH net-next v1 8/8] octeon_ep_vf: update MAINTAINERS Shinas Rasheed
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=20231221092844.2885872-6-srasheed@marvell.com \
--to=srasheed@marvell.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=egallen@redhat.com \
--cc=hgani@marvell.com \
--cc=horms@kernel.org \
--cc=kheib@redhat.com \
--cc=konguyen@redhat.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mschmidt@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=sburla@marvell.com \
--cc=sedara@marvell.com \
--cc=vburru@marvell.com \
--cc=vimleshk@marvell.com \
--cc=wizhao@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®