/*************************************************************************** * DBS: Distributed Benchmark System * Copyright (c) 1995, 1996, 1997 Yukio Murayama * Copyright (c) 1995, 1996, 1997 Nara Institute of Science and Technology * All rights reserved. * * Permission to use, copy, modify and distribute this software and its * documentation is hereby granted, provided only with the following * conditions are satisfied: * * 1. Both the copyright notice and this permission notice appear in * all copies of the software, derivative works or modified versions, * and any portions thereof, and that both notices appear in * supporting documentation. * 2. All advertising materials mentioning features or use of this * software must display the following acknowledgement: * This product includes software developed by Nara Institute of * Science and Technology and its contributors. * 3. Neither the name of Nara Institute of Science and Technology nor * the names of its contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND NARA * INSTITUTE OF SCIENCE AND TECHNOLOGY DISCLAIMS ANY LIABILITY OF * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF * THIS SOFTWARE. ALSO, THERE IS NO WARRANTY IMPLIED OR OTHERWISE, * NOR IS SUPPORT PROVIDED. * * Feedback of the results generated from any improvements or * extensions made to this software would be much appreciated. * Any such feedback should be sent to: * * Yukio Murayama * E-mail: * URL: * Address: Graduate School of Information Science, * Nara Institute of Science and Technology, * Takayama 8916-5, Ikoma, Nara, Japan * * Nara Institute of Science and Technology has the rights to * redistribute these changes. ***************************************************************************/ /***************************************************************** * Distributed Benchmark System * DBS NET Header File * $Revision: 1.9 $ * $Date: 1997/02/11 03:14:17 $ * $Author: yukio-m $ *****************************************************************/ /* * DBSC and DBSD Common List * * Through *Network* (Network Bite Order Only) */ /***** command list through network *****/ struct net_timeval { int tv_sec; int tv_usec; }; struct net_cmd { /* ASSOSIATION */ char dsthostname[MAXHOSTNAME]; /* Destination Hostname */ char srchostname[MAXHOSTNAME]; /* Source Hostname */ int transport; /* 1:TCP 2:UDP */ int sendflg; /* 1:SEND 2:RECEIVE */ int serverflg; /* 1:SERVER 2:CLIENT */ int source_port; /* Source Port */ int dest_port; /* Destination Port */ /* TIME */ struct net_timeval start_time; /* Start Time */ struct net_timeval end_time; /* End Time */ /* TRAFFIC*/ int traffic_n; /* Traffic Pattern */ /* Only Sender */ int send_times; /* Sending Times */ /* Only Reciver */ int total_size; /* Total Data Size(byte) */ int total_message; /* Total Message(Times) */ /* MEMORY ALIGN*/ int mem_align; /* Memory Align */ int align_offset; /* Memory Align */ int align_pad; /* Memory Align */ int connection_mode; /* PRE or AFTER */ /* SOCKET */ int send_buff; /* Send Buffer Size */ int recv_buff; /* Receive Buffer Size */ int so_debug; /* SO_DEBUG ON or OFF */ int no_delay; /* NO_DELAY ON or OFF */ int tcp_trace; /* TCP_TRACE ON or OFF */ int mss; /* MSS */ /* RECORD BUFFER */ int record_buff; int trace_buff; }; /***** traffic list through network *****/ struct net_traffic { int size; int packet; int esleep; int isleep; }; /***** Time Record Structure *****/ struct record_d_net { int tv_sec; int tv_usec; int packet_no; int packet_size; }; /***** TCP Trace Structure *****/ struct tcp_trace_d_net { int td_time; int td_act; int th_seq; /* sequence number */ int th_ack; /* acknowledgement number */ int len; /* length */ int th_flags; /* ACK, FIN, PUSH, RST, SYN, URG */ int t_state; /* state of this connection */ int t_rxtshift; /* log(2) of rexmt exp. backoff */ int t_rxtcur; /* current retransmit value */ int t_dupacks; /* consecutive dup acks recd */ int t_maxseg; /* maximum segment size */ int t_force; /* 1 if forcing out a byte */ int t_flags; /* send sequence variables */ int snd_una; /* send unacknowledged */ int snd_nxt; /* send next */ int snd_wl1; /* window update seg seq number */ int snd_wl2; /* window update seg ack number */ int iss; /* initial send sequence number */ int snd_wnd; /* send window */ /* receive sequence variables */ int rcv_wnd; /* receive window */ int rcv_nxt; /* receive next */ int irs; /* initial receive sequence number */ /* receive variables */ int rcv_adv; /* advertised window */ /* retransmit variables */ int snd_max; /* highest sequence number sent; used to recognize retransmits */ /* congestion control (for slow start, source quench, retransmit after loss) */ int snd_cwnd; /* congestion-controlled window */ int snd_ssthresh; /* snd_cwnd size threshhold for slow start exponential to linear switch */ int t_idle; /* inactivity time */ int t_rtt; /* round trip time */ int t_rtseq; /* sequence number being timed */ int t_srtt; /* smoothed round-trip time */ int t_rttvar; /* variance in round-trip time */ int t_rttmin; /* minimum rtt allowed */ int max_sndwnd; /* largest window peer has offered */ };