From patchwork Sat Dec 23 13:39:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shinas Rasheed X-Patchwork-Id: 182959 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2483:b0:fb:cd0c:d3e with SMTP id q3csp1677940dyi; Sat, 23 Dec 2023 05:43:47 -0800 (PST) X-Google-Smtp-Source: AGHT+IH84JhUrdHt3+ZbzXOlfa4F5Ttdwr183Gmj9+u7HWTMUuJmP5fDOiEFXQW0oYVis9zBTBLh X-Received: by 2002:a05:620a:121b:b0:77e:fba3:9d18 with SMTP id u27-20020a05620a121b00b0077efba39d18mr3634142qkj.124.1703339027115; Sat, 23 Dec 2023 05:43:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703339027; cv=none; d=google.com; s=arc-20160816; b=XnbKY14+QEoLzB0HSbzz9+BMf9Xrj+/53guTbIekPGNYS6kkQUqSwWk3I0wMWBS9+3 772DI+tz99L5U8xi44NwgREMTu2ABSivhOly1ZrJPfhDq/DL6TZ8hCnq7KhlOt1XcQ5w YwpkIcoau8JRrDNLAeqp93OgI+oUJmEmlY3SoS9qXezrYmt0PZ61uRyVisHnqe0RDWKX jSWEQh9/KExVrL9a4rv7FoGC23R6tea5keLPvfvmX2M1NOuXPy3dZCK+SeiG24eKFMMg FSAa/4xTepP7RyaJkjbcfxnuLpiVCXThoxwEHA4zGhubLsDE8YhEqxlDGohE5l1yqyqY uAuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=y0X2b9aY/RAg1IuIKFTrGVje2+dj+mniiMtzcspyRXA=; fh=Y/Zcr0YXYeEsWchgSSogMl8sJJcf/EqHGWMcPJ+i19E=; b=hMJnpdkR+QsB9suuJQM8ktvuQVF9c71HGvsvX7djrmb9Tb58L1AnLY7+J6k+hqARL+ +xl0sqdCzkIykeQDT3szxQ5jyq/ct/Xv/SBWcCQUrSVd/MH/Ex9boxYptY13mkZjHXOC Mo6P/VVYX7YtrDCgsJh0GqpocIo/BwV7kccBg1FDfw9DSSgYh56G2SHt8H31gDlGDR/C XLmMqPkPAubcPTN+JiX5ZyQwcq1pNTux06KskDSAe5MSjP38dqQPlu/NM5L8TMzvB1ax SfZECLiuZGIGObvWiaBzW5ohibXBinLwCuaPJIJws0Yrvx4OgWRW5At7n5sYsAsPP2Eg 7Uig== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@marvell.com header.s=pfpt0220 header.b=NuvjCsg3; spf=pass (google.com: domain of linux-kernel+bounces-10427-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-10427-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id g7-20020a05620a108700b0078104c9b94fsi6242627qkk.447.2023.12.23.05.43.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Dec 2023 05:43:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-10427-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@marvell.com header.s=pfpt0220 header.b=NuvjCsg3; spf=pass (google.com: domain of linux-kernel+bounces-10427-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-10427-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id D3B911C21036 for ; Sat, 23 Dec 2023 13:43:46 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1AD38171A7; Sat, 23 Dec 2023 13:42:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=marvell.com header.i=@marvell.com header.b="NuvjCsg3" X-Original-To: linux-kernel@vger.kernel.org Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 23EBCFC18; Sat, 23 Dec 2023 13:42:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=marvell.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=marvell.com Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 3BNCxcQS002986; Sat, 23 Dec 2023 05:42:01 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding:content-type; s= pfpt0220; bh=y0X2b9aY/RAg1IuIKFTrGVje2+dj+mniiMtzcspyRXA=; b=Nuv jCsg3KTi3/WUzhPnqnr/grABclHGuYCjl7Z+QE3N2XxUbFq3ggaPoaNYw69QpLzs YE+OzBiyrS7yCwphXpe6fjkMMELe13GbUcscYw7l5hbM37ZvIJpAFev9eUQmR5gI Wl+g9eE4U6OYwstrUF5EJnhWRxNo2oRpBX2JPjxLGAmNJQmxbUICwVSAdGDlmDAI 04W5h/2pHYf/iMJXcBGbhUY3vFxE1uAA8OOraNS0Sd0mRF5CUMSikXDeWyS+ID5C b+YRP8wWWGKd/MeUpoTDF1Ea5nQ7X/xqye+SPrwwJThrdshtFexxh/JCEMSH5hmk 3S/mqQn5rw6ScJ5PlWg== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3v5yxnr24a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 23 Dec 2023 05:42:01 -0800 (PST) Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Sat, 23 Dec 2023 05:41:59 -0800 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Sat, 23 Dec 2023 05:41:59 -0800 Received: from ubuntu-PowerEdge-T110-II.sclab.marvell.com (unknown [10.106.27.86]) by maili.marvell.com (Postfix) with ESMTP id 96C753F7069; Sat, 23 Dec 2023 05:41:58 -0800 (PST) From: Shinas Rasheed To: , CC: , , , , , , , , , , , , Veerasenareddy Burru , Satananda Burla , "David S. Miller" , Eric Dumazet Subject: [PATCH net-next v2 5/8] octeon_ep_vf: add support for ndo ops Date: Sat, 23 Dec 2023 05:39:57 -0800 Message-ID: <20231223134000.2906144-6-srasheed@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231223134000.2906144-1-srasheed@marvell.com> References: <20231223134000.2906144-1-srasheed@marvell.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: ckYyjJVT3ITzlZ6WV8cnfBKutwel05xj X-Proofpoint-GUID: ckYyjJVT3ITzlZ6WV8cnfBKutwel05xj X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1786080423545920591 X-GMAIL-MSGID: 1786080423545920591 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 --- V2: - No changes V1: https://lore.kernel.org/all/20231221092844.2885872-6-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 51f92c8223e8..de79942b5c92 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 @@ -187,6 +187,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; @@ -200,6 +217,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. * @@ -312,6 +365,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,