Bug 1768545 - [OSP-17] Use new SMBIOS strings for Windows Update enablement
Summary: [OSP-17] Use new SMBIOS strings for Windows Update enablement
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-nova
Version: 17.0 (Wallaby)
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: Kashyap Chamarthy
QA Contact: OSP DFG:Compute
URL:
Whiteboard:
Depends On: 1782529
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-11-04 17:08 UTC by Kashyap Chamarthy
Modified: 2025-01-18 02:28 UTC (History)
11 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2025-01-18 02:28:13 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker OSP-15830 0 None None None 2022-06-19 09:01:33 UTC

Description Kashyap Chamarthy 2019-11-04 17:08:16 UTC
tl;dr -- To allow Windows Update Enablement, all the Layered Products 
         agreed on a new SMBIOS strings.  The action item for Nova is to 
         update the SMBIOS strings we use to the Proposed SMBIOS
         Strings[*].  This is a simple change in the OSP RPM spec file.

Current SMBIOS Strings
----------------------

Currently the following is what OSP uses for a guest as SMBIOS string:

   <sysinfo type="smbios">
     <system>
       <entry name="manufacturer">Red Hat</entry>
       <entry name="product">OpenStack Compute</entry>
       <entry name="version">17.0.10-2.el7ost</entry>
       <entry name="serial">a5f3a3f6-1500-49f3-8934-004d68891b79</entry>
       <entry name="uuid">e186eec5-f11c-45f8-bc2e-ce0442a8b047</entry>
       <entry name="family">Virtual Machine</entry>
     </system>
   </sysinfo>

We're setting the above "manufacturer" (NOVA_VENDOR) and "product"
(NOVA_PRODUCT) — also refer to nova/version.py — in the OSP RPM spec
file:

    ...
    %global distro Red Hat
    ...
    cat > %{buildroot}%{_sysconfdir}/nova/release <<EOF
    [Nova]
    vendor = %{distro}
    product = OpenStack Compute
    package = %{release}
    EOF
    ...

[*] Proposed SMBIOS Strings
---------------------------

Based on input from the Platform Virt Team and other Layered Products, 
the following is the newly propoesd (and agreed upon) SMBIOS string for 
all Layered Products, for Windows Nova instances to get updates 
correctly:

    Manufacturer = "Red Hat"
    Family = "Red Hat Enterprise Linux - Advanced Virtualization"
    Product = "RHEL-AV"
    SKU-Number = "8.1.0" 

Important Note
--------------

The "SKU-Number" is the RHEL-AV release number that is
supported the given OSP product released on.  So updating the
"SKU-Number" will be a per-release task.

Comment 1 Richard W.M. Jones 2019-11-08 10:57:47 UTC
From the point of view of virt-what it would be kind of nice if there was
some way to detect the difference between RHV, RHOSP and CNV.

This is the current test for RHV:
http://git.annexia.org/?p=virt-what.git;a=blob;f=virt-what.in;h=a61ce913210b6df81e00ce5cde71a08679a0df6f;hb=HEAD#l232

We don't have tests for RHOSP or CNV yet, but have been asked about
adding them.

All that's needed is some kind of difference in the SM-BIOS strings
between the products.

