From: Robert Love <robert.w.love@intel.com>
To: James.Bottomley@suse.de, linux-scsi@vger.kernel.org
Cc: Robert Love <robert.w.love@intel.com>,
Chris Leech <christopher.leech@intel.com>Robert Love
<robert.w.love@intel.com>
Subject: [PATCH 01/12] libfcoe: Don't fill MAC desc in FLOGI if FIP negotiated FPMA
Date: Fri, 09 Apr 2010 14:22:17 -0700 [thread overview]
Message-ID: <20100409212217.1968.29837.stgit@localhost.localdomain> (raw)
In-Reply-To: <20100409212212.1968.59251.stgit@localhost.localdomain>
FPMA indicates that the Fabric will provide the host's
N_Port's MAC address. When sending a FLOGI/FDISC frame
and FPMA was negotiated through FIP discovery we still
need to provide the MAC descriptor, as per the
specification, but the MAC should be zero'd out since
the FCF will be providing it in the FLOGI/FDISC ACC.
In FC-BB-5 section 7.8.7.4.2 (Fabric login) it states:
The MAC address field in the MAC address descriptor of a FIP FLOGI
Request operation or a FIP NPIV FDISC Request operation shall contain:
a) the proposed MAC address to use as VN_Port MAC address if the ENode
is requesting to use SPMA (see table 27);
b) all zeroes to indicate no MAC address is proposed if the ENode is
requesting to use FPMA (see table 27); or
c) the proposed MAC address to use as VN_Port MAC address if the ENode
supports both SPMA and FPMA and leaves the decision of which
addressing scheme to use to the FCF (i.e., if both the FP and SP
bits are set to one, see table 27).
This patch fixes case B.
This patch also adds debug statements to illustrate
whether a FPMA or SPMA MAC is added to a FLOGI/FDISC
frame.
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: Chris Leech <christopher.leech@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
---
drivers/scsi/fcoe/libfcoe.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/fcoe/libfcoe.c b/drivers/scsi/fcoe/libfcoe.c
index ff5ccba..de5c329 100644
--- a/drivers/scsi/fcoe/libfcoe.c
+++ b/drivers/scsi/fcoe/libfcoe.c
@@ -442,10 +442,15 @@ static int fcoe_ctlr_encaps(struct fcoe_ctlr *fip, struct fc_lport *lport,
memset(mac, 0, sizeof(mac));
mac->fd_desc.fip_dtype = FIP_DT_MAC;
mac->fd_desc.fip_dlen = sizeof(*mac) / FIP_BPW;
- if (dtype != FIP_DT_FLOGI && dtype != FIP_DT_FDISC)
+ if (dtype != FIP_DT_FLOGI && dtype != FIP_DT_FDISC) {
memcpy(mac->fd_mac, fip->get_src_addr(lport), ETH_ALEN);
- else if (fip->spma)
+ } else if (fip_flags & FIP_FL_SPMA) {
+ LIBFCOE_FIP_DBG(fip, "FLOGI/FDISC sent with SPMA\n");
memcpy(mac->fd_mac, fip->ctl_src_addr, ETH_ALEN);
+ } else {
+ LIBFCOE_FIP_DBG(fip, "FLOGI/FDISC sent with FPMA\n");
+ /* FPMA only FLOGI must leave the MAC desc set to all 0s */
+ }
skb->protocol = htons(ETH_P_FIP);
skb_reset_mac_header(skb);
next prev parent reply other threads:[~2010-04-09 21:22 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-09 21:22 [PATCH 00/12] Updates to libfc, libfcoe, fcoe and fnic Robert Love
2010-04-09 21:22 ` Robert Love [this message]
2010-04-09 21:22 ` [PATCH 02/12] fcoe: reset FIP ctlr link state on disable/enable Robert Love
2010-04-09 21:22 ` [PATCH 03/12] fcoe: check netif operstate instead of IFF_UP & link state Robert Love
2010-04-09 21:22 ` [PATCH 04/12] libfc: remove unneeded variables in fc_exch_recv_req() Robert Love
2010-04-09 21:22 ` [PATCH 05/12] libfc: fix hton24 macro to take expressions as args Robert Love
2010-04-09 21:22 ` [PATCH 06/12] fnic: Update version to 1.4.0.145 Robert Love
2010-04-09 21:22 ` [PATCH 07/12] fnic: Change fnic_flush_tx() to flush tx instead of rx queue Robert Love
2010-04-09 21:22 ` [PATCH 08/12] fcoe: removes unused shost in fcoe_shost_config Robert Love
2010-04-09 21:22 ` [PATCH 09/12] fcoe, fnic, libfc: increased CDB size to 16 bytes for fcoe Robert Love
2010-04-09 21:23 ` [PATCH 10/12] libfc: bug in erroring out upon FCP_RSP_LEN_VAL in fc_fcp_resp Robert Love
2010-04-09 21:23 ` [PATCH 11/12] libfc: set both precision and field with when printing FC IDs Robert Love
2010-04-09 21:23 ` [PATCH 12/12] libfc, fcoe: normalize format specifies for world wide names Robert Love
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100409212217.1968.29837.stgit@localhost.localdomain \
--to=robert.w.love@intel.com \
--cc=James.Bottomley@suse.de \
--cc=christopher.leech@intel.com \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox