netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Karsten Graul <kgraul@linux.ibm.com>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, linux-s390@vger.kernel.org,
	hca@linux.ibm.com, raspl@linux.ibm.com
Subject: [PATCH net-next v4 08/15] net/smc: Add ability to work with extended SMC netlink API
Date: Mon,  9 Nov 2020 16:18:07 +0100	[thread overview]
Message-ID: <20201109151814.15040-9-kgraul@linux.ibm.com> (raw)
In-Reply-To: <20201109151814.15040-1-kgraul@linux.ibm.com>

From: Guvenc Gulce <guvenc@linux.ibm.com>

smc_diag module should be able to work with legacy and
extended netlink api. This is done by using the sequence field
of the netlink message header. Sequence field is optional and was
filled with a constant value MAGIC_SEQ in the current
implementation.
New constant values MAGIC_SEQ_V2 and MAGIC_SEQ_V2_ACK are used to
signal the usage of the new Netlink API between userspace and
kernel.

Signed-off-by: Guvenc Gulce <guvenc@linux.ibm.com>
Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
---
 include/uapi/linux/smc_diag.h |  7 +++++++
 net/smc/smc_diag.c            | 21 +++++++++++++--------
 2 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/include/uapi/linux/smc_diag.h b/include/uapi/linux/smc_diag.h
index 8cb3a6fef553..236c1c52d562 100644
--- a/include/uapi/linux/smc_diag.h
+++ b/include/uapi/linux/smc_diag.h
@@ -6,6 +6,13 @@
 #include <linux/inet_diag.h>
 #include <rdma/ib_user_verbs.h>
 
+/* Sequence numbers */
+enum {
+	MAGIC_SEQ = 123456,
+	MAGIC_SEQ_V2,
+	MAGIC_SEQ_V2_ACK,
+};
+
 /* Request structure */
 struct smc_diag_req {
 	__u8	diag_family;
diff --git a/net/smc/smc_diag.c b/net/smc/smc_diag.c
index 44be723c97fe..bc2b616524ff 100644
--- a/net/smc/smc_diag.c
+++ b/net/smc/smc_diag.c
@@ -293,19 +293,24 @@ static int smc_diag_dump(struct sk_buff *skb, struct netlink_callback *cb)
 	return skb->len;
 }
 
+static int smc_diag_dump_ext(struct sk_buff *skb, struct netlink_callback *cb)
+{
+	return skb->len;
+}
+
 static int smc_diag_handler_dump(struct sk_buff *skb, struct nlmsghdr *h)
 {
 	struct net *net = sock_net(skb->sk);
-
+	struct netlink_dump_control c = {
+		.min_dump_alloc = SKB_WITH_OVERHEAD(32768),
+	};
 	if (h->nlmsg_type == SOCK_DIAG_BY_FAMILY &&
 	    h->nlmsg_flags & NLM_F_DUMP) {
-		{
-			struct netlink_dump_control c = {
-				.dump = smc_diag_dump,
-				.min_dump_alloc = SKB_WITH_OVERHEAD(32768),
-			};
-			return netlink_dump_start(net->diag_nlsk, skb, h, &c);
-		}
+		if (h->nlmsg_seq >= MAGIC_SEQ_V2)
+			c.dump = smc_diag_dump_ext;
+		else
+			c.dump = smc_diag_dump;
+		return netlink_dump_start(net->diag_nlsk, skb, h, &c);
 	}
 	return 0;
 }
-- 
2.17.1


  parent reply	other threads:[~2020-11-09 15:19 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-09 15:17 [PATCH net-next v4 00/15] net/smc: extend diagnostic netlink interface Karsten Graul
2020-11-09 15:18 ` [PATCH net-next v4 01/15] net/smc: use helper smc_conn_abort() in listen processing Karsten Graul
2020-11-09 15:18 ` [PATCH net-next v4 02/15] net/smc: Use active link of the connection Karsten Graul
2020-11-09 15:18 ` [PATCH net-next v4 03/15] net/smc: Add connection counters for links Karsten Graul
2020-11-09 15:18 ` [PATCH net-next v4 04/15] net/smc: Add link counters for IB device ports Karsten Graul
2020-11-09 15:18 ` [PATCH net-next v4 05/15] net/smc: Add diagnostic information to smc ib-device Karsten Graul
2020-11-09 15:18 ` [PATCH net-next v4 06/15] net/smc: Add diagnostic information to link structure Karsten Graul
2020-11-09 15:18 ` [PATCH net-next v4 07/15] net/smc: Refactor the netlink reply processing routine Karsten Graul
2020-11-09 15:18 ` Karsten Graul [this message]
2020-11-11 22:25   ` [PATCH net-next v4 08/15] net/smc: Add ability to work with extended SMC netlink API Jakub Kicinski
2020-11-09 15:18 ` [PATCH net-next v4 09/15] net/smc: Introduce SMCR get linkgroup command Karsten Graul
2020-11-11 22:34   ` Jakub Kicinski
2020-11-13 15:08     ` Karsten Graul
2020-11-13 16:45       ` Jakub Kicinski
2020-11-09 15:18 ` [PATCH net-next v4 10/15] net/smc: Introduce SMCR get link command Karsten Graul
2020-11-11 22:34   ` Jakub Kicinski
2020-11-09 15:18 ` [PATCH net-next v4 11/15] net/smc: Add SMC-D Linkgroup diagnostic support Karsten Graul
2020-11-09 15:18 ` [PATCH net-next v4 12/15] net/smc: Add support for obtaining SMCD device list Karsten Graul
2020-11-09 15:18 ` [PATCH net-next v4 13/15] net/smc: Add support for obtaining SMCR " Karsten Graul
2020-11-09 15:18 ` [PATCH net-next v4 14/15] net/smc: Refactor smc ism v2 capability handling Karsten Graul
2020-11-09 15:18 ` [PATCH net-next v4 15/15] net/smc: Add support for obtaining system information Karsten Graul

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=20201109151814.15040-9-kgraul@linux.ibm.com \
    --to=kgraul@linux.ibm.com \
    --cc=davem@davemloft.net \
    --cc=hca@linux.ibm.com \
    --cc=linux-s390@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=raspl@linux.ibm.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;
as well as URLs for NNTP newsgroup(s).