summaryrefslogtreecommitdiffstats
path: root/include/payloads.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/payloads.h')
-rw-r--r--include/payloads.h30
1 files changed, 27 insertions, 3 deletions
diff --git a/include/payloads.h b/include/payloads.h
index 30080d9..d1eb59b 100644
--- a/include/payloads.h
+++ b/include/payloads.h
@@ -56,6 +56,7 @@ extern "C" {
*/
#define TAPBYTESSLOP 512
+#define TCP_CCA_NAME_MAX 32
/* key for permit */
#define HEADER_KEYCHECK 0x10000000
@@ -88,15 +89,22 @@ extern "C" {
#define RUN_NOW 0x00000001
#define HEADER16_SMALL_TRIPTIMES 0x0002 // use is 16 bits and not 32 bits
+// Num threads highest bit indicates sync id
+#define HEADER_HASTRANSFERID 0x80000000
+#define HEADER_TRANSFERIDMASK 0xFFF00000
+#define HEADER_TRANSFERIDSHIFT 20
+
// Bounceback flag
#define HEADER_BBQUICKACK 0x8000
#define HEADER_BBCLOCKSYNCED 0x4000 // used in the bb header only
#define HEADER_BBTOS 0x2000
#define HEADER_BBSTOP 0x1000
+#define HEADER_BBREPLYSIZE 0x0800
// newer flags available per HEADER_EXTEND
// Below flags are used to pass test settings in *every* UDP packet
// and not just during the header exchange
+// upper flags (16 bit)
#define HEADER_ISOCH 0x0001
#define HEADER_L2ETHPIPV6 0x0002
#define HEADER_L2LENCHECK 0x0004
@@ -114,9 +122,14 @@ extern "C" {
#define HEADER_WRITEPREFETCH 0x4000
#define HEADER_TCPQUICKACK 0x8000
+// lower flags (16 bit)
+#define HEADER_CCA 0x8000
+#define HEADER_BARRIER_TIME 0x4000
+
// later features
#define HDRXACKMAX 2500000 // default 2.5 seconds, units microseconds
#define HDRXACKMIN 10000 // default 10 ms, units microsecond
+
/*
* Structures used for test messages which
* are exchanged between the client and the Server/Listener
@@ -230,6 +243,7 @@ struct bounceback_hdr {
uint32_t bbhold; // up to here is mandatory
uint32_t bbrtt;
struct bb_ts bbread_ts;
+ uint32_t bbreplysize;
};
struct client_hdrext_isoch_settings {
@@ -255,10 +269,10 @@ struct client_hdrext {
uint32_t lRate;
uint32_t uRate;
uint32_t TCPWritePrefetch;
+ uint32_t barrier_usecs;
};
struct client_hdrext_starttime_fq {
- uint32_t reserved;
uint32_t start_tv_sec;
uint32_t start_tv_usec;
uint32_t fqratel;
@@ -440,6 +454,11 @@ struct isoch_payload {
uint32_t reserved;
};
+struct cca_field {
+ uint16_t cca_length;
+ char value[TCP_CCA_NAME_MAX];
+};
+
struct permitKey {
uint16_t length;
char value[MAX_PERMITKEY_LEN];
@@ -457,6 +476,8 @@ struct client_udp_testhdr {
struct client_udpsmall_testhdr {
struct UDP_datagram seqno_ts;
uint16_t flags;
+ uint32_t start_tv_sec;
+ uint32_t start_tv_usec;
};
struct client_hdr_ack_ts {
@@ -513,7 +534,7 @@ struct client_hdr_ack {
* +--------+--------+--------+--------+
* 15 | write prefetch (0.13) |
* +--------+--------+--------+--------+
- * 16 | reserved (0.14 start) |
+ * 16 | barrier wait (usecs) |
* +--------+--------+--------+--------+
* 17 | start tv_sec (0.14) |
* +--------+--------+--------+--------+
@@ -539,12 +560,15 @@ struct client_hdr_ack {
* +--------+--------+--------+--------+
* 28 | BurstIPG |
* +--------+--------+--------+--------+
+ * 29 | CCAS len value ...
+ * +--------+--------+--------+--------+
*/
struct client_tcp_testhdr {
struct client_hdr_v1 base;
struct client_hdrext extend;
struct client_hdrext_starttime_fq start_fq;
struct client_hdrext_isoch_settings isoch_settings;
+ struct cca_field cca;
struct permitKey permitkey;
};
@@ -614,7 +638,7 @@ struct server_hdr {
#define SIZEOF_TCPHDRMSG_V1 (sizeof(struct client_hdr_v1))
#define SIZEOF_TCPHDRMSG_EXT (sizeof(struct client_tcp_testhdr))
#define MINMBUFALLOCSIZE (int) (sizeof(struct client_tcp_testhdr)) + TAPBYTESSLOP
-#define MINTRIPTIMEPLAYOAD (int) (sizeof(struct client_udp_testhdr) - sizeof(struct client_hdrext_isoch_settings))
+#define MINTRIPTIMEPAYLOAD (int) (sizeof(struct client_udp_testhdr) - sizeof(struct client_hdrext_isoch_settings))
#ifdef __cplusplus
} /* end extern "C" */
#endif