Page MenuHomeFreeBSD

iscsi: Add support for booting without iscsid(8)
Needs ReviewPublic

Authored by khng on Mar 7 2022, 9:19 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Mar 28, 1:00 AM
Unknown Object (File)
Jan 10 2024, 6:56 PM
Unknown Object (File)
Dec 20 2023, 6:11 AM
Unknown Object (File)
Nov 23 2023, 3:28 PM
Unknown Object (File)
Nov 10 2023, 1:14 PM
Unknown Object (File)
Oct 6 2023, 9:10 AM
Unknown Object (File)
Aug 15 2023, 3:27 PM
Unknown Object (File)
Jun 17 2023, 7:15 AM

Details

Reviewers
mav
dch
trasz
jhb
Summary

This commit ports negotiation code from iscsid(8) to the iSCSI
initiator. iBFT support is also added. A session that is added by
iBFT-driven logic will perform in-kernel iSCSI negotiation instead of
letting iscsid(8) doing the job.

Sponsored by: The FreeBSD Foundation

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 44690
Build 41578: arc lint + arc unit

Event Timeline

khng requested review of this revision.Mar 7 2022, 9:19 PM
sys/dev/iscsi/iscsi.c
2103

Hard to do though. You have an existing TCP connection and cxgbei offload really wants to own the connection (so it is TOE) from the start rather than trying to take on an existing non-TOE socket and migrating it to TOE and then to iSCSI.

I've been (poorly) maintaining the net/isboot-kmod port for a bit. It works but it is completely out-of-tree and independent from the in-tree iscsi stack. I'd love to see this diff get some traction so isboot is no longer necessary. I'm working on setting up a test bed, including at least one Chelsio T5 10GbE NIC.

A couple notes after skimming the diff-
The code for reading the iBFT may need to be more persistent. I don't know if all NIC/BIOS/PXE implementations support reading the table from ACPI, so you may want to implement the "lowmem" scan as a fallback. I've also heard of at least one case where there are _multiple_ ACPI entries, and the desired one isn't "1". I'm working on adding a sysctl to control/select this in isboot.

The patch will also need tweaking to work with the latest IfAPI changes. See e.g. src/tools/ifnet/convert-ifapi.sh.