On 02/06/2012 02:11 AM, Osier Yang wrote:
The auto-generated WWN comply with the new addressing schema of WWN:
<quote>
the first nibble is either hex 5 or 6 followed by a 3-byte vendor
identifier and 36 bits for a vendor-specified serial number.
</quote>
We choose hex 5 for the first nibble. And use Qumranet's OUI
(00:1A:4A) as the 3-byte vendor indentifier. The last 36 bits
are auto-generated.
---
src/conf/node_device_conf.c | 36 +++++++++++++++++++-----------------
src/libvirt_private.syms | 1 +
src/util/virrandom.c | 18 ++++++++++++++++++
src/util/virrandom.h | 1 +
4 files changed, 39 insertions(+), 17 deletions(-)
+
+#define QUMRANET_OUI "001a4a"
+
+int
+virRandomGenerateWWN(char **wwn) {
+ if (virAsprintf(wwn, "5" QUMRANET_OUI "%09" PRIx64,
+ virRandomBits(36)) < 0) {
+ virReportOOMError();
+ return -1;
+ }
+
+ return 0;
ACK. It looks a lot shorter than v4, which is a good thing :)
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org