diff options
author | Nicholas Bellinger <nab@linux-iscsi.org> | 2013-06-19 21:37:00 -0400 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2013-07-03 22:44:31 -0400 |
commit | e4b512e7133f5243f080db8238c5be8434cbcdfd (patch) | |
tree | 479e334fb00ad9dfcdbadf22536ccde455e95036 | |
parent | 6665889c843c774cd35309cf995ba0d302fa6dba (diff) |
target: Add se_portal_group->tpg_auth_group
This patch adds an optional /auth/ configfs group to TPG context that
can be used by fabrics like iscsi-target for TPG demo-mode
authentication.
Cc: Dax Kelson <dkelson@gurulabs.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
-rw-r--r-- | drivers/target/target_core_fabric_configfs.c | 21 | ||||
-rw-r--r-- | include/target/target_core_base.h | 3 | ||||
-rw-r--r-- | include/target/target_core_configfs.h | 1 | ||||
-rw-r--r-- | include/target/target_core_fabric_configfs.h | 11 |
4 files changed, 33 insertions, 3 deletions
diff --git a/drivers/target/target_core_fabric_configfs.c b/drivers/target/target_core_fabric_configfs.c index 04c775cb3e65..eb56eb129563 100644 --- a/drivers/target/target_core_fabric_configfs.c +++ b/drivers/target/target_core_fabric_configfs.c | |||
@@ -965,6 +965,19 @@ TF_CIT_SETUP(tpg_attrib, &target_fabric_tpg_attrib_item_ops, NULL, NULL); | |||
965 | 965 | ||
966 | /* End of tfc_tpg_attrib_cit */ | 966 | /* End of tfc_tpg_attrib_cit */ |
967 | 967 | ||
968 | /* Start of tfc_tpg_auth_cit */ | ||
969 | |||
970 | CONFIGFS_EATTR_OPS(target_fabric_tpg_auth, se_portal_group, tpg_auth_group); | ||
971 | |||
972 | static struct configfs_item_operations target_fabric_tpg_auth_item_ops = { | ||
973 | .show_attribute = target_fabric_tpg_auth_attr_show, | ||
974 | .store_attribute = target_fabric_tpg_auth_attr_store, | ||
975 | }; | ||
976 | |||
977 | TF_CIT_SETUP(tpg_auth, &target_fabric_tpg_auth_item_ops, NULL, NULL); | ||
978 | |||
979 | /* End of tfc_tpg_attrib_cit */ | ||
980 | |||
968 | /* Start of tfc_tpg_param_cit */ | 981 | /* Start of tfc_tpg_param_cit */ |
969 | 982 | ||
970 | CONFIGFS_EATTR_OPS(target_fabric_tpg_param, se_portal_group, tpg_param_group); | 983 | CONFIGFS_EATTR_OPS(target_fabric_tpg_param, se_portal_group, tpg_param_group); |
@@ -1030,8 +1043,9 @@ static struct config_group *target_fabric_make_tpg( | |||
1030 | se_tpg->tpg_group.default_groups[1] = &se_tpg->tpg_np_group; | 1043 | se_tpg->tpg_group.default_groups[1] = &se_tpg->tpg_np_group; |
1031 | se_tpg->tpg_group.default_groups[2] = &se_tpg->tpg_acl_group; | 1044 | se_tpg->tpg_group.default_groups[2] = &se_tpg->tpg_acl_group; |
1032 | se_tpg->tpg_group.default_groups[3] = &se_tpg->tpg_attrib_group; | 1045 | se_tpg->tpg_group.default_groups[3] = &se_tpg->tpg_attrib_group; |
1033 | se_tpg->tpg_group.default_groups[4] = &se_tpg->tpg_param_group; | 1046 | se_tpg->tpg_group.default_groups[4] = &se_tpg->tpg_auth_group; |
1034 | se_tpg->tpg_group.default_groups[5] = NULL; | 1047 | se_tpg->tpg_group.default_groups[5] = &se_tpg->tpg_param_group; |
1048 | se_tpg->tpg_group.default_groups[6] = NULL; | ||
1035 | 1049 | ||
1036 | config_group_init_type_name(&se_tpg->tpg_group, name, | 1050 | config_group_init_type_name(&se_tpg->tpg_group, name, |
1037 | &TF_CIT_TMPL(tf)->tfc_tpg_base_cit); | 1051 | &TF_CIT_TMPL(tf)->tfc_tpg_base_cit); |
@@ -1043,6 +1057,8 @@ static struct config_group *target_fabric_make_tpg( | |||
1043 | &TF_CIT_TMPL(tf)->tfc_tpg_nacl_cit); | 1057 | &TF_CIT_TMPL(tf)->tfc_tpg_nacl_cit); |
1044 | config_group_init_type_name(&se_tpg->tpg_attrib_group, "attrib", | 1058 | config_group_init_type_name(&se_tpg->tpg_attrib_group, "attrib", |
1045 | &TF_CIT_TMPL(tf)->tfc_tpg_attrib_cit); | 1059 | &TF_CIT_TMPL(tf)->tfc_tpg_attrib_cit); |
1060 | config_group_init_type_name(&se_tpg->tpg_auth_group, "auth", | ||
1061 | &TF_CIT_TMPL(tf)->tfc_tpg_auth_cit); | ||
1046 | config_group_init_type_name(&se_tpg->tpg_param_group, "param", | 1062 | config_group_init_type_name(&se_tpg->tpg_param_group, "param", |
1047 | &TF_CIT_TMPL(tf)->tfc_tpg_param_cit); | 1063 | &TF_CIT_TMPL(tf)->tfc_tpg_param_cit); |
1048 | 1064 | ||
@@ -1202,6 +1218,7 @@ int target_fabric_setup_cits(struct target_fabric_configfs *tf) | |||
1202 | target_fabric_setup_tpg_np_cit(tf); | 1218 | target_fabric_setup_tpg_np_cit(tf); |
1203 | target_fabric_setup_tpg_np_base_cit(tf); | 1219 | target_fabric_setup_tpg_np_base_cit(tf); |
1204 | target_fabric_setup_tpg_attrib_cit(tf); | 1220 | target_fabric_setup_tpg_attrib_cit(tf); |
1221 | target_fabric_setup_tpg_auth_cit(tf); | ||
1205 | target_fabric_setup_tpg_param_cit(tf); | 1222 | target_fabric_setup_tpg_param_cit(tf); |
1206 | target_fabric_setup_tpg_nacl_cit(tf); | 1223 | target_fabric_setup_tpg_nacl_cit(tf); |
1207 | target_fabric_setup_tpg_nacl_base_cit(tf); | 1224 | target_fabric_setup_tpg_nacl_base_cit(tf); |
diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h index 9fd7a60f47f0..d92ec6765f5d 100644 --- a/include/target/target_core_base.h +++ b/include/target/target_core_base.h | |||
@@ -795,11 +795,12 @@ struct se_portal_group { | |||
795 | struct target_core_fabric_ops *se_tpg_tfo; | 795 | struct target_core_fabric_ops *se_tpg_tfo; |
796 | struct se_wwn *se_tpg_wwn; | 796 | struct se_wwn *se_tpg_wwn; |
797 | struct config_group tpg_group; | 797 | struct config_group tpg_group; |
798 | struct config_group *tpg_default_groups[6]; | 798 | struct config_group *tpg_default_groups[7]; |
799 | struct config_group tpg_lun_group; | 799 | struct config_group tpg_lun_group; |
800 | struct config_group tpg_np_group; | 800 | struct config_group tpg_np_group; |
801 | struct config_group tpg_acl_group; | 801 | struct config_group tpg_acl_group; |
802 | struct config_group tpg_attrib_group; | 802 | struct config_group tpg_attrib_group; |
803 | struct config_group tpg_auth_group; | ||
803 | struct config_group tpg_param_group; | 804 | struct config_group tpg_param_group; |
804 | }; | 805 | }; |
805 | 806 | ||
diff --git a/include/target/target_core_configfs.h b/include/target/target_core_configfs.h index 612509592ffd..713c5004f4ae 100644 --- a/include/target/target_core_configfs.h +++ b/include/target/target_core_configfs.h | |||
@@ -23,6 +23,7 @@ struct target_fabric_configfs_template { | |||
23 | struct config_item_type tfc_tpg_np_cit; | 23 | struct config_item_type tfc_tpg_np_cit; |
24 | struct config_item_type tfc_tpg_np_base_cit; | 24 | struct config_item_type tfc_tpg_np_base_cit; |
25 | struct config_item_type tfc_tpg_attrib_cit; | 25 | struct config_item_type tfc_tpg_attrib_cit; |
26 | struct config_item_type tfc_tpg_auth_cit; | ||
26 | struct config_item_type tfc_tpg_param_cit; | 27 | struct config_item_type tfc_tpg_param_cit; |
27 | struct config_item_type tfc_tpg_nacl_cit; | 28 | struct config_item_type tfc_tpg_nacl_cit; |
28 | struct config_item_type tfc_tpg_nacl_base_cit; | 29 | struct config_item_type tfc_tpg_nacl_base_cit; |
diff --git a/include/target/target_core_fabric_configfs.h b/include/target/target_core_fabric_configfs.h index a26fb7586a09..b32a14905cfa 100644 --- a/include/target/target_core_fabric_configfs.h +++ b/include/target/target_core_fabric_configfs.h | |||
@@ -62,6 +62,17 @@ static struct target_fabric_tpg_attrib_attribute _fabric##_tpg_attrib_##_name = | |||
62 | _fabric##_tpg_attrib_show_##_name, \ | 62 | _fabric##_tpg_attrib_show_##_name, \ |
63 | _fabric##_tpg_attrib_store_##_name); | 63 | _fabric##_tpg_attrib_store_##_name); |
64 | 64 | ||
65 | CONFIGFS_EATTR_STRUCT(target_fabric_tpg_auth, se_portal_group); | ||
66 | #define TF_TPG_AUTH_ATTR(_fabric, _name, _mode) \ | ||
67 | static struct target_fabric_tpg_auth_attribute _fabric##_tpg_auth_##_name = \ | ||
68 | __CONFIGFS_EATTR(_name, _mode, \ | ||
69 | _fabric##_tpg_auth_show_##_name, \ | ||
70 | _fabric##_tpg_auth_store_##_name); | ||
71 | |||
72 | #define TF_TPG_AUTH_ATTR_RO(_fabric, _name) \ | ||
73 | static struct target_fabric_tpg_auth_attribute _fabric##_tpg_auth_##_name = \ | ||
74 | __CONFIGFS_EATTR_RO(_name, \ | ||
75 | _fabric##_tpg_auth_show_##_name); | ||
65 | 76 | ||
66 | CONFIGFS_EATTR_STRUCT(target_fabric_tpg_param, se_portal_group); | 77 | CONFIGFS_EATTR_STRUCT(target_fabric_tpg_param, se_portal_group); |
67 | #define TF_TPG_PARAM_ATTR(_fabric, _name, _mode) \ | 78 | #define TF_TPG_PARAM_ATTR(_fabric, _name, _mode) \ |