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

Purpose

Spirent Extension (for Spirent HLTAPI only).

Starts or stops the video device

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

Purpose

Spirent Extension (for Spirent HLTAPI only).

The result of the video server and client

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