VQA Functions

sth::emulation_vqa_host_config

Purpose

Spirent Extension (for Spirent HLTAPI only).

Configures or deletes a Video Quality Analyzer (VQA) on a host for monitoring multicast video streams that are joined by that host. This is referred to as active monitoring. A Video Quality channel block is created for each host for which a video quality analysis is configured. The channel block is delimited by the lowest and highest multicast group IP addresses in the multicast group membership profile for the host.

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_vqa_host_config
  [-mode {enable|modify}  M]
  [-handle <device_handle>]
  [-session_handle <session_handle>]
  [-dst_addr_select {group_range|device_addr}]
  [-use_video_client_udp_port {true|false}]
  [-multicast_udp_max <NUMERIC>]
  [-multicast_udp_min <NUMERIC>]
  [-use_range {true|false}]

Arguments

-handle

Specifies the device handle on which to enable the VQA. It is required for -mode create.

-session_handle

Specifies the VQA session handle returned by the function. It is required for -mode modify.

-mode

Specifies the action to perform. This argument is Mandatory . Possible values are:

enable    Enables the VQA session on the specified device

modify    Modifies the VQA session specified by -session_handle
-dst_addr_select

Specifies the type of the destination address. Possible values are:

group_range   Multicast addresses provided by IGMP/MLD

device_addr   Address of the emulated device

The default value is group_range.

-use_video_client_udp_port

Determines whether to use the UDP port of the video client associated with this device. Possible values are:

true       Obtain the UDP port from the video client
false      Specify the UDP port in this configuration

The default value is false.

-multicast_udp_max

Specifies the ending multicast address. The IP version of the address depends on the encapsulation of the host. The default value is 5000.

-multicast_udp_min

Specifies the beginning multicast address. The IP version of the address depends on the encapsulation of the host. The default value is 4000.

-use_range

Determines whether to use a range of ports or to use a single port. Possible values are:

true    Use a range of UDP ports for the device
false   Use a single UDP port for the device

The default value is true.

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 VQA session handle returned by the function

Description

The sth::emulation_vqa_host_config function enables or deletes a VQA session on a specified host. You can either configure the VQA host on a single port, or run a global test under all devices.

Before you enable VQA on the host, you must create the device, and use the returned device handle in the call to the sth::emulation_vqa_host_config.

Examples

The following example enables VQA on the specified host:

sth::emulation_vqa_host_config\
    -mode                                             enable\
    -handle                                           $device_created\
    -dst_addr_select                                  group_range \
    -use_range                                        true \
    -multicast_udp_min                                1000 \
    -use_video_client_udp_port                        false \
    -multicast_udp_max                                5000

Sample Output:

{session_handle vqdevicechannelblock1} {status 1}

End of Procedure Header

sth::emulation_vqa_config

Purpose

Spirent Extension (for Spirent HLTAPI only).

