Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8085176f authored by Sagi Grimberg's avatar Sagi Grimberg Committed by Nicholas Bellinger
Browse files

Target/configfs: Expose iSCSI network portal group T10-PI support



User may enable T10-PI support per network portal group. any connection
established on top of it, will be required to serve protected transactions.

Signed-off-by: default avatarSagi Grimberg <sagig@mellanox.com>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 5b168dcd
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1052,6 +1052,11 @@ TPG_ATTR(demo_mode_discovery, S_IRUGO | S_IWUSR);
 */
DEF_TPG_ATTRIB(default_erl);
TPG_ATTR(default_erl, S_IRUGO | S_IWUSR);
/*
 * Define iscsi_tpg_attrib_s_t10_pi
 */
DEF_TPG_ATTRIB(t10_pi);
TPG_ATTR(t10_pi, S_IRUGO | S_IWUSR);

static struct configfs_attribute *lio_target_tpg_attrib_attrs[] = {
	&iscsi_tpg_attrib_authentication.attr,
@@ -1064,6 +1069,7 @@ static struct configfs_attribute *lio_target_tpg_attrib_attrs[] = {
	&iscsi_tpg_attrib_prod_mode_write_protect.attr,
	&iscsi_tpg_attrib_demo_mode_discovery.attr,
	&iscsi_tpg_attrib_default_erl.attr,
	&iscsi_tpg_attrib_t10_pi.attr,
	NULL,
};

+19 −0
Original line number Diff line number Diff line
@@ -860,3 +860,22 @@ int iscsit_ta_default_erl(

	return 0;
}

int iscsit_ta_t10_pi(
	struct iscsi_portal_group *tpg,
	u32 flag)
{
	struct iscsi_tpg_attrib *a = &tpg->tpg_attrib;

	if ((flag != 0) && (flag != 1)) {
		pr_err("Illegal value %d\n", flag);
		return -EINVAL;
	}

	a->t10_pi = flag;
	pr_debug("iSCSI_TPG[%hu] - T10 Protection information bit:"
		" %s\n", tpg->tpgt, (a->t10_pi) ?
		"ON" : "OFF");

	return 0;
}
+1 −0
Original line number Diff line number Diff line
@@ -39,5 +39,6 @@ extern int iscsit_ta_demo_mode_write_protect(struct iscsi_portal_group *, u32);
extern int iscsit_ta_prod_mode_write_protect(struct iscsi_portal_group *, u32);
extern int iscsit_ta_demo_mode_discovery(struct iscsi_portal_group *, u32);
extern int iscsit_ta_default_erl(struct iscsi_portal_group *, u32);
extern int iscsit_ta_t10_pi(struct iscsi_portal_group *, u32);

#endif /* ISCSI_TARGET_TPG_H */