FLOGI, PLOGI, and PRLI

Amr Ibrahim Enan is a Global Knowledge instructor who teaches and blogs from Global Knowledge Egypt.

When you connect your server or storage, it will send a Fabric login (FLOGI) request. This FLOGI request serves two purposes:

  • Fibre Channel ID is the WWPN connection to this port from the FLOGI server
  • Exchange buffer credits with the switch

To better understand the first function, it is exactly the same if I rewrite it as, “request an IP address for a MAC address from the DHCP server”.

Yes, that’s right, FCID in the FC world is more or less the same as an IP address in the networking world. An IP address has two main IDs. The network ID is unique to devices that exist in the same Layer 2 domain, and the host ID is unique to each host.

FCID has two main parts: the Domain ID is unique for all devices that are connected to the same switch, and the Port ID is unique to  each device connected to the same switch.

If you connect your laptop to your network, what is the first thing it will do? It will request an IP address so that it can communicate with other devices. In order to do so, it will send a DHCP BC frame that contains the MAC address. The equivalent to MAC in the FC world is WWPN, and the equivalent to a DHCP server is the LOGIN server (a service running inside the FC switch).

LOGIN server is a service running inside each storage switch. It is responsible for providing a unique FCID to each device connected to your switch, just like the DHCP provides each network host with a unique IP address.

FLOGI is functional in that it provides the buffer credit exchange between server and switch.

The FC is lossless, and the way it achieves this is on a link-by-link basis, meaning that the two devices on the same link will exchange buffer credits with each other, but why?

Checking the above figure, you’ll see that the TX (Server) now knows that the maximum number of frames RX (Switch) can hold in the buffer is 4. It will then send another variable called BB_Credit_CNT. At the login, it will send its value to 0 and whenever the TX sends a frame to the RX, the value will increase by 1. Then TX can send frames to RX until the value of BB_Credit_CNT is less than the BB_Credit. When a buffer space is offloaded on the RX side, an upper layer RX will send the TX a RDY frame. When the TX receives that frame it will decrease the value of BB_Credit_CNT by one and be able to send one more frame to TX.

All of this is what makes FC lossless. No frame will be sent from one device to another unless it was a switch to switch or server to switch.

Port Login (PLOGI)

After each device finishes the FLOGI phase, they now each have their own FCID. But they don’t know how to reach other devices connected to the same switch or connected to other switches in the fabric. In order to communicate with other devices, each device will need to do PLOGI.

There’s another service running inside the switch called Name server. When any device registers with this server, it sends its WWPN map to its FCID. The Name server will expose that device and all the register requests it receives this way can communicate with each other.

And Finally Process Login (PRLI)

As the two devices can now communicate with each other using the FC network SCSI, communication now takes place between the two devices. The SCSI has two main operations which are SCSI read or SCSI write.

In my next post, I’ll demonstrate a communication scenario between server and storage and explain some advanced configuration options that network engineers will be interested in.

Subscribe

Never miss another article. Sign up for our newsletter.

In this article

Join the Conversation

11 comments

  1. dariusaks Reply

    Great explanation about FLogi, but PLogi and PRlogi could have been elaborated like FLogi..

  2. Rajeev Reply

    Excellent. Always had trouble understanding FLOGI, PLOGI and PRLI concepts and its relevance. Comparison to network world was helpful. Thank you.

  3. srinivas Reply

    Excellent!!!!!!!

  4. shylender Reply

    wow!!! wonderful explanation about flogi,plogi and prli before this i was little bit confused but now it is cleared thanks for this blog…

  5. Drashti Desai Reply

    Very very well explained FLOGI and PLOGI…PRLI need still more explaination

    1. John Mark Ivey Reply

      PRLI simply establishes communication between two FC-4 layer processes (SCSI), between two different N_Ports. For more info, you could check out Cisco’s https://learningnetwork.cisco.com

  6. Arpit Roy Reply

    Good explanation. Thanks!

  7. Atul Anand Reply

    Great explanation. Wish you could have explained PLOGI and PRLI in more detail.

  8. Karthik Reply

    For a person from the Ethernet world, these comparisons made the difference! Thank you!

  9. Wale Reply

    Excellent Stuff…

  10. Rahul Katyal Reply

    superb explanation !