Video Functions¶
sth::emulation_video_config¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Configures or modifies a video emulation on the specified device
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_video_config [-mode {enable | modify } M] [-handle <device_handle|session_handle> M] [-type {client | server} M] [-server_clip_file <file_name>] [-client_clip_file <file_name>] [-event_rec_enable {true | false}] [-rtsp_enable {true | false}] [-rtsp_port_num <NUMERIC>] [-server_name <string>] [-use_partial_block_state {true | false}] [-server_profile <profile_handle>] [-client_name <string>] [-dst_ip_addr <a.b.c.d>] [-dst_port <NUMERIC>] [-dynamic_load <1-1000000>] [-client_profile <profile_handle>] [-load_profile <profile_handle>] [-connected_server <string>]
Arguments¶
-
-handle
¶
Specifies the device handle under which to enable or modify the video test configurations. This argument is Mandatory .
-
-mode
¶
Specifies the action to perform. This argument is Mandatory . Possible values are:
enable Enables the video test configurations on the device specified by -handle modify Modifies the video protocol configuration specified by -handle. (The value is obtained from -session_handle returned by the function)
-
-type
¶
Specifies whether to enable client or server on the device. This argument is Mandatory . Possible values are client and server.
-
-server_clip_file
¶
Specifies the video clips available for the current server test. The clip files specified here must have been uploaded to the chassis, either using Spirent TestCenter GUI or the
sth::emulation_video_clips_manage
function. This argument is available when -type is set to server.
-
-client_clip_file
¶
Identifies the video files to be requested by the client. The available file list is the clip file list specified by -server_clip_file. This argument is available when -type is set to server.
-
-event_rec_enable
¶
Specifies whether to enable event recording. This argument is available when -type is set to server. Possible values are true and false. When it is set to true, server session results will be reported. The default value is false.
-
-rtsp_enable
¶
Enables/disables Rapid Spanning Tree Protocol (RTSP) for the video server. This argument is available when -type is set to server. Possible values are true (enable) and false (disable). The default value is true.
-
-rtsp_port_num
¶
Specifies the port number to be used by RTSP. This argument is available when -type is set to server. The default value is 554.
-
-server_profile
¶
Specifies the server profile for the video server emulation. The handle is returned by the
sth::emulation_profile_config
function.
-
-dst_ip_addr
¶
Specifies the destination IP address of the requested video stream. Leave it at the default value (the IP address of the client). This argument is available when -type is set to client.
-
-dst_port
¶
Specifies the port number of the client. This argument is available when -type is set to client. The default value is 50050.
-
-loop
¶
Enable this argument to play the clip continuously. Possible values are true (enable) and false (disable). The default value is false.
-
-client_profile
¶
Specifies the client profile for the video client emulation. The handle is returned by the
sth::emulation_profile_config
function. This argument is available when -type is set to client.
-
-load_profile
¶
Specifies the load profile for the video client emulation. The handle is returned from sth::emulation_profile_config. This argument is available when -type is set to client.
-
-connected_server
¶
Specifies the name of the device block for the video server. This argument is available when -type is set to client.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status $SUCCESS (1) or $FAILURE (0)
log Error message if command returns {status 0}
session_handle The video test session handle returned by the function.
The value will be passed to -handle when the mode is modify.
Description¶
The sth::emulation_video_config
function creates or modifies video testing
sessions on the specified device. Use -mode to specify the action to perform, and
use -type to specify whether you want to configure a video server or client. (See
Arguments for more information.)
Before enabling the video emulation, make sure there are already video server/client/load profile handles returned by the sth::emulation_profile_config function.
Examples¶
The following example configures a video server on the specified device:
set device_ret0_videoserverprotocolconfig [sth::emulation_video_config\
-mode enable\
-handle $device_created\
-type server\
-event_rec_enable true \
-rtsp_enable true \
-server_clip_file "craft.mp4 medicine.mp4" \
-rtsp_port_num 65535 \
-server_profile $serverprofilehandle2 \
]
Sample output:
{session_handle videoserverprotocolconfig1} {status 1}
End of Procedure Header
sth::emulation_video_server_streams_config¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Creates or modifies video server streams. You can create multiple streams to emulate different destinations and transports.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_video_server_streams_config [-mode {create|modify} M] [-handle <server_protocol_handle >] [-stream_handle <stream_handle>] [-dst_ip_addr <a.b.c.d>|<aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>] [-dst_port <NUMERIC>] [-loop_enable {true|false}] [-transport_type {udp|rtp}] [-name <string>]
Arguments¶
-
-handle
¶
Specifies the video server configuration handle under which to create video server streams. The handle is returned by the
sth::emulation_video_config
function.
-
-stream_handle
¶
Specifies the handle of the video server stream to modify
-
-mode
¶
Specifies the action to perform. This argument is Mandatory . Possible values are:
create Creates video server streams with the specified handle modify Modifies the video server stream specified by -stream_handle
-
-name
¶
Specifies the name of the video server stream, in string format.
-
-dst_ip_addr
¶
Specifies the IPv4 or IPv6 address of the client. The default value is 0.0.0.0.
-
-dst_port
¶
Specifies the port number of the client. Possible values range from 0 to 65535. The default value is 50050.
-
-loop_enable
¶
Once enabled, Spirent HLTAPI will play the stream continuously. Possible values are true (enable) and false (disable). The default value is true.
-
-transport_type
¶
Specifies the transport protocol. possible values are udp (UDP) and rtp (RTP). The default value is udp.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status $SUCCESS (1) or $FAILURE (0)
log Error message if command returns {status 0}
stream_handle The video server stream handle returned by the function
Description¶
The sth::emulation_video_server_streams_config
function creates or modifies video
server streams. You can create multiple streams to emulate different destinations
and transports. Use -mode to specify the action to perform.
Examples¶
The following example creates a video server stream for the specified video server:
sth::emulation_video_server_streams_config\
-mode create\
-handle $session_created\
-loop_enable true \
-dst_ip_addr 1.1.1.1 \
-transport_type udp \
-dst_port 2000
Sample Output:
{handle videoserverstream1} {status 1}
End of Procedure Header
sth::emulation_profile_config¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Creates or modifies the client, server, or load profile for the video test session
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_profile_config [-mode {create|modify} M] [-profile_type {client|server|load} ] [-handle <profile_handle>] [-load_type {connections|connections_per_time_unit|transactions| transactions_per_time_unit|bandwidth|playlists}] [-max_connections_attempted <NUMERIC>] [-max_open_connections <NUMERIC>] [-max_transactions_attempted <NUMERIC>] [-randomization_seed <NUMERIC>] [-use_dynamic_load {true|false}] [-delayed_ack_enable {true|false}] [-ipv4_tos <0-255>] [-ipv6_traffic_class <0-255>] [-profile_name <string>] [-rx_window_size_limit <NUMERIC>] [-tostype {tos|diffserv}]
Arguments¶
-
-mode
¶
Specifies the action to perform. This argument is Mandatory . Possible values are:
create Creates a specified type of profile under the project modify Modifies the profile specified by -handle
-
-handle
¶
The profile handle returned by the function. It is required for -mode modify.
-
-profile_type
¶
Specifies the type of the profile to create. Depending on the type of the profile, different sets of arguments are available. Possible values are:
client Creates a profile to define the type of user behavior for all video clients to emulate server Creates a profile to define a video server to emulate load Creates a load profile to configure the amount of network traffic to generate for a test
It is required for -mode create.
-
-load_type
¶
Specifies the type of traffic that is measured for the load. This argument is available when -profile_type is set to load. Possible values are:
connections Denotes a TCP connection. Defines the number of simultaneous network connections generated. This setting generates enough load to reach and sustain the desired number of open TCP connections. connections_per_time_unit Specifies the number of new connections to be opened in a specified time unit, regardless of the number of connections currently open. If connections are long-lived (the number of transactions or the data size is large), this could result in a large number of connections being open at once. transactions Defines the number of simultaneous transactions generated transactions_per_time_unit Gradually ramps up the number of transactions per time unit for the duration of the test bandwidth Sets the load in terms of bandwidth, sent on a best-effort basis. Set -use_dynamic_load to true to allow the load to be changed dynamically during the test. playlists Runs a protocol playlist. Height specifies the maximum number of concurrent playlists.
The default value is connections.
-
-max_connections_attempted
¶
Specifies the upper limit for the number of connection attempts that are made throughout the test. This argument is available when -profile_type is set to load. Possible values range from 0 to 4294967295. The default value is 4294967295.
-
-max_open_connections
¶
Specifies the upper limit for the number of open connections throughout the test. This argument is available when -profile_type is set to load. Possible values range from 0 to 4294967295. The default value is 4096.
-
-max_transactions_attempted
¶
Specifies the upper limit for the number of transaction attempts that are made throughout the test. This argument is available when -profile_type is set to load. Possible values range from 0 to 4294967295. The default value is 4294967295.
-
-randomization_seed
¶
Specifies a number to define the heights in the random phases of the test. If the value is zero, the seed is determined by the time the test is executed. This argument is available when profile_type is set to load. Possible values range from 0 to 4294967295. The default value is 123456.
-
-use_dynamic_load
¶
Enables or disables dynamic load when -load_type is set to bandwidth. Possible values are true (enable) and false (disable). The default value is false.
-
-delayed_ack_enable
¶
Enables or disables delayed ACK on TCP connections. This argument is available when -profile_type is set to client or server. Possible values are true (enable) and false (disable). The default value is false.
-
-ipv4_tos
¶
Specifies the IPv4 Type of Service (ToS)/Diffserv setting to use for application layer traffic. This argument is available when -profile_type is set to client or server. Possible values range from 0 to 255. The default value is 0.
-
-ipv6_traffic_class
¶
Specifies the IPv6 traffic class setting to use for application layer traffic. This argument is available when -profile_type is set to client or server. Possible values range from 0 to 255. The default value is 0.
-
-profile_name
¶
Specifies the name of the profile to create or modify
-
-rx_window_size_limit
¶
Specifies the size of the receive window (in bytes) for TCP connections. This argument is available when -profile_type is set to client or server. Possible values range from 0 to 4294967295. The default value is 32768
-
-tostype
¶
Specifies the ToS type. Possible values are tos and diffserv. The default value is tos.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status $SUCCESS (1) or $FAILURE (0)
log Error message if command returns {status 0}
handle The profile handle returned by the function
Description¶
The sth::emulation_profile_config creates, modifies, or deletes a load, client, or server profile for video testing. Use -mode to specify the action to perform, and use -profile_type specify the type of profile to be created.
Before you configure video testing sessions on the specified devices, you must create all three types of profiles. The corresponding profiles will be contained in the keyed list returned by the function.
Examples¶
The following example creates a video server profile:
sth::emulation_profile_config\
-mode create\
-profile_type server\
-tostype tos \
-ipv4_tos 192 \
-ipv6_traffic_class 0 \
-rx_window_size_limit 32768 \
-profile_name DefaultServerProfile \
-delayed_ack_enable false\
Sample Output:
{handle serverprofile1} {status 1}
The following example creates a video client profile:
set device_cfg_ret0_clientprofile1 [sth::emulation_profile_config\
-mode create\
-profile_type client\
-ipv4_tos 89 \
-ipv6_traffic_class 32 \
-rx_window_size_limit 90876 \
-profile_name Client_Profile_1 \
-delayed_ack_enable true \
]
set clientprofilehandle1 [keylget device_cfg_ret0_clientprofile1 handle]
Sample Output:
{handle clientprofile1} {status 1}
The following example creates a video load profile:
set device_cfg_ret0_loadprofile1 [sth::emulation_profile_config\
-mode create\
-profile_type load\
-load_type connections \
-profile_name load_Profile_1 \
-max_connections_attempted 4294967295 \
-max_open_connections 4294967295 \
-max_transactions_attempted 4294967295 \
-randomization_seed 4294967295 \
]
set loadprofilehandle1 [keylget device_cfg_ret0_loadprofile1 handle]
Sample Output:
{handle clientloadprofile1} {status 1}
End of Procedure Header
sth::emulation_client_load_phase_config¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Configures or modifies client load phases for the video test session. A video test session consists of a sequence of phases defined in a load profile.
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_client_load_phase_config [-mode {create|modify} M] [-load_pattern {stair|flat|burst|sinusoid|random|sawtooth}] [-duration_units {milliseconds|seconds|minutes|hours}] [-phase_name <string>] [-phase_num <0-7>] [-profile_handle <load_profile_handle>] [-phase_handle <phase_handle>] [-height <NUMERIC>] [-ramp_time <0-4294967295>] [-repetitions <0-4294967295>] [-steady_time <0-4294967295>] [-burst_time <0-4294967295>] [-pause_time <0-4294967295>] [-period <0-4294967295>]
Arguments¶
-
-mode
¶
Specifies the action to perform. This argument is Mandatory . Possible values are:
create Creates a load phase under the client load profile specified by -profile_handle modify Modifies the configuration of the load phase specified by -phase_handle
-
-load_pattern
¶
Specifies a load pattern to determine the traffic pattern in which the load is generated for the test phase. Possible values are:
stair Controls the workload as it climbs or descends through a series of steps. flat Holds the amount of load steady. The flat pattern phase is often set to zero, and adds a delay phase into the workload. burst Introduces sudden increases (spikes) in a load for a relatively short period of time, after which the load decreases. sinusoid Defines an arbitrary curve that represents a neutral to high workload, then neutral to low, and back to neutral. When repeated, this pattern graphically resembles a wave-like curve. random Shows the bounds of where values occur in the workload. sawtooth The ending load height is the same as the beginning (similar to burst).
The default value is flat.
-
-duration_units
¶
Specifies the unit of time for the selected phase’s load generation. Possible values are milliseconds, seconds, minutes, and hours. The default value is seconds.
-
-phase_name
¶
Specifies the name of the client load phase
-
-phase_num
¶
Specifies the current phase number. Possible values range from 0 to 7.
-
-profile_handle
¶
Specifies the load profile handle under which the client load phase will be created. The load profile handle is returned by the
sth::emulation_profile_config
function.
-
-phase_handle
¶
Specifies the client load phase handle. Use it when you want to modify the client load phaseIt is required for -mode modify.
-
-height
¶
Specifies the total amount of load related to the load type that the system achieves. To keep the system from overwhelming your network, start small and increase these parameters proportionately. This argument is available when -load_pattern is set to not random. Possible values range from 0 to 10000000. The default value is 30.
When -load_type is set to bandwidth, the value range is 0-500000kbps.
-
-ramp_time
¶
Specifies the amount of time each step takes to reach the load type applied to height. This argument is available when -load_pattern is set to stair, flat, sinusoid, or random. The value of -duration_units determines the unit for this argument. Possible values range from 0 to 40000000. The default value is 20.
-
-repetitions
¶
Specifies the number of times that you want the pattern to repeat. The system performs best when the values are between 1 and 10. Values above 50 can cause the display to redraw slowly. The actual load generation while running the test will not be adversely affected. This argument is available when -load_pattern is set to stair, burst, sinusoid, random, or sawtooth. Possible values range from 0 to 100. The default value is 1.
-
-steady_time
¶
Specifies the amount of time for each step. The value of -duration_units determines the unit for this argument. This argument is available when -load_pattern is set to stair, flat, sinusoid, random, or sawtooth. Possible values range from 0 to 40000000. The default value is 40.
-
-burst_time
¶
Specifies the duration of the burst. The value of -duration_units determines the unit for this argument. This argument is available when -load_pattern is set to burst. Possible values range from 0 to 40000000. The default value is 20.
-
-pause_time
¶
Specifies the pause time between bursts. The value of -duration_units determines the unit for this argument. This argument is available when load_pattern is set to burst or sawtooth. Possible values range from 0 to 40000000. The default value is 20.
-
-period
¶
Specifies the amount of time to gradually achieve the total load specified by -height. The value of -duration_units determine the unit for this argument. This argument is available when load_pattern is set to sinusoid. Possible values range from 0 to 1000.
Description¶
The sth::emulation_client_load_phase_config
function configures or modifies client
load phases for the video test session.
In the create mode, one or more video client phases can be created for the same load profile and the corresponding phase handles will be returned.
If the creation or modification fails, Spirent HLTAPI returns an error message.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
load_phase_handle The load phase handle created
status Success (1) or failure (0) of the operation
log An error message (if the operation failed)
Examples¶
The following example creates a load phase for the specified profile:
set load_phase_config1 [sth::emulation_client_load_phase_config \ -mode create \ -load_pattern stair \ -duration_units minutes \ -phase_name Load1 \ -profile_handle "$loadprofilehandle1" \ -height 10000000 \ -ramp_time 40000000 \ -repetitions 100 \ -steady_time 40000000 \ -burst_time 40000000 \ -pause_time 40000000 \ -period 1000 \ ]
Sample Output:
{load_phase_handle clientloadphase1} {status 1}
End of Procedure Header
sth::emulation_video_control¶
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_video_control [-mode {start|stop} M] [-port_handle <port_handle_list>] [-handle <device_handle_list>]
Arguments¶
-
-port_handle
¶
Specifies a list of ports on which the actions will be performed. You must specify either -handle or -port_handle. If both are specified, -port_handle will take effect.
-
-handle
¶
Specifies a list of devices on which to perform the action. You must specify either -handle or -port_handle. If both are specified, -port_handle will take effect.
-
-mode
¶
Specifies the action to be performed. This argument is Mandatory . Possible values are start and stop.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status $SUCCESS (1) or $FAILURE (0)
log Error message if command returns {status 0}
Description¶
The
sth::emulation_http_control
function starts or stops the configured video devices. Use -mode to specify the action to be performed.You must specify either -handle or -port_handle. If both are specified,
-
-port_handle
¶
Examples¶
The following example starts the video test session configured on $port2:
sth::emulation_video_control \
-port_handle "$port2 "\
-mode start
Sample Output:
{status 1}
End of Procedure Header
sth::emulation_video_clips_manage¶
Purpose¶
Spirent Extension (for Spirent HLTAPI only).
Uploads video clip files to the chassis, or deletes them from the chassis
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_video_clips_manage [-mode {upload|delete} M] [-file_name <string>] [server_list <handle_list>]
Arguments¶
-
-mode
¶
Specifies the action to be performed. This argument is Mandatory . Possible values are:
upload Uploads video clip files to the chassis delete Deletes video clip files from the chassis
-
-file_name
¶
Specifies the name of the file to be uploaded to, or deleted from, the chassis.
-
-server_list
¶
Specifies a list of configuration handles from which the video server ports are determined. The handle can be a client, server or port handle.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status $SUCCESS (1) or $FAILURE (0)
log Error message if command returns {status 0}
Description¶
The sth::emulation_video_clips_manage
function uploads video clip files to the
chassis, or deletes them from the chassis. Use -mode to specify the action to
perform.
Examples¶
The following example uploads a video file to the chassis:
set video_clips_manage_config [sth::emulation_video_clips_manage \
-mode load \
-file_name "craft.mp4" \
-server_list "$port1" ]
Sample Output:
{status 1}
End of Procedure Header
sth::emulation_video_stats¶
Synopsis¶
Note
M indicates that the argument is Mandatory .
sth::emulation_video_stats [-mode {client|server} M] [-port_handle <port_handle>] [-handle <device_handle>]
Arguments¶
-
-port_handle
¶
Specifies the port from which to retrieve statistics
-
-handle
¶
Specifies the handle of the device from which to retrieve statistics. If both -port_handle and -handle are specified, -handle will be used.
-
-mode
¶
Specifies the type of video results to retrieve. This argument is Mandatory . Possible values are client and server.
Return Values¶
Depending on the specific language that HLTAPI uses, the function returns a keyed list/dictionary/hash (See Introduction for more information on return value formats) using the following keys (with corresponding data):
status $SUCCESS (1) or $FAILURE (0)
log Error message if command returns {status 0}
The following keys will be returned when -mode is set to client:
- aborted_connections
- Total number of aborted connections from the client block
- aborted_transactions
- Total number of aborted transactions from the client block
- attempted_connections
- Total number of attempted connections from the client block
- attempted_transactions
- Total number of attempted transactions from the client block
- block_index
- Internally allocated index for this video client block
- last_modified
- Timestamp when the result was last modified
- parent_name
- Name of the parent protocol for which the results apply
- rx_response_code200
- Count of received response code with value 200
- rx_response_code400
- Count of received response code with value 400
- rx_response_code403
- Count of received response code with value 403
- rx_response_code404
- Count of received response code with value 404
- rx_response_code405
- Count of received response code with value 405
- rx_response_code454
- Count of received response code with value 454
- rx_response_code459
- Count of received response code with value 459
- rx_response_code461
- Count of received response code with value 461
- successful_connections
- Total number of successful connections from the client block
- successful_transactions
- Total number of successful transactions from the client block
- unsuccessful_connections
- Total number of unsuccessful connections from the client block
- unsuccessful_transactions
- Total number of unsuccessful transactions from the client block
The following keys will be returned when mode is set to server:
- block_index
- Internally allocated index for this video server block
- last_modified
- Timestamp when the result was last modified
- parent_name
- Name of the parent protocol for which the results apply
- successful_transactions
- Total number of successful transactions from the server block
- total_connections
- Total number of connections handled by this video server
- tx_response_code200
- Count of transmitted response codes with value 200
- tx_response_code400
- Count of transmitted response codes with value 400
- tx_response_code403
- Count of transmitted response codes with value 403
- tx_response_code404
- Count of transmitted response codes with value 404
- tx_response_code405
- Count of transmitted response codes with value 405
- tx_response_code454
- Count of transmitted response codes with value 454
- tx_response_code459
- Count of transmitted response codes with value 459
- tx_response_code461
- Count of transmitted response codes with value 461
- unsuccessful_transactions
- Total number of unsuccessful transactions from the server block
Description¶
The sth::emulation_video_stats
function provides statistics for the video
emulation. Use handle or port_handle to specify the scope of statistics that
you want to retrieve.
This function returns the requested data and a status value (1 for success). If there is an error, the function returns the status value (0) and an error message.
Examples¶
Sample Input:
# server statistics
sth::emulation_video_stats \
handle $device_list\
mode server
Sample Output:
{host2 {{successful_transactions 0} {parent_name {Video Server 1}}
{unsuccessful_transactions 0} {sotal_connections 0} {tx_response_code200 0}
{tx_response_code400 0} {tx_response_code454 0} {block_index 0}
{tx_response_code403 0} {last_modified 0} {tx_response_code404 0}
{tx_response_code405 0} {tx_response_code459 0} {tx_response_code461 0}}} {status
1}
End of Procedure Header