aboutsummaryrefslogtreecommitdiffstats
path: root/include/scsi/libfcoe.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/scsi/libfcoe.h')
-rw-r--r--include/scsi/libfcoe.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/include/scsi/libfcoe.h b/include/scsi/libfcoe.h
index b2410605b740..8ef5e209c216 100644
--- a/include/scsi/libfcoe.h
+++ b/include/scsi/libfcoe.h
@@ -74,11 +74,13 @@ enum fip_state {
74 * @last_link: last link state reported to libfc. 74 * @last_link: last link state reported to libfc.
75 * @map_dest: use the FC_MAP mode for destination MAC addresses. 75 * @map_dest: use the FC_MAP mode for destination MAC addresses.
76 * @spma: supports SPMA server-provided MACs mode 76 * @spma: supports SPMA server-provided MACs mode
77 * @send_ctlr_ka: need to send controller keep alive
78 * @send_port_ka: need to send port keep alives
77 * @dest_addr: MAC address of the selected FC forwarder. 79 * @dest_addr: MAC address of the selected FC forwarder.
78 * @ctl_src_addr: the native MAC address of our local port. 80 * @ctl_src_addr: the native MAC address of our local port.
79 * @data_src_addr: the assigned MAC address for the local port after FLOGI.
80 * @send: LLD-supplied function to handle sending of FIP Ethernet frames. 81 * @send: LLD-supplied function to handle sending of FIP Ethernet frames.
81 * @update_mac: LLD-supplied function to handle changes to MAC addresses. 82 * @update_mac: LLD-supplied function to handle changes to MAC addresses.
83 * @get_src_addr: LLD-supplied function to supply a source MAC address.
82 * @lock: lock protecting this structure. 84 * @lock: lock protecting this structure.
83 * 85 *
84 * This structure is used by all FCoE drivers. It contains information 86 * This structure is used by all FCoE drivers. It contains information
@@ -106,12 +108,14 @@ struct fcoe_ctlr {
106 u8 last_link; 108 u8 last_link;
107 u8 map_dest; 109 u8 map_dest;
108 u8 spma; 110 u8 spma;
111 u8 send_ctlr_ka;
112 u8 send_port_ka;
109 u8 dest_addr[ETH_ALEN]; 113 u8 dest_addr[ETH_ALEN];
110 u8 ctl_src_addr[ETH_ALEN]; 114 u8 ctl_src_addr[ETH_ALEN];
111 u8 data_src_addr[ETH_ALEN];
112 115
113 void (*send)(struct fcoe_ctlr *, struct sk_buff *); 116 void (*send)(struct fcoe_ctlr *, struct sk_buff *);
114 void (*update_mac)(struct fcoe_ctlr *, u8 *old, u8 *new); 117 void (*update_mac)(struct fc_lport *, u8 *addr);
118 u8 * (*get_src_addr)(struct fc_lport *);
115 spinlock_t lock; 119 spinlock_t lock;
116}; 120};
117 121
@@ -155,9 +159,10 @@ void fcoe_ctlr_init(struct fcoe_ctlr *);
155void fcoe_ctlr_destroy(struct fcoe_ctlr *); 159void fcoe_ctlr_destroy(struct fcoe_ctlr *);
156void fcoe_ctlr_link_up(struct fcoe_ctlr *); 160void fcoe_ctlr_link_up(struct fcoe_ctlr *);
157int fcoe_ctlr_link_down(struct fcoe_ctlr *); 161int fcoe_ctlr_link_down(struct fcoe_ctlr *);
158int fcoe_ctlr_els_send(struct fcoe_ctlr *, struct sk_buff *); 162int fcoe_ctlr_els_send(struct fcoe_ctlr *, struct fc_lport *, struct sk_buff *);
159void fcoe_ctlr_recv(struct fcoe_ctlr *, struct sk_buff *); 163void fcoe_ctlr_recv(struct fcoe_ctlr *, struct sk_buff *);
160int fcoe_ctlr_recv_flogi(struct fcoe_ctlr *, struct fc_frame *fp, u8 *sa); 164int fcoe_ctlr_recv_flogi(struct fcoe_ctlr *, struct fc_lport *lport,
165 struct fc_frame *fp, u8 *sa);
161 166
162/* libfcoe funcs */ 167/* libfcoe funcs */
163u64 fcoe_wwn_from_mac(unsigned char mac[], unsigned int, unsigned int); 168u64 fcoe_wwn_from_mac(unsigned char mac[], unsigned int, unsigned int);