From nobody Wed Feb 5 19:55:41 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Yp9vf2z0Dz5mJNC; Wed, 05 Feb 2025 19:55:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Yp9vd5KsWz42kc; Wed, 05 Feb 2025 19:55:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1738785341; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kYVe7qgfPpPDjlJM0gOnBK5OfnHdX08yfhgdAsD7pQE=; b=ReahMjATVQlhU87vO2JIWHN8RUHFOsNwQUTtKquKDuhWcOkDHgpnQJR+RvIl2PlTGsQYWt 3hSsCX4nxsxy6YJNRsEX4I/D06WJWLmILMYUFGBrfJPlM322yMcJDihEviJXoI7wEuvIE8 Gi0xBHAikrLgCB+ewn4z5uqNwgg+Sl3xzsXJIAjz1rCXLTMJPitTH8vMIccEqhnSGAZeoO ulUcoygGgp2z/nx8YdSSOeciZYYDphkMHRHHOQ/vAclaX5wtPAWuoKjouS0nY+2ZyGq5/R 3TRuITwKfJIw7q6aja7RgXjkU1gPjxOvYijB7hI7LmMEt8qmWjEVje0U++WosQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1738785341; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kYVe7qgfPpPDjlJM0gOnBK5OfnHdX08yfhgdAsD7pQE=; b=sskmswbqjWISrJxRlCoXiSHQxr2eNQlpXz/n8O/aqAIzAJlx+T/VhpYkydiMMo5xhslihA 7aQh9vs7ylFfoPMys8idjU2nTCV3Q/K392PAPlx/G1weXUiyD2QkjvuZHelTFRIuKub1gz SNMGoVOmo2Ytp0fT9cVIePfLCc4QsQ2lAp8KQHWtiThtSFW5wce9tKWpHIDYbxMJVEBEyB ugqF+Dfqly78iMhTOrlhNVzzrY78ec3xa5P0ryIl1Qgu2e9MkVxWRbuUwAyHbqbtgPHffV cinyU8GEYoYBFmZijHrO5YSJgi0E+xBeKXwWqgALKVYbqF4ZyBFKJWWz1QKnqQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1738785341; a=rsa-sha256; cv=none; b=pjfkUtohjJO9PixkC5zqxBjz6XKcefkzdcYyn4Ck29wTAMYo7K/Z2sYW0TVm9dTgD2UCv0 SndhCyFe865NY/yX1+pbQuFBe/M1fIyWRpat9FUItYcenjSH4JD87SYsrpxURfyw62qBUe CAUeMrlHI/ELMLXW0hUc6QLchvmVGwH4p02CAQO6v5wwU1bWYAsZXC1pZjPrQaRZB+cRnb tpeD5p++z9byqc/TdLISfEO1Gsov5SqdgRsDU4w+ppM7NCTJKcuDmvrNeKqekb/jaAdf5b Pa3K1hE4CvQiN+V0DA8K1BYu2mkO5uhQkbhlnzE4BYrtaj20eBjTjv00qAAEJQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Yp9vd4xsnz15kc; Wed, 05 Feb 2025 19:55:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 515JtfNs087916; Wed, 5 Feb 2025 19:55:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 515Jtfie087913; Wed, 5 Feb 2025 19:55:41 GMT (envelope-from git) Date: Wed, 5 Feb 2025 19:55:41 GMT Message-Id: <202502051955.515Jtfie087913@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 9e425a8a7ef0 - main - ctld: Move kernel_limits into login.c where it is used List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 9e425a8a7ef075706c901b27091a79e2911b7595 Auto-Submitted: auto-generated The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=9e425a8a7ef075706c901b27091a79e2911b7595 commit 9e425a8a7ef075706c901b27091a79e2911b7595 Author: John Baldwin AuthorDate: 2025-02-05 19:54:09 +0000 Commit: John Baldwin CommitDate: 2025-02-05 19:55:16 +0000 ctld: Move kernel_limits into login.c where it is used Reviewed by: asomers Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D48771 --- usr.sbin/ctld/ctld.h | 8 ++----- usr.sbin/ctld/kernel.c | 56 +-------------------------------------------- usr.sbin/ctld/login.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 64 insertions(+), 62 deletions(-) diff --git a/usr.sbin/ctld/ctld.h b/usr.sbin/ctld/ctld.h index c57bd32c77a2..241785199cda 100644 --- a/usr.sbin/ctld/ctld.h +++ b/usr.sbin/ctld/ctld.h @@ -47,7 +47,6 @@ #define DEFAULT_CD_BLOCKSIZE 2048 #define MAX_LUNS 1024 -#define MAX_DATA_SEGMENT_LENGTH (128 * 1024) #define SOCKBUF_SIZE 1048576 struct auth { @@ -246,6 +245,8 @@ struct ctld_connection { struct chap *conn_chap; }; +extern int ctl_fd; + int parse_conf(struct conf *newconf, const char *path); int uclparse_conf(struct conf *conf, const char *path); @@ -352,11 +353,6 @@ int kernel_lun_add(struct lun *lun); int kernel_lun_modify(struct lun *lun); int kernel_lun_remove(struct lun *lun); void kernel_handoff(struct ctld_connection *conn); -void kernel_limits(const char *offload, int s, - int *max_recv_data_segment_length, - int *max_send_data_segment_length, - int *max_burst_length, - int *first_burst_length); int kernel_port_add(struct port *port); int kernel_port_update(struct port *port, struct port *old); int kernel_port_remove(struct port *port); diff --git a/usr.sbin/ctld/kernel.c b/usr.sbin/ctld/kernel.c index 1fa05cb159c3..7e9ef8ec42c2 100644 --- a/usr.sbin/ctld/kernel.c +++ b/usr.sbin/ctld/kernel.c @@ -77,7 +77,7 @@ extern bool proxy_mode; -static int ctl_fd = 0; +int ctl_fd = 0; void kernel_init(void) @@ -907,60 +907,6 @@ kernel_handoff(struct ctld_connection *conn) } } -void -kernel_limits(const char *offload, int s, int *max_recv_dsl, int *max_send_dsl, - int *max_burst_length, int *first_burst_length) -{ - struct ctl_iscsi req; - struct ctl_iscsi_limits_params *cilp; - - bzero(&req, sizeof(req)); - - req.type = CTL_ISCSI_LIMITS; - cilp = (struct ctl_iscsi_limits_params *)&(req.data.limits); - if (offload != NULL) { - strlcpy(cilp->offload, offload, sizeof(cilp->offload)); - } - cilp->socket = s; - - if (ioctl(ctl_fd, CTL_ISCSI, &req) == -1) { - log_err(1, "error issuing CTL_ISCSI ioctl; " - "dropping connection"); - } - - if (req.status != CTL_ISCSI_OK) { - log_errx(1, "error returned from CTL iSCSI limits request: " - "%s; dropping connection", req.error_str); - } - - if (cilp->max_recv_data_segment_length != 0) { - *max_recv_dsl = cilp->max_recv_data_segment_length; - *max_send_dsl = cilp->max_recv_data_segment_length; - } - if (cilp->max_send_data_segment_length != 0) - *max_send_dsl = cilp->max_send_data_segment_length; - if (cilp->max_burst_length != 0) - *max_burst_length = cilp->max_burst_length; - if (cilp->first_burst_length != 0) - *first_burst_length = cilp->first_burst_length; - if (*max_burst_length < *first_burst_length) - *first_burst_length = *max_burst_length; - - if (offload != NULL) { - log_debugx("Kernel limits for offload \"%s\" are " - "MaxRecvDataSegment=%d, max_send_dsl=%d, " - "MaxBurstLength=%d, FirstBurstLength=%d", - offload, *max_recv_dsl, *max_send_dsl, *max_burst_length, - *first_burst_length); - } else { - log_debugx("Kernel limits are " - "MaxRecvDataSegment=%d, max_send_dsl=%d, " - "MaxBurstLength=%d, FirstBurstLength=%d", - *max_recv_dsl, *max_send_dsl, *max_burst_length, - *first_burst_length); - } -} - int kernel_port_add(struct port *port) { diff --git a/usr.sbin/ctld/login.c b/usr.sbin/ctld/login.c index f57582f4e62f..b763104a092e 100644 --- a/usr.sbin/ctld/login.c +++ b/usr.sbin/ctld/login.c @@ -29,20 +29,80 @@ * */ -#include +#include #include #include +#include #include #include #include #include +#include +#include +#include #include "ctld.h" #include "iscsi_proto.h" +#define MAX_DATA_SEGMENT_LENGTH (128 * 1024) + static void login_send_error(struct pdu *request, char class, char detail); +static void +kernel_limits(const char *offload, int s, int *max_recv_dsl, int *max_send_dsl, + int *max_burst_length, int *first_burst_length) +{ + struct ctl_iscsi req; + struct ctl_iscsi_limits_params *cilp; + + bzero(&req, sizeof(req)); + + req.type = CTL_ISCSI_LIMITS; + cilp = (struct ctl_iscsi_limits_params *)&(req.data.limits); + if (offload != NULL) { + strlcpy(cilp->offload, offload, sizeof(cilp->offload)); + } + cilp->socket = s; + + if (ioctl(ctl_fd, CTL_ISCSI, &req) == -1) { + log_err(1, "error issuing CTL_ISCSI ioctl; " + "dropping connection"); + } + + if (req.status != CTL_ISCSI_OK) { + log_errx(1, "error returned from CTL iSCSI limits request: " + "%s; dropping connection", req.error_str); + } + + if (cilp->max_recv_data_segment_length != 0) { + *max_recv_dsl = cilp->max_recv_data_segment_length; + *max_send_dsl = cilp->max_recv_data_segment_length; + } + if (cilp->max_send_data_segment_length != 0) + *max_send_dsl = cilp->max_send_data_segment_length; + if (cilp->max_burst_length != 0) + *max_burst_length = cilp->max_burst_length; + if (cilp->first_burst_length != 0) + *first_burst_length = cilp->first_burst_length; + if (*max_burst_length < *first_burst_length) + *first_burst_length = *max_burst_length; + + if (offload != NULL) { + log_debugx("Kernel limits for offload \"%s\" are " + "MaxRecvDataSegment=%d, max_send_dsl=%d, " + "MaxBurstLength=%d, FirstBurstLength=%d", + offload, *max_recv_dsl, *max_send_dsl, *max_burst_length, + *first_burst_length); + } else { + log_debugx("Kernel limits are " + "MaxRecvDataSegment=%d, max_send_dsl=%d, " + "MaxBurstLength=%d, FirstBurstLength=%d", + *max_recv_dsl, *max_send_dsl, *max_burst_length, + *first_burst_length); + } +} + static void login_set_nsg(struct pdu *response, int nsg) {