Table of Contents * Previous Chapter * Next Chapter

FLEXlm Frequently Asked Questions: Q6. How FLEXlm Works.

Q6. How FLEXlm Works.


Q6.1 What prevents me from changing a license file?

Each feature line in the license file has a 20-character hex `license-key'. If anything significant is changed, the key becomes invalid, the license won't work, and you'll get the message listed in Q5.8.


Q6.2 What goes into a license-key?

  1. The vendor's ENCRYPTION_CODE_1 and ENCRYPTION_CODE_2. These are 2 32-bit numbers that the vendor makes up. Naturally, these are kept secret by the vendor.

  2. For counted features, the hostid on the SERVER line.

  3. Everything else on FEATURE/INCREMENT/UPGRADE/PACKAGE lines, EXCEPT `name=value' pairs, where the name is lowercase.

Q6.3 Q6.3 How hard is it to guess a license-key?

There's two approaches to this: guess the license-key, or guess the ENCRYPTION_CODEs. Both of these are roughly equal in difficulty, and involve guessing 2 32-bit numbers.

Assume you can guess, and test, 4 billion numbers (one of the 32-bit numbers) per minute. (This is an extremely optimistic estimate, but useful for conjecture). It will then take 4 billion minutes to guess all possible numbers. On average, you'd hit the right number halfway through, so, assume 2 billion minutes. Let's see, there's 1440 minutes per day, roughly 525600 minutes per year, 525.6 million minutes per century. OK, it will take a while. In reality, testing ONE license-key, particularly for interactive applications, can take a minute or more.


Q6.4 So, does that mean that FLEXlm is unbreakable.

No. Partly this depends on the policy of the applications. However, GLOBEtrotter does not claim that FLEXlm is tamper-proof.


Q6.5 How fast does a checkout occur?

This depends, naturally, on the OS and the system/network load. Our tests show that a typical sun sparcstation 2 performs checkouts in approximately 1/10 second (100 ms.).

If the license is `uncounted' the checkout is performed in approximately 1/100 second (10 ms.), or faster.


Q6.6 Does FLEXlm licensing impose a heavy load on the network.

No, but partly this depends on the application, and end-user's use. A typical checkout request requires 5 messages and responses between client and server, and each message is < 150 bytes.

When a server is not receiving requests, it requires virtually no CPU time.

When an application, or lmstat, requests the list of current users, this can significantly increase the amount of networking FLEXlm uses, depending on the number of current users.

Also, use of `port@host' can increase network load, since the license file is down-loaded from the server to the client. port@host should be, if possible, limited to small license files (say < 50 features).


Q6.7 Does FLEXlm work with NFS?

Yes. FLEXlm has no direct interaction with NFS. FLEXlm uses an NFS-mounted file like any other application.


Q6.8 Does FLEXlm work with subnets, fully-qualified names, multiple domains, etc.?

Yes, although this behavior has been improved in v3.0.

When a license server and a client are located in different domains, fully-qualified host names have to be used. A `fully-qualified hostname' is of the form: node.domain.xxx, where `node' is the local hostname (usually returned by the 'hostname' command or 'uname -n') `domain.xxx' is the internet domain name, and `xxx' is `com' or `edu' or `org', etc.

To ensure success with FLEXlm across domains, do the following:

  1. Make the sure the fully-qualified hostname is the name on the SERVER line of the license file

  2. Make sure ALL client nodes, as well as the server node, are able to 'telnet' to that fully-qualified hostname. For example, if the host is locally called `speedy', and the domain name is `corp.com', local systems will be able to logon to speedy via 'telnet speedy'. But very often, 'telnet speedy.corp.com' will fail, locally. Note that this telnet command will always succeed on hosts in other domains (assuming everything is configured correctly), since the network will resolve speedy.corp.com automatically.

  3. Finally, there must be an `alias' for speedy so it's also known locally as speedy.corp.com. This alias is added to the /etc/hosts file, or if NIS/Yellow Pages are being used, then it will have to be added to the NIS database. This requirement goes away in version 3.0 of FLEXlm.

Q6.9 Is the FLEXlm `display' the same as an X-Display?

Not by default. The default FLEXlm display is what is returned by the ttyname() function call (or the 'tty' command), and is usually something like `/dev/ttyp4'. However, the application developer can change this default to the X-Display. A paper is available on this topic to FLEXlm developers from Globetrotter Software.


Q6.10 We're using FLEXlm over a wide-area network. What can we do to improve performance?

  1. The network should have a reasonably good up-time record. Otherwise, client applications will be both unable to obtain licenses, and will lose licenses that have already been checked out.

  2. Wide-area support should probably be avoided when the volume is particularly high, say more than one checkout per second. This volume is fine for a local server, but may exceed the reliability of wide-area networks.

  3. FLEXlm network traffic should be minimized. With the most common uses of FLEXlm, traffic is negligible. In particular, checkout, checkin and heartbeats (lm_timer()) use very little networking traffic. There are two items, however, which can send considerably more data and should be avoided or used sparingly:

Table of Contents * Previous Chapter * Next Chapter