Comment 2 Kashyap Chamarthy 2019-11-08 15:00:00 UTC
(In reply to Richard W.M. Jones from comment #1)
> From the point of view of virt-what it would be kind of nice if there was
> some way to detect the difference between RHV, RHOSP and CNV.
> 
> This is the current test for RHV:
> http://git.annexia.org/?p=virt-what.git;a=blob;f=virt-what.in;
> h=a61ce913210b6df81e00ce5cde71a08679a0df6f;hb=HEAD#l232
> 
> We don't have tests for RHOSP or CNV yet, but have been asked about
> adding them.
> 
> All that's needed is some kind of difference in the SM-BIOS strings
> between the products.


Yeah, given the 'virt-what' use case, now I feel all Layered Products using the same SM-BIOS strings is not a good idea.

Would be helpful if RHOS could retain the Product as "OpenStack Compute".  In other words, to satisfy the use case of 'virt-what', RHOS would want to use:

    Manufacturer = "Red Hat"
    Family = "Red Hat Enterprise Linux - Advanced Virtualization"
    Product = "OpenStack Compute"
    SKU-Number = "8.1.0"

Comment 3 Kashyap Chamarthy 2019-11-13 11:07:04 UTC
(NB: If we're going with the below, Nova needs work: introduce libvirt 
XML config classes for the 'baseBoard' SMBIOS entry.)

There is an alternative proposal in discussion, suggested by Dan 
Berrangé, to use the following SMBIOS XML elements:

  - 'system' -- to show Layered Product info
  - 'baseBoard' -- to show RHEL stream info

Assumption: The below example config is assuming we go with Windows 
            "Hardware ID 13"[*] == Manufacturer + Baseboard Manufacturer 
            + Baseboard Product.  Red Hat's Virtio-Win team will be 
            making a decision on this.)

