This revision introduces two changes to CTL:
- Changes the way options are passed to CTL_LUN_REQ and CTL_PORT_REQ ioctls. Removes ctl_be_arg structure and associated logic and replaces it with nv(3)-based logic for passing in and out arguments.
- Allows creating multiple ioctl frontend ports using either ctladm(8) or ctld(8). New frontend ports are represented by /dev/cam/ctl<pp>.<vp> nodes, eg /dev/cam/ctl5.3. Those device nodes respond only to CTL_IO ioctl.
New command-line options for ctladm:
ctladm port -c # creates new ioctl frontend port with using free pp and vp=0 ctladm port -c -o pp=10 # creates new ioctl frontend port with pp=10 and vp=0 ctladm port -c -o pp=11 -o vp=12 # creates new ioctl frontend port with pp=11 and vp=12 ctladm port -r -p 4 # removes port with number 4 (it's a "targ_port" number, not pp number)
Changes in ctladm port command:
ctladm port [-o on|off] changed to ctladm port [-i on|off]
New syntax for ctl.conf:
target ... { port ioctl/<pp> ... } target ... { port ioctl/<pp>/<vp> ...
Attaches a target to given ioctl frontend port - if it doesn't exist, it gets created automatically by ctld and removed during shutdown