Skip to content

NTP Service

The NTP Service is a gRPC & Go based NTP configurator microservice for Edge Devices.

Ntp.proto

NTP

Type contains an array of NTP server addresses.

Field Type Label Description
ntpServer [string](#string) repeated Array of multiple NTP server addresses

PeerDetails

Peer Details from ntpq -p output.

Field Type Label Description
remoteServer [string](#string) NTP server address
referenceID [string](#string) Reference ID for the NTP server
stratum [string](#string) Stratum for the NTP Server
type [string](#string) Type of server (local, unicast, multicast, or broadcast)
poll [int32](#int32) How frequently to query server (in seconds)
when [int32](#int32) How many seconds passed after the last poll
reach [string](#string) Octal bitmask of success or failure of last 8 queries (left-shifted). eg:375
delay [float](#float) Network round trip time (in milliseconds)
offset [float](#float) Difference between local clock and remote clock (in milliseconds)
jitter [float](#float) Difference of successive time values from server (in milliseconds)

Status

Type of current NTP status.

Field Type Label Description
isNtpServiceRunning [bool](#bool) Indicates if NTP service is running or not
isSynced [bool](#bool) Indicates if NTP server is synced or not
lastConfigurationTime [string](#string) Time of the last performed IEDK NTP configuration
lastSyncTime [string](#string) Time of the last NTP sync operation
peerDetails [PeerDetails](#siemens.iedge.dmapi.ntp.v1.PeerDetails) repeated NTPQ peer information array. Only exists after NTP configuration is done

NtpService

NtpService uses a UNIX Domain Socket "/var/run/devicemodel/ntp.sock" for GRPC communication. protoc generates both client and server instance for this Service. GRPC Status codes : https://developers.google.com/maps-booking/reference/grpc-api/status_codes .

Method Name Request Type Response Type Description
SetNtpServer [Ntp](#siemens.iedge.dmapi.ntp.v1.Ntp) [.google.protobuf.Empty](#google.protobuf.Empty) Set NTP server
GetNtpServer [.google.protobuf.Empty](#google.protobuf.Empty) [Ntp](#siemens.iedge.dmapi.ntp.v1.Ntp) Returns NTP servers
GetStatus [.google.protobuf.Empty](#google.protobuf.Empty) [Status](#siemens.iedge.dmapi.ntp.v1.Status) Returns NTP Status message

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)

NOTICE

Funding Acknowledgment: Funded by the Federal Ministry for Economic Affairs and Energy based on a decision by the German Bundestag | Your funding provider: Kicks for Edge as part of the EU funding program IPCEI-CIS (FKZ:13IPC008)