Fibre Channel is a request-response protocol – it’s not a broadcast protocol. Because of that we need some kind of Services that allow device in network to request for certain amount of information, and the service responds back with that information. There are couple of Generic Services used to manage a Fabric Channel network. All of them have unique Well-Known Address (FFFFFx). Let me go through some common Well-Known Addresses (and of course the Fabric Services they represents)
- FFFFFE – Fabric Login Server – Used when a node is connected to a fabric. Before a node can communicate with other nodes in the fabric, it has to have assigned 24-bit Fabric Address (check out my entry about Fibre Channel addressing). In few words – this Service is used to exchange service parameters with the new host and request 24-bit address. I will explain that a little bit more later in this entry.
- FFFFFD – Fabric Controller – This services provides a state change notifications to registered notes. Host is sending state change registration frame to Fabric Controller, to receive RSCN (Registered State Change Notifications). Those are used to notify device that view of the device has changed (for example some device left a fabric, or a new one joined).
- FFFFFC – Directory Server (Name Server) – Once a device receives RSCN (registered state change notification) usually device query the Name server (FFFFC) to find out what has changed in the Fabric view. Also – when a new devices joins the Fabric it has to register itself using FC_CT (Fibre Channel Common Transport) protocol.
- and many more, there are at least 7 other Fabric Services, such as Management Server, Clock Synchronization Server, Security Server, Alias Server, Time Server, or Broadcast Server (used for example for IP over Fibre Channel)
- FLOGI. When a device is connected to the Fabric, it does not know its 24-bit address yet – so until the Fabric Login is executed, the temporary Address is 000000. And that is the address put in the “Source _ID” field in the FC frame header. A device initialize a Fabric Login (FLOGI) with FFFFFE (Fabric Login Server) to exchange service parameters with the fabic. It starts with sending FLOGI, and as a response it gets FLOGI ACC – in witch the Fabric Login Server provides the 24-bit FC address to the FC node. FLOGI ACC gives more details to the host, such as Buffer-tobuffer credits for the device and switch ports.
- PLOGI. Once the device got a 24-bit address it contacts FFFFFC Name Server sending PLOGI (Port Login) and receives PLOGI ACC. Port login is used to establish a session between two devices and it is necessary before any upper level communication can take place. In this phase the switch will write the information of the device to Name Server – like WW(p)N, WW(n)N, what Class of Service does it support, what Protocol is used in FC-4 layer (usually SCSI or IP) and so on
- Once the host has logged in to the Fabric it communicate that to FFFFFD Fabric Controller sending SCR (Satate Change Registration) in order to receive future RSCNs (registered state change notifications). SCR usually have one of four values:
- SCR = 0 – Register to receive none RSCNs.
- SCR = 1 – Register to receive all RSCN requests issued by the fabric controller for event/issues detects in the fabric
- SCR = 2 – Register to receive all RSCN requests issued for events that affects me (N_Port)
- SCR = 3 – Register to receive all issued RSCNs. For example with SCR=3 device will receive an RSCN when new port is detected in Fabric, where-as for SCR=1, or SCR=2 this RSCN would not be received.