9. License Management System

9.1. xGT Licensing

xGT licensed products use a licensing scheme based on core or socket counts. There are two types of licenses supported by xGT: floating licenses and node-locked licenses. A floating license requires a license server. With a floating license when a node requires access to resource, it checks them out from the license server. A node-locked license in contrast, is tied to a specific machine and doesn’t require a license server. The following page describes in detail node-locked license management. For information about floating licenses see: Floating License Management System.

Unless otherwise specified, all instructions and file locations described on this page are on the machine that runs the xGT server. For node-locked licenses, users will receive a license file tailored for their specific platform requirements and need to place this file at a specific location on their system. The default location is /etc/xgtd/licenses/xgtd.lic.

This section explains how the xGT Licensing Model works.

9.1.1. Socket and Core Based Licensing

Sockets or compute cores are the unit of the xGT licensing system. Each license contains a number of licensed sockets or cores that can be used by the xGT server for both floating and node-locked licenses.

When the xGT server launches, and it has a core limit, it will use the smallest of the following numbers of threads:

  • The total number of cores on the system times the threads per core

  • The licensed number of cores times the threads per core

  • The configured number of worker threads (system.worker_threads)

When the xGT server launches, and it has a socket limit, it will use the smallest of the following numbers of threads:

  • The total number of sockets on the system times the cores per socket times the threads per core

  • The licensed number of sockets times the cores per socket times threads per core

  • The configured number of worker threads (system.worker_threads)

Note that generally the OS of the platform running the xGT server will have hyperthreading turned on. In which case, there will be two threads per core.

The following sections explain details about the node-locked license. For information about floating licenses see: Floating License Management System.

9.2. License Management System Components

The license management system for xGT products is X-Formation’s LM-X license manager suite.

The main components of this system are:

  • License file (xgtd.lic)

  • Supplied utilities (lmxendutil)

9.2.1. License File

The license file contains license information. The two main readable fields in the license file are the date of expiration (END=2025-02-10) and the limit on the number of sockets or cores to use (i.e., the options SocketLimit=value or CoreLimit=value). The default name that xGT products use for this license file is xgtd.lic. Detailed information on the license file contents is provided in License File Format.

9.2.2. License Location Configuration

In order for a running instance of xGT to use a license, the application configuration value license.location must be set to an appropriate license location. For more information on setting xGT configuration values, please see Configuring the Server.

The configuration value license.location should contain one or more file paths that will be used by the xGT server to find a valid license file.

Multiple license paths are allowed and should be separated by a colon (:). If multiple paths are given, local licenses will be preferred over network licenses. Local license paths will contain the exact location of the license file, whereas network license paths will contain just the port and URL.

A few examples of node-locked license paths:

  • /etc/xgtd/licenses/xgtd.lic

  • /etc/xgtd/licenses/xgtd.lic:/etc/xgtd/licenses/xgtd-alt.lic

A few examples of network license paths:

Information about the license such as the expiration date, sockets, cores and threads is always logged and can be used to determine which license is being used. This information is written in the general log (see Logging and Auditing).

9.3. Preparing to Install

This section summarizes the procedures needed to install and successfully run the xGT license system.

The general procedures for installing and activating the license management system are:

  1. Determine the machines for the xGT server

  2. Download the license tool package

  3. Obtain a valid license file for the machine

Requirements:

  • Access to xGT website

  • A valid HostID of the server machine

  • License file (generally received via email)

  • Supported platform

9.3.1. HostID

Trovares provides the utility lmxendutil in the RPM to obtain a HostID from the xGT server machine. Only ETHERNET values are valid for licensing.

9.4. Installing

In order to install you will need this RPM package provided by Trovares.

9.4.1. Install Software

Installing the package is fairly straight forward. On the machine intended to be used for the xgtd:

  1. Download the packages

  2. Install the packages

These can be summarized as:

Download the license tool package from the link provided by Trovares (typically provided by email). Then install it:

sudo dnf install xgt-license-tools-X.Y.Z-1.x86_64.rpm

The package will install to /opt/xgtd/.

