Skip to content

Commit eb39881

Browse files
hreineckekeithbusch
authored andcommitted
nvmet: Set 'TREQ' to 'required' when TLS is enabled
The current implementation does not support secure concatenation, so 'TREQ' is always set to 'required' when TLS is enabled. Signed-off-by: Hannes Reinecke <[email protected]> Reviewed-by: Sagi Grimberg <[email protected]> Signed-off-by: Keith Busch <[email protected]>
1 parent 79a4f18 commit eb39881

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

drivers/nvme/target/configfs.c

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,7 @@ static inline u8 nvmet_port_disc_addr_treq_mask(struct nvmet_port *port)
166166

167167
static ssize_t nvmet_addr_treq_show(struct config_item *item, char *page)
168168
{
169-
u8 treq = to_nvmet_port(item)->disc_addr.treq &
170-
NVME_TREQ_SECURE_CHANNEL_MASK;
169+
u8 treq = nvmet_port_disc_addr_treq_secure_channel(to_nvmet_port(item));
171170
int i;
172171

173172
for (i = 0; i < ARRAY_SIZE(nvmet_addr_treq); i++) {
@@ -376,6 +375,7 @@ static ssize_t nvmet_addr_tsas_store(struct config_item *item,
376375
const char *page, size_t count)
377376
{
378377
struct nvmet_port *port = to_nvmet_port(item);
378+
u8 treq = nvmet_port_disc_addr_treq_mask(port);
379379
u8 sectype;
380380
int i;
381381

@@ -397,6 +397,17 @@ static ssize_t nvmet_addr_tsas_store(struct config_item *item,
397397

398398
found:
399399
nvmet_port_init_tsas_tcp(port, sectype);
400+
/*
401+
* The TLS implementation currently does not support
402+
* secure concatenation, so TREQ is always set to 'required'
403+
* if TLS is enabled.
404+
*/
405+
if (sectype == NVMF_TCP_SECTYPE_TLS13) {
406+
treq |= NVMF_TREQ_REQUIRED;
407+
} else {
408+
treq |= NVMF_TREQ_NOT_SPECIFIED;
409+
}
410+
port->disc_addr.treq = treq;
400411
return count;
401412
}
402413

drivers/nvme/target/nvmet.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,11 @@ static inline struct nvmet_port *ana_groups_to_port(
178178
ana_groups_group);
179179
}
180180

181+
static inline u8 nvmet_port_disc_addr_treq_secure_channel(struct nvmet_port *port)
182+
{
183+
return (port->disc_addr.treq & NVME_TREQ_SECURE_CHANNEL_MASK);
184+
}
185+
181186
struct nvmet_ctrl {
182187
struct nvmet_subsys *subsys;
183188
struct nvmet_sq **sqs;

0 commit comments

Comments
 (0)