// Copyright (C) 2015-2016 Internet Systems Consortium, Inc. ("ISC") // // Permission to use, copy, modify, and/or distribute this software for any // purpose with or without fee is hereby granted, provided that the above // copyright notice and this permission notice appear in all copies. // // THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH // REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY // AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, // INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM // LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE // OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. #ifndef DHCP6_DHCP4O6_IPC_H #define DHCP6_DHCP4O6_IPC_H /// @file dhcp6_dhcp4o6_ipc.h Defines the Dhcp4o6Ipc class. /// This file defines the class Kea uses to act as the DHCPv6 server /// side of DHCPv4-over-DHCPv6 communication between servers. /// #include #include namespace isc { namespace dhcp { /// @brief Handles DHCPv4-over-DHCPv6 IPC on the DHCPv6 server side class Dhcp4o6Ipc : public Dhcp4o6IpcBase { protected: /// @brief Constructor /// /// Default constructor Dhcp4o6Ipc(); /// @brief Destructor. virtual ~Dhcp4o6Ipc() { } public: /// @brief Returns pointer to the sole instance of Dhcp4o6Ipc /// /// Dhcp4o6Ipc is a singleton class /// /// @return the only existing instance of DHCP4o6 IPC static Dhcp4o6Ipc& instance(); /// @brief Open communication socket /// /// Call base open method and sets the handler/callback when needed virtual void open(); /// @brief On receive handler /// /// The handler sends the DHCPv6 packet back to the remote address static void handler(); }; } // namespace isc } // namespace dhcp #endif