Download the xGT server package provided as link by Trovares (typically provided by email). Then install it:

sudo dnf install xgt-server-X.Y.Z-1.x86_64.rpm

9.4.2. Install a License File

You will need a license supplied by Trovares, to complete the licensing process. If you do not have a license, contact gettingstarted@trovares.com with your request and provide a HostID value of the xGT server machine.

On the xGT server machine do the following steps:

  1. To obtain the HostID run /opt/xgtd/bin/lmxendutil -hostid. This will list all the hostids of the machine. You should choose one listed as Ethernet that is a permanent interface. Some interfaces will be for VPNs. Do not use VPNs.

    A sample output from such a run:

    /opt/xgtd/bin/lmxendutil -hostid
    LM-X End-user Utility v5.0
    Copyright (C) 2002-2021 X-Formation. All rights reserved.
    
    ETHERNET: ens3
    HostID: 000C2BC32G83
    
    ETHERNET: ens4
    HostID: 0A42F8D4C3F0
    
    HOSTNAME: wyvern
    HostID: wyvern
    
    USERNAME: jacob
    HostID: jacob
    
    IPADDRESS: 192.128.121.148
    HostID: 192.128.121.148
    
    IPADDRESS: 192.138.111.*
    HostID: 192.138.111.*
    
    IPADDRESS: 192.118.*.*
    HostID: 192.118.*.*
    
  2. When you receive your license file place it in /etc/xgtd/licenses/. By default, it should be named xgtd.lic.

  3. Change the setting in xgtd.conf to point to your new license file, if necessary.

Once the license is installed, you should be able to run xGT:

systemctl start xgtd

More information about interaction with xGT server can be found in Licensing.

9.5. License File Format

This section describes the basic format of the license file. The license file will look similar to below:

FEATURE xgtd
{
  VENDOR=TROVARES VERSION=1.6 END=2010-02-28 OPTIONS="CoreLimit=4"

  COMMENT="HOSTID=000AB2FC62785"
  KEY=5UgwnMBQLeLPii1ZVIMKAnU4MA8iEa1F8n]x8yp8gI8vzepVmYAN0BzxL7WhpKTWYhM1X25SIwEqELECf8ScPwdVnhwm2]fxII2f \
  coR8febhKKAwLv5R3r52cnMWYHJkad]bU1gIWzLv7uCHZDP78mBX6kLU4yIv]ShgQCa]wixHU61LBtLBBbr6EQKq90IK08A3mUM6 \
  sJPj5O]LGIJE5eaQpsotAPZE[1wddNqoYbOeQ0RKdDdMM]icS02SHZqUpJijyZquw1imAtfB1Dm4HA1w8d9DhWL8CEgT2XWCaKSS \
  e65xtGwybpq9c37BdeAIxMzTVk[HUQDjgy80wAJ86nAy4WxxpRuZmDqN[r[lUlw5dTPvja0Tb2[A88UOlWXhGoq9jcAJd]p1iSk8 \
  NpdnQGXJ3D7nBVsuAUERoQkzIJO3CEkTn]0KtOf3Wtxx610KjYeXzc7Guy6T0uy8Ri7CKMPR25E85FluI[7LrlgO42nMEnyxzUe[ \
  ABSwahyvfy7yalvFQrs8H6hH1NC1Z7jXYmR8Zd0icEM2obzGI6qNAUOk[VdEEVdxhQIXPblG
}

In this file CoreLimit is the number of cores this license contains. Version is the version of xGT that this license is for. End is the expiration date of license. A comment may be preset to indicate other information such as MAC address.

9.6. LM-X Error Messages

The table below lists the most common licensing error codes and their meanings.

For an exhaustive list see: Exhaustive List of LM-X Error Messages

Return Code #

Return Code

Description

0

LMX_SUCCESS

Operation successful.

9

LMX_FEATURE_NOT_FOUND

Feature not found.

12

LMX_TOO_LATE_DATE

Software expired.

13

LMX_BAD_VERSION

Software version does not match license.

20

LMX_VIRTUAL_DENY

Feature not allowed to run on a virtual machine.