#pragma once #include #include namespace phosphor { namespace time { /** @brief Alias to time sync mode class */ using ModeSetting = sdbusplus::xyz::openbmc_project::Time::server::Synchronization; /** @brief Alias to time owner class */ using OwnerSetting = sdbusplus::xyz::openbmc_project::Time::server::Owner; /** @brief Supported time sync modes * NTP Time sourced by Network Time Server * Manual User of the system need to set the time */ using Mode = ModeSetting::Method; /** @brief Supported time owners * BMC Time source may be NTP or Manual but it has to be set natively * on the BMC. Meaning, host can not set the time. What it also * means is that when BMC gets IPMI_SET_SEL_TIME, then its ignored. * similarly, when BMC gets IPMI_GET_SEL_TIME, then the BMC's time * is returned. * * Host Its only IPMI_SEL_SEL_TIME that will set the time on BMC. * Meaning, IPMI_GET_SEL_TIME and request to get BMC time will * result in same value. * * Split Both BMC and Host will maintain their individual clocks but then * the time information is stored in BMC. BMC can have either NTP * or Manual as it's source of time and will set the time directly * on the BMC. When IPMI_SET_SEL_TIME is received, then the delta * between that and BMC's time is calculated and is stored. * When BMC reads the time, the current time is returned. * When IPMI_GET_SEL_TIME is received, BMC's time is retrieved and * then the delta offset is factored in prior to returning. * * Both: BMC's time is set with whoever that sets the time. Similarly, * BMC's time is returned to whoever that asks the time. */ using Owner = OwnerSetting::Owners; } }