Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f3da80e7 authored by Yi Zou's avatar Yi Zou Committed by James Bottomley
Browse files

[SCSI] libfcoe: add tracking FIP Missing Discovery Advertisement count



Add tracking the Missing Discovery Advertisement count for FIP Fiber Channel
Forwarder (FCF) as described in FC-BB-5 Rev2.0 for LESB. The time is 1.5 times
the FKA_ADV_PERIOD of the corresponding FCF.

Signed-off-by: default avatarYi Zou <yi.zou@intel.com>
Signed-off-by: default avatarRobert Love <robert.w.love@intel.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
parent 2ec8493f
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -562,14 +562,28 @@ EXPORT_SYMBOL(fcoe_ctlr_els_send);
 * times its keep-alive period including fuzz.
 *
 * In addition, determine the time when an FCF selection can occur.
 *
 * Also, increment the MissDiscAdvCount when no advertisement is received
 * for the corresponding FCF for 1.5 * FKA_ADV_PERIOD (FC-BB-5 LESB).
 */
static void fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip)
{
	struct fcoe_fcf *fcf;
	struct fcoe_fcf *next;
	unsigned long sel_time = 0;
	unsigned long mda_time = 0;

	list_for_each_entry_safe(fcf, next, &fip->fcfs, list) {
		mda_time = fcf->fka_period + (fcf->fka_period >> 1);
		if ((fip->sel_fcf == fcf) &&
		    (time_after(jiffies, fcf->time + mda_time))) {
			mod_timer(&fip->timer, jiffies + mda_time);
			fc_lport_get_stats(fip->lp)->MissDiscAdvCount++;
			printk(KERN_INFO "libfcoe: host%d: Missing Discovery "
			       "Advertisement for fab %llx count %lld\n",
			       fip->lp->host->host_no, fcf->fabric_name,
			       fc_lport_get_stats(fip->lp)->MissDiscAdvCount);
		}
		if (time_after(jiffies, fcf->time + fcf->fka_period * 3 +
			       msecs_to_jiffies(FIP_FCF_FUZZ * 3))) {
			if (fip->sel_fcf == fcf)