[Open-FCoE] [PATCH 0/3] Follow-on patches to "adding support to FCoE transport"

Zou, Yi yi.zou at intel.com
Tue Jan 4 23:32:33 UTC 2011

> These are follow-on patches to Yi's patches for adding support
> to FCoE transport.
Sorry for late reply, just got time to read your comments after
the holiday.

> This patch fixes the following issues:
> 1. bugs w.r.t locking and is_vendor check.

> 2. Since we are using the same 'fcoe' service for software fcoe as
> well as vendor drivers(bnx2fc for eg.), some interfaces will be
> claimed by bnx2fc and some interfaces will be claimed by fcoe
> driver.  This may cause some confusion to the administrator,
> as he cannot control which interfaces should be claimed by which
> driver.
> 3. match() assumes that the netdev/driver mapping shall remain intact.
> This may not be true. Lets say, 'fcoe' is the only driver loaded
> initially, and create is called on that. Subsequently, 'bnx2fc' driver
> is loaded, which may claim the interface. Destroy will be called on
> bnx2fc driver instead of fcoe.
> 4. Currently we do not have a mapping for create and corresponding
> destroy/disable or enable.
Yeah, the DRIVER_NAME in cfg-ethx will simplify things a lot as using
fcoe_netdev list is simpler. That netdev map list is really per fcoe
transport, but keeping it global to libfcoe won't hurt either I think.

For the "if_name:drv_name", however, we must also consider running 
open-fcoe stack w/ older fcoe-utils that does not have drv_name, in
which case we probably should fill fcoe_parse_buffer() with the default
name "fcoe" when no token of ":" is found so older config (or new config
that does not care for a hw hba) that uses fcoe.ko can still work.

I was hoping the match() would provide the flexibility to the vendor
to make sure the association of if_name w/ the drv_name is valid, e.g.
you can assign vendor1's driver to vendor2's interface. But, I guess
the ft->create() would fail in this case to serve as an indication
of the wrong association in the cfg-ethx.

> Bhanu Prakash Gollapudi (3):
>   Resolve circular lock warning and is_vendor check
>   libfcoe: transport structure lookup based on driver name
>   fcoe: Remove match() and is_vendor fields in fcoe_transport structure
Cool, if it's ok w/ you, I can merge the three patches into the original
series and repost as RFC v2, I will fix the fcoe_parse_buffer() as mentioned
above, and your v2 of bnx2fc patches should not be affected.


>  drivers/scsi/fcoe/fcoe.c              |   17 +--
>  drivers/scsi/fcoe/libfcoe.h           |    2 +-
>  drivers/scsi/fcoe/libfcoe_transport.c |  200 ++++++++++++++++++++++++---
> -----
>  include/scsi/libfcoe.h                |   14 ++-
>  4 files changed, 166 insertions(+), 67 deletions(-)

More information about the devel mailing list