History log of /freebsd-current/usr.sbin/iscsid/login.c
Revision Date Author Comments
# 4d65a7c6 24-Nov-2023 Warner Losh <imp@FreeBSD.org>

usr.sbin: Automated cleanup of cdefs and other formatting

Apply the following automated changes to try to eliminate
no-longer-needed sys/cdefs.h includes as well as now-empty
blank lines in a row.

Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/
Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/
Remove /\n+#if.*\n#endif.*\n+/
Remove /^#if.*\n#endif.*\n/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/
Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/

Sponsored by: Netflix


# 1d386b48 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# 4d846d26 10-May-2023 Warner Losh <imp@FreeBSD.org>

spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD

The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix


# 25700db3 22-Dec-2021 John Baldwin <jhb@FreeBSD.org>

libiscsiutil: Change keys_load/save to operate on data buffers.

This will be used in future changes to support large text requests
spanning multiple PDUs.

Provide wrapper functions keys_load/save_pdu that operate use a PDU's
data buffer.

Reviewed by: mav
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D33547


# 63783933 22-Dec-2021 John Baldwin <jhb@FreeBSD.org>

Add an internal libiscsiutil library.

Move some of the code duplicated between ctld(8) and iscsid(8) into a
libiscsiutil library.

Sharing the low-level PDU code did require having a
'struct connection' base class with a method table to permit separate
initiator vs target behavior (e.g. in handling proxy PDUs).

Reviewed by: mav, emaste
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D33544


# fc79cf4f 21-Oct-2021 Ed Maste <emaste@FreeBSD.org>

iscsid: set max_recv_data_segment_length to what we advertise

Previously we updated the conection's conn_max_recv_data_segment_length
only when we received a response containing MaxRecvDataSegmentLength
from the target. If the target did not send MaxRecvDataSegmentLength
then we left conn_max_recv_data_segment_length at the default (i.e.,
8192). A target could then send more data than that defult (up to our
advertised maximum), and we would drop the connection.

RFC 7143 specifies that MaxRecvDataSegmentLength is Declarative, not
negotiated. Just set conn_max_recv_data_segment_length to our
advertised value in login_negotiate().

PR: 259355
Reviewed by: mav
MFC after: 1 week
Fixes: a15fbc904a4d ("Alike to r312190 decouple iSCSI...")
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D32605


# bce7ee9d 28-Oct-2020 Edward Tomasz Napierala <trasz@FreeBSD.org>

Drop "All rights reserved" from all my stuff. This includes
Foundation copyrights, approved by emaste@. It does not include
files which carry other people's copyrights; if you're one
of those people, feel free to make similar change.

Reviewed by: emaste, imp, gbe (manpages)
Differential Revision: https://reviews.freebsd.org/D26980


# 7dbbd1ae 22-Oct-2020 Alexander Motin <mav@FreeBSD.org>

Negotiate iSCSIProtocolLevel of 2 (RFC 7144) in initiator.

It does not change anything immediately, but allows further support of
Command Priority, Status Qualifier and new task management functions.

MFC after: 1 month
Sponsored by: iXsystems, Inc.


# 5d9b05ac 01-Sep-2020 Edward Tomasz Napierala <trasz@FreeBSD.org>

Fix string overflow that could occur during redirection due to passing
the wrong length to strlcpy(3). It looks like it could overflow into
the next field, isc_user, which is properly long to accomodate for it;
I don't think it could cause any harm other than breaking the connection.

Reviewed by: mav
MFC after: 2 weeks
Sponsored by: NetApp, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D26247


# 1de7b4b8 27-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

various: general adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

No functional change intended.


# a15fbc90 14-Jan-2017 Alexander Motin <mav@FreeBSD.org>

Alike to r312190 decouple iSCSI connection limits from defaults.

Connection parameters should remain at defaults until negotiated.

While there, remove sythetic limits, applied if kernel provided none.
iscsid has no own limitations, no configuration and no any idea what
values are good. Assume kernel knows what it requests.


# 97b84d34 24-Aug-2016 Navdeep Parhar <np@FreeBSD.org>

Make the iSCSI parameter negotiation more flexible.

Decouple the send and receive limits on the amount of data in a single
iSCSI PDU. MaxRecvDataSegmentLength is declarative, not negotiated, and
is direction-specific so there is no reason for both ends to limit
themselves to the same min(initiator, target) value in both directions.

Allow iSCSI drivers to report their send, receive, first burst, and max
burst limits explicitly instead of using hardcoded values or trying to
derive all of them from the receive limit (which was the only limit
reported by the drivers prior to this change).

Display the send and receive limits separately in the userspace iSCSI
utilities.

