7#ifndef BULK_LEASE_QUERY6_H
8#define BULK_LEASE_QUERY6_H
123 ptr->bulkQueryByRelayIdNext();
137 ptr->bulkQueryByRemoteIdNext();
151 ptr->bulkQueryByLinkAddressNext();
The IOAddress class represents an IP addresses (version agnostic)
Provides control flow for processing a bulk query.
asiolink::IOAddress start_addr_
The start address (for paged processing).
dhcp::SubnetIDSet links_
The links the link address (when not ::) belongs to.
dhcp::Option6IAAddrPtr getQueryIpAddress() const
Get the query ip address for a by ip address bulk query.
BulkLeaseQuery6(BlqQueryPtr query, const BlqPostCb &post, const BlqPushToSendCb &push_to_send, const BlqQueryCompleteCb &query_complete)
Constructor.
dhcp::Pkt6Ptr getQuery6() const
Get the DHCPv6 query.
void bulkQueryByRemoteIdNext()
Subsequent processing of a by remote id bulk query.
virtual ~BulkLeaseQuery6()
Destructor.
dhcp::DuidPtr getQueryRelayId() const
Get the query relay id for a by relay id bulk query.
void bulkQueryByRelayIdNext()
Subsequent processing of a by relay id bulk query.
static void doBulkQueryByLinkAddressNext(BulkLeaseQuery6Ptr ptr)
Class/static subsequent processing of a by link address bulk query.
const asiolink::IOAddress & getLinkAddress() const
Get the link address.
static std::string leaseQueryLabel(const BlqMsgPtr &msg)
Convenience method for generating per packet logging info.
dhcp::DuidPtr getQueryClientId() const
Get the query client id for a by client id bulk query.
static void doBulkQueryByRemoteIdNext(BulkLeaseQuery6Ptr ptr)
Class/static subsequent processing of a by remote id bulk query.
void bulkQueryByRemoteId()
Start processing of a by remote id bulk query.
void bulkQueryByRelayId()
Start processing of a by relay id bulk query.
size_t getPageSize() const
Get the page size.
virtual void send(dhcp::Pkt6Ptr response) const
Send a response.
dhcp::OptionPtr query_remote_id_
The remote id (for a by remote id bulk query).
dhcp::OptionCustomPtr lq_option_
The lease query option.
dhcp::OptionPtr getQueryRemoteId() const
Get the query remote id for a by remote id bulk query.
virtual void init()
Initialization.
virtual void sendReply(dhcp::OptionPtr status)
Send a final reply.
void bulkQueryByClientId()
Start processing of a by client id bulk query.
dhcp::DuidPtr query_client_id_
The query client id (for a by client id bulk query).
const dhcp::SubnetIDSet & links() const
Get the links set.
void bulkQueryByIpAddress()
Start processing of a by ip address bulk query.
void bulkQueryByLinkAddress()
Start processing of a by link address bulk query.
dhcp::Option6IAAddrPtr query_iaaddr_
The query ip address (for a by ip address bulk query).
dhcp::DuidPtr query_relay_id_
The query relay id (for a by relay id bulk query).
virtual void start()
Start processing.
dhcp::Pkt6Ptr query6_
The DHCPv6 query.
asiolink::IOAddress getStartAddress() const
Get the current start address.
void bulkQueryByLinkAddressNext()
Subsequent processing of a by link address bulk query.
asiolink::IOAddress link_addr_
The link address.
size_t page_size_
The page size (for paged processing, taken from the MT Lease query manager or defaults to 10).
dhcp::OptionCustomPtr getLeaseQueryOption() const
Get the lease query option.
static void doBulkQueryByRelayIdNext(BulkLeaseQuery6Ptr ptr)
Class/static subsequent processing of a by relay id bulk query.
BulkLeaseQuery(BlqQueryPtr query, const BlqPostCb &post, const BlqPushToSendCb &push_to_send, const BlqQueryCompleteCb &query_complete)
Constructor.
A wrapper interface for the ASIO library.
std::set< dhcp::SubnetID > SubnetIDSet
Ordered list aka set of subnetIDs.
boost::shared_ptr< OptionCustom > OptionCustomPtr
A pointer to the OptionCustom object.
boost::shared_ptr< DUID > DuidPtr
boost::shared_ptr< Option6IAAddr > Option6IAAddrPtr
A pointer to the isc::dhcp::Option6IAAddr object.
boost::shared_ptr< Pkt6 > Pkt6Ptr
A pointer to Pkt6 packet.
boost::shared_ptr< Option > OptionPtr
std::function< void(const BlqPostCbArg &)> BlqPostCb
Type of BLQ post callback.
std::function< void(Xid)> BlqQueryCompleteCb
Type of BLQ queryComplete callback.
boost::shared_ptr< BlqQuery > BlqQueryPtr
Defines a shared pointer to an BlqQuery.
boost::shared_ptr< BlqMsg > BlqMsgPtr
Defines a shared pointer to an BlqMsg.
boost::shared_ptr< BulkLeaseQuery6 > BulkLeaseQuery6Ptr
Defines a shared pointer to a BulkLeaseQuery6 object.
std::function< bool(BlqResponsePtr)> BlqPushToSendCb
Type of BLQ pushToSend callback.
Defines the logger used by the top-level component of kea-lfc.