diff --git a/server.h b/server.h
index d68cbf5..9f7eeae 100644
--- a/server.h
+++ b/server.h
@@ -14,7 +14,7 @@
 	uint16_t version;	/* protocol version */
 	uint16_t opcode;	/* command opcode */
 	uint32_t flags;		/* modifier flags */
-	uint64_t serial;	/* serial number */
+	uint64_t tag;		/* passed back on reply */
 	uint32_t pdu_len;	/* length of post-cmd layload */
 	/*
 	 * These must be immediately before the payload, anything before
@@ -26,7 +26,7 @@
 };
 
 enum {
-	FIO_SERVER_VER		= 4,
+	FIO_SERVER_VER		= 5,
 
 	FIO_SERVER_MAX_PDU	= 1024,
 
@@ -37,10 +37,11 @@
 	FIO_NET_CMD_TEXT	= 5,
 	FIO_NET_CMD_TS		= 6,
 	FIO_NET_CMD_GS		= 7,
-	FIO_NET_CMD_ETA		= 8,
-	FIO_NET_CMD_PROBE	= 9,
-	FIO_NET_CMD_START	= 10,
-	FIO_NET_CMD_STOP	= 11,
+	FIO_NET_CMD_SEND_ETA	= 8,
+	FIO_NET_CMD_ETA		= 9,
+	FIO_NET_CMD_PROBE	= 10,
+	FIO_NET_CMD_START	= 11,
+	FIO_NET_CMD_STOP	= 12,
 
 	FIO_NET_CMD_F_MORE	= 1UL << 0,
 
@@ -77,8 +78,8 @@
 extern int fio_start_server(int);
 extern int fio_server_text_output(const char *, unsigned int len);
 extern int fio_server_log(const char *format, ...);
-extern int fio_net_send_cmd(int, uint16_t, const void *, off_t);
-extern int fio_net_send_simple_cmd(int sk, uint16_t opcode, uint64_t serial);
+extern int fio_net_send_cmd(int, uint16_t, const void *, off_t, uint64_t);
+extern int fio_net_send_simple_cmd(int sk, uint16_t opcode, uint64_t tag);
 extern void fio_server_set_arg(const char *);
 extern int fio_server_parse_string(const char *, char **, int *, int *, struct in_addr *);
 
@@ -86,7 +87,6 @@
 struct group_run_stats;
 extern void fio_server_send_ts(struct thread_stat *, struct group_run_stats *);
 extern void fio_server_send_gs(struct group_run_stats *);
-extern void fio_server_send_status(void);
 extern void fio_server_idle_loop(void);
 
 extern int fio_clients_connect(void);
@@ -104,12 +104,14 @@
 extern int fio_net_port;
 
 static inline void fio_init_net_cmd(struct fio_net_cmd *cmd, uint16_t opcode,
-				    const void *pdu, uint32_t pdu_len)
+				    const void *pdu, uint32_t pdu_len,
+				    uint64_t tag)
 {
 	memset(cmd, 0, sizeof(*cmd));
 
 	cmd->version	= __cpu_to_le16(FIO_SERVER_VER);
 	cmd->opcode	= cpu_to_le16(opcode);
+	cmd->tag	= cpu_to_le64(tag);
 
 	if (pdu) {
 		cmd->pdu_len	= cpu_to_le32(pdu_len);
