/*************************************************************************** * 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 * DBSD Header File * $Revision: 1.13 $ * $Date: 1997/02/11 03:14:41 $ * $Author: yukio-m $ *****************************************************************/ /* * Data Structure For DBSD Modules */ /**** START of DBS Daemon's list ****/ /* Socket Option */ struct sock_opt { int send_buff; /* Send Buffer Size */ int recv_buff; /* Receive Buffer Size(byte) */ int so_debug; /* SO_DEBUG ON or OFF */ int no_delay; /* NO_DELAY ON or OFF */ int mss; /* MSS */ }; /* Assosiation */ struct assosiation { char dsthostname[MAXHOSTNAME]; /* Destination Hostname */ char srchostname[MAXHOSTNAME]; /* Source Hostname */ int transport; /* 1:TCP 2:UDP */ u_int source_address; /* Source Address */ u_short source_port; /* Source Port */ u_int dest_address; /* Destination Address */ u_short dest_port; /* Destination Port */ }; /* DBS Traffic Pattern List*/ struct dbsd_traffic { int size; int packet; struct timeval isleep; struct timeval esleep; int esleep_flag; int isleep_flag; }; struct dbsd_param { /* ASSOSIATION */ struct assosiation assosiation; struct sock_opt sock_opt; /* CONNECTION */ int connection_mode; /* BEFORE or AFTER */ int fd; /* file descripter */ int sockfd; /* socket file descripter */ struct sockaddr_in b_address; struct sockaddr_in d_address; /* TCP TRACE */ int tcp_trace; int trace_buff; /* TRAFFIC*/ int sendflg; /* 1:SEND 2:RECEIVE */ int serverflg; /* 1:SERVER 2:CLIENT */ struct dbsd_traffic *traffic; /* Traffic Pattern */ int traffic_n; /* Traffic Pattern */ int buf_size; /* Send or Receive Buffer Size (number)*/ int mem_align; /* Memory Align */ int align_offset; /* Memory Align Offset */ int align_pad; /* Memory Align Pad */ /* TIME */ struct timeval start_time; /* Start Time */ struct timeval end_time; /* End Time */ /* Only Sender */ int send_times; /* Sending Times (times) */ /* Only Receiver */ int record_buff; int total_size; /* Total Data Size (byte) */ int total_message; /* Total Messages (Times) */ int recv_mode; /* RECV_MODE */ }; /**** END of DBS Daemon's list ****/ /***** net.c *****/ int tcp_init_server __P((struct assosiation *a, struct dbsd_param *cmd)); int tcp_init_server2 __P((struct assosiation *a, struct dbsd_param *cmd)); int tcp_init_client __P((struct assosiation *a, struct dbsd_param *cmd)); int udp_init __P((struct assosiation *a, struct dbsd_param *cmd)); void getaddr __P((struct assosiation *a, struct sockaddr_in *d_address, struct sockaddr_in *b_address)); void setaddr __P((int fd, struct assosiation *a)); /***** dbsd.c *****/ void safe_exit __P((int signo, char *msg, char *error));