Skip to content

RFC Reorganize libfcoe control interfaces

Robert Love linux-scsi netdev 1 version In review

Get series with b4
b4 am 20120910225908.13140.97277.stgit@fritz

Versions newest first

  1. v1 RFC Latest5 patches 16 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5libfcoe, fcoe: Allow user to set a ctlr's modeDocumentation/ABI/testing/sysfs-bus-fcoe drivers/scsi/fcoe/fcoe_ctlr.c drivers/scsi/fcoe/fcoe_sysfs.c +2 more+91 -23 replies
2/5libfcoe: Create new libfcoe control interfacesDocumentation/ABI/testing/sysfs-bus-fcoe drivers/scsi/fcoe/fcoe.h drivers/scsi/fcoe/fcoe_ctlr.c +4 more+250 -51 reply
3/5fcoe: Use new fcoe_sysfs control interfacedrivers/scsi/fcoe/fcoe.c+115 -1140 replies
4/5bnx2fc: Use new fcoe_sysfs control interfacedrivers/scsi/bnx2fc/bnx2fc_fcoe.c+60 -381 reply
5/5libfcoe, fcoe: Remove libfcoe module parametersdrivers/scsi/fcoe/fcoe_transport.c include/scsi/libfcoe.h+1 -2170 replies

Reviews trailers per patch

1 of 5 patches has a Reviewed-by or Acked-by.

PatchGreg Kroah-Hartman
1/5A-b
2/5
3/5
4/5
5/5

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [RFC PATCH 0/5] Reorganize libfcoe control interfaces

The following series implements a move from using module parameters as control interfaces to /sys/bus/fcoe based interfaces. A sysfs infrastructure was added to the kernel a few cycles ago, this series builds on that work.

It moves the create, vn2vn_create, destroy, enable and disable interfaces from /sys/module/libfcoe/parameters/ to various places under /sys/bus/fcoe/. These interfaces simply are not module configurations- they are control interfaces.

A second goal of this series is to change the initialization sequence for a FCoE device. The result of this series is that interfaces created using libfcoe.ko interfaces (i.e. fcoe.ko or bnx2fc.ko) will have the following starting steps-

1) Create/alloc the port
- Allocate kernel memory and create per-instance sysfs devices
- No discovery or login

2) Configure the port
- Change mode, set ddp_min, etc...

3) Start the port
- Begins discovery and/or login (depending on mode)

4) Destroy the port
- Logout and free all memory

I'm looking for feedback on using sysfs files as control interfaces that the user (application) would write interface names to. I modeled this series off of the bonding sysfs interface, but it was suggested to me that it might not be a good example. I belive bonding uses two values per-file a '+' or a '-" to add or delete and then the ifname apended. I am simply writing the ifname to the ctlr_create or ctlr_destroy.

Series compiled and tested against v3.5. libfcoe.ko compile warning fixed upstream after v3.5, anyone who compiles this can ignore section mismatch warning. Also note that a modified fcoemon is needed to use the fcoe system service against this kernel modification. I'd be happy to provide that fcoemon code on request.

---

Robert Love (5):
libfcoe, fcoe: Allow user to set a ctlr's mode
libfcoe: Create new libfcoe control interfaces
fcoe: Use new fcoe_sysfs control interface
bnx2fc: Use new fcoe_sysfs control interface libfcoe, fcoe: Remove libfcoe module parameters

 Documentation/ABI/testing/sysfs-bus-fcoe |   51 +++++++
 drivers/scsi/bnx2fc/bnx2fc_fcoe.c        |   98 ++++++++-----
 drivers/scsi/fcoe/fcoe.c                 |  229 +++++++++++++++---------------
 drivers/scsi/fcoe/fcoe.h                 |    9 +
 drivers/scsi/fcoe/fcoe_ctlr.c            |   24 +++
 drivers/scsi/fcoe/fcoe_sysfs.c           |  139 ++++++++++++++++++
 drivers/scsi/fcoe/fcoe_transport.c       |  174 ++++-------------------
 include/scsi/fcoe_sysfs.h                |    5 +
 include/scsi/libfcoe.h                   |   20 ++-
 9 files changed, 445 insertions(+), 304 deletions(-)
Signature · 1 line
Thanks, //Rob