iface = ARR_GetNewElement(hwts_interfaces);
iface->name = Strdup(p);
iface->minpoll = 0;
+ iface->nocrossts = 0;
iface->precision = 100.0e-9;
iface->tx_comp = 0.0;
iface->rx_comp = 0.0;
} else if (!strcasecmp(p, "txcomp")) {
if (sscanf(line, "%lf%n", &iface->tx_comp, &n) != 1)
break;
+ } else if (!strcasecmp(p, "nocrossts")) {
+ n = 0;
+ iface->nocrossts = 1;
} else {
break;
}
timestamp and the actual reception time at the physical layer. This value will
be subtracted from receive timestamps obtained from the NIC. The default value
is 0.
+*nocrossts*:::
+Some hardware can precisely cross timestamp the NIC clock with the system
+clock. This option disables the use of the cross timestamping.
::
+
Examples of the directive are:
int if_index;
int phc_fd;
int phc_mode;
+ int phc_nocrossts;
/* Link speed in mbit/s */
int link_speed;
/* Start of UDP data at layer 2 for IPv4 and IPv6 */
iface->if_index = if_index;
iface->phc_fd = phc_fd;
iface->phc_mode = 0;
+ iface->phc_nocrossts = conf_iface->nocrossts;
/* Start with 1 gbit and no VLANs or IPv4/IPv6 options */
iface->link_speed = 1000;
int l2_length;
if (HCL_NeedsNewSample(iface->clock, &local_ts->ts)) {
- if (!SYS_Linux_GetPHCSample(iface->phc_fd, 0, iface->precision, &iface->phc_mode,
- &sample_phc_ts, &sample_sys_ts, &err))
+ if (!SYS_Linux_GetPHCSample(iface->phc_fd, iface->phc_nocrossts, iface->precision,
+ &iface->phc_mode, &sample_phc_ts, &sample_sys_ts, &err))
return;
LCL_CookTime(&sample_sys_ts, &sample_local_ts, NULL);