aboutsummaryrefslogtreecommitdiffstats
path: root/include/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'include/scsi')
-rw-r--r--include/scsi/fc_frame.h3
-rw-r--r--include/scsi/libfc.h10
-rw-r--r--include/scsi/libfcoe.h15
3 files changed, 23 insertions, 5 deletions
diff --git a/include/scsi/fc_frame.h b/include/scsi/fc_frame.h
index 148126dcf9e9..ab2f8d41761b 100644
--- a/include/scsi/fc_frame.h
+++ b/include/scsi/fc_frame.h
@@ -28,6 +28,8 @@
28#include <scsi/fc/fc_fcp.h> 28#include <scsi/fc/fc_fcp.h>
29#include <scsi/fc/fc_encaps.h> 29#include <scsi/fc/fc_encaps.h>
30 30
31#include <linux/if_ether.h>
32
31/* 33/*
32 * The fc_frame interface is used to pass frame data between functions. 34 * The fc_frame interface is used to pass frame data between functions.
33 * The frame includes the data buffer, length, and SOF / EOF delimiter types. 35 * The frame includes the data buffer, length, and SOF / EOF delimiter types.
@@ -67,6 +69,7 @@ struct fcoe_rcv_info {
67 enum fc_sof fr_sof; /* start of frame delimiter */ 69 enum fc_sof fr_sof; /* start of frame delimiter */
68 enum fc_eof fr_eof; /* end of frame delimiter */ 70 enum fc_eof fr_eof; /* end of frame delimiter */
69 u8 fr_flags; /* flags - see below */ 71 u8 fr_flags; /* flags - see below */
72 u8 granted_mac[ETH_ALEN]; /* FCoE MAC address */
70}; 73};
71 74
72 75
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h
index dfeb1ee4f03f..dad66ce8673d 100644
--- a/include/scsi/libfc.h
+++ b/include/scsi/libfc.h
@@ -900,6 +900,16 @@ void fc_fcp_destroy(struct fc_lport *);
900 * Initializes ELS/CT interface 900 * Initializes ELS/CT interface
901 */ 901 */
902int fc_elsct_init(struct fc_lport *lp); 902int fc_elsct_init(struct fc_lport *lp);
903struct fc_seq *fc_elsct_send(struct fc_lport *lport,
904 u32 did,
905 struct fc_frame *fp,
906 unsigned int op,
907 void (*resp)(struct fc_seq *,
908 struct fc_frame *fp,
909 void *arg),
910 void *arg, u32 timer_msec);
911void fc_lport_flogi_resp(struct fc_seq *, struct fc_frame *, void *);
912void fc_lport_logo_resp(struct fc_seq *, struct fc_frame *, void *);
903 913
904 914
905/* 915/*
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);