1 /* $Header: /tcpdump/master/tcpdump/ntp.h,v 1.8 2004/01/28 14:34:50 hannes Exp $ */
4 * Based on ntp.h from the U of MD implementation
5 * This file is based on Version 2 of the NTP spec (RFC1119).
9 * Definitions for the masses
11 #define JAN_1970 2208988800U /* 1970 - 1900 in seconds */
14 * Structure definitions for NTP fixed point values
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 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
20 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
22 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
47 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
49 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
50 * | Reference Identifier |
51 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
53 * | Reference Timestamp (64) |
55 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
57 * | Originate Timestamp (64) |
59 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
61 * | Receive Timestamp (64) |
63 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
65 * | Transmit Timestamp (64) |
67 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
68 * | Key Identifier (optional) (32) |
69 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
72 * | Message Digest (optional) (128) |
75 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
79 u_char status
; /* status of local clock and leap info */
80 u_char stratum
; /* Stratum level */
81 u_char ppoll
; /* poll value */
83 struct s_fixedpt root_delay
;
84 struct s_fixedpt root_dispersion
;
86 struct l_fixedpt ref_timestamp
;
87 struct l_fixedpt org_timestamp
;
88 struct l_fixedpt rec_timestamp
;
89 struct l_fixedpt xmt_timestamp
;
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
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 **** */