locate(1): Bring in some updates/fixes from FreeBSD
[dragonfly.git] / contrib / tcpdump / ntp.h
blob0614f73ba8bd56268e2e752ca4eb8badddef54e1
1 /* $Header: /tcpdump/master/tcpdump/ntp.h,v 1.8 2004-01-28 14:34:50 hannes Exp $ */
3 /*
4 * Based on ntp.h from the U of MD implementation
5 * This file is based on Version 2 of the NTP spec (RFC1119).
6 */
8 /*
9 * Definitions for the masses
11 #define JAN_1970 2208988800U /* 1970 - 1900 in seconds */
14 * Structure definitions for NTP fixed point values
16 * 0 1 2 3
17 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
18 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
19 * | Integer Part |
20 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
21 * | Fraction Part |
22 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 * 0 1 2 3
25 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
26 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
27 * | Integer Part | Fraction Part |
28 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
30 struct l_fixedpt {
31 u_int32_t int_part;
32 u_int32_t fraction;
35 struct s_fixedpt {
36 u_int16_t int_part;
37 u_int16_t fraction;
40 /* rfc2030
41 * 1 2 3
42 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
43 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
44 * |LI | VN |Mode | Stratum | Poll | Precision |
45 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
46 * | Root Delay |
47 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
48 * | Root Dispersion |
49 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
50 * | Reference Identifier |
51 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
52 * | |
53 * | Reference Timestamp (64) |
54 * | |
55 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
56 * | |
57 * | Originate Timestamp (64) |
58 * | |
59 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
60 * | |
61 * | Receive Timestamp (64) |
62 * | |
63 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
64 * | |
65 * | Transmit Timestamp (64) |
66 * | |
67 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
68 * | Key Identifier (optional) (32) |
69 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
70 * | |
71 * | |
72 * | Message Digest (optional) (128) |
73 * | |
74 * | |
75 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
78 struct ntpdata {
79 u_char status; /* status of local clock and leap info */
80 u_char stratum; /* Stratum level */
81 u_char ppoll; /* poll value */
82 int precision:8;
83 struct s_fixedpt root_delay;
84 struct s_fixedpt root_dispersion;
85 u_int32_t refid;
86 struct l_fixedpt ref_timestamp;
87 struct l_fixedpt org_timestamp;
88 struct l_fixedpt rec_timestamp;
89 struct l_fixedpt xmt_timestamp;
90 u_int32_t key_id;
91 u_int8_t message_digest[16];
94 * Leap Second Codes (high order two bits)
96 #define NO_WARNING 0x00 /* no warning */
97 #define PLUS_SEC 0x40 /* add a second (61 seconds) */
98 #define MINUS_SEC 0x80 /* minus a second (59 seconds) */
99 #define ALARM 0xc0 /* alarm condition (clock unsynchronized) */
102 * Clock Status Bits that Encode Version
104 #define NTPVERSION_1 0x08
105 #define VERSIONMASK 0x38
106 #define LEAPMASK 0xc0
107 #define MODEMASK 0x07
110 * Code values
112 #define MODE_UNSPEC 0 /* unspecified */
113 #define MODE_SYM_ACT 1 /* symmetric active */
114 #define MODE_SYM_PAS 2 /* symmetric passive */
115 #define MODE_CLIENT 3 /* client */
116 #define MODE_SERVER 4 /* server */
117 #define MODE_BROADCAST 5 /* broadcast */
118 #define MODE_RES1 6 /* reserved */
119 #define MODE_RES2 7 /* reserved */
122 * Stratum Definitions
124 #define UNSPECIFIED 0
125 #define PRIM_REF 1 /* radio clock */
126 #define INFO_QUERY 62 /* **** THIS implementation dependent **** */
127 #define INFO_REPLY 63 /* **** THIS implementation dependent **** */