brintos

brintos / linux-shallow public Read only

0
0
Text · 2.4 KiB · 147cf6c Raw
81 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#include <target/target_core_base.h>3#include <linux/btree.h>4 5/* length of ASCII WWPNs including pad */6#define TCM_QLA2XXX_NAMELEN	327/*8 * Number of pre-allocated per-session tags, based upon the worst-case9 * per port number of iocbs10 */11#define TCM_QLA2XXX_DEFAULT_TAGS 208812 13#include "qla_target.h"14 15struct tcm_qla2xxx_nacl {16	struct se_node_acl se_node_acl;17 18	/* From libfc struct fc_rport->port_id */19	u32 nport_id;20	/* Binary World Wide unique Node Name for remote FC Initiator Nport */21	u64 nport_wwnn;22	/* ASCII formatted WWPN for FC Initiator Nport */23	char nport_name[TCM_QLA2XXX_NAMELEN];24	/* Pointer to fc_port */25	struct fc_port *fc_port;26	/* Pointer to TCM FC nexus */27	struct se_session *nport_nexus;28};29 30struct tcm_qla2xxx_tpg_attrib {31	int generate_node_acls;32	int cache_dynamic_acls;33	int demo_mode_write_protect;34	int prod_mode_write_protect;35	int demo_mode_login_only;36	int fabric_prot_type;37	int jam_host;38};39 40struct tcm_qla2xxx_tpg {41	/* FC lport target portal group tag for TCM */42	u16 lport_tpgt;43	/* Atomic bit to determine TPG active status */44	atomic_t lport_tpg_enabled;45	/* Pointer back to tcm_qla2xxx_lport */46	struct tcm_qla2xxx_lport *lport;47	/* Used by tcm_qla2xxx_tpg_attrib_cit */48	struct tcm_qla2xxx_tpg_attrib tpg_attrib;49	/* Returned by tcm_qla2xxx_make_tpg() */50	struct se_portal_group se_tpg;51};52 53struct tcm_qla2xxx_fc_loopid {54	struct se_node_acl *se_nacl;55};56 57struct tcm_qla2xxx_lport {58	/* Binary World Wide unique Port Name for FC Target Lport */59	u64 lport_wwpn;60	/* Binary World Wide unique Port Name for FC NPIV Target Lport */61	u64 lport_npiv_wwpn;62	/* Binary World Wide unique Node Name for FC NPIV Target Lport */63	u64 lport_npiv_wwnn;64	/* ASCII formatted WWPN for FC Target Lport */65	char lport_name[TCM_QLA2XXX_NAMELEN];66	/* ASCII formatted naa WWPN for VPD page 83 etc */67	char lport_naa_name[TCM_QLA2XXX_NAMELEN];68	/* map for fc_port pointers in 24-bit FC Port ID space */69	struct btree_head32 lport_fcport_map;70	/* vmalloc-ed memory for fc_port pointers for 16-bit FC loop ID */71	struct tcm_qla2xxx_fc_loopid *lport_loopid_map;72	/* Pointer to struct scsi_qla_host from qla2xxx LLD */73	struct scsi_qla_host *qla_vha;74	/* Pointer to struct qla_tgt pointer */75	struct qla_tgt lport_qla_tgt;76	/* Pointer to TPG=1 for non NPIV mode */77	struct tcm_qla2xxx_tpg *tpg_1;78	/* Returned by tcm_qla2xxx_make_lport() */79	struct se_wwn lport_wwn;80};81