Port Types and Initialization Process

In SAN environment, every port has to go through initialization process. During that process every port is categorized under specific type. Depends if the port is a device port – it can become N_Port or NL_Port. If it’s a switch port – it usually becomes either U_Port, F_Port or E_Port. Let me go through port types with short explanation.

Port Types

Device Ports

  • N_Port – Node Port – a Fabric device directly attached. Such device can be either an initiator or a target. In storage world targets are storage arrays, and initiators are hosts/servers.
  • NL_Port – Node Loop Port – a device attached to a loop. The device has an arbitrated loop code, and switched fabric code in its code base. As a consequence, once the device finishes the arbitrated loop initialization it starts sending out FLOGI (fabric logins). This process I will explain more carefully in futures post. But in few words – it need to do that to get 24bit fabric address and be able to exist in Switched Fabric environment.

Switch Ports

  • U_Port – Universal Port. U_Port means that the Port does not have a topology assigned yet, it is basically waiting to become another port type. Normally when nothing is attached to a port it is a U_Port.
  • FL_Port – Fabric Loop Port. A switch port becomes FL_Port only when it is directly connected to NL_Port on the device side.
  • G_Port – Generic Port. It is a state through-out Port Initialization before a port can become either a F_Port or E_Port. If a port stayed as a G_Port there is probably some issue during Port Initialization
  • F_Port – Fabric Port. It means that the port is connected to a  Full Fabric device – so to a N_Port. In other words F_Port means that this port is directly connected to either a initiator or target.
  • E_Port – Expansion Port. This kind of port is used for inter-switch links (ISL). It is the connection between two switches.

Port Initialization Process

Port Initialization Process

Port Initialization Process

(Click on the diagram to see it in better resolution.)

  1. Port Initialization Process becomes from the U_Port (called a State1).
  2. If the port can detect that something is connected (something is sending a signal to the port), it goes through the first transaction.
  3. During the Transaction1 port is transmitting at least 12 Primitive Sequences LIP(F7) – as a try for  arbitrated loop initialization sequence.
  4. If the port receives at least 3 consecutive pritimite sequences,  the port is going through the arbitrated loop initialization, becoming a FL_Port (State2)
  5. If the attached device is not a loop, the initialization continues into the G_Port stage (state3).
  6. If the attached device is a initiator or a target – the port state is changing from G_Port to F_Port (state5). And it is waiting for the Fabric Login to be received.
  7. If the attached device is another switch, then the port changes its state from G_Port to E_Port (state4)

Of course this is just a high overview of the initialization process.

Leave a Reply

Your email address will not be published. Required fields are marked *