Re: FC transport: Calling fc_remote_port_add for online port

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 26, 2009 at 12:41:00PM -0400, James Smart wrote:
> The LLD should never be calling fc_remote_port_add() twice without an  
> intervening fc_remote_port_delete(). Which is another way of saying -  
> yes, it's what you say relative to the rport state values.
>
> The idea is - the LLD is tracking an external port structure, using  
> <portid, <wwnn,wwpn>> to track identity, and is keeping a "present" and  
> "not-present" case. If a new port is deemed "present", it calls  
> fc_remote_port_add() and when connectivity  is lost (aka goes to "not  
> present") to that port, it calls fc_remote_port_delete(). It should be  
> very straight forward.
>
> The rport structure itself, to aid the midlayer,  to hide temporary  
> connectivity losses due to link bounces, controller resets, etc - may  
> stay around after the delete call, and midlayer calls may enter the  
> driver for it, but the transport via helper functions, should pick them  
> off and reject them. Eventually, when the rport exceeds its max  
> connectivity loss hide value (devloss_tmo), the devloss_tmo_callbk() is  
> made to tell the driver the rport is truly gone (if it cares), and all  
> the midlayer structures and scsi objects below the rport are terminated.  
>  After this point, for target id bindings, we keep the rport structure 
> around - but only as a generic container to hold the binding values. For 
> all intents and purposes, there's no relationship to the old rport or the 
> old rport pointer value any more.  And if a port eventually comes back 
> that matches the bindings, we flip the binding container back into a real 
> rport structure as if we had just allocated it.
>
> -- james s

Thanks for clarifying this. So a LLD has to always follow the
add-delete sequence.

BTW: I think it could be useful to have this information about the
interface between LLD and FC transport in
Documentation/scsi/scsi_fc_transport.txt

--
Christof Schmitt
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux