diff options
author | James Smart <James.Smart@Emulex.Com> | 2007-06-17 20:56:38 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-06-17 23:27:39 -0400 |
commit | 92d7f7b0cde3ad2260e7462b40867b57efd49851 (patch) | |
tree | fadb1d8f1a817c2f85937b5e9c3b830bdecb5555 /drivers/scsi/lpfc/lpfc_disc.h | |
parent | ed957684294618602b48f1950b0c9bbcb036583f (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.h | 8 |
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 */ |
42 | struct lpfc_work_evt { | 43 | struct 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 |