]> The Tcpdump Group git mirrors - tcpdump/blobdiff - ntp.h
CI: Add warning exemptions for Sun C (suncc-5.14) on Solaris 10
[tcpdump] / ntp.h
diff --git a/ntp.h b/ntp.h
index 0614f73ba8bd56268e2e752ca4eb8badddef54e1..0fe4214281a2af09f66779eb4d24b45a0bed78e2 100644 (file)
--- a/ntp.h
+++ b/ntp.h
@@ -1,14 +1,28 @@
-/* $Header: /tcpdump/master/tcpdump/ntp.h,v 1.8 2004-01-28 14:34:50 hannes Exp $ */
-
 /*
- * Based on ntp.h from the U of MD implementation
- *     This file is based on Version 2 of the NTP spec (RFC1119).
+ * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that: (1) source code distributions
+ * retain the above copyright notice and this paragraph in its entirety, (2)
+ * distributions including binary code include the above copyright notice and
+ * this paragraph in its entirety in the documentation or other materials
+ * provided with the distribution, and (3) all advertising materials mentioning
+ * features or use of this software display the following acknowledgement:
+ * ``This product includes software developed by the University of California,
+ * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
+ * the University nor the names of its contributors may be used to endorse
+ * or promote products derived from this software without specific prior
+ * written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
  */
 
-/*
- *  Definitions for the masses
- */
-#define        JAN_1970        2208988800U     /* 1970 - 1900 in seconds */
+#include "netdissect-stdinc.h"
+
+#include "netdissect.h"
 
 /*
  * Structure definitions for NTP fixed point values
  *   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 */
 struct l_fixedpt {
-       u_int32_t int_part;
-       u_int32_t fraction;
+       nd_uint32_t int_part;
+       nd_uint32_t fraction;
 };
 
 struct s_fixedpt {
-       u_int16_t int_part;
-       u_int16_t fraction;
-};
-
-/* rfc2030
- *                      1                   2                   3
- *  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
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |LI | VN  |Mode |    Stratum    |     Poll      |   Precision   |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |                          Root Delay                           |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |                       Root Dispersion                         |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |                     Reference Identifier                      |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |                                                               |
- * |                   Reference Timestamp (64)                    |
- * |                                                               |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |                                                               |
- * |                   Originate Timestamp (64)                    |
- * |                                                               |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |                                                               |
- * |                    Receive Timestamp (64)                     |
- * |                                                               |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |                                                               |
- * |                    Transmit Timestamp (64)                    |
- * |                                                               |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |                 Key Identifier (optional) (32)                |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- * |                                                               |
- * |                                                               |
- * |                 Message Digest (optional) (128)               |
- * |                                                               |
- * |                                                               |
- * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- */
-
-struct ntpdata {
-       u_char status;          /* status of local clock and leap info */
-       u_char stratum;         /* Stratum level */
-       u_char ppoll;           /* poll value */
-       int precision:8;
-       struct s_fixedpt root_delay;
-       struct s_fixedpt root_dispersion;
-       u_int32_t refid;
-       struct l_fixedpt ref_timestamp;
-       struct l_fixedpt org_timestamp;
-       struct l_fixedpt rec_timestamp;
-       struct l_fixedpt xmt_timestamp;
-        u_int32_t key_id;
-        u_int8_t  message_digest[16];
+       nd_uint16_t int_part;
+       nd_uint16_t fraction;
 };
-/*
- *     Leap Second Codes (high order two bits)
- */
-#define        NO_WARNING      0x00    /* no warning */
-#define        PLUS_SEC        0x40    /* add a second (61 seconds) */
-#define        MINUS_SEC       0x80    /* minus a second (59 seconds) */
-#define        ALARM           0xc0    /* alarm condition (clock unsynchronized) */
-
-/*
- *     Clock Status Bits that Encode Version
- */
-#define        NTPVERSION_1    0x08
-#define        VERSIONMASK     0x38
-#define LEAPMASK       0xc0
-#define        MODEMASK        0x07
 
-/*
- *     Code values
- */
-#define        MODE_UNSPEC     0       /* unspecified */
-#define        MODE_SYM_ACT    1       /* symmetric active */
-#define        MODE_SYM_PAS    2       /* symmetric passive */
-#define        MODE_CLIENT     3       /* client */
-#define        MODE_SERVER     4       /* server */
-#define        MODE_BROADCAST  5       /* broadcast */
-#define        MODE_RES1       6       /* reserved */
-#define        MODE_RES2       7       /* reserved */
-
-/*
- *     Stratum Definitions
- */
-#define        UNSPECIFIED     0
-#define        PRIM_REF        1       /* radio clock */
-#define        INFO_QUERY      62      /* **** THIS implementation dependent **** */
-#define        INFO_REPLY      63      /* **** THIS implementation dependent **** */
+void p_ntp_time_fmt(netdissect_options *, const char *fmt,
+                    const struct l_fixedpt *);
+void p_ntp_time(netdissect_options *, const struct l_fixedpt *);