1 2NOTE: 3 4Physical Topology 5================= 6 7These tests require two machines. And each machine needs to have 2 or more 8interfaces. These tests assume that they run on the following topology. 9 10 Control Link 11 +------------------------------------+ 12 | | 13 +-------+-------+ +-------+-------+ 14 | +---- Test Link 0 ---+ | 15 | Local Host + : + Remote Host | 16 | +---- Test Link n ---+ | 17 +---------------+ +---------------+ 18 19Control Link is used by the local host to control the remote host. 20`control' means, for example, changing the setting of the interfaces that are 21connected to the test links. The setting of the interfaces connected to the 22control link is never changed. 23 24Test Links are the place where the stress tests run. For example, test packets 25flow those links. The number of test links must be at least 1. The setting of 26the interfaces connected to the test links would be changed by the tests. 27Therefore, each test link should not belong to any external network. It is 28recommended to connect each pair of interfaces with the ether cross cables. 29 30Currently, different NIC testcases for ICMP/UDP/TCP/Multicast require plural 31test links. Other testcases uses only 1 test link. (Test Link 0) 32 33 34 35Installation 36============ 37 38Like the other network tests, the remote host must have the LTP installed 39in the same exact location as the local host have. Please refer the `Detailed 40Installation 5.' section in INSTALL. 41 42 43 44Execution 45========= 46 47To run the network stress testcases, use network.sh script, located in 48testscripts directory. For documentation about using network.sh see INSTALL 49and testcases/network/README.md 50 51Unfortunately some stress tests still depend on rsh for accessing remote host, even 52you decide to use SSH or network namespaces with network.sh. 53Instead of rsh, you can use ssh to set the environment variable LTP_RSH. 54Please refer the `Environment Variable' section of this document. 55 56The behaviour of network stress tests is configurable with environment 57variables (See `Environment Variable' section). 58 59 60Attention for HTTP/FTP stress tests 61=================================== 62 63When you run http or ftp stress tests, you have to start http or ftp server 64before running the tests. 65About ssh and dns tests, you don't need to run the ssh or dns server. Each 66test runs named or sshd automatically. 67 68Those tests requires that the remote host has `curl' command in order to 69upload/download files to/from the local host. 70 71When you run the ftp upload tests, please make sure the local host have 72enough disk space to upload somes files. The size of file is able to 73specify the environment variable (See `Environment Variable' section). 74 75 76Environment Variable 77==================== 78 79The nestwork stress testcases require the following environment variables: 80 81 RHOST 82 LHOST_HWADDRS 83 RHOST_HWADDRS 84 HTTP_DOWNLOAD_DIR (for http stress test) 85 FTP_DOWNLOAD_DIR (for ftp stress test) 86 FTP_UPLOAD_DIR (for ftp stress test) 87 FTP_UPLOAD_URLDIR (for ftp stress test) 88 89You are able to configure the behavior of the testcases with the following 90environment variables: 91 92 LTP_RSH 93 NS_DURATION (for the continual test) 94 NS_TIMES (for the repetition test) 95 CONNECTION_TOTAL (for creating a large number of connection test) 96 IP_TOTAL (for adding large number of IP address test) 97 IP_TOTAL_FOR_TCPIP (for multi IP address/alias test in icmp/udp/tcp) 98 ROUTE_TOTAL (for adding large number of route test) 99 MTU_CHANGE_TIMES (for changing mtu test) 100 IF_UPDOWN_TIMES (for interface up/down test) 101 MCASTNUM_NORMAL (for multicast test) 102 MCASTNUM_HEAVY (for multicast test) 103 DOWNLOAD_BIGFILESIZE (for http/ftp downloading stress test) 104 DOWNLOAD_REGFILESIZE (for http/ftp downloading stress test) 105 UPLOAD_BIGFILESIZE (for ftp uploading stress test) 106 UPLOAD_REGFILESIZE (for ftp uploading stress test) 107 108In these value, NS_DURATION is important if you'd like to reduce the test time. 109 110Required environment variables 111------------------------------ 112 113 o RHOST 114 The host name of the remote host to access it via the control link. 115 116 o LHOST_HWADDRS 117 The blank-separated hardware address list of the interfaces which are 118 connected to a test link at the local host. 119 This value have to have at least one address. The sequence of the hardware 120 address have to be same to the test link sequence. 121 122 o RHOST_HWADDRS 123 The blank-separated hardware address list of the interfaces which are 124 connected to a test link at the remote host. 125 This value have to have at least one address. The sequence of the hardware 126 address have to be same to the test link sequence. 127 128 o HTTP_DOWNLOAD_DIR (for http stress test) 129 The directory out of which the http server will serve the documents. 130 In the apache case, the value of this variable is same as DocumentRoot 131 value in httpd.conf 132 133 o FTP_DOWNLOAD_DIR (for ftp stress test) 134 The directory out of which the ftp server will serve the files. 135 136 o FTP_UPLOAD_DIR (for ftp stress test) 137 The directory which the ftp server will store the uploaded files. 138 139 o FTP_UPLOAD_URLDIR (for ftp stress test) 140 The directory part of URL where the client specifys to upload. 141 Namely, when the URL to upload is ftp://ltp.sourceforge.net/upload , 142 /upload is the value to set the environment variable. 143 144 145Optional environment variables 146------------------------------ 147 148 o LTP_RSH 149 The name of the remote shell command, namely rsh or ssh. 150 In ether case, the remote host must accept the login from the local host 151 without password. 152 153 o NS_DURATION (for the continual test) 154 The duration of the continual test. The time unit is `second'. 155 This variable affects all icmp/tcp/udp tests. The number of the testcase 156 in them is big. Therefore, the test time is reduced when you set small 157 value to the this variable. 158 Except icmp/tcp/udp tests, this variable affects ssh, ftp and http tests. 159 160 o NS_TIMES (for the repetition test) 161 The number of repetition times for the repetition tests. 162 This value affects IP adress add/del testcase, IP address change testcase 163 route add/del testcase and dns query tests. 164 165 o CONNECTION_TOTAL (for creating a large number of connection test) 166 The total number of connection when the testcase requires plural connection. 167 This value affects udp/tcp multi-connection to the same/different port 168 testcases, ftp and http testcases. 169 170 o IP_TOTAL (for adding large number of IP address test) 171 The total number of IP address to add an interface. 172 This value affect interface tests to add large number of IP address. 173 174 o IP_TOTAL_FOR_TCPIP (for multi IP address/alias test in icmp/udp/tcp) 175 The total number of IP address to add an interface for TCP/IP testcases. 176 This value affects udp/tcp multi-connection to the different IP 177 address/alias testcases. 178 179 o ROUTE_TOTAL (for adding large number of route test) 180 The total number of route to add an interface. 181 This value affect interface tests to add large number of route. 182 183 o MTU_CHANGE_TIMES (for changing mtu test) 184 The times of change the mtu value of an interface. The interval of 185 changing mtu is 5 seconds. Therefore, mtu changing tests requires 186 5 x MTU_CHANGE_TIMES [sec]. 187 This value affect interface tests of changing mtu. 188 189 o IF_UPDOWN_TIMES (for interface up/down test) 190 The up/down times of the interface tests. To up/down an interface takes 191 time. If you specify 10,000 into this value, it takes 6 hours. 192 This value affect interface tests of upping/down the interface. 193 194 o MCASTNUM_NORMAL (for multicast tests) 195 The number of multicast group to join. This variable is used for 196 the stress test after joining some multicast groups. It is not the 197 main target for joining lots of multicast. 198 199 o MCASTNUM_HEAVY (for multicast tests) 200 The number of multicast group to join. This variable is used for 201 the stress test for joining lots of multicast group. This value is the 202 limit of the joining multicast group. 203 204 o DOWNLOAD_BIGFILESIZE (for http/ftp downloading stress test) 205 The file size of the downloading large size file tests. 206 This value affects ftp download and http tests. 207 208 o DOWNLOAD_REGFILESIZE (for http/ftp downloading stress test) 209 The file size of the downloading file by many clients. 210 This value affects ftp download and http tests. 211 212 o UPLOAD_BIGFILESIZE (for ftp uploading stress test) 213 The file size of the uploading large size file tests. 214 The server must have UPLOAD_BIGFILESIZE as free disk space. 215 This value affects ftp upload tests. 216 217 o UPLOAD_REGFILESIZE (for ftp uploading stress test) 218 The file size of the downloading file by many clients. 219 The server must have UPLOAD_REGFILESIZE x CONNECTION_NUM as free disk space. 220 This value affects ftp download and http tests. 221 222--- Mitsuru Chinen <mitch@jp.ibm.com> 223