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