Expand PMF_FN_* macros.
[netbsd-mini2440.git] / dist / tcpdump / ntp.h
blob2081649880560b4f7166f4b36c4550d344e1438b
1 /* $NetBSD$ */
3 /* Header: /tcpdump/master/tcpdump/ntp.h,v 1.8 2004/01/28 14:34:50 hannes Exp */
5 /*
6 * Based on ntp.h from the U of MD implementation
7 * This file is based on Version 2 of the NTP spec (RFC1119).
8 */
11 * Definitions for the masses
13 #define JAN_1970 2208988800U /* 1970 - 1900 in seconds */
16 * Structure definitions for NTP fixed point values
18 * 0 1 2 3
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 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
21 * | Integer Part |
22 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
23 * | Fraction Part |
24 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
26 * 0 1 2 3
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 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
32 struct l_fixedpt {
33 u_int32_t int_part;
34 u_int32_t fraction;
37 struct s_fixedpt {
38 u_int16_t int_part;
39 u_int16_t fraction;
42 /* rfc2030
43 * 1 2 3
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 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
48 * | Root Delay |
49 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
50 * | Root Dispersion |
51 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
52 * | Reference Identifier |
53 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
54 * | |
55 * | Reference Timestamp (64) |
56 * | |
57 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
58 * | |
59 * | Originate Timestamp (64) |
60 * | |
61 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
62 * | |
63 * | Receive Timestamp (64) |
64 * | |
65 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
66 * | |
67 * | Transmit Timestamp (64) |
68 * | |
69 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
70 * | Key Identifier (optional) (32) |
71 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
72 * | |
73 * | |
74 * | Message Digest (optional) (128) |
75 * | |
76 * | |
77 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
80 struct ntpdata {
81 u_char status; /* status of local clock and leap info */
82 u_char stratum; /* Stratum level */
83 u_char ppoll; /* poll value */
84 int precision:8;
85 struct s_fixedpt root_delay;
86 struct s_fixedpt root_dispersion;
87 u_int32_t refid;
88 struct l_fixedpt ref_timestamp;
89 struct l_fixedpt org_timestamp;
90 struct l_fixedpt rec_timestamp;
91 struct l_fixedpt xmt_timestamp;
92 u_int32_t key_id;
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
112 * Code values
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 **** */