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 connectted 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 6.' section in ltp-yyyymmdd/INSTALL. 41 42 43 44Execution 45========= 46 47To run the network stress testcases, networkstress.sh is prepared in 48ltp-yyyymmdd/testscripts directory. Some envrionment variables have to be 49set for the stress testcases. Please fill the environment variable in 50networkstress.sh. 51 52Like the other network stress tests, the remote host must be setup to allow 53the local host connection using rsh. Please refer the `Detailed 54Installation 6.' section in ltp-yyyymmdd/INSTALL. 55Instead of rsh, you can use ssh to set the environment variable LTP_RSH. 56Please refer the `Environment Variable' section of this document. 57 58Two command lists is prepared in ltp-yyyymmdd/runtest directory. 59 60 network_stress.whole : 118 kinds 615 tests 61 network_stress.selected : 33 kinds 103 tests 62 network_stress.interface : 13 kinds 27 tests 63 network_stress.route : 12 kinds 22 tests 64 network_stress.broken_ip : 11 kinds 11 tests 65 network_stress.icmp : 6 kinds 42 tests 66 network_stress.udp : 8 kinds 56 tests 67 network_stress.tcp : 22 kinds 308 tests 68 network_stress.multicast : 24 kinds 24 tests 69 network_stress.appl : 22 kinds 22 tests 70 71Running the tests using network_stress.whole takes about 20 days. Therefore, 72network_stress.selected is prepared. However, it takes 3 days using 73network_stress.selected. If you reduce the time, you should choose the 74testcase and prepare your own command lists. The detail of testcases 75are written in ltp-yyyymmdd/doc/testcases/network_stress.txt. Or you can 76reduce the time by configuring the test behavior with the environment 77variable (See `Environment Variable' section) 78 79 80 81Attention for HTTP/FTP stress tests 82=================================== 83 84When you run http or ftp stress tests, you have to start http or ftp server 85before running the tests. 86About ssh and dns tests, you don't need to run the ssh or dns server. Each 87test runs named or sshd automatically. 88 89Those tests requires that the remote host has `curl' command in order to 90upload/download files to/from the local host. 91 92When you run the ftp upload tests, please make sure the local host have 93enough disk space to upload somes files. The size of file is able to 94specify the environment variable (See `Environment Variable' section). 95 96 97Environment Variable 98==================== 99 100The nestwork stress testcases require the following environment variables: 101 102 RHOST 103 LHOST_HWADDRS 104 RHOST_HWADDRS 105 HTTP_DOWNLOAD_DIR (for http stress test) 106 FTP_DOWNLOAD_DIR (for ftp stress test) 107 FTP_UPLOAD_DIR (for ftp stress test) 108 FTP_UPLOAD_URLDIR (for ftp stress test) 109 110You are able to configure the behavior of the testcases with the following 111environment variables: 112 113 LTP_RSH 114 NS_DURATION (for the continual test) 115 NS_TIMES (for the repetition test) 116 CONNECTION_TOTAL (for creating a large number of connection test) 117 IP_TOTAL (for adding large number of IP address test) 118 IP_TOTAL_FOR_TCPIP (for multi IP address/alias test in icmp/udp/tcp) 119 ROUTE_TOTAL (for adding large number of route test) 120 MTU_CHANGE_TIMES (for changing mtu test) 121 IF_UPDOWN_TIMES (for interface up/down test) 122 MCASTNUM_NORMAL (for multicast test) 123 MCASTNUM_HEAVY (for multicast test) 124 DOWNLOAD_BIGFILESIZE (for http/ftp downloading stress test) 125 DOWNLOAD_REGFILESIZE (for http/ftp downloading stress test) 126 UPLOAD_BIGFILESIZE (for ftp uploading stress test) 127 UPLOAD_REGFILESIZE (for ftp uploading stress test) 128 129In these value, NS_DURATION is important if you'd like to reduce the test time. 130 131Required environment variables 132------------------------------ 133 134 o RHOST 135 The host name of the remote host to access it via the control link. 136 137 o LHOST_HWADDRS 138 The blank-separated hardware address list of the interfaces which are 139 connectted to a test link at the local host. 140 This value have to have at least one address. The sequence of the hardware 141 address have to be same to the test link sequence. 142 143 o RHOST_HWADDRS 144 The blank-separated hardware address list of the interfaces which are 145 connectted to a test link at the remote host. 146 This value have to have at least one address. The sequence of the hardware 147 address have to be same to the test link sequence. 148 149 o HTTP_DOWNLOAD_DIR (for http stress test) 150 The directory out of which the http server will serve the documents. 151 In the apache case, the value of this variable is same as DocumentRoot 152 value in httpd.conf 153 154 o FTP_DOWNLOAD_DIR (for ftp stress test) 155 The directory out of which the ftp server will serve the files. 156 157 o FTP_UPLOAD_DIR (for ftp stress test) 158 The directory which the ftp server will store the uploaded files. 159 160 o FTP_UPLOAD_URLDIR (for ftp stress test) 161 The directory part of URL where the client specifys to upload. 162 Namely, when the URL to upload is ftp://ltp.sourceforge.net/upload , 163 /upload is the value to set the environment variable. 164 165 166Optional environment variables 167------------------------------ 168 169 o LTP_RSH 170 The name of the remote shell command, namely rsh or ssh. 171 In ether case, the remote host must accept the login from the local host 172 without password. 173 174 o NS_DURATION (for the continual test) 175 The duration of the continual test. The time unit is `second'. 176 This variable affects all icmp/tcp/udp tests. The number of the testcase 177 in them is big. Therefore, the test time is reduced when you set small 178 value to the this variable. 179 Except icmp/tcp/udp tests, this variable affects ssh, ftp and http tests. 180 181 o NS_TIMES (for the repetition test) 182 The number of repetition times for the repetition tests. 183 This value affects IP adress add/del testcase, IP address change testcase 184 route add/del testcase and dns query tests. 185 186 o CONNECTION_TOTAL (for creating a large number of connection test) 187 The total number of connection when the testcase requires plural connection. 188 This value affects udp/tcp multi-connection to the same/different port 189 testcases, ftp and http testcases. 190 191 o IP_TOTAL (for adding large number of IP address test) 192 The total number of IP address to add an interface. 193 This value affect interface tests to add large number of IP address. 194 195 o IP_TOTAL_FOR_TCPIP (for multi IP address/alias test in icmp/udp/tcp) 196 The total number of IP address to add an interface for TCP/IP testcases. 197 This value affects udp/tcp multi-connection to the different IP 198 address/alias testcases. 199 200 o ROUTE_TOTAL (for adding large number of route test) 201 The total number of route to add an interface. 202 This value affect interface tests to add large number of route. 203 204 o MTU_CHANGE_TIMES (for changing mtu test) 205 The times of change the mtu value of an interface. The interval of 206 changing mtu is 5 seconds. Therefore, mtu changing tests requires 207 5 x MTU_CHANGE_TIMES [sec]. 208 This value affect interface tests of changing mtu. 209 210 o IF_UPDOWN_TIMES (for interface up/down test) 211 The up/down times of the interface tests. To up/down an interface takes 212 time. If you specify 10,000 into this value, it takes 6 hours. 213 This value affect interface tests of upping/down the interface. 214 215 o MCASTNUM_NORMAL (for multicast tests) 216 The number of multicast group to join. This variable is used for 217 the stress test after joining some multicast groups. It is not the 218 main target for joining lots of multicast. 219 220 o MCASTNUM_HEAVY (for multicast tests) 221 The number of multicast group to join. This variable is used for 222 the stress test for joining lots of multicast group. This value is the 223 limit of the joining multicast group. 224 225 o DOWNLOAD_BIGFILESIZE (for http/ftp downloading stress test) 226 The file size of the downloading large size file tests. 227 This value affects ftp download and http tests. 228 229 o DOWNLOAD_REGFILESIZE (for http/ftp downloading stress test) 230 The file size of the downloading file by many clients. 231 This value affects ftp download and http tests. 232 233 o UPLOAD_BIGFILESIZE (for ftp uploading stress test) 234 The file size of the uploading large size file tests. 235 The server must have UPLOAD_BIGFILESIZE as free disk space. 236 This value affects ftp upload tests. 237 238 o UPLOAD_REGFILESIZE (for ftp uploading stress test) 239 The file size of the downloading file by many clients. 240 The server must have UPLOAD_REGFILESIZE x CONNECTION_NUM as free disk space. 241 This value affects ftp download and http tests. 242 243--- Mitsuru Chinen <mitch@jp.ibm.com> 244