-
- if (num_interfaces == 2)
- printf("%s -> %s (%s) = %s (%s)\n",
- S(mi->ts_sent), S(mi->ts_rx_final_kern), S(mi->ts_rx_final),
- DIFF(mi->ts_sent, mi->ts_rx_onwire_kern),
- DIFF(mi->ts_sent, mi->ts_rx_onwire));
- else
- printf("%s -> %s (%s) -> %s (%s) = %s (%s), %s (%s)\n",
- S(mi->ts_sent),
- S(mi->ts_rx_onwire_kern), S(mi->ts_rx_onwire),
- S(mi->ts_rx_final_kern), S(mi->ts_rx_final),
- DIFF(mi->ts_sent, mi->ts_rx_onwire_kern),
- DIFF(mi->ts_sent, mi->ts_rx_onwire),
- DIFF(mi->ts_rx_onwire_kern, mi->ts_rx_final_kern),
- DIFF(mi->ts_rx_onwire, mi->ts_rx_final));
+
+ switch (num_interfaces) {
+ case 2:
+ fprintf(f, "%ld: %s %s -> %s (%s) %s = %s (%s) %d\n",
+ num, S(mi->ts_sent), sent, S(mi->ts_rx_final_kern), S(mi->ts_rx_final), received,
+ DIFF(mi->ts_sent, mi->ts_rx_final_kern),
+ DIFF(mi->ts_sent, mi->ts_rx_final),
+ mi->tx_time_us);
+ break;
+ case 3:
+ tx_time.tv_sec = 0;
+ tx_time.tv_nsec = mi->tx_time_us*1000;
+ timespec_subtract(&routing_delay, &mi->ts_rx_final_kern, &mi->ts_rx_onwire_kern);
+ timespec_subtract(&routing_delay, &routing_delay, &tx_time);
+
+ fprintf(f, "%ld: %s %s -> %s (%s) -> %s (%s) %s = %s (%s), %s (%s) %d %s\n",
+ num, S(mi->ts_sent), sent,
+ S(mi->ts_rx_onwire_kern), S(mi->ts_rx_onwire),
+ S(mi->ts_rx_final_kern), S(mi->ts_rx_final), received,
+ DIFF(mi->ts_sent, mi->ts_rx_onwire_kern),
+ DIFF(mi->ts_sent, mi->ts_rx_onwire),
+ DIFF(mi->ts_rx_onwire_kern, mi->ts_rx_final_kern),
+ DIFF(mi->ts_rx_onwire, mi->ts_rx_final),
+ mi->tx_time_us,
+ S(routing_delay));
+ break;
+ }