Reviewed by: jpaetzel@ (earlier version), trasz@
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D7279


# 03b521d4 09-Jun-2016 Edward Tomasz Napierala <trasz@FreeBSD.org>

Decouple MaxBurstLength and FirstBurstLength from MaxRecvDataSegmentLength
reported by the ICL module in iscsid(8). This harmed performance and was
just wrong.

MFC after: 1 month


# 5abae79a 17-May-2016 Edward Tomasz Napierala <trasz@FreeBSD.org>

Add initial support for negotiating iSER parameters to iscsid(8). Some
rework might be needed to support asymetrical limits, but this should be
ok for now.

Obtained from: Mellanox Technologies (earlier version)
MFC after: 1 month
Sponsored by: The FreeBSD Foundation


# 82babffb 04-Feb-2015 Edward Tomasz Napierala <trasz@FreeBSD.org>

Make it possible to set (via iscsi.conf(5)) and query (via iscsictl -v)
initiator iSCSI offload. Pass maximum data segment size supported by
chosen offload module to iscsid(8), and make iscsid(8) not try to negotiate
anything larger than that.

MFC after: 1 month
Sponsored by: The FreeBSD Foundation


# 3f9e1172 18-Dec-2014 Alexander Motin <mav@FreeBSD.org>

Slightly polish iSCSI parameters negotiation.

MFC after: 1 week


# 2124e3b0 17-Dec-2014 Alexander Motin <mav@FreeBSD.org>

Make sequence numbers checks more strict.

While we don't support MCS, hole in received sequence numbers may mean
only PDU loss. While we don't support lost PDU recovery, terminate the
connection to avoid stuck commands.

While there, improve handling of sequence numbers wrap after 2^32 PDUs.

MFC after: 2 weeks


# 2bd28269 22-Oct-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Whitespace fixes.

MFC after: 1 month
Sponsored by: The FreeBSD Foundation


# 45078155 22-Oct-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Untangle iSCSI authentication code by splitting off the CHAP
implementation.

Reviewed by: mav@
MFC after: 1 month
Sponsored by: The FreeBSD Foundation


# 0686a20b 11-Sep-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Don't blindly assume the target agreed to transition to Full Feature Phase;
if we got a Login Response PDU without the "T" bit set, try again with
an empty request. This fixes interoperability with COMSTAR.

Reviewed by: mav@
Tested by: mav@
MFC after: 1 week


# eb4e5b0a 10-Sep-2014 Alexander Motin <mav@FreeBSD.org>

Fix memory leak, reported by Coverity.

CID: 1229996


# b7a65e39 21-Aug-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Make the iSCSI stack use __FBSDID() properly.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# ffe82e05 06-Jul-2014 Alexander Motin <mav@FreeBSD.org>

Make iSCSI initiator keep Initiator Session ID (ISID) across reconnects.

Previously ISID was changed every time, that made impossible correct
persistent reservation, because reconnected session was identified as
completely new one.

Reviewed by: trasz
MFC after: 1 week


# 51be90b5 18-Jun-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Implement redirection handling in initiator.

Sponsored by: The FreeBSD Foundation


# 09bf9ac9 18-Jun-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Get rid of unneccessary argument.

Sponsored by: The FreeBSD Foundation


# f7048059 18-Jun-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Improve code a little; no functional changes.

Sponsored by: The FreeBSD Foundation


# bbd91c88 18-Jun-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Use proper term in debug messages.

MFC after: 1 month
Sponsored by: FreeBSD Foundation


# f8519610 15-May-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Remove unused variable.


# 280c1e94 16-Apr-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Remove redundant code.

Sponsored by: The FreeBSD Foundation


# 022b237d 11-Feb-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Empty data segment during Login Phase is rather unlikely, but it's not
a protocol error.

Sponsored by: The FreeBSD Foundation


# 7843bd03 18-Sep-2013 Edward Tomasz Napierala <trasz@FreeBSD.org>

Fix several problems in the new iSCSI stack; this includes interoperability
fix for LIO (Linux target), removing possibility for the target to avoid mutual
CHAP by choosing to skip authentication altogether, and fixing truncated error
messages in iscsictl(8) output. This also fixes several of the problems found
with Coverity.

Note that this change requires world rebuild.

Coverity CID: 1088038, 1087998, 1087990, 1088004, 1088044, 1088041, 1088040
Approved by: re (blanket)
Sponsored by: FreeBSD Foundation


# 009ea47e 14-Sep-2013 Edward Tomasz Napierala <trasz@FreeBSD.org>

Bring in the new iSCSI target and initiator.

Reviewed by: ken (parts)
Approved by: re (delphij)
Sponsored by: FreeBSD Foundation