1 #include "hyp_network_manager.hpp" 2 3 #include <fmt/format.h> 4 5 #include <phosphor-logging/log.hpp> 6 #include <sdeventplus/event.hpp> 7 8 using phosphor::logging::entry; 9 using phosphor::logging::level; 10 using phosphor::logging::log; 11 12 constexpr char DEFAULT_HYP_NW_OBJPATH[] = 13 "/xyz/openbmc_project/network/hypervisor"; 14 constexpr char HYP_DEFAULT_NETWORK_BUSNAME[] = 15 "xyz.openbmc_project.Network.Hypervisor"; 16 17 namespace phosphor 18 { 19 namespace network 20 { 21 22 int main() 23 { 24 auto bus = sdbusplus::bus::new_default(); 25 26 // Add sdbusplus ObjectManager 27 sdbusplus::server::manager_t objManager(bus, DEFAULT_HYP_NW_OBJPATH); 28 29 // Get default event loop 30 auto event = sdeventplus::Event::get_default(); 31 32 // Attach the bus to sd_event to service user requests 33 bus.attach_event(event.get(), SD_EVENT_PRIORITY_NORMAL); 34 35 // Create hypervisor network manager dbus object 36 auto manager = std::make_unique<HypNetworkMgr>(bus, DEFAULT_HYP_NW_OBJPATH); 37 38 // Create the hypervisor eth interface objects 39 manager->createIfObjects(); 40 41 // Create the hypervisor system config object 42 manager->createSysConfObj(); 43 const SystemConfPtr& systemConfigObj = manager->getSystemConf(); 44 systemConfigObj->setHostName(); 45 46 bus.request_name(HYP_DEFAULT_NETWORK_BUSNAME); 47 48 return event.loop(); 49 } 50 51 } // namespace network 52 } // namespace phosphor 53 54 int main(int /*argc*/, char** /*argv*/) 55 { 56 try 57 { 58 return phosphor::network::main(); 59 } 60 catch (const std::exception& e) 61 { 62 fmt::print(stderr, "FAILED: {}", e.what()); 63 fflush(stderr); 64 return 1; 65 } 66 } 67