Creates or modifies the VQA probe on the specified port for passive monitoring of video streams

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_vqa_config
    [-mode {enable|modify}  M]
    [-port_handle <port_handle>]
    [-handle <probe_handle>]
    [-ip_version {ipv4|ipv6}]
    [-filter_type {multicast_filter|unicast_filter}]
    [-layer2_encap {no_encap|vlan|pppoe|pppoe_vlan}]
    [-pppoe_session_id <1-65535>]
    [-vlan_count <1-3>]
    [-vlan1_id <0-4095>]
    [-vlan2_id <0-4095>]
    [-vlan3_id <0-4095>]
    [-unicast_ipv4_min <a.b.c.d>]
    [-unicast_ipv4_max <a.b.c.d>]
    [-unicast_ipv6_min <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
    [-unicast_ipv6_max <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
    [-unicast_udp_min <NUMERIC>]
    [-unicast_udp_max <NUMERIC>]
    [-multicast_ipv4_min <a.b.c.d>]
    [-multicast_ipv4_max <a.b.c.d>]
    [-multicast_ipv6_min <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
    [-multicast_ipv6_max <aaaa:bbbb:cccc:dddd:eeee:ffff:gggg:hhhh>]
    [-multicast_udp_min <NUMERIC>]
    [-multicast_udp_max <NUMERIC>]

Arguments

-port_handle

Specifies the port handle on which to create the VQA probe. It is required for -mode create.

-handle

Specifies the VQA probe handle returned by the function. It is required for -mode modify.

-mode

Specifies the action to perform. This argument is Mandatory . Possible values are:

create     Creates the VQA probe on the port specified by -port_handle

modify     Modifies the configuration of the VQA probe
           specified by -handle
-ip_version

Specifies the IP version used to transport the video stream. Possible values are ipv4 and ipv6. The default value is ipv4.

-filter_type

Determines the type of IP addresses. Possible values are multicast_filter and unicast_filter The default value is multicast_filter.

-layer2_encap

Specifies the encapsulation type of the video stream. This argument is available for Ethernet interfaces. Possible values are:

no_encap          EthernetII
vlan              EthernetII/VLAN
pppoe             EthernetII/PPPoE
pppoe_vlan        EthernetII/VLAN/PPPoE

The default value is no_encap.

-pppoe_session_id

Specifies the ID for the PPP session. This argument is available when -layer2_encap is set to pppoe or pppoe_vlan. Possible values range from 1 to 65535. The default value is 1

-vlan_count

Specifies the number of VLAN tags. This argument is available when -layer2_encap is set to pppoe or pppoe_vlan. Possible values range from 1 to 3. The default value is 1

-vlan1_id

Specifies the VLAN ID for the first VLAN. Possible values range from 0 to 4095. The default value is 100.

-vlan2_id

Specifies the VLAN ID for the second VLAN. Possible values range from 0 to 4095. The default value is 100.

-vlan3_id

Specifies the VLAN ID for the third VLAN. Possible values range from 0 to 4095. The default value is 100.

-unicast_ipv4_min

Specifies the beginning unicast IPv4 address. This argument is available when -ip_version is set to ipv4 and -filter_type is set to unicast_filter. The default value is 192.168.0.0.

-unicast_ipv4_max

Specifies the ending unicast IPv4 address. This argument is available when -ip_version is set to ipv4 and -filter_type is set to unicast_filter. The default value is 192.168.255.255.

-unicast_ipv6_min

Specifies the beginning unicast IPv6 address. This argument is available when -ip_version is set to ipv6 and -filter_type is set to unicast_filter. The default value is 2001::1.

-unicast_ipv6_max

Specifies the ending unicast IPv6 address. This argument is available when -ip_version is set to ipv6 and -filter_type is set to unicast_filter. The default value is 2001::ff.

-unicast_udp_min

Specifies the beginning destination UDP port. Possible values range from 0 to 65535. The default value is 1000.

-unicast_udp_max

Specifies the ending destination UDP port. Possible values range from 0 to 65535. The default value is 2000.

-multicast_ipv4_min

Specifies the beginning multicast IPv4 address. This argument is available when -ip_version is set to ipv4 and -filter_type is set to multicast_filter. The default value is 225.0.0.0.

-multicast_ipv4_max

Specifies the ending multicast IPv4 address. This argument is available when -ip_version is set to ipv4 and -filter_type is set to multicast_filter. The default value is 225.0.0.255.

-multicast_ipv6_min

Specifies the beginning multicast IPv6 address. This argument is available when -ip_version is set to ipv6 and -filter_type is set to multicast_filter. The default value is ff1e::1.

-multicast_ipv6_max

Specifies the ending multicast IPv6 address. This argument is available when -ip_version is set to ipv6 and -filter_type is set to multicast_filter. The default value is ff1e::ff.

-multicast_udp_min

Specifies the beginning destination UDP port. Possible values range from 0 to 65535. The default value is 4000.

-multicast_udp_max

Specifies the ending destination UDP port. Possible values range from 0 to 65535. The default value is 5000.

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 VQA probe handle returned by the function

Description

The sth::emulation_vqa_config function creates or modifies the VQA probe on the specified port for passive monitoring of video streams. Use -mode to specify the action to perform.

Examples

The following example creates a VQA probe on the specified port:

sth::emulation_vqa_config\
    -mode                                             create\
    -port_handle                                      $port1\
    -unicast_ipv6_max                                 2001::ff \
    -vlan_count                                       1 \
    -ip_version                                       ipv4 \
    -vlan1_id                                         100 \
    -vlan3_id                                         100 \
    -unicast_udp_min                                  1000 \
    -multicast_ipv4_min                               225.0.0.0 \
    -pppoe_session_id                                 1 \
    -unicast_udp_max                                  2000 \
    -unicast_ipv4_min                                 1.1.1.1 \
    -multicast_ipv6_min                               ff1e::1 \
    -multicast_ipv4_max                               225.0.0.255 \
    -layer2_encap                                     no_encap \
    -unicast_ipv6_min                                 2001::1 \
    -unicast_ipv4_max                                 1.1.1.10 \
    -multicast_ipv6_max                               ff1e::ff \
    -filter_type                                      unicast_filter \
    -vlan2_id                                         100 \

Sample Output:

{handle vqprobechannelblock1} {status 1}

End of Procedure Header

sth::emulation_vqa_port_config

Purpose

Spirent Extension (for Spirent HLTAPI only).

Configures or modifies the tunable parameters that control how metrics are categorized and reported for the VQA port

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_vqa_port_config
    [-mode {create|modify}  M]
    [-port_handle <port_handle>]
    [-handle <VQA_config_handle>]
    [-frame_loss_concealment_robustness <0-65535>]
    [-slices_per_iframe <0-65535>]
    [-nominal_delay <0.001-4294967.295>]
    [-max_pkt_count <0-4294967295>]
    [-mos_v_threshold <1.00-5.00>]
    [-mos_v_normalized_threshold <1.00-5.00>]
    [-mos_av_threshold <1.00-5.00>]
    [-mos_a_threshold <1.00-5.00>]
    [-pid_interval <0.001-4294967.295>]
    [-pat_repetition <0.001-4294967.295>]
    [-pmt_repetition <0.001-4294967.295>]
    [-pcr_continuity <0.001-47721.858>]
    [-pcr_repetition <0.001-47721.858>]
    [-pts_repetition <0.001-4294967.295>]
    [-rtp_timestamp_threshold <0.001-47721.858>]
    [-payload_type <96-127>]
    [-codec {MPEG_L1|MPEG_L2|MPEG_L3|MPEG2_AAC|AC3|MPEG4_AAC|MPEG4_LD_AAC|
            MPEG4_HE_AAC|JPEG|MPEG1|MPEG2|H261|H263|H263_PLUS|H264|MPEG4|VC1}]
    [-frame_height <50-65535>]
    [-frame_width <50-65535>]

Arguments

-mode

Specifies the action to perform. This argument is Mandatory . Possible values are:

create   Configures the VQA port specified by -port_handle
modify   Modifies the VQA port configurations specified by -handle
-port_handle

Specifies the port handle on which the VQA port will be configured. It is required for -mode create.

-handle

Specifies the VQA port configuration handle returned by this function. It is required for -mode modify.

-frame_loss_concealment_robustness

Specifies the parameter that defines the FLC algorithm robustness. Possible values range from 0 to 65535. The default value is 4.

-slices_per_iframe

Specifies the number of slices per I-frame. Set it to 0 to enable auto-detection of slices per I-frame. Possible values range from 0 to 65535. The default value is 0.

-nominal_delay

Specifies the play-out buffer nominal delay, in seconds. Possible values range from 0.001 to 4294967.295. The default value is 3.0.

-max_pkt_count

Specifies the maximum number of transport packets that can be stored in the buffer at any instance in time. Possible values range from 0 to 4294967295. The default value is 65535.

-mos_v_threshold

Specifies the absolute video stream mean opinion score (MOS) threshold used to determine the proportion of time spent below the threshold. Possible values range from 1.00 to 5.00. The default value is 1.

-mos_v_normalized_threshold

Specifies the relative (removing impact of image size and frame rate) video stream MOS threshold used to determine the proportion of time spent below the threshold. Possible values range from 1.00 to 5.00. The default value is 1.

-mos_av_threshold

Specifies the audio/video (AV) stream MOS threshold used to determine the proportion of time spent below the threshold. Possible values range from 1.00 to 5.00. The default value is 1.

-mos_a_threshold

Specifies the audio stream MOS threshold used to determine the proportion of time spent below the threshold. Possible values range from 1.00 to 5.00. The default value is 1.

-pid_interval

Specifies the maximum interval beyond which a program ID (PID) error is triggered. For each PID, a data stream for the PID must appear within this time interval. The error is triggered if it is not within the interval. Possible values range from 0.001 to 4294967.295. The default value is 1.

-pat_repetition

Specifies the maximum interval beyond which a Program Association Table (PAT) error or PAT2 error is triggered. Possible values range from 0.001-4294967.295. The default value is 0.5.

-pmt_repetition

Specifies the maximum interval beyond which a Program Map Table (PMT) error or PMT2 error is triggered. Possible values range from 0.001-4294967.295. The default value is 0.5.

-pcr_continuity

Specifies the maximum interval beyond which the Program Clock Reference (PCR) Discontinuity Indicator error is triggered. The difference between two consecutive PCR values without the discontinuity indicator set must fall within this interval. The error is triggered if it is not within the interval. Possible values range from 0.001 to 47721.858. The default value is 0.1.

-pcr_repetition

Specifies the maximum interval beyond which the PCR Repetition error is triggered. The time interval between two consecutive PCR values must fall within this interval. An error is triggered if it is not within the interval. Possible values range from 0.001 to 47721.858. The default value is 0.1.

-pts_repetition

Specifies the maximum interval beyond which the Presentation Time Stamp (PTS) error is triggered. The PTS must be present in the transport stream at least once within this interval. The error is triggered if it is not within the interval. Possible values range from 0.001 to 4294967.295. The default value is 0.7.

-rtp_timestamp_threshold

Specifies the maximum difference between two consecutive RTP timestamps. Possible values range from 0 to 47721.858. The default value is 3.

-payload_type

Specifies the RTP payload type. Possible values range from 96 to 127. The default value is 96.

-codec

Specifies the codec to be used. Possible values are listed below:

 Audio                      Video

MPEG_L1                     JPEG
MPEG_L2                     MPEG1
MPEG_L3                     MPEG2
MPEG2_AAC                   H261
AC3                         H263
MPEG4_AAC                   H263_PLUS
MPEG4_LD_AAC                H264
MPEG4_HE_AAC                MPEG4
                             VC1

The default value is MPEG_L1 for audio codec, and MPEG2 for video codec.

-frame_height

Specifies the height of the video frame in pixels. Possible values range from 50 to 65535. The default value is 486.

-frame_width

Specifies the width of the video frame in pixels. Possible values range from 50 to 65535. The default value is 720.

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 VQA port configuration handle returned by the function

Description

The sth::emulation_vqa_port_config function configures the tunable parameters that control how metrics are categorized and reported for the VQA port. Use -mode to specify the action to perform.

Examples

The following example configures the specified VQA port:

sth::emulation_vqa_port_config\
        -mode                                             create\
        -port_handle                                      $port1\
        -mos_v_threshold                                  1 \
        -pid_interval                                     1 \
        -pcr_continuity                                   0.1 \
        -frame_loss_concealment_robustness                4 \
        -max_pkt_count                                    65535 \
        -rtp_timestamp_threshold                          3 \
        -pts_repetition                                   0.7 \
        -mos_av_threshold                                 1 \
        -pmt_repetition                                   0.5 \
        -mos_a_threshold                                  1 \
        -slices_per_iframe                                0 \
        -nominal_delay                                    3 \
        -mos_v_normalized_threshold                       1 \
        -pcr_repetition                                   0.04 \
        -pat_repetition                                   0.5

Sample Output:

{handle vqanalyzer1} {status 1}

End of Procedure Header

sth::emulation_vqa_global_config

Purpose

Spirent Extension (for Spirent HLTAPI only).

Configures global values that affect the entire VQA test

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_vqa_global_config
   [-sampling_period <5-600>]
   [-database_file_name <file_name>]
   [-append_date_time {true|false}]
   [-enable_eot_database {true|false}]

Arguments

-sampling_period

Determines how often VQA results would be sampled, in seconds. Possible values range from 5 to 600. The default value is 10.

-database_file_name

Specifies the name of the global EOT database file for VQA. The default value is vqAnalyzerTest.db

-append_date_time

When enabled, a timestamp will be appended to the name of the database file. Possible values true (enable) or false (disable). The default value is true.

-enable_eot_database

When enabled, a timestamp will be appended to the name of the EOT database file. Possible values true (enable) or false (disable). The default value is true.

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_vqa_global_config function configures global values that affect the entire VQA test.

Examples

Sample Input:

sth::emulation_vqa_global_config\
        -database_file_name                              vqAnalyzerTest.db \
        -sampling_period                                  10 \
        -enable_eot_database                              true \
        -append_date_time                                 true

Sample Output:

{status 1}

End of Procedure Header

sth::emulation_vqa_control

Purpose

Spirent Extension (for Spirent HLTAPI only).

Starts or stops the VQA test

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_vqa_control
    [-action {start|stop}  M]
    [-port_handle <port_handle_list>]
    [-handle <device_handle_list>]

Arguments

-port_handle

Specifies a list of ports on which to perform the action. 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

-action

Specifies the action to be performed. This argument is Mandatory . Possible values are:

start    Starts the VQA test
stop     Stops the VQA test

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_vqa_control function starts or stops the VQA test. You must specify either -handle or -port_handle. If both are specified, -port_handle will take effect.

Examples

The following example starts the VQA test on the specified port:

sth::emulation_vqa_control    \
        -port_handle      "$port1 "\
        -action           start

Sample Output:

{status 1}

End of Procedure Header

sth::emulation_vqa_stats

Purpose

Spirent Extension (for Spirent HLTAPI only).

Retrieves VQA results

Synopsis

Note

M indicates that the argument is Mandatory .

sth::emulation_vqa_stats
    [-action {audio_program_information|audio_interval_metric|
             audio_continuous_metric|video_program_information|
             video_interval_metric|video_continuous_metric|etsi|rtp}  M]
    [-port_handle <port_handle>]
    [-handle <device_handle>]

Arguments

-port_handle

Specifies the port from which to retrieve statistics.

-handle

Specifies the device from which to retrieve statistics. If both -port_handle -handle are specified, -handle will take effect.

-action

Specifies the type of VQA result. This argument is Mandatory . Possible values are:

audio_program_information       Audio program information
audio_interval_metric           Audio interval metrics
audio_continuous_metric         Audio continuous metrics
video_program_information       Video program information
video_interval_metric           Video interval metrics
video_continuous_metric         Video continuous metrics
etsi                            European Telecommunications Standards
                                Institute (ETSI) TR 101 290 metrics
rtp                             Real-time Transport Protocol (RTP)
                                packet transport metrics

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 -action is set to audio_program_information:

audio_channel_count
                Number of audio channels included in the audio stream

ref_clock_rate
                Audio reference clock rate, in Hz

pid
                Program ID

dst_addr
                Destination IP address

dst_udp_port
                Destination UDP port

src_addr
                Source IP address

src_udp_port
                Source UDP port

codec_type
                Codec type used for the audio stream

rtp_ssrc
                RTP Synchronization Source (SSRC) field

The following keys will be returned when action is set to audio_continuous_metric:

dst_addr
                Destination IP address

dst_udp_port
                Destination UDP port

min_abs_mos_a
                Minimum absolute MOS-A

avg_abs_mos_a
                Average absolute MOS-A

max_abs_mos_a
                Maximum absolute MOS-A

abs_mos_a_below_threshold_prop
                Proportion below the configured absolute MOS-A threshold

pkt_loss_degrad_sev
                Severity of quality degradation due to network transport packet loss

codec_type_degrad_sev
                Severity of quality degradation due to codec quantization level

avg_stream_audio_bw
                Average bandwidth, in bits/sec, measured during a one-second
                window, excluding transport packet header overhead and error
                correction/retransmission

transport_pkt_count
                Number of transport packets received

transport_pkt_lost_count
                Number of transport packets lost

uncorr_loss_prop
                Total proportion of stream transport packets lost in the
                transport network

gap_count
                Number of gap periods where no significant packet loss/discard
                is occurring

gap_loss_rate
                Proportion of packets lost (before application of error correction
                algorithms) during gap periods

gap_length
                Average length of a gap, in transport packets

burst_loss_rate
                Proportion of packets lost (before application of error correction
                algorithms) during burst periods

burst_length
                Average length of a packet loss burst, in transport packets

burst_count
                Number of burst periods where significant packet loss/discard is
                occurring

ppdv
                Stream transport packet-to-packet delay variation (RFC3550) in
                milliseconds

The following keys will be returned when action is set to audio_interval_metric:

dst_addr
                Destination IP address

dst_udp_port
                Destination UDP port

interval_abs_mos_a
                Interval absolute MOS-A

interval_min_abs_mos_a
                Minimum absolute MOS-A for interval

interval_max_abs_mos_a
                Maximum absolute MOS-A for interval

interval_avg_stream_audio_bw
                Average bandwidth of audio streams for interval

interval_transport_pkt_count
                Number of transport packets received within the interval

interval_transport_pkt_lost_count
                Number of transport packets lost within the interval

interval_transport_pkt_duplicated_count
                Number of duplicate transport packets received

interval_transport_gap_loss_rate
                Proportion of packets lost (before application of error
                correction algorithms) during gap periods

interval_transport_gap_length
                Average length of a gap, in transport packets

interval_transport_gap_count
                Number of gap periods where no significant packet loss/discard is
                occurring

interval_transport_burst_loss_rate
                Proportion of packets lost (before application of error
                correction algorithms) during burst periods

interval_transport_burst_length
                Average length of a packet loss burst, in transport packets

interval_transport_burst_count
                Number of burst periods where significant packet loss/discard is
                occurring

interval_transport_pkt_eff_loss_rate
                Proportion of transport packets lost or discarded during the
                interval

The following keys will be returned when action is set to video_program_information:

vid_scrambling
                Indicates the video stream's encryption state

gop_structure
                GoP structure, expressed as a series of characters corresponding
                to the frame types used

avg_gop_length
                Average group of pictures length, in frames

max_gop_length
                Maximum group of pictures length, in frames

curr_gop_length
                Current group of pictures length, in frames

inter_iframe_gap
                Average gap, in frames, between I-frames (excluding the I-frames)

frame_width
                Video frame width, in pixels

frame_height
                Video frame height, in pixels

frame_rate
                Video frame rate, in frames per second

frame_interlacing
                Indicates the stream's interlacing state

slices_per_iframe
                Average number of slices contained in each Iframe

ref_clock_rate
                Reference clock rate, in Hz

pid
                Program ID

dst_addr
                Destination IP address

dst_udp_port
                Destination UDP port

src_addr
                Source IP address

src_udp_port
                Source UDP port

codec_type
                Codec type used for the video stream

rtp_ssrc
                RTP Synchronization Source (SSRC) field

The following keys will be returned when action is set to video_continuous_metric:

min_abs_mos_v
                Minimum absolute MOS-V

avg_abs_mos_v
                Average absolute MOS-V

max_abs_mos_v
                Maximum absolute MOS-V

abs_mos_v_below_threshold_prop
                Proportion below the configured absolute MOS-V threshold

min_rel_mos_v
                Minimum relative MOS-V

avg_rel_mos_v
                Average relative MOS-V

max_rel_mos_v
                Maximum relative MOS-V

rel_mos_v_below_threshold_prop
                Proportion below the configured relative MOS-V threshold

min_abs_mos_av
                Minimum absolute MOS-AV

avg_abs_mos_av
                Average absolute MOS-AV

max_abs_mos_av
                Maximum absolute MOS-AV

abs_mos_av_below_threshold_prop
                Proportion below the configured absolute MOS-AV threshold

vstq
                Transmission quality

est_peak_sig_noise_ratio
                Estimated peak signal-to-noise ratio, in dB

pkt_loss_degrad_sev
                Severity of quality degradation due to the network transport packet loss

codec_quantization_degrad_sev
                Severity of quality degradation due to the codec quantization level

frame_resolution_degrad_sev
                Severity of quality degradation due to the frame resolution (size)

frame_rate_degrad_sev
                Severity of quality degradation due to the frame presentation rate

gop_length_degrad_sev
                Severity of quality degradation due to the GoP length

avg_stream_video_bw
                Average video stream bandwidth

iframe_interarrival_jitter
                I-frame inter-arrival jitter, in ms (computed relative to expected
                arrival time based on frame rate.)

dst_addr
                Destination IP address

dst_udp_port
                Destination UDP port

transport_pkt_count
                Number of transport packets received

transport_pkt_lost_count
                Number of transport packets lost

uncorr_loss_prop
                Total proportion of stream transport packets lost in the
                transport network

gap_count
                Number of gap periods where no significant packet loss/discard is
                occurring

gap_loss_rate
                Proportion of packets lost (before application of error
                correction algorithms) during gap periods

gap_length
                Average length of a gap, in transport packets

burst_loss_rate
                Proportion of packets lost (before application of error
                correction algorithms) during burst periods

burst_length
                Average length of a packet loss burst, in transport packets

burst_count
                Number of burst periods where significant packet loss/discard is
                occurring

ppdv
                Stream transport packet-to-packet delay variation (RFC3550) in
                milliseconds

iframe_avg_video_bw
                Average video bandwidth of I-frames

iframe_max_video_bw
                Maximum video bandwidth of I-frames

pframe_avg_video_bw
                Average P-frame video bandwidth

pframe_max_video_bw
                Maximum P-frame video bandwidth

bframe_avg_video_bw
                Average B-frame video bandwidth

bframe_max_video_bw
                Maximum B-frame video bandwidth

siframe_avg_video_bw
                Average SI-frame video bandwidth

siframe_max_video_bw
                Maximum SI-frame video bandwidth

spframe_avg_video_bw
                Average video bandwidth of SP-frames

spframe_max_video_bw
                Maximum video bandwidth of SP-frames

The following keys will be returned when action is set to video_interval_metric:

dst_addr
                Destination IP address

dst_udp_port
                Destination UDP port

interval_iframe_count
                I-frames received for interval

interval_iframe_impaired_count
                I-frames received with impairment for interval

interval_iframe_impaired_prop
                Proportion of I-frames received with impairment

interval_pframe_count
                P-frames received for interval

interval_pframe_impaired_count
                P-frames received with impairment for interval

interval_pframe_impaired_prop
                Proportion of P-frames received with impairments for interval

interval_pframe_err_ext_impaired_prop
                Proportion of average sized P-frames impaired by error extension
                from a previous frame packet loss or discard for interval

interval_bframe_count
                B-frames received for interval

interval_bframe_impaired_count
                B-frames received with impairment for interval

interval_bframe_impaired_prop
                Proportion of B-frames received with impairments for interval

interval_bframe_err_ext_impaired_prop
                Proportion of average sized B-frames impaired by error extension
                from a previous frame packet loss or discard for interval

interval_siframe_count
                SI-frames received for interval

interval_siframe_impaired_count
                SI-frames received with impairments for interval

interval_siframe_impaired_prop
                Proportion of SI-frames received with impairments for interval

interval_spframe_count
                SP-frame count for interval

interval_spframe_impaired_count
               SP-frames received with impairment for interval

interval_spframe_impaired_prop
                Proportion of SP-frames received with impairments for interval

interval_spframe_err_ext_impaired_prop
                Proportion of average sized SP-frames impaired by error extension
                from a previous frame packet loss or discard for interval

interval_abs_mos_v
                Absolute MOS-V for interval

interval_min_abs_mos_v
                Minimum absolute MOS-V for interval

interval_max_abs_mos_v
                Maximum absolute MOS-V for interval

interval_rel_mos_v
                Relative MOS-V for interval

interval_min_rel_mos_v
                Minimum relative MOS-V for interval

interval_max_rel_mos_v
                Maximum relative MOS-V for interval

interval_mos_av
                Absolute MOS-AV for interval

interval_min_mos_av
                Minimum absolute MOS-AV for interval

interval_max_mos_av
                Maximum absolute MOS-AV for interval

interval_vstq
                Transmission quality for interval

interval_avg_stream_video_bw
                Average video stream bandwidth for interval

interval_est_peak_sig_noise_ratio
                Estimated peak signal-to-noise ratio for interval

interval_static_image_prop
                Proportion of static images for interval

interval_high_detail_prop
                Proportion of high detail images for interval

interval_low_detail_prop
                Proportion of low detail images for interval

interval_high_panning_prop
                Proportion of high panning images for interval

interval_high_motion_prop
                Proportion of high motion images for interval

interval_low_motion_prop
                Proportion of low motion images for interval

interval_transport_pkt_count
                Transport packets received for interval

interval_transport_pkt_lost_count
                Transport packets lost for interval

interval_transport_pkt_duplicated_count
                Number of duplicate transport packets received

interval_transport_gap_loss_rate
                Proportion of packets lost (before application of error
                correction algorithms) during gap periods

interval_transport_gap_length
                Average length of a gap, in transport packets

interval_transport_gap_count
                Number of gap periods where no significant packet loss/discard is
                occurring

interval_transport_burst_loss_rate
                Proportion of packets lost (before application of error
                correction algorithms) during burst periods

interval_transport_burst_length
                Average length of a packet loss burst, in transport packets

interval_transport_burst_count
                Number of burst periods where significant packet loss/discard is
                occurring

interval_transport_pkt_eff_loss_rate
                Proportion of transport packets lost or discarded during the interval

interval_avg_ppdv
                Average packet-to-packet delay variation for interval

interval_min_delay_factor
                Minimum interval delay metric for the reporting interval

interval_max_delay_factor
                Maximum interval delay metric for the reporting interval

interval_avg_delay_factor
                Average interval delay metric for the reporting interval

interval_min_media_loss_rate
                Interval minimum MLR

interval_max_media_loss_rate
                Interval maximum MLR

interval_avg_media_loss_rate
                Interval average MLR

The following keys will be returned when action is set to etsi:

dst_addr
                Destination IP address

dst_udp_port
                Destination UDP port

sync_loss_count
                Sync loss (See ETSI TR 101290 Priority 1 for more information)

sync_byte_error_count
                Sync byte error count (See ETSI TR 101290 Priority 1 for more information)

pat_error_count
                Number of PAT errors

pat2_error_count
                Number of PAT2 errors

continuity_error_count
                Number of continuity errors

pmt_error_count
                Number of PMT errors

pmt2_error_count
                Number of PMT2 errors

pid_error_count
                Number of PID errors

transport_error_count
                Number of transport errors

crc_error_count
                Number of Cyclical Redundancy Check (CRC) errors in various
                transport packets

pcr_error_count
                Number of PCR errors

pcr_repetition_error_count
                Indicates when a PCR repeats faster than every 40 ms

pcr_discontinuity_error_count
                Number of PCR discontinuity errors

pcr_accuracy_error_count
                Number of errors detected in the PCR accuracy

pts_error_count
                Number of errors detected in Presentation Time Stamps (PTS)

The following keys will be returned when action is set to rtp:

dst_addr
            Destination IP address

dst_udp_port
            Destination UDP port

rtp_transport_pkt_count
            Number of transport packets received

rtp_pkt_lost_count
            Number of transport packets lost

rtp_pkt_discarded_count
            Number of transport packets discarded

rtp_pkt_oos_count
            Number of transport packets arriving out of sequence

rtp_pkt_duplicate_count
            Number of duplicate transport packets received

rtp_timestamp_error_count
            Number of packets received outside of the timestamp interval
            threshold

Description

The sth::emulation_vqa_stats function provides statistics for the video test. Use -handle or -port_handle to specify the scope of statistics you want to retrieve. If both are specified, -handle will take effect.

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

The following example returns results for -mode audio_program_information:

sth::emulation_vqa_stats    \
    -port_handle         "$port1 "\
    -mode                audio_program_information

Sample output:

{port1 {{host1 {{{rtp_ssrc 0} {src_udp_port 59030} {dst_addr
226.1.1.1} {pid 69} {src_addr 192.85.1.3} {audio_channel_count 2}
{codec_type MPEG2_AAC} {dst_udp_port 2000} {ref_clock_rate 90000}}
{{rtp_ssrc 3105055583} {src_udp_port 62944} {dst_addr 226.1.1.10}
{pid 69} {src_addr 192.85.1.3} {audio_channel_count 2} {codec_type
MPEG2_AAC} {dst_udp_port 5000} {ref_clock_rate 90000}}}}}} {status 1}

The following example returns results for -mode etsi:

 set results_ret4 [sth::emulation_vqa_stats    \
    -port_handle      "$port1 "\
    -mode              etsi\
]

Sample output:

{port1 {{{pcr_repetition_error_count 519} {sync_byte_error_count 0}
{pmt2_error_count 0} {pid_error_count 0} {pts_error_count 0}
{pcr_accuracy_error_count 0} {pat2_error_count 0} {crc_error_count 0}
{pmt_error_count 0} {pcr_discontinuity_error_count 0} {dst_addr 1.1.1.1}
{sync_loss_count 0} {pcr_error_count 519} {pat_error_count 0}
{transport_error_count 0} {dst_udp_port 2000} {continuity_error_count 0}}
{{pcr_repetition_error_count 519} {sync_byte_error_count 0} {pmt2_error_count
0} {pid_error_count 0} {pts_error_count 0} {pcr_accuracy_error_count 0}
{pat2_error_count 0} {crc_error_count 0} {pmt_error_count 0}
{pcr_discontinuity_error_count 0} {dst_addr 226.1.1.1} {sync_loss_count 0}
{pcr_error_count 519} {pat_error_count 0} {transport_error_count 0}
{dst_udp_port 5000} {continuity_error_count 0}}}} {status 1}