提交 70b51aab 编写于 作者: R Robert Love 提交者: James Bottomley

[SCSI] libfcoe: formatting and comment cleanups

Ensures that there are kernel-doc style comments for all
routines and structures.

There were also a few instances of fc_lport's named 'lp'
which were switched to 'lport' as per the libfc/libfcoe/fcoe
naming convention.

Also, emacs 'indent-region' and 'tabify' were ran on libfcoe.c.
Signed-off-by: NRobert Love <robert.w.love@intel.com>
Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
上级 3a3b42bf
......@@ -59,15 +59,15 @@ unsigned int libfcoe_debug_logging;
module_param_named(debug_logging, libfcoe_debug_logging, int, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(debug_logging, "a bit mask of logging levels");
#define LIBFCOE_LOGGING 0x01 /* General logging, not categorized */
#define LIBFCOE_LOGGING 0x01 /* General logging, not categorized */
#define LIBFCOE_FIP_LOGGING 0x02 /* FIP logging */
#define LIBFCOE_CHECK_LOGGING(LEVEL, CMD) \
do { \
if (unlikely(libfcoe_debug_logging & LEVEL)) \
do { \
CMD; \
} while (0); \
#define LIBFCOE_CHECK_LOGGING(LEVEL, CMD) \
do { \
if (unlikely(libfcoe_debug_logging & LEVEL)) \
do { \
CMD; \
} while (0); \
} while (0)
#define LIBFCOE_DBG(fmt, args...) \
......@@ -78,7 +78,10 @@ do { \
LIBFCOE_CHECK_LOGGING(LIBFCOE_FIP_LOGGING, \
printk(KERN_INFO "fip: " fmt, ##args);)
/*
/**
* fcoe_ctlr_mtu_valid() - Check if a FCF's MTU is valid
* @fcf: The FCF to check
*
* Return non-zero if FCF fcoe_size has been validated.
*/
static inline int fcoe_ctlr_mtu_valid(const struct fcoe_fcf *fcf)
......@@ -86,7 +89,10 @@ static inline int fcoe_ctlr_mtu_valid(const struct fcoe_fcf *fcf)
return (fcf->flags & FIP_FL_SOL) != 0;
}
/*
/**
* fcoe_ctlr_fcf_usable() - Check if a FCF is usable
* @fcf: The FCF to check
*
* Return non-zero if the FCF is usable.
*/
static inline int fcoe_ctlr_fcf_usable(struct fcoe_fcf *fcf)
......@@ -97,8 +103,8 @@ static inline int fcoe_ctlr_fcf_usable(struct fcoe_fcf *fcf)
}
/**
* fcoe_ctlr_init() - Initialize the FCoE Controller instance.
* @fip: FCoE controller.
* fcoe_ctlr_init() - Initialize the FCoE Controller instance
* @fip: The FCoE controller to initialize
*/
void fcoe_ctlr_init(struct fcoe_ctlr *fip)
{
......@@ -114,8 +120,8 @@ void fcoe_ctlr_init(struct fcoe_ctlr *fip)
EXPORT_SYMBOL(fcoe_ctlr_init);
/**
* fcoe_ctlr_reset_fcfs() - Reset and free all FCFs for a controller.
* @fip: FCoE controller.
* fcoe_ctlr_reset_fcfs() - Reset and free all FCFs for a controller
* @fip: The FCoE controller whose FCFs are to be reset
*
* Called with &fcoe_ctlr lock held.
*/
......@@ -134,8 +140,8 @@ static void fcoe_ctlr_reset_fcfs(struct fcoe_ctlr *fip)
}
/**
* fcoe_ctlr_destroy() - Disable and tear-down the FCoE controller.
* @fip: FCoE controller.
* fcoe_ctlr_destroy() - Disable and tear down a FCoE controller
* @fip: The FCoE controller to tear down
*
* This is called by FCoE drivers before freeing the &fcoe_ctlr.
*
......@@ -162,8 +168,8 @@ void fcoe_ctlr_destroy(struct fcoe_ctlr *fip)
EXPORT_SYMBOL(fcoe_ctlr_destroy);
/**
* fcoe_ctlr_fcoe_size() - Return the maximum FCoE size required for VN_Port.
* @fip: FCoE controller.
* fcoe_ctlr_fcoe_size() - Return the maximum FCoE size required for VN_Port
* @fip: The FCoE controller to get the maximum FCoE size from
*
* Returns the maximum packet size including the FCoE header and trailer,
* but not including any Ethernet or VLAN headers.
......@@ -180,9 +186,9 @@ static inline u32 fcoe_ctlr_fcoe_size(struct fcoe_ctlr *fip)
}
/**
* fcoe_ctlr_solicit() - Send a solicitation.
* @fip: FCoE controller.
* @fcf: Destination FCF. If NULL, a multicast solicitation is sent.
* fcoe_ctlr_solicit() - Send a FIP solicitation
* @fip: The FCoE controller to send the solicitation on
* @fcf: The destination FCF (if NULL, a multicast solicitation is sent)
*/
static void fcoe_ctlr_solicit(struct fcoe_ctlr *fip, struct fcoe_fcf *fcf)
{
......@@ -241,8 +247,8 @@ static void fcoe_ctlr_solicit(struct fcoe_ctlr *fip, struct fcoe_fcf *fcf)
}
/**
* fcoe_ctlr_link_up() - Start FCoE controller.
* @fip: FCoE controller.
* fcoe_ctlr_link_up() - Start FCoE controller
* @fip: The FCoE controller to start
*
* Called from the LLD when the network link is ready.
*/
......@@ -268,15 +274,15 @@ void fcoe_ctlr_link_up(struct fcoe_ctlr *fip)
EXPORT_SYMBOL(fcoe_ctlr_link_up);
/**
* fcoe_ctlr_reset() - Reset FIP.
* @fip: FCoE controller.
* @new_state: FIP state to be entered.
* fcoe_ctlr_reset() - Reset a FCoE controller
* @fip: The FCoE controller to reset
* @new_state: The FIP state to be entered
*
* Returns non-zero if the link was up and now isn't.
*/
static int fcoe_ctlr_reset(struct fcoe_ctlr *fip, enum fip_state new_state)
{
struct fc_lport *lp = fip->lp;
struct fc_lport *lport = fip->lp;
int link_dropped;
spin_lock_bh(&fip->lock);
......@@ -294,19 +300,19 @@ static int fcoe_ctlr_reset(struct fcoe_ctlr *fip, enum fip_state new_state)
spin_unlock_bh(&fip->lock);
if (link_dropped)
fc_linkdown(lp);
fc_linkdown(lport);
if (new_state == FIP_ST_ENABLED) {
fcoe_ctlr_solicit(fip, NULL);
fc_linkup(lp);
fc_linkup(lport);
link_dropped = 0;
}
return link_dropped;
}
/**
* fcoe_ctlr_link_down() - Stop FCoE controller.
* @fip: FCoE controller.
* fcoe_ctlr_link_down() - Stop a FCoE controller
* @fip: The FCoE controller to be stopped
*
* Returns non-zero if the link was up and now isn't.
*
......@@ -320,11 +326,11 @@ int fcoe_ctlr_link_down(struct fcoe_ctlr *fip)
EXPORT_SYMBOL(fcoe_ctlr_link_down);
/**
* fcoe_ctlr_send_keep_alive() - Send a keep-alive to the selected FCF.
* @fip: FCoE controller.
* @lport: libfc fc_lport to send from
* @ports: 0 for controller keep-alive, 1 for port keep-alive.
* @sa: source MAC address.
* fcoe_ctlr_send_keep_alive() - Send a keep-alive to the selected FCF
* @fip: The FCoE controller to send the FKA on
* @lport: libfc fc_lport to send from
* @ports: 0 for controller keep-alive, 1 for port keep-alive
* @sa: The source MAC address
*
* A controller keep-alive is sent every fka_period (typically 8 seconds).
* The source MAC is the native MAC address.
......@@ -369,7 +375,7 @@ static void fcoe_ctlr_send_keep_alive(struct fcoe_ctlr *fip,
kal->fip.fip_op = htons(FIP_OP_CTRL);
kal->fip.fip_subcode = FIP_SC_KEEP_ALIVE;
kal->fip.fip_dl_len = htons((sizeof(kal->mac) +
ports * sizeof(*vn)) / FIP_BPW);
ports * sizeof(*vn)) / FIP_BPW);
kal->fip.fip_flags = htons(FIP_FL_FPMA);
if (fip->spma)
kal->fip.fip_flags |= htons(FIP_FL_SPMA);
......@@ -393,11 +399,10 @@ static void fcoe_ctlr_send_keep_alive(struct fcoe_ctlr *fip,
}
/**
* fcoe_ctlr_encaps() - Encapsulate an ELS frame for FIP, without sending it.
* @fip: FCoE controller.
* @lport: libfc fc_lport to use for the source address
* @dtype: FIP descriptor type for the frame.
* @skb: FCoE ELS frame including FC header but no FCoE headers.
* fcoe_ctlr_encaps() - Encapsulate an ELS frame for FIP, without sending it
* @fip: The FCoE controller for the ELS frame
* @dtype: The FIP descriptor type for the frame
* @skb: The FCoE ELS frame including FC header but no FCoE headers
*
* Returns non-zero error code on failure.
*
......@@ -553,9 +558,9 @@ int fcoe_ctlr_els_send(struct fcoe_ctlr *fip, struct fc_lport *lport,
}
EXPORT_SYMBOL(fcoe_ctlr_els_send);
/*
* fcoe_ctlr_age_fcfs() - Reset and free all old FCFs for a controller.
* @fip: FCoE controller.
/**
* fcoe_ctlr_age_fcfs() - Reset and free all old FCFs for a controller
* @fip: The FCoE controller to free FCFs on
*
* Called with lock held.
*
......@@ -596,9 +601,9 @@ static void fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip)
}
/**
* fcoe_ctlr_parse_adv() - Decode a FIP advertisement into a new FCF entry.
* @skb: received FIP advertisement frame
* @fcf: resulting FCF entry.
* fcoe_ctlr_parse_adv() - Decode a FIP advertisement into a new FCF entry
* @skb: The received FIP advertisement frame
* @fcf: The resulting FCF entry
*
* Returns zero on a valid parsed advertisement,
* otherwise returns non zero value.
......@@ -699,9 +704,9 @@ static int fcoe_ctlr_parse_adv(struct sk_buff *skb, struct fcoe_fcf *fcf)
}
/**
* fcoe_ctlr_recv_adv() - Handle an incoming advertisement.
* @fip: FCoE controller.
* @skb: Received FIP packet.
* fcoe_ctlr_recv_adv() - Handle an incoming advertisement
* @fip: The FCoE controller receiving the advertisement
* @skb: The received FIP packet
*/
static void fcoe_ctlr_recv_adv(struct fcoe_ctlr *fip, struct sk_buff *skb)
{
......@@ -784,7 +789,7 @@ static void fcoe_ctlr_recv_adv(struct fcoe_ctlr *fip, struct sk_buff *skb)
*/
if (mtu_valid && !fip->sel_time && fcoe_ctlr_fcf_usable(fcf)) {
fip->sel_time = jiffies +
msecs_to_jiffies(FCOE_CTLR_START_DELAY);
msecs_to_jiffies(FCOE_CTLR_START_DELAY);
if (!timer_pending(&fip->timer) ||
time_before(fip->sel_time, fip->timer.expires))
mod_timer(&fip->timer, fip->sel_time);
......@@ -794,13 +799,13 @@ static void fcoe_ctlr_recv_adv(struct fcoe_ctlr *fip, struct sk_buff *skb)
}
/**
* fcoe_ctlr_recv_els() - Handle an incoming FIP-encapsulated ELS frame.
* @fip: FCoE controller.
* @skb: Received FIP packet.
* fcoe_ctlr_recv_els() - Handle an incoming FIP encapsulated ELS frame
* @fip: The FCoE controller which received the packet
* @skb: The received FIP packet
*/
static void fcoe_ctlr_recv_els(struct fcoe_ctlr *fip, struct sk_buff *skb)
{
struct fc_lport *lp = fip->lp;
struct fc_lport *lport = fip->lp;
struct fip_header *fiph;
struct fc_frame *fp = (struct fc_frame *)skb;
struct fc_frame_header *fh = NULL;
......@@ -886,13 +891,13 @@ static void fcoe_ctlr_recv_els(struct fcoe_ctlr *fip, struct sk_buff *skb)
fc_frame_init(fp);
fr_sof(fp) = FC_SOF_I3;
fr_eof(fp) = FC_EOF_T;
fr_dev(fp) = lp;
fr_dev(fp) = lport;
stats = fc_lport_get_stats(lp);
stats = fc_lport_get_stats(lport);
stats->RxFrames++;
stats->RxWords += skb->len / FIP_BPW;
fc_exch_recv(lp, fp);
fc_exch_recv(lport, fp);
return;
len_err:
......@@ -903,15 +908,15 @@ static void fcoe_ctlr_recv_els(struct fcoe_ctlr *fip, struct sk_buff *skb)
}
/**
* fcoe_ctlr_recv_els() - Handle an incoming link reset frame.
* @fip: FCoE controller.
* @fh: Received FIP header.
* fcoe_ctlr_recv_els() - Handle an incoming link reset frame
* @fip: The FCoE controller that received the frame
* @fh: The received FIP header
*
* There may be multiple VN_Port descriptors.
* The overall length has already been checked.
*/
static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip,
struct fip_header *fh)
struct fip_header *fh)
{
struct fip_desc *desc;
struct fip_mac_desc *mp;
......@@ -920,13 +925,13 @@ static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip,
size_t rlen;
size_t dlen;
struct fcoe_fcf *fcf = fip->sel_fcf;
struct fc_lport *lp = fip->lp;
struct fc_lport *lport = fip->lp;
u32 desc_mask;
LIBFCOE_FIP_DBG("Clear Virtual Link received\n");
if (!fcf)
return;
if (!fcf || !fc_host_port_id(lp->host))
if (!fcf || !fc_host_port_id(lport->host))
return;
/*
......@@ -962,9 +967,10 @@ static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip,
if (dlen < sizeof(*vp))
return;
if (compare_ether_addr(vp->fd_mac,
fip->get_src_addr(lp)) == 0 &&
get_unaligned_be64(&vp->fd_wwpn) == lp->wwpn &&
ntoh24(vp->fd_fc_id) == fc_host_port_id(lp->host))
fip->get_src_addr(lport)) == 0 &&
get_unaligned_be64(&vp->fd_wwpn) == lport->wwpn &&
ntoh24(vp->fd_fc_id) ==
fc_host_port_id(lport->host))
desc_mask &= ~BIT(FIP_DT_VN_ID);
break;
default:
......@@ -989,9 +995,9 @@ static void fcoe_ctlr_recv_clr_vlink(struct fcoe_ctlr *fip,
}
/**
* fcoe_ctlr_recv() - Receive a FIP frame.
* @fip: FCoE controller.
* @skb: Received FIP packet.
* fcoe_ctlr_recv() - Receive a FIP packet
* @fip: The FCoE controller that received the packet
* @skb: The received FIP packet
*
* This is called from NET_RX_SOFTIRQ.
*/
......@@ -1005,9 +1011,9 @@ void fcoe_ctlr_recv(struct fcoe_ctlr *fip, struct sk_buff *skb)
EXPORT_SYMBOL(fcoe_ctlr_recv);
/**
* fcoe_ctlr_recv_handler() - Receive a FIP frame.
* @fip: FCoE controller.
* @skb: Received FIP packet.
* fcoe_ctlr_recv_handler() - Receive a FIP frame
* @fip: The FCoE controller that received the frame
* @skb: The received FIP frame
*
* Returns non-zero if the frame is dropped.
*/
......@@ -1064,8 +1070,8 @@ static int fcoe_ctlr_recv_handler(struct fcoe_ctlr *fip, struct sk_buff *skb)
}
/**
* fcoe_ctlr_select() - Select the best FCF, if possible.
* @fip: FCoE controller.
* fcoe_ctlr_select() - Select the best FCF (if possible)
* @fip: The FCoE controller
*
* If there are conflicting advertisements, no FCF can be chosen.
*
......@@ -1106,8 +1112,8 @@ static void fcoe_ctlr_select(struct fcoe_ctlr *fip)
}
/**
* fcoe_ctlr_timeout() - FIP timer function.
* @arg: &fcoe_ctlr pointer.
* fcoe_ctlr_timeout() - FIP timeout handler
* @arg: The FCoE controller that timed out
*
* Ages FCFs. Triggers FCF selection if possible. Sends keep-alives.
*/
......@@ -1142,12 +1148,12 @@ static void fcoe_ctlr_timeout(unsigned long arg)
fip->lp->host->host_no, sel->fcf_mac);
memcpy(fip->dest_addr, sel->fcf_mac, ETH_ALEN);
fip->port_ka_time = jiffies +
msecs_to_jiffies(FIP_VN_KA_PERIOD);
msecs_to_jiffies(FIP_VN_KA_PERIOD);
fip->ctlr_ka_time = jiffies + sel->fka_period;
fip->link = 1;
} else {
printk(KERN_NOTICE "libfcoe: host%d: "
"FIP Fibre-Channel Forwarder timed out. "
"FIP Fibre-Channel Forwarder timed out. "
"Starting FCF discovery.\n",
fip->lp->host->host_no);
fip->link = 0;
......@@ -1165,7 +1171,7 @@ static void fcoe_ctlr_timeout(unsigned long arg)
if (time_after_eq(jiffies, fip->port_ka_time)) {
fip->port_ka_time += jiffies +
msecs_to_jiffies(FIP_VN_KA_PERIOD);
msecs_to_jiffies(FIP_VN_KA_PERIOD);
fip->send_port_ka = 1;
}
if (time_after(next_timer, fip->port_ka_time))
......@@ -1173,7 +1179,7 @@ static void fcoe_ctlr_timeout(unsigned long arg)
mod_timer(&fip->timer, next_timer);
} else if (fip->sel_time) {
next_timer = fip->sel_time +
msecs_to_jiffies(FCOE_CTLR_START_DELAY);
msecs_to_jiffies(FCOE_CTLR_START_DELAY);
mod_timer(&fip->timer, next_timer);
}
if (fip->send_ctlr_ka || fip->send_port_ka)
......@@ -1182,8 +1188,8 @@ static void fcoe_ctlr_timeout(unsigned long arg)
}
/**
* fcoe_ctlr_link_work() - worker thread function for link changes.
* @work: pointer to link_work member inside &fcoe_ctlr.
* fcoe_ctlr_link_work() - Worker thread function for link changes
* @work: Handle to a FCoE controller
*
* See if the link status has changed and if so, report it.
*
......@@ -1230,8 +1236,8 @@ static void fcoe_ctlr_link_work(struct work_struct *work)
}
/**
* fcoe_ctlr_recv_work() - Worker thread function for receiving FIP frames.
* @recv_work: pointer to recv_work member inside &fcoe_ctlr.
* fcoe_ctlr_recv_work() - Worker thread function for receiving FIP frames
* @recv_work: Handle to a FCoE controller
*/
static void fcoe_ctlr_recv_work(struct work_struct *recv_work)
{
......@@ -1249,11 +1255,10 @@ static void fcoe_ctlr_recv_work(struct work_struct *recv_work)
}
/**
* fcoe_ctlr_recv_flogi() - snoop Pre-FIP receipt of FLOGI response or request.
* @fip: FCoE controller.
* @lport: libfc fc_lport instance received on
* @fp: FC frame.
* @sa: Ethernet source MAC address from received FCoE frame.
* fcoe_ctlr_recv_flogi() - Snoop pre-FIP receipt of FLOGI response or request
* @fip: The FCoE controller
* @fp: The FC frame to snoop
* @sa: Ethernet source MAC address from received FCoE frame
*
* Snoop potential response to FLOGI or even incoming FLOGI.
*
......@@ -1323,10 +1328,10 @@ int fcoe_ctlr_recv_flogi(struct fcoe_ctlr *fip, struct fc_lport *lport,
EXPORT_SYMBOL(fcoe_ctlr_recv_flogi);
/**
* fcoe_wwn_from_mac() - Converts 48-bit IEEE MAC address to 64-bit FC WWN.
* @mac: mac address
* @scheme: check port
* @port: port indicator for converting
* fcoe_wwn_from_mac() - Converts a 48-bit IEEE MAC address to a 64-bit FC WWN
* @mac: The MAC address to convert
* @scheme: The scheme to use when converting
* @port: The port indicator for converting
*
* Returns: u64 fc world wide name
*/
......@@ -1364,23 +1369,24 @@ u64 fcoe_wwn_from_mac(unsigned char mac[MAX_ADDR_LEN],
EXPORT_SYMBOL_GPL(fcoe_wwn_from_mac);
/**
* fcoe_libfc_config() - sets up libfc related properties for lport
* @lp: ptr to the fc_lport
* @tt: libfc function template
* fcoe_libfc_config() - Sets up libfc related properties for local port
* @lp: The local port to configure libfc for
* @tt: The libfc function template
*
* Returns : 0 for success
*/
int fcoe_libfc_config(struct fc_lport *lp, struct libfc_function_template *tt)
int fcoe_libfc_config(struct fc_lport *lport,
struct libfc_function_template *tt)
{
/* Set the function pointers set by the LLDD */
memcpy(&lp->tt, tt, sizeof(*tt));
if (fc_fcp_init(lp))
memcpy(&lport->tt, tt, sizeof(*tt));
if (fc_fcp_init(lport))
return -ENOMEM;
fc_exch_init(lp);
fc_elsct_init(lp);
fc_lport_init(lp);
fc_rport_init(lp);
fc_disc_init(lp);
fc_exch_init(lport);
fc_elsct_init(lport);
fc_lport_init(lport);
fc_rport_init(lport);
fc_disc_init(lport);
return 0;
}
......
......@@ -53,35 +53,35 @@ enum fip_state {
};
/**
* struct fcoe_ctlr - FCoE Controller and FIP state.
* @state: internal FIP state for network link and FIP or non-FIP mode.
* @lp: &fc_lport: libfc local port.
* @sel_fcf: currently selected FCF, or NULL.
* @fcfs: list of discovered FCFs.
* @fcf_count: number of discovered FCF entries.
* @sol_time: time when a multicast solicitation was last sent.
* @sel_time: time after which to select an FCF.
* @port_ka_time: time of next port keep-alive.
* @ctlr_ka_time: time of next controller keep-alive.
* @timer: timer struct used for all delayed events.
* @link_work: &work_struct for doing FCF selection.
* @recv_work: &work_struct for receiving FIP frames.
* struct fcoe_ctlr - FCoE Controller and FIP state
* @state: internal FIP state for network link and FIP or non-FIP mode.
* @lp: &fc_lport: libfc local port.
* @sel_fcf: currently selected FCF, or NULL.
* @fcfs: list of discovered FCFs.
* @fcf_count: number of discovered FCF entries.
* @sol_time: time when a multicast solicitation was last sent.
* @sel_time: time after which to select an FCF.
* @port_ka_time: time of next port keep-alive.
* @ctlr_ka_time: time of next controller keep-alive.
* @timer: timer struct used for all delayed events.
* @link_work: &work_struct for doing FCF selection.
* @recv_work: &work_struct for receiving FIP frames.
* @fip_recv_list: list of received FIP frames.
* @user_mfs: configured maximum FC frame size, including FC header.
* @flogi_oxid: exchange ID of most recent fabric login.
* @flogi_count: number of FLOGI attempts in AUTO mode.
* @link: current link status for libfc.
* @last_link: last link state reported to libfc.
* @map_dest: use the FC_MAP mode for destination MAC addresses.
* @spma: supports SPMA server-provided MACs mode
* @send_ctlr_ka: need to send controller keep alive
* @send_port_ka: need to send port keep alives
* @dest_addr: MAC address of the selected FC forwarder.
* @ctl_src_addr: the native MAC address of our local port.
* @send: LLD-supplied function to handle sending of FIP Ethernet frames.
* @update_mac: LLD-supplied function to handle changes to MAC addresses.
* @get_src_addr: LLD-supplied function to supply a source MAC address.
* @lock: lock protecting this structure.
* @user_mfs: configured maximum FC frame size, including FC header.
* @flogi_oxid: exchange ID of most recent fabric login.
* @flogi_count: number of FLOGI attempts in AUTO mode.
* @link: current link status for libfc.
* @last_link: last link state reported to libfc.
* @map_dest: use the FC_MAP mode for destination MAC addresses.
* @spma: supports SPMA server-provided MACs mode
* @send_ctlr_ka: need to send controller keep alive
* @send_port_ka: need to send port keep alives
* @dest_addr: MAC address of the selected FC forwarder.
* @ctl_src_addr: the native MAC address of our local port.
* @send: LLD-supplied function to handle sending FIP Ethernet frames
* @update_mac: LLD-supplied function to handle changes to MAC addresses.
* @get_src_addr: LLD-supplied function to supply a source MAC address.
* @lock: lock protecting this structure.
*
* This structure is used by all FCoE drivers. It contains information
* needed by all FCoE low-level drivers (LLDs) as well as internal state
......@@ -119,18 +119,18 @@ struct fcoe_ctlr {
spinlock_t lock;
};
/*
* struct fcoe_fcf - Fibre-Channel Forwarder.
* @list: list linkage.
* @time: system time (jiffies) when an advertisement was last received.
* @switch_name: WWN of switch from advertisement.
* @fabric_name: WWN of fabric from advertisement.
* @fc_map: FC_MAP value from advertisement.
* @fcf_mac: Ethernet address of the FCF.
* @vfid: virtual fabric ID.
* @pri: seletion priority, smaller values are better.
* @flags: flags received from advertisement.
* @fka_period: keep-alive period, in jiffies.
/**
* struct fcoe_fcf - Fibre-Channel Forwarder
* @list: list linkage
* @time: system time (jiffies) when an advertisement was last received
* @switch_name: WWN of switch from advertisement
* @fabric_name: WWN of fabric from advertisement
* @fc_map: FC_MAP value from advertisement
* @fcf_mac: Ethernet address of the FCF
* @vfid: virtual fabric ID
* @pri: selection priority, smaller values are better
* @flags: flags received from advertisement
* @fka_period: keep-alive period, in jiffies
*
* A Fibre-Channel Forwarder (FCF) is the entity on the Ethernet that
* passes FCoE frames on to an FC fabric. This structure represents
......@@ -161,8 +161,8 @@ void fcoe_ctlr_link_up(struct fcoe_ctlr *);
int fcoe_ctlr_link_down(struct fcoe_ctlr *);
int fcoe_ctlr_els_send(struct fcoe_ctlr *, struct fc_lport *, struct sk_buff *);
void fcoe_ctlr_recv(struct fcoe_ctlr *, struct sk_buff *);
int fcoe_ctlr_recv_flogi(struct fcoe_ctlr *, struct fc_lport *lport,
struct fc_frame *fp, u8 *sa);
int fcoe_ctlr_recv_flogi(struct fcoe_ctlr *, struct fc_lport *,
struct fc_frame *, u8 *);
/* libfcoe funcs */
u64 fcoe_wwn_from_mac(unsigned char mac[], unsigned int, unsigned int);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册