@@ -37,6 +37,8 @@ static ssize_t nvmet_addr_adrfam_show(struct config_item *item,
37
37
return sprintf (page , "ipv6\n" );
38
38
case NVMF_ADDR_FAMILY_IB :
39
39
return sprintf (page , "ib\n" );
40
+ case NVMF_ADDR_FAMILY_FC :
41
+ return sprintf (page , "fc\n" );
40
42
default :
41
43
return sprintf (page , "\n" );
42
44
}
@@ -59,6 +61,8 @@ static ssize_t nvmet_addr_adrfam_store(struct config_item *item,
59
61
port -> disc_addr .adrfam = NVMF_ADDR_FAMILY_IP6 ;
60
62
} else if (sysfs_streq (page , "ib" )) {
61
63
port -> disc_addr .adrfam = NVMF_ADDR_FAMILY_IB ;
64
+ } else if (sysfs_streq (page , "fc" )) {
65
+ port -> disc_addr .adrfam = NVMF_ADDR_FAMILY_FC ;
62
66
} else {
63
67
pr_err ("Invalid value '%s' for adrfam\n" , page );
64
68
return - EINVAL ;
@@ -209,6 +213,8 @@ static ssize_t nvmet_addr_trtype_show(struct config_item *item,
209
213
return sprintf (page , "rdma\n" );
210
214
case NVMF_TRTYPE_LOOP :
211
215
return sprintf (page , "loop\n" );
216
+ case NVMF_TRTYPE_FC :
217
+ return sprintf (page , "fc\n" );
212
218
default :
213
219
return sprintf (page , "\n" );
214
220
}
@@ -229,6 +235,12 @@ static void nvmet_port_init_tsas_loop(struct nvmet_port *port)
229
235
memset (& port -> disc_addr .tsas , 0 , NVMF_TSAS_SIZE );
230
236
}
231
237
238
+ static void nvmet_port_init_tsas_fc (struct nvmet_port * port )
239
+ {
240
+ port -> disc_addr .trtype = NVMF_TRTYPE_FC ;
241
+ memset (& port -> disc_addr .tsas , 0 , NVMF_TSAS_SIZE );
242
+ }
243
+
232
244
static ssize_t nvmet_addr_trtype_store (struct config_item * item ,
233
245
const char * page , size_t count )
234
246
{
@@ -244,6 +256,8 @@ static ssize_t nvmet_addr_trtype_store(struct config_item *item,
244
256
nvmet_port_init_tsas_rdma (port );
245
257
} else if (sysfs_streq (page , "loop" )) {
246
258
nvmet_port_init_tsas_loop (port );
259
+ } else if (sysfs_streq (page , "fc" )) {
260
+ nvmet_port_init_tsas_fc (port );
247
261
} else {
248
262
pr_err ("Invalid value '%s' for trtype\n" , page );
249
263
return - EINVAL ;
0 commit comments