⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntp_control.h

📁 网络时间协议NTP 源码 版本v4.2.0b 该源码用于linux平台下
💻 H
字号:
/* * ntp_control.h - definitions related to NTP mode 6 control messages */#include "ntp_types.h"struct ntp_control {	u_char li_vn_mode;		/* leap, version, mode */	u_char r_m_e_op;		/* response, more, error, opcode */	u_short sequence;		/* sequence number of request */	u_short status;			/* status word for association */	associd_t associd;		/* association ID */	u_short offset;			/* offset of this batch of data */	u_short count;			/* count of data in this packet */	u_char data[(480 + MAX_MAC_LEN)]; /* data + auth */};/* * Length of the control header, in octets */#define	CTL_HEADER_LEN		12#define	CTL_MAX_DATA_LEN	468/* * Limits and things */#define	CTL_MAXTRAPS	3		/* maximum number of traps we allow */#define	CTL_TRAPTIME	(60*60)		/* time out traps in 1 hour */#define	CTL_MAXAUTHSIZE	64		/* maximum size of an authen'ed req *//* * Decoding for the r_m_e_op field */#define	CTL_RESPONSE	0x80#define	CTL_ERROR	0x40#define	CTL_MORE	0x20#define	CTL_OP_MASK	0x1f#define	CTL_ISRESPONSE(r_m_e_op)	(((r_m_e_op) & 0x80) != 0)#define	CTL_ISMORE(r_m_e_op)	(((r_m_e_op) & 0x20) != 0)#define	CTL_ISERROR(r_m_e_op)	(((r_m_e_op) & 0x40) != 0)#define	CTL_OP(r_m_e_op)	((r_m_e_op) & CTL_OP_MASK)/* * Opcodes */#define	CTL_OP_UNSPEC		0#define	CTL_OP_READSTAT		1#define	CTL_OP_READVAR		2#define	CTL_OP_WRITEVAR		3#define	CTL_OP_READCLOCK	4#define	CTL_OP_WRITECLOCK	5#define	CTL_OP_SETTRAP		6#define	CTL_OP_ASYNCMSG		7#define	CTL_OP_UNSETTRAP	31/* * {En,De}coding of the system status word */#define	CTL_SST_TS_UNSPEC	0	/* time source unspecified */#define	CTL_SST_TS_ATOM		1	/* time source calibrated atomic */#define	CTL_SST_TS_LF		2	/* time source VLF or LF radio */#define	CTL_SST_TS_HF		3	/* time source HF radio */#define	CTL_SST_TS_UHF		4	/* time source UHF radio */#define	CTL_SST_TS_LOCAL	5	/* time source LOCAL */#define	CTL_SST_TS_NTP		6	/* time source NTP */#define	CTL_SST_TS_UDPTIME	7	/* time source UDP/TIME */#define	CTL_SST_TS_WRSTWTCH	8	/* time source is wristwatch */#define	CTL_SST_TS_TELEPHONE	9	/* time source is telephone modem */#define CTL_SST_TS_PPS		0x20	/* time source is PPS signal */#define	CTL_SYS_MAXEVENTS	15#define	CTL_SYS_STATUS(li, source, nevnt, evnt) \		(((((unsigned short)(li))<< 14)&0xc000) | \		(((source)<<8)&0x3f00) | \		(((nevnt)<<4)&0x00f0) | \		((evnt)&0x000f))#define	CTL_SYS_LI(status)	(((status)>>14) & 0x3)#define	CTL_SYS_SOURCE(status)	(((status)>>8) & 0x3f)#define	CTL_SYS_NEVNT(status)	(((status)>>4) & 0xf)#define	CTL_SYS_EVENT(status)	((status) & 0xf)/* * {En,De}coding of the peer status word */#define	CTL_PST_CONFIG		0x80#define	CTL_PST_AUTHENABLE	0x40#define	CTL_PST_AUTHENTIC	0x20#define	CTL_PST_REACH		0x10#define	CTL_PST_UNSPEC		0x08#define	CTL_PST_SEL_REJECT	0	/*   reject */#define	CTL_PST_SEL_SANE	1	/* x falsetick */#define	CTL_PST_SEL_CORRECT	2	/* . excess */#define	CTL_PST_SEL_SELCAND	3	/* - outlyer */#define	CTL_PST_SEL_SYNCCAND	4	/* + candidat */#define	CTL_PST_SEL_DISTSYSPEER	5	/* # selected */#define	CTL_PST_SEL_SYSPEER	6	/* * sys.peer */#define	CTL_PST_SEL_PPS		7	/* o pps.peer */#define	CTL_PEER_MAXEVENTS	15#define	CTL_PEER_STATUS(status, nevnt, evnt) \		((((status)<<8) & 0xff00) | \		(((nevnt)<<4) & 0x00f0) | \		((evnt) & 0x000f))#define	CTL_PEER_STATVAL(status)(((status)>>8) & 0xff)#define	CTL_PEER_NEVNT(status)	(((status)>>4) & 0xf)#define	CTL_PEER_EVENT(status)	((status) & 0xf)/* * {En,De}coding of the clock status word */#define	CTL_CLK_OKAY		0#define	CTL_CLK_NOREPLY		1#define	CTL_CLK_BADFORMAT	2#define	CTL_CLK_FAULT		3#define	CTL_CLK_PROPAGATION	4#define	CTL_CLK_BADDATE		5#define	CTL_CLK_BADTIME		6#define	CTL_CLK_STATUS(status, event) \		((((status)<<8) & 0xff00) | \		((event) & 0x00ff))/* * Error code responses returned when the E bit is set. */#define	CERR_UNSPEC	0#define	CERR_PERMISSION	1#define	CERR_BADFMT	2#define	CERR_BADOP	3#define	CERR_BADASSOC	4#define	CERR_UNKNOWNVAR	5#define	CERR_BADVALUE	6#define	CERR_RESTRICT	7#define	CERR_NORESOURCE	CERR_PERMISSION	/* wish there was a different code *//* * System variables we understand */#define	CS_LEAP		1#define	CS_STRATUM	2#define	CS_PRECISION	3#define	CS_ROOTDELAY	4#define	CS_ROOTDISPERSION	5#define	CS_REFID	6#define	CS_REFTIME	7#define	CS_POLL		8#define	CS_PEERID	9#define CS_STATE	10#define	CS_OFFSET	11#define	CS_DRIFT	12#define CS_JITTER	13#define CS_ERROR	14#define	CS_CLOCK	15#define	CS_PROCESSOR	16#define	CS_SYSTEM	17#define CS_VERSION	18#define	CS_STABIL	19#define CS_VARLIST	20#ifdef OPENSSL#define CS_FLAGS	21#define CS_HOST		22#define CS_PUBLIC	23#define	CS_CERTIF	24#define	CS_REVTIME	25#define CS_LEAPTAB	26#define CS_TAI		27#define	CS_DIGEST	28#define CS_IDENT	29#define	CS_REVOKE	30#define	CS_MAXCODE	CS_REVOKE#else#define	CS_MAXCODE	CS_VARLIST#endif /* OPENSSL *//* * Peer variables we understand */#define	CP_CONFIG	1#define	CP_AUTHENABLE	2#define	CP_AUTHENTIC	3#define	CP_SRCADR	4#define	CP_SRCPORT	5#define	CP_DSTADR	6#define	CP_DSTPORT	7#define	CP_LEAP		8#define	CP_HMODE	9#define	CP_STRATUM	10#define	CP_PPOLL	11#define	CP_HPOLL	12#define	CP_PRECISION	13#define	CP_ROOTDELAY	14#define	CP_ROOTDISPERSION	15#define	CP_REFID	16#define	CP_REFTIME	17#define	CP_ORG		18#define	CP_REC		19#define	CP_XMT		20#define	CP_REACH	21#define	CP_UNREACH	22#define	CP_TIMER	23#define	CP_DELAY	24#define	CP_OFFSET	25#define CP_JITTER	26#define	CP_DISPERSION	27#define	CP_KEYID	28#define	CP_FILTDELAY	29#define	CP_FILTOFFSET	30#define	CP_PMODE	31#define	CP_RECEIVED	32#define	CP_SENT		33#define	CP_FILTERROR	34#define	CP_FLASH	35#define CP_TTL		36#define CP_VARLIST	37#ifdef OPENSSL#define CP_FLAGS	38#define CP_HOST		39#define CP_VALID	40#define	CP_INITSEQ	41#define	CP_INITKEY	42#define	CP_INITTSP	43#define	CP_DIGEST	44#define CP_IDENT	45#define	CP_MAXCODE	CP_IDENT#else#define	CP_MAXCODE	CP_VARLIST#endif /* OPENSSL *//* * Clock variables we understand */#define	CC_TYPE		1#define	CC_TIMECODE	2#define	CC_POLL		3#define	CC_NOREPLY	4#define	CC_BADFORMAT	5#define	CC_BADDATA	6#define	CC_FUDGETIME1	7#define	CC_FUDGETIME2	8#define	CC_FUDGEVAL1	9#define	CC_FUDGEVAL2	10#define	CC_FLAGS	11#define	CC_DEVICE	12#define CC_VARLIST	13#define	CC_MAXCODE	CC_VARLIST/* * Definition of the structure used internally to hold trap information. * ntp_request.c wants to see this. */struct ctl_trap {	struct sockaddr_storage tr_addr;/* address of trap recipient */	struct interface *tr_localaddr;	/* interface to send this through */	u_long tr_settime;		/* time trap was set */	u_long tr_count;		/* async messages sent to this guy */	u_long tr_origtime;		/* time trap was originally set */	u_long tr_resets;		/* count of resets for this trap */	u_short tr_sequence;		/* trap sequence id */	u_char tr_flags;		/* trap flags */	u_char tr_version;		/* version number of trapper */};extern struct ctl_trap ctl_trap[];/* * Flag bits */#define	TRAP_INUSE	0x1		/* this trap is active */#define	TRAP_NONPRIO	0x2		/* this trap is non-priority */#define	TRAP_CONFIGURED	0x4		/* this trap was configured *//* * Types of things we may deal with * shared between ntpq and library */#define	TYPE_SYS	1#define	TYPE_PEER	2#define	TYPE_CLOCK	3

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -