A WWN may be employed in a variety of roles, such as a serial number or for addressability; for example, in Fibre Channel networks, a WWN may be used as a WWNN (World Wide Node Name) to identify an endpoint, or a WWPN (World Wide Port Name) to identify an individual port on a switch. Two WWNs which do not refer to the same thing should always be different even if the two are used in different roles, i.e. a role such as WWPN or WWNN does not define a separate WWN space. The use of burned-in addresses and specification compliance by vendors is relied upon to enforce uniqueness.
Each WWN is an 8- or 16-byte number, the length and format of which is determined by the most significant four bits, which are referred to as an NAA (Network Address Authority). The remainder of the value is derived from an IEEE OUI (or from Company Id (CID)) and vendor-supplied information. Each format defines a different way to arrange and/or interpret these components. OUIs are used with the U/L and multicast bits zeroed, or sometimes even omitted (and assumed zero), though CID has U/L set to 1.
The WWN formats include:
- "Original" IEEE formats are essentially a two-byte header followed by an embedded EUI-48 address (which contains the OUI). The first 2 bytes are either hex 10:00 or 2x:xx (where the x's are vendor-specified) followed by the 3-byte OUI and 3 bytes for a vendor-specified serial number. Thus, the difference between NAA 1 format and NAA 2 format is merely the presence of either a zero pad or an extra 3 nibbles of vendor information.
- "Registered" IEEE formats dispense with padding and place the OUI immediately after the NAA. The OUI is no longer considered to be part of a EUI-48 address. For NAA 5 format, this leaves 9 contiguous nibbles for a vendor-defined value. This is the same format used by the companion NAA 6 format, the only difference being a 16-byte number space is assumed, rather than an 8-byte number space. This leaves a total of 25 contiguous nibbles for vendor-defined values.
- "Mapped EUI-64" formats manage to fit an EUI-64 address into an 8-byte WWN. Since the NAA is mandatory, and takes up a nibble, this represents a four-bit deficit. These four bits are recouped through the following tricks: First, two bits are stolen from the NAA by allocating NAAs 12, 13, 14, and 15 to all refer to the same format. Second, the remaining two bits are recouped by omitting the U/L and multicast bits from the EUI-64's OUI. When reconstructing the embedded EUI-64 value, the U/L and multicast bits are assumed to have carried zero values.
WWN addresses are predominantly represented as colon separated hexadecimal octets, MSB-first, with leading zeros — similar to Ethernet's MAC address. However, there is much variance between vendors.
Linux uses WWN to identify disks by providing symbolic links to the real device entry:
ls -l /dev/disk/by-id/ […] lrwxrwxrwx 1 root root 9 Jul 4 22:00 wwn-0x5002e10000000000 -> ../../sr0 lrwxrwxrwx 1 root root 9 Jul 4 22:00 wwn-0x500277a4100c4e21 -> ../../sda lrwxrwxrwx 1 root root 10 Jul 4 22:00 wwn-0x500277a4100c4e21-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 Jul 4 22:00 wwn-0x500277a4100c4e21-part2 -> ../../sda2 lrwxrwxrwx 1 root root 10 Jul 4 22:00 wwn-0x500277a4100c4e21-part3 -> ../../sda3
(There are more entries in this directory which are omitted here)
The target names (sr0, sda) might change when new devices are added to the computer (e.g. sda might become sdb) but the WWN will be the same. That is an advantage when the WWNs are used in configuration files and scripts, e.g., /etc/fstab.
How to Find WWN Information in Linux
This section contains instructions, advice, or how-to content. (February 2023)
There are various ways how to find WWN information.
Regardless of HBA type, below commands can be used to find WWN number information.
# cat /sys/class/fc_host/host*/port_name 0x10000090fa2537d6 0x10000090fa253a29
Method 2 : using syminq command
If EMC Storage is being used so there is a chance you must have SYMCLI software installed. syminq comes with SYSCLI. syminq is also helpful in getting WWN in easy way.
[root@server]# syminq hba Host Name : server HBA Type : FibreChannel HBA Name : Emulex-LPe11000-E-2 Vendor : Emulex Corporation Model : LPe11000-E Serial Number : BT01473025 Firmware Version : 2.72A2 (Z3D2.72A2), sli-3 Driver Version : 220.127.116.11.3p; HBAAPI(I) v2.1.g, 12-07-07 Node WWN : 20000000c9b0513a Number of Ports : 1 Port WWN : 10000000c9b0513a Port name : /sys/class/scsi_host/host3 Port type : NPort Port FCID : 2764032 Port speed : 4gbit Supported speed : 4gbit Port state : Online Supported COS : 00000008 Supported FC4 types : 0000010000000001000000000000000000000000000000000000000000000000 Active FC4 types : 0000010000000001000000000000000000000000000000000000000000000000 Max frame size : 2048
Method 3 : using hbacmd command
It will work if hbanyware package is installed.
[root@server]# /usr/sbin/hbanyware/hbacmd listHBAs Manageable HBA List Port WWN : 10:00:00:00:c9:b0:55:2e Node WWN : 20:00:00:00:c9:b0:55:2e Fabric Name: 10:00:50:eb:1a:5f:c7:0c Flags : 8000fe00 Host Name : server Mfg : Emulex Corporation Serial No. : BT01474056 Port Number: n/a Mode : Initiator Port WWN : 10:00:00:00:c9:b0:51:32 Node WWN : 20:00:00:00:c9:b0:51:32 Fabric Name: 10:00:50:eb:1a:5f:bd:0c Flags : 8000fe00 Host Name : server Mfg : Emulex Corporation Serial No. : BT01472998 Port Number: n/a Mode : Initiator [root@server]#
Method 4 : using systool command
systool utility comes with Linux distros. If it is not available it can be installed on servers where HBA is already installed.
# systool -c fc_host -v (output trimmed for clarity) Class Device path = "/sys/class/fc_host/host8" port_name = "10:00:00:00:c9:b0:51:32" node_name = "20:00:00:00:c9:b0:51:32"
List of OUIs commonly seen as WWN Company Identifiers
- 00:10:86 ATTO Technology
- 00:60:69 Brocade Communications Systems
- 00:05:1E Brocade Communications Systems, acquired with Rhapsody Networks
- 00:60:DF Brocade Communications Systems, acquired with CNT Technologies Corporation
- 08:00:88 Brocade Communications Systems, acquired with McDATA Corporation. WWIDs begin with 1000.080
- 00:05:30 Cisco
- 00:05:73 Cisco
- 00:05:9B Cisco
- 00:0D:31 Dell, Inc., for Dell Compellent Storage products
- 00:01:E8 Dell, Inc., for Dell Force10 Networking Products
- 00:23:29 DDRdrive LLC, for DDRdrive X1
- 00:60:16 EMC Corporation, for CLARiiON/VNX
- 00:60:48 EMC Corporation, for Symmetrix DMX
- 00:00:97 EMC Corporation, for Symmetrix VMAX
- 00:01:44 EMC Corporation, for VPLEX
- 00:00:C9 Emulex
- 00:60:B0 Hewlett-Packard - Integrity and HP9000 servers. WWIDs begin with 5006.0b0
- 00:11:0A Hewlett-Packard - ProLiant servers. Formerly Compaq. WWIDs begin with 5001.10a
- 00:01:FE Hewlett-Packard - EVA disk arrays. Formerly Digital Equipment Corporation. WWIDs begin with 5000.1fe1 or 6000.1fe1
- 00:17:A4 Hewlett-Packard - MSL tape libraries. Formerly Global Data Services. WWIDs begin with 200x.0017.a4
- 00:0C:CA HGST, a Western Digital Company
- 00:60:E8 Hitachi
- 00:50:76 IBM
- 00:17:38 IBM, formerly XIV.
- 00:15:17 Intel
- 00:A0:98 NetApp
- 24:A9:37 Pure Storage
- 00:E0:8B QLogic HBAs, original identifier space
- 00:1B:32 QLogic HBAs. new identifier space starting to be used in 2007
- 00:C0:DD QLogic FC switches
- 00:90:66 QLogic formerly Troika Networks
- 00:11:75 QLogic formerly PathScale, Inc
- 00:25:38 Samsung Electronics, for solid-state drive
- 00:1B:44 SanDisk
- 00:1E:82 SanDisk
- 00:0C:50 Seagate Technology
- 00:A0:B8 Symbios Logic
- 1C:5A:0B Tegile Systems
- 00:00:39 Toshiba
- 00:14:EE Western Digital
- 14:F0:C5 Xtremio (EMC Corporation)
- 00:50:CC Xyratex
- 57:42:B0 Infinidat, For infinibox
- 00:24:E9 Samsung
- Advanced Technology Attachment (ATA)
- Fibre Channel
- Persistent binding
- Serial Attached SCSI (SAS)
- Switched fabric
- World Wide Port Name (WWPN)
- "lsscsi(8) — lsscsi — Debian testing". manpages.debian.org. Retrieved 2020-09-26.
- "Guidelines for Use of Extended Unique Identifier (EUI), Organizationally Unique Identifier (OUI), and Company ID (CID)" (PDF). IEEE Standards Association. IEEE. Retrieved 5 August 2018.
- IEEE. "Guidelines for Fibre Channel Use of the Organizationally Unique Identifier (OUI)" (PDF).
- Richard Butler. "WWN Notes v1.3" (PDF). Archived from the original (PDF) on 2013-09-18.
- Raj Rai (16 October 2019). "How to Find WWN Number Information in Linux". nixDrafts. Retrieved 29 November 2021.
- "VMFS Snapshots and the FlashArray Part IV: How to correlate a VMFS to a FlashArray volume". 25 January 2016.