Commit Graph

189 Commits

Author SHA1 Message Date
trasz
dda0364a8f Make ctld(8) mention cfiscsi(4).
MFC after:	2 weeks
2017-05-28 16:41:42 +00:00
mav
f99e09f8a5 Do not register in CTL portal groups without portals.
From config synthax point of view such portal groups are not incorrect,
but they are useless since can not receive any connection.  And since
CTL port resource is very limited, it is good to save it.

MFC after:	2 weeks
2017-04-10 10:38:12 +00:00
ngie
14bba90a82 Split iscsi(4) ctl frontend off of ctl(4) as cfiscsi(4)
The goal of this work is to remove the explicit dependency for ctl(4)
on iscsi(4), so end-users without iscsi(4) support in the kernel can
use ctl(4) for its other functions.

This allows those without iscsi(4) support built into the kernel to use
ctl(4) as a test mechanism. As a sidenote, this was possible around the
10.0-RELEASE period, but made impossible for end-users without iscsi(4)
between 10.0-RELEASE and 11.0-RELEASE.

Automatically load cfiscsi(4) from ctladm(8) and ctld(8) for backwards
compatibility with previously releases. The automatic loading feature is
compiled into the beforementioned tools if MK_ISCSI == yes when building
world.

Add a manpage for cfiscsi(4) and refer to it in ctl(4).

Differential Revision:	D10099
MFC after:	2 months
Relnotes:	yes
Reviewed by:	mav, trasz
Sponsored by:	Dell EMC Isilon
2017-03-30 04:56:27 +00:00
ngie
721ef803a0 ctld: sort #includes per style(9)
- Only include sys/types.h or sys/param.h, not both.
- Sort alphabetically.

MFC after:	3 days
Sponsored by:	Dell EMC Isilon
2017-03-27 18:59:49 +00:00
ngie
94f31bba91 Allow WARNS to be overridden by the end-user
MFC after:	3 days
Sponsored by:	Dell EMC Isilon
2017-03-27 18:40:20 +00:00
araujo
8f1dbd8b2b Use nitems() from sys/param.h.
Reviewed by:	np
MFC after:	3 weeks.
Differential Revision:	https://reviews.freebsd.org/D9945
2017-03-11 04:01:35 +00:00
ngie
ba4a75dd95 usr.sbin: normalize paths using SRCTOP-relative paths or :H when possible
This simplifies make logic/output

MFC after:	1 month
Sponsored by:	Dell EMC Isilon
2017-03-04 11:38:03 +00:00
mav
85c239272b Fix build with ICL_KERNEL_PROXY.
MFC after:	2 weeks
2017-01-20 17:43:36 +00:00
mav
f97a527144 Fix wrong way assignment in r312190. 2017-01-14 19:58:51 +00:00
mav
b7e0906be3 Decouple iSCSI connection limits from defaults.
If initiator does not negotiate some parameter, it expects one to get
default value, not some unknown remote hardware limit.  On the side side,
if some parameter is negotiated, its default value from RFC should not
be used for anything.
2017-01-14 18:04:12 +00:00
mav
1e1d920eb6 Add MAX_LUNS overflow safety checks.
While this MAX_LUNS limitation is too synthetic and should be removed,
it is better to enforce it while it is here.

MFC after:	2 weeks
2016-12-27 17:13:31 +00:00
delphij
fbc8d8de2c Plug another leak with malformed IPv6 address.
MFC after:	2 weeks
2016-11-28 07:41:01 +00:00
delphij
2059af8c9f Don't leak 'str' when we see a malformed IPv6 address.
MFC after:	2 weeks
2016-11-28 07:33:26 +00:00
mav
3c5f3f503b There appeared to be even more copy/pastes. :)
Submitted by:	Dmitry Luhtionov <dmitryluhtionov@gmail.com>
MFC after:	2 weeks
2016-10-31 16:06:57 +00:00
mav
3c8a54a8e5 Fix wrong copy/paste in error message.
Submitted by:	Dmitry Luhtionov <dmitryluhtionov@gmail.com>
MFC after:	2 weeks
2016-10-31 16:01:22 +00:00
np
2e36f0c10a 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
2016-08-25 05:22:53 +00:00
araujo
cffbd65cc8 Fix calloc(3) argument order.
Reviewed by:	trasz
MFC after:	4 weeks.
Differential Revision:	https://reviews.freebsd.org/D7532
2016-08-22 15:01:39 +00:00
np
b6aea8a1c6 ctld(8): Fix MaxBurstLength negotiation.
The target must reply with the selected value of MaxBurstSize instead of
just echoing back the initiator's offered value.

Reviewed by:	mav@
Sponsored by:	Chelsio Communications
Differential Revision:	https://reviews.freebsd.org/D7278
2016-07-22 19:28:23 +00:00
trasz
4222c04023 Add documentation for "ctld -u", the UCL configuration file format.
Submitted by:	jceel@
Reviewed by:	wblock@
MFC after:	3 days
Differential Revision:	https://reviews.freebsd.org/D7222
2016-07-21 08:22:25 +00:00
trasz
f6683058f1 Fix ctld(8) to not exit when reloading configuration with invalid
initiator-portal clause.

MFC after:	3 days
2016-07-09 20:01:07 +00:00
trasz
38c5e8c680 Don't cap FirstBurstLength to maximum MaxRecvDataSegmentLength claimed
by the offload driver; there is no reason to do so, and it actually
harms performance.

MFC after:	1 month
2016-06-09 07:19:02 +00:00
trasz
c29ddfe43a Report negotiated MaxBurstLength and FirstBurstLength in "iscsictl -v"
and "ctladm islist -v" outputs.

