Licensing
License consumption mechanism and feature licenses
Elastic Network Generator licenses include the following features which depends on the license edition. Details on how the features are consumed are as follows:
Feature Licenses
Feature Licenses | Developer | Team | System |
---|---|---|---|
KENG-SEAT | 1 | 8 | 16 |
KENG-SEAT-UHD | N/A | 8 | 16 |
KENG-SEAT-IXHW | N/A | N/A | 16 |
KENG-DPLU | 50 | 400 | 800 |
KENG-CPLU | 50 | 400 | 800 |
KENG-UNLIMITED-CP | N/A | N/A | 16 |
The exact list of feature licenses that are required by a specific test configuration, is calculated based on the test port type, port speed, protocol, protocol sessions, and etc. Overall, the list of required licenses is referred to as Test Cost.
Test Cost Calculation
Port Type | Condition | Seat Cost | CP Cost | DP cost |
---|---|---|---|---|
Ixia-c SW | If CP Cost <= 50 |
1x KENG-SEAT |
SUM (Protocol Cost) |
SUM (Speed Cost) |
Ixia-c SW | If CP Cost > 50 3 |
1x KENG-SEAT 1x KENG-UNLIMITED-CP |
50 |
SUM (Speed Cost) |
UHD400T | If CP Cost <= 50 |
1x KENG-SEAT 1x KENG-SEAT-UHD |
SUM (Protocol Cost) |
0 |
UHD400T | If CP Cost > 50 3 |
1x KENG-SEAT 1x KENG-SEAT-UHD 1x KENG-UNLIMITED-CP |
50 |
0 |
IxOS Hardware | 1x KENG-SEAT 1x KENG-SEAT-IXHW |
0 |
0 |
- Seat is the number of the running
keng-controller
instances, with a configuration that exceeds the capabilities of the Community Edition. - The Data Plane License Unit (
KENG-DPLU
) is associated with the traffic port capacity. The number of required units is determined as a sum of the configured port speeds (1, 10, 25, 40, 50, 100GE). The maximum port performance might be less than the configured port speed. - The Control Plane License unit (
KENG-CPLU
) is associated with the control plane protocol scale. The number of required CP units is determined as a sum of the configured protocol sessions. - If
KENG-UNLIMITED-CP
is not available, an exact number ofKENG-CPLU
will be consumed. - See Control Plane Cost for the
Protocol Cost
and Data Plane Cost for theSpeed Cost
.
Control Plane Cost
Applies only to the Ixia-c software and UHD400T ports.
Protocol | Session Definition | Protocol Cost/Session | Comment |
---|---|---|---|
IP Interface (ARP, ND) | devices: - ethernets: - ipv4_addresses: - ipv6_addresses: |
0 | |
IP Loopbacks | devices: - ipv4_loopbacks: - ipv6_loopbacks: |
0 | |
LLDP | lldp: - connection: - port_name: |
1 | Session = Test Port with LLDP enabled |
LACP | lacp: - ports: - port_name: lacp: |
1 | Session = LAG group, no matter group size |
BGP | devices: - bgp: - ipv4_addresses: - ipv6_addresses: - peers: |
1 | Session = BGP peer |
ISIS | devices: - isis: - interfaces: - eth_name: |
1 | Session = ISIS interface |
RSVP | devices: - rsvp: - ipv4_interfaces: - neighbor_ip: |
1 | Session = RSVP neighbor |
Data Plane Cost
Applies only to the Ixia-c software ports.
Test Port Speed | DP Cost |
---|---|
1GE | 1 |
10GE | 10 |
25GE | 25 |
40GE | 40 |
50GE | 50 |
100GE | 100 |
200GE | 200 |
400GE | 400 |
Sample license consumption scenarios
Test configuration
Number of keng-controller
instances: 1
- Number of ports:
4
- Port type:
Ixia-c software
- Port Speed:
100GE
- Protocol scale:
100 BGP sessions/port
Scenario 1: Limited control plane licenses
KENG-SEAT: 1 = (1 keng-controller instance and ixia-c SW port)
KENG-DPLU: 400 = (100G speed * 4 ports)
KENG-CPLU: 400 = (100 BGP sessions/port * 4 ports)
Scenario 2: Unlimited control plane licenses
KENG-SEAT: 1 = (1 keng-controller instance and ixia-c SW port)
KENG-DPLU: 400 = (100G speed * 4 ports)
KENG-CPLU: 50 = (CP cost = 400 (100 BGP sessions/port * 4 ports) which is greater than 50 and unlimited cp capability is present)
KENG-UNLIMITED-CP: 1
Q&A
When the licenses are checked-out / checked-in?
The license check-out/check-in mechanism in the keng-controller works as follows: 1. Calculate the Test Cost. For example, Test Cost = N. 2. Based on the calculation performed in step (1), check-out the licenses at the time of the OTG SetConfig API call. 3. Execute the test if license check-out is successful. 4. For the next configuration, calculate Test Cost, For example, Test Cost = M.
Does licensing have impact on API response time?
On the timing aspect, the entire license check-out/check-in mechanism works concurrently with the control plane and the data plane configurations in the ports during the OTG SetConfig operation. Therefore, potentially there is a minimal impact in the OTG SetConfig API response time. If the license server is on a remote site from the controller, the OTG SetConfig API response time might get impacted due to the network latency.
What happens if license servers are not available?
The keng-controller can work with up to 4 license servers. The controller tries to connect to all the license servers during the startup. If none of them is available, the controller capabilities are reduced to the Community Edition. After that, a background routine is initiated to make recurrent attempts to connect the configured license servers in 30 second intervals.
Once the controller is able to establish a connection with any of the license servers, for any new configuration beyond capabilities of the Community Edition, the keng-controller will try to check-out a license from the license server with which the connection is established.
What is the message generated when the license server is not available?
When a configured license server is not reachable, the log message with error code 13 is generated by the keng-controller:
"level":"warn","ctx":"impl/licensing","Not all license server could be reached":"code: 13 ...error details... "
What is the error generated when a license cannot be checked out?
There are two possible scenarios when the license cannot checkout.
Scenario 1: Any of the license servers does not have the adequate license features that are required for the test configuration. It will throw an error with the error code 13 and the following error message:
Current configuration requires following additional license feature(s): {...details...} which is not available in configured license server(s): {...details...} Available license feature(s) in license-server(s) are {...details...}.
Scenario 2: Previously active license server is no longer available/reachable. It will throw an error with the error code 13 and the following error message:
issue consuming license from server ...address...: rpc error: code = DeadlineExceeded desc = context deadline exceeded
After how many retries things are considered dead and how long does it take?
The controller will keep probing the list of license servers that are supplied at the time in the background routine in every 30 seconds during the controller lifetime.
What happens if the controller can't check-out the license for a specific server?
The keng-controller will attempt to check out licenses from the next available license server in the configured list.
How long does a license remain checked-out?
For the duration of the current test configuration, the license will remain checked-out. Once the new test configuration is applied that doesn't require the license, the license will be checked-in.
How to check-in all the licenses?
To check-in all the licenses, apply an empty configuration. Alternatively, gracefully stop the keng-controller container.
What happens of the controller can't check-in the license back?
There is a keep-alive mechanism between the controller and the license server. If the controller crashes, is forcefully stopped, or lost the connection to the license server, the licenses will be automatically checked-in after 5 minutes of keep-alive inactivity.