Documentation ¶
Overview ¶
Package server implements simple Unicast PTP UDP server.
Package server implements simple Unicast PTP UDP server.
Package server implements simple Unicast PTP UDP server.
Package server implements simple Unicast PTP UDP server.
Index ¶
- func ReadPidFile(path string) (int, error)
- type Config
- type DynamicConfig
- type Server
- type StaticConfig
- type SubscriptionClient
- func (sc *SubscriptionClient) Announce() *ptp.Announce
- func (sc *SubscriptionClient) DelayResp() *ptp.DelayResp
- func (sc *SubscriptionClient) Expired() bool
- func (sc *SubscriptionClient) Followup() *ptp.FollowUp
- func (sc *SubscriptionClient) IncSequenceID()
- func (sc *SubscriptionClient) Once()
- func (sc *SubscriptionClient) OnceSignaling()
- func (sc *SubscriptionClient) Running() bool
- func (sc *SubscriptionClient) SetExpire(expire time.Time)
- func (sc *SubscriptionClient) SetGclisa(gclisa unix.Sockaddr)
- func (sc *SubscriptionClient) SetInterval(interval time.Duration)
- func (sc *SubscriptionClient) Signaling() *ptp.Signaling
- func (sc *SubscriptionClient) Start(ctx context.Context)
- func (sc *SubscriptionClient) Stop()
- func (sc *SubscriptionClient) Sync() *ptp.SyncDelayReq
- func (sc *SubscriptionClient) UpdateAnnounce()
- func (sc *SubscriptionClient) UpdateAnnounceDelayReq(cf ptp.Correction, seq uint16)
- func (sc *SubscriptionClient) UpdateAnnounceFollowUp(transmitted time.Time)
- func (sc *SubscriptionClient) UpdateDelayResp(h *ptp.Header, received time.Time)
- func (sc *SubscriptionClient) UpdateFollowup(hwts time.Time)
- func (sc *SubscriptionClient) UpdateSignalingCancel()
- func (sc *SubscriptionClient) UpdateSignalingGrant(sg *ptp.Signaling, mt ptp.UnicastMsgTypeAndFlags, interval ptp.LogInterval, ...)
- func (sc *SubscriptionClient) UpdateSync()
- func (sc *SubscriptionClient) UpdateSyncDelayReq(received time.Time, seq uint16)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ReadPidFile ¶
ReadPidFile read a pid file from a path location and returns a pid
Types ¶
type Config ¶
type Config struct { StaticConfig DynamicConfig // contains filtered or unexported fields }
Config is a server config structure
func (*Config) CreatePidFile ¶
CreatePidFile creates a pid file in a defined location
func (*Config) DeletePidFile ¶
DeletePidFile deletes a pid file from a defined location
func (*Config) IfaceHasIP ¶
IfaceHasIP checks if selected IP is on interface
type DynamicConfig ¶
type DynamicConfig struct { // ClockAccuracy to report via announce messages. Time Accurate within 100ns ClockAccuracy ptp.ClockAccuracy // ClockClass to report via announce messages. 6 - Locked with Primary Reference Clock ClockClass ptp.ClockClass // DrainInterval is an interval for drain checks DrainInterval time.Duration // MaxSubDuration is a maximum sync/announce/delay_resp subscription duration MaxSubDuration time.Duration // MetricInterval is an interval of resetting metrics MetricInterval time.Duration // MinSubInterval is a minimum interval of the sync/announce subscription messages MinSubInterval time.Duration // UTCOffset is a current UTC offset. UTCOffset time.Duration }
DynamicConfig is a set of dynamic options which don't need a server restart
func ReadDynamicConfig ¶
func ReadDynamicConfig(path string) (*DynamicConfig, error)
ReadDynamicConfig reads dynamic config from the file
func (*DynamicConfig) UTCOffsetSanity ¶
func (dc *DynamicConfig) UTCOffsetSanity() error
UTCOffsetSanity checks if UTC offset value has an adequate value As of Apr 2022 TAI UTC offset is 37 seconds
func (*DynamicConfig) Write ¶
func (dc *DynamicConfig) Write(path string) error
Write dynamic config to a file
type Server ¶
type Server struct { Config *Config Stats stats.Stats Checks []drain.Drain // contains filtered or unexported fields }
Server is PTP unicast server
type StaticConfig ¶
type StaticConfig struct { ConfigFile string DebugAddr string DomainNumber uint DrainFileName string DSCP int Interface string IP net.IP LogLevel string MonitoringPort int PidFile string QueueSize int RecvWorkers int SendWorkers int TimestampType timestamp.Timestamp UndrainFileName string }
StaticConfig is a set of static options which require a server restart
type SubscriptionClient ¶
SubscriptionClient is sending subscriptionType messages periodically
func NewSubscriptionClient ¶
func NewSubscriptionClient(q chan *SubscriptionClient, gq chan *SubscriptionClient, eclisa, gclisa unix.Sockaddr, st ptp.MessageType, sc *Config, i time.Duration, e time.Time) *SubscriptionClient
NewSubscriptionClient gets minimal required arguments to create a subscription
func (*SubscriptionClient) Announce ¶
func (sc *SubscriptionClient) Announce() *ptp.Announce
Announce returns ptp Announce packet
func (*SubscriptionClient) DelayResp ¶
func (sc *SubscriptionClient) DelayResp() *ptp.DelayResp
DelayResp returns ptp Delay Response packet
func (*SubscriptionClient) Expired ¶
func (sc *SubscriptionClient) Expired() bool
Expired checks if the subscription expired or not
func (*SubscriptionClient) Followup ¶
func (sc *SubscriptionClient) Followup() *ptp.FollowUp
Followup returns ptp Follow Up packet
func (*SubscriptionClient) IncSequenceID ¶
func (sc *SubscriptionClient) IncSequenceID()
IncSequenceID adds 1 to a sequence id
func (*SubscriptionClient) Once ¶
func (sc *SubscriptionClient) Once()
Once adds itself to the worker queue once
func (*SubscriptionClient) OnceSignaling ¶
func (sc *SubscriptionClient) OnceSignaling()
OnceSignaling adds itself to the worker signaling queue once
func (*SubscriptionClient) Running ¶
func (sc *SubscriptionClient) Running() bool
Running returns the running bool
func (*SubscriptionClient) SetExpire ¶
func (sc *SubscriptionClient) SetExpire(expire time.Time)
SetExpire atomically sets expire
func (*SubscriptionClient) SetGclisa ¶
func (sc *SubscriptionClient) SetGclisa(gclisa unix.Sockaddr)
SetGclisa atomically sets gclisa
func (*SubscriptionClient) SetInterval ¶
func (sc *SubscriptionClient) SetInterval(interval time.Duration)
SetInterval atomically sets interval
func (*SubscriptionClient) Signaling ¶
func (sc *SubscriptionClient) Signaling() *ptp.Signaling
Signaling returns ptp Signaling packet granting the requested subscription
func (*SubscriptionClient) Start ¶
func (sc *SubscriptionClient) Start(ctx context.Context)
Start launches the subscription timers and exit on expire
func (*SubscriptionClient) Sync ¶
func (sc *SubscriptionClient) Sync() *ptp.SyncDelayReq
Sync returns ptp Sync packet
func (*SubscriptionClient) UpdateAnnounce ¶
func (sc *SubscriptionClient) UpdateAnnounce()
UpdateAnnounce updates ptp Announce packet
func (*SubscriptionClient) UpdateAnnounceDelayReq ¶
func (sc *SubscriptionClient) UpdateAnnounceDelayReq(cf ptp.Correction, seq uint16)
UpdateAnnounceDelayReq updates ptp Announce Delay Req payload
func (*SubscriptionClient) UpdateAnnounceFollowUp ¶
func (sc *SubscriptionClient) UpdateAnnounceFollowUp(transmitted time.Time)
UpdateAnnounceFollowUp updates ptp Announce Follow Up payload
func (*SubscriptionClient) UpdateDelayResp ¶
func (sc *SubscriptionClient) UpdateDelayResp(h *ptp.Header, received time.Time)
UpdateDelayResp updates ptp Delay Response packet
func (*SubscriptionClient) UpdateFollowup ¶
func (sc *SubscriptionClient) UpdateFollowup(hwts time.Time)
UpdateFollowup updates ptp Follow Up packet
func (*SubscriptionClient) UpdateSignalingCancel ¶
func (sc *SubscriptionClient) UpdateSignalingCancel()
UpdateSignalingCancel updates ptp Signaling packet canceling the requested subscription
func (*SubscriptionClient) UpdateSignalingGrant ¶
func (sc *SubscriptionClient) UpdateSignalingGrant(sg *ptp.Signaling, mt ptp.UnicastMsgTypeAndFlags, interval ptp.LogInterval, duration uint32)
UpdateSignalingGrant updates ptp Signaling packet granting the requested subscription
func (*SubscriptionClient) UpdateSync ¶
func (sc *SubscriptionClient) UpdateSync()
UpdateSync updates ptp Sync packet
func (*SubscriptionClient) UpdateSyncDelayReq ¶
func (sc *SubscriptionClient) UpdateSyncDelayReq(received time.Time, seq uint16)
UpdateSyncDelayReq updates ptp SyncDelayReq packet