telecom: Add a configuration option for G.8275.portDS.localPriority.

Signed-off-by: Richard Cochran <richardcochran@gmail.com>
master
Richard Cochran 2017-02-14 20:03:15 +01:00
parent c7fb525721
commit 4545fd1150
6 changed files with 21 additions and 1 deletions

View File

@ -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),

View File

@ -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
# #

View File

@ -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
View File

@ -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");

View File

@ -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
View File

@ -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.