Skip to content
Snippets Groups Projects
sntp.h 1.18 KiB
Newer Older
  • Learn to ignore specific revisions
  • /* SPDX-License-Identifier: GPL-2.0+ */
    
    /*
     * (C) Masami Komiya <mkomiya@sonare.it> 2005
     */
    
    #ifndef __SNTP_H__
    #define __SNTP_H__
    
    #define NTP_SERVICE_PORT	123
    #define SNTP_PACKET_LEN		48
    
    
    /* Leap Indicator */
    #define NTP_LI_NOLEAP		0x0
    #define NTP_LI_61SECS		0x1
    #define NTP_LI_59SECS		0x2
    #define NTP_LI_ALARM		0x3
    
    /* Version */
    
    #define NTP_VERSION		4
    
    /* Mode */
    #define NTP_MODE_RESERVED	0
    #define NTP_MODE_SYMACTIVE	1	/* Symmetric Active */
    #define NTP_MODE_SYMPASSIVE	2	/* Symmetric Passive */
    #define NTP_MODE_CLIENT		3
    #define NTP_MODE_SERVER		4
    #define NTP_MODE_BROADCAST	5
    #define NTP_MODE_NTPCTRL	6	/* Reserved for NTP control message */
    #define NTP_MODE_PRIVATE	7	/* Reserved for private use */
    
    struct sntp_pkt_t {
    #if __LITTLE_ENDIAN
    	uchar mode:3;
    	uchar vn:3;
    	uchar li:2;
    #else
    	uchar li:2;
    	uchar vn:3;
    	uchar mode:3;
    #endif
    	uchar stratum;
    	uchar poll;
    	uchar precision;
    	uint root_delay;
    	uint root_dispersion;
    	uint reference_id;
    	unsigned long long reference_timestamp;
    	unsigned long long originate_timestamp;
    	unsigned long long receive_timestamp;
    	unsigned long long transmit_timestamp;
    
    } __attribute__((packed));
    
    void sntp_start(void);	/* Begin SNTP */
    
    
    #endif /* __SNTP_H__ */