]> git.baikalelectronics.ru Git - kernel.git/commit
fcoe: adds spma mode support
authorVasu Dev <vasu.dev@intel.com>
Sun, 17 May 2009 12:33:28 +0000 (12:33 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 18 May 2009 04:04:08 +0000 (21:04 -0700)
commitaf1d92796a084d9dd807a9c6b55ed126c2320529
tree63c227d4d92dc35269214ecae4654778f966a80d
parent661bd978261d60b962361840e43ed79bee5d5b7e
fcoe: adds spma mode support

If we can find a type NETDEV_HW_ADDR_T_SAN mac address from the
corresponding netdev for a fcoe interface then sets up added the
fc->ctlr.spma flag and stores spma mode address in ctl_src_addr.

In case the spma flag is set then:-

 1. Adds spma mode MAC address in ctl_src_addr as secondary
    MAC address, the FLOGI for FIP and pre-FIP will go out
    using this address.
 2. Cleans up stored spma MAC address in ctl_src_addr in
    fcoe_netdev_cleanup.
 3. Sets up spma bit in fip_flags for FIP solicitations along
    with exiting FPMA bit setting.
 4. Initialize the FLOGI FIP MAC descriptor to stored spma
    MAC address in ctl_src_addr. This is used as proposed
    FCoE MAC address from initiator along with both SPMA
    and FPMA bit set in FIP solicitation, in response the
    switch may grant any FPMA or SPMA mode MAC address to
    initiator.

Removes FIP descriptor type checking against ELS type
ELS_FLOGI in fcoe_ctlr_encaps to update a FIP MAC descriptor,
instead now checks against FIP_DT_FLOGI.

I've tested this with available FPMA-only FCoE switch but
since data_src_addr is updated using same old code for
both FPMA and SPMA modes with FIP or pre-FIP links, so added
SPMA mode will work with SPMA-only switch also provided that
switch grants a valid MAC address.

Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: Yi Zou <yi.zou@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/scsi/fcoe/fcoe.c
drivers/scsi/fcoe/libfcoe.c
include/scsi/libfcoe.h