Network and Storage Protocols

Difference between HBA portname and WWPN

KRISH_ROCKS
9,090 Views

Hey Guys,

Trying to understand difference between HBA portname and WWPN.  Please check the below  output from a Linux host having Emulex HBA:

**************

# systool  -c scsi_host -v host1

  Class Device = "host1"

  Class Device path = "/sys/class/scsi_host/host1"

    board_online        = "1"

    cmd_per_lun         = "3"

    ctlreg              =

    disc_adisc          = "ADISC  list: Empty"

    disc_map            = "Map    list: 2 Entries

DID 161def WWPN 50:06:01:63:39:a0:41:cb WWNN 50:06:01:60:b9:a0:41:cb

    INFO 06:00001807:08:05:00:00:00:00:02

DID 161bef WWPN 50:06:01:6a:39:a0:41:cb WWNN 50:06:01:60:b9:a0:41:cb

    INFO 06:00001807:08:04:01:00:00:00:02"

    disc_npr            = "NPR    list: Empty"

    disc_plogi          = "PLOGI  list: Empty"

    disc_prli           = "PRLI   list: Empty"

    disc_reglgn         = "RegLgn list: Empty"

    disc_unmap          = "Unmap  list: 2 Entries

DID fffffe WWPN 20:6b:00:0d:ec:6e:f0:c0 WWNN 10:00:00:05:1e:34:48:86

    INFO 05:00000006:05:01:ffff:00:00:00:00

DID fffffc WWPN 25:0d:00:0d:ec:6e:f0:c0 WWNN 20:c8:00:0d:ec:6e:f0:c1

    INFO 05:00000006:05:03:ffff:00:00:00:02"

    disc_unused         = "Unused list: Empty"

    events              = "LINK UP   0,1,0,16

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0

--------- 0,0,0,0"

    fabric_name         = "0x100000051e344886"

    fwrev               = "2.72A2 (B2D2.72A2)"

    hdw                 = "1036406d"

    host_busy           = "0"

    info                = "Emulex LP11000 4Gb PCI-X2 Fibre Channel Adapter on PCI bus 06 device 70 irq 225"

    issue_lip           = <store method only>

    lpfc_ack0           = "0"

    lpfc_discovery_min_wait= "3"

    lpfc_discovery_wait_limit= "60"

    lpfc_drvr_version   = "Emulex LightPulse Fibre Channel SCSI driver 8.0.16.47"

    lpfc_enable_hba_heartbeat= "1"

    lpfc_enable_hba_reset= "1"

    lpfc_fcp_bind_method= "2"

    lpfc_fcp_class      = "3"

    lpfc_fdmi_on        = "0"

    lpfc_hba_queue_depth= "2048"

    lpfc_hostmem_hgp    = "0"

    lpfc_link_speed     = "0"

    lpfc_linkdown_tmo   = "0"

    lpfc_linkup_wait_limit= "15"

    lpfc_log_verbose    = "0"

    lpfc_lun_queue_depth= "30"

    lpfc_max_luns       = "256"

    lpfc_nodev_tmo      = "20"

    lpfc_pci_max_read   = "2048"

    lpfc_scan_down      = "1"

    lpfc_soft_wwpn_enable= <store method only>

    lpfc_soft_wwpn      = "0x0"

    lpfc_topology       = "0"

    lpfc_use_adisc      = "0"

    management_version  = "0.0.0"

    modeldesc           = "Emulex LP11000 4Gb PCI-X2 Fibre Channel Adapter"

    modelname           = "LP11000"

    node_name           = "0x20000000c9584cca"

    nport_evt_cnt       = "4"

    num_discovered_ports= "4"

    option_rom_version  = ""

    outfcpio            = "ID 000:qcmd 030c2283 done 030c2283 err 006370e9 slv 018 tx 0000 txc 0000 MAPPED

ID 001:qcmd 034c3c94 done 034c3c94 err 00637f23 slv 018 tx 0000 txc 0000 MAPPED

x0 total I/Os outstanding"

    port_name           = "0x10000000c9584cca"

    port_type           = "N_Port"

    portfcid            = "0x160022"

    portnum             = ""

    proc_name           = "lpfc"

    programtype         = ""

    scan                = <store method only>

    serialnum           = "0000c9584cca"

    sg_tablesize        = "255"

    speed               = "4 Gigabit"

    state               = "Link Up - Ready:

   Fabric"

    unchecked_isa_dma   = "0"

    unique_id           = "1"

    Device = "host1"

    Device path = "/sys/devices/pci0000:04/0000:04:0a.0/0000:06:0e.0/host1"

      detach_state        = "0"

**************

Here it shows WWPN as

lpfc1t00 DID 161def WWPN 50:06:01:63:39:a0:41:cb WWNN 50:06:01:60:b9:a0:41:cb

lpfc1t01 DID 161bef WWPN 50:06:01:6a:39:a0:41:cb WWNN 50:06:01:60:b9:a0:41:cb

Then what's the two additional WWPN listed in the systool output???

DID fffffe WWPN 20:6b:00:0d:ec:6e:f0:c0 WWNN 10:00:00:05:1e:34:48:86

DID fffffc WWPN 25:0d:00:0d:ec:6e:f0:c0 WWNN 20:c8:00:0d:ec:6e:f0:c1

I guess it's a dual port HBA.

When I cat the node_name from following location:

[# cat /sys/class/scsi_host/host1/port_name

0x10000000c9584cca

It's giving a node name of the HBA. I'm confused here! Which one is the actual WWPN that we have to use it for zoning and masking. The above output also shows fabric name. Is this fabric_name same as the switch to which this host/HBA is connected??

Regards,

Krish

2 REPLIES 2

aborzenkov
9,090 Views

You need to use port_name for zoning and masking. Fabric name is internal port wwn assigned by switch and is not used for device to device communication.

KRISH_ROCKS
9,090 Views

Thanks! Yes port_name is the one we have to use for zoing and all. Checked the WWN of port_name with QLogic SAN surfer. Both shows the same WWN for HBA. So we are good. So I guess the other WWN listed the target storage device WWN.

Regards,

Krish

Public