linux-yocto/Documentation/ABI/testing/sysfs-bus-fcoe
Robert Love 6a891b071b libfcoe, fcoe, bnx2fc: Add new fcoe control interface
This patch does a few things.

1) Makes /sys/bus/fcoe/ctlr_{create,destroy} interfaces.
   These interfaces take an <ifname> and will either
   create an FCoE Controller or destroy an FCoE
   Controller depending on which file is written to.

   The new FCoE Controller will start in a DISABLED
   state and will not do discovery or login until it
   is ENABLED. This pause will allow us to configure
   the FCoE Controller before enabling it.

2) Makes the 'mode' attribute of a fcoe_ctlr_device
   writale. This allows the user to configure the mode
   in which the FCoE Controller will start in when it
   is ENABLED.

   Possible modes are 'Fabric', or 'VN2VN'.

   The default mode for a fcoe_ctlr{,_device} is 'Fabric'.
   Drivers must implement the set_fcoe_ctlr_mode routine
   to support this feature.

   libfcoe offers an exported routine to set a FCoE
   Controller's mode. The mode can only be changed
   when the FCoE Controller is DISABLED.

   This patch also removes the get_fcoe_ctlr_mode pointer
   in the fcoe_sysfs function template, the code in
   fcoe_ctlr.c to get the mode and the assignment of
   the fcoe_sysfs function pointer to the fcoe_ctlr.c
   implementation (in fcoe and bnx2fc). fcoe_sysfs can
   return that value for the mode without consulting the
   LLD.

3) Make a 'enabled' attribute of a fcoe_ctlr_device. On a
   read, fcoe_sysfs will return the attribute's value. On
   a write, fcoe_sysfs will call the LLD (if there is a
   callback) to notifiy that the enalbed state has changed.

This patch maintains the old FCoE control interfaces as
module parameters, but it adds comments pointing out that
the old interfaces are deprecated.

Signed-off-by: Robert Love <robert.w.love@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
2012-12-14 10:38:54 -08:00

4.5 KiB

What: /sys/bus/fcoe/ Date: August 2012 KernelVersion: TBD Contact: Robert Love robert.w.love@intel.com, devel@open-fcoe.org Description: The FCoE bus. Attributes in this directory are control interfaces. Attributes:

ctlr_create: 'FCoE Controller' instance creation interface. Writing an
	     <ifname> to this file will allocate and populate sysfs with a
	     fcoe_ctlr_device (ctlr_X). The user can then configure any
	     per-port settings and finally write to the fcoe_ctlr_device's
	     'start' attribute to begin the kernel's discovery and login
	     process.

ctlr_destroy: 'FCoE Controller' instance removal interface. Writing a
	       fcoe_ctlr_device's sysfs name to this file will log the
	       fcoe_ctlr_device out of the fabric or otherwise connected
	       FCoE devices. It will also free all kernel memory allocated
	       for this fcoe_ctlr_device and any structures associated
	       with it, this includes the scsi_host.

What: /sys/bus/fcoe/devices/ctlr_X Date: March 2012 KernelVersion: TBD Contact: Robert Love robert.w.love@intel.com, devel@open-fcoe.org Description: 'FCoE Controller' instances on the fcoe bus. The FCoE Controller now has a three stage creation process. 1) Write interface name to ctlr_create 2) Configure the FCoE Controller (ctlr_X) 3) Enable the FCoE Controller to begin discovery and login. The FCoE Controller is destroyed by writing it's name, i.e. ctlr_X to the ctlr_delete file.

Attributes:

fcf_dev_loss_tmo: Device loss timeout peroid (see below). Changing
		  this value will change the dev_loss_tmo for all
		  FCFs discovered by this controller.

mode:		  Display or change the FCoE Controller's mode. Possible
		  modes are 'Fabric' and 'VN2VN'. If a FCoE Controller
		  is started in 'Fabric' mode then FIP FCF discovery is
		  initiated and ultimately a fabric login is attempted.
		  If a FCoE Controller is started in 'VN2VN' mode then
		  FIP VN2VN discovery and login is performed. A FCoE
		  Controller only supports one mode at a time.

enabled:	  Whether an FCoE controller is enabled or disabled.
		  0 if disabled, 1 if enabled. Writing either 0 or 1
		  to this file will enable or disable the FCoE controller.

lesb/link_fail:   Link Error Status Block (LESB) link failure count.

lesb/vlink_fail:  Link Error Status Block (LESB) virtual link
		  failure count.

lesb/miss_fka:    Link Error Status Block (LESB) missed FCoE
		  Initialization Protocol (FIP) Keep-Alives (FKA).

lesb/symb_err:    Link Error Status Block (LESB) symbolic error count.

lesb/err_block:   Link Error Status Block (LESB) block error count.

lesb/fcs_error:   Link Error Status Block (LESB) Fibre Channel
		  Serivces error count.

Notes: ctlr_X (global increment starting at 0)

What: /sys/bus/fcoe/devices/fcf_X Date: March 2012 KernelVersion: TBD Contact: Robert Love robert.w.love@intel.com, devel@open-fcoe.org Description: 'FCoE FCF' instances on the fcoe bus. A FCF is a Fibre Channel Forwarder, which is a FCoE switch that can accept FCoE (Ethernet) packets, unpack them, and forward the embedded Fibre Channel frames into a FC fabric. It can also take outbound FC frames and pack them in Ethernet packets to be sent to their destination on the Ethernet segment. Attributes:

fabric_name: Identifies the fabric that the FCF services.

switch_name: Identifies the FCF.

priority:    The switch's priority amongst other FCFs on the same
	     fabric.

selected:    1 indicates that the switch has been selected for use;
	     0 indicates that the swich will not be used.

fc_map:      The Fibre Channel MAP

vfid:	     The Virtual Fabric ID

mac:         The FCF's MAC address

fka_peroid:  The FIP Keep-Alive peroid

fabric_state: The internal kernel state
	      "Unknown" - Initialization value
	      "Disconnected" - No link to the FCF/fabric
	      "Connected" - Host is connected to the FCF
	      "Deleted" - FCF is being removed from the system

dev_loss_tmo: The device loss timeout peroid for this FCF.

Notes: A device loss infrastructre similar to the FC Transport's is present in fcoe_sysfs. It is nice to have so that a link flapping adapter doesn't continually advance the count used to identify the discovered FCF. FCFs will exist in a "Disconnected" state until either the timer expires and the FCF becomes "Deleted" or the FCF is rediscovered and becomes "Connected."

Users: The first user of this interface will be the fcoeadm application, which is commonly packaged in the fcoe-utils package.