Location
Default: /etc/lattice/entitlement.json. Override with LATTICE_ENTITLEMENT_PATH. Download from the customer portal after signup (community) or after a paid issue.
Enforcement
- Over
max_managed_ips: renew existing leases; refuse new Discover/Offer allocations and new reservations. API returns402/license_limit. - After
expires_atplusgrace_days(14): same as over-limit. - DHCP does not crash to enforce a cap.
- No per-node license. Any number of dhcpd processes.
File shape
{
"kid": "v1",
"payload": {
"spec": "lattice.entitlement/v1",
"tier": "team",
"max_managed_ips": 25000,
"features": ["dhcpv4", "ipam", "api", "dns.bind_tsig", "dns.ad_gsstsig", "ha"]
},
"sig": "<base64 Ed25519>"
}
Signature is over canonical UTF-8 JSON of payload (keys sorted). Pretty-printing the file does not break verify. The public key is compiled into lattice-api.
Managed IPs = leased + reserved + quarantined. Prefix size is not the meter.