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