5 #ifndef vnsw_agent_dhcp_lease_h__
6 #define vnsw_agent_dhcp_lease_h__
9 #include <boost/dynamic_bitset.hpp>
53 const std::vector<Ip4Address> &reserve_addresses,
54 const std::string &lease_filename, boost::asio::io_context &io);
59 const std::vector<Ip4Address> &reserve_addresses);
73 typedef boost::dynamic_bitset<>
Bitmap;
77 uint64_t expiry,
bool released);
86 const uint64_t &expiry,
bool released);
90 const uint64_t &expiry,
bool released);
112 #endif // vnsw_agent_dhcp_lease_h__
void PersistLeaseRecords(const std::vector< DhcpLease > &leases)
uint64_t lease_expiry_time_
void UpdateLeaseFileName(const std::string &name)
const std::set< DhcpLease > & leases() const
boost::dynamic_bitset Bitmap
Bitmap released_lease_bitmap_
static const uint32_t kDhcpLeaseTimer
void IndexToAddress(size_t index, Ip4Address *address) const
void ParseLeaseFile(const std::string &leases)
void Update(const Ip4Address &subnet, uint8_t plen, const std::vector< Ip4Address > &reserve_addresses)
void ParseLease(const pugi::xml_node &lease)
std::set< DhcpLease > leases_
DISALLOW_COPY_AND_ASSIGN(DhcpLeaseDb)
void ReserveAddresses(const std::vector< Ip4Address > &addresses, bool subnet_change)
void WriteLeaseRecord(std::ofstream &lease_ofstream, const MacAddress &mac, const Ip4Address &ip, const uint64_t &expiry, bool released)
void set_lease_timeout(uint32_t timeout)
void PersistLeaseRecord(const MacAddress &mac, const Ip4Address &ip, const uint64_t &expiry, bool released)
std::string lease_filename_
bool Allocate(const MacAddress &mac, Ip4Address *address, uint64_t lease)
size_t AddressToIndex(const Ip4Address &address) const
DhcpLease(const MacAddress &m, const Ip4Address &i, uint64_t t, bool r)
void UpdateLease(const MacAddress &mac, const Ip4Address &ip, uint64_t expiry, bool released)
boost::asio::ip::address_v4 Ip4Address
uint32_t lease_update_count_
bool IsReservedAddress(const Ip4Address &address) const
std::vector< Ip4Address > reserve_addresses_
Ip4Address subnet() const
bool Release(const MacAddress &mac)
bool operator<(const DhcpLease &rhs) const
void ReadLeaseFile(std::string &leases)
DhcpLeaseDb(const Ip4Address &subnet, uint8_t plen, const std::vector< Ip4Address > &reserve_addresses, const std::string &lease_filename, boost::asio::io_context &io)
uint32_t max_lease_update_count_