requested an address which is not assigned to him. The server will respond
to this client with DHCPNAK.
+% DHCP4_INVALID_RELAY_INFO malformed packet received from client-id %1, hwaddr %2: %3
+This message is logged when the client sends invalid combination of
+values in the giaddr and hops fields. If the packet is relayed it should
+contain non-zero values in both fields. If the packet is sent from the
+directly connected client, both values should be set to zero. All other
+combinations are invalid and trigger packet drop.
+
% DHCP4_LEASE_ADVERT lease %1 advertised (client client-id %2, hwaddr %3)
This debug message indicates that the server successfully advertised
a lease. It is up to the client to choose one server out of othe advertised
bool
Dhcpv4Srv::acceptDirectRequest(const Pkt4Ptr& pkt) const {
try {
+ // This is the first call to the isRelayed function for this packet,
+ // so we have to catch exceptions which will be emitted if the
+ // packet contains invalid combination of hops and giaddr. For all
+ // other invocations of isRelayed function we will not catch
+ // exceptions because we eliminate malformed packets here.
if (pkt->isRelayed()) {
return (true);
}
} catch (const Exception& ex) {
+ OptionPtr client_id = pkt->getOption(DHO_DHCP_CLIENT_IDENTIFIER);
+ HWAddrPtr hwaddr = pkt->getHWAddr();
+ LOG_INFO(dhcp4_logger, DHCP4_INVALID_RELAY_INFO)
+ .arg(client_id ? client_id->toText():"(no client-id)")
+ .arg(hwaddr ? hwaddr->toText():"(no hwaddr info)")
+ .arg(ex.what());
return (false);
}
// The source address must not be zero for the DHCPINFORM message from