 Kea authors and contributors
------------------------------

Primary developers:
 - Tomek Mrugalski (DHCPv4, DHCPv6 components, prefix delegation,
                    memfile, database interface, core libdhcp++,
                    host reservation, MAC extraction in DHCPv6,
                    statistics manager, kea-shell, netconf, flex/bison
                    parsers, flex-id, documentation, config backend,
                    ddns_tuning, CI, documentation, forensic logging,
                    host commands)
 - Marcin Siodelski (DHCPv4, DHCPv6 components, options handling, perfdhcp,
                     host reservation, lease file cleanup, lease expiration,
                     control agent, shared networks, high availability,
                     config backend, random allocator, free lease queue
                     allocator)
 - Thomas Markwalder (DDNS, user_chk, global host reservations, stat commands,
                      congestion handling, config backend, multi-threading mode
                      of high availability, forensic logging, leasequery,
                      ddns_tuning, bulk leasequery, ping-check, perfmon)
 - Wlodek Wencel (testing, release engineering, hammer, perfdhcp)
 - Francis Dupont (crypto, flex/bison parsers, perfdhcp, control agent,
                   radius, netconf, config backend, multi-threading,
                   GSS-TSIG, bulk leasequery)
 - Razvan Becheriu (cassandra, netconf, multi-threading, forensic logging,
                    run script hook, multi-threading mode of high availability,
                    GSS-TSIG, statistics)
 - Vicky Risk (documentation)
 - Suzanne Goldlust (documentation)
 - Andrei Pavel (build system, documentation, hammer, netconf, perfdhcp,
                 radius, release engineering, shell scripts, testing, limits,
                 statistics)
 - Peter Davies (documentation)
 - Slawek Figiel (documentation, host reservations, perfdhcp)
 - Marcin Godzina (documentation, release engineering, testing)
 - Piotrek Zadroga (documentation, options handling, perfdhcp, ping-check,
                    host_cmds)
 - Darren Ankney (documentation)

Former developers who are no longer active:
 - Stephen Morris (Hooks, MySQL)
 - Jeremy C. Reed (documentation, build system, testing, release engineering)
 - Brian Reid (logo design)
 - Shawn Routhier (lease file cleanup)
 - Michal Nowikowski (testing, hammer, release engineering)
 - Dan Theisen (documentation, option handling, shell scripts)

Main area of work mentioned in parentheses. The lists are in a roughly
chronological order.

 Forensic log (forensic_log)
  - Thomas Markwalder, Tomek Mrugalski, Francis Dupont, Marcin Siodelski, Razvan Becheriu

 Flex-id (flex_id)
  - Tomek Mrugalski, Francis Dupont

 Host commands (host_cmds)
  - Tomek Mrugalski, Francis Dupont

 Subnet commands (subnet_cmds)
  - Marcin Siodelski, Thomas Markwalder, Tomek Mrugalski, Francis Dupont

 RADIUS (radius)
  - Francis Dupont, Andrei Pavel, Razvan Becheriu

 Host Caching (host_cache)
  - Francis Dupont

 Class commands (class_cmds)
  - Marcin Siodelski, Tomek Mrugalski, Francis Dupont

 Config Backend Commands (cb_cmds)
  - Marcin Siodelski, Francis Dupont

 Lease Query (lease_query)
  - Thomas Markwalder

 GSS-TSIG (gss_tsig)
  - Francis Dupont, Razvan Becheriu

 DDNS-Tuning (ddns_tuning)
 - Tomek Mrugalski, Thomas Markwalder

 Lease Limiting, Rate Limiting (limits)
  - Andrei Pavel

 Role Based Access Control (rbac)
  - Francis Dupont

Kea uses parts of the code of the now-defunct BIND 10 project. The following
people contributed to BIND 10 code:

