Source code pulled from OpenBSD for OpenNTPD. The place to contribute to this code is via the OpenBSD CVS tree.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
3.8 KiB

  1. /* $OpenBSD: timed.h,v 1.3 2003/06/02 19:34:12 millert Exp $ */
  2. /* $NetBSD: timed.h,v 1.5 1996/04/09 20:40:32 cgd Exp $ */
  3. /*
  4. * Copyright (c) 1983 Regents of the University of California.
  5. * All rights reserved.
  6. *
  7. * Redistribution and use in source and binary forms, with or without
  8. * modification, are permitted provided that the following conditions
  9. * are met:
  10. * 1. Redistributions of source code must retain the above copyright
  11. * notice, this list of conditions and the following disclaimer.
  12. * 2. Redistributions in binary form must reproduce the above copyright
  13. * notice, this list of conditions and the following disclaimer in the
  14. * documentation and/or other materials provided with the distribution.
  15. * 3. Neither the name of the University nor the names of its contributors
  16. * may be used to endorse or promote products derived from this software
  17. * without specific prior written permission.
  18. *
  19. * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
  20. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  21. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  22. * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
  23. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  24. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  25. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  26. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  27. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  28. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  29. * SUCH DAMAGE.
  30. *
  31. * @(#)timed.h 1.10 (Berkeley) 4/3/91
  32. */
  33. #ifndef _TIMED_H_
  34. #define _TIMED_H_
  35. /*
  36. * Time Synchronization Protocol
  37. */
  38. #define TSPVERSION 1
  39. #define ANYADDR NULL
  40. struct tsp {
  41. u_int8_t tsp_type;
  42. u_int8_t tsp_vers;
  43. u_int16_t tsp_seq;
  44. union {
  45. struct {
  46. int32_t tv_sec;
  47. int32_t tv_usec;
  48. } tspu_time;
  49. char tspu_hopcnt;
  50. } tsp_u;
  51. char tsp_name[MAXHOSTNAMELEN];
  52. };
  53. #define tsp_time tsp_u.tspu_time
  54. #define tsp_hopcnt tsp_u.tspu_hopcnt
  55. /*
  56. * Command types.
  57. */
  58. #define TSP_ANY 0 /* match any types */
  59. #define TSP_ADJTIME 1 /* send adjtime */
  60. #define TSP_ACK 2 /* generic acknowledgement */
  61. #define TSP_MASTERREQ 3 /* ask for master's name */
  62. #define TSP_MASTERACK 4 /* acknowledge master request */
  63. #define TSP_SETTIME 5 /* send network time */
  64. #define TSP_MASTERUP 6 /* inform slaves that master is up */
  65. #define TSP_SLAVEUP 7 /* slave is up but not polled */
  66. #define TSP_ELECTION 8 /* advance candidature for master */
  67. #define TSP_ACCEPT 9 /* support candidature of master */
  68. #define TSP_REFUSE 10 /* reject candidature of master */
  69. #define TSP_CONFLICT 11 /* two or more masters present */
  70. #define TSP_RESOLVE 12 /* masters' conflict resolution */
  71. #define TSP_QUIT 13 /* reject candidature if master is up */
  72. #define TSP_DATE 14 /* reset the time (date command) */
  73. #define TSP_DATEREQ 15 /* remote request to reset the time */
  74. #define TSP_DATEACK 16 /* acknowledge time setting */
  75. #define TSP_TRACEON 17 /* turn tracing on */
  76. #define TSP_TRACEOFF 18 /* turn tracing off */
  77. #define TSP_MSITE 19 /* find out master's site */
  78. #define TSP_MSITEREQ 20 /* remote master's site request */
  79. #define TSP_TEST 21 /* for testing election algo */
  80. #define TSP_SETDATE 22 /* New from date command */
  81. #define TSP_SETDATEREQ 23 /* New remote for above */
  82. #define TSP_LOOP 24 /* loop detection packet */
  83. #define TSPTYPENUMBER 25
  84. #ifdef TSPTYPES
  85. char *tsptype[TSPTYPENUMBER] =
  86. { "ANY", "ADJTIME", "ACK", "MASTERREQ", "MASTERACK", "SETTIME", "MASTERUP",
  87. "SLAVEUP", "ELECTION", "ACCEPT", "REFUSE", "CONFLICT", "RESOLVE", "QUIT",
  88. "DATE", "DATEREQ", "DATEACK", "TRACEON", "TRACEOFF", "MSITE", "MSITEREQ",
  89. "TEST", "SETDATE", "SETDATEREQ", "LOOP" };
  90. #endif
  91. #endif /* !_TIMED_H_ */