#include "ipaddress.hpp" #include "ethernet_interface.hpp" #include "util.hpp" #include "xyz/openbmc_project/Common/error.hpp" #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; } if (isLinkLocalIP(address())) { log("Can not delete the LinkLocal address"), entry("INTERFACE=%s ADDRESS=%s", parent.interfaceName().c_str(), address().c_str()); return; } parent.deleteObject(address()); } }//namespace network }//namespace phosphor