telecom: Add a configuration option for G.8275.portDS.localPriority.
Signed-off-by: Richard Cochran <richardcochran@gmail.com>master
parent
c7fb525721
commit
4545fd1150
1
config.c
1
config.c
|
@ -193,6 +193,7 @@ struct config_item config_tab[] = {
|
||||||
GLOB_ITEM_INT("free_running", 0, 0, 1),
|
GLOB_ITEM_INT("free_running", 0, 0, 1),
|
||||||
PORT_ITEM_INT("freq_est_interval", 1, 0, INT_MAX),
|
PORT_ITEM_INT("freq_est_interval", 1, 0, INT_MAX),
|
||||||
GLOB_ITEM_INT("G.8275.defaultDS.localPriority", 128, 1, UINT8_MAX),
|
GLOB_ITEM_INT("G.8275.defaultDS.localPriority", 128, 1, UINT8_MAX),
|
||||||
|
PORT_ITEM_INT("G.8275.portDS.localPriority", 128, 1, UINT8_MAX),
|
||||||
GLOB_ITEM_INT("gmCapable", 1, 0, 1),
|
GLOB_ITEM_INT("gmCapable", 1, 0, 1),
|
||||||
PORT_ITEM_INT("hybrid_e2e", 0, 0, 1),
|
PORT_ITEM_INT("hybrid_e2e", 0, 0, 1),
|
||||||
PORT_ITEM_INT("ignore_transport_specific", 0, 0, 1),
|
PORT_ITEM_INT("ignore_transport_specific", 0, 0, 1),
|
||||||
|
|
|
@ -28,6 +28,7 @@ syncReceiptTimeout 0
|
||||||
delayAsymmetry 0
|
delayAsymmetry 0
|
||||||
fault_reset_interval 4
|
fault_reset_interval 4
|
||||||
neighborPropDelayThresh 20000000
|
neighborPropDelayThresh 20000000
|
||||||
|
G.8275.portDS.localPriority 128
|
||||||
#
|
#
|
||||||
# Run time options
|
# Run time options
|
||||||
#
|
#
|
||||||
|
|
1
gPTP.cfg
1
gPTP.cfg
|
@ -26,6 +26,7 @@ delayAsymmetry 0
|
||||||
fault_reset_interval 4
|
fault_reset_interval 4
|
||||||
neighborPropDelayThresh 800
|
neighborPropDelayThresh 800
|
||||||
min_neighbor_prop_delay -20000000
|
min_neighbor_prop_delay -20000000
|
||||||
|
G.8275.portDS.localPriority 128
|
||||||
#
|
#
|
||||||
# Run time options
|
# Run time options
|
||||||
#
|
#
|
||||||
|
|
3
port.c
3
port.c
|
@ -77,7 +77,7 @@ static void announce_to_dataset(struct ptp_message *m, struct port *p,
|
||||||
out->identity = a->grandmasterIdentity;
|
out->identity = a->grandmasterIdentity;
|
||||||
out->quality = a->grandmasterClockQuality;
|
out->quality = a->grandmasterClockQuality;
|
||||||
out->priority2 = a->grandmasterPriority2;
|
out->priority2 = a->grandmasterPriority2;
|
||||||
out->localPriority = 128;
|
out->localPriority = p->localPriority;
|
||||||
out->stepsRemoved = a->stepsRemoved;
|
out->stepsRemoved = a->stepsRemoved;
|
||||||
out->sender = m->header.sourcePortIdentity;
|
out->sender = m->header.sourcePortIdentity;
|
||||||
out->receiver = p->portIdentity;
|
out->receiver = p->portIdentity;
|
||||||
|
@ -1568,6 +1568,7 @@ int port_initialize(struct port *p)
|
||||||
p->transportSpecific = config_get_int(cfg, p->name, "transportSpecific");
|
p->transportSpecific = config_get_int(cfg, p->name, "transportSpecific");
|
||||||
p->transportSpecific <<= 4;
|
p->transportSpecific <<= 4;
|
||||||
p->match_transport_specific = !config_get_int(cfg, p->name, "ignore_transport_specific");
|
p->match_transport_specific = !config_get_int(cfg, p->name, "ignore_transport_specific");
|
||||||
|
p->localPriority = config_get_int(cfg, p->name, "G.8275.portDS.localPriority");
|
||||||
p->logSyncInterval = config_get_int(cfg, p->name, "logSyncInterval");
|
p->logSyncInterval = config_get_int(cfg, p->name, "logSyncInterval");
|
||||||
p->logMinPdelayReqInterval = config_get_int(cfg, p->name, "logMinPdelayReqInterval");
|
p->logMinPdelayReqInterval = config_get_int(cfg, p->name, "logMinPdelayReqInterval");
|
||||||
p->neighborPropDelayThresh = config_get_int(cfg, p->name, "neighborPropDelayThresh");
|
p->neighborPropDelayThresh = config_get_int(cfg, p->name, "neighborPropDelayThresh");
|
||||||
|
|
|
@ -100,6 +100,7 @@ struct port {
|
||||||
int announce_span;
|
int announce_span;
|
||||||
UInteger8 syncReceiptTimeout;
|
UInteger8 syncReceiptTimeout;
|
||||||
UInteger8 transportSpecific;
|
UInteger8 transportSpecific;
|
||||||
|
UInteger8 localPriority;
|
||||||
Integer8 logSyncInterval;
|
Integer8 logSyncInterval;
|
||||||
Enumeration8 delayMechanism;
|
Enumeration8 delayMechanism;
|
||||||
Integer8 logMinPdelayReqInterval;
|
Integer8 logMinPdelayReqInterval;
|
||||||
|
|
15
ptp4l.8
15
ptp4l.8
|
@ -245,6 +245,21 @@ The default is UDPv4.
|
||||||
Upper limit for peer delay in nanoseconds. If the estimated peer delay is
|
Upper limit for peer delay in nanoseconds. If the estimated peer delay is
|
||||||
greater than this value the port is marked as not 802.1AS capable.
|
greater than this value the port is marked as not 802.1AS capable.
|
||||||
.TP
|
.TP
|
||||||
|
.B G.8275.portDS.localPriority
|
||||||
|
The Telecom Profiles (ITU-T G.8275.1 and G.8275.2) specify an
|
||||||
|
alternate Best Master Clock Algorithm (BMCA) with a unique data set
|
||||||
|
comparison algorithm. The value of this option is associated with
|
||||||
|
Announce messages arriving on a particular port and is used as a tie
|
||||||
|
breaker whenever clockClass, clockAccuracy, offsetScaledLogVariance,
|
||||||
|
and priority2 are equal. This option is only used when
|
||||||
|
"dataset_comparison" is set to "telecom".
|
||||||
|
The default value is 128.
|
||||||
|
|
||||||
|
Warning: the BMCA is guaranteed to produce a spanning tree (that is, a
|
||||||
|
timing network without loops) only when using the default values of
|
||||||
|
G.8275.defaultDS.localPriority and G.8275.portDS.localPriority.
|
||||||
|
Careful network engineering is needed when using non-default values.
|
||||||
|
.TP
|
||||||
.B min_neighbor_prop_delay
|
.B min_neighbor_prop_delay
|
||||||
Lower limit for peer delay in nanoseconds. If the estimated peer delay is
|
Lower limit for peer delay in nanoseconds. If the estimated peer delay is
|
||||||
smaller than this value the port is marked as not 802.1AS capable.
|
smaller than this value the port is marked as not 802.1AS capable.
|
||||||
|
|
Loading…
Reference in New Issue