#include "config.h" #include "ipaddress.hpp" #include "ethernet_interface.hpp" #include "util.hpp" #include #include #include namespace phosphor { namespace network { using namespace phosphor::logging; using namespace sdbusplus::xyz::openbmc_project::Common::Error; IPAddress::IPAddress(sdbusplus::bus::bus& bus, const char* objPath, EthernetInterface& parent, IP::Protocol type, const std::string& ipaddress, IP::AddressOrigin origin, uint8_t prefixLength, const std::string& gateway) : IPIfaces(bus, objPath, true), parent(parent) { this->address(ipaddress); this->prefixLength(prefixLength); this->gateway(gateway); this->type(type); this->origin(origin); // Emit deferred signal. emit_object_added(); } void IPAddress::delete_() { if (parent.dHCPEnabled()) { log("DHCP enabled on the interface"), entry("INTERFACE=%s", parent.interfaceName().c_str()); return; } #ifdef LINK_LOCAL_AUTOCONFIGURATION if (isLinkLocalIP(address())) { log("Can not delete the LinkLocal address"), entry("INTERFACE=%s ADDRESS=%s", parent.interfaceName().c_str(), address().c_str()); return; } #endif parent.deleteObject(address()); } } // namespace network } // namespace phosphor