aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_disc.h
diff options
context:
space:
mode:
authorJames Smart <James.Smart@Emulex.Com>2007-06-17 20:56:38 -0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-06-17 23:27:39 -0400
commit92d7f7b0cde3ad2260e7462b40867b57efd49851 (patch)
treefadb1d8f1a817c2f85937b5e9c3b830bdecb5555 /drivers/scsi/lpfc/lpfc_disc.h
parented957684294618602b48f1950b0c9bbcb036583f (diff)
[SCSI] lpfc: NPIV: add NPIV support on top of SLI-3
NPIV support is added to the driver. It utilizes the interfaces of the fc transport for the creation and deletion of vports. Within the driver, a new Scsi_Host is created for each NPIV instance, and is paired with a new instance of a FC port. This allows N FC Port elements to share a single Adapter. Signed-off-by: James Smart <James.Smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_disc.h')
-rw-r--r--drivers/scsi/lpfc/lpfc_disc.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/scsi/lpfc/lpfc_disc.h b/drivers/scsi/lpfc/lpfc_disc.h
index 20bace56c8fd..f23fe1e5fbb7 100644
--- a/drivers/scsi/lpfc/lpfc_disc.h
+++ b/drivers/scsi/lpfc/lpfc_disc.h
@@ -36,13 +36,14 @@ enum lpfc_work_type {
36 LPFC_EVT_WARM_START, 36 LPFC_EVT_WARM_START,
37 LPFC_EVT_KILL, 37 LPFC_EVT_KILL,
38 LPFC_EVT_ELS_RETRY, 38 LPFC_EVT_ELS_RETRY,
39 LPFC_EVT_DEV_LOSS,
39}; 40};
40 41
41/* structure used to queue event to the discovery tasklet */ 42/* structure used to queue event to the discovery tasklet */
42struct lpfc_work_evt { 43struct lpfc_work_evt {
43 struct list_head evt_listp; 44 struct list_head evt_listp;
44 void * evt_arg1; 45 void *evt_arg1;
45 void * evt_arg2; 46 void *evt_arg2;
46 enum lpfc_work_type evt; 47 enum lpfc_work_type evt;
47}; 48};
48 49
@@ -73,10 +74,12 @@ struct lpfc_nodelist {
73#define NLP_FCP_2_DEVICE 0x10 /* FCP-2 device */ 74#define NLP_FCP_2_DEVICE 0x10 /* FCP-2 device */
74 75
75 struct timer_list nlp_delayfunc; /* Used for delayed ELS cmds */ 76 struct timer_list nlp_delayfunc; /* Used for delayed ELS cmds */
77 struct timer_list nlp_initiator_tmr; /* Used with dev_loss */
76 struct fc_rport *rport; /* Corresponding FC transport 78 struct fc_rport *rport; /* Corresponding FC transport
77 port structure */ 79 port structure */
78 struct lpfc_vport *vport; 80 struct lpfc_vport *vport;
79 struct lpfc_work_evt els_retry_evt; 81 struct lpfc_work_evt els_retry_evt;
82 struct lpfc_work_evt dev_loss_evt;
80 unsigned long last_ramp_up_time; /* jiffy of last ramp up */ 83 unsigned long last_ramp_up_time; /* jiffy of last ramp up */
81 unsigned long last_q_full_time; /* jiffy of last queue full */ 84 unsigned long last_q_full_time; /* jiffy of last queue full */
82 struct kref kref; 85 struct kref kref;
@@ -99,6 +102,7 @@ struct lpfc_nodelist {
99#define NLP_NPR_ADISC 0x2000000 /* Issue ADISC when dq'ed from 102#define NLP_NPR_ADISC 0x2000000 /* Issue ADISC when dq'ed from
100 NPR list */ 103 NPR list */
101#define NLP_NODEV_REMOVE 0x8000000 /* Defer removal till discovery ends */ 104#define NLP_NODEV_REMOVE 0x8000000 /* Defer removal till discovery ends */
105#define NLP_TARGET_REMOVE 0x10000000 /* Target remove in process */
102 106
103/* There are 4 different double linked lists nodelist entries can reside on. 107/* There are 4 different double linked lists nodelist entries can reside on.
104 * The Port Login (PLOGI) list and Address Discovery (ADISC) list are used 108 * The Port Login (PLOGI) list and Address Discovery (ADISC) list are used