Milestone expires on Aug 31, 2020
This milestone represents all the features and bugfixes we want to implement in the 1.7 series. Once we are close to working on specific issue it will be moved to dedicated 1.7.x milestone.
Major goals planned for the whole 1.7 series are:
- Kea 1.7 will focus on improving performance (number of leases served per second). This include implementing support for multi-threading.
- Because of the continued strong interest among users for running Kea as a 'stateless' service, with a shared centralized lease database, in Kea 1.7 we will also look for ways to reduce contention between Kea servers handing out dynamic leases from shared pools by implementing multiple different address selection algorithms, or an offset from the next available address.
- 1.7 will update the D2 support in Kea, adding more fine-grained support for updating the DNS (or not updating it), for DDNS timer options equivalent to those in ISC DHCP, and for updating and removing DNS records. This should enable different DDNS policies for static host reservations vs dynamic reservations, and ideally also different policies for leases in different subnets. We should pay particular attention to verifying that DNS records are removed or updated as appropriate.
- Kea 1.7 will add support for the legacy bootp method for bootstrapping older devices. This is a requirement for some enterprises to implement Kea.
- To support Stork, a planned Kea management tool, we will add support for lease updates to an HA non-participating node. Kea's DNS integration must also be remotely manageable via this tool, which may require adding Kea-ctrl support to D2.
Unstarted Issues (open and unassigned)
- remote-option4-global-set accepts option with empty data
- Create AuditRevision object to carry supplementary information for audit entries
- Propagate lease updates between HA peers
- Ring default capacity is far too high.
- Follow-up from "WIP: Resolve "convert parsing of global entries to flat style""
- qualifying_suffix is deprecated and dhcp6_parser.yy must be updated
- Spurious semi-colon after namespace closing brace.
- use defines for v4 and v6 space
- Better error message in JSON parser on \'
- subnet inheritance inconsistencies
- Kea-dhcp4 should reject queries with dhcp-server-identifier (54) of 0.0.0.0
- new tool to regenerate all message files
- throwing exceptions on destructors causes call to terminate and should be fixed
- statistic sample limit enabling clean up
- Make LibraryHandle::getParameters() public
- static thread safety analysis
- Fetching host reservations without a need for subnet id
- Perform profiling for MT Kea
- some configuration related functions should throw exception if called from packet processing functions or while processing packets (in MT)
- Modify perfdhcp to track stats per subnet, when mulitple subnets are targetted
- rebuild statistic-get-all response
- add dhcp4 releases to perfdhcp
- Mix of physical and virtual interfaces (VLAN) does not work
- kea.spec missing when doing a hammer.py build on centos7
- Subnet parser can be confused by repeating the same parameter
- legal logging hook should save state of lease added via lease4/6-add commands
- comma escaping doesn't work in string options
- improve performance global parameter lookups
- support for new major version of sysrepo 1.4.x
- HAServiceTest.processSynchronize6DisableError test failed on FreeBSD
- config-backend: field should not be copied from shared network to subnet in config-get
- The new status-get command may report that the servers are in touch even if they aren't
- Possible short coming in SharedNetworkListParserTest.iface
- kea dhcp server not sending vendor option based on host reservation
- MySQL Group Replication doesn't support foreign key cascade
- IPv6: create static routes for (sub-) delegated prefixes
- Pool level DHCP options are ignored while returning ACK to client's INFORM
- investigate scenario with two servers sharing lease database and pools
- Incorrect handling of backslashes
- DDNS TTL value is does not meet 4702, Section 5
- kea-ctrl-agent config-set and config-test commands not working properly
- performance: implement backend statistics
- performance: allow Discover/Solicit to actually allocate a lease
- Use hardware address in name generation for DDNS update requests
- rpms on Centos 7 there are not available via systemctl until sudo ldconfig is executed
- missing tools/sysrepo_config files from release archive
- if there are errors in kea-admin it still exits with 0 exit code
- Database connection: better defaults for max-reconnect-tries and reconnect-wait-time
- LibraryManagerTest.libraryLoggerSetup breaks on Alpine Linux
- Packaging request - "kea-all" meta package
- Address remaing invocations of assert() in our code base
- Missing CB entry for deleting all global options
- would be good to have wildcard schema version arg in the db wipe script
- Client Classification/Debugging Expressions section needs clarification about tokens
- use a subnet's domain-name as a qualifying suffix for DDNS (trac #5048)
- whitespace in db password doesn't work and gets logged
- Reorder MySQL CB statements.
- interface-id should be empty in subnet and not copied from shared-network if not specified directly
- Add CI checks for doxygen
- forbid using empty string as value of shared-network-name parameter in remote-subnet4-set command
- Consider MySQL CB schema changes to make it compatible with NDBCLUSTER
- Implement reservation-update command
- renew-timer should not be accepted in configuration if it is greater then rebind-timer (and vice versa)
- docs: it should be described what cfg fields are available on which level and structure
- Documentation about congestion recovery
- Provide a way to disable the creation of DHCID records by D2
- Find the source of the congestion control loss in performances.
- Populate log messages from the cb_cmds to the database
- for bad formed cmds sent over http class-cmds sometimes return dictionary instead of list
- Use new lease user contexts in RADIUS accounting
- update copy right years automatically
- doubled log message on debug level during HA sync
- sporadic failure in HttpListenerTest.keepAlive on mac os
- Restricting timestamps in Kea backends to max supported values
- parser libraries for servers (for netconf)
- Handle Reconfigure Accept Option #87
- Make it possible to start the server without all the configured interfaces ready (GH#91)
- Design flaw in the allocation engine ?
- Server level option data is sent instead of subnet level option data
- reallocate IPv6-Addr with one Host and different DUIDs not working
- CB: Update Developer's Guide for Configuration Backend
- Add automatic rate adjustment to perfdhcp
Ongoing Issues (open and assigned)
- HA peer should drop leases not present on the partner during sync
- fix crashing unittests on no op database actions (scylladb currently is no op on all mutations with cas)
- avoiding race conditions when sharing database between processes or threads
- A lot of DISABLED unit tests - either enable or remove
- Speedup subnet selection
- kea-ctrl-agent fails with database reconnect-tries and reconnect-wait-time set
- Describe the Kea process for selecting a subnet/address and assigning options
- Small experiment improving congestion control locks
- Subnet selection via client class failing when using shared network
Completed Issues (closed)