<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hi All,</p>
    <p>Sending this email requesting the feedback on the usage/need of
      "TimeOwner" that is part of phosphor-timemanager.</p>
    <p>phosphor-timemanager is a time keeping daemon on the BMC that
      uses BMC's RTC to hold the time. It uses systemd-timesyncd and
      systemd-timedated.<br>
    </p>
    <p>There are 2 D-Bus objects that implement
"phosphor-dbus-interfaces/xyz/openbmc_project/Time/EpochTime.interface.yaml"
      and is managed by a common manager.<br>
    </p>
    <p>/xyz/openbmc_projects/time/bmc  : Used when the request is coming
      in via Redfish<br>
      /xyz/openbmc_projects/time/host : Used when the request is inband
      with IPMI_SET_SEL_TIME and IPMI_GET_SEL_TIME + PLDM ones.<br>
    </p>
    <p>timemanager consumes 2 settings, namely, TimeSyncMethod and
      TimeOwner defined in
      phosphor-dbus-interfaces/xyz/openbmc_project/Time/.</p>
    <p>TimeSyncMethod: Indicates whether the NTP must be used or should
      it be settable by the user.<br>
                      For example: If the time set request comes and the
      Method was set to NTP, then the write request would be ignored.<br>
    </p>
    <p>TimeOwner: This is where we have seen the community telling why
      do we even have such a thing. Talking to the UX team, looks like,
      the customers have had difficulty understanding this.</p>
    <p>There are 4 values for TimeOwners: ( Works irrespective of acting
      on time/bmc or time/host D-Bus objects )</p>
    <p><font color="#3366ff"><i>BMC : BMC is the owner of the time. So,
          Host <b>can not </b>set the time on BMC. Inband SET_SEL_TIME
          would result in error.</i><i><br>
        </i><i><br>
        </i><font color="#ff6666"><i>HOST: Host is the owner of the
            time. So, only the host <b>can set</b> the time on BMC. Any
            external Redfish SET requests would result in error</i></font></font></p>
    <p><font color="#3366ff"><i>SPLIT: This is where we could achieve
          independent times for BMC and Host. This is a combination of
          BMC + HOST. Both BMC and HOST can set<br>
                 the time. Host time is maintained as an offset into
          BMC's time. So, whenever the Host sends the time request, the
          offset is<br>
                 factored into</i><i> BMC's time and then the response
          would be returned.</i><i><br>
        </i><i><br>
        </i><font color="#ff6600"><i>BOTH : BMC and/or HOST can SET the
            time. Whoever did SET it last, will be maintained.<br>
          </i></font></font></p>
    <p>Personally, I have worked on github issue from Redhat when there
      were failures setting the time from OS using "hwclock" since the
      Owner was set to [BMC]. The solution was to [poweroff] the system,
      change the Owner to [HOST/SPLIT] and boot back.</p>
    <p>Note: Since these policies are user settable, they can be changed
      at anytime. However, they will not be taken into account until the
      system is booted again.</p>
    <p><b>Why did we even have this ?</b>: During the initial
      development of timemanager, the thought was that, Host would not
      trust the BMC and hence we want a way where BMC and Host can
      maintain their own time</p>
    <p><b>Do we need this going forward ?</b>: I am being asked by UX
      team about the need of this and I mentioned I would get the
      community feedback on this. Although, I feel this level of
      granularity gives control over how we can manage time, it would
      not justify the complexity if the customers don't appreciate it.
      Removing the TimeOwner would make the code a lot simpler.<br>
    </p>
    <p>Please help with your votes.</p>
    <p>Thank you,</p>
    <p>!! Vishwa !!<br>
    </p>
  </body>
</html>