MFC after:	1 month
2016-06-05 08:48:37 +00:00
trasz
6097d8cd5c Describe default value for "offload".
MFC after:	1 month
2016-06-01 11:45:06 +00:00
trasz
74b36c8c39 Fix error message.
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
2016-05-19 14:45:34 +00:00
truckman
0d65936221 pdu_delete(request) frees request, so move the call after
login_new_response(request) to avoid a use-after-free error

Reported by:	Coverity
Reviewed by:	1331219, 1331220
2016-05-16 04:43:47 +00:00
trasz
0ab6713ed2 Make the usage() mention the -u option added in r295212.
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
2016-04-12 16:07:41 +00:00
trasz
d59afb0080 Use the log_errno value passed to the function instead of the errno global
variable.

Suggested by:	Daniel Braniss
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
2016-03-15 11:03:45 +00:00
jceel
e4bdb83e76 Check value returned from ucl_parser_add_file().
Reviewed by:	trasz
Approved by:	trasz (mentor)
MFC after:	1 month
Sponsored by:	iXsystems, Inc.
2016-03-13 19:50:17 +00:00
bdrewery
2a891f1feb DIRDEPS_BUILD: Regenerate without local dependencies.
These are no longer needed after the recent 'beforebuild: depend' changes
and hooking DIRDEPS_BUILD into a subset of FAST_DEPEND which supports
skipping 'make depend'.

Sponsored by:	EMC / Isilon Storage Division
2016-02-24 17:20:11 +00:00
bdrewery
ed99ba5f08 DIRDEPS_BUILD: Update dependencies.
Sponsored by:	EMC / Isilon Storage Division
2016-02-16 02:14:30 +00:00
mav
1ca3ca2fd3 Don't check CmdSN for initial login request.
This fixes connection errors for some initiators not starting CmdSN
from zero.

While there, fix wrong status details reported for couple errors.

MFC after:	3 days
2016-02-12 10:58:13 +00:00
jceel
dac55bd53a Add an additional, libucl-based configuration file parser to ctld.
Default ctld behavior remains unchanged - libucl parser can be selected
explicitly by adding -u switch to ctld command line.

Reviewed by:	trasz
Approved by:	trasz (mentor)
MFC after:	1 month
Relnotes:	yes
Sponsored by:	iXsystems, Inc.
Differential Revision:	https://reviews.freebsd.org/D4534
2016-02-03 15:45:13 +00:00
bdrewery
fe1ef27d4a META MODE: Update dependencies with 'the-lot' and add missing directories.
This is not properly respecting WITHOUT or ARCH dependencies in target/.
Doing so requires a massive effort to rework targets/ to do so.  A
better approach will be to either include the SUBDIR Makefiles directly
and map to DIRDEPS or just dynamically lookup the SUBDIR.  These lose
the benefit of having a userland/lib, userland/libexec, etc, though and
results in a massive package.  The current implementation of targets/ is
very unmaintainable.

Currently rescue/rescue and sys/modules are still not connected.

Sponsored by:	EMC / Isilon Storage Division
2015-12-01 05:23:19 +00:00
trasz
9ecfe4bb8b Add missing error checks.
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
2015-11-14 16:18:22 +00:00
trasz
e8f533f709 Cosmetics; no functional changes.
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
2015-11-14 16:15:38 +00:00
trasz
b1195936c3 Don't try to avoid calling free(3) with NULL argument.
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
2015-11-14 16:06:01 +00:00
mav
63ed08e595 Introduce portal group options in ctl.conf.
While CTL has concept of port options, used at least for iSCSI ports now,
before this change it was impossible to set them manually.  There still
no user-configurable port options now, but I am planning to change that.
2015-11-09 18:33:36 +00:00
eadler
21a3003f8f Fix a ton of speelling errors
arc lint is helpful

Reviewed By: allanjude, wblock, #manpages, chris@bsdjunk.com
Differential Revision: https://reviews.freebsd.org/D3337
2015-10-21 05:37:09 +00:00
mav
8e6a38c94e Document CD block size of 2048. 2015-10-02 11:27:34 +00:00
mav
011d697052 Set default block size for CD to expected 2048 bytes. 2015-10-02 11:16:46 +00:00
mav
ba6084f689 Add to CTL initial support for CDROMs and removable devices.
Relnotes:	yes
2015-09-27 13:47:28 +00:00
mav
70f018005e Remove some duplicate, legacy, dead and questionable code. 2015-09-26 11:28:45 +00:00
jpaetzel
003e64c1ef Fix typo.
Sponsored by:	iXsystems
2015-09-25 03:46:06 +00:00
mav
e968ae531f Make cltd ignore HA ports. 2015-09-21 10:27:30 +00:00
mav
6e36742bfe Add ctl-lun config option for consistency in HA setups. 2015-09-15 13:37:48 +00:00
mav
7b4b3f9d39 Add negotiation of iSCSIProtocolLevel to 2 (RFC7144).
We may need to pass negotiated value to kernel level, but so far it is
not necessary, since it does not use any new features without request.
2015-09-13 20:58:22 +00:00
mav
7e1bc451f0 When updating port, apply only change of LUN map, not whole. 2015-09-13 15:08:06 +00:00
mav
0bc1e39132 Add two new portal group options "tag" and "foreign".
They are going to be useful in clustered setups.
2015-09-07 13:43:05 +00:00
mav
037d401b2c Allow LUN options modification via CTL_LUNREQ_MODIFY.
Not all changes take effect, but that is a different question.
2015-09-06 11:23:01 +00:00
mav
57f927630c Another addition to r287455. 2015-09-04 10:16:21 +00:00