The branch main has been updated by jhb:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=9e425a8a7ef075706c901b27091a79e2911b7595

commit 9e425a8a7ef075706c901b27091a79e2911b7595
Author:     John Baldwin <j...@freebsd.org>
AuthorDate: 2025-02-05 19:54:09 +0000
Commit:     John Baldwin <j...@freebsd.org>
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 <sys/cdefs.h>
+#include <sys/time.h>
 #include <assert.h>
 #include <stdbool.h>
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 #include <netinet/in.h>
+#include <cam/ctl/ctl.h>
+#include <cam/ctl/ctl_io.h>
+#include <cam/ctl/ctl_ioctl.h>
 
 #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)
 {

Reply via email to