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