During startup the IPv6 DHCP server failed to detect any network
interfaces and is therefore shutting down.
-% DHCP6_NO_SUBNET_DEF_OPT failed to find subnet for address %1 when adding default options
-This warning message indicates that when attempting to add default options
-to a response, the server found that it was not configured to support
-the subnet from which the DHCPv6 request was received. The packet has
-been ignored.
-
-% DHCP6_NO_SUBNET_REQ_OPT failed to find subnet for address %1 when adding requested options
-This warning message indicates that when attempting to add requested
-options to a response, the server found that it was not configured
-to support the subnet from which the DHCPv6 request was received.
-The packet has been ignored.
-
% DHCP6_OPEN_SOCKET opening sockets on port %1
A debug message issued during startup, this indicates that the IPv6 DHCP
server is about to open sockets on the specified port.
}
void
-Dhcpv6Srv::appendDefaultOptions(const Pkt6Ptr& question, Pkt6Ptr& answer) {
+Dhcpv6Srv::appendDefaultOptions(const Pkt6Ptr&, Pkt6Ptr& answer) {
// add server-id
answer->addOption(getServerID());
-
- // Get the subnet object. It holds options to be sent to the client
- // that belongs to the particular subnet.
- Subnet6Ptr subnet = CfgMgr::instance().getSubnet6(question->getRemoteAddr());
- // Warn if subnet is not supported and quit.
- if (!subnet) {
- LOG_WARN(dhcp6_logger, DHCP6_NO_SUBNET_DEF_OPT)
- .arg(question->getRemoteAddr().toText());
- return;
- }
-
}
void
Dhcpv6Srv::appendRequestedOptions(const Pkt6Ptr& question, Pkt6Ptr& answer) {
- // Get the subnet for a particular address.
- Subnet6Ptr subnet = CfgMgr::instance().getSubnet6(question->getRemoteAddr());
+ // Get the configured subnet suitable for the incoming packet.
+ Subnet6Ptr subnet = selectSubnet(question);
+ // Leave if there is no subnet matching the incoming packet.
+ // There is no need to log the error message here because
+ // it will be logged in the assignLease() when it fails to
+ // pick the suitable subnet. We don't want to duplicate
+ // error messages in such case.
if (!subnet) {
- LOG_WARN(dhcp6_logger, DHCP6_NO_SUBNET_REQ_OPT)
- .arg(question->getRemoteAddr().toText());
return;
}