Home | History | Annotate | Download | only in net
      1 /* SPDX-License-Identifier: GPL-2.0+ */
      2 /*
      3  * (C) Masami Komiya <mkomiya (at) sonare.it> 2005
      4  */
      5 
      6 #ifndef __SNTP_H__
      7 #define __SNTP_H__
      8 
      9 #define NTP_SERVICE_PORT	123
     10 #define SNTP_PACKET_LEN		48
     11 
     12 
     13 /* Leap Indicator */
     14 #define NTP_LI_NOLEAP		0x0
     15 #define NTP_LI_61SECS		0x1
     16 #define NTP_LI_59SECS		0x2
     17 #define NTP_LI_ALARM		0x3
     18 
     19 /* Version */
     20 
     21 #define NTP_VERSION		4
     22 
     23 /* Mode */
     24 #define NTP_MODE_RESERVED	0
     25 #define NTP_MODE_SYMACTIVE	1	/* Symmetric Active */
     26 #define NTP_MODE_SYMPASSIVE	2	/* Symmetric Passive */
     27 #define NTP_MODE_CLIENT		3
     28 #define NTP_MODE_SERVER		4
     29 #define NTP_MODE_BROADCAST	5
     30 #define NTP_MODE_NTPCTRL	6	/* Reserved for NTP control message */
     31 #define NTP_MODE_PRIVATE	7	/* Reserved for private use */
     32 
     33 struct sntp_pkt_t {
     34 #if __LITTLE_ENDIAN
     35 	uchar mode:3;
     36 	uchar vn:3;
     37 	uchar li:2;
     38 #else
     39 	uchar li:2;
     40 	uchar vn:3;
     41 	uchar mode:3;
     42 #endif
     43 	uchar stratum;
     44 	uchar poll;
     45 	uchar precision;
     46 	uint root_delay;
     47 	uint root_dispersion;
     48 	uint reference_id;
     49 	unsigned long long reference_timestamp;
     50 	unsigned long long originate_timestamp;
     51 	unsigned long long receive_timestamp;
     52 	unsigned long long transmit_timestamp;
     53 } __attribute__((packed));
     54 
     55 void sntp_start(void);	/* Begin SNTP */
     56 
     57 #endif /* __SNTP_H__ */
     58