mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-08-31 22:15:23 +00:00
[1651] Control interface in DHCPv4 refactored into separate class
- See ControlledDhcpv4Srv class for msgq support.
This commit is contained in:
@@ -20,11 +20,20 @@
|
||||
* @section dhcpv4Session BIND10 message queue integration
|
||||
*
|
||||
* DHCPv4 server component is now integrated with BIND10 message queue.
|
||||
* The integration is performed by establish_session() and disconnect_session()
|
||||
* functions in src/bin/dhcp4/main.cc file. isc::cc::Session cc_session
|
||||
* The integration is performed by establishSession() and disconnectSession()
|
||||
* functions in isc::dhcp::ControlledDhcpv4Srv class. main() method deifined
|
||||
* in the src/bin/dhcp4/main.cc file instantiates isc::dhcp::ControlledDhcpv4Srv
|
||||
* class that establishes connection with msgq and install necessary handlers
|
||||
* for receiving commands and configuration updates. It is derived from
|
||||
* a base isc::dhcp::Dhcpv4Srv class that implements DHCPv4 server functionality,
|
||||
* without any controlling mechanisms.
|
||||
*
|
||||
* ControlledDhcpv4Srv instantiates several components to make management
|
||||
* session possible. In particular, isc::cc::Session cc_session
|
||||
* object uses ASIO for establishing connection. It registers its socket
|
||||
* in isc::asiolink::IOService io_service object. Typically, other components that
|
||||
* use ASIO for their communication, register their other sockets in the
|
||||
* in isc::asiolink::IOService io_service object. Typically, other components
|
||||
* (e.g. auth or resolver) that use ASIO for their communication, register their
|
||||
* other sockets in the
|
||||
* same io_service and then just call io_service.run() method that does
|
||||
* not return, until one of the callback decides that it is time to shut down
|
||||
* the whole component cal calls io_service.stop(). DHCPv4 works in a
|
||||
@@ -43,7 +52,10 @@
|
||||
* be used with and without message queue. Second benefit is related to the
|
||||
* first one: \ref libdhcp is supposed to be simple and robust and not require
|
||||
* many dependencies. One notable example of a use case that benefits from
|
||||
* this approach is a perfdhcp tool.
|
||||
* this approach is a perfdhcp tool. Finally, the idea is that it should be
|
||||
* possible to instantiate Dhcpv4Srv object directly, thus getting a server
|
||||
* that does not support msgq. That is useful for embedded environments.
|
||||
* It may also be useful in validation.
|
||||
*
|
||||
* @page dhcpv6 DHCPv6 Server Component
|
||||
*
|
||||
|
Reference in New Issue
Block a user