xref: /rk3399_rockchip-uboot/net/sntp.h (revision ea287debe1980182adbe8c63b71bb82193dad5b7)
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