From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 98982A04DD; Tue, 20 Oct 2020 10:49:00 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 06076AD33; Tue, 20 Oct 2020 10:48:59 +0200 (CEST) Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id B896EACC9 for ; Tue, 20 Oct 2020 10:48:55 +0200 (CEST) Received: from mx1-us1.ppe-hosted.com (unknown [10.7.65.61]) by dispatch1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id 4027460080 for ; Tue, 20 Oct 2020 08:48:54 +0000 (UTC) Received: from us4-mdac16-35.ut7.mdlocal (unknown [10.7.66.154]) by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id 40C048009E for ; Tue, 20 Oct 2020 08:48:54 +0000 (UTC) X-Virus-Scanned: Proofpoint Essentials engine Received: from mx1-us1.ppe-hosted.com (unknown [10.7.66.33]) by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id BBFE180051 for ; Tue, 20 Oct 2020 08:48:53 +0000 (UTC) Received: from webmail.solarflare.com (uk.solarflare.com [193.34.186.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id 5376EA80070 for ; Tue, 20 Oct 2020 08:48:53 +0000 (UTC) Received: from ukex01.SolarFlarecom.com (10.17.10.4) by ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 20 Oct 2020 09:48:49 +0100 Received: from opal.uk.solarflarecom.com (10.17.10.1) by ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 20 Oct 2020 09:48:49 +0100 Received: from ukv-loginhost.uk.solarflarecom.com (ukv-loginhost.uk.solarflarecom.com [10.17.10.39]) by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id 09K8mlAh030783; Tue, 20 Oct 2020 09:48:49 +0100 Received: from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1]) by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id D06331613CB; Tue, 20 Oct 2020 09:48:47 +0100 (BST) From: Andrew Rybchenko To: CC: , Ivan Malov Date: Tue, 20 Oct 2020 09:47:30 +0100 Message-ID: <1603183709-23420-4-git-send-email-arybchenko@solarflare.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1603183709-23420-1-git-send-email-arybchenko@solarflare.com> References: <1603183709-23420-1-git-send-email-arybchenko@solarflare.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.6.1012-25736.003 X-TM-AS-Result: No-1.336900-8.000000-10 X-TMASE-MatchedRID: 0mQrXAq7vOW2eGGESuJjBy2416nc3bQleouvej40T4gd0WOKRkwsh0wS eVQnSS/F/SrcY9Zl4TqPQi9XuOWoODXklYhiubw4R/j040fRFpLZywDYifSetubnFWpNX1DBu/q +tuzAwMydg+/kDYdnnC8tLtg8xOnDCxMfqrnN4/cSpHTeye7cTydXh9h8+3X2bpP1MXIEsoYECR puTNFoleLzNWBegCW2wgn7iDBesS0nRE+fI6etkhX6hngTAdwoPBn1MmW2fsm+RVW19KKK8XanX 4Thsd9e62MGhQYeH7pfd+gfOLmaUcFhX9t3PwBMGkJFRuxGLIVaeaUjbTBWuL1NuKS30BZnQIFI ZLtsgG0DUH+nVLNyiCsqIP9TxvtJMb6p570ilnc= X-TM-AS-User-Approved-Sender: Yes X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--1.336900-8.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.6.1012-25736.003 X-MDID: 1603183734-7BESPw6CdpD9 X-PPE-DISP: 1603183734;7BESPw6CdpD9 Subject: [dpdk-dev] [PATCH 03/62] net/sfc: add a stub for attaching to MAE 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" From: Ivan Malov Add a stub for MAE attach / detach path and introduce MAE-specific context. Signed-off-by: Ivan Malov Signed-off-by: Andrew Rybchenko Reviewed-by: Andy Moreton --- drivers/net/sfc/meson.build | 1 + drivers/net/sfc/sfc.c | 8 ++++++ drivers/net/sfc/sfc.h | 2 ++ drivers/net/sfc/sfc_mae.c | 49 +++++++++++++++++++++++++++++++++++++ drivers/net/sfc/sfc_mae.h | 41 +++++++++++++++++++++++++++++++ 5 files changed, 101 insertions(+) create mode 100644 drivers/net/sfc/sfc_mae.c create mode 100644 drivers/net/sfc/sfc_mae.h diff --git a/drivers/net/sfc/meson.build b/drivers/net/sfc/meson.build index 589f7863ae..7a893080cb 100644 --- a/drivers/net/sfc/meson.build +++ b/drivers/net/sfc/meson.build @@ -47,6 +47,7 @@ sources = files( 'sfc_tx.c', 'sfc_tso.c', 'sfc_filter.c', + 'sfc_mae.c', 'sfc_flow.c', 'sfc_dp.c', 'sfc_ef10_rx.c', diff --git a/drivers/net/sfc/sfc.c b/drivers/net/sfc/sfc.c index 8fa790da55..3b896490f7 100644 --- a/drivers/net/sfc/sfc.c +++ b/drivers/net/sfc/sfc.c @@ -857,6 +857,10 @@ sfc_attach(struct sfc_adapter *sa) if (rc != 0) goto fail_filter_attach; + rc = sfc_mae_attach(sa); + if (rc != 0) + goto fail_mae_attach; + sfc_log_init(sa, "fini nic"); efx_nic_fini(enp); @@ -878,6 +882,9 @@ sfc_attach(struct sfc_adapter *sa) fail_sriov_vswitch_create: sfc_flow_fini(sa); + sfc_mae_detach(sa); + +fail_mae_attach: sfc_filter_detach(sa); fail_filter_attach: @@ -918,6 +925,7 @@ sfc_detach(struct sfc_adapter *sa) sfc_flow_fini(sa); + sfc_mae_detach(sa); sfc_filter_detach(sa); sfc_rss_detach(sa); sfc_port_detach(sa); diff --git a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h index 047ca64de7..4b5d687108 100644 --- a/drivers/net/sfc/sfc.h +++ b/drivers/net/sfc/sfc.h @@ -27,6 +27,7 @@ #include "sfc_log.h" #include "sfc_filter.h" #include "sfc_sriov.h" +#include "sfc_mae.h" #ifdef __cplusplus extern "C" { @@ -233,6 +234,7 @@ struct sfc_adapter { struct sfc_intr intr; struct sfc_port port; struct sfc_filter filter; + struct sfc_mae mae; struct sfc_flow_list flow_list; diff --git a/drivers/net/sfc/sfc_mae.c b/drivers/net/sfc/sfc_mae.c new file mode 100644 index 0000000000..3ce654c19b --- /dev/null +++ b/drivers/net/sfc/sfc_mae.c @@ -0,0 +1,49 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * + * Copyright(c) 2019-2020 Xilinx, Inc. + * Copyright(c) 2019 Solarflare Communications Inc. + * + * This software was jointly developed between OKTET Labs (under contract + * for Solarflare) and Solarflare Communications, Inc. + */ + +#include + +#include + +#include "efx.h" + +#include "sfc.h" +#include "sfc_log.h" + +int +sfc_mae_attach(struct sfc_adapter *sa) +{ + const efx_nic_cfg_t *encp = efx_nic_cfg_get(sa->nic); + struct sfc_mae *mae = &sa->mae; + + sfc_log_init(sa, "entry"); + + if (!encp->enc_mae_supported) { + mae->status = SFC_MAE_STATUS_UNSUPPORTED; + return 0; + } + + mae->status = SFC_MAE_STATUS_SUPPORTED; + + sfc_log_init(sa, "done"); + + return 0; +} + +void +sfc_mae_detach(struct sfc_adapter *sa) +{ + struct sfc_mae *mae = &sa->mae; + + sfc_log_init(sa, "entry"); + + mae->status = SFC_MAE_STATUS_UNKNOWN; + + sfc_log_init(sa, "done"); +} diff --git a/drivers/net/sfc/sfc_mae.h b/drivers/net/sfc/sfc_mae.h new file mode 100644 index 0000000000..d7821e71cc --- /dev/null +++ b/drivers/net/sfc/sfc_mae.h @@ -0,0 +1,41 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * + * Copyright(c) 2019-2020 Xilinx, Inc. + * Copyright(c) 2019 Solarflare Communications Inc. + * + * This software was jointly developed between OKTET Labs (under contract + * for Solarflare) and Solarflare Communications, Inc. + */ + +#ifndef _SFC_MAE_H +#define _SFC_MAE_H + +#include + +#include "efx.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** Options for MAE support status */ +enum sfc_mae_status { + SFC_MAE_STATUS_UNKNOWN = 0, + SFC_MAE_STATUS_UNSUPPORTED, + SFC_MAE_STATUS_SUPPORTED +}; + +struct sfc_mae { + /** NIC support for MAE status */ + enum sfc_mae_status status; +}; + +struct sfc_adapter; + +int sfc_mae_attach(struct sfc_adapter *sa); +void sfc_mae_detach(struct sfc_adapter *sa); + +#ifdef __cplusplus +} +#endif +#endif /* _SFC_MAE_H */ -- 2.17.1