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
