#pragma once #include #include #include #include #include #include #include #include #include #include #include #include namespace phosphor { namespace network { using namespace std::chrono_literals; // wait for three seconds before reloading systemd-networkd constexpr auto reloadTimeout = 3s; // refresh the objets after four seconds as network // configuration takes 3-4 sec to reconfigure at most. constexpr auto refreshTimeout = 4s; namespace systemd { namespace config { constexpr auto networkFilePrefix = "00-bmc-"; constexpr auto networkFileSuffix = ".network"; constexpr auto deviceFileSuffix = ".netdev"; } // namespace config } // namespace systemd using IntfName = std::string; using Addr_t = ifaddrs*; struct AddrDeleter { void operator()(Addr_t ptr) const { freeifaddrs(ptr); } }; using AddrPtr = std::unique_ptr; /* Need a custom deleter for freeing up sd_event */ struct EventDeleter { void operator()(sd_event* event) const { sd_event_unref(event); } }; using EventPtr = std::unique_ptr; template using UniquePtr = std::unique_ptr>; // Byte representations for common address types in network byte order using InAddrAny = std::variant; using InterfaceList = std::set; using Timer = sdeventplus::utility::Timer; } // namespace network } // namespace phosphor