Skip to content

File syn_ntp_server.c

FileList > net > syn_ntp_server.c

Go to the source code of this file

Zero-Heap NTP v4 Server Implementation.

  • #include "syn_ntp_server.h"
  • #include <string.h>

Public Functions

Type Name
SYN_Status syn_ntp_server_init (SYN_NTPServer * server, uint8_t stratum, uint32_t(*)(void) get_epoch_sec_cb)
Initialize NTP Server Instance.
SYN_Status syn_ntp_server_process_packet (SYN_NTPServer * server, const uint8_t request_pkt, uint8_t response_pkt)
Process an incoming 48-byte NTP client request packet and format response.

Public Static Functions

Type Name
void write_u32_be (uint8_t * buf, uint32_t val)
Write 32-bit integer into big-endian byte buffer.

Public Functions Documentation

function syn_ntp_server_init

Initialize NTP Server Instance.

SYN_Status syn_ntp_server_init (
    SYN_NTPServer * server,
    uint8_t stratum,
    uint32_t(*)(void) get_epoch_sec_cb
) 

Parameters:

  • server Pointer to NTP server instance.
  • stratum Server stratum level (e.g. 1 for GPS, 2 for SNTP relay).
  • get_epoch_sec_cb Callback returning current UTC epoch seconds.

Returns:

SYN_OK on success, SYN_INVALID_PARAM if NULL.


function syn_ntp_server_process_packet

Process an incoming 48-byte NTP client request packet and format response.

SYN_Status syn_ntp_server_process_packet (
    SYN_NTPServer * server,
    const uint8_t request_pkt,
    uint8_t response_pkt
) 

Parameters:

  • server Pointer to NTP server context.
  • request_pkt Raw 48-byte input request packet.
  • response_pkt Output 48-byte response packet buffer.

Returns:

SYN_OK on success, SYN_INVALID_PARAM if NULL or invalid.


Public Static Functions Documentation

function write_u32_be

Write 32-bit integer into big-endian byte buffer.

static void write_u32_be (
    uint8_t * buf,
    uint32_t val
) 

Parameters:

  • buf Pointer to 4-byte destination buffer.
  • val 32-bit unsigned integer value.


The documentation for this class was generated from the following file src/syntropic/net/syn_ntp_server.c