Blame ntp_sources.h

Packit Service 623930
/*
Packit Service 623930
  chronyd/chronyc - Programs for keeping computer clocks accurate.
Packit Service 623930
Packit Service 623930
 **********************************************************************
Packit Service 623930
 * Copyright (C) Richard P. Curnow  1997-2002
Packit Service 623930
 * Copyright (C) Miroslav Lichvar  2014
Packit Service 623930
 * 
Packit Service 623930
 * This program is free software; you can redistribute it and/or modify
Packit Service 623930
 * it under the terms of version 2 of the GNU General Public License as
Packit Service 623930
 * published by the Free Software Foundation.
Packit Service 623930
 * 
Packit Service 623930
 * This program is distributed in the hope that it will be useful, but
Packit Service 623930
 * WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 623930
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 623930
 * General Public License for more details.
Packit Service 623930
 * 
Packit Service 623930
 * You should have received a copy of the GNU General Public License along
Packit Service 623930
 * with this program; if not, write to the Free Software Foundation, Inc.,
Packit Service 623930
 * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
Packit Service 623930
 * 
Packit Service 623930
 **********************************************************************
Packit Service 623930
Packit Service 623930
  =======================================================================
Packit Service 623930
Packit Service 623930
  Header for the part of the software that deals with the set of
Packit Service 623930
  current NTP servers and peers, which can resolve an IP address into
Packit Service 623930
  a source record for further processing.
Packit Service 623930
Packit Service 623930
  */
Packit Service 623930
Packit Service 623930
#ifndef GOT_NTP_SOURCES_H
Packit Service 623930
#define GOT_NTP_SOURCES_H
Packit Service 623930
Packit Service 623930
#include "ntp.h"
Packit Service 623930
#include "addressing.h"
Packit Service 623930
#include "srcparams.h"
Packit Service 623930
#include "ntp_core.h"
Packit Service 623930
#include "reports.h"
Packit Service 623930
Packit Service 623930
/* Status values returned by operations that indirectly result from user
Packit Service 623930
   input. */
Packit Service 623930
typedef enum {
Packit Service 623930
  NSR_Success, /* Operation successful */
Packit Service 623930
  NSR_NoSuchSource, /* Remove - attempt to remove a source that is not known */
Packit Service 623930
  NSR_AlreadyInUse, /* AddSource - attempt to add a source that is already known */ 
Packit Service 623930
  NSR_TooManySources, /* AddSource - too many sources already present */
Packit Service 623930
  NSR_InvalidAF /* AddSource - attempt to add a source with invalid address family */
Packit Service 623930
} NSR_Status;
Packit Service 623930
Packit Service 623930
/* Procedure to add a new server or peer source. */
Packit Service 623930
extern NSR_Status NSR_AddSource(NTP_Remote_Address *remote_addr, NTP_Source_Type type, SourceParameters *params);
Packit Service 623930
Packit Service 623930
/* Procedure to add a new server, peer source, or pool of servers specified by
Packit Service 623930
   name instead of address.  The name is resolved in exponentially increasing
Packit Service 623930
   intervals until it succeeds or fails with a non-temporary error. */
Packit Service 623930
extern void NSR_AddSourceByName(char *name, int port, int pool, NTP_Source_Type type, SourceParameters *params);
Packit Service 623930
Packit Service 623930
/* Function type for handlers to be called back when an attempt
Packit Service 623930
 * (possibly unsuccessful) to resolve unresolved sources ends */
