Kea: isc::dhcp::Dhcp6to4Ipc Class Reference

| Kea 3.2.0-git

isc::dhcp::Dhcp6to4Ipc Class Reference

Handles DHCPv4-over-DHCPv6 IPC on the DHCPv6 server side. More...

`#include <dhcp6to4_ipc.h>`

Inheritance diagram for isc::dhcp::Dhcp6to4Ipc:
[legend]

## Public Member Functions
virtual void | open ()
| Open communication socket.
Public Member Functions inherited from isc::dhcp::Dhcp4o6IpcBase
void | close ()
| Close communication socket.
Pkt6Ptr | receive ()
| Receive message over IPC.
void | send (const Pkt6Ptr &pkt)
| Send message over IPC.

## Static Public Member Functions
static void | handler (int)
| On receive handler.
static Dhcp6to4Ipc & | instance ()
| Returns pointer to the sole instance of Dhcp6to4Ipc.

## Static Public Attributes
static uint16_t | client_port = 0

## Protected Member Functions
| Dhcp6to4Ipc ()
| Constructor.
virtual | ~Dhcp6to4Ipc ()
| Destructor.
Protected Member Functions inherited from isc::dhcp::Dhcp4o6IpcBase
| Dhcp4o6IpcBase ()
| Constructor.
virtual | ~Dhcp4o6IpcBase ()
| Destructor.
int | open (uint16_t port, EndpointType endpoint_type)
| Open communication socket (from base class).

## Additional Inherited Members
Public Types inherited from isc::dhcp::Dhcp4o6IpcBase
enum | EndpointType { ENDPOINT_TYPE_V4 = 4 , ENDPOINT_TYPE_V6 = 6 }
| Endpoint type: DHCPv4 or DHCPv6 server. More...
Protected Attributes inherited from isc::dhcp::Dhcp4o6IpcBase
uint16_t | port_
| Port number configured for IPC communication.
int | socket_fd_
| Socket descriptor.

## Detailed Description

Handles DHCPv4-over-DHCPv6 IPC on the DHCPv6 server side.

Definition at line 21 of file dhcp6to4_ipc.h.

## Constructor & Destructor Documentation

## ◆ Dhcp6to4Ipc()

isc::dhcp::Dhcp6to4Ipc::Dhcp6to4Ipc | ( |  | ) |
| protected

Constructor.

Default constructor

Definition at line 32 of file dhcp6to4_ipc.cc.

References isc::dhcp::Dhcp4o6IpcBase::Dhcp4o6IpcBase().

Referenced by handler(), and instance().

Here is the call graph for this function:

## ◆ ~Dhcp6to4Ipc()

virtual isc::dhcp::Dhcp6to4Ipc::~Dhcp6to4Ipc | ( |  | ) |
| inlineprotectedvirtual

Destructor.

Definition at line 29 of file dhcp6to4_ipc.h.

## Member Function Documentation

## ◆ handler()

void isc::dhcp::Dhcp6to4Ipc::handler | ( | int |  | ) |
| static

On receive handler.

The handler sends the DHCPv6 packet back to the remote address

Definition at line 57 of file dhcp6to4_ipc.cc.

References Dhcp6to4Ipc(), isc::hooks::HooksManager::callCallouts(), isc::hooks::HooksManager::calloutsPresent(), isc::dhcp::Dhcpv6Srv::checkRelaySourcePort(), isc::util::OutputBuffer::clear(), client_port, isc::dhcp::DBG_DHCP6_BASIC, isc::dhcp::DBG_DHCP6_DETAIL, isc::dhcp::DBG_DHCP6_DETAIL_DATA, isc::dhcp::DBG_DHCP6_HOOKS, isc::dhcp::DHCP6_DHCP4O6_PACKET_RECEIVED, isc::dhcp::DHCP6_DHCP4O6_RECEIVE_FAIL, isc::dhcp::DHCP6_DHCP4O6_RECEIVING, isc::dhcp::DHCP6_DHCP4O6_RESPONSE_DATA, isc::dhcp::DHCP6_DHCP4O6_SEND_FAIL, isc::dhcp::DHCP6_HOOK_BUFFER_SEND_SKIP, DHCPV6_RELAY_FORW, DHCPV6_RELAY_REPL, isc::dhcp::getCalloutHandle(), isc::dhcp::Dhcpv6Srv::getHookIndexBuffer6Send(), isc::hooks::hooks_logger, instance(), isc::dhcp::IfaceMgr::instance(), LOG_DEBUG, LOG_ERROR, isc::hooks::CalloutHandle::NEXT_STEP_DROP, isc::hooks::CalloutHandle::NEXT_STEP_SKIP, isc::dhcp::packet6_logger, isc::dhcp::Dhcpv6Srv::processStatsSent(), isc::dhcp::Dhcp4o6IpcBase::receive(), and isc::dhcp::IfaceMgr::send().

Referenced by open().

Here is the call graph for this function:

## ◆ instance()

Dhcp6to4Ipc & isc::dhcp::Dhcp6to4Ipc::instance | ( |  | ) |
| static

Returns pointer to the sole instance of Dhcp6to4Ipc.

Dhcp6to4Ipc is a singleton class

Returns
  the only existing instance of DHCP4o6 IPC

Definition at line 34 of file dhcp6to4_ipc.cc.

References Dhcp6to4Ipc().

Referenced by isc::dhcp::Dhcpv6Srv::Dhcpv6Srv(), isc::dhcp::Dhcpv6Srv::~Dhcpv6Srv(), handler(), isc::dhcp::ControlledDhcpv6Srv::processConfig(), and isc::dhcp::Dhcpv6Srv::processDhcp4Query().

Here is the call graph for this function:

## ◆ open()

void isc::dhcp::Dhcp6to4Ipc::open | ( |  | ) |
| virtual

Open communication socket.

Call base open method and sets the handler/callback when needed

Implements isc::dhcp::Dhcp4o6IpcBase.

Definition at line 39 of file dhcp6to4_ipc.cc.

References isc::dhcp::IfaceMgr::addExternalSocket(), isc::dhcp::Dhcp4o6IpcBase::close(), isc::dhcp::Dhcp4o6IpcBase::ENDPOINT_TYPE_V6, isc::dhcp::CfgMgr::getStagingCfg(), handler(), isc::dhcp::CfgMgr::instance(), isc::dhcp::IfaceMgr::instance(), isc_throw, isc::dhcp::Dhcp4o6IpcBase::open(), and isc::dhcp::Dhcp4o6IpcBase::socket_fd_.

Referenced by isc::dhcp::ControlledDhcpv6Srv::processConfig().

Here is the call graph for this function:

## Member Data Documentation

## ◆ client_port

uint16_t isc::dhcp::Dhcp6to4Ipc::client_port = 0
| static

Parameters

  client_port | UDP port where all responses are sent to. Not zero is mostly useful for testing purposes.

Definition at line 51 of file dhcp6to4_ipc.h.

Referenced by isc::dhcp::Dhcpv6Srv::Dhcpv6Srv(), and handler().

The documentation for this class was generated from the following files:

- dhcp6to4_ipc.h
- dhcp6to4_ipc.cc