Add ctl-lun config option for consistency in HA setups.
This commit is contained in:
parent
0eea5207a0
commit
3933f7b112
@ -28,7 +28,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd September 7, 2015
|
||||
.Dd September 15, 2015
|
||||
.Dt CTL.CONF 5
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -388,6 +388,10 @@ The default backend is block.
|
||||
.It Ic blocksize Ar size
|
||||
The blocksize visible to the initiator.
|
||||
The default blocksize is 512.
|
||||
.It Ic ctl-lun Ar lun_id
|
||||
Global numeric identifier to use for a given LUN inside CTL.
|
||||
By default CTL allocates those IDs dynamically, but explicit specification
|
||||
may be needed for consistency in HA configurations.
|
||||
.It Ic device-id Ar string
|
||||
The SCSI Device Identification string presented to the initiator.
|
||||
.It Ic option Ar name Ar value
|
||||
|
@ -1397,6 +1397,7 @@ lun_new(struct conf *conf, const char *name)
|
||||
lun->l_name = checked_strdup(name);
|
||||
TAILQ_INIT(&lun->l_options);
|
||||
TAILQ_INSERT_TAIL(&conf->conf_luns, lun, l_next);
|
||||
lun->l_ctl_lun = -1;
|
||||
|
||||
return (lun);
|
||||
}
|
||||
|
@ -656,6 +656,11 @@ kernel_lun_add(struct lun *lun)
|
||||
if (lun->l_size != 0)
|
||||
req.reqdata.create.lun_size_bytes = lun->l_size;
|
||||
|
||||
if (lun->l_ctl_lun >= 0) {
|
||||
req.reqdata.create.req_lun_id = lun->l_ctl_lun;
|
||||
req.reqdata.create.flags |= CTL_LUN_FLAG_ID_REQ;
|
||||
}
|
||||
|
||||
req.reqdata.create.flags |= CTL_LUN_FLAG_DEV_TYPE;
|
||||
req.reqdata.create.device_type = T_DIRECT;
|
||||
|
||||
|
@ -57,8 +57,8 @@ extern void yyrestart(FILE *);
|
||||
%}
|
||||
|
||||
%token ALIAS AUTH_GROUP AUTH_TYPE BACKEND BLOCKSIZE CHAP CHAP_MUTUAL
|
||||
%token CLOSING_BRACKET DEBUG DEVICE_ID DISCOVERY_AUTH_GROUP DISCOVERY_FILTER
|
||||
%token FOREIGN
|
||||
%token CLOSING_BRACKET CTL_LUN DEBUG DEVICE_ID DISCOVERY_AUTH_GROUP
|
||||
%token DISCOVERY_FILTER FOREIGN
|
||||
%token INITIATOR_NAME INITIATOR_PORTAL ISNS_SERVER ISNS_PERIOD ISNS_TIMEOUT
|
||||
%token LISTEN LISTEN_ISER LUN MAXPROC OFFLOAD OPENING_BRACKET OPTION
|
||||
%token PATH PIDFILE PORT PORTAL_GROUP REDIRECT SEMICOLON SERIAL SIZE STR
|
||||
@ -855,6 +855,8 @@ lun_entry:
|
||||
|
|
||||
lun_device_id
|
||||
|
|
||||
lun_ctl_lun
|
||||
|
|
||||
lun_option
|
||||
|
|
||||
lun_path
|
||||
@ -912,6 +914,26 @@ lun_device_id: DEVICE_ID STR
|
||||
}
|
||||
;
|
||||
|
||||
lun_ctl_lun: CTL_LUN STR
|
||||
{
|
||||
uint64_t tmp;
|
||||
|
||||
if (expand_number($2, &tmp) != 0) {
|
||||
yyerror("invalid numeric value");
|
||||
free($2);
|
||||
return (1);
|
||||
}
|
||||
|
||||
if (lun->l_ctl_lun >= 0) {
|
||||
log_warnx("ctl_lun for lun \"%s\" "
|
||||
"specified more than once",
|
||||
lun->l_name);
|
||||
return (1);
|
||||
}
|
||||
lun_set_ctl_lun(lun, tmp);
|
||||
}
|
||||
;
|
||||
|
||||
lun_option: OPTION STR STR
|
||||
{
|
||||
struct lun_option *clo;
|
||||
|
@ -54,6 +54,7 @@ backend { return BACKEND; }
|
||||
blocksize { return BLOCKSIZE; }
|
||||
chap { return CHAP; }
|
||||
chap-mutual { return CHAP_MUTUAL; }
|
||||
ctl-lun { return CTL_LUN; }
|
||||
debug { return DEBUG; }
|
||||
device-id { return DEVICE_ID; }
|
||||
discovery-auth-group { return DISCOVERY_AUTH_GROUP; }
|
||||
|
Loading…
Reference in New Issue
Block a user