Packit Service 623930
typedef void (*NSR_SourceResolvingEndHandler)(void);
Packit Service 623930
Packit Service 623930
/* Set the handler, or NULL to disable the notification */
Packit Service 623930
extern void NSR_SetSourceResolvingEndHandler(NSR_SourceResolvingEndHandler handler);
Packit Service 623930
Packit Service 623930
/* Procedure to start resolving unresolved sources */
Packit Service 623930
extern void NSR_ResolveSources(void);
Packit Service 623930
Packit Service 623930
/* Procedure to start all sources */
Packit Service 623930
extern void NSR_StartSources(void);
Packit Service 623930
Packit Service 623930
/* Start new sources automatically */
Packit Service 623930
extern void NSR_AutoStartSources(void);
Packit Service 623930
Packit Service 623930
/* Procedure to remove a source */
Packit Service 623930
extern NSR_Status NSR_RemoveSource(NTP_Remote_Address *remote_addr);
Packit Service 623930
Packit Service 623930
/* Procedure to remove all sources */
Packit Service 623930
extern void NSR_RemoveAllSources(void);
Packit Service 623930
Packit Service 623930
/* Procedure to try to find a replacement for a bad source */
Packit Service 623930
extern void NSR_HandleBadSource(IPAddr *address);
Packit Service 623930
Packit Service 623930
/* Procedure to resolve all names again */
Packit Service 623930
extern void NSR_RefreshAddresses(void);
Packit Service 623930
Packit Service 623930
/* Procedure to get local reference ID corresponding to a source */
Packit Service 623930
extern uint32_t NSR_GetLocalRefid(IPAddr *address);
Packit Service 623930
Packit Service 623930
/* This routine is called by ntp_io when a new packet arrives off the network */
Packit Service 623930
extern void NSR_ProcessRx(NTP_Remote_Address *remote_addr, NTP_Local_Address *local_addr,
Packit Service 623930
                          NTP_Local_Timestamp *rx_ts, NTP_Packet *message, int length);
Packit Service 623930
Packit Service 623930
/* This routine is called by ntp_io when a packet was sent to the network and
Packit Service 623930
   an accurate transmit timestamp was captured */
Packit Service 623930
extern void NSR_ProcessTx(NTP_Remote_Address *remote_addr, NTP_Local_Address *local_addr,
Packit Service 623930
                          NTP_Local_Timestamp *tx_ts, NTP_Packet *message, int length);
Packit Service 623930
Packit Service 623930
/* Initialisation function */
Packit Service 623930
extern void NSR_Initialise(void);
Packit Service 623930
Packit Service 623930
/* Finalisation function */
Packit Service 623930
extern void NSR_Finalise(void);
Packit Service 623930
Packit Service 623930
/* This routine is used to indicate that sources whose IP addresses
Packit Service 623930
   match a particular subnet should be set online or offline.  It returns
Packit Service 623930
   a flag indicating whether any hosts matched the address. */
Packit Service 623930
extern int NSR_SetConnectivity(IPAddr *mask, IPAddr *address, SRC_Connectivity connectivity);
Packit Service 623930
Packit Service 623930
extern int NSR_ModifyMinpoll(IPAddr *address, int new_minpoll);
Packit Service 623930
Packit Service 623930
extern int NSR_ModifyMaxpoll(IPAddr *address, int new_maxpoll);
Packit Service 623930
Packit Service 623930
extern int NSR_ModifyMaxdelay(IPAddr *address, double new_max_delay);
Packit Service 623930
Packit Service 623930
extern int NSR_ModifyMaxdelayratio(IPAddr *address, double new_max_delay_ratio);
Packit Service 623930
Packit Service 623930
extern int NSR_ModifyMaxdelaydevratio(IPAddr *address, double new_max_delay_ratio);
Packit Service 623930
Packit Service 623930
extern int NSR_ModifyMinstratum(IPAddr *address, int new_min_stratum);
Packit Service 623930
Packit Service 623930
extern int NSR_ModifyPolltarget(IPAddr *address, int new_poll_target);
Packit Service 623930
Packit Service 623930
extern int NSR_InitiateSampleBurst(int n_good_samples, int n_total_samples, IPAddr *mask, IPAddr *address);
Packit Service 623930
Packit Service 623930
extern void NSR_ReportSource(RPT_SourceReport *report, struct timespec *now);
Packit Service 623930
Packit Service 623930
extern int NSR_GetNTPReport(RPT_NTPReport *report);
Packit Service 623930
Packit Service 623930
extern void NSR_GetActivityReport(RPT_ActivityReport *report);
Packit Service 623930
Packit Service 623930
#endif /* GOT_NTP_SOURCES_H */