| #include "vlan_interface.hpp" |
| |
| #include "config_parser.hpp" |
| #include "ethernet_interface.hpp" |
| #include "network_manager.hpp" |
| #include "system_queries.hpp" |
| |
| #include <phosphor-logging/elog-errors.hpp> |
| #include <phosphor-logging/log.hpp> |
| #include <string> |
| #include <xyz/openbmc_project/Common/error.hpp> |
| |
| namespace phosphor |
| { |
| namespace network |
| { |
| |
| using namespace phosphor::logging; |
| using namespace sdbusplus::xyz::openbmc_project::Common::Error; |
| |
| VlanInterface::VlanInterface(sdbusplus::bus_t& bus, Manager& manager, |
| const system::InterfaceInfo& info, |
| std::string_view objRoot, |
| const config::Parser& config, uint16_t vlanID, |
| EthernetInterface& parent, bool emitSignal, |
| std::optional<bool> enabled) : |
| EthernetInterface(bus, manager, info, objRoot, config, emitSignal, enabled), |
| DeleteIface(bus, objPath.c_str()), VlanIface(bus, objPath.c_str()), |
| parentInterface(parent) |
| { |
| id(vlanID); |
| emit_object_added(); |
| } |
| |
| std::string VlanInterface::macAddress(std::string) |
| { |
| log<level::ERR>("Tried to set MAC address on VLAN"); |
| elog<InternalFailure>(); |
| } |
| |
| void VlanInterface::writeDeviceFile() |
| { |
| config::Parser config; |
| auto& netdev = config.map["NetDev"].emplace_back(); |
| netdev["Name"].emplace_back(EthernetInterface::interfaceName()); |
| netdev["Kind"].emplace_back("vlan"); |
| config.map["VLAN"].emplace_back()["Id"].emplace_back(std::to_string(id())); |
| config.writeFile(config::pathForIntfDev( |
| manager.getConfDir(), EthernetInterface::interfaceName())); |
| } |
| |
| void VlanInterface::delete_() |
| { |
| parentInterface.deleteVLANObject(EthernetInterface::interfaceName()); |
| } |
| |
| } // namespace network |
| } // namespace phosphor |