Trying to wrap my head around how Fibre Channel Frames are actually populated and sent through a switched fabric. I Understand WWNN WWPN, WWNN is a WWN of the actual HBA, and WWPN are the WWN of the actually ports on the card. So if a HBA has 4 ports, they all share the same WWNN but have different WWPN. Still not sure where WWNN comes into play with the communication in a fabric though. Secondly, the FLOGI Process by which a new N_port node tries to login to the fabric and get assigned a dynmic FCID. There after a PLOGI is done so the N-port node can submit it's WWPN. This maintains a WWPN to FCID relationship....

Lastly, FC addressing is a combination of a domain ID, area ID, and port ID. All 8bits. My understanding is it is used to locate where in a fabric a interface is? So if i have two switches domain 1 and domain 2, 0100000 would mean first switch area 00 and port 00?

Furthermore I am still unsure of how a host sends to another host. Looking at a FC frame there are fields for Destination ID and Source ID which are 24-bit FC addresses or FCIDs. My question is do these DestID and SourceID get populated by the host HBA or by the FC switch?? I thought a host only knew it's own WWNN and WWPN from the HBA?

Secondly I don't see anywhere in the Fibre Channel frame where WWNN or WWPN come in to play. Unless they are only used in the FLOGI and PLOGI process to obtain a dynamic FCID.

Thanks for your help. Appreciate it.

PS I am using a Cisco MDS and on our hosts fcinfo to gather information, I cannot see a way to get the FCID using fcinfo on each host? That is why i am confused if the host maintains a list of destination FCIDs or not.

Also, for directly connected hosts, no switch involvment, do the hosts FLOGI into each other?

  • Without any knowledge about this topic, the text looks a bit like this "WWN WWNN, WWPN WWW FCID HBA ..." Aug 22, 2013 at 20:50

2 Answers 2


At the beginning host knows WWNN and WWPN.

Well, forget WWNN. WWNN, theoretically, should be the same on all ports of all HBAs of a computer, but this is rarely the case. Usually it is the same on one HBA, but I've seen a case of multiport HBA with multiple WWNNs. So it's a bit of a mess.

Upon logging to fabric (FLOGI/PLOGI), host gets to know its P_ID from the switch. And switch learns WWPN/WWNN from the host. Hence switches know which WWPN is assigned one-to-one to which 24-bit P_ID.

Host during the normal operation queries the switch, for example:

  • which WWPNs am I allowed to communicate to?
  • what is the current P_ID of WWPN that I remember as my block device (my hard disk)?

Many people think that WWPN works similarly to MAC address, because the numbers look "similar". They have almost nothing in common and play different roles.

WWPN or WWNN is never used as an address; P_ID is. In DNS and IP analogy, WWPN is sort of like my.node.com: it identifies the address (, but does not serve as an address during the actual communication; does. In FC, P_ID would be the actual address used in the frames.

This is not a perfect analogy. WWPN is not quite as human-readable as DNS name. And P_ID is a bit more useful than IP, as its very format helps the FC switches to quickly find out how to handle the frame. Anyway this is the large picture.

By the way, there is nothing similar to MAC address in FC (good for us!) - there is no low-level addressing beneath P_ID addressing.

  • Is there a way to see the PID of a host from the host? Are the PIDs of remote devices kept locally? For instance if nodeA wants to send to nodeB, does nodeA know nodeB's PID? Also if WWNN WWPN don't have anything to do with FC frame transfers, how do Ppoint-to-point links work? Does each node login to each other?
    – Jim
    Aug 23, 2013 at 1:26
  • Yes, NodeA queries switch and then it keeps locally the current P_ID of the NodeB. It is possible to see own P_ID, but it depends on OS used. Point-to-point without a switch doesn't need PLOGI/FLOGI/WWNN/WWPN/P_ID: everything we see on the wire is adressed to us, everything we send is addressed to NodeB, we can't be mistaken, so we don't need any adressing.
    – kubanczyk
    Aug 23, 2013 at 18:43
  • Is there a FC frame type that is sent from a new Node to figure out what other Nodes are on the Fabric? For instance I know our FC Targets can see other WWPN of Nodes in the same zone, I am just wondering how the Target discovers them? Does it send a FC broadcast or something? I heard this has something to do with the FC Switches Names server?
    – Jim
    Aug 28, 2013 at 15:01
  • No broadcast. Node sends a query frame to the address 0xFFFFFC. Each switch usually listens on this addres, so the first switch which receives such frame responds. The response is a list of: P_ID, WWNN, and WWPN. Also, there is another optional mechanism called RSCN, where the switch itself sends a frame to the node after any new WWN appears on the list.
    – kubanczyk
    Aug 29, 2013 at 19:48

Caveat - I don't know the MDS stuff newer (FC-SW etc) stuff changes some of this but it's a (hideously) backwards compatible protocol so...

My understanding is that FC always looks like a loop to the devices on it. There can be more than one device per loop but FC itself has no concept of routing or switching, that's all handled by the switches (or other tricks but not inside "normal" FC frames, no support for VLAN tagging etc, well maybe with FC-SW).

Domains are logical groups of these loops.

The Wikipedia page is actually quite good.

  • "FC itself has no concept of routing or switching"... Well, actually, if you compare either FC routing or switching to the IP world, then it becomes clear that FC has a really clean and consistent approach, and IP stack is an over-complicated and largely antiquated mess.
    – kubanczyk
    Aug 22, 2013 at 21:08
  • 1
    I agree if you change IP to IPv4. IPv6 is much closer to FC. The difference is that (at least in traditional FC) you won't have more than 127 end points. And IPv4 does not do switching either, that's done on the ethernet level. Aug 23, 2013 at 13:49
  • Agree with IPv4 remark. But 127 endpoints in FC? No. You are talking about outdated fabric-less mode called a "private loop". In traditional fabric, 2^24 minus a small reserved pool.
    – kubanczyk
    Aug 23, 2013 at 18:47
  • I am not sure what you define as a "traditional" fabric is, I was talking about FC-AL, it sounds like you are only talking about FC-SW which is relatively new. Aug 23, 2013 at 18:57
  • Both were put to production use in previous millennium.
    – kubanczyk
    Aug 24, 2013 at 8:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.