1. 10 Jan, 2019 2 commits
  2. 09 Jan, 2019 1 commit
    • Thomas Markwalder's avatar
      [#365,!194] kea-dhcp4 can be configured to calculate T1 and T2 · 9a7cd6e0
      Thomas Markwalder authored
      doc/guide/dhcp4-srv.xml
          Updated user guide with new parameters and details on rules
      
      src/lib/cc/data.cc
          DoubleElement::toJSON(std::ostream& ss) - modified to ensure whole number
           values are suffixed with ".0"
      
      src/lib/utils/doubles.h - new file
         provides a function for equating doubles within a given tolerance
      
      src/lib/cc/simple_parser.*
          SimpleParser::getDouble() - new method for fetching real number
          parameters as DoulbeElements
      
      src/lib/dhcpsrv/network.*
          Added members and support for new paramters to Network4:
              calculate_tee_times_, t1_percent_, t2_percent_
      
      src/lib/dhcpsrv/parsers/dhcp_parsers.cc
      src/lib/dhcpsrv/parsers/simple_parser4.cc
          Added support for new parameters to Subnet4ConfigParser
      
      src/bin/dhcp4/dhcp4_lexer.ll
      src/bin/dhcp4/dhcp4_parser.yy
      src/bin/dhcp4/json_config_parser.cc
          Added parser support for calculate-tee-times, t1-percent, and t2-percent
      
      src/bin/dhcp4/dhcp4_srv.*
          Dhcpv4Srv::setTeeTimes(lease, subnet, resp) - new method for
          determining T1 adn T2 values
      9a7cd6e0
  3. 27 Nov, 2018 1 commit
  4. 22 Nov, 2018 2 commits
  5. 20 Nov, 2018 4 commits
    • Thomas Markwalder's avatar
      [#260,!120] Addressed most of review comments · 924a4f46
      Thomas Markwalder authored
          Addressed all comments except parsing regen and
          refactor of watch sockets in IfaceMgr.  Doing those
          separately.
      924a4f46
    • Thomas Markwalder's avatar
      [#260,!20] Packet queueing is now optional · bbb822b1
      Thomas Markwalder authored
      src/bin/dhcp<4/6>/ctrl_dhcp<4/6>_srv.cc
          ControlledDhcpv<4/6>Srv::processConfig() - now calls
              IfaceMgr::configureDHCPPacketQueue
      
      src/bin/dhcp<4/6>/dhcp<4/6>_parser.yy
          dhpc-queue-control parsing updated to enforce
          enable-queue/queue-type rules
      
      src/bin/dhcp<4/6>/tests/config_parser_unittest.cc
          TEST_F(Dhcp<4/6>ParserTest, dhcpQueueControl)
          TEST_F(Dhcp<4/6>ParserTest, dhcpQueueControlInvalid)
      
      src/lib/dhcp/iface_mgr.*
          IfaceMgr
          - closeSockets()  - now calls stopDHCPReceiver
      
          - openSockets<4/6>() -  now calls startDHCPReceiver
      
          - receive<4/6>Indirect() - new function which monitors receiver
          thread watch sockets, reads DHCP packets from queue
      
          - receive<4/6>Direct() - new function which monitors and reads DHCP
          packets from interface sockets directly
      
          - receive<4/6>() - rewritten to call receive<4/6>Indirect
          if receiver thread is running, otherwise it calls receive<4/6>Direct
      
          - configureDHCPPacketQueue() - new function which either enables queuing
          by creating a new packet queue, or disables it by destroying the
          existing queue
      
      src/lib/dhcp/packet_queue_mgr.h
          PacketQueue::destroyPacketQueue() - new function
      
      src/lib/dhcp/packet_queue_mgr<4/6>.cc
          PacketQueueMgr<4/6>::PacketQueueMgr<4/6>() - no longer creates a
          default packet queue
      
      src/lib/dhcpsrv/cfg_iface.cc
          CfgIface::closeSockets() - removed call to stopDHCPReceiver
          CfgIface::openSockets() - removed call to startDHCPReceiver
      
      src/lib/dhcpsrv/parsers/dhcp_queue_control_parser.*
          DHCPQueueControlParser
          - removed unused family_ member
          - parse() - added support for enable-queue
      
      src/lib/dhcpsrv/tests/dhcp_queue_control_parser_unittest.cc
          - new file
      bbb822b1
    • Francis Dupont's avatar
    • Francis Dupont's avatar
      [182-remove-always-include-fqdn-configuration-parameter-from-d2clientconfig]... · e773c34f
      Francis Dupont authored
      [182-remove-always-include-fqdn-configuration-parameter-from-d2clientconfig] Removed always-include-fqdn
      e773c34f
  6. 14 Nov, 2018 1 commit
  7. 12 Nov, 2018 1 commit
    • Thomas Markwalder's avatar
      [#260,!120] Packet queueing is now optional · eb244004
      Thomas Markwalder authored
      src/bin/dhcp<4/6>/ctrl_dhcp<4/6>_srv.cc
          ControlledDhcpv<4/6>Srv::processConfig() - now calls
              IfaceMgr::configureDHCPPacketQueue
      
      src/bin/dhcp<4/6>/dhcp<4/6>_parser.yy
          dhpc-queue-control parsing updated to enforce
          enable-queue/queue-type rules
      
      src/bin/dhcp<4/6>/tests/config_parser_unittest.cc
          TEST_F(Dhcp<4/6>ParserTest, dhcpQueueControl)
          TEST_F(Dhcp<4/6>ParserTest, dhcpQueueControlInvalid)
      
      src/lib/dhcp/iface_mgr.*
          IfaceMgr
          - closeSockets()  - now calls stopDHCPReceiver
      
          - openSockets<4/6>() -  now calls startDHCPReceiver
      
          - receive<4/6>Indirect() - new function which monitors receiver
          thread watch sockets, reads DHCP packets from queue
      
          - receive<4/6>Direct() - new function which monitors and reads DHCP
          packets from interface sockets directly
      
          - receive<4/6>() - rewritten to call receive<4/6>Indirect
          if receiver thread is running, otherwise it calls receive<4/6>Direct
      
          - configureDHCPPacketQueue() - new function which either enables queuing
          by creating a new packet queue, or disables it by destroying the
          existing queue
      
      src/lib/dhcp/packet_queue_mgr.h
          PacketQueue::destroyPacketQueue() - new function
      
      src/lib/dhcp/packet_queue_mgr<4/6>.cc
          PacketQueueMgr<4/6>::PacketQueueMgr<4/6>() - no longer creates a
          default packet queue
      
      src/lib/dhcpsrv/cfg_iface.cc
          CfgIface::closeSockets() - removed call to stopDHCPReceiver
          CfgIface::openSockets() - removed call to startDHCPReceiver
      
      src/lib/dhcpsrv/parsers/dhcp_queue_control_parser.*
          DHCPQueueControlParser
          - removed unused family_ member
          - parse() - added support for enable-queue
      
      src/lib/dhcpsrv/tests/dhcp_queue_control_parser_unittest.cc
          - new file
      eb244004
  8. 10 Nov, 2018 1 commit
    • Thomas Markwalder's avatar
      [#260,!20] Packet queueing is now optional · bcd5b1f6
      Thomas Markwalder authored
      src/bin/dhcp<4/6>/ctrl_dhcp<4/6>_srv.cc
          ControlledDhcpv<4/6>Srv::processConfig() - now calls
              IfaceMgr::configureDHCPPacketQueue
      
      src/bin/dhcp<4/6>/dhcp<4/6>_parser.yy
          dhpc-queue-control parsing updated to enforce
          enable-queue/queue-type rules
      
      src/bin/dhcp<4/6>/tests/config_parser_unittest.cc
          TEST_F(Dhcp<4/6>ParserTest, dhcpQueueControl)
          TEST_F(Dhcp<4/6>ParserTest, dhcpQueueControlInvalid)
      
      src/lib/dhcp/iface_mgr.*
          IfaceMgr
          - closeSockets()  - now calls stopDHCPReceiver
      
          - openSockets<4/6>() -  now calls startDHCPReceiver
      
          - receive<4/6>Indirect() - new function which monitors receiver
          thread watch sockets, reads DHCP packets from queue
      
          - receive<4/6>Direct() - new function which monitors and reads DHCP
          packets from interface sockets directly
      
          - receive<4/6>() - rewritten to call receive<4/6>Indirect
          if receiver thread is running, otherwise it calls receive<4/6>Direct
      
          - configureDHCPPacketQueue() - new function which either enables queuing
          by creating a new packet queue, or disables it by destroying the
          existing queue
      
      src/lib/dhcp/packet_queue_mgr.h
          PacketQueue::destroyPacketQueue() - new function
      
      src/lib/dhcp/packet_queue_mgr<4/6>.cc
          PacketQueueMgr<4/6>::PacketQueueMgr<4/6>() - no longer creates a
          default packet queue
      
      src/lib/dhcpsrv/cfg_iface.cc
          CfgIface::closeSockets() - removed call to stopDHCPReceiver
          CfgIface::openSockets() - removed call to startDHCPReceiver
      
      src/lib/dhcpsrv/parsers/dhcp_queue_control_parser.*
          DHCPQueueControlParser
          - removed unused family_ member
          - parse() - added support for enable-queue
      
      src/lib/dhcpsrv/tests/dhcp_queue_control_parser_unittest.cc
          - new file
      bcd5b1f6
  9. 07 Nov, 2018 3 commits
  10. 06 Nov, 2018 1 commit
  11. 05 Nov, 2018 1 commit
    • Thomas Markwalder's avatar
      [#42] Implemented PacketQueueMgr class · 90fd7ebf
      Thomas Markwalder authored
      New files:
          src/lib/dhcp/packet_queue_mgr.h
          src/lib/dhcp/packet_queue_mgr4.cc
          src/lib/dhcp/packet_queue_mgr4.h
          src/lib/dhcp/packet_queue_mgr6.cc
          src/lib/dhcp/packet_queue_mgr6.h
          src/lib/dhcp/tests/packet_queue_mgr4_unittest.cc
          src/lib/dhcp/tests/packet_queue_mgr6_unittest.cc
          src/lib/dhcp/tests/packet_queue_testutils.h
      
      src/bin/dhcp4/ctrl_dhcp4_srv.cc
          Cleaned up packet queue config block
      
      src/bin/dhcp4/dhcp4_lexer.ll
      src/bin/dhcp4/dhcp4_parser.yy
      src/bin/dhcp4/tests/config_parser_unittest.cc
          added queue-type
      
      src/bin/dhcp4/dhcp4_messages.mes
          added DHCP4_CONFIG_PACKET_QUEUE message
      
      src/lib/dhcp/Makefile.am
          packet_queue_mgr.h
          packet_queue_mgr4.cc packet_queue_mgr4.h
          packet_queue_mgr6.cc packet_queue_mgr6.h
      
      src/lib/dhcp/iface_mgr.*
          Replaced packet queue members with PQM members
          Added PQM instantion to IfaceMgr ctor
      
      src/lib/dhcp/packet_queue.h
          added getInfo,getInfoStr
      
      src/lib/dhcp/tests/Makefile.am
          packet_queue_mgr4_unittest.cc
          packet_queue_mgr6_unittest.cc
      
      src/lib/dhcpsrv/parsers/queue_control_parser.cc
          added queue-type
      90fd7ebf
  12. 01 Nov, 2018 1 commit
    • Thomas Markwalder's avatar
      [#42, !103] Interrim commit, kea-dhcp4 supports "queue-control" · 036d249f
      Thomas Markwalder authored
          kea-dhcp4 will parse and use "queue-control" to configure ring
          buffer size:
      
          "Dhcp4":
          {
              "queue-control": {
                  # max number of packets the ring will hold
                  "capacity" : 100
              },
          :
      
          This is an interrim commit for testing purposes.
          Expect a fair amount of refactoring in subsequent commits.
      
      New files:
      	src/lib/dhcp/queue_control.cc
      	src/lib/dhcp/queue_control.h
      	src/lib/dhcp/tests/queue_control_unittest.cc
      	src/lib/dhcpsrv/parsers/queue_control_parser.cc
      	src/lib/dhcpsrv/parsers/queue_control_parser.h
      
      src/bin/dhcp4/ctrl_dhcp4_srv.cc
          ControlledDhcpv4Srv::processConfig() -
              added logic to set packet queue controller
      
      src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll
      src/bin/dhcp4/dhcp4_parser.yy
      src/bin/dhcp4/parser_context.*
          Added queue-control parsing
      
      src/bin/dhcp4/json_config_parser.cc
          configureDhcp4Server() - recognize and parse "queue-control"
      
      src/bin/dhcp4/tests/config_parser_unittest.cc
          TEST_F(Dhcp4ParserTest, queueControl)
          TEST_F(Dhcp4ParserTest, queueControlInvalid)
          - new tests
      
      src/lib/dhcp/iface_mgr.*
          IfaceMgr::getPacketQueueControl4()
          IfaceMgr::setPacketQueueControl4()
          IfaceMgr::getPacketQueueControl6()
          IfaceMgr::setPacketQueueControl6()
      
      src/lib/dhcp/packet_queue.*
          Use QueueControl class
      
      src/lib/dhcpsrv/srv_config.*
          Added QueueControl member, getter/setter
          SrvConfig::toElement() - now emits queue-control if not null
      036d249f
  13. 05 Oct, 2018 2 commits
    • Thomas Markwalder's avatar
      [#32,!23] - Added server-tag global to SrvConfig and kea-dhcp4/6 · 7fd4a5c0
      Thomas Markwalder authored
      src/bin/dhcp4/dhcp4_lexer.ll
      src/bin/dhcp4/dhcp4_parser.yy
      src/bin/dhcp4/json_config_parser.cc
          added server-tag
      
      src/bin/dhcp4/tests/config_parser_unittest.cc
          TEST_F(Dhcp4ParserTest, serverTag) - new test
      
      src/bin/dhcp6/dhcp6_lexer.ll
      src/bin/dhcp6/dhcp6_parser.yy
      src/bin/dhcp6/json_config_parser.cc
          added server-tag
      
      src/bin/dhcp6/tests/config_parser_unittest.cc
          TEST_F(Dhcp6ParserTest, serverTag)
      
      src/lib/dhcpsrv/parsers/simple_parser4.cc
      src/lib/dhcpsrv/parsers/simple_parser6.cc
          Added server-tag to global defaults
      
      src/lib/dhcpsrv/srv_config.cc
          Added server_tag_ memger to SrvConfig
      
      src/lib/dhcpsrv/tests/srv_config_unittest.cc
          TEST_F(SrvConfigTest, serverTag)
          TEST_F(SrvConfigTest, unparseConfigControlInfo6) - new tests
      7fd4a5c0
    • Thomas Markwalder's avatar
      [#32,!23] dhcp4 now parses "config-control" element · 8c5e6ce8
      Thomas Markwalder authored
      src/bin/dhcp4/dhcp4_lexer.ll
      src/bin/dhcp4/dhcp4_parser.yy
          Added parsing support for config-control and config-databases
      
      src/bin/dhcp4/json_config_parser.cc
          configureDhcp4Server() - added handler for config-control element
      
      src/bin/dhcp4/parser_context.*
          added CONFIG_CONTROL and CONFIG_DATABASE
      
      src/bin/dhcp4/tests/config_parser_unittest.cc
         TEST_F(Dhcp4ParserTest, configControlInfo) - new test
      8c5e6ce8
  14. 19 Sep, 2018 2 commits
  15. 14 Sep, 2018 1 commit
  16. 12 Sep, 2018 1 commit
  17. 14 Aug, 2018 1 commit
    • Thomas Markwalder's avatar
      [5705] kea-dhcp4 now fully supports globl HRs · 4f8db6c6
      Thomas Markwalder authored
      src/bin/dhcp4/dhcp4_lexer.ll
      src/bin/dhcp4/dhcp4_parser.yy
          Added support for HR_GLOBAL mode
      
      src/bin/dhcp4/tests/dhcp4_test_utils.cc
          Minor modifications to output exception and config text
          when parsing fails.
      
      src/bin/dhcp4/tests/host_unittest.cc
          New tests to make sure reservation matching behaves
          according to reservation modes
      
      src/lib/dhcpsrv/network.cc
      src/lib/dhcpsrv/parsers/dhcp_parsers.cc
          Adding missed bits needed to parse HR_GLOBAL mode
      4f8db6c6
  18. 07 Aug, 2018 1 commit
    • Thomas Markwalder's avatar
      [5704] host backends and kea-dhcp4/6 support global HR storage · f1b3b3c7
      Thomas Markwalder authored
      - Added constants for special SubnetIDs:
          SUBNET_ID_GLOBAL, SUBNET_ID_MAX, SUBNET_ID_UNUSED
      
      - Modified code throughout to use these constants, rather than hard-coded
        values.   Note, MySQL and PostgreSQL host backends convert from NULL to
        UNUSED and back.
      
      - kea-dhcp4/6 servers will now parse a "reservations" element at the global
        level.
      
      src/lib/dhcpsrv/subnet_id.h
          Added constants SubnetID SUBNET_ID_GLOBAL, SUBNET_ID_MAX, SUBNET_ID_UNUSED
      
      src/bin/dhcp4/dhcp4_lexer.ll
      src/bin/dhcp4/dhcp4_parser.yy
      src/bin/dhcp4/json_config_parser.cc
          kea-dhcp4 parsing now handles reservations as a global element
      
      src/bin/dhcp4/tests/config_parser_unittest.cc
          TEST_F(Dhcp4ParserTest, globalReservations) - new test to
          verify global HR parsing
      
      src/bin/dhcp4/tests/dora_unittest.cc
      src/lib/dhcpsrv/cfg_hosts.cc
      src/lib/dhcpsrv/host.cc
      src/lib/dhcpsrv/host_mgr.cc
      src/lib/dhcpsrv/mysql_host_data_source.cc
      src/lib/dhcpsrv/parsers/host_reservation_parser.cc
      src/lib/dhcpsrv/tests/alloc_engine4_unittest.cc
      src/lib/dhcpsrv/tests/alloc_engine_utils.cc
      src/lib/dhcpsrv/tests/host_mgr_unittest.cc
      src/lib/dhcpsrv/tests/host_reservation_parser_unittest.cc
      src/lib/dhcpsrv/tests/host_reservations_list_parser_unittest.cc
      src/lib/dhcpsrv/tests/host_unittest.cc
          Replaced SubnetID 0 with SUBNET_ID_UNUSED
      
      src/lib/dhcpsrv/srv_config.cc
          SrvConfig::toElement() - added global reservations output
      
      src/lib/dhcpsrv/tests/cfg_hosts_unittest.cc
          TEST_F(CfgHostsTest, globalSubnetIDs)
          TEST_F(CfgHostsTest, unusedSubnetIDs) - new tests
      
      src/lib/dhcpsrv/tests/host_unittest.cc
          Replaced SubnetID 0 with SUBNET_ID_UNUSED
          TEST_F(HostTest, toText)  - updated to verify global ID output
      
      src/lib/dhcpsrv/tests/mysql_host_data_source_unittest.cc
          TEST_F(MySqlHostDataSourceTest, globalSubnetId4)
          TEST_F(MySqlHostDataSourceTest, globalSubnetId6) - new tests
      
      src/lib/dhcpsrv/tests/srv_config_unittest.cc
          TEST_F(SrvConfigTest, unparseHR) - added global HRs
      
      src/lib/dhcpsrv/testutils/generic_host_data_source_unittest.*
          GenericHostDataSourceTest::testGlobalSubnetId4()
          GenericHostDataSourceTest::testGlobalSubnetId6()
      
      src/bin/dhcp6/dhcp6_lexer.ll
      src/bin/dhcp6/dhcp6_parser.yy
      src/bin/dhcp6/json_config_parser.cc
          kea-dhcp6 now parses reservations as a global element
      
      src/bin/dhcp6/tests/config_parser_unittest.cc
          TEST_F(Dhcp6ParserTest, globalReservations) - new test
      f1b3b3c7
  19. 30 Jul, 2018 1 commit
  20. 27 Jul, 2018 1 commit
    • Thomas Markwalder's avatar
      [5680] kea-dhcp4/6 now parse hostname-char-set and hostname-char-replacment params · ea3d6bca
      Thomas Markwalder authored
      Added to parsing and parsing unit tests.
      Servers do not yet utilize the values.
      
      Modified:
      
      src/bin/dhcp4/dhcp4_lexer.ll
      src/bin/dhcp4/dhcp4_parser.yy
      
      src/bin/dhcp4/tests/config_parser_unittest.cc
      src/bin/dhcp4/tests/fqdn_unittest.cc
      src/bin/dhcp4/tests/get_config_unittest.
      
      src/bin/dhcp6/dhcp6_lexer.ll
      src/bin/dhcp6/dhcp6_parser.yy
      
      src/bin/dhcp6/tests/config_parser_unittest.cc
      src/bin/dhcp6/tests/fqdn_unittest.cc
      src/bin/dhcp6/tests/get_config_unittest.
      ea3d6bca
  21. 26 Apr, 2018 1 commit
    • Thomas Markwalder's avatar
      [5535] kea-dhcp4 parsing now supports relay "ip-addresses" · c71f3d38
      Thomas Markwalder authored
      src/bin/dhcp4/dhcp4_lexer.ll
      src/bin/dhcp4/dhcp4_parser.yy
          Modified to support "ip-address" and
          "ip-addresses" under "relay"
      
      src/bin/dhcp4/tests/get_config_unittest.cc
          Updated per process.
      
      src/bin/dhcp4/tests/config_parser_unittest.cc
          void checkResult() - modified to output parsing error text
      
          TEST_F(Dhcp4ParserTest, subnetRelayInfo)
          TEST_F(Dhcp4ParserTest, classifySubnets)
          - updated to use new Network methods
      
          TEST_F(Dhcp4ParserTest, subnetRelayInfoList) - new test
          to verify a list of addresses in relay
      c71f3d38
  22. 06 Apr, 2018 1 commit
  23. 05 Apr, 2018 1 commit
  24. 01 Apr, 2018 1 commit
  25. 12 Mar, 2018 4 commits
  26. 28 Feb, 2018 1 commit
    • Thomas Markwalder's avatar
      [5477] dhcpsrv/postgres and kea-dhcp4 now support db reconnect · 249219f1
      Thomas Markwalder authored
      kea-dhcp4
          added support for max-reconnect-tries and reconnect-wait-time
          to lease and host db parsers
      
          Added a callback for when DB backends detect loss of connectivity
      
          Added a self-rescheduling method to attempt to reconnect to the
          backends if retries are enabled
      
      dhcpsrv
          Added a callback that DatabaseConnection derivations should invoke
          when they lose connectivity.
      
          Added an optional callback parameter from CfgDbAccess::createManagers()
          all the way down to DatabaseConnection ctor.
      
          pgsql_connection.cc
              PgSqlConnection::~PgSqlConnection() - Added logic to close the
              connection only when the connect state is still OK.
              Otherwise it likes to core dump.
      
              PgSqlConnection::checkStatementError() - Modified to invoke the
              connectivity lost callback on "fatal" errors
      
          pgsql_lease_mgr_unittest.cc
          pgsql_host_data_source_unittest.cc
              Added tests to verify that the lost callback is NOT invoked on an
              open failure
      249219f1
  27. 12 Feb, 2018 1 commit
  28. 29 Jan, 2018 1 commit