This is needed for loss rate calculation.
Supports ICMP/UDP/TCP.
Also adds sequence number to pingline.
The "raw" format is:
-hostline|pingline|dnsline|timestampline
+hostline|xmitline|pingline|dnsline|timestampline
hostline:
h <pos> <host IP>
+xmitline:
+x <pos> <seqnum>
+
pingline:
-p <pos> <pingtime (ms)>
+p <pos> <pingtime (ms)> <seqnum>
dnsline:
d <pos> <hostname>
}
-void display_rawping(int host, int msec)
+void display_rawxmit(int host, int seq)
+{
+ switch(DisplayMode) {
+ case DisplayRaw:
+ raw_rawxmit (host, seq);
+ break;
+ }
+}
+
+
+void display_rawping(int host, int msec, int seq)
{
switch(DisplayMode) {
case DisplayReport:
case DisplayGTK:
break;
case DisplayRaw:
- raw_rawping (host, msec);
+ raw_rawping (host, msec, seq);
break;
}
}
void display_open(void);
void display_close(time_t now);
void display_redraw(void);
-void display_rawping(int hostnum, int msec);
+void display_rawxmit(int hostnum, int seq);
+void display_rawping(int hostnum, int msec, int seq);
void display_rawhost(int hostnum, ip_t *ip_addr);
int display_keyaction(void);
void display_loop(void);
void save_sequence(int index, int seq)
{
+ display_rawxmit(index, seq);
+
sequence[seq].index = index;
sequence[seq].transit = 1;
sequence[seq].saved_seq = ++host[index].xmit;
host[index].transit = 0;
net_save_return(index, sequence[seq].saved_seq, totusec);
- display_rawping(index, totusec);
+ display_rawping(index, totusec, seq);
}
}
#endif
-void raw_rawping (int host, int msec)
+// Log an echo request, or a "ping"
+void raw_rawxmit (int host, int seq)
+{
+ printf ("x %d %d\n", host, seq);
+ fflush (stdout);
+}
+
+// Log an echo reply, or a "pong"
+void raw_rawping (int host, int msec, int seq)
{
char *name;
printf ("d %d %s\n", host, name);
}
}
- printf ("p %d %d\n", host, msec);
+ printf ("p %d %d %d\n", host, msec, seq);
fflush (stdout);
}
*/
/* Prototypes for raw.c */
-void raw_rawping(int host, int msec);
+void raw_rawxmit(int host, int seq);
+void raw_rawping(int host, int msec, int seq);
void raw_rawhost(int host, ip_t * addr);