sntp.h 1.2 KB

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