Licensing

OSDx products include a licensing mechanism. Depending on the active license, some features and functionalities may be available (or not). To activate some characteristics, you will need a license bundle.

Types of licenses

Different licenses can be used to get the most out of OSDx. Licenses define and restrict the characteristics the user has access to. There are two types of characteristics: functionalities and features.

  • A functionality is something that can be enabled or not. For instance, connectivity to the CNM platform, or Netflow configuration.

  • A feature is something that can take a range of values. For example, the number of processor cores enabled.

There are some licenses in OSDx and they may be different depending on the running device. For example, the Config license is a basic one that gives access to CLI configuration menus. If Config is disabled, the configuration menu will be inaccessible.

Example:

admin@osdx$ conf
  CLI Error: The current license does not allow access to configuration mode

License overview

The lifetime of a license characteristic is determined by a validity period. This period is measured in days and can be infinite (i.e., the characteristic is permanently active). This validity period is automatically controlled by the OSDx system.

Once the license has expired, the specific functionality is disabled or, if the characteristic is a feature, the default value is set.

License bundles are generated for one or more devices. As a result, a license can only be applied in the specific device for which it was generated. When requesting a license bundle it’s crucial to provide the appropriate device identifier.

In the case of devices with amd64 architecture, the UUID (Universal Unique IDentifier) has to be provided by the customer in order to generate a valid license bundle. On the other hand, in the case of devices with arm64 architecture, the SN (Serial Number) has to be provided by the customer instead.

How to get the device identifier in amd64 platforms
admin@OSDx$ show system uuid
UUID: c81cb535-b8c8-5a0d-bafa-28316f9451bb
█████████████████████████████████████
█████████████████████████████████████
████ ▄▄▄▄▄ █▀█ █▄ ▀ ██ ▄▄█ ▄▄▄▄▄ ████
████ █   █ █▀▀▀█ ▄▀▀█▀▀▄▄█ █   █ ████
████ █▄▄▄█ █▀ █▀▀██▀▄▄▄▄ █ █▄▄▄█ ████
████▄▄▄▄▄▄▄█▄▀ ▀▄█ █▄█▄█▄█▄▄▄▄▄▄▄████
████▄ ▄▄▄▀▄▄▄▄▀▄▀▀▀▄▀▄▄▀▀▄▀▄▀▄█ ▀████
██████▀█▀▀▄█▀█▄█▀ ▄ ▄▄ ▀█ ▄▄▀ ▄██████
████▄▄    ▄██▄▄█▄█▄▄▄ ▄▀▀ ▀▀▀█▄▄▀████
████▀██ ▄▄▄█ ▄▄ ▄█▀  █ █ █▄█▄█▄ █████
████ ▄█▄▄▄▄▀█ ▀▄▀▀▀▄▄▄▄ █▄▀▄▀ ▄▄ ████
████ █ █▀█▄▄██▀█▀ ▄ ▀▄▄█▀███▀▄█▄▀████
████▄█▄█▄█▄█▀  █▄█▄▄▄▄▄█ ▄▄▄ ▄▄ ▀████
████ ▄▄▄▄▄ █▄█▀ ▄█▀ ▄█▄  █▄█ ▄▄▀█████
████ █   █ █  █▄▀▀▀█▄▄▄█▄▄▄▄▄ ▄▀▀████
████ █▄▄▄█ █ ▄██▀ ▄▄▀▄▀▀▀ ▄  ▄█ █████
████▄▄▄▄▄▄▄█▄▄██▄█▄▄█▄█████▄██▄██████
█████████████████████████████████████
█████████████████████████████████████
How to get the device identifier in arm64 platforms
admin@OSDx$ show version | grep S/N
    Hardware S/N:              DAALZ-000274

Important

Take into account the following aspects of OSDx licenses:
  • When the license status is modified (e.g., when a characteristic expires, or when a new license bundle is applied), the OSDx system is automatically rebooted.

  • License bundles are only valid for a specific device.

  • A license bundle cannot be loaded in the same device multiple times.

Basic operational commands

Command license show

Shows license status information.

Example:

admin@osdx$ license show

  +-----------------+---------+---------------+
  | License Item    | Status  | Validity      |
  +-----------------+---------+---------------+
  | CNM             | Enabled | Forever       |
  | Config          | Enabled | 5w 4d 23h 14m |
  | N-Cores         | 1       | Forever       |
  | Netflow         | Enabled | 2w 23h 14m    |
  | eth-Rate-Permit | 10Mbps  | Forever       |
  +-----------------+---------+---------------+

Command license load <file>

Loads a license file previously stored in the file system.

Example:

admin@osdx$ license load running://license.bin

  License information:
  +-----------------+---------+----------+
  | License Item    | Status  | Validity |
  +-----------------+---------+----------+
  | Netflow         | Enabled | 24h      |
  | CNM             | Enabled | 24h      |
  | Config          | Enabled | 24h      |
  | N-Cores         | 1       | 24h      |
  | eth-Rate-Permit | 10Mbps  | 24h      |
  +-----------------+---------+----------+

  Do you want to load the license? The system will reboot automatically (y/n):

Command license read

Similar to the license load command, except that it allows the license to be directly pasted into the CLI (Command Line Interface).

Example:

admin@OSDx$ license read
Paste your license and press ENTER:
5433305344784C49028B3AD149E3BA48ECBD84D9997B39838B00000001000000020000000B000
00001074D322D4F5344780F6574682D526174652D5065726D6974000000000000000001074E2D
436F72657300000000000000000103434E4D00000001000000000106436F6E666967000000010
00000000103445049000000010000000000084669726577616C6C000000010000000000054857
534543000000010000000000074E6574666C6F770000000100000000010752442D45545349000
0000000000000000652442D4643430000000000000000000652442D4E4F4D0000000000000000
000652442D524F5700000000000000000004574C414E0000000000000000000454657374754B5
95FFEAA7B36CA0014E540C04A96810CF6DE963C2B4044696F366A28164A59A64304277C35F6CC
0D9AE03426158CAD76C9C1D9A17AB68EAC8C2A7ABB8B646A09E6405B6D13B2366D7BA4BA45102
B7ABE686BCEA438B6BEDF6DF19F730648F33AC9F22A748BFD1D47683DDBB379C6CED4D4FBA86E
2EE6A738E7883F69293470ED80936B607D0464FC7CA71892D530C9773A769D9FB0F5E85033C9A
648E1D7B463B849DC49F175F8D350DE430782BC816314B88993299E3AB29A0C9FB2EC7B2C26DA
CC147760587B26CF38BBAE464AC680151EF98EC7A729165C8808FEE0BD961664B4EE2CDC2F995

License information:
+-----------------+---------+----------+
| License Item    | Status  | Validity |
+-----------------+---------+----------+
| Netflow         | Enabled | 24h      |
| CNM             | Enabled | 24h      |
| Config          | Enabled | 24h      |
| N-Cores         | 1       | 24h      |
| eth-Rate-Permit | 10Mbps  | 24h      |
+-----------------+---------+----------+

Do you want to load the license? The system will reboot automatically (y/n):

As mentioned above, if a license bundle is attempted to be loaded in a device different than the one for which it was generated, the following error will be displayed:

admin@OSDx$ license read
Paste your license and press ENTER:
5433305344784C49028B3AD149E3BA48ECBD84D9997B39838B00000001000000020000000B000
00001074D322D4F5344780F6574682D526174652D5065726D6974000000000000000001074E2D
436F72657300000000000000000103434E4D00000001000000000106436F6E666967000000010
00000000103445049000000010000000000084669726577616C6C000000010000000000054857
534543000000010000000000074E6574666C6F770000000100000000010752442D45545349000
0000000000000000652442D4643430000000000000000000652442D4E4F4D0000000000000000
000652442D524F5700000000000000000004574C414E0000000000000000000454657374754B5
95FFEAA7B36CA0014E540C04A96810CF6DE963C2B4044696F366A28164A59A64304277C35F6CC
0D9AE03426158CAD76C9C1D9A17AB68EAC8C2A7ABB8B646A09E6405B6D13B2366D7BA4BA45102
B7ABE686BCEA438B6BEDF6DF19F730648F33AC9F22A748BFD1D47683DDBB379C6CED4D4FBA86E
2EE6A738E7883F69293470ED80936B607D0464FC7CA71892D530C9773A769D9FB0F5E85033C9A
648E1D7B463B849DC49F175F8D350DE430782BC816314B88993299E3AB29A0C9FB2EC7B2C26DA
CC147760587B26CF38BBAE464AC680151EF98EC7A729165C8808FEE0BD961664B4EE2CDC2F995

Error: invalid license. Reason: License is not valid for this device.

CLI Error: Command error

This will also occur if the device identifier (SN or UUID) changes at some point. If it happens, the license bundle will not be valid anymore. Therefore, make sure to purchase the license bundle for the appropriate identifier.

Loading a license bundle

As previously discussed, there are two operational commands to load a license bundle on OSDx: license load <file> and license read. The latter can only be used if the clipboard content can be directly pasted in the OSDx CLI. Although this is often the fastest way, it is not always possible to paste the clipboard content in some terminals. In this case, license load <file> can be used after copying the license bundle into the OSDx file system.

Tip

There are many ways to transfer a file to OSDx.

We could use an external USB flash drive. Example:

admin@osdx$ file copy usb://<usb name>/license.bin running://license.bin      173.9KB done

Alternatively, we could download it from a reachable URL. Example:

admin@osdx$ file copy http://192.168.215.1/server/license.bin running://
% Total    % Received % Xferd  Average Speed    Time     Time      Time   Current
                               Dload  Upload    Total    Spent     Left   Speed
100   393  100   393    0   0  39300       0 --:--:-- --:--:-- --:--:--   39300

Or we could make use of scp to copy a file from an external system. Example:

$ scp license.bin admin@192.168.213.18:license.bin
admin@192.168.213.18's password:
license.bin       100%  375   173.9KB/s   00:00

Autolicense

OSDx includes a mechanism to automatically load a license bundle whenever OSDx starts.

Every time OSDx starts, the system checks if there is an autolicense.bin file at running://. If there is, the system will attempt to load it. Once the process has finished, the license bundle is deleted.

This mechanism is essential when upgrading from a different OSDx image. Before upgrading, we need to store a valid license bundle in the file path mentioned above. Once this is done, we can upgrade. Otherwise, some functionality may not work.

Tip

This file can be transferred in different ways, as discussed in the previous sections: from an external device, using the scp protocol or by downloading it from a reachable url.

Once the file has been successfully loaded, it is safe to reboot by typing reboot now in operational mode.

Logging

Whenever a license item is about to expire, an emergency message is sent to all users logged in to OSDx to warn them that the system is going to reboot in one minute.

Example:

admin@osdx$
  Broadcast message from systemd-journald@osdx (Sun 2021-06-20 08:22:51 UTC):

  osdx-licd[2110]: System will reboot in 60 seconds.
  Reason: the following license items are about to expire: N-Cores

Furthermore, after a license bundle is loaded (or when a license characteristic expires and the system reboots) the show version command can be executed to see the reason for the reboot.

Example:

admin@osdx$ show version

  OS vendor:                 Teldat
  OS name:                   OSDx
  OS version:                v3.1.1.1
  ...
  Last reboot reason:        Updated license
  ...