/***************************************************************************
 * 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:  <yukio-m@is.aist-nara.ac.jp>
 *  URL:     <http://shika.aist-nara.ac.jp/member/yukio-m/index.html>
 *  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 */
};


syntax highlighted by Code2HTML, v. 0.9.1