Example (quoting from Dan's e-mail) guest config:

    <sysinfo type='smbios'>
      <bios>
        <entry name='vendor'>LENOVO</entry>
      </bios>
      <system>
        <entry name='manufacturer'>Red Hat</entry>
        <entry name='product'>Red Hat OpenStack Platform</entry>
        <entry name='version'>15.0</entry>
      </system>
      <baseBoard>
        <entry name='manufacturer'>Red Hat</entry>
        <entry name='product'>RHEL-AV</entry>
        <entry name='version'>8.1.0</entry>
      </baseBoard>
    </sysinfo>

The above appears in the guest as:

    Handle 0x0100, DMI type 1, 27 bytes
    System Information
          Manufacturer: Red Hat
          Product Name: Red Hat OpenStack Platform
          Version: 15.0
          Serial Number: Not Specified
          UUID: 08335cfa-2373-4921-8b4b-66673b62e917
          Wake-up Type: Power Switch
          SKU Number: Not Specified
          Family: Not Specified

    Handle 0x0200, DMI type 2, 15 bytes
    Base Board Information
          Manufacturer: Red Hat
          Product Name: RHEL-AV
          Version: 8.1.0
          Serial Number: Not Specified
          Asset Tag: Not Specified
          Features:
                  Board is a hosting board
          Location In Chassis: Not Specified
          Chassis Handle: 0x0300
          Type: Motherboard
          Contained Object Handles: 0



[*] https://docs.microsoft.com/en-us/windows-hardware/drivers/install/specifying-hardware-ids-for-a-computer

Comment 4 Kashyap Chamarthy 2019-11-13 11:24:15 UTC
(In reply to Kashyap Chamarthy from comment #3)
> (NB: If we're going with the below, Nova needs work: introduce libvirt 
> XML config classes for the 'baseBoard' SMBIOS entry.)

On the above "NB", Dan informs on IRC: if we end up going with the below 
suggested proposal, there won't potentially be any need for work in Nova
-- because most likely QEMU itself will be modified to populate the
'baseBoard' info with the RHEL stream.

> There is an alternative proposal in discussion, suggested by Dan 
> Berrangé, to use the following SMBIOS XML elements:
> 
>   - 'system' -- to show Layered Product info
>   - 'baseBoard' -- to show RHEL stream info
> 
> Assumption: The below example config is assuming we go with Windows 
>             "Hardware ID 13"[*] == Manufacturer + Baseboard Manufacturer 
>             + Baseboard Product.  Red Hat's Virtio-Win team will be 
>             making a decision on this.)
> 
> Example (quoting from Dan's e-mail) guest config:
> 
>     <sysinfo type='smbios'>
>       <bios>
>         <entry name='vendor'>LENOVO</entry>
>       </bios>
>       <system>
>         <entry name='manufacturer'>Red Hat</entry>
>         <entry name='product'>Red Hat OpenStack Platform</entry>
>         <entry name='version'>15.0</entry>
>       </system>
>       <baseBoard>
>         <entry name='manufacturer'>Red Hat</entry>
>         <entry name='product'>RHEL-AV</entry>
>         <entry name='version'>8.1.0</entry>
>       </baseBoard>
>     </sysinfo>
> 
> The above appears in the guest as:
> 
>     Handle 0x0100, DMI type 1, 27 bytes
>     System Information
>           Manufacturer: Red Hat
>           Product Name: Red Hat OpenStack Platform
>           Version: 15.0
>           Serial Number: Not Specified
>           UUID: 08335cfa-2373-4921-8b4b-66673b62e917
>           Wake-up Type: Power Switch
>           SKU Number: Not Specified
>           Family: Not Specified
> 
>     Handle 0x0200, DMI type 2, 15 bytes
>     Base Board Information
>           Manufacturer: Red Hat
>           Product Name: RHEL-AV
>           Version: 8.1.0
>           Serial Number: Not Specified
>           Asset Tag: Not Specified
>           Features:
>                   Board is a hosting board
>           Location In Chassis: Not Specified
>           Chassis Handle: 0x0300
>           Type: Motherboard
>           Contained Object Handles: 0
> 
> 
> 
> [*]
> https://docs.microsoft.com/en-us/windows-hardware/drivers/install/specifying-
> hardware-ids-for-a-computer

Comment 6 Kashyap Chamarthy 2020-07-27 15:56:23 UTC
Here's the `dmidecode` from a *non-Nova* guest (just plain QEMU on a RHEL-8 box; hence you don't see the Nova-generated SMBIOS bits), launched with version qemu-kvm-4.2.0-22.module+el8.2.1+6758+cb8d64c2.x86_64.

Observe the RHEL AV stream versions under the "Base Board Information" section below:

------------------------------------------------
# dmidecode
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
18 structures occupying 1201 bytes.
Table at 0x7FFFFB40.

Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
	Vendor: SeaBIOS
	Version: 1.13.0-1.module+el8.2.0+5520+4e5817f3
	Release Date: 04/01/2014
	Address: 0xE8000
	Runtime Size: 96 kB
	ROM Size: 64 kB
	Characteristics:
		BIOS characteristics not supported
		Targeted content distribution is supported
	BIOS Revision: 0.0

Handle 0x0100, DMI type 1, 27 bytes
System Information
	Manufacturer: Red Hat
	Product Name: KVM
	Version: RHEL-8.2.0 PC (Q35 + ICH9, 2009)
	Serial Number: Not Specified
	UUID: Not Settable
	Wake-up Type: Power Switch
	SKU Number: 8.2.0
	Family: Red Hat Enterprise Linux

Handle 0x0200, DMI type 2, 15 bytes
Base Board Information
	Manufacturer: Red Hat
	Product Name: RHEL-AV
	Version: RHEL-8.2.0 PC (Q35 + ICH9, 2009)
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Features:
		Board is a hosting board
	Location In Chassis: Not Specified
	Chassis Handle: 0x0300
	Type: Motherboard
	Contained Object Handles: 0

Handle 0x0300, DMI type 3, 22 bytes
Chassis Information
	Manufacturer: Red Hat
	Type: Other
	Lock: Not Present
	Version: RHEL-8.2.0 PC (Q35 + ICH9, 2009)
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Boot-up State: Safe
	Power Supply State: Safe
	Thermal State: Safe
	Security Status: Unknown
	OEM Information: 0x00000000
	Height: Unspecified
	Number Of Power Cords: Unspecified
	Contained Elements: 0
	SKU Number: Not Specified

Handle 0x0400, DMI type 4, 42 bytes
Processor Information
	Socket Designation: CPU 0
	Type: Central Processor
	Family: Other
	Manufacturer: Red Hat
	ID: D3 06 00 00 FD FB 8B 07
	Version: RHEL-8.2.0 PC (Q35 + ICH9, 2009)
	Voltage: Unknown
	External Clock: Unknown
	Max Speed: 2000 MHz
	Current Speed: 2000 MHz
	Status: Populated, Enabled
	Upgrade: Other
	L1 Cache Handle: Not Provided
	L2 Cache Handle: Not Provided
	L3 Cache Handle: Not Provided
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Core Count: 1
	Core Enabled: 1
	Thread Count: 1
	Characteristics: None

Handle 0x0401, DMI type 4, 42 bytes
Processor Information
	Socket Designation: CPU 1
	Type: Central Processor
	Family: Other
	Manufacturer: Red Hat
	ID: D3 06 00 00 FD FB 8B 07
	Version: RHEL-8.2.0 PC (Q35 + ICH9, 2009)
	Voltage: Unknown
	External Clock: Unknown
	Max Speed: 2000 MHz
	Current Speed: 2000 MHz
	Status: Populated, Enabled
	Upgrade: Other
	L1 Cache Handle: Not Provided
	L2 Cache Handle: Not Provided
	L3 Cache Handle: Not Provided
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Core Count: 1
	Core Enabled: 1
	Thread Count: 1
	Characteristics: None

Handle 0x0402, DMI type 4, 42 bytes
Processor Information
	Socket Designation: CPU 2
	Type: Central Processor
	Family: Other
	Manufacturer: Red Hat
	ID: D3 06 00 00 FD FB 8B 07
	Version: RHEL-8.2.0 PC (Q35 + ICH9, 2009)
	Voltage: Unknown
	External Clock: Unknown
	Max Speed: 2000 MHz
	Current Speed: 2000 MHz
	Status: Populated, Enabled
	Upgrade: Other
	L1 Cache Handle: Not Provided
	L2 Cache Handle: Not Provided
	L3 Cache Handle: Not Provided
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Core Count: 1
	Core Enabled: 1
	Thread Count: 1
	Characteristics: None

Handle 0x0403, DMI type 4, 42 bytes
Processor Information
	Socket Designation: CPU 3
	Type: Central Processor
	Family: Other
	Manufacturer: Red Hat
	ID: D3 06 00 00 FD FB 8B 07
	Version: RHEL-8.2.0 PC (Q35 + ICH9, 2009)
	Voltage: Unknown
	External Clock: Unknown
	Max Speed: 2000 MHz
	Current Speed: 2000 MHz
	Status: Populated, Enabled
	Upgrade: Other
	L1 Cache Handle: Not Provided
	L2 Cache Handle: Not Provided
	L3 Cache Handle: Not Provided
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Core Count: 1
	Core Enabled: 1
	Thread Count: 1
	Characteristics: None

Handle 0x0404, DMI type 4, 42 bytes
Processor Information
	Socket Designation: CPU 4
	Type: Central Processor
	Family: Other
	Manufacturer: Red Hat
	ID: D3 06 00 00 FD FB 8B 07
	Version: RHEL-8.2.0 PC (Q35 + ICH9, 2009)
	Voltage: Unknown
	External Clock: Unknown
	Max Speed: 2000 MHz
	Current Speed: 2000 MHz
	Status: Populated, Enabled
	Upgrade: Other
	L1 Cache Handle: Not Provided
	L2 Cache Handle: Not Provided
	L3 Cache Handle: Not Provided
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Core Count: 1
	Core Enabled: 1
	Thread Count: 1
	Characteristics: None

Handle 0x0405, DMI type 4, 42 bytes
Processor Information
	Socket Designation: CPU 5
	Type: Central Processor
	Family: Other
	Manufacturer: Red Hat
	ID: D3 06 00 00 FD FB 8B 07
	Version: RHEL-8.2.0 PC (Q35 + ICH9, 2009)
	Voltage: Unknown
	External Clock: Unknown
	Max Speed: 2000 MHz
	Current Speed: 2000 MHz
	Status: Populated, Enabled
	Upgrade: Other
	L1 Cache Handle: Not Provided
	L2 Cache Handle: Not Provided
	L3 Cache Handle: Not Provided
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Core Count: 1
	Core Enabled: 1
	Thread Count: 1
	Characteristics: None

Handle 0x0406, DMI type 4, 42 bytes
Processor Information
	Socket Designation: CPU 6
	Type: Central Processor
	Family: Other
	Manufacturer: Red Hat
	ID: D3 06 00 00 FD FB 8B 07
	Version: RHEL-8.2.0 PC (Q35 + ICH9, 2009)
	Voltage: Unknown
	External Clock: Unknown
	Max Speed: 2000 MHz
	Current Speed: 2000 MHz
	Status: Populated, Enabled
	Upgrade: Other
	L1 Cache Handle: Not Provided
	L2 Cache Handle: Not Provided
	L3 Cache Handle: Not Provided
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Core Count: 1
	Core Enabled: 1
	Thread Count: 1
	Characteristics: None

Handle 0x0407, DMI type 4, 42 bytes
Processor Information
	Socket Designation: CPU 7
	Type: Central Processor
	Family: Other
	Manufacturer: Red Hat
	ID: D3 06 00 00 FD FB 8B 07
	Version: RHEL-8.2.0 PC (Q35 + ICH9, 2009)
	Voltage: Unknown
	External Clock: Unknown
	Max Speed: 2000 MHz
	Current Speed: 2000 MHz
	Status: Populated, Enabled
	Upgrade: Other
	L1 Cache Handle: Not Provided
	L2 Cache Handle: Not Provided
	L3 Cache Handle: Not Provided
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Core Count: 1
	Core Enabled: 1
	Thread Count: 1
	Characteristics: None

Handle 0x1000, DMI type 16, 23 bytes
Physical Memory Array
	Location: Other
	Use: System Memory
	Error Correction Type: Multi-bit ECC
	Maximum Capacity: 16 GB
	Error Information Handle: Not Provided
	Number Of Devices: 1

Handle 0x1100, DMI type 17, 40 bytes
Memory Device
	Array Handle: 0x1000
	Error Information Handle: Not Provided
	Total Width: Unknown
	Data Width: Unknown
	Size: 16 GB
	Form Factor: DIMM
	Set: None
	Locator: DIMM 0
	Bank Locator: Not Specified
	Type: RAM
	Type Detail: Other
	Speed: Unknown
	Manufacturer: Red Hat
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Rank: Unknown
	Configured Memory Speed: Unknown
	Minimum Voltage: Unknown
	Maximum Voltage: Unknown
	Configured Voltage: Unknown

Handle 0x1300, DMI type 19, 31 bytes
Memory Array Mapped Address
	Starting Address: 0x00000000000
	Ending Address: 0x0007FFFFFFF
	Range Size: 2 GB
	Physical Array Handle: 0x1000
	Partition Width: 1

Handle 0x1301, DMI type 19, 31 bytes
Memory Array Mapped Address
	Starting Address: 0x00100000000
	Ending Address: 0x0047FFFFFFF
	Range Size: 14 GB
	Physical Array Handle: 0x1000
	Partition Width: 1

Handle 0x2000, DMI type 32, 11 bytes
System Boot Information
	Status: No errors detected

Handle 0x7F00, DMI type 127, 4 bytes
End Of Table
------------------------------------------------

Comment 7 Yaniv Kaul 2022-06-19 08:58:05 UTC
So what's the next step here?

Comment 8 Artom Lifshitz 2025-01-18 02:28:13 UTC
Given that it's been 5 years since any activity on this BZ, I think it's safe to close (and re-open if this is something important we have to do).


Note You need to log in before you can comment on or make changes to this bug.