Set static & dhcp sent ntp server ip on ethernet obj

Currently there is no way to differentiate between the Static
and DHCP assigned NTP servers at dbus

This commit adds StaticNTPServers peroperty to hold the static
configuration of NTP servers. This is a read-write property.
The existing NTPServer propery will hold both static and DHCP
assigned NTP servers. This is a read-only property.

The static and dhcp sent ntp server details are present in the
dbus object hosted by systemd-timesyncd service (mentioned in
Tested By section).

In this change, networkd fetches the ntp server details from the
timesyncd dbus object and set the "NTPServers" property with dhcp sent
ip and "StaticNTPServers" will be set from the configuration file.

Tested By:

* Change the ntp server ips in dhcp config file & restart dhcpd
* timesyncd dbus object contains the new list of ips as below:

busctl introspect org.freedesktop.timesync1 /org/freedesktop/timesync1
NAME                                TYPE      SIGNATURE          RESULT/VALUE                             FLAGS
org.freedesktop.DBus.Introspectable interface -                  -                                        -
.Introspect                         method    -                  s                                        -
org.freedesktop.DBus.Peer           interface -                  -                                        -
.GetMachineId                       method    -                  s                                        -
.Ping                               method    -                  -                                        -
org.freedesktop.DBus.Properties     interface -                  -                                        -
.Get                                method    ss                 v                                        -
.GetAll                             method    s                  a{sv}                                    -
.Set                                method    ssv                -                                        -
.PropertiesChanged                  signal    sa{sv}as           -                                        -
org.freedesktop.timesync1.Manager   interface -                  -                                        -
.FallbackNTPServers                 property  as                 4 "time1.google.com" "time2.google.com"… const
.Frequency                          property  x                  0                                        -
.LinkNTPServers                     property  as                 1 "1.1.1.1"                              -
.NTPMessage                         property  (uuuuittayttttbtt) 0 0 0 0 0 0 0 4 0 0 0 0 0 1844453508490… emits-change
.PollIntervalMaxUSec                property  t                  2048000000                               const
.PollIntervalMinUSec                property  t                  32000000                                 const
.PollIntervalUSec                   property  t                  2048000000                               -
.RootDistanceMaxUSec                property  t                  5000000                                  const
.ServerAddress                      property  (iay)              2 4 1 1 1 1                              -
.ServerName                         property  s                  "1.1.1.1"                                -
.SystemNTPServers                   property  as                 0                                        const

* Since network configuration has changed, the service restarts and
ntp server details are loaded from timesyncd dbus object & config file,
and are set in dbus objects hosted by networkd.

command: busctl introspect xyz.openbmc_project.Network /xyz/openbmc_project/network/eth0
         busctl introspect xyz.openbmc_project.Network /xyz/openbmc_project/network/eth1

* Ethernet interface network config files will be updated with NTP=<ip addresses> under [Network]

command: cat /etc/systemd/network/00-bmc-eth0.network
         cat /etc/systemd/network/00-bmc-eth1.network

Signed-off-by: Asmitha Karunanithi <asmitk01@in.ibm.com>
Change-Id: If8b1b3ed2afb531f179e00da173f6f86a1bf0c18
4 files changed
tree: 9a6e2dcdb6ade9023493d57b847300fc35277dfd
  1. docs/
  2. gen/
  3. src/
  4. subprojects/
  5. test/
  6. yaml/
  7. .clang-format
  8. .gitignore
  9. .shellcheck
  10. LICENSE
  11. meson.build
  12. meson_options.txt
  13. OWNERS
  14. README.md
  15. xyz.openbmc_project.Network.conf.in
  16. xyz.openbmc_project.Network.service.in
README.md

To Build

To build this package, do the following steps:

    1. meson build
    2. ninja -C build