3 /* Header: /tcpdump/master/tcpdump/ntp.h,v 1.8 2004/01/28 14:34:50 hannes Exp */
6 * Based on ntp.h from the U of MD implementation
7 * This file is based on Version 2 of the NTP spec (RFC1119).
11 * Definitions for the masses
13 #define JAN_1970 2208988800U /* 1970 - 1900 in seconds */
16 * Structure definitions for NTP fixed point values
19 * 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
20 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
22 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
27 * 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
28 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
29 * | Integer Part | Fraction Part |
30 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
44 * 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
45 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
46 * |LI | VN |Mode | Stratum | Poll | Precision |
47 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
49 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
51 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
52 * | Reference Identifier |
53 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
55 * | Reference Timestamp (64) |
57 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
59 * | Originate Timestamp (64) |
61 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
63 * | Receive Timestamp (64) |
65 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
67 * | Transmit Timestamp (64) |
69 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
70 * | Key Identifier (optional) (32) |
71 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
74 * | Message Digest (optional) (128) |
77 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
81 u_char status
; /* status of local clock and leap info */
82 u_char stratum
; /* Stratum level */
83 u_char ppoll
; /* poll value */
85 struct s_fixedpt root_delay
;
86 struct s_fixedpt root_dispersion
;
88 struct l_fixedpt ref_timestamp
;
89 struct l_fixedpt org_timestamp
;
90 struct l_fixedpt rec_timestamp
;
91 struct l_fixedpt xmt_timestamp
;
93 u_int8_t message_digest
[16];
96 * Leap Second Codes (high order two bits)
98 #define NO_WARNING 0x00 /* no warning */
99 #define PLUS_SEC 0x40 /* add a second (61 seconds) */
100 #define MINUS_SEC 0x80 /* minus a second (59 seconds) */
101 #define ALARM 0xc0 /* alarm condition (clock unsynchronized) */
104 * Clock Status Bits that Encode Version
106 #define NTPVERSION_1 0x08
107 #define VERSIONMASK 0x38
108 #define LEAPMASK 0xc0
109 #define MODEMASK 0x07
114 #define MODE_UNSPEC 0 /* unspecified */
115 #define MODE_SYM_ACT 1 /* symmetric active */
116 #define MODE_SYM_PAS 2 /* symmetric passive */
117 #define MODE_CLIENT 3 /* client */
118 #define MODE_SERVER 4 /* server */
119 #define MODE_BROADCAST 5 /* broadcast */
120 #define MODE_RES1 6 /* reserved */
121 #define MODE_RES2 7 /* reserved */
124 * Stratum Definitions
126 #define UNSPECIFIED 0
127 #define PRIM_REF 1 /* radio clock */
128 #define INFO_QUERY 62 /* **** THIS implementation dependent **** */
129 #define INFO_REPLY 63 /* **** THIS implementation dependent **** */