Blame ds.h

Packit Service d8d8ac
/**
Packit Service d8d8ac
 * @file ds.h
Packit Service d8d8ac
 * @brief Data sets
Packit Service d8d8ac
 * @note Copyright (C) 2011 Richard Cochran <richardcochran@gmail.com>
Packit Service d8d8ac
 *
Packit Service d8d8ac
 * This program is free software; you can redistribute it and/or modify
Packit Service d8d8ac
 * it under the terms of the GNU General Public License as published by
Packit Service d8d8ac
 * the Free Software Foundation; either version 2 of the License, or
Packit Service d8d8ac
 * (at your option) any later version.
Packit Service d8d8ac
 *
Packit Service d8d8ac
 * This program is distributed in the hope that it will be useful,
Packit Service d8d8ac
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service d8d8ac
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service d8d8ac
 * GNU General Public License for more details.
Packit Service d8d8ac
 *
Packit Service d8d8ac
 * You should have received a copy of the GNU General Public License along
Packit Service d8d8ac
 * with this program; if not, write to the Free Software Foundation, Inc.,
Packit Service d8d8ac
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Packit Service d8d8ac
 */
Packit Service d8d8ac
#ifndef HAVE_DS_H
Packit Service d8d8ac
#define HAVE_DS_H
Packit Service d8d8ac
Packit Service d8d8ac
#include "ddt.h"
Packit Service d8d8ac
#include "fault.h"
Packit Service d8d8ac
#include "filter.h"
Packit Service d8d8ac
#include "tsproc.h"
Packit Service d8d8ac
Packit Service d8d8ac
/* clock data sets */
Packit Service d8d8ac
Packit Service d8d8ac
#define DDS_TWO_STEP_FLAG (1<<0)
Packit Service d8d8ac
#define DDS_SLAVE_ONLY    (1<<1)
Packit Service d8d8ac
Packit Service d8d8ac
struct defaultDS {
Packit Service d8d8ac
	UInteger8            flags;
Packit Service d8d8ac
	UInteger8            reserved1;
Packit Service d8d8ac
	UInteger16           numberPorts;
Packit Service d8d8ac
	UInteger8            priority1;
Packit Service d8d8ac
	struct ClockQuality  clockQuality;
Packit Service d8d8ac
	UInteger8            priority2;
Packit Service d8d8ac
	struct ClockIdentity clockIdentity;
Packit Service d8d8ac
	UInteger8            domainNumber;
Packit Service d8d8ac
	UInteger8            reserved2;
Packit Service d8d8ac
} PACKED;
Packit Service d8d8ac
Packit Service d8d8ac
#define OUI_LEN 3
Packit Service d8d8ac
struct clock_description {
Packit Service d8d8ac
	struct static_ptp_text productDescription;
Packit Service d8d8ac
	struct static_ptp_text revisionData;
Packit Service d8d8ac
	struct static_ptp_text userDescription;
Packit Service d8d8ac
	Octet manufacturerIdentity[OUI_LEN];
Packit Service d8d8ac
};
Packit Service d8d8ac
Packit Service d8d8ac
struct dataset {
Packit Service d8d8ac
	UInteger8            priority1;
Packit Service d8d8ac
	struct ClockIdentity identity;
Packit Service d8d8ac
	struct ClockQuality  quality;
Packit Service d8d8ac
	UInteger8            priority2;
Packit Service d8d8ac
	UInteger8            localPriority; /* Telecom Profile only */
Packit Service d8d8ac
	UInteger16           stepsRemoved;
Packit Service d8d8ac
	struct PortIdentity  sender;
Packit Service d8d8ac
	struct PortIdentity  receiver;
Packit Service d8d8ac
};
Packit Service d8d8ac
Packit Service d8d8ac
struct currentDS {
Packit Service d8d8ac
	UInteger16   stepsRemoved;
Packit Service d8d8ac
	TimeInterval offsetFromMaster;
Packit Service d8d8ac
	TimeInterval meanPathDelay;
Packit Service d8d8ac
} PACKED;
Packit Service d8d8ac
Packit Service d8d8ac
struct parentDS {
Packit Service d8d8ac
	struct PortIdentity  parentPortIdentity;
Packit Service d8d8ac
	UInteger8            parentStats;
Packit Service d8d8ac
	UInteger8            reserved;
Packit Service d8d8ac
	UInteger16           observedParentOffsetScaledLogVariance;
Packit Service d8d8ac
	Integer32            observedParentClockPhaseChangeRate;
Packit Service d8d8ac
	UInteger8            grandmasterPriority1;
Packit Service d8d8ac
	struct ClockQuality  grandmasterClockQuality;
Packit Service d8d8ac
	UInteger8            grandmasterPriority2;
Packit Service d8d8ac
	struct ClockIdentity grandmasterIdentity;
Packit Service d8d8ac
} PACKED;
Packit Service d8d8ac
Packit Service d8d8ac
struct parent_ds {
Packit Service d8d8ac
	struct parentDS pds;
Packit Service d8d8ac
	struct ClockIdentity *ptl;
Packit Service d8d8ac
	unsigned int path_length;
Packit Service d8d8ac
};
Packit Service d8d8ac
Packit Service d8d8ac
#define CURRENT_UTC_OFFSET  37 /* 1 Jan 2017 */
Packit Service d8d8ac
#define INTERNAL_OSCILLATOR 0xA0
Packit Service d8d8ac
Packit Service d8d8ac
struct timePropertiesDS {
Packit Service d8d8ac
	Integer16    currentUtcOffset;
Packit Service d8d8ac
	UInteger8    flags;
Packit Service d8d8ac
	Enumeration8 timeSource;
Packit Service d8d8ac
} PACKED;
Packit Service d8d8ac
Packit Service d8d8ac
struct portDS {
Packit Service d8d8ac
	struct PortIdentity portIdentity;
Packit Service d8d8ac
	Enumeration8        portState;
Packit Service d8d8ac
	Integer8            logMinDelayReqInterval;
Packit Service d8d8ac
	TimeInterval        peerMeanPathDelay;
Packit Service d8d8ac
	Integer8            logAnnounceInterval;
Packit Service d8d8ac
	UInteger8           announceReceiptTimeout;
Packit Service d8d8ac
	Integer8            logSyncInterval;
Packit Service d8d8ac
	Enumeration8        delayMechanism;
Packit Service d8d8ac
	Integer8            logMinPdelayReqInterval;
Packit Service d8d8ac
	UInteger8           versionNumber;
Packit Service d8d8ac
} PACKED;
Packit Service d8d8ac
Packit Service d8d8ac
#define FRI_ASAP (-128)
Packit Service d8d8ac
Packit Service d8d8ac
#endif