#define REQ_NTP_DATA 57
#define REQ_ADD_SERVER2 58
#define REQ_ADD_PEER2 59
-#define N_REQUEST_TYPES 60
+#define REQ_ADD_SERVER3 60
+#define REQ_ADD_PEER3 61
+#define N_REQUEST_TYPES 62
/* Structure used to exchange timespecs independent of time_t size */
typedef struct {
Float max_delay;
Float max_delay_ratio;
Float max_delay_dev_ratio;
+ Float min_delay;
+ Float asymmetry;
Float offset;
uint32_t flags;
+ uint32_t reserved[4];
int32_t EOR;
} REQ_NTP_Source;
msg->data.ntp_source.max_delay_ratio = UTI_FloatHostToNetwork(data.params.max_delay_ratio);
msg->data.ntp_source.max_delay_dev_ratio =
UTI_FloatHostToNetwork(data.params.max_delay_dev_ratio);
+ msg->data.ntp_source.min_delay = UTI_FloatHostToNetwork(data.params.min_delay);
+ msg->data.ntp_source.asymmetry = UTI_FloatHostToNetwork(data.params.asymmetry);
msg->data.ntp_source.offset = UTI_FloatHostToNetwork(data.params.offset);
msg->data.ntp_source.flags = htonl(
(data.params.online ? REQ_ADDSRC_ONLINE : 0) |
(data.params.sel_options & SRC_SELECT_NOSELECT ? REQ_ADDSRC_NOSELECT : 0) |
(data.params.sel_options & SRC_SELECT_TRUST ? REQ_ADDSRC_TRUST : 0) |
(data.params.sel_options & SRC_SELECT_REQUIRE ? REQ_ADDSRC_REQUIRE : 0));
+ memset(msg->data.ntp_source.reserved, 0, sizeof (msg->data.ntp_source.reserved));
+
result = 1;
break;
static int
process_cmd_add_server(CMD_Request *msg, char *line)
{
- msg->command = htons(REQ_ADD_SERVER2);
+ msg->command = htons(REQ_ADD_SERVER3);
return process_cmd_add_server_or_peer(msg, line);
}
static int
process_cmd_add_peer(CMD_Request *msg, char *line)
{
- msg->command = htons(REQ_ADD_PEER2);
+ msg->command = htons(REQ_ADD_PEER3);
return process_cmd_add_server_or_peer(msg, line);
}
PERMIT_AUTH, /* NTP_DATA */
PERMIT_AUTH, /* ADD_SERVER2 */
PERMIT_AUTH, /* ADD_PEER2 */
+ PERMIT_AUTH, /* ADD_SERVER3 */
+ PERMIT_AUTH, /* ADD_PEER3 */
};
/* ================================================== */
UTI_FloatNetworkToHost(rx_message->data.ntp_source.max_delay_ratio);
params.max_delay_dev_ratio =
UTI_FloatNetworkToHost(rx_message->data.ntp_source.max_delay_dev_ratio);
+ params.min_delay = UTI_FloatNetworkToHost(rx_message->data.ntp_source.min_delay);
+ params.asymmetry = UTI_FloatNetworkToHost(rx_message->data.ntp_source.asymmetry);
params.offset = UTI_FloatNetworkToHost(rx_message->data.ntp_source.offset);
params.online = ntohl(rx_message->data.ntp_source.flags) & REQ_ADDSRC_ONLINE ? 1 : 0;
handle_cmdaccheck(&rx_message, &tx_message);
break;
- case REQ_ADD_SERVER2:
+ case REQ_ADD_SERVER3:
handle_add_source(NTP_SERVER, &rx_message, &tx_message);
break;
- case REQ_ADD_PEER2:
+ case REQ_ADD_PEER3:
handle_add_source(NTP_PEER, &rx_message, &tx_message);
break;
client_accesses_by_index), /* CLIENT_ACCESSES_BY_INDEX2 */
REQ_LENGTH_ENTRY(local, null), /* LOCAL2 */
REQ_LENGTH_ENTRY(ntp_data, ntp_data), /* NTP_DATA */
- REQ_LENGTH_ENTRY(ntp_source, null), /* ADD_SERVER2 */
- REQ_LENGTH_ENTRY(ntp_source, null), /* ADD_PEER2 */
+ { 0, 0 }, /* ADD_SERVER2 */
+ { 0, 0 }, /* ADD_PEER2 */
+ REQ_LENGTH_ENTRY(ntp_source, null), /* ADD_SERVER3 */
+ REQ_LENGTH_ENTRY(ntp_source, null), /* ADD_PEER3 */
};
static const uint16_t reply_lengths[] = {