diff options
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/fc_frame.h | 3 | ||||
-rw-r--r-- | include/scsi/libfc.h | 10 | ||||
-rw-r--r-- | include/scsi/libfcoe.h | 15 |
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 | */ |
902 | int fc_elsct_init(struct fc_lport *lp); | 902 | int fc_elsct_init(struct fc_lport *lp); |
903 | struct 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); | ||
911 | void fc_lport_flogi_resp(struct fc_seq *, struct fc_frame *, void *); | ||
912 | void 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 *); | |||
155 | void fcoe_ctlr_destroy(struct fcoe_ctlr *); | 159 | void fcoe_ctlr_destroy(struct fcoe_ctlr *); |
156 | void fcoe_ctlr_link_up(struct fcoe_ctlr *); | 160 | void fcoe_ctlr_link_up(struct fcoe_ctlr *); |
157 | int fcoe_ctlr_link_down(struct fcoe_ctlr *); | 161 | int fcoe_ctlr_link_down(struct fcoe_ctlr *); |
158 | int fcoe_ctlr_els_send(struct fcoe_ctlr *, struct sk_buff *); | 162 | int fcoe_ctlr_els_send(struct fcoe_ctlr *, struct fc_lport *, struct sk_buff *); |
159 | void fcoe_ctlr_recv(struct fcoe_ctlr *, struct sk_buff *); | 163 | void fcoe_ctlr_recv(struct fcoe_ctlr *, struct sk_buff *); |
160 | int fcoe_ctlr_recv_flogi(struct fcoe_ctlr *, struct fc_frame *fp, u8 *sa); | 164 | int 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 */ |
163 | u64 fcoe_wwn_from_mac(unsigned char mac[], unsigned int, unsigned int); | 168 | u64 fcoe_wwn_from_mac(unsigned char mac[], unsigned int, unsigned int); |