From patchwork Thu Aug 31 14:54:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 28170 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id A8EFE7CE1; Thu, 31 Aug 2017 16:55:34 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0044.outbound.protection.outlook.com [104.47.42.44]) by dpdk.org (Postfix) with ESMTP id 3B2F77CD9 for ; Thu, 31 Aug 2017 16:55:32 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=U3YZ3QhujjMHvV7pzrKqVb93OWIixMrNBz0Zv9akbQg=; b=CUqU0u8Sm+P09deV4ugHJT2QAttt/T86be5O/E1MyYFAKHuh8vjler8f7eG8IXTo3AEngImzl8DpsiRCdAFr7ar9OO6rginsyhndc0+2Q5eEPvsaC9fMz+Nn7kZdfpxhZRBayV7/W+bKOegRqFaM9ZB97UAg1jJs9qDnklT4eP4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.JacobKollanukkaran@cavium.com; Received: from jerin.domain.name (171.76.126.71) by SN2PR07MB2526.namprd07.prod.outlook.com (2603:10b6:804:6::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Thu, 31 Aug 2017 14:55:29 +0000 From: Jerin Jacob To: dev@dpdk.org Cc: ferruh.yigit@intel.com, santosh.shukla@caviumnetworks.com, Jerin Jacob Date: Thu, 31 Aug 2017 20:24:15 +0530 Message-Id: <20170831145436.5397-6-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170831145436.5397-1-jerin.jacob@caviumnetworks.com> References: <20170831145436.5397-1-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [171.76.126.71] X-ClientProxiedBy: MA1PR01CA0109.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:1::25) To SN2PR07MB2526.namprd07.prod.outlook.com (2603:10b6:804:6::26) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 07ce6523-3ceb-4da3-ef68-08d4f0805319 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:SN2PR07MB2526; X-Microsoft-Exchange-Diagnostics: 1; SN2PR07MB2526; 3:WoaCxIeUBSeZ28owIrltvMeiuQywJ53FXXwPZeWRwmjfvqoTMGs/bg1YEvFEVtBEz6kuEMFIJDLxHNQGkLinkU8byuNi8EKHDr2rybvXbtGyFnpD6o6R8Fw+EnvZlxmuaUkXGCEK/y/MVY8zjUIrlG2F1sJs97sXbzWwUEHWO29x+WJ95ON5Om1gjxJf9bRbQAkxJjG0ORPHIjdlnfknBzuJwf/S2RVE79HFDxKcWR2eV2wjBC7s+L77VxnsSk7E; 25:bcDhKjuvSoqQHtK7oYJZB/STLisE9ffzmDiBwNZ19rx7VZFUFFIkxs2cuivMveIge7baXNvZEYZEpPW1fTgZZS9oVKjppl36wtn6Mm8ySDUDPO9sGNors06PlcsR/PanhhV5KpBsJrOfFN4yaK255jadPK6yBE/OkQNxBi8zcgZ4O/5/q0hSZHWAXWLhxIBFyCwWjbI3iWo78vlcRAFeg0kttn1nxpvMLHFfGvb4Vsfj/9WWgaatm0Oo1eFXZ3ZIcK0jXAi14iHp19+Zp30+N335XKh2YjyL9HniZ3G429Bptf2O+flb88iIOhpWPOng1K5bLy+4UAr9yHHbYvRZcA==; 31:5tlU3jDn2ZzFJ037hoY5fnX97YihL0/ww/VB1Nvl0eeZIJdi6Td6M8twphOqfAc02DUXxCExhbuNf0uWRtptHhStAZSdLmms0OAKQDJmJnEkNSdrYtrh8CQ3JXoe8DoJVZHaH3jxLxVVQNAFemmGHPxQyFJ/zDhz8JZS91YBvAxYhPCheufwKgpd8oiVwakFVCLT1iYluh3pnNSUW6+dRJsvQF6dQwV72aF2VGoP72s= X-MS-TrafficTypeDiagnostic: SN2PR07MB2526: X-Microsoft-Exchange-Diagnostics: 1; SN2PR07MB2526; 20:bmeA/EEmYXqqPNMqkohKxHBE7znGOvjYlKFbLhLJuot3+zucYcLqkiMWFrqbAHSvn64GD0ua9c5qhhuO3nU5iKIjYHHBzhwylBtTVpXqVDKZqV1UZ5BGsYrD+g9/249Tm1/HYIRHkEUZcy1W9OTtH+kLqh2iDxVW/MNeFaoQwdX8ePseCLtE7qVCyJwEZHSQ5JUSKgdqJTTkty1usewGRJ3NAZdhC6zJbnQKgsjSn8v7qaFwL0vrp35TE2pSQyXZCVfwgJ2TT/0MmjWc94ndsWtZ1D3Jo2T1oC1LJiSMq+sLUREUKBYsuXaBm66hLoYzQswak9/xM9QvkTOmhq1h5Aw0H0y1qe8gBzGZKeIE+IJSG84wI3BngItRnwdmaRtDFC/ockqv+w1c4e30PvVGS3pwQG1RDBwdvj3WVi/KNxq1PZgRYFd7cQjoAjO3ZjIKoU4+YbexTi3JLT9Z0uUrDaKnSpxgfBtLIMzXuDfRR9uBR1U5cr7nwWh5ubhLS3lbFR0HJeOvx97YdbHeowvCPgC9g6zSGIpbB12Zo3x6zjDe3TbIu9ukFNdLdoBUIGyNKPHP5x0PnmL85rDwhu1FaE+2iKvKyoP/OcdSuVjIKSo=; 4:GgtkPbplBq6rz7KnkBnzVoAumDLhkijLQJgxbF1ceNx4LcpXJMrFPGcoJtK/G9JdfD3cY/2HOkiq2eQJAUD8/nDDCLekmCwcygI969eXLtTnsBlJMarZU5pwO7pSgUCkBiTHcbEHdVWwSBCCmL5eUX0o0N8XBKgHMLBP4lHmzq3G/jp7ijB2SigFZD1a8Ymrt4skOSvTss70fUtZA1s4/u+qus52nZecX64bWG9iIys1W5UF68ZHp+Y/hEHVTR1r X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(100000703101)(100105400095)(10201501046)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123562025)(20161123560025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN2PR07MB2526; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN2PR07MB2526; X-Forefront-PRVS: 04163EF38A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(199003)(189002)(25786009)(1076002)(53936002)(3846002)(6116002)(575784001)(478600001)(110136004)(72206003)(7736002)(6666003)(107886003)(6512007)(305945005)(6506006)(36756003)(6486002)(68736007)(5003940100001)(189998001)(50986999)(42882006)(106356001)(101416001)(76176999)(2950100002)(6916009)(5660300001)(2361001)(33646002)(2351001)(2906002)(4326008)(97736004)(105586002)(48376002)(50466002)(81166006)(66066001)(69596002)(8936002)(47776003)(53416004)(8676002)(50226002)(81156014)(42186005); DIR:OUT; SFP:1101; SCL:1; SRVR:SN2PR07MB2526; H:jerin.domain.name; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN2PR07MB2526; 23:x26KJSXn0OMNMPNQxBSMg7Qh6TaEpMtJlRsjH5Pw/?= TEJ2RPzOnWEG/i3bt1ar/6ZzJJTIlQk+IAUcRf+8Ckfmf3guEN22DFYuNbSUSkJvntGXS6JLaNv8QmcQvHm2PUXK95uokqjI3AWGWQbIEPIr+PPgdwZYP1go2bvgzg89c9QhGqHFV952MRdIPzsA515VzvOevsEhFamAPMh7esh/qwyEP9Loj5WluUPJhj4ZBYBrmFHlbJavAR1x+sC6IWl22Q8Fh2RHyewAYZlNs3Wcpf6FdL/acGqhheAlTewiILd9jpnkhNx79nHM0HbHOJdyfylxbG/kGwEgqQpcD0tHwWDW6O6XL7pmxn5u1t+Ut6hpX48mHpWzX8zseOcU8yoKc/NVZ4SSAp0XrFIZkOCErj3doW+9iXoFRYDyGldTXMfi4blel67CO706CQvXz3uF/VjtVGQJ4rRecIqHSXmRpU67wPRL4Gbuf6sTZli1zHHN9Py+lvDymG960oqv8B1PMtnDB+UE8Dv0We6soVo3jcf81sQl2G0h2hIHmNiMaS1SciAxKDTmTvz7qmZHqdeiUBHUO36P9ccWKzAxxhrggCtmM1YhT+ajwtTgQk8VjKTOYkO4R/DOA5ZZq05njpxzfoFiG6gCVyOQ1hR8sTBi9VUt1zgBrvk7URIUZj9RdWz1upc7vSwyFy9sLDfqdj5OgtTvBvDexMHd04ARUlDxsqNOlUDCLcCC6jayMtJ47NQnZD1C+u7zJtg2wj/e1TgW24TFMDmU+krw6G7DMtyktmTN1jbvK3L1Tc0KUsfqQ96TAkVjdX9FzE1e1qxVrAnS/nJSeOtai0bEMoKLznT5DaCNgysDawWJRdJ0ceqTghFQ+hhaAYHLrghRYTyn9ybBJtfwWUVkuEYtuVnJjGVRPDn2NhBiFjv56BrcIsOlq3jaHgZ5Z/h/d/DHnGl+BMO7AzmFyPbbBMwDDeN9t6FT+o0us0Fj7Qs30aD+oyKjR6dkzYEif09brpdxi25S9RWiKqDH9DLsttuQpF0bYnvdlV2jNLqcaFZC8gRE4Cdw3e+hB4gmi10rrwogakgw9OkawUL5kyj+GdIGdR3h8eSYZxUQp/eQAeGChhE7BVx9pdJvM/5cf5elzqbsSYpppKbWeuN5rP7HBonEx3wCYlY8bY9fUQJiP4YDXY9L5ubL30= X-Microsoft-Exchange-Diagnostics: 1; SN2PR07MB2526; 6:ouT+nK1A36/wm9syWAk+SpfQ2WXYNS2qWzdRR1oGIQeVdn4z0gC8kwDu8dmkbGIj8h7g8h1qeFu9DgYb3Sa3dzf5SwdVHtNh/iofxw65tksoyKSYHXNk6iQqBEXwUz4JXFTe57GQLOz1DS2N+/qpeXbfhXHXotdXjM85sXz8z51IWtNlZ8ERYydxTCpcse1t6+PYywT1CgdLph3LMIXQMSZ9r5SO36aIPWjHjFZedTXAvXxOg6GaTiPhZrPDaKk78X6J7Ln4Ma5BW/I7Bl0BHBecaCgJJxSWb7RdUYkkrG5+hjTXbndrsQ0UJ5KoCSoVJk9PAQZszvR3W3+WgiugXg==; 5:GiSEJcqXphON0BrJ9kKAo9JzAFYE4Q2/lWPXAcvqlOYCCXa0k/8bwlORF0p5xVVYRdsD/EQt53Q7ZXR/6MAJUzNRwbdUaFUXB1bcdbNZifK9Z7rBZ/47sqEXU5dDlN5zalDaB2dfZGqIUJkX0AMjOQ==; 24:apeKwyk8bY8Z9zLmU+qs6BkTxUUg7vuatTRdYUo8QoIgfcGRKnRA0wwQtI1cCL58KIxfqIQPPbPoyGJPD/zaRZ1V65huAOu5yuDJlHzcZww=; 7:0RJ/oAJHp8RF4z8VdgWu6X0OE62t/m4DXjmE7zTRwdZBaV27sEccVzfWpfqqU1YueOuXXW7JO47UrAMFnLn2VCEjTTY2jkaXXuogLpJWUqCGKxNd9RPuF66Ludo9ponnizu3iw8QOZL5IWsHGsaRqYIVo2yfT5z/pWwZNA6Y2hAY5V9ylQVq6ScKOzg00MqaSM4Z+/aCCDyK80ZRSURV6eH1KnnO5kRur5yb/NQK0oA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Aug 2017 14:55:29.0052 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR07MB2526 Subject: [dpdk-dev] [PATCH 05/26] net/octeontx/base: add remaining BGX operations X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Adding remaining BGX operations like, link status, statistics, promiscuous configuration etc. Signed-off-by: Jerin Jacob Co-authored-by: Santosh Shukla --- drivers/net/octeontx/base/octeontx_bgx.c | 154 +++++++++++++++++++++++++++++++ drivers/net/octeontx/base/octeontx_bgx.h | 76 +++++++++++++++ 2 files changed, 230 insertions(+) diff --git a/drivers/net/octeontx/base/octeontx_bgx.c b/drivers/net/octeontx/base/octeontx_bgx.c index 2e817292e..c2d0d4331 100644 --- a/drivers/net/octeontx/base/octeontx_bgx.c +++ b/drivers/net/octeontx/base/octeontx_bgx.c @@ -117,3 +117,157 @@ octeontx_bgx_port_stop(int port) return res; } + +int +octeontx_bgx_port_get_config(int port, octeontx_mbox_bgx_port_conf_t *conf) +{ + struct octeontx_mbox_hdr hdr; + octeontx_mbox_bgx_port_conf_t bgx_conf; + int len = sizeof(octeontx_mbox_bgx_port_conf_t); + int res; + + hdr.coproc = OCTEONTX_BGX_COPROC; + hdr.msg = MBOX_BGX_PORT_GET_CONFIG; + hdr.vfid = port; + + memset(&bgx_conf, 0, sizeof(octeontx_mbox_bgx_port_conf_t)); + res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, &bgx_conf, len); + if (res < 0) + return -EACCES; + + conf->enable = bgx_conf.enable; + conf->promisc = bgx_conf.promisc; + conf->bpen = bgx_conf.bpen; + conf->node = bgx_conf.node; + conf->base_chan = bgx_conf.base_chan; + conf->num_chans = bgx_conf.num_chans; + conf->mtu = bgx_conf.mtu; + conf->bgx = bgx_conf.bgx; + conf->lmac = bgx_conf.lmac; + conf->mode = bgx_conf.mode; + conf->pkind = bgx_conf.pkind; + memcpy(conf->macaddr, bgx_conf.macaddr, 6); + + return res; +} + +int +octeontx_bgx_port_status(int port, octeontx_mbox_bgx_port_status_t *stat) +{ + struct octeontx_mbox_hdr hdr; + octeontx_mbox_bgx_port_status_t bgx_stat; + int len = sizeof(octeontx_mbox_bgx_port_status_t); + int res; + + hdr.coproc = OCTEONTX_BGX_COPROC; + hdr.msg = MBOX_BGX_PORT_GET_STATUS; + hdr.vfid = port; + + res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, &bgx_stat, len); + if (res < 0) + return -EACCES; + + stat->link_up = bgx_stat.link_up; + + return res; +} + +int +octeontx_bgx_port_stats(int port, octeontx_mbox_bgx_port_stats_t *stats) +{ + struct octeontx_mbox_hdr hdr; + octeontx_mbox_bgx_port_stats_t bgx_stats; + int len = sizeof(octeontx_mbox_bgx_port_stats_t); + int res; + + hdr.coproc = OCTEONTX_BGX_COPROC; + hdr.msg = MBOX_BGX_PORT_GET_STATS; + hdr.vfid = port; + + res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, &bgx_stats, len); + if (res < 0) + return -EACCES; + + stats->rx_packets = bgx_stats.rx_packets; + stats->rx_bytes = bgx_stats.rx_bytes; + stats->rx_dropped = bgx_stats.rx_dropped; + stats->rx_errors = bgx_stats.rx_errors; + stats->tx_packets = bgx_stats.tx_packets; + stats->tx_bytes = bgx_stats.tx_bytes; + stats->tx_dropped = bgx_stats.tx_dropped; + stats->tx_errors = bgx_stats.tx_errors; + return res; +} + +int +octeontx_bgx_port_stats_clr(int port) +{ + struct octeontx_mbox_hdr hdr; + int res; + + hdr.coproc = OCTEONTX_BGX_COPROC; + hdr.msg = MBOX_BGX_PORT_CLR_STATS; + hdr.vfid = port; + + res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, NULL, 0); + if (res < 0) + return -EACCES; + + return res; +} + +int +octeontx_bgx_port_link_status(int port) +{ + struct octeontx_mbox_hdr hdr; + uint8_t link; + int len = sizeof(uint8_t); + int res; + + hdr.coproc = OCTEONTX_BGX_COPROC; + hdr.msg = MBOX_BGX_PORT_GET_LINK_STATUS; + hdr.vfid = port; + + res = octeontx_ssovf_mbox_send(&hdr, NULL, 0, &link, len); + if (res < 0) + return -EACCES; + + return link; +} + +int +octeontx_bgx_port_promisc_set(int port, int en) +{ + struct octeontx_mbox_hdr hdr; + uint8_t prom; + int res; + + hdr.coproc = OCTEONTX_BGX_COPROC; + hdr.msg = MBOX_BGX_PORT_SET_PROMISC; + hdr.vfid = port; + prom = en ? 1 : 0; + + res = octeontx_ssovf_mbox_send(&hdr, &prom, sizeof(prom), NULL, 0); + if (res < 0) + return -EACCES; + + return res; +} + +int +octeontx_bgx_port_mac_set(int port, uint8_t *mac_addr) +{ + struct octeontx_mbox_hdr hdr; + int len = 6; + int res = 0; + + hdr.coproc = OCTEONTX_BGX_COPROC; + hdr.msg = MBOX_BGX_PORT_SET_MACADDR; + hdr.vfid = port; + + res = octeontx_ssovf_mbox_send(&hdr, mac_addr, len, NULL, 0); + if (res < 0) + return -EACCES; + + return res; +} diff --git a/drivers/net/octeontx/base/octeontx_bgx.h b/drivers/net/octeontx/base/octeontx_bgx.h index 09810ac4b..02aa7e6f4 100644 --- a/drivers/net/octeontx/base/octeontx_bgx.h +++ b/drivers/net/octeontx/base/octeontx_bgx.h @@ -45,6 +45,16 @@ #define MBOX_BGX_PORT_CLOSE 1 #define MBOX_BGX_PORT_START 2 #define MBOX_BGX_PORT_STOP 3 +#define MBOX_BGX_PORT_GET_CONFIG 4 +#define MBOX_BGX_PORT_GET_STATUS 5 +#define MBOX_BGX_PORT_GET_STATS 6 +#define MBOX_BGX_PORT_CLR_STATS 7 +#define MBOX_BGX_PORT_GET_LINK_STATUS 8 +#define MBOX_BGX_PORT_SET_PROMISC 9 +#define MBOX_BGX_PORT_SET_MACADDR 10 +#define MBOX_BGX_PORT_SET_BP 11 +#define MBOX_BGX_PORT_SET_BCAST 12 +#define MBOX_BGX_PORT_SET_MCAST 13 /* BGX port configuration parameters: */ typedef struct octeontx_mbox_bgx_port_conf { @@ -65,10 +75,76 @@ typedef struct octeontx_mbox_bgx_port_conf { uint8_t pkind; } octeontx_mbox_bgx_port_conf_t; +/* BGX port status: */ +typedef struct octeontx_mbox_bgx_port_status { + uint8_t link_up; + uint8_t bp; +} octeontx_mbox_bgx_port_status_t; + +/* BGX port statistics: */ +typedef struct octeontx_mbox_bgx_port_stats { + uint64_t rx_packets; + uint64_t tx_packets; + uint64_t rx_bytes; + uint64_t tx_bytes; + uint64_t rx_errors; + uint64_t tx_errors; + uint64_t rx_dropped; + uint64_t tx_dropped; + uint64_t multicast; + uint64_t collisions; + + uint64_t rx_length_errors; + uint64_t rx_over_errors; + uint64_t rx_crc_errors; + uint64_t rx_frame_errors; + uint64_t rx_fifo_errors; + uint64_t rx_missed_errors; + + /* Detailed transmit errors. */ + uint64_t tx_aborted_errors; + uint64_t tx_carrier_errors; + uint64_t tx_fifo_errors; + uint64_t tx_heartbeat_errors; + uint64_t tx_window_errors; + + /* Extended statistics based on RFC2819. */ + uint64_t rx_1_to_64_packets; + uint64_t rx_65_to_127_packets; + uint64_t rx_128_to_255_packets; + uint64_t rx_256_to_511_packets; + uint64_t rx_512_to_1023_packets; + uint64_t rx_1024_to_1522_packets; + uint64_t rx_1523_to_max_packets; + + uint64_t tx_1_to_64_packets; + uint64_t tx_65_to_127_packets; + uint64_t tx_128_to_255_packets; + uint64_t tx_256_to_511_packets; + uint64_t tx_512_to_1023_packets; + uint64_t tx_1024_to_1522_packets; + uint64_t tx_1523_to_max_packets; + + uint64_t tx_multicast_packets; + uint64_t rx_broadcast_packets; + uint64_t tx_broadcast_packets; + uint64_t rx_undersized_errors; + uint64_t rx_oversize_errors; + uint64_t rx_fragmented_errors; + uint64_t rx_jabber_errors; +} octeontx_mbox_bgx_port_stats_t; + int octeontx_bgx_port_open(int port, octeontx_mbox_bgx_port_conf_t *conf); int octeontx_bgx_port_close(int port); int octeontx_bgx_port_start(int port); int octeontx_bgx_port_stop(int port); +int octeontx_bgx_port_get_config(int port, octeontx_mbox_bgx_port_conf_t *conf); +int octeontx_bgx_port_status(int port, octeontx_mbox_bgx_port_status_t *stat); +int octeontx_bgx_port_stats(int port, octeontx_mbox_bgx_port_stats_t *stats); +int octeontx_bgx_port_stats_clr(int port); +int octeontx_bgx_port_link_status(int port); +int octeontx_bgx_port_promisc_set(int port, int en); +int octeontx_bgx_port_mac_set(int port, uint8_t *mac_addr); #endif /* __OCTEONTX_BGX_H__ */