root/usr/src/head/protocols/timed.h
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License, Version 1.0 only
 * (the "License").  You may not use this file except in compliance
 * with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 1998 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

/*      Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T     */
/*        All Rights Reserved   */

/*
 * Portions of this source code were derived from Berkeley 4.3 BSD
 * under license from the Regents of the University of California.
 */

/*
 * Time Synchronization Protocol
 */

#ifndef _PROTOCOLS_TIMED_H
#define _PROTOCOLS_TIMED_H

#ifdef  __cplusplus
extern "C" {
#endif

#define TSPVERSION      1
#define ANYADDR         NULL

struct tsp {
        uchar_t tsp_type;
        uchar_t tsp_vers;
        short   tsp_seq;
        struct timeval tsp_time;
        char tsp_name[MAXHOSTNAMELEN];
};

/*
 * Command types.
 */
#define TSP_ANY                 0       /* match any types */
#define TSP_ADJTIME             1       /* send adjtime */
#define TSP_ACK                 2       /* generic acknowledgement */
#define TSP_MASTERREQ           3       /* ask for master's name */
#define TSP_MASTERACK           4       /* acknowledge master request */
#define TSP_SETTIME             5       /* send network time */
#define TSP_MASTERUP            6       /* inform slaves that master is up */
#define TSP_SLAVEUP             7       /* slave is up but not polled */
#define TSP_ELECTION            8       /* advance candidature for master */
#define TSP_ACCEPT              9       /* support candidature of master */
#define TSP_REFUSE              10      /* reject candidature of master */
#define TSP_CONFLICT            11      /* two or more masters present */
#define TSP_RESOLVE             12      /* masters' conflict resolution */
#define TSP_QUIT                13      /* reject candidature if master is up */
#define TSP_DATE                14      /* reset the time (date command) */
#define TSP_DATEREQ             15      /* remote request to reset the time */
#define TSP_DATEACK             16      /* acknowledge time setting  */
#define TSP_TRACEON             17      /* turn tracing on */
#define TSP_TRACEOFF            18      /* turn tracing off */
#define TSP_MSITE               19      /* find out master's site */
#define TSP_MSITEREQ            20      /* remote master's site request */
#define TSP_TEST                21      /* for testing election algo */

#define TSPTYPENUMBER           22

#ifdef TSPTYPES
char *tsptype[TSPTYPENUMBER] =
        {"ANY", "ADJTIME", "ACK", "MASTERREQ", "MASTERACK", "SETTIME",
        "MASTERUP", "SLAVEUP", "ELECTION", "ACCEPT", "REFUSE", "CONFLICT",
        "RESOLVE", "QUIT", "DATE", "DATEREQ", "DATEACK", "TRACEON",
        "TRACEOFF", "MSITE", "MSITEREQ", "TEST"};
#endif

#ifdef  __cplusplus
}
#endif

#endif /* _PROTOCOLS_TIMED_H */