As per FC-LS-2, 

"If the S_ID and D_ID of a LOGO ELS are both Address_Identifiers of
Nx_Ports, the LOGO requests removal of service between the N_Port_ID
specified in the LOGO Payload and the N_Port_ID specified in the D_ID.
The N_Port_ID in the LOGO Payload may differ from the S_ID. This allows
an Nx_Port to Logout its old Identifier using a new Identifier after its
N_Port_ID has changed. Both the source Nx_Port and the destination
Nx_Port of the Logout Request Sequence shall abnormally terminate all
open Exchanges (see 6) that used the N_Port_ID indicated in the Payload
of the Logout Request Sequence."

Ideally, we should be sending LS_ACC for the S_ID, but logout processing
should happen on the N_Port_ID in the LOGO payload.

In fc_rport_recv_logo_req(), we assume S_ID and N_Port_ID are same,
which is probably okay, as we may not have a scenario in the fabric
topology where S_ID and N_Port_Id may differ, as port id changes are
notified by the switch using RSCN.  In a FC_AL private loop topology we
may have this scenario where an N_Port_Id may be different from S_ID in
case where a new N_Port_Id gets assigned to the port. If this is the
only case, we do not have to make any change, as we do not support
private loop.  I'm not able to think of any other scenario.

If any of you think such a scenario exists in fabric topology, guess we
should make this change.

Thanks,
Bhanu


_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel

Reply via email to