[Open-FCoE] [PATCH 00/28] rport/lport/ns rework

Robert Love robert.w.love at intel.com
Tue Sep 30 18:24:46 UTC 2008

The following series implements a change to the rport and lport state machines and
applies a locking strategy to that state machine.

1) A callback function is added to the LP for RP events (READY, FAILED, LOGO)
2) GNN_ID and GPN_ID are removed, rport state machine starts at PLOGI
   - uses a dummy rport until PLOGI response
3) A READY state is added to the RP state machine
4) The RP and LP state machines locking has been given a strategy
5) RP only has one error/retry handling routine
6) LP only has one error/retry handling routine
7) Naming conventions are changed
    rport (remote port) = fc_rport pointer
    rdata (remote port private) = fc_rport_libfc_priv pointer
    lport (local port) = fc_lport_pointer
8) All interaction with scsi_transport_fc happens in fc_rport.c. Users of
   the RP state machine only create dummy rports and call rport_login(),
   the RP state machine deals with adding to the transport layer and
   deleting correctly.

There are some issues that I've found while working on this patch that will
need to be fixed.

1) probably not cancelling work threads appropriately
2) What happens if discovery fails? Currently it's silent.
   Should discovery be pulled into the lport state machine?
3) reset is broken
4) There needs to be a little more commenting about the locking
5) Some of the #define variables need to be named better. In particular
   I don't like LPORT_RPORT_EV_* or the function lport_rport_event().


More information about the devel mailing list