ChangeLog 440 KB
Newer Older
Francis Dupont's avatar
Francis Dupont committed
1 2 3 4 5
1768.	[func]*		fdupont
	Removed the support of the Logging toplevel entry. Now loggers must
	be defined in each server toplevel entry.
	(Gitlab #916)

Francis Dupont's avatar
Francis Dupont committed
6 7 8 9
1767.	[bug]		fdupont
	Fixed unit tests failing on systems where an interface is named	eth0.
	(Gitlab #1043)

Francis Dupont's avatar
Francis Dupont committed
10 11 12 13 14
1766.	[func]		fdupont
	Optimized the interface manager code and removed the 16 bit limit
	to interface indexes.
	(Gitlab #553)

Francis Dupont's avatar
Francis Dupont committed
15 16 17 18 19 20 21
1765.	[bug]		fdupont
	Corrected a bug in MySQL Config Backend which occasionally caused
	the DHCP servers to overlook some configuration changes. This
	issue could occur when the server fetched configuration changes
	within one second after they they were applied in the database.
	(Gitlab #1247)

Francis Dupont's avatar
Francis Dupont committed
22 23 24 25 26
1764.	[doc]		fdupont
	Added thread safety consideration sections to library documentations
	in the developer guide.
	(Gitlab #996,#1264)

Francis Dupont's avatar
Francis Dupont committed
27 28 29
1763.	[bug]		fdupont
	Changed the way hook libraries are unloaded. Now unload is done
	in two phases: the first phase calls unload() entry points and
30
	removes callouts, the second phase unmaps hook library memory
31
	spaces. This should lead to fewer problems including fewer crashes
Francis Dupont's avatar
Francis Dupont committed
32
	at exit time. On the other hand, incorrect libraries can stay
Francis Dupont's avatar
Francis Dupont committed
33
	in memory until exit and prevent any (re)load.
Francis Dupont's avatar
Francis Dupont committed
34 35
	(Gitlab #1282)

36 37
Kea 1.7.9 (development) released on June 24, 2020

38
1762.	[bug]		fdupont
Francis Dupont's avatar
Francis Dupont committed
39
	Fixed the control command execution: either it was deferred by
40 41 42
	DHCP packet processing or a spurious error message was logged.
	(Gitlab #1234)

43 44 45 46 47 48
1761.	[bug]		fdupont
	Found and fixed a possible source of incorrect statistics cached
	in MySQL and PostgreSQL lease databases which in some cases
	made servers fail to start.
	(Gitlab #944,#1196)

Razvan Becheriu's avatar
Razvan Becheriu committed
49 50 51 52
1760.	[bug]		razvan
	Fixed log message on DHCPv6 IA_NA lease renew.
	(Gitlab #1276)

Francis Dupont's avatar
Francis Dupont committed
53 54
1759.	[bug]*		fdupont
	Fixed the way configuration global entries are parsed in DHCPv4
Francis Dupont's avatar
Francis Dupont committed
55
	and DHCPv6 servers. We expect that the change will not be visible
Francis Dupont's avatar
Francis Dupont committed
56 57 58
	for sane configurations.
	(Gitlab #1245)

59 60 61 62 63 64 65 66
1758.	[func]*		fdupont
	Earlier Kea versions converted "comment" entries to "user-context"
	scope in the configuration when using config-get. This backwards
	compatibility has now been removed. This may affect users who use
	config-get or config-write commands and use comments in their
	configurations.
	(Gitlab #1100)

67 68 69 70 71
1757.	[bug]		fdupont
	config-backend-pull commands were fixed to be applied to the
	current configuration
	(Gitlab #1189)

Francis Dupont's avatar
Francis Dupont committed
72 73 74 75
1756.	[bug]		fdupont
	Made the parking lot API generic thread safe.
	(Gitlab #1255)

76 77 78 79 80 81 82 83 84 85 86 87
1755.	[func]*		fdupont
	Implemented various race avoidance mechanisms in the multi-threaded
	packet processing: only one query from the same client is processed,
	subsequent queries from the same client are dropped at the exception
	of the most recent which will be processed after. When picking
	a free address or prefix from a pool the resource is considered
	as not free for other threads. This is used by the lease commands
	hooks library to avoid conflicts with a minimal overhead.
	Finally individual lease reclamation is exclusive of multi-threaded
	packet processing.
	(Gitlab #1147)

Michal Nowikowski's avatar
Michal Nowikowski committed
88 89
Kea 1.7.8 (development) released on May 27, 2020

90 91 92 93 94 95 96 97
1754.	[func]		marcin
	Improved the procedure of restarting the servers in the terminated
	HA state. The servers can now be restarted sequentially without the
	risk of returning to the terminated state right after restart.
	Previously, the servers had to be both shutdown before being
	restarted to avoid returning to the terminated state.
	(Gitlab #1205)

98
1753.	[func]*		marcin
99 100 101 102 103 104
	Extended the response to the status-get command to include
	information about the progress of the failover procedure
	while the active servers are in the communication interrupted
	state. The new data allow for monitoring the number of clients
	attempting to communicate with the partner which is presumably
	offline, total number of packets sent to the partner and so on.
105 106
	The syntax of the response was modified and is incompatible with
	previous Kea versions.
107 108
	(Gitlab #1087)

109 110 111 112 113
1752.	[doc]		tmark
	Added documentation for the Leasequery premium
	hook library to the ARM.
	(Gitlab #1180)

114 115 116 117 118 119 120
1751.	[perf]		marcin
	Corrected performance issue occurring while loading large configurations
	via the MySQL Config Backend. Improper database indexing caused long
	server startup time as well as long time to respond to various
	commands, such as subnet4-list or subnet6-list.
	(Gitlab #1242)

Razvan Becheriu's avatar
Razvan Becheriu committed
121 122 123 124 125 126
1750.	[func]		razvan
	Refactored HooksManager so that no lazy initialization is possible
	from dhcp processing functions. The function getHooksManager is now
	private.
	(Gitlab #1227)

127 128 129 130 131 132
1749.	[func]		fdupont
	When the version is a development (vs. stable) one (second
	number is odd, e.g. in 1.7.x) a server or agent logs a
	warning to dissuade use in production.
	(Gitlab #1184)

133 134 135 136 137 138 139 140
1748.	[func]		marcin
	Added two extensions to the HA hooks library. Firstly, the active
	servers no longer wait for the lease update acknowledgments from
	the backup servers. Secondly, the new passive-backup mode allows
	for running a single active server with a number of backup
	servers.
	(Gitlab #999)

Francis Dupont's avatar
Francis Dupont committed
141 142 143 144 145 146 147 148
1747.	[bug]		fdupont
	Multi-threading and congestion handling were made incompatible:
	when both are enabled by a configuration the dhcp-queue-control is
	silently disabled, when packet-queue-size is not 0 and the
	multi-threading packet queue is full the oldest packet is dropped
	to make room for a new received one.
	(Gitlab #1173)

149 150 151 152 153
1746.	[bug]		fdupont
	lease4-add and lease6-add commands now return an error when the
	lease already exists.
	(Gitlab #1170)

154
1745.	[bug]		fdupont
Francis Dupont's avatar
Francis Dupont committed
155 156
	Made state model and external sockets thread safe.
	(Gitlab #1095)
157

Razvan Becheriu's avatar
Razvan Becheriu committed
158 159 160 161
1744.	[func]		razvan
	Stopping packet processing when changing or reloading configuration.
	(Gitlab #1188)

Francis Dupont's avatar
Francis Dupont committed
162
Kea 1.7.7 (development) released on Apr 29, 2020
163

Tomek Mrugalski's avatar
Tomek Mrugalski committed
164 165 166 167 168
1743.	[doc]		tomek
	ISC now provides a dashboard solution for Kea. Added documentation
	pointers about the ISC Stork project.
	(Gitlab #1191)

169 170 171 172 173 174 175 176
1742.	[func]		fdupont
	Added new cumulative statistics: for each assigned IPv4 address,
	IPv6 NA address or IPv6 PD prefixes cumulative-assigned-addresses,
	cumulative-assigned-nas or cumulative-assigned-pds global and
	per subnet is increased. A spelling error in the result-set of
	the stat-lease4-get of the stat cmds hook library was fixed.
	(Gitlab #816)

177 178 179 180 181
1741.	[func]		fdupont
	When the MySQL InnoDB reports a deadlock (very rare event)
	the failed query is rerun.
	(Gitlab #1160)

182
1740.	[bug]		fdupont
Francis Dupont's avatar
Francis Dupont committed
183
	Incorrect signal handling in the process library (used for
184 185 186 187
	control agent, d2 and netconf server but not by DHCPv4 or
	DHCPv6 servers) was replaced by the boost ASIO signal set.
	(Gitlab #1096)

Razvan Becheriu's avatar
Razvan Becheriu committed
188 189 190 191 192 193 194 195 196 197 198
1739.	[func]		razvan
	Added multi threading configuration parameters which can be used
	to adjust server performance according to setup resources and needs:
	enable-multi-threading, thread-pool-size and packet-queue-size.
	There is also an automatic detection implemented by using
	thread-pool-size set to 0. However, the packet-queue-size must be
	manually configured and does not scale automatically.
	The temporary -N command line option was removed.
	The multi threading is disabled by default.
	(Gitlab #893)

199 200
1738.	[func]		fdupont
	Added new global parameters statistic-default-sample-count and
201 202
	statistic-default-sample-age to set the default values used
	for sample keeping limits.
203 204
	(Gitlab #1005)

205
1737.	[func]		tmark
206 207 208 209 210
	Added store-extended-info parameter to kea-dhcp4 and kea-dhcp6
	which enables the storage of additional information per lease.
	This has been added in anticipation of supporting LeaseQuery.
	(Gitlab #1010)

Francis Dupont's avatar
Francis Dupont committed
211 212
1736.	[doc]		fdupont
	A default logging syntax has been updated to reflect recently added
213 214
	multi-threading capabilities. The process is now identified by
	name/process-id.thread-id, e.g. kea-dhcp4.dhcpsrv/8475.12345, where
Francis Dupont's avatar
Francis Dupont committed
215 216 217 218
	12345 is the thread-id. Its exact syntax is OS dependent. The
	logging syntax can be tweaked using `pattern` option for logging.
	(Gitlab #1150)

Francis Dupont's avatar
Francis Dupont committed
219
Kea 1.7.6 (development) released on Mar 25, 2020
220

221 222 223
1735.	[func]		wlodek
	Added clean output mode to perfdhcp with configurable separator
	for periodic reports.
224
	(Gitlab #1046)
225

Tomek Mrugalski's avatar
Tomek Mrugalski committed
226 227 228 229 230
1734.	[doc]		vicky
	A list of supported OSes is now described in a separate
	platforms.rst file.
	(Gitlab #1055)

Thomas Markwalder's avatar
Thomas Markwalder committed
231 232 233 234 235 236 237
1733.	[func]		tmark
	Added lease4-resend-ddns and lease6-resend-ddns commands to
	the Lease Commands hook library.  These commands may be used to
	instruct kea-dhcp4 or kea-dhcp6 to resend a request to update a
	lease's DNS entries to kea-dhcp-ddns.
	(Gitlab #1106)

238 239 240 241 242 243
1732.	[func]		marcin
	Client classes specified within host reservations can be used
	to influence subnet selection within a shared network and pool
	selection within a subnet.
	(Gitlab #1139)

Razvan Becheriu's avatar
Razvan Becheriu committed
244 245 246 247 248
1731.	[func]		razvan
	The NameChangeSender class is thread safe, making DNS updates
	compatible with multi-threading packet processing.
	(Gitlab #1148)

Razvan Becheriu's avatar
Razvan Becheriu committed
249 250 251 252 253 254 255 256
1730.	[func]		razvan
	Added -N command line switch that enables experimental multi-threading
	support. Number of threads can be specified (e.g. -N8) or Kea can be
	told to autodetect number of CPU threads (-N0). This feature is
	experimental. It hasn't been tested extensively and is known to cause
	problems with DDNS and HA. Do not use in production!
	(Gitlab #893)

Razvan Becheriu's avatar
Razvan Becheriu committed
257 258 259 260 261 262 263
1729.	[func]		razvan
	The RAII MultiThreadingCriticalSection class is now able to
	automatically stop and start the packet thread pool in order to
	perform server configuration and avoid race conditions in non
	thread safe code.
	(Gitlab #1016)

264 265 266 267 268 269
1728.	[bug]		tmark
	Memfile now supports commas in the hostname and user-context
	columns.  Commas in either column now escaped as "&#x2c" when
	written out, and unescaped when read back in.
	(Gitlab #608)

270 271 272 273 274 275 276
1727.	[bug]		tmark
	When shutting down due to lost backend database connetivity,
	kea-dhcp4 and kea-dhcp6 processes will exit with a non-zero value.
	This was temporarily altered by #1108. In addition, the "shutdown"
	command now supports an "exit-value" argument.
	(Gitlab #1115)

Razvan Becheriu's avatar
Razvan Becheriu committed
277 278 279 280 281 282 283
1726.	[func]		razvan
	Handling SKIP and DROP state in hooks so that the same operation
	is not performed multiple times. Some hooks will throw exceptions
	if the pktX_receive or pktX_send is handled by other hooks, in
	such case, the configuration order of the hooks must be changed.
	(Gitlab #1088)

Francis Dupont's avatar
Francis Dupont committed
284
Kea 1.7.5 (development) released on Feb 26, 2020
285 286 287 288 289 290

1725.	[func]		wlodek
	Added perfdhcp command option to enable checking address
	and/or prefix uniqueness.
	(Gitlab #1021)

Razvan Becheriu's avatar
Razvan Becheriu committed
291
1724.	[func]		razvan
Razvan Becheriu's avatar
Razvan Becheriu committed
292 293 294 295
	Added packet thread pool in dhcpv4 and dhcpv6 servers. It adds
	the ability to handle processPacket function on multiple threads.
	When enabled, parked packets are also added to the queue of items
	to be handles by the thread pool. The packet thread pool is
Razvan Becheriu's avatar
Razvan Becheriu committed
296
	currently disabled and there is no option to enable it yet.
Razvan Becheriu's avatar
Razvan Becheriu committed
297 298
	(Gitlab #892)

Razvan Becheriu's avatar
Razvan Becheriu committed
299
1723.	[func]		tmark
300 301 302 303
	Hostname sanitizing is now globally enabled by default.  Prior
	to this it was disabled.
	(Gitlab #1048)

Razvan Becheriu's avatar
Razvan Becheriu committed
304
1722.	[bug]		razvan
Tomek Mrugalski's avatar
Tomek Mrugalski committed
305 306 307
	Compilation fix for MySQL/MariaDB on Ubuntu 19.10.
	(Gitlab #1071)

Razvan Becheriu's avatar
Razvan Becheriu committed
308
1721.	[func]*		fdupont
Razvan Becheriu's avatar
Razvan Becheriu committed
309 310
	Added multi_threading_compatible function in hooks to retrieve
	the compatibility with multi-threading. This function is called
Razvan Becheriu's avatar
Razvan Becheriu committed
311
	when the library is loaded and if it reports 0 (incompatible) and
Razvan Becheriu's avatar
Razvan Becheriu committed
312 313 314 315
	multi-threading is enabled, then the configuration will be
	rejected. The absence of this function from the library defaults
	to incompatibility with multi-threading. All hooks and premium
	hooks must be updated to be able to be used with multi-threading.
Razvan Becheriu's avatar
Razvan Becheriu committed
316
	However, not all libraries are (or will ever be) compatible.
Razvan Becheriu's avatar
Razvan Becheriu committed
317 318
	(Gitlab #947)

Tomek Mrugalski's avatar
Tomek Mrugalski committed
319 320 321 322 323 324 325 326
1720.	[func]*		tomek
	The next step status in pkt4_send hook point now is able to
	distinguish between SKIP (Kea will skip packing the packet with
	the assumption that a hook already did that) and DROP (Kea will
	drop the packet). Previously both SKIP and DROP were interpreted
	as skip packing.
	(Gitlab #1090)

Razvan Becheriu's avatar
Razvan Becheriu committed
327 328
1719.	[func]		razvan
	Prepared CalloutManager to be used in multi-threading by moving
Razvan Becheriu's avatar
Razvan Becheriu committed
329
	the current library index and hook index to the CalloutHandle.
Razvan Becheriu's avatar
Razvan Becheriu committed
330 331 332 333 334
	This change removes the CallountHandle::getLibraryHandle, along
	with the possibility of dynamically registering/deregistering
	callouts inside callouts.
	(Gitlab #957)

335 336 337 338 339 340 341 342 343
1718.	[bug]		tmark
	kea-dhcp4 and kea-dhcp6 now shutdown gracefully by executing
	the shutdown command, if connectivity with a backend database
	has been lost and retries are either disabled or have been
	exhausted. Prior to this they simply invoked exit() which
	could orphan control socket files or cause segfaults unloading
	the CB Cmds hook library.
	(Gitlab #1108)

Razvan Becheriu's avatar
Razvan Becheriu committed
344 345 346 347 348 349 350 351 352
1717.	[func]		razvan
	Prepared PgSqlHostMgr to be used with multi-threading by using a
	connection pool with thread context.
	(Gitlab #1074)

1716.	[func]		razvan
	Implemented thread safe stats manager and stats context.
	(Gitlab #891)

353 354 355 356
1715.	[bug]		tmark
	Kea servers now detect and remove orphaned control channel
	sockets.  This corrects a failure of the servers to restart
	with an error of "address already in use" following a fatal
Razvan Becheriu's avatar
Razvan Becheriu committed
357
	loss of database connectivity.
358 359
	(Gitlab #1097)

Francis Dupont's avatar
Francis Dupont committed
360
Kea 1.7.4 (development) released on Jan 29, 2020
361

362
1714.	[build]		razvan
Razvan Becheriu's avatar
Razvan Becheriu committed
363
	Bumped up library version numbers for Kea 1.7.4 release.
364 365
	(Gitlab #1101)

366 367 368 369 370
1713.	[bug]*		tmark
	Code added under #35 to permit scoping of DDNS behavioral parameters
	was refactored to improve performance.
	(Gitlab #981)

371 372 373 374 375 376
1712.	[bug]		tmark
	Corrected an issue in the MySQL CB hook library which could
	cause subnet and shared-network options, properly added to
	the CB database, to be discarded when fetched from the backend.
	(Gitlab #1093)

Razvan Becheriu's avatar
Razvan Becheriu committed
377 378 379 380 381
1711.	[func]		razvan
	Prepared MySqlHostMgr to be used with multi-threading by using a
	connection pool with thread context.
	(Gitlab #1073)

Francis Dupont's avatar
Francis Dupont committed
382 383 384 385 386 387 388 389 390 391 392
1710.	[bug]		fdupont
	The code that handles default parameters and parameters
	inheritance, such as applying global values to subnet level,
	has been updated slightly. Although unlikely, there is small
	possibility this may affect boot-file-name, client-class,
	interface, match-client-id, authoritative, next-server,
	reservation-mode, and server-hostname values in Subnet4 and
	client-class, interface, interface-id, rapid-commit, and
	reservation-mode in Subnet6.
	(Gitlab #724)

393 394 395 396 397
1709.	[func]		fdupont
	MySQL Configuration Backend now allows for storing DDNS related
	configuration in the database.
	(Gitlab #946)

Tomek Mrugalski's avatar
Tomek Mrugalski committed
398 399 400 401
1708.	[doc]		tomek
	Clarified the relationship between comments and user context.
	(Gitlab #1079)

402 403 404 405 406 407 408 409 410 411 412 413 414
1707.	[func]		marcin
	High Availability hooks library supports controlled maintenance
	of the servers. The new ha-maintenance-start command puts one
	of the servers in the partner-in-maintenance state and causes
	this server to take over the entire DHCP traffic directed to the
	HA service. The second server in the in-maintenance state can be
	safely shutdown for the maintenance. This new mechanism solves
	the problem present in earlier versions of Kea when the
	administrator had to rely on the failover mechanism to promote
	one of the servers to handle the DHCP traffic while the other
	server was down.
	(Gitlab #1024)

Tomek Mrugalski's avatar
Tomek Mrugalski committed
415 416 417 418 419
1706.	[bug]		fdupont
	Fixed BOOTP hook. It now properly handles BOOTP packets and sends
	valid responses.
	(Gitlab #1064)

420 421 422 423 424 425 426
1705.	[bug]		fdupont
	Modified option 43 parsing to interpret sub-option codes 0 and 255
	as PAD and END when no sub-option with these codes are defined.
	This adds control of illegal but common use of these reserved
	code points in option 43.
	(Gitlab #950)

Razvan Becheriu's avatar
Razvan Becheriu committed
427 428 429 430
1704.	[func]		fdupont
	Prepared memfile lease manager to be used with multi-threading.
	(Gitlab #894)

431 432 433 434 435 436
1703.	[bug]		niclas rozenvik
	A fix in the --with-gtest option. It is now able to detect the
	libgtest.a. Thank you to Niclas Rozenvik for reporting the issue
	and proposing a fix!
	(Gitlab #1080)

Razvan Becheriu's avatar
Razvan Becheriu committed
437 438 439 440 441 442 443 444 445 446 447
1702.	[func]		razvan
	Update and delete operations on database back-ends use lease old
	expire value (internal storage) to detect concurrent actions on
	the same lease.
	(Gitlab #1040)

1701.	[func]		razvan
	Initialize all option definitions at program startup instead of
	using lazy initialization to make access thread safe and lock-less.
	(Gitlab #889)

448 449 450 451 452
1700.	[func]		godfryd
	Enabled checking Kea merge request in GitLab CI by Danger tool
	(see https://danger.systems/guides/dangerfile.html).
	(Gitlab #672)

Francis Dupont's avatar
Francis Dupont committed
453
Kea 1.7.3 (development) released on Nov 18th, 2019
454

455 456 457 458 459 460
1699.	[func]		fdupont, marcin
	Implemented status-get command which returns general status
	information about a Kea server status and optionally
	HA specific information if the HA hooks library is present.
	(Gitlab #1041)

Tomek Mrugalski's avatar
Tomek Mrugalski committed
461 462 463 464
1698.	[doc]		wlodek
	Avalanche scenario for perfdhcp is now documented.
	(Gitlab #876)

Tomek Mrugalski's avatar
Tomek Mrugalski committed
465 466 467 468 469
1697.	[doc]		wlodek
	Forensic logging documentation now mentions database
	configuration.
	(Gitlab #943)

470
1696.	[func]		fdupont
Tomek Mrugalski's avatar
Tomek Mrugalski committed
471 472
	A new hook library libdhcp_bootp has been implemented. Once
	loaded, this hook will provide support for BOOTP packets, as
473
	defined in RFC1497. Please see the "BOOTP support" Section in the
Tomek Mrugalski's avatar
Tomek Mrugalski committed
474 475 476
	ARM for details.
	(Gitlab #898)

477 478 479 480 481
1695.	[func]		fdupont
	Added support of BOOTP leases with infinite valid lifetime.
	This includes representation of such leases in MySQL and
	PostgreSQL databases which the expire date can be a 32 bit
	integer.
482
	(Gitlab #897)
483

484 485 486 487 488
1694.	[doc]		marcin
	Described the usage of the ha-heartbeat command to check the
	states of the HA enabled DHCP servers.
	(Gitlab #998)

Tomek Mrugalski's avatar
Tomek Mrugalski committed
489 490 491 492 493
1693.	[func]		fdupont
	Client supplied ciaddr is now sent back when responding to
	DHCPINFORM
	(Gitlab #992)

Tomek Mrugalski's avatar
Tomek Mrugalski committed
494 495 496 497
1692.	[build]		fdupont
	Better support for google test 1.10.0.
	(Gitlab #954)

498 499 500 501
1691.	[build]		tomek
	Google test version detection improved.
	(Gitlab #206)

Razvan Becheriu's avatar
Razvan Becheriu committed
502 503 504 505 506 507
1690.	[func]		fdupont, razvan
	As a preparation for upcoming multi-threading, the PgSQL
	connection pool has been implemented. This code is not
	usable on its own yet, but it will allow all threads
	to share a pool of connections in the future. This
	should improve the overall PgSQL lease backend performance.
Razvan Becheriu's avatar
Razvan Becheriu committed
508
	Fixed some log messages that were missing lease type details
Razvan Becheriu's avatar
Razvan Becheriu committed
509
	in DHCPv6 PostgreSQL lease manager actions.
Razvan Becheriu's avatar
Razvan Becheriu committed
510 511
	(Gitlab #1044)

Francis Dupont's avatar
Francis Dupont committed
512
Kea 1.7.2 (development) released on Nov 27, 2019
513

514 515 516 517 518 519
1689.	[bug]*		fdupont
	The default Kea Control Agent's configuration file uses port 8000
	instead of 8080 for the agent. This corrects the mismatch between
	the default port number used by the kea-shell and the agent.
	(Gitlab #793)

520 521 522 523 524
1688.	[func]		fdupont
	Added a new callout (hook point) executed when the server has
	completed a configuration update using the Config Backend.
	(Gitlab #596)

525 526 527 528 529
1687.	[doc]		fdupont
	Described for developers the way for a hook library to be loadable
	only for specific server(s) and applied as an example to ha.
	(Gitlab #50)

530 531
1686.	[func]		razvan
	Added a generic ThreadPool class which can be used to process
532 533
	functor work items in parallel, on multiple threads. It uses
	a queue container to manage the work items.
534 535
	(Gitlab #883)

536 537 538 539 540 541
1685.	[build]		fdupont
	Small build improvement. The fcntl.h header is included in more
	portable way. This should make it easier to build on Alpine systems and
	possibly other systems.
	(Gitlab #765)

Tomek Mrugalski's avatar
Tomek Mrugalski committed
542 543 544 545
1684.	[func]		fdupont
	As a preparation for upcoming multi-threading, the MySQL
	connection pool has been implemented. This code is not
	usable on its own yet, but it will allow all threads
Razvan Becheriu's avatar
Razvan Becheriu committed
546
	to share a pool of connections in the future. This
Tomek Mrugalski's avatar
Tomek Mrugalski committed
547 548 549
	should improve the overall MySQL lease backend performance.
	(Gitlab #960)

550
1683.	[bug]		wlodek
551 552 553 554 555 556 557
	Perfdhcp is able to parse incoming packet and determine
	if included IA_NA/IA_PD options are correct, counter
	of rejected leases is introduced for all DHCP v6 message
	exchanges. Perfdhcp will no longer send Request/Renew/Release
	message without proper IA_NA/IA_PD included.
	(Gitlab #572)

558 559 560 561 562 563 564 565 566 567 568 569
1682.	[bug]*		tmark
	Added logic to core code and HA hook lib to allow HA peers
	to detect and handle out of bandwidth socket events.  This
	corrects a defect introduced in Kea 1.6.0 that can cause
	an HA server to become unresponsive when an HA socket has
	been closed by a peer.  Note that there is a change to the
	signature of the external socket callback handler invoked
	by IfaceMgr.  Custome hook libraries happen register external
	sockets with IfaceMgr will require modification and
	recompilation.
	(Gitlab #964)

Francis Dupont's avatar
Francis Dupont committed
570
Kea 1.7.1 (development) released on Oct 30, 2019
571

572
1681.	[func]		fdupont
573
	Added new command config-backend-pull which forces the server
574 575 576 577
	to immediately poll the configuration updates from the
	configuration backend
	(Gitlab #904)

578 579 580 581 582 583
1680.	[bug,build]	Kristoffer Larsen
	A bug in Makefile has been fixed. The changes made to
	src/lib/dhcpsrv/alloc_engine_messages.mes are now picked up
	properly.
	(Gitlab #752)

584 585
1679.	[func]		fdupont
	Added new commands to the lease_cmds hooks library to search for
586 587
	leases by hardware address, client-id, DUID and hostname. Now
	hostnames are stored in lower case within the lease database.
588 589
	(Gitlab #393)

Tomek Mrugalski's avatar
Tomek Mrugalski committed
590 591 592 593 594
1678.	[build]		fdupont
	The arguments passed to configure are now stored and are available
	using -W command line option.
	(Gitlab #869)

Tomek Mrugalski's avatar
Tomek Mrugalski committed
595
1677.	[doc]		wlodek
596
	Sample configs now all use the same paths for control sockets.
Tomek Mrugalski's avatar
Tomek Mrugalski committed
597 598
	(Gitlab #795)

599 600 601 602 603 604 605 606 607
1676.	[func]		fdupont
	A new hook - flex-option - has been developed. It allows setting
	up DHCPv4 and DHCPv6 option values dynamically, using expression.
	This capability is very useful when you want to generate option
	value procedurally. For details, see new section "Flexible Option
	for Option value settings" in the Kea Administrator Reference
	Manual.
	(Gitlab #219,!523, git 2bf854c029b9b07ee6161bc1fcb4dfdc9846ee42)

608 609 610 611 612 613
1675.	[func]		fdupont
	Both DHCPv4 and DHCPv6 can now listen on and send responses
	to a custom UDP port, as specified with the -p command line
	option. This capability is mostly useful for testing.
	(Gitlab #677,!548, git 47e709fb7b89464d4473e8c7cb138f539042d68b)

614 615 616 617
1674.	[perf]		fdupont
	Added a Multi Threading Manager singleton class in the util library.
	(Gitlab #962,!566, git 66b090e54b45bdeefda266ddd62e42b46ed48d1d)

618 619 620 621
1673.	[bug]		tmark
	Fixed a bug introduced in Kea 1.6.0 (see #539) that caused
	kea-dhcp4 and kea-dhcp6 to discard inbound packets containing
	string options that consist solely of nulls.  The servers
622
	will now quietly omit empty or all-null string options from
623
	inbound packets.
624
	(Gitlab #900,!561, git c75a7c10bde74f59d481a7717b4e03b9cb2268a6)
625

626 627 628 629 630
1672.	[build]		fdupont
	Deprecated bind1st and bind2nd templates were replaced with
	lambda expressions or plain bind templates.
	(Gitlab #919,!521, git b12fa3374454c9c0d749557d5532aab55dbc58d9)

631
1671.	[bug]		tmark
632 633 634
	Corrected an issue in kea-dhcp6 where the server would fail
	to extend the expiry of a existing dynamic lease assigned to
	client with host reservation.
635
	(Gitlab #754,!558, git c223380012b82c93292528b593002c2b80b5361b)
636

637 638 639 640 641
1670.	[func]		fdupont
	Added searches for host reservations by hostname and by hostname
	and subnet.
	(Gitlan #392,!529, git 50068ada6b277c9251de9062501d8c478a8f5529)

642 643
1669.	[func]		tmark
	Rather than within the 'dhcp-ddns' section, DDNS behavioral
644
	parameters may now be specified at global, shared-network,
645 646
	and subnet scopes.  Implemented for both kea-dhcp4 and
	kea-dhcp6.  Not yet supported by Config Backend or Netconf.
647
	(Gitlab #35,!517, git 49ce6286f5d00f99c1c890f12cbc0fd633c9dbf6)
648

649 650 651 652
1668.	[build]		fdupont
	The Kea util thread library was removed.
	(Gitlab #907,!519, git 1b27dc52aae23753643461086f0950b125bf9c93)

653
1667.	[build]		fdupont
654 655
	The availability of C++11 thread, mutex, condition variable and
	atomic libraries is now checked by ./configure.
656 657
	(Gitlab #918,!520, git baf4097520c1cd38366ee4f33a95dde040906e9e)

658 659 660
1666.	[doc]		tmark
	Added note in ARM about manually admining cb data being possible
	but not supported.
661
	(Gitlab #917,!518, git f242e5c2e0e14331172671477dce3a6597691b55)
662

Francis Dupont's avatar
Francis Dupont committed
663
Kea 1.7.0 (development) released on Sep 25, 2019
664

665 666
1665.	[build]		tmark
	Bumped up library version numbers for Kea 1.7.0 final release.
667
	(Gitlab #924,!526, git c4061d0fdd660c8e375b4e1317603935ccc00b39)
668

669 670 671 672
1664.	[build]		razvan
	Make sysrepo_config detect installed sysrepo version.
	(Gitlab #766,!449, git e1a236fa4f4680d3eadade6b5f5a6a6065620a5b)

673 674 675 676 677
1663.	[build]		fdupont
	Dropped support for Botan 1.x crypto library in Kea as these
	versions are now end of life.
	(Gitlab #345,!498, git ba028eee986c0da963754c6fcb74790081557bec)

678 679 680 681 682 683 684
1662.	[bug]		marcin
	Prevent deadlock in the Kea DHCP servers caused by allocating
	memory in the system signal handler. The issue was found on
	CentOS 7.6, but could possibly affect Kea running on any other
	OS.
	(Gitlab #796,!504, git f858d9d0b63a18370ebb8bd7d1b8250d0c5a1cb5)

685 686 687
1661.	[bug]		tmark
	kea-dhcp4 now rejects inbound client messages that have
	neither a hardware address nor a client identifier.
688
	(Gitlab #821,!501, git 60baf65d0c9de384b0da147b50b7fc3180fc54dd)
689

690 691 692 693 694 695
1660.	[func]		franek
	Statistics of the DHCP packets are now initialized upon the
	server startup. This makes the statistics available for fetching
	via control channel immediately after the server is started.
	(Gitlab #755,!503, git f0238d1b6e88dfedaa91029ec3b65e06c14cab34)

696
1659.	[bug]		razvan
Razvan Becheriu's avatar
Razvan Becheriu committed
697 698 699
	Corrected an issue in the DHCPv4 server logic whereby the user-defined
	option definitions were not committed which could result in
	configuration failures when values for such options were specified.
700 701
	(Gitlab #729, !434, git e5b68fb226161dcdef0e4d2d9d03d9bdb95af5e2)

702
Kea 1.6.0 (stable) released on Aug 28, 2019
703

704
1658.	[bug]		tmark
705 706 707
	Renamed the column "array" in option definition tables
	in MySQL schema to "is_array" to avoid a reserved word
	conflict introduced by MySQL 8.0.17.
708
	(Gitlab #853,!26-p, git 6665c3b6d0f9f2a45b7710e8e9a36fff8f99bf7f)
709

710 711 712 713 714 715 716
1657.	[bug]		marcin, tomek
	Corrected multiple occurrences of out of bounds vector reads.
	These could cause server to assert when GLIBCXX_ASSERTIONS
	was enabled during compilation. Also, elminated overflows as
	a result of strncpy.
	(Gitlab #851,!24-p, git 4b1d6ffc5ae4f1e1fa5990a644c9786e7f6afea6)

717 718 719 720 721 722 723 724
1656.	[bug]		marcin
	Corrected a bug in the Kea MySQL Configuration Backend which
	caused the Kea DHCPv6 server to incorrectly require the server
	tag to be provided with the remote-subnet6-option-set command.
	In addition, corrected issues with setting and deleting
	pool specific DHCP options via the Configuration Backend.
	(Gitlab #847,!23-p, git 578bc6c997679c507c2f9e419783d34de77816cd)

725 726 727 728 729 730 731 732
1655.	[bug]		marcin
	Corrected a bug in the Kea MySQL Configuration Backend which
	prevented the DHCP servers from discovering and fetching the
	changes applied with the new commands. The new commands set
	and delete the options embedded within the subnets, shared
	networks and pools.
	(Gitlab #845,!22-p, git 7fb2255b212e4e98ff4dbf6d8e2e0ada78701110)

Michal Nowikowski's avatar
Michal Nowikowski committed
733
1654.	[sec]		tmark
734 735
	kea-dhcp4 Memfile logic now ensures during reading and writing
	that leases which are not in the declined state, have either
736
	a hardware address, client id, or both. kea-dhcp6 Memfile logic
Michal Nowikowski's avatar
Michal Nowikowski committed
737
	now ensures leases which are not declined have a non-empty DUID.
738
	CVE:2019-6474
739
	(Gitlab #805,!6-p, git 9705445210cf2a5c4bbe86fde4ce010c45b7aac1)
740

Michal Nowikowski's avatar
Michal Nowikowski committed
741
1653.	[sec]		tmark
742 743 744 745 746
	Added a new parameter, "max-row-errors", to Memfile lease database
	configuration for kea-dhcp4 and kea-dhcp6.  This parameter can be
	used to limit the number of rows discarded due to error during
	lease file loading after which the server will abandon the effort
	and exit. The default value of 0 disables the limit.
747
	CVE:2019-6474
748
	(Gitlab #805,!5-p git af7393c517cea37a7091075e5d0d24793bccf013)
749

Michal Nowikowski's avatar
Michal Nowikowski committed
750
1652.	[sec]		tmark
751 752 753
	Prevent the DHCP servers from asserting when malformed
	hostname or FQDN options are received.  Now the servers will
	drop the DHCP packets containing the malformed options.
754
	CVE:2019-6473
755
	(Gitlab #730,!2-p git a2a98c421bb400a81218bd28d6a6f62accd31b1f)
756

Michal Nowikowski's avatar
Michal Nowikowski committed
757
1651.	[sec]		tmark
758 759 760 761
	Added logic to kea-dhcp6 to catch values for client or
	server DUIDs that exceed 128 bytes to inbound packet
	sanity checking.
	CVE:2019-6472
762
	(Gitlab #722,!1-p git bb1a64b8945950f4439121ce4fef566d37c8630c)
763

764 765 766 767
1650.	[build]		marcin
	Bumped up library version numbers for Kea 1.6.0 final release.
	(Gitlab #841,!490, git 2e88e2554905dd66b9974c9fc513ee7e7b825a46)

768 769 770 771
1649.	[doc]		sgoldlust
	API documentation updated and cleaned up.
	(Gitlab #810,!471, git f1ae84186beb54d45f8455236827108289b0b0d6)

772 773 774 775 776 777 778
1648.	[func]		fdupont,marcin
	Client classification information (client-class,
	require-client-classes) and excluded prefix (excluded-prefix,
	excluded-prefix-len) may now be specified in the MySQL
	Configuration Backend.
	(Gitlab #659,!387, git 1f2cae397b48e2a28a7a7e61f6392691b9d32c13)

779 780 781 782 783 784 785
1647.	[doc]		marcin
	Updated "Local and Relayed Traffic in Shared Networks" sections
	of the Kea ARM. Explained that all subnets within a shared
	network should have the same subnet selector, i.e. interface
	name or relay IP address.
	(Gitlab #496,!483, git 1335e5643cc142c65bfc49c13280e9aaf3eeec21)

786 787 788 789 790
1646.	[func]		fdupont
	YANG models updated to cover the latest parameters:
	pattern and max-row-errors.
	(Gitlab #823,!477, git 79d0d45ec0c791560e297ca77fc88842b0a33868)

791 792 793 794 795
1645.	[func]		tmark
	Binary option data may now be specified as a single-quoted
	text string, within double quotes: "'some text'".  This is
	handy for binary options that convey text such as urls or
	file names.
796
	(Gitlab #761,!447, git 215d84f00208ac8a2710c28abc3386d6b765ede6)
797

798 799 800 801
1644.	[doc]		marcin, fdupont
	Added a warning about class dependence on built-in classes.
	(Gitlab #727,!466, git 9977d2927cf9b9cf1cd13de30aa5551ca900165b)

802 803 804 805 806 807 808
1643.	[build]		godfryd
	Added an optional --with-site-packages switch to configure
	script. It allows python package installation in a separate
	directory (mostly useful on Debian systems when building native
	packages).
	(Gitlab #721,#480, git 66332000ff618fbb41656981c7bbf3bb940066fe)

809 810 811 812
1642.	[doc]		fdupont, marcin
	User documentation for remote-option{4,6}-* commands.
	(Gitlab #826,!479, git 9b469ab63a9627e377a219cf8f83033e4e613b11)

813
1641.	[func]		tmark
814 815
	Added a new Logger output option, 'pattern', which can be
	used to customize log message content and layout.
816
	(Gitlab #665,!460, git 2add51ecf0d91d2a9ac797594c38472190c18460)
817

818 819 820 821 822 823
1640.	[func]		fdupont
	Added sub-option expression for client classification and flex-id.
	Users can access sub-option with option[12].option[34].hex or
	option[12].option[34].exist
	(Gitlab #150,!385, git 70bb412f20b706484538680906d6fcfd7ee6da68)

824 825 826 827 828
1639.	[func]		fdupont
	Updated YANG models with the latest changes in kea-dhcp4 and
	kea-dhcp6.
	(Gitlab #433,!473, git c46e8da1561e7d0c6c6f481d2e32cc9ae398324c)

829 830
1638.	[bug]		franek, razvan
	Kea statistics improvements: Correct statistic-get{all} commands.
831
	(Gitlab #756,!470, git 59fb24794af8a9ca8ee3621bc01dfd507350b2c1)
832

833 834 835 836
1637.	[bug]		tmark
	Corrected an issue in kea-dhcp6 where the server would assign
	a different lease each time a client with a dynamic host
	reservation returned via a SOLICIT.
837
	(Gitlab #754,!440, git c548d9330e6f626e538343c5e6361457057efdd7)
838

839
1636.	[bug]		razvan
840
	Http request and response parser now accepts 0 for Content-Length.
841 842
	(Gitlab #708,!423, git 09d75804e050083b502a96c8e77b0e98c735ae3d)

843 844 845 846
1635.	[doc]		godfryd, tomek
	Converted API documentation to Sphinx format.
	(Gitlab #777,!464, git 3ba1a265537330308c313a38b85e84cbe02704ae)

Razvan Becheriu's avatar
Razvan Becheriu committed
847 848 849 850 851
1634.	[func]		franek, razvan
	Kea statistics improvements: Added commands for set sample age and
	set sample count.
	(Gitlab #731,!459, git dde1b96b33ed20dbe2c815f1168e62b66635e39f)

852 853 854 855
1633.	[bug]		fdupont
	Added missing YANG Kea test module in distributions.
	(Gitlab #747,!436, git a800e79c7917acc723cbc71b626adc360e15a8d7)

856 857 858 859
1632.	[doc]		razvan, tmark
	Fixed doc examples.
	(Gitlab #649,!381, git e14b90735ff57be0776270364064952d353d7e3a)

860 861 862 863 864 865
1631.	[bug]		marcin
	Corrected the bug in mysql_cb hooks library which in some cases
	caused the pools to be orphaned and left in the database after
	the subnet has been updated.
	(Gitlab #632,!438, git ea15b537d62c66e03923b5fdce91db8795f436b4)

866 867 868 869
1630.	[build]		fdupont
	Added support for sysrepo 0.7.8 (and libyang 1.0-r3).
	(Gitlab #742,!430, git 6776a829f90768225ea794145e522560d26fe959)

870
1629.	[func]		tmark
871 872 873
	High Availaiblity logging now also emits server and partner system
	times when reporting clock skew issues.  Prior to this it reported
	only the skew between the two servers.
874
	(Gitlab #174,!414, git 9715ddecb0143d997a57edea564f5c180a7f8577)
875

876 877 878 879 880
1628.	[bug]		fdupont
	Improved the error message from MySQL CB -set commands when
	a specified server does not exist.
	(Gitlab #732,!429, git 82f34e60363eec72a117939a5526bdb1ececb53c)

881 882 883 884
1627.	[func]		fdupont
	Added new command server-tag-get to DHCPv4 and DHCPv6 servers.
	(Gitlab #470,!386, git 3cb43f112662ba3f9d2fc7152dfa1639401b1491)

885 886 887 888 889 890 891 892
1626.	[bug]		marcin
	Automatically delete embedded options as a result of deleting
	a subnet, pool or shared network from the MySQL Configuration
	Backend. Prior to this change, the options were unnecessarily
	left in the database. The database schema version was affected
	and its version bumped up to 8.2.
	(Gitlab #680,!426, git 03f0af3900bdd9eaa951b23cc9508f0618d3f1bb)

893
Kea 1.6.0-beta2 (development) released on July 24, 2019
894

895 896
1625.	[build]		tmark, marcin
	Bumped up libraries version numbers for Kea 1.6.0 beta2 release.
897
	(Gitlab #740,!427, git 359fe51531e802f052bd4172d4e295378155dbd5)
898

899 900 901 902 903
1624.	[doc]		marcin
	Documented a usage of the server tags with the Kea Configuration
	Backend in the Kea ARM.
	(Gitlab #643,!421, git 4c60b02e619bce2c434bbf9ee0e775d8776b2d74)

904 905 906 907 908
1623.	[bug]		fdupont
	Eliminated the issue whereby the DHCP server could terminate as a
	result of the remote-network4-del and remote-network6-del commands.
	(Gitlab #738,!425, git b34151b647aae8690fe0996090e13403a8e3ad55)

909 910 911 912 913
1622.	[bug]		fdupont
	Corrected server tags returned with the metadata when fetching
	option definitions from the MySQL configuration backend
	(Gitlab #737,!424, git 1cc95ae2a66102427e583b4924383fd414e24f0f)

914 915 916 917 918 919 920 921
1621.	[func]		fdupont
	Both kea-dhcp4 and kea-dhcp6 now support a special class, 'DROP'.
	When the class is defined, inbound client packets that match the
	class's match expression will be dropped without further processing.
	Each such drop is logged at DEBUG level and accounted for in
	drop statistics.
	(Gitlab #606,!375, git bfa5b2c50324e9d2339daa8309774f49a5e7bf3c)

922 923 924 925 926
1620.	[func]		franek, razvan
	Kea statistics improvements: Support for storing more than one
	sample.
	(Gitlab #696,!418, git c7b8c275758c96f56081e02da429f5dd9d653b87)

927 928 929 930 931
1619.	[func]		marcin
	Add support for associating subnets with the server tags in the
	mysql_cb hooks library.
	(Gitlab #717,!417, git e121ec4e0a04bc5bebdbfecf9cc1606b50e71263)

932 933 934 935 936
1618.	[func]		marcin
	Add support for associating the shared networks with the server
	tags in the mysql_cb hooks library.
	(Gitlab #716,!412, git 326fdbeb51dc1f6eebbdbbdcce78cfac87a61bd9)

937 938 939 940 941 942
1617.	[bug]		fdupont
	During the application of the config backend the external config
	is initialized to the default values so when a global parameter
	is changed and deleted it gets back a sane value.
	(Gitlab #630,!355, git 237afd3c512ed4d05ae76de76cce21dca643a889)

943 944 945 946 947 948
1616.	[func]		fdupont
	Renamed kea-admin lease-init, lease-version and lease-upgrade
	commands to db-init, db-version and db-upgrade. Only the lease-*
	command is now lease-dump.
	(Gitlab #466,!393, git cbd2ed23f2ea0649ccf608fe818197d2923108f0)

949 950 951 952 953 954
1615.	[func]		fdupont
	Added check for keyword name and type in parsers of objects
	managed by the config backend (options, option definitions,
	subnets and shared networks).
	(Gitlab #575,!358, git c9d87afad8db924da0aadc1b8ab40638bd0a6738)

955 956
1614.	[func]		marcin
	Add support for associating the DHCP option definitions with
957
	the server tags in the mysql_cb hooks library.
958 959
	(Gitlab #715,!411, git 5511725555138213de4f48dc1091d65b5db47034)

960 961 962 963 964
1613.	[func]		marcin
	Add support for associating the global DHCP options with the
	server tags in the mysql_cb hooks library.
	(Gitlab #714,!409, git 711c1dca9de388b786942fe5bedb8b8cf63b85ba)

965 966 967 968 969
1612.	[bug]		razvan
	Fixed crash caused by unloading premium libraries which use
	custom host cache containers.
	(Gitlab #639,!410, git d3f7e9d9a18d93fb014c8e637e15c6ae9ca9269e)

970 971 972 973
1611.	[doc]		fdupont
	Clarified how Kea handles subnet prefixes in server configuration.
	(Gitlab #419,!333, git f260b51148b4f7584165e13fcf2320fdd5992a74)

974 975 976 977
1610.	[build]		fdupont
	Removed the obsolete compatcheck top directory.
	(Gitlab #667,!391, git 8cb113a52f0cf56fbdb5cb0e87464135234c2ac1)

978 979 980 981
1609.	[bug]		fdupont
	Fixed the implementation of authentication keys in DHCPv6
	host reservations. Please note this includes a PostgreSQL
	schema update.
982
	(Gitlab #550,!297, git f45511f0445cd4204671771175f7f0d34df54b0e)
983

984 985 986 987
1608.	[bug]		fdupont
	Missing debug DHCP6_PACKET_SEND logging message was added.
	(Gitlab #699,!401, git ac96edbe30be5c93f5e3d2512961f1bc99c3253a)

988 989 990 991 992
1607.	[bug]		tmark
	Corrected an initialization issue which caused lease sanity
	checking to be enabled inside the Lease File Cleanup (LFC)
	process.  The LFC cannot meaningfully perform sanity checking
	as it does not have access to the full server configuration.
993
	(Gitlab #686,!403 git 68b2cb0385779ef0c520164e418dee124d7cb364)
994

995 996 997 998
1606.	[bug]		tmark
	Corrected an error with retrieving DHCPv6 leases, whose IAID
	values are larger than int32_t max, from Postgresql lease
	databases.
999
	(Gitlab #651,!384, git 67e047df61d56558d474514a21ed0db96152557a)
1000

1001 1002 1003 1004 1005 1006 1007
1605.	[func]		marcin
	Extended mysql_cb hooks library to support new API calls for
	managing the DHCP servers in the database. In addition, added
	support for associating the global parameters with the server
	tags.
	(Gitlab #642,!373, git 8ca1021809a6c44cf8a6589a959e94ca9ca76c29)

1008 1009 1010 1011 1012
1604.	[bug]		fdupont
	Improved configuration failure messages when the problem is
	from the configuration backend and not the configuration file.
	(Gitlab #616,!379, git 637e9f03cc502068822ab0310f2e070d4a4da339)

1013
1603.	[perf]		tmark
1014 1015 1016 1017
	High Availability now registers its HTTP sockets with Interface
	Manager's main thread allowing the thread can monitor them for
	IO readiness. This should improve the responsiveness of HA peers
	to each other.
1018
	(Gitlab #691,!395, git 4a0b024bc6d83b26fe702d95ee7ce0c914b37d8e)
1019

1020 1021 1022 1023
1602.	[func]		fdupont
	Added more information to sanity-checker log messages.
	(Gitlab #685,!392, git 5367cd1196662739bbff5e99072ab6a55cfb0489)

1024 1025 1026 1027 1028
1601.	[func]		fdupont
	Kea servers now add the lease validity lifetime to informational
	lease allocation log messages.
	(Gitlan #694,!399, git cb29b532cf1f8790f9752d7e8253b0aa31ce05e6)

1029 1030 1031 1032
1600.	[bug]		fdupont
	Fixed prefixLengthFromRange() routine.
	(Gitlab #583.!377, git 10bd31217d8a0a77345c4cba7a59314f70c1b509)

1033 1034 1035 1036 1037 1038 1039
1599.	[perf]		marcin
	Improved performance of the DHCPv6 server running with High
	Availability by aggregating multiple lease updates in a single
	lease6-bulk-apply command instead of generating multiple
	lease6-update commands, one for each allocated lease.
	(Gitlab #689,!394, git 65021b840b94da3d118e541fba5469c8ed15175b)

1040 1041 1042 1043 1044
1598.	[bug]		razvan
	Added unittests for long (> 65536 chars) tokens in parsed configs
	so any crash related to parsers could be detected.
	(Gitlab #604,!376, git 811735b67fcdb5592c3e020792c154f2f454259c)

1045
1597.	[func]		fdupont
1046
	Added new configuration parameters for handling user lease
1047
	time hints to kea-dhcp4: min-valid-lifetime and max-valid-lifetime;
1048
	and to kea-dhcp6: min-preferred-lifetime, max-preferred-lifetime,
1049 1050 1051
	min-valid-lifetime, and max-valid-lifetime.
	(Gitlab #295,!325, git 8641448c4106bf28ea32df72e5e0ad520d3946ae)

1052 1053 1054 1055 1056
1596.	[func]		marcin
	Implemented lease6-bulk-apply command in the lease_cmds hooks
	library.
	(Gitlab #683,!390, git 122473c18b632ddfa22b8a48f6d9399bc18e2598)

1057 1058
1595.	[func]		fdupont
	Removed unused t1_ and t2_ members from internal lease class.
1059
	(Gitlab #567,!357, git 6072db5f4ca6cfa9573152c255f97dd170acbd57)
1060

1061 1062 1063 1064 1065 1066 1067 1068 1069 1070
1594.	[bug]		fdupont
	Kea no longer uses the .../var/kea directory, for instance pid
	files are now in .../var/run/kea.
	BEWARE this applies to the kea-dhcp6-serverid file so if the
	server will not find the file at its new location it will believe
	it is the first time it is being started and will generate a new
	server DUID.  If that happens, clients will keep trying to get to
	the old server and be confused.
	(Gitlab #538,!334, git 928b9ae57452aae1dff92ad689ba180fa975381c)

1071 1072 1073 1074 1075 1076
1593.	[bug]		marcin
	Fixed a bug in the Kea Control Agent which caused a sporadic crash
	after a tiemout while sending the HTTP response to the controlling
	client.
	(Gitlab #491,!363, git ff204dfe4dd80702f8bb2edf83f8486e019a7e04)

1077 1078 1079
1592.	[build]		tmark
	Files related to YANG and netconf are now only installed
	when the build is configured with --with-syspro.
1080
	(Gitlab #584,!364, git 350ae513ed4e8e8e07b159658f88ec7d70b644d3)
1081

1082 1083 1084 1085
1591.	[doc]		razvan
	Fixed classify and pd-exclude documentation examples.
	(Gitlab #590,!380, git 26b04d2d2d2a88be6abc5879a2fb48e05f0003fd)

1086 1087 1088 1089 1090 1091
1590.	[func]		fdupont
	It is now possible to specify hostname-char-set and
	hostname-char-replacement at the global scope allowing to sanitize
	host names without requiring a dhcp-ddns entry.
	(Gitlab #540,!374, git 0a5979369902070ee0c4faf3b713627455b99489)

1092 1093 1094 1095 1096
1589.	[bug]		razvan
	Fixed configuring kea with tools/cql_config when using --with-cql
	from source.
	(Gitlab #522,!261, git bf7debc182e094a8b34f1f2df99cf4e9f84c8906)

1097 1098 1099 1100 1101
1588.	[func]		marcin
	Extended APIs of the DHCPv4 and DHCPv6 configuration backends with
	the management functions for the server tags.
	(Gitlab #641,!352, git 022d2266e71ced7ec79e0717298ca8e88330a7e7)

1102
1587.	[bug]		razvan
1103 1104
	Fixed IPv6 prefix delegation pools retrieval from the MySQL
	Configuration Backend.
1105 1106
	(Gitlab #637,!349, git 483273734e8608ed68624d7a868f20672c859c95)

1107
Kea 1.6.0-beta (development) released on May 29, 2019
1108

1109
1586.	[build]		razvan, marcin
1110 1111
	Bumped up libraries version numbers for Kea 1.6.0 beta release.
	(Gitlab #617,!340, git c0434bf882b6ec483120e39f6b70b5a40fe7c711)
1112

1113
1585.	[bug, func]	marcin
1114 1115 1116
	MySQL Configuration Backend supports DHCPv6 interface-id parameter.
	(Gitlab #628,!341, git 3a07c636ba4c7fceabe59ec597c44a9c8e3367eb)

1117 1118 1119 1120 1121
1584.	[doc]		marcin
	Documented Kea Configuration Backend in the Kea Administrator
	Reference Manual.
	(Gitlab #71,!314, git 3a65b7a9104f2a988dacf1acc26312b4259e958d)

1122 1123 1124 1125 1126 1127
1583.	[bug]		fdupont, marcin
	Corrected a bug which caused failures to merge a subnet from the
	Configuration Backend into the DHCP server's configuration
	when subnet identifier was modified.
	(Gitlab #492,!252, git c9aba2b5e915c27a8539e6b8f0498179ba896da4)

1128 1129 1130
1582.	[bug]		tmark
	Input values for DHCPv4 and DHCPv6 options of type 'string'
	will now be trimmed of any trailing null bytes (0x0).
1131
	(Gitlab #539, !330, git b126558e9e39e9bff517dceac25a00e96d150085)
1132

1133

1134 1135 1136 1137 1138 1139
1581.	[bug]		marcin
	Corrected a bug whereby the DHCPv6 server did not take into
	account a relay address specified at the shared network level
	during the subnet selection.
	(Gitlab #620,!332, git c2383e404a5227f6b55655c09ccdc03930815500)

Tomek Mrugalski's avatar
Tomek Mrugalski committed
1140 1141 1142 1143 1144
1580.	[bug]		jonatan.raudsepp
	Compilation fix for Alpine linux in Perfdhcp code. Thanks to
	Jonatan Raudsepp for sending a patch!
	(Gitlab #624,!337, git 19321df9e4490b75ac7b322afec9d231bcb6ffe3)

1145
1579.	[bug]		razvan
1146 1147
	Fixed a bug which caused setting dhcp4o6-port to not function via
	Kea configuration backend.
Tomek Mrugalski's avatar
Tomek Mrugalski committed
1148
	(Gitlab #577,!331, git 98c24fe1873795bbc94d426c54c588b05d79406f)
1149

1150 1151 1152 1153 1154 1155 1156 1157
1578.	[func]		fdupont
	The configuration syntax has changed. The Logging scope that used
	to be shared between all servers has been deprecated. Each daemon
	is supposed to define its own loggers using 'loggers' array. The
	old configuration syntax is still accepted, but is considered
	deprecated.  Kea 1.6 will accept it, but that capability will be
	removed in the future. Please migrate your configuration to new
	syntax.
Francis Dupont's avatar
Francis Dupont committed
1158
	(Gitlab #208,!196, git 37b8ec6c2c4b64681059f8fad26d112adbb7ee2b)
1159

Razvan Becheriu's avatar
Razvan Becheriu committed
1160 1161
1577.	[func]		razvan
	Implemented host reservations page retrieval for Cassandra.
Razvan Becheriu's avatar
Razvan Becheriu committed
1162
	(Gitlab #511,!278, git 152e82b49f5e5abd9d3a2a4825ed8620973f5ef1)
Razvan Becheriu's avatar
Razvan Becheriu committed
1163

1164 1165 1166 1167
1576.	[doc]		fdupont
	New commands cache-get-by-id and cache-size are now documented.
	(Gitlab #594,!324, git 3753008cc77f71457b5d777560d8e36dc56e7acd)

Razvan Becheriu's avatar
Razvan Becheriu committed
1168 1169 1170
1575.	[bug]		razvan
	Fixed issue with keactrl logging error when trying to stop running
	services.
Razvan Becheriu's avatar
Razvan Becheriu committed
1171
	(Gitlab #534,!327, git 6ddee0a93ec4ad692cc385150c159d9e8da5232d)
Razvan Becheriu's avatar
Razvan Becheriu committed
1172

Razvan Becheriu's avatar
Razvan Becheriu committed
1173 1174 1175 1176
1574.	[bug]		razvan
	Add logging to the MySQL config backend.
	(Gitlab #398,!315, git bc46fd3420afdf60ae8841866e8458f7f6e072e8)

Razvan Becheriu's avatar
Razvan Becheriu committed
1177 1178 1179 1180
1573.	[bug]		razvan
	Fixed build sysrepo from sources using sysrepo_config.
	(Gitlab #523,!262, git b86864a9b058a18eaaded2273dc5f40a9ec97c78)

1181 1182 1183
1572.	[bug]		tmark
	Corrected an issue where kea-dhcp6 was incorrectly scheduling DNS
	entry removals when renewing leases with generated FQDNs.
1184
	(Gitlab #577,!310, git 362f40bebbdbe083ec6420a43ee1c050edf6bba6)
1185

1186 1187 1188 1189 1190
1571.	[bug]		marcin
	The mysql_cb hooks library registers the MySQL backend for the
	DHCPv6 server.
	(Gitlab #603,!322, git 1ede298fcdc7a9b7018b6e300e2d759e33f73645)

1191 1192 1193 1194 1195
1570.	[bug]		marcin
	Corrected the bug in the Kea HTTP library which could cause a server
	to assert when system clock was modified during the transaction.
	(Gitlab #599,!320, git 958abe5063b6e602c0070e336524e313c3a87671)

1196 1197 1198 1199 1200 1201 1202
1569.	[perf]		fdupont
	Improved performance of the DHCPv4 server in cases when
	match-client-id set disabled by removing unnecessary query to the
	lease database."
	(Gitlab 509,!272, git 2ad41651c1118fe6f7dfb918df0694dd254706f1)

1568.	[bug]		tmark
1203 1204 1205 1206 1207
	kea-dhcp6 now properly skips sanity checking prefix leases.
	Prior to this it was incorrectly subjecting them to sanity
	checks during memfile lease file reloads and then flagging
	the leases as incorrect.
	(Gitlab #591,!#313, git 12262c5df19673652be73cf1dd62d07527bee95d)
1208

1209 1210 1211 1212 1213 1214 1215 1216
1567.	[bug]		marcin
	Kea HTTP client now always includes Host header in all HTTP requests.
	The Host header is required in all HTTP/1.1 requests. This corrects
	the problem whereby HA peers were unable to communicate via reverse
	HTTP proxy because the proxy was responding with Bad Request status
	when no Host header was included.
	(Gitlab #360,!305, git ddb6dbf4cf63e98d3954c5d46e0311abc4fd6cfc)

1217 1218
1566.	[func]		tmark
	kea-dhcp6 can now be configured to calculate values to
1219
	send to clients for T1 and T2 times. Prior to this
1220
	it was only possibly to specify explicit values.
Thomas Markwalder's avatar
Thomas Markwalder committed
1221
	(Gitlab #365,!296, git 144b83a84c836d6ff17620b35cb74f830b13c2eb)
1222

1223 1224 1225 1226 1227
1565.	[func]		marcin
	MySQL Config Backend returns server tags associated with the
	configuration elements.
	(Gitlab #579,!309, git 1e2648df047fe964e8ad3e9deb1c85eea32b1219)

Razvan Becheriu's avatar
Razvan Becheriu committed
1228
1564.	[func]		fdupont
1229 1230 1231 1232 1233
	Implemented two new commands to manage subnets:	subnet4-update and
	subnet6-update. They allow an update of existing subnets
	configuration.
	(Gitlab #465,!265, git 71eb9188033f81dab56fc5a847a39f5497398b62)

Razvan Becheriu's avatar
Razvan Becheriu committed
1234 1235
1563.	[bug]		razvan
	Fixed compilation of google benchmarks.
Razvan Becheriu's avatar
Razvan Becheriu committed
1236 1237
	(Gitlab #520,!260, git 11aa890d30ecce5518b9f0bad389feea6be78167)

1238 1239 1240 1241 1242
1562.	[bug]		marcin
	Corrected a bug whereby the DHCP server would trigger a segfault
	upon termination when MySQL configuration backend was in use.
	(Gitlab #571,!306, git 705e7bb6dd27ec90dd2807d4aac0905e3cb13de4)

Thomas Markwalder's avatar
Thomas Markwalder committed
1243
1561.	[func]		tmark
1244 1245
	kea-dhcp6 now automatically deletes configuration elements
	that have been deleted from configuration backends.
1246
	(Gitlab #566,!304, git 2e85376f1b57187b822c662144380e04372cffff)
1247

1248 1249 1250 1251 1252
1560.	[bug]		fdupont
	kea-dhcp4 now permits option code values of 0 and 255 for
	options defined in option spaces other than the "dhcp4" space.
	(Gitlab #564,!300, git 7a0a0b84d91893f08c0ee6f236daa05bede65166)

1253 1254 1255 1256
1559.	[func]		fdupont
	Added DHCPv6 support to the MySQL Config Backend hook.
	(Gitlab #397,!244, git 980091ecd717e41a61f0d7f6808213e450647d8e)

Thomas Markwalder's avatar
Thomas Markwalder committed
1257 1258 1259 1260 1261 1262
1558.	[func]		tmark
	In addition to a continuous string of digits, hexadecimal
	literals may now be a series of one or more octets separated
	by either colons or spaces.
	(Gitlab #484, git 251efcd5f518a215173845b22555276df0e0ffc6)

1263 1264 1265 1266 1267 1268 1269
1557.	[bug]		marcin
	Added support for "reservation-mode" parameter in the shared network
	configuration parsers. It corrects a bug in Configuration Backend
	whereby host reservation mode was not stored in the database when
	specified via remote-network4-set command.
	(Gitlab #517,!301, git e6533001e9d850432254d3cfe995a4f7abcee6e2)

1270 1271 1272 1273 1274
1556.	[bug]		fdupont
	Corrected parser for option definitions to refuse definitions with
	duplicate code or name.
	(Gitlab #503,!246, git 0befb653277463cd8f88740119fe90a93dbb1466)

1275 1276 1277 1278 1279
1555.	[bug]		fdupont
	Corrected parsers for option definitions to prevent setting out of
	range option code values.
	(Gitlab #500,!247, git 5c139602d7656df74060fee63461ffba4f290547)

1280 1281 1282 1283 1284
1554.	[func]		tmark
	kea-dhcp6 now uses globals, option definitions, options,
	share-networks, and subnets from configuration back ends.
	(Gitlab #413,!288, git ff367e273ed8763b354db272c5955a78203d865e)

1285 1286 1287 1288