loader - the sipstone request generator program
loader config_file
The loader emulates a SIP UAC. It can generate INVITE and REGISTER requests, handle responses, and generate ACK's for INVITE. It does not implement reliability (retransmissions) but can use TCP as for reliable transport. Normally, the loader is started by the Controller. Loader(s) depend on a configuration file that customizes their request generation. When used as part of the Controller, the Controller automatically generates a configuration file for the loader. The loader, however, can also be used in stand-alone mode. This stand-alone mode needs a configuration file which is the subject of the rest of this document.
The loader's configuration file follows closely the controller's configuration file. The configuration parameters that are used by the loader are given below. For a detailed description of these parameters, please refer to controller description.
- serverAddress (SUT host or ip)
- serverPort (SUT port)
- loaderPort (the loader's local port)
- testType (a string describing the test)
- requestMethod (INVITE | REGISTER)
- protocol (TCP | UDP)
- isSendAck (true | false)
- isDebug (true | false)
- isLog (true | false)
- useAuthentication (true | false)
- digestPassword (password for digest authentication)
- requestRate request-per-second
- runDuration period-seconds
- loaderName caller-name (not used for REGISTER)
- bodyFileName (sdp file or null)
- taLimit (average turn around time in milliseconds)
- clientDomain (the caller domain)
- clientNamePrefix (caller name prefix, see Naming Scheme, not used for INVITE)
- clientNameSuffix
- clientRange
- handlerCount (number of handlers, for INVITE tests)
- handlerAddress0, handlerDomain0, handlerNamePrefix0, handlerNameSuffix0, handlerRange0 - repeated as many times as there are handler(s), used for INVITE tests only, identify callee).
If authentication is enabled, the loader first sends a REGISTER message to the SUT with the user name as the loaderName parameter and the domain as clientDomain (e.g., loader@cs.columbia.edu). This is a probe message, and the loader saves the authentication credentials that the SUT responds with (such as nonce, realm etc;). These credentials will be used in further messages. The nonce lifetime in SUT must be set sufficiently high, so that the same nonce is usable for all messages in a given test. In addition, only digest authentication is currently supported. In addition, the user name loaderName@domain must be preprovisioned, so that the loader gets a valid 401 or 407 or 200 response as appropriate. All calls (that is INVITE requests) made by the loader will be made with the same caller name but with different callers. In addition, the current version supports only INVITE request authentication. Hence, all other messages are assumed not to require authentication. This will be modified in the next release.
For each run, the loader generates the following files (the file names are based on a config file named loader.conf):
loader.conf.dataobj see Interpreting generated files for a description loader.conf.analyze see Interpreting generated files for a description loader.conf.gnup the result in gnuplot points format loader.conf.gnul the result in gnuplot lines format
The loader requires the presence of the four template files described in Controller.