Chen Zhengzhang
Dmitriy Volodin
Evan Hunt
Francis Dupont
Haidong Wang
Haikuo Zhang
Han Feng
Jelte Jansen
Jeremy C. Reed
Xie Jiagui
Jin Jian
JINMEI Tatuya
John DuBois
Kazunori Fujiwara
Marcin Siodelski
Michael Graff
Michal Vaner
Mukund Sivaraman
Naoki Kambe
Paul Selkirk
Shane Kerr
Shen Tingting
Stephen Morris
Thomas Markwalder
Tomek Mrugalski
Yoshitaka Aharen
Zhang Likun

We have received the following contributions:

 - David Carlier
   2013-11: memfile fixes
   2013-12: better error handling when port is in use
   2013-12: interface detection for BSD systems
   2014-04: PostgreSQL support

 - Jiri Popelka, Red Hat
   2014-08: config files examples permission fix
   2014-08: compilation fix for armv7
   2014-08: configure.ac update: AC_PROG_LIBTOOL => LT_INIT
   2014-08: PostgreSQL compilation fix on i686
   2015-12: compilation fix in MySQL host data source
   2016-02: Fixed missing slashes in path_replacer.sh

 - Adam Osuchowski, Silesian University of Technology
   2014-09: Examples corrected in Kea ARM
   2019-02: Hooks installation directory fixed.
   2019-02: Possible syntax error in keactrl fixed.

 - Nicolas Chaigneau, Capgemini
   2014-09: Fix for interfaces with multiple addresses in perfdhcp
   2015-11: query4 parameter added to pkt4_send hook point

 - Marcin Wyszynki, Facebook
   2014-11: Export CalloutManager headers for testing statically linked
            libraries.

 - David Gutierrez Rueda, CERN
   2014-12: Support for client link-address option in DHCPv6 (RFC6939)

 - Adam Kalmus, Gdansk University of Technology
   2014-12: Extract MAC address from DUID-LL and DUID-LLT types
   2015-01: Extract MAC address from remote-id
   2015-05: MySQL schema extended to cover host reservation
   2015-10: Common MySQL Connector Pool
   2015-12: MySQL host data source implemented
   2016-02: IPv6 reservations implemented

 - Jinmei Tatuya
   2015-10: Pkt4o6 class improvements
   2015-11: split Dhcpv4Srv::run() into run() and processPacket()
   2021-02: Fix keactrl exit code when netconf is not build

 - Sebastien Couture, Ubity Inc
   2015-12: Fixes to MySQL schema creation

 - Angelo Failla, Facebook
   2016-04: Fixes for transaction id generation in perfdhcp
   2016-08: Using a file as a source of MAC addresses to be used
            in new transactions.
   2016-08: Support for generating relayed DHCPv6 traffic.

 - Razvan Becheriu, Qualitance
   2016-05: Added support for Cassandra
   2017-12: Significant update for Cassandra backend
   2018-01: Host reservations for Cassandra
   2018-01: Various changes (github 54)
   2018-02: Support for Google benchmark added (github 36)
   2018-02: exit-wait-time param added to perfdhcp (github 55)
   2018-03: Cassandra: host delete, fixed DHCPv4 fields, user contexts,
            Postgres: hwaddress source, type storage (github 70)
   2018-07: Sysrepo detection improvements

 - Patrik Lundin
   2016-07: Replace test by expr for < in configure.ac
   2016-11: Fixes in Lease File Cleanup unit test

 - Michal Humpula (mihu)
   2016-07: Response to DHCPINFORM is sent to port 68

 - Andreas Rammhold (andir)
   2016-09: Compilation fixes for GCC 6, using C++14.

 - Yusef Shaban (xxwolfsrainxx)
   2016-09: MySQL database creation scripts use single quotes for
            strings to avoid issues with creation of the database
            when MySQL server operates in ANSI_QUOTES mode.

 - Cristian Secareanu, Qualitance
   2016-10: Support for IPv6 prefix and PDEXCLUDE option

 - Andrei Pavel, Qualitance
   2016-10: Support for DHCPv6 options defined in RFC6603 and RFC7598
   2017-02: Doxygen support updated to 1.8.11
   2017-02: Improved PgSQL backend version handling
   2017-02: Numerous spelling mistakes
   2017-12: Significant update for Cassandra backend
   2018-01: Host reservations for Cassandra
   2018-01: Uniform compilation
   2018-01: Various changes (github 54,43)
   2018-02: Documentation upgraded to DocBook 5.0
   2018-02: --with-dhcp-XXX renamed to --with-XXX
   2018-02: Support for Google benchmark added (github 36)
   2018-02: exit-wait-time param added to perfdhcp (github 55)
   2018-07: Sysrepo detection improvements
   2020-05: Fix exit-wait-time in perfdhcp

 - Vincent Legout
   2016-11: Fixed serveral spelling mistakes

 - Sebasian Schrader
   2017-01: Fix build dir in doc/guide/Makefile.am

 - Marvin Frick (MrMarvin)
   2017-04: -h and --host parameters added to kea-admin

 - Olivier Clavel (zeitounator)
   2017-04: Improvements in valgrind test script

 - Josh Soref (jsoref)
   2017-07: Many spelling corrections.

 - Walt Steverson (waltsteverson)
   2017-07: Compilation fixed for Alpine Linux
   2017-07: option6_pdexclude.h now installed properly

 - Ebben Aries
   2017-10: Option length checks improvements for the V-I Vendor Class option

 - Ryan Goodfellow (rcgoodfellow)
   2018-01: Fix kea-admin typo breaking lease-dump

 - Sunil Mayya
   2018-07: support for Authentication option in DHCPv6
   2018-07: support storage of Authentication keys in host structure
   2018-08: Optimized query for host reservation from the backends

 - Piotr Strzyżewski
   2018-07: YANG model for DHCPv4 Kea

 - Vicky Risk
   2018-08: Documentation clean up
   2018-10: API documentation clean ups

 - Franciszek Gorski
   2018-10: Makefile bug fixed
   2019-07: Statistics enhancements
   2019-09: Statistics initialization enhancements

 - Suzanne Goldlust
   2018-10: API documentation

 - lpaserati, Thorsten Krohn
   2018-11: Two bugfixes in kea-admin

 - Kristoffer Larsen
   2019-10: Changes in alloc_engine_messages.mes are now picked up correctly.

 - Niclas Rosenvik
   2020-01: Fix in the gtest detection scripts.

 - Carsten Strotman
   2020-11: Several Kea ARM corrections.

 - Khem Raj
   2021-05: gcc11 compilation fixes.
   2025-10: clang++21 compilation fixes.

 - Sriram Rajagopalan
   2021-08: fix for a type mismatch in libdhcp which could have lead to an
            an interface with index of MAX_UINT32_T to be set in a Pkt when the
            index was meant to be reset instead

 - Brad Smith
   2021-08: compilation fix for upcoming boost 1.77

 - John Dickinson
   2021-11: Patch that adds support for v6 DUIDs to be embedded in v4 client
            identifiers per RFC 4361.  This allows Kea to support DDNS for
            dual-stack clients per RFC 4703.

 - Peter Tirsek
   2022-01: Patch that adds new parameter "timestamp-format" in forensic log
            hook library to be able to configure the timestamp format for log
            file. Also adds the '%Q' extra format which adds the microseconds
            subunits.

 - rski
   2022-09: Improved build compatibility in Kea between g++ and Boost libraries.

 - Kyle Birkeland
   2023-02: Contributed a patch that enforces address suitability for globally
            reserved addresses for both kea-dhcp4 and kea-dhcp6.

 - Kevin P. Fleming
   2023-02: Fixed several examples in DHCPv6 section of the ARM.

 - Dimitry Andric
   2024-09: Added support for libc++ 19 and later.

 - Philip Prindeville
   2024-09: Brought down the number of utilities keactrl depends on.

 - q66
   2025-01: Added support for building with Boost 1.87.

 - Darwin4053
   2025-06: Fixed arguments order in flex option hook library debug messages.

 - liyunqing_kylin
   2025-09: Reported and provided a patch that fixes a dead lock in ping-check
            hooks library.
   2025-10: Reported and tested a data race issue in ping-check hooks library.
