diff options
Diffstat (limited to 'include/payloads.h')
-rw-r--r-- | include/payloads.h | 30 |
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 |