1*ea287debSwdenk /* 2*ea287debSwdenk * (C) Masami Komiya <mkomiya@sonare.it> 2005 3*ea287debSwdenk * 4*ea287debSwdenk * This program is free software; you can redistribute it and/or 5*ea287debSwdenk * modify it under the terms of the GNU General Public License as 6*ea287debSwdenk * published by the Free Software Foundation; either version 2, or (at 7*ea287debSwdenk * your option) any later version. 8*ea287debSwdenk */ 9*ea287debSwdenk 10*ea287debSwdenk #ifndef __SNTP_H__ 11*ea287debSwdenk #define __SNTP_H__ 12*ea287debSwdenk 13*ea287debSwdenk #define NTP_SERVICE_PORT 123 14*ea287debSwdenk #define SNTP_PACKET_LEN 48 15*ea287debSwdenk 16*ea287debSwdenk 17*ea287debSwdenk /* Leap Indicator */ 18*ea287debSwdenk #define NTP_LI_NOLEAP 0x0 19*ea287debSwdenk #define NTP_LI_61SECS 0x1 20*ea287debSwdenk #define NTP_LI_59SECS 0x2 21*ea287debSwdenk #define NTP_LI_ALARM 0x3 22*ea287debSwdenk 23*ea287debSwdenk /* Version */ 24*ea287debSwdenk 25*ea287debSwdenk #define NTP_VERSION 4 26*ea287debSwdenk 27*ea287debSwdenk /* Mode */ 28*ea287debSwdenk #define NTP_MODE_RESERVED 0 29*ea287debSwdenk #define NTP_MODE_SYMACTIVE 1 /* Symmetric Active */ 30*ea287debSwdenk #define NTP_MODE_SYMPASSIVE 2 /* Symmetric Passive */ 31*ea287debSwdenk #define NTP_MODE_CLIENT 3 32*ea287debSwdenk #define NTP_MODE_SERVER 4 33*ea287debSwdenk #define NTP_MODE_BROADCAST 5 34*ea287debSwdenk #define NTP_MODE_NTPCTRL 6 /* Reserved for NTP control message */ 35*ea287debSwdenk #define NTP_MODE_PRIVATE 7 /* Reserved for private use */ 36*ea287debSwdenk 37*ea287debSwdenk struct sntp_pkt_t { 38*ea287debSwdenk #if __LITTLE_ENDIAN 39*ea287debSwdenk uchar mode:3; 40*ea287debSwdenk uchar vn:3; 41*ea287debSwdenk uchar li:2; 42*ea287debSwdenk #else 43*ea287debSwdenk uchar li:2; 44*ea287debSwdenk uchar vn:3; 45*ea287debSwdenk uchar mode:3; 46*ea287debSwdenk #endif 47*ea287debSwdenk uchar stratum; 48*ea287debSwdenk uchar poll; 49*ea287debSwdenk uchar precision; 50*ea287debSwdenk uint root_delay; 51*ea287debSwdenk uint root_dispersion; 52*ea287debSwdenk uint reference_id; 53*ea287debSwdenk unsigned long long reference_timestamp; 54*ea287debSwdenk unsigned long long originate_timestamp; 55*ea287debSwdenk unsigned long long receive_timestamp; 56*ea287debSwdenk unsigned long long transmit_timestamp; 57*ea287debSwdenk }; 58*ea287debSwdenk 59*ea287debSwdenk extern void SntpStart (void); /* Begin SNTP */ 60*ea287debSwdenk 61*ea287debSwdenk #endif /* __SNTP_H__ */ 62