![]() |
Kea
1.5.0
|
Represents the host reservations specified in the configuration file. More...
#include <cfg_hosts.h>
Inheritance diagram for isc::dhcp::CfgHosts:Public Member Functions | |
| virtual | ~CfgHosts () |
| Destructor. More... | |
| virtual void | add (const HostPtr &host) |
| Adds a new host to the collection. More... | |
| virtual bool | del (const SubnetID &subnet_id, const asiolink::IOAddress &addr) |
| Attempts to delete a host by address. More... | |
| virtual bool | del4 (const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) |
| Attempts to delete a host by (subnet4-id, identifier, identifier-type) More... | |
| virtual bool | del6 (const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) |
| Attempts to delete a host by (subnet6-id, identifier, identifier-type) More... | |
| virtual size_t | delAll4 (const SubnetID &subnet_id) |
| Attempts to delete all hosts for a given IPv4 subnet. More... | |
| virtual size_t | delAll6 (const SubnetID &subnet_id) |
| Attempts to delete all hosts for a given IPv6 subnet. More... | |
| virtual ConstHostPtr | get4 (const SubnetID &subnet_id, const asiolink::IOAddress &address) const |
| Returns a host connected to the IPv4 subnet and having a reservation for a specified IPv4 address. More... | |
| virtual HostPtr | get4 (const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) |
| Returns a host connected to the IPv4 subnet. More... | |
| virtual ConstHostPtr | get4 (const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) const |
| Returns a host connected to the IPv4 subnet. More... | |
| virtual HostPtr | get6 (const asiolink::IOAddress &prefix, const uint8_t prefix_len) |
| Returns a host using the specified IPv6 prefix. More... | |
| virtual ConstHostPtr | get6 (const asiolink::IOAddress &prefix, const uint8_t prefix_len) const |
| Returns a host using the specified IPv6 prefix. More... | |
| virtual HostPtr | get6 (const SubnetID &subnet_id, const asiolink::IOAddress &address) |
| Returns a host connected to the IPv6 subnet and having a reservation for a specified IPv6 address. More... | |
| virtual ConstHostPtr | get6 (const SubnetID &subnet_id, const asiolink::IOAddress &address) const |
| Returns a host connected to the IPv6 subnet and having a reservation for a specified IPv6 address. More... | |
| virtual HostPtr | get6 (const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) |
| Returns a host connected to the IPv6 subnet. More... | |
| virtual ConstHostPtr | get6 (const SubnetID &subnet_id, const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) const |
| Returns a host connected to the IPv6 subnet. More... | |
| virtual HostCollection | getAll (const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) |
Non-const version of the getAll const method. More... | |
| virtual ConstHostCollection | getAll (const Host::IdentifierType &identifier_type, const uint8_t *identifier_begin, const size_t identifier_len) const |
| Return all hosts connected to any subnet for which reservations have been made using a specified identifier. More... | |
| virtual HostCollection | getAll4 (const asiolink::IOAddress &address) |
| Returns a collection of hosts using the specified IPv4 address. More... | |
| virtual ConstHostCollection | getAll4 (const asiolink::IOAddress &address) const |
| Returns a collection of hosts using the specified IPv4 address. More... | |
| virtual HostCollection | getAll6 (const asiolink::IOAddress &address) |
| Returns a collection of hosts using the specified IPv6 address. More... | |
| virtual ConstHostCollection | getAll6 (const asiolink::IOAddress &address) const |
| Returns a collection of hosts using the specified IPv6 address. More... | |
| virtual std::string | getType () const |
| Return backend type. More... | |
| isc::data::ElementPtr | toElement () const |
| Unparse a configuration object. More... | |
Public Member Functions inherited from isc::dhcp::BaseHostDataSource | |
| virtual | ~BaseHostDataSource () |
| Default destructor implementation. More... | |
| virtual void | commit () |
| Commit Transactions. More... | |
| virtual void | rollback () |
| Rollback Transactions. More... | |
Public Member Functions inherited from isc::dhcp::WritableHostDataSource | |
| virtual | ~WritableHostDataSource () |
| Default destructor implementation. More... | |
Public Member Functions inherited from isc::data::CfgToElement | |
| virtual | ~CfgToElement () |
| Destructor. More... | |
Additional Inherited Members | |
Public Types inherited from isc::dhcp::BaseHostDataSource | |
| enum | IdType { ID_HWADDR = 0, ID_DUID = 1 } |
| Specifies the type of an identifier. More... | |
Represents the host reservations specified in the configuration file.
This class holds a collection of the host reservations (Host objects) which can be retrieved using different search criteria.
In the typical case the reservations are searched using the client's MAC address or DUID and a subnet that the client is connected to. The reservations can be also retrieved using other parameters, such as reserved IP address.
The reservations are added to this object by the configuration parsers, when the new configuration is applied for the server. The reservations are retrieved by the HostMgr class when the server is allocating or renewing an address or prefix for the particular client.
Definition at line 37 of file cfg_hosts.h.
|
inlinevirtual |
Destructor.
Definition at line 42 of file cfg_hosts.h.
|
virtual |
Adds a new host to the collection.
| host | Pointer to the new Host object being added. |
| DuplicateHost | If a host for a particular HW address or DUID has already been added to the IPv4 or IPv6 subnet. |
Implements isc::dhcp::BaseHostDataSource.
Definition at line 439 of file cfg_hosts.cc.
References isc::dhcp::HOSTS_DBG_TRACE, isc::dhcp::hosts_logger, isc_throw, and LOG_DEBUG.
|
virtual |
Attempts to delete a host by address.
This method supports both v4 and v6.
| subnet_id | subnet identifier. |
| addr | specified address. |
Implements isc::dhcp::BaseHostDataSource.
Definition at line 597 of file cfg_hosts.cc.
References isc_throw.
|
virtual |
Attempts to delete a host by (subnet4-id, identifier, identifier-type)
This method supports v4 only.
| subnet_id | IPv4 Subnet identifier. |
| identifier_type | Identifier type. |
| identifier_begin | Pointer to a beginning of a buffer containing an identifier. |
| identifier_len | Identifier length. |
Implements isc::dhcp::BaseHostDataSource.
Definition at line 616 of file cfg_hosts.cc.
References isc_throw.
|
virtual |
Attempts to delete a host by (subnet6-id, identifier, identifier-type)
This method supports v6 only.
| subnet_id | IPv6 Subnet identifier. |
| identifier_type | Identifier type. |
| identifier_begin | Pointer to a beginning of a buffer containing an identifier. |
| identifier_len | Identifier length. |
Implements isc::dhcp::BaseHostDataSource.
Definition at line 644 of file cfg_hosts.cc.
References isc_throw.
|
virtual |
Attempts to delete all hosts for a given IPv4 subnet.
| subnet_id | Identifier of the subnet for which reservation should be deleted. |
Definition at line 604 of file cfg_hosts.cc.
References isc::dhcp::HOSTS_DBG_TRACE, isc::dhcp::hosts_logger, and LOG_DEBUG.
|
virtual |
Attempts to delete all hosts for a given IPv6 subnet.
| subnet_id | Identifier of the subnet for which reservation should be deleted. |
Definition at line 626 of file cfg_hosts.cc.
References isc::dhcp::HOSTS_DBG_TRACE, isc::dhcp::hosts_logger, and LOG_DEBUG.
|
virtual |
Returns a host connected to the IPv4 subnet and having a reservation for a specified IPv4 address.
| subnet_id | Subnet identifier. |
| address | reserved IPv4 address. |
Host object using a specified IPv4 address. Implements isc::dhcp::BaseHostDataSource.
Definition at line 201 of file cfg_hosts.cc.
References isc::dhcp::HOSTS_DBG_RESULTS, isc::dhcp::HOSTS_DBG_TRACE, isc::dhcp::hosts_logger, LOG_DEBUG, and isc::asiolink::IOAddress::toText().
Here is the call graph for this function:
|
virtual |
Returns a host connected to the IPv4 subnet.
| subnet_id | Subnet identifier. |
| identifier_type | Identifier type. |
| identifier_begin | Pointer to a beginning of a buffer containing an identifier. |
| identifier_len | Identifier length. |
Host object for which reservation has been made using the specified identifier. Implements isc::dhcp::WritableHostDataSource.
Definition at line 192 of file cfg_hosts.cc.
|
virtual |
Returns a host connected to the IPv4 subnet.
| subnet_id | Subnet identifier. |
| identifier_type | Identifier type. |
| identifier_begin | Pointer to a beginning of a buffer containing an identifier. |
| identifier_len | Identifier length. |
Host object for which reservation has been made using the specified identifier. Implements isc::dhcp::BaseHostDataSource.
Definition at line 183 of file cfg_hosts.cc.
|
virtual |
Returns a host using the specified IPv6 prefix.
| prefix | IPv6 prefix for which the Host object is searched. |
| prefix_len | IPv6 prefix length. |
Host object for which specified prefix is reserved. Implements isc::dhcp::WritableHostDataSource.
Definition at line 248 of file cfg_hosts.cc.
|
virtual |
Returns a host using the specified IPv6 prefix.
| prefix | IPv6 prefix for which the Host object is searched. |
| prefix_len | IPv6 prefix length. |
Host object for which specified prefix is reserved. Implements isc::dhcp::BaseHostDataSource.
Definition at line 243 of file cfg_hosts.cc.
|
virtual |
Returns a host connected to the IPv6 subnet and having a reservation for a specified IPv6 address.
| subnet_id | Subnet identifier. |
| address | reserved IPv6 address. |
Host object using a specified IPv6 address. Implements isc::dhcp::WritableHostDataSource.
Definition at line 260 of file cfg_hosts.cc.
|
virtual |
Returns a host connected to the IPv6 subnet and having a reservation for a specified IPv6 address.
| subnet_id | Subnet identifier. |
| address | reserved IPv6 address. |
Host object using a specified IPv6 address. Implements isc::dhcp::BaseHostDataSource.
Definition at line 253 of file cfg_hosts.cc.
|
virtual |
Returns a host connected to the IPv6 subnet.
| subnet_id | Subnet identifier. |
| identifier_type | Identifier type. |
| identifier_begin | Pointer to a beginning of a buffer containing an identifier. |
| identifier_len | Identifier length. |
Host object for which reservation has been made using the specified identifier. Implements isc::dhcp::WritableHostDataSource.
Definition at line 234 of file cfg_hosts.cc.
|
virtual |
Returns a host connected to the IPv6 subnet.
| subnet_id | Subnet identifier. |
| identifier_type | Identifier type. |
| identifier_begin | Pointer to a beginning of a buffer containing an identifier. |
| identifier_len | Identifier length. |
Host object for which reservation has been made using the specified identifier. Implements isc::dhcp::BaseHostDataSource.
Definition at line 225 of file cfg_hosts.cc.
|
virtual |
Non-const version of the getAll const method.
This method returns all Host objects which represent reservations for a specified identifier. This method may return multiple hosts because a particular client may have reservations in multiple subnets.
| identifier_type | One of the supported identifier types. |
| identifier_begin | Pointer to a beginning of a buffer containing an identifier. |
| identifier_len | Identifier length. |
Host objects. Implements isc::dhcp::WritableHostDataSource.
Definition at line 39 of file cfg_hosts.cc.
|
virtual |
Return all hosts connected to any subnet for which reservations have been made using a specified identifier.
This method returns all Host objects which represent reservations for a specified identifier. This method may return multiple hosts because a particular client may have reservations in multiple subnets.
| identifier_type | One of the supported identifier types. |
| identifier_begin | Pointer to a beginning of a buffer containing an identifier. |
| identifier_len | Identifier length. |
Host objects. Implements isc::dhcp::BaseHostDataSource.
Definition at line 27 of file cfg_hosts.cc.
|
virtual |
Returns a collection of hosts using the specified IPv4 address.
This method may return multiple Host objects if they are connected to different subnets.
| address | IPv4 address for which the Host object is searched. |
Host objects. Implements isc::dhcp::WritableHostDataSource.
Definition at line 59 of file cfg_hosts.cc.
|
virtual |
Returns a collection of hosts using the specified IPv4 address.
This method may return multiple Host objects if they are connected to different subnets.
| address | IPv4 address for which the Host object is searched. |
Host objects. Implements isc::dhcp::BaseHostDataSource.
Definition at line 50 of file cfg_hosts.cc.
|
virtual |
Returns a collection of hosts using the specified IPv6 address.
This method may return multiple Host objects if they are connected to different subnets.
| address | IPv6 address for which the Host object is searched. |
Host objects. Definition at line 77 of file cfg_hosts.cc.
|
virtual |
Returns a collection of hosts using the specified IPv6 address.
This method may return multiple Host objects if they are connected to different subnets.
| address | IPv6 address for which the Host object is searched. |
Host objects. Definition at line 68 of file cfg_hosts.cc.
|
inlinevirtual |
Return backend type.
Returns the type of the backend (e.g. "mysql", "memfile" etc.)
Implements isc::dhcp::BaseHostDataSource.
Definition at line 293 of file cfg_hosts.h.
|
virtual |
Unparse a configuration object.
host reservation lists are not autonomous so they are not returned directly but with the subnet where they are declared as:
isc::dhcp::CfgHostsList can be used to handle this
Implements isc::data::CfgToElement.
Definition at line 654 of file cfg_hosts.cc.
References isc_throw.