Collaboration with GLPI-technical changes

CPU core/thread

FusionInventory and OCS Inventory can report the number of cores and threads of a CPU. Today, GLPI only display the number of logical CPUs.

For an asset management software, the number of real physical CPUs is probably more important and a machine can have different CPUs, that's why we suggest to import the same CPU structure in GLPI (machine 1<>n CPUs).

This is the information we wish to see integrated in GLPI.
  • number of cores (CORE)
  • number of threads per cores (virtual CPU in a CORE) (THREAD)
  • manufacturer, eg AMD/Intel/Transmeta/Cyrix/VIA (MANUFACTURER)
  • name, e.g: Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz (NAME)
  • ID (ID)
  • serial number (SERIAL)
  • frequency in MHz (SPEED)

The CPU ID is shared between all the same CPU and can be useful to identify the same CPU with different name ( )


FusionInventory collect hardware PCIID. This information is used to identify the manufacturer, the product and the product family ( ) even if the driver gives a wrong information. We wish to see this information available in the glpi_devicepcis table.

  • PCI ID, e.g: 8086:2a40
  • PCI class ID
  • PCI subsystem ID, e.g: 8086:2a40
  • PCI location, e.g: 00:02.1
Actually, we think the inventory agent should not collect the name and the manufacturer of a device.
Walid : I don't understand what do you do with it into GLPI. What the potential workflow associated with it ?
  • Being able to show the controller are still the same even if the operating system had been changes,
  • Having the same controller name everywhere in GLPI,
  • Asset management, e.g: how many very special RAID card are in use,
  • Being able to show the card family in GLPI thanks to the class ID for example with an icon (network interface, graphic card, mass storage controller)
  • Ability directly from the helpdesk to know precisely what drivers is needed on a computer. The PCIID is used by the operating system to know what driver need to be loaded. This is what OPSI do to prepare the initial system image for a machine.

More serial numbers

Serial number are useful to help identify computers during the inventory and can improve GLPI support of other inventory solutions. We do extract serial numbers for various devices and wish to see these informations added in GLPI.

  • Hard drive
  • Memory
  • Partition


FusionInventory collects laptop battery information. We believe this information is generic enough to be integrated in GLPI. This what we retrieve:

  • capacity in mWh (CAPACITY)
  • voltage in mV (VOLTAGE)
  • manufacturer (MANUFACTURER)
  • manufacturing date in DD/MM/YYYY format (DATE)
  • name (NAME)
  • serial number (SERIAL)

USB device

USB devices are identified by an ID number much like PCI ( ). We collect them and think the information can be useful in GLPI. For example, to identify a barcode scanner plugged in a computer.

  • vendor ID. 4 hexa char (VENDORID)
  • product ID. 4 hexa char (PRODUCTID)
  • serial number (SERIAL)
  • USB Class, e.g: 8 for Mass Storage (CLASS)
  • USB Sub Class (SUBCLASS)
  • name (optional) (NAME)

Virtual Machine MAC addresses

Sometime the UUID is not enough to identify a virtual machine. That's the reason why we also collect their MAC addresses. We think this information is important to reduce the number of badly associated host/VM.

This information will requires two news table in the database:
  • a table with a list of MAC address
  • a table to create the relation between the virtualmachine and the mac addresses.

Virtual network device

We add a flag to identify virtual network interface like ppp0 or VPN. This information is important because the MAC address of such interfaces can change at any time so must be ignored. The information is a boolean.

With this information we will be able to:
  • reduce the number of duplicated machine by ignoring dummy duplicated MAC address (e.g: VPN foobar create the same MAC on 500 computes)
  • GLPI will be able to identify real and fake network interface for the user (e.g: how many link can be connected to this machine)

32/64 bit software

On some system it's possible to mix 32 and 64 bit software. It know the bit width, we use a boolean called is64bit. Is it possible to add such field in the software description in the GLPI database?

With this information the used will be able to filter the list of software.

OUI database

The OUI database ( ) is used to know the manufacturer of a network interface thanks to the 3 first number of the MAC address. This database needs to be up to date. We believe this information should be stored directly by GLPI instead of FusionInventory because it will be useful for other plugins (e.g: OCS-NG) and even in the core (e.g: search all the computer with a Dell network Interface).

An example of PHP script to do the lookup:

This information will requires a new table in the database and a script to keep it up to date.