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);
boost::asio::ip::address_v4 Ip4Address
uint32_t lease_update_count_
Bitmap released_lease_bitmap_
DISALLOW_COPY_AND_ASSIGN(DhcpLeaseDb)
DhcpLeaseDb(const Ip4Address &subnet, uint8_t plen, const std::vector< Ip4Address > &reserve_addresses, const std::string &lease_filename, boost::asio::io_context &io)
void ParseLeaseFile(const std::string &leases)
size_t AddressToIndex(const Ip4Address &address) const
bool Release(const MacAddress &mac)
void UpdateLeaseFileName(const std::string &name)
void set_lease_timeout(uint32_t timeout)
bool Allocate(const MacAddress &mac, Ip4Address *address, uint64_t lease)
void IndexToAddress(size_t index, Ip4Address *address) const
void PersistLeaseRecords(const std::vector< DhcpLease > &leases)
void ParseLease(const pugi::xml_node &lease)
void UpdateLease(const MacAddress &mac, const Ip4Address &ip, uint64_t expiry, bool released)
void PersistLeaseRecord(const MacAddress &mac, const Ip4Address &ip, const uint64_t &expiry, bool released)
void Update(const Ip4Address &subnet, uint8_t plen, const std::vector< Ip4Address > &reserve_addresses)
std::set< DhcpLease > leases_
boost::dynamic_bitset Bitmap
void ReadLeaseFile(std::string &leases)
static const uint32_t kDhcpLeaseTimer
std::string lease_filename_
uint32_t max_lease_update_count_
std::vector< Ip4Address > reserve_addresses_
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)
const std::set< DhcpLease > & leases() const
Ip4Address subnet() const
bool IsReservedAddress(const Ip4Address &address) const
DhcpLease(const MacAddress &m, const Ip4Address &i, uint64_t t, bool r)
bool operator<(const DhcpLease &rhs) const
uint64_t lease_expiry_time_