blob: 336aae256eb9c368496384821320e55fadc6c85e [file] [log] [blame]
Asmitha Karunanithibe2bdec2021-05-13 02:54:29 -05001#include "hyp_network_manager.hpp"
2
Asmitha Karunanithic24de882021-06-08 11:56:00 -05003#include <phosphor-logging/log.hpp>
Asmitha Karunanithibe2bdec2021-05-13 02:54:29 -05004#include <sdeventplus/event.hpp>
William A. Kennington IIIb7401962023-07-21 16:36:11 -07005#include <stdplus/print.hpp>
Asmitha Karunanithibe2bdec2021-05-13 02:54:29 -05006
Asmitha Karunanithic24de882021-06-08 11:56:00 -05007using phosphor::logging::entry;
8using phosphor::logging::level;
9using phosphor::logging::log;
10
Asmitha Karunanithibe2bdec2021-05-13 02:54:29 -050011constexpr char DEFAULT_HYP_NW_OBJPATH[] =
12 "/xyz/openbmc_project/network/hypervisor";
13constexpr char HYP_DEFAULT_NETWORK_BUSNAME[] =
14 "xyz.openbmc_project.Network.Hypervisor";
15
Asmitha Karunanithic24de882021-06-08 11:56:00 -050016namespace phosphor
17{
18namespace network
19{
20
21int main()
Asmitha Karunanithibe2bdec2021-05-13 02:54:29 -050022{
23 auto bus = sdbusplus::bus::new_default();
24
25 // Add sdbusplus ObjectManager
Patrick Williamsc38b0712022-07-22 19:26:54 -050026 sdbusplus::server::manager_t objManager(bus, DEFAULT_HYP_NW_OBJPATH);
Asmitha Karunanithibe2bdec2021-05-13 02:54:29 -050027
28 // Get default event loop
29 auto event = sdeventplus::Event::get_default();
30
31 // Attach the bus to sd_event to service user requests
32 bus.attach_event(event.get(), SD_EVENT_PRIORITY_NORMAL);
33
34 // Create hypervisor network manager dbus object
Asmitha Karunanithic24de882021-06-08 11:56:00 -050035 auto manager = std::make_unique<HypNetworkMgr>(bus, DEFAULT_HYP_NW_OBJPATH);
Asmitha Karunanithibe2bdec2021-05-13 02:54:29 -050036
Asmitha Karunanithia6c07572022-05-05 03:19:45 -050037 // Create the hypervisor eth interface objects
Asmitha Karunanithic24de882021-06-08 11:56:00 -050038 manager->createIfObjects();
Asmitha Karunanithia6c07572022-05-05 03:19:45 -050039
Asmitha Karunanithieb40f082021-07-22 06:13:04 -050040 // Create the hypervisor system config object
Asmitha Karunanithic24de882021-06-08 11:56:00 -050041 manager->createSysConfObj();
42 const SystemConfPtr& systemConfigObj = manager->getSystemConf();
Asmitha Karunanithieb40f082021-07-22 06:13:04 -050043 systemConfigObj->setHostName();
44
Asmitha Karunanithibe2bdec2021-05-13 02:54:29 -050045 bus.request_name(HYP_DEFAULT_NETWORK_BUSNAME);
46
Asmitha Karunanithic24de882021-06-08 11:56:00 -050047 return event.loop();
48}
49
50} // namespace network
51} // namespace phosphor
52
53int main(int /*argc*/, char** /*argv*/)
54{
55 try
56 {
57 return phosphor::network::main();
58 }
59 catch (const std::exception& e)
60 {
William A. Kennington IIIb7401962023-07-21 16:36:11 -070061 stdplus::print(stderr, "FAILED: {}", e.what());
Asmitha Karunanithic24de882021-06-08 11:56:00 -050062 fflush(stderr);
63 return 1;
64 }
Asmitha Karunanithibe2bdec2021-05-13 02:54:29 -050065}