Store reference IDs in uint32_t
This commit is contained in:
parent
31ba3144c8
commit
91279a0f28
16 changed files with 41 additions and 41 deletions
|
@ -270,7 +270,7 @@ probe_source(SourceRecord *src)
|
||||||
pkt.precision = -6; /* as ntpdate */
|
pkt.precision = -6; /* as ntpdate */
|
||||||
pkt.root_delay = double_to_int32(1.0); /* 1 second */
|
pkt.root_delay = double_to_int32(1.0); /* 1 second */
|
||||||
pkt.root_dispersion = double_to_int32(1.0); /* likewise */
|
pkt.root_dispersion = double_to_int32(1.0); /* likewise */
|
||||||
pkt.reference_id = 0UL;
|
pkt.reference_id = 0;
|
||||||
pkt.reference_ts.hi = 0; /* Set to 0 */
|
pkt.reference_ts.hi = 0; /* Set to 0 */
|
||||||
pkt.reference_ts.lo = 0; /* Set to 0 */
|
pkt.reference_ts.lo = 0; /* Set to 0 */
|
||||||
pkt.originate_ts.hi = 0; /* Set to 0 */
|
pkt.originate_ts.hi = 0; /* Set to 0 */
|
||||||
|
|
|
@ -73,7 +73,7 @@ timeout_handler(void *arbitrary)
|
||||||
int leap;
|
int leap;
|
||||||
int are_we_synchronised, our_stratum;
|
int are_we_synchronised, our_stratum;
|
||||||
NTP_Leap leap_status;
|
NTP_Leap leap_status;
|
||||||
unsigned long our_ref_id;
|
uint32_t our_ref_id;
|
||||||
struct timeval our_ref_time;
|
struct timeval our_ref_time;
|
||||||
double our_root_delay, our_root_dispersion;
|
double our_root_delay, our_root_dispersion;
|
||||||
struct timeval local_transmit;
|
struct timeval local_transmit;
|
||||||
|
|
4
client.c
4
client.c
|
@ -1789,7 +1789,7 @@ process_cmd_sourcestats(char *line)
|
||||||
char hostname_buf[50];
|
char hostname_buf[50];
|
||||||
unsigned long n_samples, n_runs, span_seconds;
|
unsigned long n_samples, n_runs, span_seconds;
|
||||||
double resid_freq_ppm, skew_ppm, sd, est_offset;
|
double resid_freq_ppm, skew_ppm, sd, est_offset;
|
||||||
unsigned long ref_id;
|
uint32_t ref_id;
|
||||||
IPAddr ip_addr;
|
IPAddr ip_addr;
|
||||||
|
|
||||||
verbose = check_for_verbose_flag(line);
|
verbose = check_for_verbose_flag(line);
|
||||||
|
@ -1868,7 +1868,7 @@ process_cmd_tracking(char *line)
|
||||||
CMD_Request request;
|
CMD_Request request;
|
||||||
CMD_Reply reply;
|
CMD_Reply reply;
|
||||||
IPAddr ip_addr;
|
IPAddr ip_addr;
|
||||||
unsigned long ref_id;
|
uint32_t ref_id;
|
||||||
char host[50];
|
char host[50];
|
||||||
char *ref_ip;
|
char *ref_ip;
|
||||||
struct timeval ref_time;
|
struct timeval ref_time;
|
||||||
|
|
2
conf.c
2
conf.c
|
@ -468,7 +468,7 @@ static void
|
||||||
parse_refclock(const char *line)
|
parse_refclock(const char *line)
|
||||||
{
|
{
|
||||||
int i, n, poll, dpoll, filter_length, pps_rate;
|
int i, n, poll, dpoll, filter_length, pps_rate;
|
||||||
unsigned long ref_id, lock_ref_id;
|
uint32_t ref_id, lock_ref_id;
|
||||||
double offset, delay, precision;
|
double offset, delay, precision;
|
||||||
const char *tmp;
|
const char *tmp;
|
||||||
char cmd[10 + 1], *name, *param;
|
char cmd[10 + 1], *name, *param;
|
||||||
|
|
|
@ -515,7 +515,7 @@ transmit_packet(NTP_Mode my_mode, /* The mode this machine wants to be */
|
||||||
/* Parameters read from reference module */
|
/* Parameters read from reference module */
|
||||||
int are_we_synchronised, our_stratum;
|
int are_we_synchronised, our_stratum;
|
||||||
NTP_Leap leap_status;
|
NTP_Leap leap_status;
|
||||||
unsigned long our_ref_id;
|
uint32_t our_ref_id;
|
||||||
struct timeval our_ref_time;
|
struct timeval our_ref_time;
|
||||||
double our_root_delay, our_root_dispersion;
|
double our_root_delay, our_root_dispersion;
|
||||||
|
|
||||||
|
|
10
refclock.c
10
refclock.c
|
@ -74,8 +74,8 @@ struct RCL_Instance_Record {
|
||||||
int leap_status;
|
int leap_status;
|
||||||
int pps_rate;
|
int pps_rate;
|
||||||
struct MedianFilter filter;
|
struct MedianFilter filter;
|
||||||
unsigned long ref_id;
|
uint32_t ref_id;
|
||||||
unsigned long lock_ref;
|
uint32_t lock_ref;
|
||||||
double offset;
|
double offset;
|
||||||
double delay;
|
double delay;
|
||||||
double precision;
|
double precision;
|
||||||
|
@ -279,7 +279,7 @@ void
|
||||||
RCL_ReportSource(RPT_SourceReport *report, struct timeval *now)
|
RCL_ReportSource(RPT_SourceReport *report, struct timeval *now)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
unsigned long ref_id;
|
uint32_t ref_id;
|
||||||
|
|
||||||
assert(report->ip_addr.family == IPADDR_INET4);
|
assert(report->ip_addr.family == IPADDR_INET4);
|
||||||
ref_id = report->ip_addr.addr.in4;
|
ref_id = report->ip_addr.addr.in4;
|
||||||
|
@ -420,7 +420,7 @@ RCL_AddPulse(RCL_Instance instance, struct timeval *pulse_time, double second)
|
||||||
int is_synchronised, stratum;
|
int is_synchronised, stratum;
|
||||||
double root_delay, root_dispersion, distance;
|
double root_delay, root_dispersion, distance;
|
||||||
NTP_Leap leap;
|
NTP_Leap leap;
|
||||||
unsigned long ref_id;
|
uint32_t ref_id;
|
||||||
|
|
||||||
/* Ignore the pulse if we are not well synchronized */
|
/* Ignore the pulse if we are not well synchronized */
|
||||||
|
|
||||||
|
@ -471,7 +471,7 @@ pps_stratum(RCL_Instance instance, struct timeval *tv)
|
||||||
int is_synchronised, stratum, i;
|
int is_synchronised, stratum, i;
|
||||||
double root_delay, root_dispersion;
|
double root_delay, root_dispersion;
|
||||||
NTP_Leap leap;
|
NTP_Leap leap;
|
||||||
unsigned long ref_id;
|
uint32_t ref_id;
|
||||||
|
|
||||||
REF_GetReferenceParams(tv, &is_synchronised, &leap, &stratum,
|
REF_GetReferenceParams(tv, &is_synchronised, &leap, &stratum,
|
||||||
&ref_id, &ref_time, &root_delay, &root_dispersion);
|
&ref_id, &ref_time, &root_delay, &root_dispersion);
|
||||||
|
|
|
@ -38,8 +38,8 @@ typedef struct {
|
||||||
int poll;
|
int poll;
|
||||||
int filter_length;
|
int filter_length;
|
||||||
int pps_rate;
|
int pps_rate;
|
||||||
unsigned long ref_id;
|
uint32_t ref_id;
|
||||||
unsigned long lock_ref_id;
|
uint32_t lock_ref_id;
|
||||||
double offset;
|
double offset;
|
||||||
double delay;
|
double delay;
|
||||||
double precision;
|
double precision;
|
||||||
|
|
10
reference.c
10
reference.c
|
@ -45,7 +45,7 @@ static int local_stratum;
|
||||||
static NTP_Leap our_leap_status;
|
static NTP_Leap our_leap_status;
|
||||||
static int our_leap_sec;
|
static int our_leap_sec;
|
||||||
static int our_stratum;
|
static int our_stratum;
|
||||||
static unsigned long our_ref_id;
|
static uint32_t our_ref_id;
|
||||||
static IPAddr our_ref_ip;
|
static IPAddr our_ref_ip;
|
||||||
struct timeval our_ref_time; /* Stored relative to reference, NOT local time */
|
struct timeval our_ref_time; /* Stored relative to reference, NOT local time */
|
||||||
static double our_offset;
|
static double our_offset;
|
||||||
|
@ -516,7 +516,7 @@ write_log(struct timeval *ref_time, char *ref, int stratum, double freq, double
|
||||||
void
|
void
|
||||||
REF_SetReference(int stratum,
|
REF_SetReference(int stratum,
|
||||||
NTP_Leap leap,
|
NTP_Leap leap,
|
||||||
unsigned long ref_id,
|
uint32_t ref_id,
|
||||||
IPAddr *ref_ip,
|
IPAddr *ref_ip,
|
||||||
struct timeval *ref_time,
|
struct timeval *ref_time,
|
||||||
double offset,
|
double offset,
|
||||||
|
@ -741,7 +741,7 @@ REF_GetReferenceParams
|
||||||
int *is_synchronised,
|
int *is_synchronised,
|
||||||
NTP_Leap *leap_status,
|
NTP_Leap *leap_status,
|
||||||
int *stratum,
|
int *stratum,
|
||||||
unsigned long *ref_id,
|
uint32_t *ref_id,
|
||||||
struct timeval *ref_time,
|
struct timeval *ref_time,
|
||||||
double *root_delay,
|
double *root_delay,
|
||||||
double *root_dispersion
|
double *root_dispersion
|
||||||
|
@ -794,7 +794,7 @@ REF_GetReferenceParams
|
||||||
|
|
||||||
*leap_status = LEAP_Unsynchronised;
|
*leap_status = LEAP_Unsynchronised;
|
||||||
*stratum = 0;
|
*stratum = 0;
|
||||||
*ref_id = 0UL;
|
*ref_id = 0;
|
||||||
ref_time->tv_sec = ref_time->tv_usec = 0;
|
ref_time->tv_sec = ref_time->tv_usec = 0;
|
||||||
/* These values seem to be standard for a client, and
|
/* These values seem to be standard for a client, and
|
||||||
any peer or client of ours will ignore them anyway because
|
any peer or client of ours will ignore them anyway because
|
||||||
|
@ -900,7 +900,7 @@ REF_GetTrackingReport(RPT_TrackingReport *rep)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
rep->ref_id = 0UL;
|
rep->ref_id = 0;
|
||||||
rep->ip_addr.family = IPADDR_UNSPEC;
|
rep->ip_addr.family = IPADDR_UNSPEC;
|
||||||
rep->stratum = 0;
|
rep->stratum = 0;
|
||||||
rep->ref_time.tv_sec = 0;
|
rep->ref_time.tv_sec = 0;
|
||||||
|
|
|
@ -71,7 +71,7 @@ extern void REF_GetReferenceParams
|
||||||
int *is_synchronised,
|
int *is_synchronised,
|
||||||
NTP_Leap *leap,
|
NTP_Leap *leap,
|
||||||
int *stratum,
|
int *stratum,
|
||||||
unsigned long *ref_id,
|
uint32_t *ref_id,
|
||||||
struct timeval *ref_time,
|
struct timeval *ref_time,
|
||||||
double *root_delay,
|
double *root_delay,
|
||||||
double *root_dispersion
|
double *root_dispersion
|
||||||
|
@ -105,7 +105,7 @@ extern void REF_SetReference
|
||||||
(
|
(
|
||||||
int stratum,
|
int stratum,
|
||||||
NTP_Leap leap,
|
NTP_Leap leap,
|
||||||
unsigned long ref_id,
|
uint32_t ref_id,
|
||||||
IPAddr *ref_ip,
|
IPAddr *ref_ip,
|
||||||
struct timeval *ref_time,
|
struct timeval *ref_time,
|
||||||
double offset,
|
double offset,
|
||||||
|
|
|
@ -46,7 +46,7 @@ typedef struct {
|
||||||
} RPT_SourceReport ;
|
} RPT_SourceReport ;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
unsigned long ref_id;
|
uint32_t ref_id;
|
||||||
IPAddr ip_addr;
|
IPAddr ip_addr;
|
||||||
unsigned long stratum;
|
unsigned long stratum;
|
||||||
struct timeval ref_time;
|
struct timeval ref_time;
|
||||||
|
@ -59,7 +59,7 @@ typedef struct {
|
||||||
} RPT_TrackingReport;
|
} RPT_TrackingReport;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
unsigned long ref_id;
|
uint32_t ref_id;
|
||||||
IPAddr ip_addr;
|
IPAddr ip_addr;
|
||||||
unsigned long n_samples;
|
unsigned long n_samples;
|
||||||
unsigned long n_runs;
|
unsigned long n_runs;
|
||||||
|
|
20
sources.c
20
sources.c
|
@ -84,8 +84,8 @@ struct SRC_Instance_Record {
|
||||||
SST_Stats stats;
|
SST_Stats stats;
|
||||||
NTP_Leap leap_status; /* Leap status */
|
NTP_Leap leap_status; /* Leap status */
|
||||||
int index; /* Index back into the array of source */
|
int index; /* Index back into the array of source */
|
||||||
unsigned long ref_id; /* The reference ID of this source
|
uint32_t ref_id; /* The reference ID of this source
|
||||||
(i.e. its IP address, NOT the
|
(i.e. from its IP address, NOT the
|
||||||
reference _it_ is sync'd to) */
|
reference _it_ is sync'd to) */
|
||||||
IPAddr *ip_addr; /* Its IP address if NTP source */
|
IPAddr *ip_addr; /* Its IP address if NTP source */
|
||||||
|
|
||||||
|
@ -183,7 +183,7 @@ void SRC_Finalise(void)
|
||||||
/* Function to create a new instance. This would be called by one of
|
/* Function to create a new instance. This would be called by one of
|
||||||
the individual source-type instance creation routines. */
|
the individual source-type instance creation routines. */
|
||||||
|
|
||||||
SRC_Instance SRC_CreateNewInstance(unsigned long ref_id, SRC_Type type, SRC_SelectOption sel_option, IPAddr *addr)
|
SRC_Instance SRC_CreateNewInstance(uint32_t ref_id, SRC_Type type, SRC_SelectOption sel_option, IPAddr *addr)
|
||||||
{
|
{
|
||||||
SRC_Instance result;
|
SRC_Instance result;
|
||||||
|
|
||||||
|
@ -420,10 +420,10 @@ source_to_string(SRC_Instance inst)
|
||||||
of sources we are holding.
|
of sources we are holding.
|
||||||
|
|
||||||
Updates are only made to the local reference if a new source is selected
|
Updates are only made to the local reference if a new source is selected
|
||||||
or match_addr is equal to the selected reference source address */
|
or match_refid is equal to the selected reference source refid */
|
||||||
|
|
||||||
void
|
void
|
||||||
SRC_SelectSource(unsigned long match_addr)
|
SRC_SelectSource(uint32_t match_refid)
|
||||||
{
|
{
|
||||||
int i, j, index, old_selected_index;
|
int i, j, index, old_selected_index;
|
||||||
struct timeval now, ref_time;
|
struct timeval now, ref_time;
|
||||||
|
@ -783,8 +783,8 @@ SRC_SelectSource(unsigned long match_addr)
|
||||||
|
|
||||||
/* Update score, but only for source pairs where one source
|
/* Update score, but only for source pairs where one source
|
||||||
has a new sample */
|
has a new sample */
|
||||||
if (sources[i]->ref_id == match_addr ||
|
if (sources[i]->ref_id == match_refid ||
|
||||||
sources[selected_source_index]->ref_id == match_addr) {
|
sources[selected_source_index]->ref_id == match_refid) {
|
||||||
|
|
||||||
sources[i]->sel_score *= sel_src_distance / distance;
|
sources[i]->sel_score *= sel_src_distance / distance;
|
||||||
|
|
||||||
|
@ -803,7 +803,7 @@ SRC_SelectSource(unsigned long match_addr)
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
LOG(LOGS_INFO, LOGF_Sources, "select score=%f refid=%lx match_refid=%lx status=%d dist=%f",
|
LOG(LOGS_INFO, LOGF_Sources, "select score=%f refid=%lx match_refid=%lx status=%d dist=%f",
|
||||||
sources[i]->sel_score, sources[i]->ref_id, match_addr, sources[i]->status, distance);
|
sources[i]->sel_score, sources[i]->ref_id, match_refid, sources[i]->status, distance);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (max_score < sources[i]->sel_score) {
|
if (max_score < sources[i]->sel_score) {
|
||||||
|
@ -840,9 +840,9 @@ SRC_SelectSource(unsigned long match_addr)
|
||||||
sources[selected_source_index]->status = SRC_SYNC;
|
sources[selected_source_index]->status = SRC_SYNC;
|
||||||
|
|
||||||
/* Update local reference only when a new source was selected or a new
|
/* Update local reference only when a new source was selected or a new
|
||||||
sample was received (i.e. match_addr is equal to selected ref_id) */
|
sample was received (i.e. match_refid is equal to selected refid) */
|
||||||
if (selected_source_index != old_selected_index ||
|
if (selected_source_index != old_selected_index ||
|
||||||
match_addr == sources[selected_source_index]->ref_id) {
|
match_refid == sources[selected_source_index]->ref_id) {
|
||||||
|
|
||||||
/* Now just use the statistics of the selected source for
|
/* Now just use the statistics of the selected source for
|
||||||
trimming the local clock */
|
trimming the local clock */
|
||||||
|
|
|
@ -61,7 +61,7 @@ typedef enum {
|
||||||
/* Function to create a new instance. This would be called by one of
|
/* Function to create a new instance. This would be called by one of
|
||||||
the individual source-type instance creation routines. */
|
the individual source-type instance creation routines. */
|
||||||
|
|
||||||
extern SRC_Instance SRC_CreateNewInstance(unsigned long ref_id, SRC_Type type, SRC_SelectOption sel_option, IPAddr *addr);
|
extern SRC_Instance SRC_CreateNewInstance(uint32_t ref_id, SRC_Type type, SRC_SelectOption sel_option, IPAddr *addr);
|
||||||
|
|
||||||
/* Function to get rid of a source when it is being unconfigured.
|
/* Function to get rid of a source when it is being unconfigured.
|
||||||
This may cause the current reference source to be reselected, if this
|
This may cause the current reference source to be reselected, if this
|
||||||
|
@ -135,7 +135,7 @@ extern void SRC_ResetReachability(SRC_Instance inst);
|
||||||
reference source address. (This avoids updating the frequency
|
reference source address. (This avoids updating the frequency
|
||||||
tracking for every sample from other sources - only the ones from
|
tracking for every sample from other sources - only the ones from
|
||||||
the selected reference make a difference) */
|
the selected reference make a difference) */
|
||||||
extern void SRC_SelectSource(unsigned long match_addr);
|
extern void SRC_SelectSource(uint32_t match_refid);
|
||||||
|
|
||||||
/* Force reselecting the best source */
|
/* Force reselecting the best source */
|
||||||
extern void SRC_ReselectSource(void);
|
extern void SRC_ReselectSource(void);
|
||||||
|
|
|
@ -58,7 +58,7 @@ static LOG_FileID logfileid;
|
||||||
struct SST_Stats_Record {
|
struct SST_Stats_Record {
|
||||||
|
|
||||||
/* Reference ID and IP address of source, used for logging to statistics log */
|
/* Reference ID and IP address of source, used for logging to statistics log */
|
||||||
unsigned long refid;
|
uint32_t refid;
|
||||||
IPAddr *ip_addr;
|
IPAddr *ip_addr;
|
||||||
|
|
||||||
/* Number of samples currently stored. The samples are stored in circular
|
/* Number of samples currently stored. The samples are stored in circular
|
||||||
|
@ -173,7 +173,7 @@ SST_Finalise(void)
|
||||||
/* This function creates a new instance of the statistics handler */
|
/* This function creates a new instance of the statistics handler */
|
||||||
|
|
||||||
SST_Stats
|
SST_Stats
|
||||||
SST_CreateInstance(unsigned long refid, IPAddr *addr)
|
SST_CreateInstance(uint32_t refid, IPAddr *addr)
|
||||||
{
|
{
|
||||||
SST_Stats inst;
|
SST_Stats inst;
|
||||||
inst = MallocNew(struct SST_Stats_Record);
|
inst = MallocNew(struct SST_Stats_Record);
|
||||||
|
|
|
@ -38,7 +38,7 @@ extern void SST_Initialise(void);
|
||||||
extern void SST_Finalise(void);
|
extern void SST_Finalise(void);
|
||||||
|
|
||||||
/* This function creates a new instance of the statistics handler */
|
/* This function creates a new instance of the statistics handler */
|
||||||
extern SST_Stats SST_CreateInstance(unsigned long refid, IPAddr *addr);
|
extern SST_Stats SST_CreateInstance(uint32_t refid, IPAddr *addr);
|
||||||
|
|
||||||
/* This function deletes an instance of the statistics handler. */
|
/* This function deletes an instance of the statistics handler. */
|
||||||
extern void SST_DeleteInstance(SST_Stats inst);
|
extern void SST_DeleteInstance(SST_Stats inst);
|
||||||
|
|
4
util.c
4
util.c
|
@ -240,7 +240,7 @@ UTI_TimestampToString(NTP_int64 *ts)
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
||||||
char *
|
char *
|
||||||
UTI_RefidToString(unsigned long ref_id)
|
UTI_RefidToString(uint32_t ref_id)
|
||||||
{
|
{
|
||||||
unsigned int i, j, c;
|
unsigned int i, j, c;
|
||||||
char buf[5], *result;
|
char buf[5], *result;
|
||||||
|
@ -333,7 +333,7 @@ UTI_StringToIP(const char *addr, IPAddr *ip)
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
||||||
unsigned long
|
uint32_t
|
||||||
UTI_IPToRefid(IPAddr *ip)
|
UTI_IPToRefid(IPAddr *ip)
|
||||||
{
|
{
|
||||||
MD5_CTX ctx;
|
MD5_CTX ctx;
|
||||||
|
|
4
util.h
4
util.h
|
@ -71,13 +71,13 @@ extern char *UTI_TimevalToString(struct timeval *tv);
|
||||||
extern char *UTI_TimestampToString(NTP_int64 *ts);
|
extern char *UTI_TimestampToString(NTP_int64 *ts);
|
||||||
|
|
||||||
/* Convert ref_id into a temporary string, for diagnostics */
|
/* Convert ref_id into a temporary string, for diagnostics */
|
||||||
extern char *UTI_RefidToString(unsigned long ref_id);
|
extern char *UTI_RefidToString(uint32_t ref_id);
|
||||||
|
|
||||||
/* Convert an IP address to string, for diagnostics */
|
/* Convert an IP address to string, for diagnostics */
|
||||||
extern char *UTI_IPToString(IPAddr *ip);
|
extern char *UTI_IPToString(IPAddr *ip);
|
||||||
|
|
||||||
extern int UTI_StringToIP(const char *addr, IPAddr *ip);
|
extern int UTI_StringToIP(const char *addr, IPAddr *ip);
|
||||||
extern unsigned long UTI_IPToRefid(IPAddr *ip);
|
extern uint32_t UTI_IPToRefid(IPAddr *ip);
|
||||||
extern void UTI_IPHostToNetwork(IPAddr *src, IPAddr *dest);
|
extern void UTI_IPHostToNetwork(IPAddr *src, IPAddr *dest);
|
||||||
extern void UTI_IPNetworkToHost(IPAddr *src, IPAddr *dest);
|
extern void UTI_IPNetworkToHost(IPAddr *src, IPAddr *dest);
|
||||||
extern int UTI_CompareIPs(IPAddr *a, IPAddr *b, IPAddr *mask);
|
extern int UTI_CompareIPs(IPAddr *a, IPAddr *b, IPAddr *mask);
|
||||||
|
|
Loading…
Reference in a new issue