Files
lneto/ntp/definitions.go
T
2025-01-07 11:34:35 -03:00

62 lines
1.8 KiB
Go

package ntp
// LeapIndicator represents the leap second indicator.
// It indicates whether there is no warning, an extra second (61 seconds in the last minute),
// or a missing second (59 seconds in the last minute).
type LeapIndicator uint8
const (
LeapNoWarning LeapIndicator = iota // no warning
LeapLastMinute61 // last minute 61
LeapLastMinute59 // last minute 59
)
// Stratum represents the stratum level of the NTP server.
type Stratum uint8
const (
// If the Stratum field is 0, which implies unspecified or invalid, the
// Reference Identifier field can be used to convey messages useful for
// status reporting and access control. These are called Kiss-o'-Death
// (KoD) packets and the ASCII messages they convey are called kiss codes.
StratumUnspecified Stratum = 0 // unspecified
StratumPrimary Stratum = 1 // primary
StratumUnsync Stratum = 16 // unsynchronized
)
// String returns a human readable representation of the Stratum.
func (s Stratum) String() string {
switch s {
case 0:
return "unspecified"
case 1:
return "primary"
case 16:
return "unsynchronized"
}
if s < 16 {
return "secondary"
}
return "invalid"
}
func (s Stratum) IsSecondary() bool {
return s > 1 && s < 16
}
// Mode represents the mode of the NTP message.
// It can be undefined, symmetric active, symmetric passive, client, server, broadcast,
// NTP control message, or private use.
type Mode uint8
const (
modeUndef Mode = iota // undefined
ModeSymmetricActive // symmetric active
ModeSymmetricPassive // symmetric passive
ModeClient // client
ModeServer // server
ModeBroadcast // broadcast
ModeNTPControlMessage // control message
ModePrivateUse // private use
)