Add a clock method to receive the follow up information TLV.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>master
parent
f38338827b
commit
94dd186cdf
10
clock.c
10
clock.c
|
@ -70,6 +70,7 @@ struct clock {
|
||||||
tmv_t path_delay;
|
tmv_t path_delay;
|
||||||
struct mave *avg_delay;
|
struct mave *avg_delay;
|
||||||
struct freq_estimator fest;
|
struct freq_estimator fest;
|
||||||
|
struct time_status_np status;
|
||||||
double nrr;
|
double nrr;
|
||||||
tmv_t c1;
|
tmv_t c1;
|
||||||
tmv_t c2;
|
tmv_t c2;
|
||||||
|
@ -473,6 +474,15 @@ UInteger8 clock_domain_number(struct clock *c)
|
||||||
return c->dds.domainNumber;
|
return c->dds.domainNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clock_follow_up_info(struct clock *c, struct follow_up_info_tlv *f)
|
||||||
|
{
|
||||||
|
c->status.cumulativeScaledRateOffset = f->cumulativeScaledRateOffset;
|
||||||
|
c->status.scaledLastGmPhaseChange = f->scaledLastGmPhaseChange;
|
||||||
|
c->status.gmTimeBaseIndicator = f->gmTimeBaseIndicator;
|
||||||
|
memcpy(&c->status.lastGmPhaseChange, &f->lastGmPhaseChange,
|
||||||
|
sizeof(c->status.lastGmPhaseChange));
|
||||||
|
}
|
||||||
|
|
||||||
struct ClockIdentity clock_identity(struct clock *c)
|
struct ClockIdentity clock_identity(struct clock *c)
|
||||||
{
|
{
|
||||||
return c->dds.clockIdentity;
|
return c->dds.clockIdentity;
|
||||||
|
|
8
clock.h
8
clock.h
|
@ -24,6 +24,7 @@
|
||||||
#include "ds.h"
|
#include "ds.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "servo.h"
|
#include "servo.h"
|
||||||
|
#include "tlv.h"
|
||||||
#include "tmv.h"
|
#include "tmv.h"
|
||||||
#include "transport.h"
|
#include "transport.h"
|
||||||
|
|
||||||
|
@ -90,6 +91,13 @@ void clock_destroy(struct clock *c);
|
||||||
*/
|
*/
|
||||||
UInteger8 clock_domain_number(struct clock *c);
|
UInteger8 clock_domain_number(struct clock *c);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provide the follow_up info TLV from a slave port.
|
||||||
|
* @param c The clock instance.
|
||||||
|
* @param f Pointer to the TLV.
|
||||||
|
*/
|
||||||
|
void clock_follow_up_info(struct clock *c, struct follow_up_info_tlv *f);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Obtain a clock's identity from its default data set.
|
* Obtain a clock's identity from its default data set.
|
||||||
* @param c The clock instance.
|
* @param c The clock instance.
|
||||||
|
|
7
tlv.h
7
tlv.h
|
@ -165,6 +165,13 @@ struct follow_up_info_tlv {
|
||||||
Integer32 scaledLastGmPhaseChange;
|
Integer32 scaledLastGmPhaseChange;
|
||||||
} PACKED;
|
} PACKED;
|
||||||
|
|
||||||
|
struct time_status_np {
|
||||||
|
UInteger32 cumulativeScaledRateOffset;
|
||||||
|
Integer32 scaledLastGmPhaseChange;
|
||||||
|
UInteger16 gmTimeBaseIndicator;
|
||||||
|
ScaledNs lastGmPhaseChange;
|
||||||
|
} PACKED;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts recognized value sub-fields into host byte order.
|
* Converts recognized value sub-fields into host byte order.
|
||||||
* @param tlv Pointer to a Type Length Value field.
|
* @param tlv Pointer to a Type Length Value field.
|
||||||
|
|
Loading…
Reference in New Issue