.. only:: comment © Crown-owned copyright 2025, Defence Science and Technology Laboratory UK .. _NTPClient: NTPClient ######### The NTPClient provides a client interface for connecting to the ``NTPServer``. Key features ============ - Connects to the ``NTPServer`` via the ``SoftwareManager``. Usage ===== - Install on a Node via the ``SoftwareManager`` to start the database service. - Service runs on UDP port 123 by default. Implementation ============== - Leverages ``SoftwareManager`` for sending payloads over the network. - Provides easy interface for Nodes to find IP addresses via domain names. - Extends base Service class. Examples ======== Python """""" .. code-block:: python from ipaddress import IPv4Address from primaite.simulator.network.hardware.nodes.host.server import Server from primaite.simulator.system.services.ntp.ntp_client import NTPClient # Create Server server = Server(config = { "hostname":"server", "ip_address":"192.168.2.2", "subnet_mask":"255.255.255.0", "default_gateway":"192.168.1.10", "start_up_duration":0, } ) server.power_on() # Install NTPClient on server server.software_manager.install(NTPClient) ntp_client: NTPClient = server.software_manager.software.get("ntp-client") ntp_client.start() ntp_client.configure(ntp_server_ip_address=IPv4Address("192.168.0.10")) Via Configuration """"""""""""""""" .. code-block:: yaml simulation: network: nodes: - hostname: example_server type: server ... services: - type: ntp-client options: ntp_server_ip: 192.168.0.10 Configuration ============= ``ntp_server_ip`` """"""""""""""""" Optional. Default value is ``None``. The IP address of an NTP Server which provides a time that the ``NTPClient`` can synchronise to. This must be a valid octet i.e. in the range of ``0.0.0.0`` and ``255.255.255.255``. ``Common Attributes`` ^^^^^^^^^^^^^^^^^^^^^ See :ref:`Common Configuration`