an, awi, cue and kue don't use the miibus interface.
[dragonfly.git] / contrib / tcpdump-3.8.3 / ntp.h
1 /* $Header: /tcpdump/master/tcpdump/ntp.h,v 1.7 2003/08/06 04:58:21 guy Exp $ */
2
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  */
7
8 /*
9  *  Definitions for the masses
10  */
11 #define JAN_1970        2208988800U     /* 1970 - 1900 in seconds */
12
13 /*
14  * Structure definitions for NTP fixed point values
15  *
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  *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
23  *
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  *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
29 */
30 struct l_fixedpt {
31         u_int32_t int_part;
32         u_int32_t fraction;
33 };
34
35 struct s_fixedpt {
36         u_int16_t int_part;
37         u_int16_t fraction;
38 };
39
40 /*  =================  Table 3.3. Packet Variables   ================= */
41 /*
42  *    0                   1                   2                   3
43  *    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
44  *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
45  *   |LI | VN  | Mode|    Stratum    |      Poll     |   Precision   |
46  *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
47  *   |                     Synchronizing Distance                    |
48  *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
49  *   |                    Synchronizing Dispersion                   |
50  *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
51  *   |                  Reference Clock Identifier                   |
52  *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
53  *   |                                                               |
54  *   |                 Reference Timestamp (64 bits)                 |
55  *   |                                                               |
56  *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
57  *   |                                                               |
58  *   |                 Originate Timestamp (64 bits)                 |
59  *   |                                                               |
60  *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
61  *   |                                                               |
62  *   |                  Receive Timestamp (64 bits)                  |
63  *   |                                                               |
64  *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
65  *   |                                                               |
66  *   |                  Transmit Timestamp (64 bits)                 |
67  *   |                                                               |
68  *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
69 */
70 struct ntpdata {
71         u_char status;          /* status of local clock and leap info */
72         u_char stratum;         /* Stratum level */
73         u_char ppoll;           /* poll value */
74         int precision:8;
75         struct s_fixedpt distance;
76         struct s_fixedpt dispersion;
77         u_int32_t refid;
78         struct l_fixedpt reftime;
79         struct l_fixedpt org;
80         struct l_fixedpt rec;
81         struct l_fixedpt xmt;
82 };
83 /*
84  *      Leap Second Codes (high order two bits)
85  */
86 #define NO_WARNING      0x00    /* no warning */
87 #define PLUS_SEC        0x40    /* add a second (61 seconds) */
88 #define MINUS_SEC       0x80    /* minus a second (59 seconds) */
89 #define ALARM           0xc0    /* alarm condition (clock unsynchronized) */
90
91 /*
92  *      Clock Status Bits that Encode Version
93  */
94 #define NTPVERSION_1    0x08
95 #define VERSIONMASK     0x38
96 #define LEAPMASK        0xc0
97 #define MODEMASK        0x07
98
99 /*
100  *      Code values
101  */
102 #define MODE_UNSPEC     0       /* unspecified */
103 #define MODE_SYM_ACT    1       /* symmetric active */
104 #define MODE_SYM_PAS    2       /* symmetric passive */
105 #define MODE_CLIENT     3       /* client */
106 #define MODE_SERVER     4       /* server */
107 #define MODE_BROADCAST  5       /* broadcast */
108 #define MODE_RES1       6       /* reserved */
109 #define MODE_RES2       7       /* reserved */
110
111 /*
112  *      Stratum Definitions
113  */
114 #define UNSPECIFIED     0
115 #define PRIM_REF        1       /* radio clock */
116 #define INFO_QUERY      62      /* **** THIS implementation dependent **** */
117 #define INFO_REPLY      63      /* **** THIS implementation dependent **** */