From: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
To: oleksandr.mazur@plvision.eu, jiri@nvidia.com,
davem@davemloft.net, kuba@kernel.org
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Sudarsana Reddy Kalluru <skalluru@marvell.com>,
Ariel Elior <aelior@marvell.com>
Subject: [PATCH net-next 01/11] net: core: devlink: add apis to publish/unpublish port params
Date: Wed, 9 Jun 2021 18:15:51 +0300 [thread overview]
Message-ID: <20210609151602.29004-2-oleksandr.mazur@plvision.eu> (raw)
In-Reply-To: <20210609151602.29004-1-oleksandr.mazur@plvision.eu>
From: Sudarsana Reddy Kalluru <skalluru@marvell.com>
Kernel has no interface to publish the devlink port
parameters. This is required for exporting the port params to the user space,
so that user can read or update the port params. This patch adds devlink
interfaces (for drivers) to publish/unpublish the devlink port parameters.
Co-developed-by: Ariel Elior <aelior@marvell.com>
Signed-off-by: Ariel Elior <aelior@marvell.com>
Signed-off-by: Sudarsana Reddy Kalluru <skalluru@marvell.com>
Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu>
---
include/net/devlink.h | 2 ++
net/core/devlink.c | 42 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 44 insertions(+)
diff --git a/include/net/devlink.h b/include/net/devlink.h
index 7c984cadfec4..8def0f7365da 100644
--- a/include/net/devlink.h
+++ b/include/net/devlink.h
@@ -1575,6 +1575,8 @@ int devlink_port_params_register(struct devlink_port *devlink_port,
void devlink_port_params_unregister(struct devlink_port *devlink_port,
const struct devlink_param *params,
size_t params_count);
+void devlink_port_params_publish(struct devlink_port *devlink_port);
+void devlink_port_params_unpublish(struct devlink_port *ddevlink_port);
int devlink_param_driverinit_value_get(struct devlink *devlink, u32 param_id,
union devlink_param_value *init_val);
int devlink_param_driverinit_value_set(struct devlink *devlink, u32 param_id,
diff --git a/net/core/devlink.c b/net/core/devlink.c
index 69681f19388e..e43ffc1891a4 100644
--- a/net/core/devlink.c
+++ b/net/core/devlink.c
@@ -9265,6 +9265,48 @@ void devlink_port_params_unregister(struct devlink_port *devlink_port,
}
EXPORT_SYMBOL_GPL(devlink_port_params_unregister);
+/**
+ * devlink_port_params_publish - publish port configuration parameters
+ *
+ * @devlink_port: devlink port
+ *
+ * Publish previously registered port configuration parameters.
+ */
+void devlink_port_params_publish(struct devlink_port *devlink_port)
+{
+ struct devlink_param_item *param_item;
+
+ list_for_each_entry(param_item, &devlink_port->param_list, list) {
+ if (param_item->published)
+ continue;
+ param_item->published = true;
+ devlink_param_notify(devlink_port->devlink, devlink_port->index,
+ param_item, DEVLINK_CMD_PORT_PARAM_NEW);
+ }
+}
+EXPORT_SYMBOL_GPL(devlink_port_params_publish);
+
+/**
+ * devlink_port_params_unpublish - unpublish port configuration parameters
+ *
+ * @devlink_port: devlink port
+ *
+ * Unpublish previously registered port configuration parameters.
+ */
+void devlink_port_params_unpublish(struct devlink_port *devlink_port)
+{
+ struct devlink_param_item *param_item;
+
+ list_for_each_entry(param_item, &devlink_port->param_list, list) {
+ if (!param_item->published)
+ continue;
+ param_item->published = false;
+ devlink_param_notify(devlink_port->devlink, devlink_port->index,
+ param_item, DEVLINK_CMD_PORT_PARAM_DEL);
+ }
+}
+EXPORT_SYMBOL_GPL(devlink_port_params_unpublish);
+
static int
__devlink_param_driverinit_value_get(struct list_head *param_list, u32 param_id,
union devlink_param_value *init_val)
--
2.17.1
next prev parent reply other threads:[~2021-06-09 15:16 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-09 15:15 [PATCH net-next 00/11] Marvell Prestera driver implementation of devlink functionality Oleksandr Mazur
2021-06-09 15:15 ` Oleksandr Mazur [this message]
2021-06-09 15:15 ` [PATCH net-next 02/11] net: core: devlink: add dropped stats traps field Oleksandr Mazur
2021-06-09 15:15 ` [PATCH net-next 03/11] net: core: devlink: add port_params_ops for devlink port parameters altering Oleksandr Mazur
2021-06-09 15:15 ` [PATCH net-next 04/11] testing: selftests: net: forwarding: add devlink-required functionality to test (hard) dropped stats field Oleksandr Mazur
2021-06-09 15:15 ` [PATCH net-next 05/11] drivers: net: netdevsim: add devlink trap_drop_counter_get implementation Oleksandr Mazur
2021-06-09 15:15 ` [PATCH net-next 06/11] testing: selftests: drivers: net: netdevsim: devlink: add test case for hard drop statistics Oleksandr Mazur
2021-06-09 15:15 ` [PATCH net-next 07/11] drivers: net: netdevsim: add devlink port params usage Oleksandr Mazur
2021-06-09 15:15 ` [PATCH net-next 08/11] net: marvell: prestera: devlink: add traps/groups implementation Oleksandr Mazur
2021-06-09 15:15 ` [PATCH net-next 09/11] net: marvell: prestera: devlink: add traps with DROP action Oleksandr Mazur
2021-06-09 15:16 ` [PATCH net-next 10/11] net: marvell: prestera: add storm control (rate limiter) implementation Oleksandr Mazur
2021-06-09 17:59 ` Ido Schimmel
2021-06-10 9:31 ` Nikolay Aleksandrov
2021-06-10 12:41 ` Andrew Lunn
2021-06-11 13:19 ` Oleksandr Mazur
2021-06-11 17:08 ` Andrew Lunn
2021-06-13 7:34 ` Ido Schimmel
2021-06-16 7:15 ` kernel test robot
2021-06-09 15:16 ` [PATCH net-next 11/11] documentation: networking: devlink: add prestera switched driver Documentation Oleksandr Mazur
2021-06-17 17:30 ` [PATCH net-next 00/11] Marvell Prestera driver implementation of devlink functionality Oleksandr Mazur
2021-06-17 19:44 ` Andrew Lunn
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=20210609151602.29004-2-oleksandr.mazur@plvision.eu \
--to=oleksandr.mazur@plvision.eu \
--cc=aelior@marvell.com \
--cc=davem@davemloft.net \
--cc=jiri@nvidia.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=skalluru@marvell.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