New iSCSI stack.
Outback Dingo
outbackdingo at gmail.com
Wed Sep 11 15:06:02 UTC 2013
On Sun, Sep 8, 2013 at 9:32 AM, Outback Dingo <outbackdingo at gmail.com>wrote:
>
>
>
> On Sun, Sep 8, 2013 at 6:29 AM, Edward Tomasz Napierała <trasz at freebsd.org
> > wrote:
>
>> Wiadomość napisana przez Alfred Perlstein <bright at mu.org> w dniu 6 wrz
>> 2013, o godz. 20:18:
>> > On 9/5/13 3:27 AM, Edward Tomasz Napierała wrote:
>> >> Hello. At http://people.freebsd.org/~trasz/cfiscsi-20130904.diffyou'll find
>> >> a patch which adds the new iSCSI initiator and target, against
>> 10-CURRENT.
>> >> To use the new initiator, start with "man iscsictl". For the target -
>> "man
>> >> ctld".
>> >>
>> >> All feedback is welcome. If nothing unexpected comes up, I'll commit
>> it
>> >> in a few days from now. Note that it's still not optimized; at this
>> point
>> >> I'm focusing more on reliability and interoperability.
>> >>
>> >> This work is being sponsored by FreeBSD Foundation.
>> >>
>> >> _______________________________________________
>> >> freebsd-current at freebsd.org mailing list
>> >> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> >> To unsubscribe, send any mail to "
>> freebsd-current-unsubscribe at freebsd.org"
>> >>
>> > Edward, this is really exciting!
>> >
>> > Is there an easy way to use the userland iscsi configuration files?
>>
>> Which iSCSI userland configuration files, the ctl.conf(5)? If you need
>> an ability to parse it and modify from a shell scripts, see confctl
>> utility
>> (sysutils/confctl, https://github.com/trasz/confctl/).
>>
>> > We would love to quickly backport and ship this with FreeNAS as an
>> option for our users, having the config files be the same OR having a very
>> good converter would really make that much easier for us.
>>
>> Porting to 9 should be quite easy - there are Capsicum API differences;
>> you might also want to compare CTL between 10 and 9 to see if there are
>> any changes which need to be merged. Taking a look at the code searching
>> for possible security issues would be also very welcome :-)
>>
>> As for the config files - writing a converter should be quite easy. Which
>> configuration files you need to support, ctl.conf(5) and istgt
>> configuration?
>>
>
> I was i belive quite close to having it working on the last patch, however
> could never seem to get the ctl kernel module to function,
> And feel im a bit further away with this latest patch retracing my steps,
> from previous... quite easy to backport.... maybe for you, or other
> but yes, I also would like to integrate the work to stable/9 in the lab
> for some benchmarks
>
>>
>>
Still trying to tackle this...... any ideas?? I think if i can get past the
few errors im encountering i can get a patch against stable/9 for others to
test....
clang -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE
-nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include
/usr/obj/usr/home/dingo/devel/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq
-fno-common -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer
-I/usr/obj/usr/home/dingo/devel/sys/GENERIC -mno-aes -mno-avx
-mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float
-fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
-std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall
-Wredundant-decls -Wnested-externs -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef
-Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs
-fdiagnostics-show-option -Wno-error-tautological-compare
-Wno-error-empty-body -Wno-error-parentheses-equality -c
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_cam_sim.c
ctfconvert -L VERSION -g ctl_frontend_cam_sim.o
clang -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE
-nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include
/usr/obj/usr/home/dingo/devel/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq
-fno-common -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer
-I/usr/obj/usr/home/dingo/devel/sys/GENERIC -mno-aes -mno-avx
-mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float
-fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
-std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall
-Wredundant-decls -Wnested-externs -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef
-Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs
-fdiagnostics-show-option -Wno-error-tautological-compare
-Wno-error-empty-body -Wno-error-parentheses-equality -c
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_internal.c
ctfconvert -L VERSION -g ctl_frontend_internal.o
clang -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE
-nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include
/usr/obj/usr/home/dingo/devel/sys/GENERIC/opt_global.h -I. -I@ -I@/contrib/altq
-fno-common -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer
-I/usr/obj/usr/home/dingo/devel/sys/GENERIC -mno-aes -mno-avx
-mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float
-fno-asynchronous-unwind-tables -ffreestanding -fstack-protector
-std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall
-Wredundant-decls -Wnested-externs -Wstrict-prototypes
-Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef
-Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs
-fdiagnostics-show-option -Wno-error-tautological-compare
-Wno-error-empty-body -Wno-error-parentheses-equality -c
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:525:19:
error: no member named 'lun_map_fn' in 'struct ctl_nexus'
io->io_hdr.nexus.lun_map_fn = cfiscsi_map_lun;
~~~~~~~~~~~~~~~~ ^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:526:19:
error: no member named 'lun_map_arg' in 'struct ctl_nexus'
io->io_hdr.nexus.lun_map_arg = cs;
~~~~~~~~~~~~~~~~ ^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:587:19:
error: no member named 'lun_map_fn' in 'struct ctl_nexus'
io->io_hdr.nexus.lun_map_fn = cfiscsi_map_lun;
~~~~~~~~~~~~~~~~ ^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:588:19:
error: no member named 'lun_map_arg' in 'struct ctl_nexus'
io->io_hdr.nexus.lun_map_arg = cs;
~~~~~~~~~~~~~~~~ ^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:1230:6:
error: no member named 'ioctl' in 'struct ctl_frontend'
fe->ioctl = cfiscsi_ioctl;
~~ ^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:1231:6:
error: no member named 'devid' in 'struct ctl_frontend'
fe->devid = cfiscsi_devid;
~~ ^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:1955:25:
error: use of undeclared identifier 'SCSI_PROTO_ISCSI'
desc->proto_codeset = (SCSI_PROTO_ISCSI << 4) |
SVPD_ID_CODESET_ASCII;
^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:1980:33:
error: use of undeclared identifier 'SCSI_PROTO_ISCSI'
desc1->proto_codeset = (SCSI_PROTO_ISCSI << 4) |
SVPD_ID_CODESET_UTF8;
^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:1990:33:
error: use of undeclared identifier 'SCSI_PROTO_ISCSI'
desc2->proto_codeset = (SCSI_PROTO_ISCSI << 4) |
SVPD_ID_CODESET_BINARY;
^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:1999:33:
error: use of undeclared identifier 'SCSI_PROTO_ISCSI'
desc3->proto_codeset = (SCSI_PROTO_ISCSI << 4) |
SVPD_ID_CODESET_BINARY;
^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2182:48:
error: no member named 'options' in 'struct ctl_be_lun'
&control_softc->ctl_luns[lun_id]->be_lun->options, links) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
@/sys/queue.h:272:28: note: expanded from macro 'STAILQ_FOREACH'
for((var) = STAILQ_FIRST((head)); \
^
@/sys/queue.h:269:30: note: expanded from macro 'STAILQ_FIRST'
#define STAILQ_FIRST(head) ((head)->stqh_first)
^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2181:2:
error: incomplete definition of type 'struct ctl_be_lun_option'
STAILQ_FOREACH(opt,
^~~~~~~~~~~~~~~~~~~
@/sys/queue.h:274:13: note: expanded from macro 'STAILQ_FOREACH'
(var) = STAILQ_NEXT((var), field))
^~~~~~~~~~~~~~~~~~~~~~~~~
@/sys/queue.h:318:39: note: expanded from macro 'STAILQ_NEXT'
#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
~~~~~^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2174:9:
note: forward declaration of 'struct ctl_be_lun_option'
struct ctl_be_lun_option *opt;
^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2183:17:
error: incomplete definition of type 'struct ctl_be_lun_option'
if (strcmp(opt->name, "cfiscsi_target") == 0)
~~~^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2174:9:
note: forward declaration of 'struct ctl_be_lun_option'
struct ctl_be_lun_option *opt;
^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2184:16:
error: incomplete definition of type 'struct ctl_be_lun_option'
target = opt->value;
~~~^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2174:9:
note: forward declaration of 'struct ctl_be_lun_option'
struct ctl_be_lun_option *opt;
^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2185:22:
error: incomplete definition of type 'struct ctl_be_lun_option'
else if (strcmp(opt->name, "cfiscsi_target_alias") == 0)
~~~^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2174:9:
note: forward declaration of 'struct ctl_be_lun_option'
struct ctl_be_lun_option *opt;
^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2186:22:
error: incomplete definition of type 'struct ctl_be_lun_option'
target_alias = opt->value;
~~~^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2174:9:
note: forward declaration of 'struct ctl_be_lun_option'
struct ctl_be_lun_option *opt;
^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2187:22:
error: incomplete definition of type 'struct ctl_be_lun_option'
else if (strcmp(opt->name, "cfiscsi_lun") == 0)
~~~^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2174:9:
note: forward declaration of 'struct ctl_be_lun_option'
struct ctl_be_lun_option *opt;
^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2188:13:
error: incomplete definition of type 'struct ctl_be_lun_option'
lun = opt->value;
~~~^
/usr/home/dingo/devel/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:2174:9:
note: forward declaration of 'struct ctl_be_lun_option'
struct ctl_be_lun_option *opt;
^
18 errors generated.
*** [ctl_frontend_iscsi.o] Error code 1
Stop in /usr/home/dingo/devel/sys/modules/ctl.
*** [all] Error code 1
Stop in /usr/home/dingo/devel/sys/modules.
*** [modules-all] Error code 1
Stop in /usr/obj/usr/home/dingo/devel/sys/GENERIC.
*** [buildkernel] Error code 1
Stop in /usr/home/dingo/devel.
*** [buildkernel] Error code 1
Stop in /usr/home/dingo/devel.
_______________________________________________
>> freebsd-current at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org
>> "
>>
>
>
More information about the freebsd-scsi
mailing list